DOCKER NETWORK hoạt động với CSF FIREWALL
I. Giới thiệu
Nếu là quản trị hệ thống Linux thì các bạn cũng đã nghe và làm việc với CSF Firewall, mình sử dụng để cấu hình cho VPS cơ bản các tính năng quản lý Port, hạn chế request từ 1 IP áp dụng cho các trường hợp quá nhiều request gây full tài nguyên VPS, các trường hợp DDOS. Nhưng gần đây mình có làm lab về container gặp vấn đề khi sử dụng với CSF, khi cấu hình thêm rule cho CSF sẽ restart và khi đó sẽ ảnh hưởng network của các docker container.
II. Các giải pháp và vấn đề gặp phải
Mình có tham khảo cách xử lý như restart service docker và chạy lại container thì đúng là hết bị nhưng nếu mình thao tác liên quan rule CSF và restart CSF sẽ tình trạng vẫn sẽ xảy ra như trước đó.
Xem bài viết ở một website có đề cập thêm name card network mà continer đang sử dụng vào ETH_DEVICE_SKIP trong config của CSF nhưng nó sẽ không nhận các rule như giới hạn IP request, open port public ra bên ngoài, hoàn toàn không đúng mục đích khi sử dụng CSF Firewall. Chưa kể khi bạn dùng docker compose thì khi docker compose down và docker compose up thì name card network của container dùng lại bị đổi. Để khắc phục vấn đề name card network thì mình sẽ tạo sẵn network trước với câu lệnh docker network create -d bridge app-tier và điều chỉnh ở phần network trong docker compose file services thêm external: true chi tiết các bạn tham khảo link tại đây.
# ...
networks:
app-tier:
external: true
Sau khi tạo hoàn tất các bạn sẽ check NETWORK ID với câu lệnh docker network ls vậy lấy NETWORK ID để làm gì thì chúng ta cùng tới bước tiếp theo.
Như trong ảnh mình đã có NETWORK ID là 303710c1b8cd và chạy lệnh ip a | grep "303710c1b8cd" các bạn sẽ nhận được kết quả như bên dưới vậy br-303710c1b8cd chính là name card network giờ chỉ cần khai báo vào config của CSF Firewall.
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ụ thể path file config CSF là /etc/csf/csf.conf các bạn mở lên và tìm các dòng bên dưới.
DOCKER = "1" (mặc định là 0 disable, các bạn chuyển sang 1 enable) DOCKER_DEVICE = "br-303710c1b8cd" (name card network các bạn điền vào đây) DOCKER_NETWORK4 = "172.19.0.1/16" (lấy từ thông tin khi mình chạy ip a | grep "303710c1b8cd" check ra)
Có dòng DOCKER_NETWORK6 các bạn có thể điền IPv6 nếu sử dụng hoặc bỏ trống nội dung bên trong là disable. Mình không sử dụng nên sẽ không khai báo. Đến đây là xong rồi, các bạn lưu cấu hình của điều chỉnh và chạy csf -r nhằm restart CSF nhận các cấu hình vừa điều chỉnh.
Giờ đây các bạn có thể sử dụng các rule của CSF để tăng độ bảo mật cho VPS, Server. Trên internet có nhiều bài về ứng dụng thực tiễn của CSF các bạn có thể tham khảo.
Mang tính chất vọc vạch, các bạn cũng có thể tham khảo các bên github thấy có mấy bài viết đề cập hoạt fix thành công nhưng mình chưa thử. Bài viết nếu có thiếu sót mong các bạn góp ý cho bài viết đầu tay chia sẻ tới cộng đồng này.
All Rights Reserved