จะใช้ OpenVPN ผ่านไฟร์วอลล์ที่มีข้อ จำกัด ได้อย่างไร


13

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

ฉันเหนื่อย:

  1. OpenVPN ทำงานบนพอร์ตมาตรฐาน
  2. OpenVPN ทำงานบนพอร์ต 443 (ฉันเริ่ม OpenVPN ด้วยตนเองจากบรรทัดคำสั่งบน VPS และดูว่าเซิร์ฟเวอร์รายงานว่าการเชื่อมต่อถูกปิดเกือบจะทันทีฉันถือว่านี่เป็นผลของ DPI บนไฟร์วอลล์)
  3. STunnel ทำงานบนพอร์ต 443 เพื่อเข้าถึง OpenVPN และหลบเลี่ยง DPI นี่คือการประสบความสำเร็จมากที่สุดและช่วยให้การเชื่อมต่อและการเข้าถึงอินเทอร์เน็ตผ่าน VPN เป็นเวลา ~ 10-20 วินาทีก่อนที่การเชื่อมต่อจะถูกบังคับให้ปิด

มีอะไรอีกบ้างที่ฉันลองได้บ้าง?


1
ท่านที่รักผู้ให้บริการ "VPS ส่วนบุคคล" ของคุณมีความยาวเท่าใดเพื่อป้องกันไม่ให้คุณใช้งาน VPN! นอกจากนี้ยังไม่ชัดเจนหากคุณพยายามใช้ VPS เป็นเซิร์ฟเวอร์ OpenVPN หรือหากคุณต้องการให้เป็นไคลเอนต์
allquixotic

woops! ฉันควรจะชัดเจนมากขึ้น ผู้ให้บริการ VPS คือ Linode และแน่นอนว่าพวกเขาไม่ได้บล็อกอะไรเลย ;) ปัญหาคือฉันกำลังเชื่อมต่อกับ VPN จากไคลเอนต์ (แล็ปท็อปของฉัน) ซึ่งการเข้าถึงอินเทอร์เน็ตถูกไฟร์วอลล์อย่างรุนแรง
RL Stine

1
โดยทั่วไปโซลูชัน VPN จะถูกตรวจจับได้ง่ายโดยสิ่งใดก็ตามที่ทำการตรวจสอบแพ็คเก็ตที่เป็นประโยชน์ตามที่คุณได้กล่าวไว้ การตัดการเชื่อมต่อที่มีพลังอาจเกิดจากวิธีการวิเคราะห์ปริมาณการใช้งานมองไปที่การเชื่อมต่อ https ของ stunnel และไปที่ "รอสักครู่การเชื่อมต่อคำขอ / ตอบกลับ HTTP แบบมาตรฐานนั้นแทบไม่น่าช่างพูดเลย!" - ในสาระสำคัญคุณติดอยู่ คุณสามารถลองใช้ HTTPS proxy ได้ อาจเป็นสิ่งที่คุณส่งคำขอเป็นเนื้อหา HTTP (ผ่าน SSL) ไปยังเซิร์ฟเล็ตและส่งต่อคำขอของคุณ ... o_O
allquixotic

3
คุณอาจต้องจำไว้ว่าการเลี่ยงผ่านข้อ จำกัด ที่ไฟร์วอลล์ของ บริษัท นำมาใช้นั้นอาจเป็นการละเมิดนโยบายของ บริษัท ฉันขอแนะนำให้คุณคุยกับผู้ดูแลระบบไฟร์วอลล์เกี่ยวกับปัญหานี้
Ansgar Wiechers

คำตอบ:


11

การเชื่อมต่อที่ถูกตัดออกหลังจากเวลาผ่านไปนาน ๆ บางครั้งก็บ่งบอกถึงข้อ จำกัด ประเภทไบต์ต่อวินาที ลองดูว่าการเชื่อมต่อ VPN ของคุณทำงานช้าลงหรือไม่ นอกจากนี้หากคุณมีการกำหนดค่า OpenVPN สำหรับ UDP ลอง ​​TCP (443 UDP อาจถูกบล็อกในขณะที่ 443 TCP อาจตรวจไม่พบ)

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

เป็นไปได้บางอย่างที่ไม่ใช่พอร์ต 443 ไม่ได้รับการตรวจสอบอย่างใกล้ชิด ลอง 22

อาจฟังดูงี่เง่า แต่ลองทำผ่านพอร์ต 80 แล้วดูว่าคุณได้อะไรมา คุณอาจลองตั้งค่าอุโมงค์ HTTP ระหว่างคุณกับ VPS เพื่อให้ทราฟฟิกดูเหมือนคำขอ HTTP

หากคุณมีความรู้สึกบ้าลองไอโอดีน


2
+1 แต่โดยเฉพาะอย่างยิ่งสำหรับไอโอดีน!
0xC0000022L

5

