ฉันมีเครื่องหนึ่งเครื่องใน AWS EC2 ที่ใช้ Ubuntu 16.04 (B) โดยมี Wireguard ทำงานเป็นเซิร์ฟเวอร์ VPN สำหรับอุปกรณ์ Road Warrior (C)
ฉันจะพยายามร่างไว้ด้านล่าง:
+-----+ +-----+ +-----+
| | ---------------------------> | | ------------------------->| |
| ก | 172.30.0.5/59 172.30.0.6/59 | ข | 10.70.0.1/24 10.70.0.2/32 | ค |
| | ens5 eth0 | | wg0 wg0 | |
+-----+ +-----+ +-----+
ฉันต้องการกำหนดเส้นทางการรับส่งข้อมูลที่ส่งถึง 10.70.0.0/24
จาก (A) ถึง (C) ผ่าน (B)
ฉันลองกำหนดค่าต่อไปนี้:
บนโฮสต์ (A):
เส้นทาง ip เพิ่ม 10.70.0.0/24 ผ่าน 172.30.0.6
กลุ่มความปลอดภัย EC2 อนุญาตให้ทราฟฟิกทั้งหมดเข้าและออก 172.16.0.0/12
.
บนโฮสต์ (B):
sysctl -w net.ipv4.ip_forward1
ufw อนุญาตจาก 172.16.0.0/12
เส้นทาง ufw อนุญาตใน wg0
iptables -t nat -A โพสต์ -s 172.16.0.0/12 -o wg0 -j MASQUERADE
ฉันได้ยืนยันการส่งต่อเปิดใช้งานสำหรับอินเทอร์เฟซทั้งหมดตามที่อธิบายไว้ที่นี่: https://askubuntu.com/a/923292
net.ipv4.conf.eth0.forwarding = 1
net.ipv4.conf.wg0.forwarding = 1
กลุ่มความปลอดภัย EC2 อนุญาตให้ทราฟฟิกทั้งหมดเข้าและออก 172.16.0.0/12
.
ฉันยังลองตั้งค่า DEFAULT_FORWARD_POLICY="ยอมรับ"
ใน /etc/default/ufw
.
ฉันนึกไม่ออกว่ามีอะไรขาดหายไปอีกบ้าง ฉันไม่สามารถรับแพ็กเก็ตที่จะส่งผ่านได้ บนโฮสต์ (B) iptables
ไม่เห็นแพ็คเก็ตใด ๆ ที่จะผ่านมัน ซึ่งไปข้างหน้า
โซ่:
iptables -nv -L ไปข้างหน้า
เชน FORWARD (นโยบายยอมรับ 0 แพ็กเก็ต 0 ไบต์)
pkts bytes target prot เลือกใช้ปลายทางต้นทาง
0 0 ufw-ก่อนเข้าสู่ระบบ-ส่งต่อทั้งหมด -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ufw-ก่อนส่งต่อ ทั้งหมด -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ufw-หลังจากนั้นทั้งหมด -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ufw-หลังจากเข้าสู่ระบบ-ส่งต่อทั้งหมด -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ufw-ปฏิเสธ-ส่งต่อทั้งหมด -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ufw-track-forward ทั้งหมด -- * * 0.0.0.0/0 0.0.0.0/0