- vừa được xem lúc

DOCKER NETWORK hoạt động với CSF FIREWALL

0 0 16

Người đăng: Luna

Theo Viblo Asia

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.

image.png

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.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Đề thi interview DevOps ở Châu Âu

Well. Chào mọi người, mình là Rice - một DevOps Engineers ở đâu đó tại Châu Âu.

0 0 88

- vừa được xem lúc

In calculus, love also means zero.

Mình nhớ hồi năm 2 đại học, thầy giáo môn calculus, trong một giây phút ngẫu hứng, đã đưa ra cái definition này. Lúc đấy mình cũng không nghĩ gì nhiều.

0 0 65

- vừa được xem lúc

Chuyện thay đổi

Thay đổi là một thứ gì đó luôn luôn đáng sợ. Cách đây vài tháng mình có duyên đi làm cho một banking solution tên là X.

0 0 47

- vừa được xem lúc

Pet vs Cattle - Thú cưng và gia súc

Khái niệm. Pets vs Cattle là một khái niệm cơ bản của DevOps. Bài viết này sẽ nói về sự phát triển của các mô hình dịch vụ từ cốt lõi Pets and Cattle. 1.

0 0 33

- vừa được xem lúc

Git workflow được Google và Facebook sử dụng có gì hay ho

Với developer thì Git hẳn là công cụ rất quen thuộc và không thể thiếu rồi. Thế nhưng có mấy ai thực sự hiểu được Git.

0 0 85

- vừa được xem lúc

Kubernetes - Học cách sử dụng Kubernetes Namespace cơ bản

Namespace trong Kubernetes là gì. Tại sao nên sử dụng namespace.

0 0 112