Score:0

เส้นทาง OpenVPN ไปยังเซิร์ฟเวอร์เองผ่านอุโมงค์

ธง cn

ฉันต้องการใช้การเชื่อมต่อ OpenVPN เพื่อเข้าถึงแหล่งข้อมูลในเครื่องของฉัน ฉันมี iptables กำหนดให้อนุญาตการเชื่อมต่อจาก 192.168.1.0/24 เครือข่ายย่อย เมื่อฉันเชื่อมต่อจากโทรศัพท์หรือเครื่อง Windows ทุกอย่างทำงานได้ดี แต่เมื่อฉันพยายามเชื่อมต่อจาก Ubuntu มันไม่ได้

หลังจากตรวจสอบ tcpdump และอ่านบันทึกจำนวนมาก ฉันเห็นว่าแพ็กเก็ตจากอูบุนตูมี SRC=ไอพีขาวจริง ในขณะที่โทรศัพท์หรือ Windows SRC = local tunnel ip และทำงานได้ตามที่คาดไว้

จากนั้นฉันตรวจสอบเส้นทางของฉันเมื่อเชื่อมต่อกับ VPN และพบสิ่งต่อไปนี้ (สมมติว่า 77.77.77.77 - เซิร์ฟเวอร์ OpenVPN 192.168.8.1 - เราเตอร์ของฉัน):

เกตเวย์ปลายทาง Genmask ตั้งค่าสถานะการอ้างอิงเมตริก ใช้ Iface
0.0.0.0 192.168.255.5 0.0.0.0 UG 50 0 0 ตัน0
0.0.0.0 192.168.8.1 0.0.0.0 ยูจี 600 0 0 wlp2s0
77.77.77.77 192.168.8.1 255.255.255.255 UGH 600 0 0 wlp2s0
192.168.8.0 0.0.0.0 255.255.255.0 คุณ 600 0 0 wlp2s0
192.168.8.1 0.0.0.0 255.255.255.255 UH 600 0 0 wlp2s0
192.168.255.1 192.168.255.5 255.255.255.255 UGH 50 0 0 ตัน0
192.168.255.5 0.0.0.0 255.255.255.255 UH 50 0 0 ตัน0

ฉันเชื่อว่าต้นตอของปัญหาคือ:

77.77.77.77 192.168.8.1 255.255.255.255 UGH 600 0 0 wlp2s0

ตามที่บอกว่าใช้เราเตอร์ของฉันเป็นเกตเวย์เพื่อเข้าถึงเซิร์ฟเวอร์ VPN ด้วยเหตุนี้ ฉันจึงเห็นที่อยู่ IP จริงของฉันแทนที่จะเป็นที่อยู่ IP ของช่องสัญญาณ

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

77.77.77.77 192.168.255.5 255.255.255.255 UGH 600 0 0 ตัน0

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

ของฉัน เซิร์ฟเวอร์.conf:

เซิร์ฟเวอร์ 192.168.255.0 255.255.255.0
กริยา 3
คีย์ /etc/openvpn/pki/private/vpn.example.com.key
ca /etc/openvpn/pki/ca.crt
ใบรับรอง /etc/openvpn/pki/issued/vpn.example.com.crt
dh /etc/openvpn/pki/dh.pem
tls-auth /etc/openvpn/pki/ta.key
ทิศทางคีย์ 0
Keepalive 10 60
คีย์คงอยู่
คงอยู่-tun
โปรโตคอล udp
พอร์ต 1194
การพัฒนา tun0
สถานะ /tmp/openvpn-status.log
ผู้ใช้ไม่มีใคร
กลุ่มโนกรุ๊ป
เส้นทาง 192.168.254.0 255.255.255.0
กด "บล็อกนอก DNS"
กด "dhcp-option DNS 192.168.1.1"
กด "dhcp-option DOMAIN lan"

ของฉัน client.ovpn:

