Điểm:0

Cách chặn giao tiếp vùng chứa (172.17.0.0/16) ngoại trừ cổng mặc định với iptables

lá cờ cn

Tôi đang sử dụng docker để chạy container.
Tôi không muốn các vùng chứa có quyền truy cập vào các vùng chứa khác nhưng tôi muốn chúng vẫn có quyền truy cập vào giao tiếp bên ngoài như sử dụng cập nhật apt.

Mạng container là 172.17.0.0/16, nếu tôi chỉ chặn như vậy:

iptables -I FORWARD -i docker0 -d 172.17.0.0/16 -j DROP

Nó hoạt động nhưng sau đó họ không thể sử dụng cập nhật apt, nó không thể tìm thấy nơi để tải xuống vì có thể nó đi ra khỏi cổng.
Vì vậy, tôi muốn cho phép kết nối với cổng (172.17.0.1) vì vậy tôi đã cố gắng cho phép nó như vậy:

iptables -A INPUT -i docker0 -d 172.17.0.1/32 -j CHẤP NHẬN
iptables -A OUTPUT -o docker0 -d 172.17.0.1/32 -j CHẤP NHẬN

Nhưng vấn đề vẫn tồn tại, nó không thể sử dụng cập nhật apt:

Err:1 http://archive.ubuntu.com/ubuntu tiêu điểm InRelease
  Lỗi tạm thời khi giải quyết 'archive.ubuntu.com'

Chỉ khi tôi xóa quy tắc chặn, nó mới hoạt động trở lại:

iptables -I FORWARD -i docker0 -d 172.17.0.0/16 -j DROP
A.B avatar
lá cờ cl
A.B
Tôi không thể tái tạo vấn đề của bạn. Chạy hai bộ chứa debian với 172.17.0.2 và 172.17.0.3 trên docker0, chúng không thể giao tiếp với quy tắc FORWARD DROP của bạn (nhân tiện, đó là do Docker kích hoạt `net.bridge.bridge-nf-call-iptables`), nhưng chúng không gặp bất kỳ sự cố nào khi truy cập Máy chủ thông qua 172.17.0.1 , bao gồm các yêu cầu DNS hoặc chạy thành công `apt update` và `apt install hello`.
A.B avatar
lá cờ cl
A.B
Có thể bạn có các quy tắc chặn khác và bạn chỉ cần như đã làm với FORWARD, để thay thế `-A` này bằng `-I`.
A.B avatar
lá cờ cl
A.B
Hoặc DNS của bạn được xử lý bởi một bộ chứa... hoặc một proxy... bạn sẽ phải thực hiện các kiểm tra riêng biệt với IP và DNS để tìm ra điều gì sai
A.B avatar
lá cờ cl
A.B
Và nhận xét cuối cùng nhưng không kém phần quan trọng: bạn phải tạo các mạng bổ sung và chạy các vùng chứa trong đó để cách ly thay vì phải tự mày mò (thay vì Docker) với các quy tắc. https://docs.docker.com/network/network-tutorial-standalone/#use-user-define-bridge-networks
Điểm:0
lá cờ sb

Điều này sẽ cho phép bạn dừng liên lạc giữa các vùng chứa:

Tạo một mạng với ICC bị vô hiệu hóa:

tạo mạng docker -o com.docker.network.bridge.enable_icc=false my_secure_bridge

Thử nghiệm với việc tạo hai vùng chứa:

docker run --name cnt1 --network=my_secure_bridge -it --rm -d alpine
docker run --name cnt2 --network=my_secure_bridge -it --rm -d alpine
docker kiểm tra cnt1 | grep -i 172
    "Cổng": "172.19.0.1",
    "Địa chỉ IP": "172.19.0.2",
docker kiểm tra cnt2 | grep -i 172
    "Cổng": "172.19.0.1",
    "Địa chỉ IP": "172.19.0.3",

exec thành một và kiểm tra:

docker exec -it cnt1 sh

kiểm tra kết nối với thế giới bên ngoài:

/ # ping -c 3 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 byte dữ liệu
64 byte từ 8.8.8.8: seq=0 ttl=114 time=0,852 ms
64 byte từ 8.8.8.8: seq=1 ttl=114 time=0,990 ms
64 byte từ 8.8.8.8: seq=2 ttl=114 time=0,808 ms
--- Thống kê ping 8.8.8.8 ---
Truyền 3 gói, nhận 3 gói, mất gói 0%
khứ hồi tối thiểu/trung bình/tối đa = 0,808/0,883/0,990 mili giây

kiểm tra kết nối với vùng chứa khác:

/ # ping -w 5 172.19.0.3
PING 172.19.0.3 (172.19.0.3): 56 byte dữ liệu
--- Thống kê ping 172.19.0.3 ---
Truyền 5 gói, nhận 0 gói, mất gói 100%
djdomi avatar
lá cờ za
nhưng lợi ích bảo mật là gì, trong trường hợp các container không thể kết nối với nhau?
jabbson avatar
lá cờ sb
@djdomi, lợi ích là điều này sẽ giải quyết vấn đề trong phần mô tả, trong đó người bắt đầu chủ đề đã nêu rằng họ "muốn các vùng chứa có quyền truy cập vào các vùng chứa khác nhưng tôi muốn chúng vẫn có quyền truy cập vào giao tiếp bên ngoài".
djdomi avatar
lá cờ za
viết tai nạn đánh máy? bạn nói tất cả phải truy cập ở mọi nơi, đó là hành vi mặc định nếu được định cấu hình đúng?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.