0
0
Lập trình
Admin Team
Admin Teamtechmely

Hướng dẫn kết nối Docker Network với CSF Firewall trên VPS Linux

Đăng vào 3 tuần trước

• 3 phút đọc

I. Giới thiệu

Trong vai trò là quản trị viên hệ thống Linux, chắc hẳn bạn đã quen thuộc với CSF Firewall. Đây là một công cụ hữu ích để quản lý ports và hạn chế số lượng request từ một IP, giúp bảo vệ VPS khỏi các trường hợp tấn công DDOS hoặc tình trạng quá tải tài nguyên. Tuy nhiên, khi làm việc với Docker containers, tôi đã gặp một số vấn đề trong việc cấu hình và sử dụng CSF Firewall. Một trong những khó khăn lớn là khi thay đổi các quy tắc của CSF, điều này dẫn đến việc khởi động lại CSF, từ đó ảnh hưởng đến mạng lưới của các Docker container.

II. Vấn đề và giải pháp gặp phải

Khi tìm hiểu về vấn đề này, tôi đã thử một số phương pháp, bao gồm việc khởi động lại dịch vụ Docker và chạy lại các container, tuy nhiên điều này chỉ là giải pháp tạm thời. Khi thao tác thay đổi quy tắc của CSF và khởi động lại CSF, tình trạng vẫn quay trở lại như lúc đầu.

Một số tài liệu trực tuyến đề xuất sử dụng ETH_DEVICE_SKIP, nhưng điều này không thể áp dụng hoàn toàn với mục đích sử dụng CSF Firewall, vì nó không cho phép áp dụng các quy tắc như giới hạn số lượng request IP hay mở port cho công khai. Đối với trường hợp bạn sử dụng Docker Compose, tình trạng này càng thêm phức tạp, vì khi bạn thực hiện lệnh docker-compose downdocker-compose up, tên card mạng của container sẽ thay đổi.

Để khắc phục vấn đề này, tôi đã quyết định tạo trước mạng lưới với lệnh: docker network create -d bridge app-tier và điều chỉnh phần networks trong tệp cấu hình docker-compose để thêm vào quy định external: true. Cụ thể:

Copy
# ...
networks:
  app-tier:
    external: true

Sau khi tạo xong, bạn có thể kiểm tra NETWORK ID bằng lệnh docker network ls. Với NETWORK ID, bạn có thể xác định card mạng liên quan.

Chẳng hạn, sau khi chạy lệnh ip a | grep "303710c1b8cd", bạn sẽ thấy một đầu ra tương tự như sau:

br-303710c1b8cd là tên card mạng mà bạn cần thiết lập trong cấu hình của CSF Firewall.

Copy
127: br-303710c1b8cd: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default inet 172.19.0.1/16 brd 172.19.255.255 scope global br-303710c1b8cd

Để cấu hình CSF, bạn cần mở file cấu hình tại /etc/csf/csf.conf và thực hiện các thay đổi sau:

  • DOCKER = "1" (mặc định là 0, bạn chuyển sang 1 để kích hoạt)
  • DOCKER_DEVICE = "br-303710c1b8cd" (điền tên card mạng bạn vừa tạo)
  • DOCKER_NETWORK4 = "172.19.0.1/16" (lấy từ thông tin đầu ra ở trên)

Nếu bạn sử dụng IPv6, có thể khai báo dòng DOCKER_NETWORK6, nếu không sử dụng hãy để trống hoặc không thêm vào. Sau khi thực hiện xong, lưu lại cấu hình và chạy lệnh csf -r để khởi động lại CSF với cài đặt mới.

Giờ đây, bạn đã có thể áp dụng các quy tắc của CSF Firewall để bảo mật cho VPS của mình. Trên Internet có rất nhiều tài liệu và bài viết về thực tiễn của CSF Firewall mà bạn có thể tham khảo. Nếu có bất kỳ đề xuất hoặc ý kiến nào về bài viết này, xin vui lòng góp ý để chúng ta cùng nâng cao kiến thức và chia sẻ kiến thức với cộng đồng.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào