Điểm:2

Tại sao tường lửa cho phép lưu lượng truy cập công khai đến các cổng không công khai của tôi, bị ràng buộc với bộ chứa Docker?

lá cờ de

Tôi đang cố triển khai một tường lửa khá đơn giản ở Fedora, nơi internet công cộng có thể truy cập SSH, HTTP, HTTPS và Buồng lái, ngoài ra không có gì khác. Trong khi đó, các máy chủ chạy microservice thông qua Docker có thể nói chuyện với nhau trên các cổng 8000-8999.

giản đồ hệ thống

Tôi thiết lập tính năng này trên bản cài đặt Fedora Server mới bằng các lệnh sau:

tường lửa-cmd --zone=public --add-service=buồng lái
tường lửa-cmd --zone=public --add-service=http
tường lửa-cmd --zone=public --add-service=https

tường lửa-cmd --zone=nội bộ --add-source=192.168.1.65
tường lửa-cmd --zone=nội bộ --add-source=192.168.1.66

tường lửa-cmd --zone=nội bộ --add-port=8000-8999/tcp

tường lửa-cmd --runtime-to- Permanent

Khi tôi kiểm tra cấu hình của mình với --liệt kê tất cả, mọi thứ có vẻ chính xác:

> tường lửa-cmd --list-all --zone=nội bộ
nội bộ (hoạt động)
  mục tiêu: mặc định
  icmp-block-đảo ngược: không
  giao diện:
  nguồn: 192.168.1.65 192.168.1.66
  dịch vụ: dhcpv6-client ssh
  cổng: 8000-8999/tcp
  giao thức:
  chuyển tiếp: không
  hóa trang: không
  cổng chuyển tiếp:
  cổng nguồn:
  khối icmp:
  Quy tắc phong phú:

> tường lửa-cmd --list-all --zone=public
công khai (đang hoạt động)
  mục tiêu: mặc định
  icmp-block-đảo ngược: không
  giao diện: enp2s0
  nguồn:
  dịch vụ: buồng lái dhcpv6-client http https ssh
  cổng:
  giao thức:
  chuyển tiếp: không
  hóa trang: không
  cổng chuyển tiếp:
  cổng nguồn:
  khối icmp:
  Quy tắc phong phú:

Tuy nhiên, khi tôi kiểm tra điều này, tôi có thể đánh http://192.168.1.65:8080. Tôi có thể truy cập nó từ một máy trên cùng một mạng nội bộ (192.168.128.128), cũng như yêu cầu công khai từ một máy bên ngoài. Vì không được liệt kê trong nội bộ'S nguồn, tôi cho rằng tường lửa sẽ không cho phép các yêu cầu thông qua.

Tôi có một cấu hình tự động người đóng tàu vùng với docker0 giao diện, nhưng việc xóa giao diện đó dường như không thay đổi khả năng truy cập cổng nội bộ của tôi.

Tại sao tôi có thể yêu cầu thành công :8080 từ các nguồn không được liệt kê trên nội bộ?

Điểm:1
lá cờ de

Chà, hóa ra vấn đề bắt nguồn từ việc tôi đang sử dụng Docker cho các cổng nội bộ của mình. Để đơn giản hóa quá trình giúp các container giao tiếp với thế giới và với nhau, Docker đã lựa chọn kiểm soát phần lớn tường lửa/mạng của bạn. Điều này có nghĩa là nếu bạn đừng muốn vùng chứa của bạn có thể truy cập công khai bạn cần kiểm soát quyền truy cập công cộng thông qua tường lửa trên cùng một máy với trình nền Docker của bạn, bạn cần định cấu hình tường lửa của mình hơi khác một chút. Docker có một số tài liệu chính thức về cách thực hiện việc này. Về cơ bản, bạn có các tùy chọn sau:

  • Thiết lập một máy riêng chỉ dành cho tường lửa của bạn. Đây có lẽ là cách dễ nhất, vì Docker và tường lửa của bạn sẽ không phải chia sẻ tài nguyên.
  • thêm của bạn iptables quy tắc để DOCKER-NGƯỜI DÙNG chuỗi (đây là một câu trả lời cho iptables người dùng; Tôi không chắc chắn làm thế nào để có được tường lửa nhân rộng phương pháp này)
  • Vô hiệu hóa toàn bộ bằng cách thiết lập iptables=false trong cấu hình dịch vụ Docker của bạn. (bài đăng trên blog này thảo luận về tùy chọn này)

tôi cũng vậy tìm thấy một bài mà tôi nghĩ là một biến thể tốt đẹp trên DOCKER-NGƯỜI DÙNG tùy chọn chuỗi. Về cơ bản, bạn tạo một iptables.conf tệp mà bạn có thể tải mà không cần xóa bằng cách sử dụng iptables-khôi phục -n. Thật không may, đó là một iptables giải pháp, không phải là một tường lửa giải pháp.

Một trong những phần khó chẩn đoán vấn đề này là tôi sẽ chạy một tập lệnh để sửa đổi tường lửa cho phù hợp với những gì tôi muốn và nó sẽ hoạt động cho đến khi tôi khởi động lại máy hoặc khởi động trình nền Docker. Docker ghi đè lên iptables config khi nó khởi độ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.