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.
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ộ
?