ฉันคิดว่าฉันรู้ว่าทำไม stunnel methode ทำตัวเป็นเช่นนั้น เป็นเพราะคุณเน็ตเพื่อตั้ง "เส้นทางคงที่" สำหรับเซิร์ฟเวอร์ stunnel ฉันขออธิบายว่า เมื่อคุณเชื่อมต่อกับเซิร์ฟเวอร์ openvpn มันจะเปลี่ยนตารางการเราต์และเราต์แพ็กเก็ตทั้งหมดของคุณผ่าน vpn ยกเว้นแพ็กเก็ต openvpn actualy openvpn จะเพิ่มเส้นทางสำหรับที่อยู่ IP ของเซิร์ฟเวอร์ของคุณ แต่เมื่อคุณใช้ stunnel เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ openvpn ของคุณคุณจะเชื่อมต่อ openvpn ไปยังอินเทอร์เฟซแบบวนรอบและไม่มีเส้นทางไปยังเซิร์ฟเวอร์ของคุณนอก vpn ของคุณดังนั้นแพ็กเก็ต stunnel ต้องการไปยังเซิร์ฟเวอร์ เพื่อตะลึงงัน :)

ดังนั้นคุณต้องเพิ่มเส้นทางไปยังเซิร์ฟเวอร์ ip ของคุณที่จะออกไปนอก VPN ของคุณ (เราเตอร์ที่บ้านของคุณ)

และสำหรับปัญหากับเมธอดพอร์ต 443 ฉันอยากจะบอกว่าบางทีไฟร์วอลล์ของคุณโดยใช้ SPI หรือ DPI และสามารถสร้างแพ็กเก็ต openvpn ที่แตกต่างจากแพคเก็ต https (ssl) ได้อย่างง่ายดาย ดังนั้นวิธีที่ดีที่สุดคือการใช้ stunnel หรือหากไฟร์วอลล์บล็อกแพ็กเก็ต ssl จะดีกว่าถ้าใช้ obfsproxy หรือ fteproxy เพื่อเลี่ยงผ่าน

(ฉันรู้ว่าโพสต์นั้นเก่า แต่ฉันกำลังมองหาคำตอบเกี่ยวกับปัญหาเดียวกันเป็นเวลาหลายสัปดาห์ดังนั้นฉันต้องการแบ่งปันสิ่งที่ฉันเรียนรู้เกี่ยวกับสิ่งนี้)


สิ่งนี้ไม่ได้ให้คำตอบสำหรับคำถาม จะวิจารณ์หรือการร้องขอคำชี้แจงจากผู้เขียนแสดงความคิดเห็นด้านล่างโพสต์ของพวกเขา - คุณสามารถแสดงความคิดเห็นในโพสต์ของคุณเองและเมื่อคุณมีเพียงพอชื่อเสียงคุณจะสามารถที่จะแสดงความคิดเห็นในโพสต์ใด
Ramhound

3

คำตอบโดย Reza Askari เป็นคำตอบที่แน่นอนสำหรับคำถามที่สาม สิ่งนี้เกิดขึ้นกับคอมพิวเตอร์ Linux และ Android ของฉัน

บนคอมพิวเตอร์ก่อนที่คุณจะเชื่อมต่อกับ OpenVPN ผ่าน

sudo openvpn --config configFile.ovpn

คุณควรเพิ่มกฎเพื่อลบเซิร์ฟเวอร์ stunnel ออกจากอุโมงค์ OpenVPN

sudo /sbin/ip route add stunnel_ip via default_gateway_ip

จากนั้นเชื่อมต่อกับเซิร์ฟเวอร์ OpenVPN ของคุณ เมื่อเสร็จแล้วคุณสามารถลบกฎนั้นได้โดย:

sudo /sbin/ip route del stunnel_ip

เพื่อทำให้สิ่งต่าง ๆ ง่ายขึ้นดังนั้นคุณจะไม่ลืมสร้างเชลล์สคริปต์ที่จะเพิ่มกฎและเรียกใช้ OpenVPN เมื่อ OpenVPN ออกจากกฎจะถูกลบ:

sudo /sbin/ip route add stunnel_ip via default_gateway_ip

sudo openvpn --config configFile.ovpn

sudo /sbin/ip route del stunnel_ip

บน Android ให้ใช้ไคลเอนต์ "OpenVPN สำหรับ Android" โดย "Arne Schwabe" และ "SSLDroid" โดย "Balint Kovacs"

จากนั้นในไคลเอนต์ OpenVPN ให้ยกเว้น "SSLDroid" จากโปรไฟล์ VPN ที่ต้องผ่าน stunnel

ฉันชอบที่จะยกระดับคำตอบหรือความคิดเห็นของ Reza แต่กฎการให้คะแนนชื่อเสียงนี้ทำให้ฉันไม่พอใจ


1

ฉันไม่เคยลอง (ไม่รู้จะรู้ว่ามันใช้งานได้ดี!) แต่ให้ shot @ โดยใช้ ssh tunneling มากกว่า 443 และเปิดใช้ OpenVPN ของคุณผ่านอุโมงค์ คุณอาจต้องใช้รีโมตโฮสต์พิเศษเพื่อฟังบน 443 หากคุณไม่มี แต่มีตัวอย่างที่นี่http://www.anonyproz.com/openvpnsshtunnel.pdfสำหรับการใช้บริการพร็อกซีของพวกเขา [หมายเหตุบรรณาธิการ: ลิงค์เครื่อง Wayback นี้อาจปลอดภัยกว่า] แต่นี่ก็เป็น Googlable:

https://www.google.com/search?q=ssh%20tunnel%20openvpn

ฉันรู้จักผู้ใช้วิธีนี้เป็นพร็อกซีเพราะนายจ้างของพวกเขาบล็อกการเข้าถึงไซต์งานเช่น dice.com กลับเมื่อพวกเขาได้รับความนิยม

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