สถานะเป้าหมาย : ให้การรับส่งข้อมูลจากคอมพิวเตอร์เครื่องหนึ่งบน LAN ของฉันใช้การตั้งค่าช่องสัญญาณ VPN ระหว่างเราเตอร์ของฉันและผู้ให้บริการ OpenVPN และทำให้การรับส่งข้อมูลอื่น ๆ ไม่ได้รับผลกระทบใด ๆ
นี่คือข้อมูลที่เกี่ยวข้องเกี่ยวกับเราเตอร์ของฉัน:
- รุ่น: Netgear WNDR3400
- รหัส FCC: PY309300116
- เฟิร์มแวร์: md-WRT v24-sp2 (12/08/11) ขนาดใหญ่สร้าง 17990M
- ที่พร้อมท์เราเตอร์ (ผ่าน
ssh)
root @ hermes # nvram show | ไบต์ grep ขนาด: 33129 ไบต์ (32407 ซ้าย)
เราเตอร์ DD-WRT ( hermes 10.1.1.1 ) ได้รับการกำหนดค่าเป็นไคลเอนต์ OpenVPN และเชื่อมต่อกับเซิร์ฟเวอร์ OpenVPN ( คบเพลิง 10.8.0.1 ) ได้สำเร็จ
ฉันทดสอบสิ่งนี้ด้วยการวิ่งtail -f /var/log/openvpn.logบนTorchwoodและวิ่งping 10.8.0.1บนHermesรวมถึงการตรวจสอบเนื้อหาของ/tmp/var/log/openvpn.logบนHermes - ฉันสามารถเห็นTorchwoodได้รับปริมาณปิงจากHermesแน่นอน
สิ่งที่ฉันพยายามทำคือใช้การกำหนดเส้นทางนโยบายอย่างง่ายเพื่อให้คอมพิวเตอร์เครื่องอื่น ( โซโลมอน 10.1.1.20 ) บน LAN ของฉันจะรับส่งข้อมูลทั้งหมดผ่านการเชื่อมต่อ VPN อย่างไรก็ตามความพยายามของฉันในการตั้งค่าตารางตามตัวอย่างไม่ประสบความสำเร็จ
นี่คือขั้นตอนที่ฉันทำ:
- ด้วยการใช้ UI เว็บของเราเตอร์ฉันวางสิ่งต่อไปนี้เป็นสคริปต์ไฟร์วอลล์:
iptables -I อินพุต 1 -p tcp - พอร์ต 1194 -j ยอมรับ iptables -I ไปข้างหน้า 1 - แหล่งที่มา 10.8.0.0/24 -j ได้รับการยอมรับ iptables -I ไปข้างหน้า -i br0 -o tun1 -j ยอมรับ iptables -I ไปข้างหน้า -i tun1 -o br0 -j ยอมรับ
- ฉันบันทึกสคริปต์ไฟร์วอลล์และรีบูตเราเตอร์
- บนคอมพิวเตอร์ที่แยกต่างหาก ( ลาร์ส ) ฉัน ssh เข้าไปhermes
- ในHermesฉันเรียกใช้คำสั่งต่อไปนี้:
root @ hermes # mkdir / tmp / etc / iproute2 root @ hermes # echo "200 ovpn" >> / tmp / etc / iproute2 / rt_tables root @ hermes # ip rule เพิ่มจาก 10.1.1.20 lookup ovpn ทั้งหมด root @ hermes # ip route เพิ่มค่าเริ่มต้นผ่าน 10.8.0.1 dev tun1 table ovpn root @ hermes # ip flush flush cache
ผลลัพธ์ที่ได้คือiproute2โฟลเดอร์ถูกสร้างขึ้นและ200 ovpnเป็นเนื้อหาของrt_tablesไฟล์ในโฟลเดอร์นั้น อย่างไรก็ตามเมื่อฉันเรียกใช้:
รายการกฎ root @ hermes # ip
0: จากการค้นหาในท้องถิ่นทั้งหมด
32766: จากการค้นหาหลักทั้งหมด
32767: จากค่าเริ่มต้นของการค้นหาทั้งหมด
root @ hermes # ip route แสดงตาราง ovpn
root @ hermes # ip แสดงตารางเส้นทางทั้งหมด
10.8.0.5 dev tun1 src 10.8.0.6
XYZ1 dev vlan2
10.8.0.0/24 ผ่าน 10.8.0.5 dev tun1
10.1.10.0/24 ผ่าน 10.8.0.5 dev tun1
10.1.1.0/24 dev br0 src 10.1.1.1
XYZ0 / 21 dev vlan2 src XYZW
169.254.0.0/16 dev br0 src 169.254.255.1
127.0.0.0/8 dev แท้จริง
เริ่มต้นผ่าน XYZ1 dev vlan2
ออกอากาศ 127.255.255.255 dev lo src 127.0.0.1
ออกอากาศ XYZ0 dev vlan2 src XYZW
ท้องถิ่น 169.254.255.1 dev br0 src 169.254.255.1
ท้องถิ่น 10.8.0.6 dev tun1 src 10.8.0.6
ออกอากาศ XYZ255 dev vlan2 src XYZW
ออกอากาศ 169.254.0.0 dev br0 src 169.254.255.1
ออกอากาศ 10.1.1.255 dev br0 src 10.1.1.1
ออกอากาศ 169.254.255.255 dev br0 src 169.254.255.1
ท้องถิ่น XYZW dev vlan2 src XYZW
ออกอากาศ 127.0.0.0 dev lo src 127.0.0.1
การออกอากาศ 10.1.1.0 dev br0 src 10.1.1.1
ท้องถิ่น 127.0.0.1 dev แท้จริง src 127.0.0.1
ท้องถิ่น 10.1.1.1 dev br0 src 10.1.1.1
ท้องถิ่น 127.0.0.0/8 dev แท้จริง src 127.0.0.1
root @ hermes # ifconfig tun1
การเชื่อมต่อ tun1 ลิงก์: UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr: 10.8.0.6 PtP: 10.8.0.5 รูปแบบ: 255.255.255.255
POINTOPOINT RUNNING NOARP MULTICAST MTU: 1500 เมตริก: 1
แพ็คเก็ต RX: 3 ข้อผิดพลาด: 0 ลดลง: 0 overruns: 0 เฟรม: 0
แพ็กเก็ต TX: 3 ข้อผิดพลาด: 0 ลดลง: 0 overruns: 0 ผู้ให้บริการ: 0
การชน: 0 txqueuelen: 100
จำนวนไบต์: 252 (252.0 B) TX ไบต์: 252 (252.0 B)
ทั้งคำสั่งไม่แสดงข้อมูลที่ฉันเพิ่งเพิ่มเข้าไป ฉันได้ลองเพิ่มคำสั่งลงในสคริปต์เริ่มต้นในเราเตอร์เว็บ UI และ/tmp/openvpn/route-up.shไม่มีผลลัพธ์
- วิธีที่ถูกต้องในการทำเช่นนี้เพื่อให้การกำหนดค่ายังคงอยู่?
- สคริปต์ไฟร์วอลล์จำเป็นอย่างยิ่งหรือไม่?
- การตั้งค่านี้จะบรรลุเป้าหมายในการทำให้โซโลมอนผ่าน VPN และทำให้ทราฟฟิกอื่น ๆ ไม่ได้รับผลกระทบหรือไม่?
นอกจากนี้ : มีทางเลือกอื่นไหม? ตัวอย่างเช่นบางทีถ้าฉันข้ามการตั้งค่า VPN บนเราเตอร์และสร้างลิงก์ OpenVPN จากโซโลมอนโดยตรงไปที่Torchwood แทนฉันต้องเปลี่ยนตารางเส้นทางบนโซโลมอนแทนหรือไม่