Score:0

WireGuard อนุญาตให้เข้าถึงบริการเดียวบนเครือข่าย

ธง cn

ฉันใช้เซิร์ฟเวอร์ WireGuard บน Raspberry Pi โดยใช้ไฟล์ https://github.com/linuxserver/docker-wireguard ภาพ. ฉันต้องการอนุญาตให้เพื่อนทำสองสิ่ง:

  1. เชื่อมต่อกับ NAS เดียวผ่าน SMB
  2. ปิง NAS เดียวกัน

ฉันได้เขียนกฎ iptables ต่อไปนี้เพื่อเก็บสิ่งนี้ (wg0 เป็นอินเตอร์เฟส WireGuard eth0 หนึ่ง "ต่อ" เครือข่ายของฉัน):

# รีเซ็ต (ล้าง) กฎ
iptables -t แนท -F
iptables -F

# อนุญาตการรับส่งข้อมูล WireGuard
iptables --นโยบายอินพุตที่ยอมรับ
iptables -- นโยบายเอาต์พุตที่ยอมรับ

# ปฏิเสธการรับส่งข้อมูลล่วงหน้าตามค่าเริ่มต้น
iptables -- นโยบาย FORWARD DROP

# อนุญาตการรับส่งข้อมูล SAMBA ไปยัง NAS
NAS="192.168.178.23/32"
iptables -A FORWARD -i wg0 -p tcp --dport 445 -d "$NAS" -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o wg0 -m state --state RELATED,ESTABLISHED -j ยอมรับ

# อนุญาตคำขอเสียงสะท้อน ICMP
iptables -A FORWARD -i wg0 -p icmp --icmp-type 8 -d "$NAS" -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o wg0 -p icmp --icmp-type 0 -m state --state RELATED,ESTABLISHED -j ยอมรับ

# NAT ทันเนล IP เป็น IP ภายใน
iptables -t nat -A โพสต์ -o eth0 -j MASQUERADE

งานเหล่านี้ ดังนั้นเมื่อเชื่อมต่อผ่าน WireGuard ฉันสามารถ ping และเมานต์ NAS ผ่าน SMB ได้ แต่ฉันไม่สามารถ ping บริการอื่นใดในเครือข่ายหรือเข้าถึงอินเทอร์เฟซ HTTP ของ NAS

อย่างไรก็ตาม ฉันมีคำถามสองสามข้อเพื่อทำความเข้าใจว่าฉันได้ทำอะไรไปบ้าง:

  1. เมื่อตั้งค่า ป้อนข้อมูล/เอาต์พุต นโยบายที่จะ หยดไม่มีอะไรทำงาน ข้อสันนิษฐานของฉันคือเป็นเพราะได้รับแพ็กเก็ต WireGuard UDP wg0 นโยบายจะตกหล่นหรือไม่
  2. หากฉันตั้งค่านโยบายและเพิ่มกฎเข้าไป อนุญาต การจราจรจาก/ถึง wg0ผลกระทบคือคอนเทนเนอร์ไม่สามารถเชื่อมต่อกับสิ่งใดได้ eth0 และเท่านั้น ซึ่งไปข้างหน้า การจราจรจาก wg0?
  3. กฎอนุญาตให้ ที่เกี่ยวข้องจัดตั้งขึ้น สัญจรผ่าน wg0 ควรจับคู่การรับส่งข้อมูลที่ตอบสนองต่อ TCP:445 หรือ ICMP:echo-request เท่านั้น ไม่จำเป็นต้องเจาะจงมากกว่านี้ (เช่น จับคู่พอร์ต/โปรโตคอล) ใช่ไหม
  4. กฎ อนุญาตไม่จำเป็นต้องใช้การตอบสนองแบบสะท้อนกลับเนื่องจากกฎที่อนุญาตน้อยกว่า ที่เกี่ยวข้องจัดตั้งขึ้น การจราจรด้านบนจะตรงกันก่อนใช่ไหม
  5. ด้วยการกรองทั้งหมดบน ซึ่งไปข้างหน้า chain สมมติฐานของฉันคือฉันไม่จำเป็นต้องกรองใน แนท ตาราง โพสต์ chain เนื่องจากทราฟฟิกใด ๆ ที่ไม่ใช่สำหรับ NAS บน TCP:445 หรือ ICM:echo-request จะไม่ทำให้มัน "ไกลขนาดนี้" อยู่ดี ถูกต้องหรือไม่
Score:1
ธง 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

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา