Điểm:0

WireGuard cho phép truy cập vào một dịch vụ duy nhất trên mạng

lá cờ cn

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:

  1. Kết nối với một NAS thông qua SMB
  2. 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:

  1. 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?
  2. 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?
  3. 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?
  4. quy tắc CHO PHÉPphả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?
  5. 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?
Điểm:1
lá cờ cn

To answer your questions briefly:

  1. Yes
  2. The INPUT/OUTPUT chains are used for connections to/from local sockets on all interfaces (lo, eth0, wg0, etc). Usually you don't want to block everything outbound by default because you'll end up spending time troubleshooting things you normally take for granted (DNS, DHCP, NTP, misc processes using loopback connections, etc)
  3. Yes. Usually it's fine to just allow all RELATED,ESTABLISHED without any additional conditions (if you already allowed a connection through one way, symmetrical responses going back the other way should be fine too)
  4. Yes
  5. Yes

I think this iptables processing flowchart will also help you better understand how this works:

iptables Processing Flowchart

This is how I would write your rules:

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# INPUT chain of filter table:

# drop known bad packets
iptables -A INPUT -m state --state INVALID -j DROP
# accept responses to established connections
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# accept ICMP packets
iptables -A INPUT -p icmp -J ACCEPT
# accept loopback connections
iptables -A INPUT -i lo -J ACCEPT
# accept connections to WireGuard listen port
iptables -A INPUT -p udp --dport 51820 -J ACCEPT

# FORWARD chain of filter table:

# drop known bad packets
iptables -A FORWARD -m state --state INVALID -j DROP
# forward responses to established connections
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
# forward ICMP packets from WireGuard network to NAS
iptables -A FORWARD -i wg0 -d 192.168.178.23 -p icmp -J ACCEPT
# forward SMB connections from WireGuard network to NAS
iptables -A FORWARD -i wg0 -d 192.168.178.23 -p tcp --dport 445 -J ACCEPT

# POSTROUTING chain of nat table:

# masquerade all packets forwarded to LAN
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Đă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.