OpenVPN: กำหนดเส้นทางเฉพาะที่อยู่ IP ผ่าน VPN เท่านั้น


44

ในเครือข่ายส่วนตัวระยะไกลมีเซิร์ฟเวอร์สองเครื่อง - ไฟล์เซิร์ฟเวอร์และเซิร์ฟเวอร์ฐานข้อมูล (ทั้งคู่เป็นเครื่องวินในกรณีที่สำคัญ)

ไฟล์เซิร์ฟเวอร์มีกลไกการพิสูจน์ตัวตนที่เชื่อถือได้ค่อนข้างเป็นธรรมและอนุญาตให้ฉันเชื่อมต่อโดยตรงจากสถานที่ห่างไกล

เซิร์ฟเวอร์ฐานข้อมูลใช้ชื่อผู้ใช้และรหัสผ่านง่าย ๆ เพื่อป้องกันการเข้าถึงโดยไม่ได้รับอนุญาตมันถูกล็อคไว้ที่เครือข่ายท้องถิ่น - การรับส่งข้อมูลภายนอกถูกปิดกั้น

ในการเข้าถึงเซิร์ฟเวอร์ฐานข้อมูลฉันใช้ไคลเอ็นต์ OpenVPN บน Windows เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ VPN ในเครือข่ายส่วนตัว

ตามค่าเริ่มต้น OpenVPN กำหนดเส้นทางแพ็กเก็ตเครือข่ายทั้งหมดที่กำหนดไว้สำหรับเครือข่ายระยะไกลที่เซิร์ฟเวอร์ VPN ตั้งอยู่ผ่าน VPN น่าเสียดายที่การเข้าถึงเซิร์ฟเวอร์ไฟล์ผ่าน VPN นั้นช้ามาก !

คำถาม:

ฉันจะกำหนดค่าไคลเอนต์ OpenVPN เพื่อกำหนดเส้นทางทราฟฟิกผ่าน VPN ที่กำหนดไว้สำหรับที่อยู่ IP เดียวที่ระบุ - คือเซิร์ฟเวอร์ฐานข้อมูลได้หรือไม่


ง่ายดูที่นี่เพื่อดูวิธีทำsuperuser.com/a/178675/96461
Sameer

คำตอบ:


49

การกำหนดค่าที่ถูกต้องสำหรับ OpenVpn คือ:

route-nopull 
route 192.168.0.0 255.255.255.0

รายการเหล่านี้อยู่ในไฟล์. vpn ของคุณและจะกำกับการรับส่งข้อมูล subnet ทั้งหมด 192.168.0. * ผ่าน VPN

สำหรับหนึ่ง IP เท่านั้น (192.168.0.1):

route-nopull 
route 192.168.0.1 255.255.255.255

เราส่วนใหญ่พูดภาษาอังกฤษและไม่จำเป็นต้องรู้ภาษาเยอรมัน กรุณาแปลคำตอบของคุณ
gronostaj

1
+1 นี่คือสิ่งที่ฉันต้องการ ฉันใช้ไคลเอนต์ ovpn บน linux ของฉันและด้วยเหตุนี้คุณตอบเพียงช่วยฉัน ขอบคุณ
slayedbylucifer

ฉันสามารถกำหนดเส้นทางเว็บไซต์ไปยัง VPN ได้หรือไม่ตัวอย่างเช่นเพียง www.facebook.com
Nicola Peluchetti

ในกรณีของฉันเส้นทาง IP เดียวผ่าน VPN ดูเหมือนว่าจะทำงาน แต่เมื่อใช้ subnet mask มันไม่ทำงานเลย ความคิดใดทำไม
running.t

ฉันยังไม่รู้คำตอบสำหรับคำถามของฉัน (ด้านบน) แต่ฉันได้ทำการสอบสวนแล้วและได้สร้างเธรดแยกต่างหากเกี่ยวกับมัน: superuser.com/questions/854194/ …
running.t

24

เป้าหมาย

  • ใช้การเชื่อมต่ออินเทอร์เน็ตธรรมดาสำหรับการรับส่งข้อมูลอินเทอร์เน็ตทั้งหมดตามค่าเริ่มต้นแม้ว่าจะเชื่อมต่อ VPN แล้วก็ตาม
  • กำหนดเส้นทางทราฟฟิกไปยังที่อยู่ IP หนึ่งผ่าน VPN

ขั้นตอน

  1. กดWin+ และดำเนินการRncpa.cpl

  2. คลิกขวาที่เชื่อมต่อ VPN และไปที่Properties →เครือข่าย

  3. เลือกโปรโตคอลอินเทอร์เน็ตรุ่นที่ 4และไปที่Properties →ขั้นสูง ...

  4. ยกเลิกการเลือกเกตเวย์เริ่มต้นการใช้งานบนเครือข่ายระยะไกลและคลิกตกลง

  5. (อุปกรณ์เสริม) ทำซ้ำขั้นตอนก่อนหน้านี้สำหรับโปรโตคอลอินเทอร์เน็ตรุ่น 6

  6. (Re) เชื่อมต่อกับ VPN ของคุณ

  7. route print -4เปิดพร้อมรับคำสั่งและดำเนินการ

  8. จุดเชื่อมต่อ VPN ในรายการอินเตอร์เฟซและเกตเวย์ในเส้นทางที่ใช้งานอยู่

    บนเครื่องของฉันฉันมี:

    Interface List
     32...........................Super Free VPN
    
    [...]
    
    Active Routes:
    Network Destination        Netmask          Gateway       Interface  Metric
              0.0.0.0          0.0.0.0         On-link        10.6.6.127     31
             10.0.0.0        255.0.0.0        10.88.1.1      10.88.1.102     31
    

    นี่คือเกตเวย์ของ VPN 10.88.1.1เนื่องจากเป็นเกตเวย์สำหรับ10.xxx.xxx.xxxบล็อก

  9. เพิ่มเส้นทางแบบต่อเนื่องที่จะต่อท้ายเส้นทางที่ใช้งานเมื่อใดก็ตามที่มีการเชื่อมต่อกับ VPN:

    route -p add 23.22.135.169 10.88.1.1 if 32
    

    ในตัวอย่างนี้23.22.135.169เป็น IP ของwhatismyip.org, 10.88.1.1เป็นเกตเวย์ IP และ32จำนวนของอินเตอร์เฟซ

  10. (อุปกรณ์เสริม) route print -6ทำซ้ำขั้นตอนก่อนหน้านี้สำหรับ

  11. ทดสอบการตั้งค่า

    หากทุกอย่างทำงานแล้วwhatismyip.orgและwww.whatismyip.cxจะแสดง IP ที่แตกต่างกันในตอนนี้


1
แน่นอนมีวิธีที่ง่ายกว่า?
Brian Lacy

1
คุณรู้วิธีที่จะประสบความสำเร็จใน Linux หรือไม่?
ЕлинЙ

1
@ ЕлинЙ หากคุณใช้ตัวจัดการเครือข่ายเพียงเลือก "ใช้การเชื่อมต่อนี้เฉพาะกับแหล่งข้อมูลบนเครือข่ายนี้"
leif81

1
+1 ... แต่เล่นกอล์ฟนี้ได้ไหม
Olivier Dulac

11

ในการกำหนดค่าไคลเอนต์ OpenVPN ของคุณให้เพิ่มบรรทัดดังนี้:

route The.IP.To.Go 255.255.255.255

(โดยที่ The.IP.To.Go เป็น IP ที่คุณต้องการกำหนดเส้นทางผ่าน VPN)

สิ่งนี้สั่งให้ OpenVPN สร้างรายการในตารางเส้นทางของระบบปฏิบัติการของคุณ

อีกวิธีหนึ่งคือเซิร์ฟเวอร์ OpenVPN สามารถทำเพื่อ "ผลักดัน" การกำหนดค่าการกำหนดเส้นทางนี้ลงไปยังลูกค้าโดยการเพิ่มการกำหนดค่าเซิร์ฟเวอร์:

push "route The.IP.To.Go 255.255.255.255"

แก้ไข: สิ่งหนึ่งที่ฉันพลาดที่อยู่ - การส่งต่อเริ่มต้นของการรับส่งข้อมูลทั้งหมด ... อาจถูกปิดการใช้งานบนเซิร์ฟเวอร์หรือลูกค้าสามารถเลือกที่จะเพิกเฉยกับคำสั่ง "ผลักดัน" (ดังนั้นตัวเลือกที่สองของเรา "ส่ง" เส้นทางจะไม่ทำงาน ) ผ่าน:

route-nopull

-2
iptables -A PREROUTING -t mangle -i <LAN_interface> \
-d <remote_network>/<remote_netmask> -j ROUTE --gw <openvpn_host_ip>

โปรดอธิบายสิ่งที่คำสั่งนี้ทำ คำสั่งเดียวที่ไม่มีคำอธิบายนั้นไม่มีประโยชน์ ตรวจสอบการจัดรูปแบบโพสต์ของคุณด้วย - ทั้งหมด<brackets>จะไม่ปรากฏหากไม่ได้ทำเครื่องหมายเป็นรหัส
slhck
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.