ลูกค้า
ไม่ผูกมัด
ทุนพัฒนา
เซิร์ฟเวอร์ระยะไกล cert-tls
vpn.example.com ระยะไกล 1194 udp
...ใบรับรอง...
ทิศทางที่สำคัญ 1
เปลี่ยนเส้นทางเกตเวย์ def1
Tom Yan avatar
in flag
ดูเหมือนว่าคุณกำลังพูดถึงปัญหาที่ไม่เกี่ยวข้องกันสองปัญหา การเข้าถึงบริการอื่น ๆ บนโฮสต์เซิร์ฟเวอร์ VPN ของคุณหรือโฮสต์อื่น ๆ ใน LAN ของเซิร์ฟเวอร์นั้นไม่เกี่ยวข้องกับเส้นทางที่อยู่ระยะไกล โปรดอธิบายเป้าหมายของคุณให้ชัดเจน (โดยไม่ต้องเดาเอาเอง) และการตั้งค่า (เช่นโฮสต์เซิร์ฟเวอร์ VPN ของคุณอยู่เบื้องหลัง NAT หรือมีการกำหนดค่า IP สาธารณะโดยตรงหรือไม่)
ihorc avatar
cn flag
ฉันต้องการเข้าถึงบริการที่โฮสต์บนเซิร์ฟเวอร์ VPN ของฉันโดยใช้ชื่อโดเมน เช่น https://mysite.example.com ซึ่งชี้ไปที่ 77.77.77.77 โฮสต์เซิร์ฟเวอร์ VPN อยู่เบื้องหลัง NAT แต่การกำหนดค่าไฟร์วอลล์และการส่งต่อพอร์ตทั้งหมดทำอย่างถูกต้อง เนื่องจากฉันสามารถเข้าถึงได้ตามที่คาดไว้จากอุปกรณ์อื่นๆ ที่มีการกำหนดค่าเดียวกัน นอกจากนี้ evertyhing ยังทำงานได้ดีโดยไม่จำกัดอยู่ที่ 192.168.1.0/24 จากสาธารณะ ปัญหาเดียวคือไคลเอนต์ linux แสดง IP จริงของเขาแทนที่จะเป็นช่องสัญญาณ IP ดังนั้นจึงไม่สามารถผ่านกฎ iptables ที่สอดคล้องกันได้ (-A INPUT -s 192.168.1.0/24 -j ACCEPT)
Nikita Kipriyanov avatar
za flag
มันเป็นไปไม่ได้. หรือฉันควรจะพูดว่าคุณต้องตั้งค่าระเบียน SVCB DNS ที่ค่อนข้างน่าสงสัยสำหรับสิ่งนั้น สิ่งนี้อยู่นอกเหนือขอบเขตของคำถามราวกับว่ามันถูกกำหนดขึ้น โดยทั่วไป คุณ *ต้องใช้ที่อยู่ IP "ภายใน" (ห่อหุ้ม) เพื่อเข้าถึงเว็บไซต์ (ดังนั้นการรับส่งข้อมูลจะต้องผ่าน VPN) หรือที่อยู่ IP "สาธารณะ" ซึ่งใช้เป็นจุดสิ้นสุด VPN ด้วย แต่การรับส่งข้อมูล จะไม่ผ่าน VPN เพราะคุณต้องมีเส้นทางตรง (ไม่ใช่ผ่าน VPN) ไปยังที่อยู่ IP นั้นเพื่อสร้างช่อง VPN เอง ** ทำไมคุณถึงต้องการสิ่งนั้น **
ihorc avatar
cn flag
เหตุใดจึงใช้งานได้บนโทรศัพท์หรือไคลเอนต์ Windows >>> ทำไมคุณถึงต้องการสิ่งนั้น? - ในการเข้าถึงเว็บไซต์ของฉันตามปกติตามโดเมน แต่ทำให้สามารถเข้าถึงได้ด้วย VPN เท่านั้น
Nikita Kipriyanov avatar
za flag
คุณแน่ใจหรือว่ามันได้ผลอย่างนั้น? ฉันสงสัยอย่างยิ่งว่า นอกจากนี้ การเข้ารหัสของ OpenVPN ยังเหมือนกับการเข้ารหัสใน HTTPS และความปลอดภัยก็เหมือนกันทุกประการ เหตุใดจึงต้องใช้ VPN เพื่อสิ่งนั้น
ihorc avatar
cn flag
ใช่ฉันแน่ใจ >>> ทำไมต้องใช้ VPN เพื่อสิ่งนั้น? - เพื่อจำกัดการเข้าถึงเว็บไซต์ของฉันแบบสาธารณะ
Tom Yan avatar
in flag
อาจให้เซิร์ฟเวอร์ DNS สำหรับไคลเอนต์ VPN แก้ไขโดเมนเป็น VPN IP ของเซิร์ฟเวอร์เป็นวิธีที่สะอาดที่สุด แม้ว่าในทางเทคนิคแล้ว คุณสามารถใช้การกำหนดเส้นทางนโยบายเพื่อกำหนดเส้นทางการรับส่งข้อมูลบางอย่างเท่านั้น (เช่น ตาม dport) ไปยัง `77.77.77.77` ผ่านทาง อินเทอร์เน็ตเกตเวย์ของลูกค้าท้ายที่สุดจะจบลงด้วยดีหรือไม่นั้นขึ้นอยู่กับสิ่งอื่น ๆ เนื่องจากนั่นค่อนข้างเป็นการคาดผมที่น่ารังเกียจที่เรากำลังพูดถึงที่นี่
Tom Yan avatar
in flag
อีกอย่าง มันอาจจะน่ารังเกียจน้อยกว่าถ้าคุณเปลี่ยนเส้นทาง (เช่น dnat ไปยังตัวเอง) ทราฟฟิกที่เซิร์ฟเวอร์ VPN เพื่อที่พวกเขาจะได้ไม่ไปที่เราเตอร์และจากนั้นจะถูกปักหมุดกลับ หากคุณตั้งใจแน่วแน่ที่จะลงไป ทางนั้น.
ihorc avatar
cn flag
ถ้าคุณหมายถึงกฎ MASQUERADE แสดงว่ามีอยู่แล้ว ฉันค่อนข้างแน่ใจว่ามีบางอย่างเกี่ยวกับความแตกต่างของ NAT Loopback ในระบบปฏิบัติการไคลเอ็นต์ที่แตกต่างกัน นั่นไม่ใช่ปัญหาเกี่ยวกับเซิร์ฟเวอร์ มิฉะนั้นจะไม่ทำงานบนอุปกรณ์ใด ๆ ดังนั้น โดยพื้นฐานแล้วเป้าหมายของฉันนั้นง่ายมาก นั่นคือการทำให้เว็บไซต์สามารถเข้าถึงได้ด้วย VPN เท่านั้น แต่ดูเหมือนว่าจะยุ่งยากกว่าเมื่อมองแวบแรก
Tom Yan avatar
in flag
ไม่ ฉันหมายถึงกฎ REDIRECT สำหรับที่อยู่ปลายทาง 77.77.77.77 แต่นั่นไม่ใช่คำแนะนำสำหรับปัญหาปัจจุบันของคุณ เป็นเพียงคำแนะนำเพิ่มเติมหากคุณต้องการยึดติดกับความปรารถนา/แนวทางที่แปลกประหลาดนี้ และปัญหาปัจจุบันของคุณไม่ได้เกี่ยวกับ NAT Loopback แต่เป็นวิธีการตั้งค่าเส้นทางสำหรับ `77.77.77.77` บนแพลตฟอร์มไคลเอ็นต์ที่แตกต่างกัน (คาดว่า *ไม่* จะทำงานบน Linux เว้นแต่คุณจะปรับแต่งการตั้งค่าเส้นทางตามที่ฉันกล่าวถึง ไม่แน่ใจเกี่ยวกับ Windows แต่บน Android ทุกแอปมีตารางเส้นทางของตัวเอง ดังนั้นอาจใช้งานได้ทันที)
Tom Yan avatar
in flag
TL; DR การวิจัยเกี่ยวกับการกำหนดเส้นทางนโยบายหรือที่เรียกว่ากฎ ip ฉันไม่คิดว่าจะมีตัวเลือกการกำหนดค่า ovpn ใดที่สามารถช่วยให้คุณบรรลุสิ่งที่คุณต้องการได้ นอกจากข้อเท็จจริงที่ว่าคุณจะต้องทิ้ง / กรองเส้นทางเริ่มต้นที่พุช / ตั้งค่าเช่น `redirect-gateway`)

โพสต์คำตอบ

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