บริบท
ฉันผสานรวมสำเร็จแล้ว ไวร์การ์ด ใน LAN ของฉัน เพื่อให้ฉันสามารถเข้าถึง NAS (192.168.1.45) จากภายนอกได้
|เราเตอร์| ===:5182=> |เซิร์ฟเวอร์ VPN| ====> |NAS|
192.168.1.254 192.168.1.21 (wlan0) 192.168.1.45
10.10.10.1 (wg0)
การส่งต่อแพ็คเก็ตผ่านเซิร์ฟเวอร์ VPN ของฉันขึ้นอยู่กับ:
- ip ส่งต่อใน
/etc/sysctl.conf
(เปรียบเทียบ สคริปต์ของฉัน)
- เพิ่มกฎต่อไปนี้ (-ก) เมื่ออินเตอร์เฟสของ wireguard (wg0) ขึ้น
PostUp = iptables -A ส่งต่อ -i wg0 -j ยอมรับ; iptables -t nat -A โพสต์ -o $main_nic -j MASQUERADE; ip6tables -A ไปข้างหน้า -i wg0 -j ยอมรับ; ip6tables -t nat -A โพสต์ -o $main_nic -j MASQUERADE
(นี่คือคำสั่ง wireguard ดำเนินการเมื่อฉันหยุด wg0)
PostDown = iptables -D ส่งต่อ -i wg0 -j ยอมรับ; iptables -t nat -D โพสต์ -o $main_nic -j MASQUERADE; ip6tables -D ส่งต่อ -i wg0 -j ยอมรับ; ip6tables -t nat -D โพสต์ -o $main_nic -j MASQUERADE
ความต้องการ
วิธีนี้ใช้งานได้ดี แต่ฉันจะจำกัดสิ่งต่างๆ ได้อย่างไรเพื่อให้ไคลเอนต์เข้าสู่ LAN ของฉันผ่านจุดเข้าใช้งาน VPN นี้สามารถเข้าถึง 192.168.1.45 เท่านั้นและไม่มี IP อื่น เข้ากับ การส่งต่อไอพี?
จะเป็นการดีถ้าสิ่งนี้สามารถจัดการได้ทั้งหมดใน โพสต์อัพ โพสต์ลง คำสั่งของ wireguard (โดยไม่ขึ้นกับกฎก่อนหน้านี้ในระบบ) สิ่งนี้จะน่าทึ่งมาก ลองบ้างแล้ว แต่เอาเถอะ ฉันเป็นนักพัฒนามากกว่าผู้ดูแลระบบเครือข่าย