Tôi đang chạy máy chủ WireGuard trên Raspberry Pi của mình bằng cách sử dụng https://github.com/linuxserver/docker-wireguard hình ảnh. Tôi muốn cho phép các đồng nghiệp làm hai việc:
- Kết nối với một NAS thông qua SMB
- Ping cùng một NAS
Tôi đã viết các quy tắc iptables sau để lưu trữ cái này (wg0
là giao diện WireGuard, eth0
cái "hướng tới" mạng của tôi):
# Đặt lại (xóa) quy tắc
iptables -t nat -F
iptables -F
# Cho phép lưu lượng WireGuard
iptables --policy INPUT CHẤP NHẬN
iptables --policy ĐẦU RA CHẤP NHẬN
# Từ chối mọi lưu lượng chuyển tiếp theo mặc định
iptables --policy FORWARD DROP
# Cho phép lưu lượng SAMBA đến NAS
NAS="192.168.178.23/32"
iptables -A FORWARD -i wg0 -p tcp --dport 445 -d "$NAS" -m state --state MỚI, LIÊN QUAN, ĐÃ THÀNH LẬP -j CHẤP NHẬN
iptables -A FORWARD -o wg0 -m state --state LIÊN QUAN, THÀNH LẬP -j CHẤP NHẬN
# Cho phép yêu cầu tiếng vang ICMP
iptables -A FORWARD -i wg0 -p icmp --icmp-type 8 -d "$NAS" -m state --state MỚI, LIÊN QUAN, ĐÃ THÀNH LẬP -j CHẤP NHẬN
iptables -A FORWARD -o wg0 -p icmp --icmp-type 0 -m state --state LIÊN QUAN, THÀNH LẬP -j CHẤP NHẬN
# NAT đường hầm IP thành IP nội bộ
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Những thứ này hoạt động, vì vậy khi được kết nối qua WireGuard, tôi có thể ping và gắn NAS qua SMB nhưng tôi không thể ping bất kỳ Dịch vụ nào khác trong mạng hoặc truy cập giao diện HTTP của NAS.
Tuy nhiên, tôi có một vài câu hỏi để hiểu chính xác những gì tôi đã làm:
- Khi thiết lập
ĐẦU VÀO
/ĐẦU RA
chính sách để RƠI VÃI
, không có gì hoạt động. Giả định của tôi là do các gói WireGuard UDP nhận được trên wg0
bị bỏ rơi bởi chính sách?
- Nếu tôi vẫn đặt chính sách và thêm quy tắc vào
CHO PHÉP
lưu lượng truy cập từ / đến wg0
, hậu quả là vùng chứa không thể kết nối với bất kỳ thứ gì thông qua eth0
và chỉ PHÍA TRƯỚC
lưu lượng truy cập từ wg0
?
- Quy định cho phép
LIÊN QUAN, THÀNH LẬP
giao thông qua wg0
chỉ nên đối sánh lưu lượng truy cập đáp ứng TCP:445 hoặc ICMP:echo-request. Không cần phải cụ thể hơn trong đó (ví dụ: cổng/giao thức phù hợp), phải không?
- quy tắc
CHO PHÉP
phản hồi tiếng vang không cần thiết vì quy tắc ít cụ thể hơn cho phép LIÊN QUAN, THÀNH LẬP
lưu lượng truy cập phía trên nó sẽ khớp trước nó, phải không?
- Với tất cả các bộ lọc trên
PHÍA TRƯỚC
chuỗi, giả định của tôi là tôi không cần lọc trên tự nhiên
những cái bàn SAU ĐƯỜNG
chain, bởi vì bất kỳ lưu lượng truy cập nào không dành cho NAS trên TCP:445 hoặc ICM:echo-request sẽ không thể "đi xa" được. Điều này có đúng không?