วิธีซ่อนการรับส่งข้อมูล OpenVPN ของคุณด้วยอุโมงค์ SSH

อุโมงค์ (2)
ดังนั้นคุณจึงติดตามการสอนเกี่ยวกับวิธีตั้งค่าเซิร์ฟเวอร์ VPN ของคุณเองโดยใช้ OpenVPN และเซิร์ฟเวอร์ Amazon EC2 และมันก็ใช้งานได้ดี นั่นคือจนกว่ามันจะถูกบล็อกทันที บางทีคุณอาจเริ่มระบบใหม่และรับที่อยู่ IP ใหม่ มันใช้งานได้ดีอีกครั้งในอีกสองสามวันจากนั้นถูกบล็อก ดูเหมือนว่าสำนักงาน ISP หรือรัฐบาลของคุณกำลังบล็อกเซิร์ฟเวอร์ OpenVPN อยู่ แล้วคุณจะทำอย่างไร?

ไฟร์วอลล์พื้นฐานบล็อกการเชื่อมต่อตามพอร์ตที่ใช้และที่อยู่ IP ปลายทาง แต่ไฟร์วอลล์ขั้นสูงเพิ่มเติมใช้การตรวจสอบแพ็คเก็ตลึก (DPI) และ / หรือตรวจสอบแพ็กเก็ตรัฐ (SPI) เพื่อแยกความแตกต่างระหว่างอัลกอริธึมการเข้ารหัส นั่นหมายความว่าพวกเขาสามารถตรวจจับปริมาณข้อมูล OpenVPN และตั้งค่าสถานะเพื่อให้ผู้ดูแลระบบสามารถบล็อกเซิร์ฟเวอร์.

มีสามตัวเลือกในการหลีกเลี่ยงปัญหานี้: พร็อกซี obfuscation, การทันเนล SSL, และ SSH tunneling ในบทช่วยสอนนี้เราจะพูดถึงเรื่องหลังสุด SSH tunneling ล้อมการเชื่อมต่อที่เข้ารหัสไว้แล้วในการเข้ารหัสอีกชั้นหนึ่งเพื่อให้ไฟร์วอลล์ไม่สามารถแยกความแตกต่างได้ แต่ละวิธีการเหล่านี้ควรหลีกเลี่ยง DPI และไฟร์วอลล์ SPI ที่จัดเตรียมไว้โดย บริษัท หรือรัฐบาลที่มีการเซ็นเซอร์อย่างหนักเช่นจีน.

OpenVPN ผ่าน SSH มีข้อเสียสองสามข้อ ครั้งแรกคือประสิทธิภาพการทำงานเนื่องจากการเข้ารหัสสองครั้ง ประการที่สองลายนิ้วมือของ OpenVPN ไม่สามารถตรวจจับได้อีกต่อไปเมื่อทำการส่งผ่าน SSH แต่ไฟร์วอลล์บางตัวจะปิดกั้นการรับส่งข้อมูลของ SSH เช่นกัน นี่เป็นกรณีสำหรับบริการต่าง ๆ เช่น Netflix ซึ่งหยุดการใช้พร็อกซีที่เข้ารหัสชนิดใด ๆ OpenVPN, SSH หรืออื่น ๆ ในกรณีนี้เราขอแนะนำให้คุณตั้งค่า Obfsproxy แทนซึ่งทำให้ทราฟฟิกที่เข้ารหัสดูเหมือนเป็นเรื่องปกติและไม่เข้ารหัส Obfsproxy มีประสิทธิภาพมากกว่าด้วยเหตุผลนี้ แต่ยังมีความซับซ้อนในการตั้งค่าและเรียกใช้.

น่าเสียดายที่ Obfsproxy เมื่อรวมกับ OpenVPN ปัจจุบันสามารถใช้งานได้บนเดสก์ท็อปเท่านั้นเท่าที่เราทราบ SSH tunneling สามารถใช้กับอุปกรณ์ Android หรือ iOS.

บทช่วยสอนนี้สมมติว่าคุณมีการตั้งค่าเซิร์ฟเวอร์ OpenVPN ที่ใช้งานได้และสามารถเชื่อมต่อกับมันได้โดยใช้ OpenVPN GUI หรือแอป OpenVPN Connect คุณต้องสามารถ SSH ลงในเซิร์ฟเวอร์ของคุณโดยใช้ Terminal บน Mac หรือ PuTTy บนพีซี เพื่อวัตถุประสงค์ในการสาธิตเราจะใช้ PuTTy หากคุณไม่มีการตั้งค่าทั้งหมดโปรดอ้างอิงบทแนะนำก่อนหน้าของเรา.

การตั้งค่า OpenVPN ผ่าน SSH บนพีซี

ในบทช่วยสอนสุดท้ายของเราเราได้พูดถึงวิธีการตั้งค่าพร็อกซี SSH แบบง่ายจากนั้นขยายเพื่อสร้างเซิร์ฟเวอร์ VPN แบบเต็ม วิธีนี้รวมสองอย่างเข้าด้วยกันซึ่งหมายความว่าคุณควรมีทุกสิ่งที่คุณต้องการอยู่แล้ว.

เปิด PuTTy และโหลดการกำหนดค่าเซิร์ฟเวอร์ VPN ของคุณ ในแถบด้านข้างไปที่การเชื่อมต่อ > SSH > อุโมงค์ ตรวจสอบว่า D8080 รวมอยู่ในรายการ หากไม่พิมพ์ 8080 ลงใน“ พอร์ตต้นทาง” แล้วเลือกอัตโนมัติและไดนามิก จากนั้นกดเพิ่ม ตอนนี้คุณมีพร็อกซี SSH ที่ทำงานผ่านพอร์ต 8080 คุณสามารถบันทึกสิ่งนี้เป็นการกำหนดค่าเซสชันแยกต่างหากหากคุณต้องการกลับมาที่แท็บเซสชันของแผนผังการนำทาง.

openvpn ssh putty 8080

คลิกเปิดและเข้าสู่เซิร์ฟเวอร์ของคุณ โปรดจำไว้ว่าใน Amazon Linux AMI ที่ใหม่กว่าชื่อผู้ใช้คือ“ ผู้ใช้ ec2”.

นำทางไปยังไฟล์ openvpn.conf ของคุณและตรวจสอบเนื้อหาโดยใช้คำสั่งเหล่านี้

cd / etc / openvpn
cat openvpn.conf

สิ่งนี้ควรแสดงเนื้อหาของไฟล์กำหนดค่าเซิร์ฟเวอร์ OpenVPN ของคุณ ควรมีลักษณะเช่นนี้:

พอร์ต 1194
proto tcp-server
dev tun1
ifconfig 10.4.0.1 10.4.0.2
สถานะเซิร์ฟเวอร์ -tcp.log
กริยา 3
secret ovpn.key

การกำหนดค่าเซิร์ฟเวอร์ openvpn ssh

สิ่งสำคัญคือบรรทัดที่สองถูกตั้งค่าเป็น TCP ไม่ใช่ UDP หากคุณต้องการเปลี่ยนคุณสามารถแก้ไขได้ด้วยคำสั่งนี้:

sudo nano openvpn.conf

จากนั้นคลิก CTRL + O (ตัวอักษร“ o” ไม่ใช่ศูนย์) เพื่อบันทึกไฟล์จากนั้นกด CTRL + X เพื่อออกจากเครื่องมือแก้ไข.

กำหนดค่าไคลเอนต์

บนเครื่องของคุณไปที่ไฟล์กำหนดค่าไคลเอนต์ OpenVPN ของคุณ หากคุณใช้ไดเรกทอรีการติดตั้งเริ่มต้นสิ่งนี้จะเป็นไฟล์ C: / Program Program / OpenVPN / config.

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

proto tcp-client
remote localhost 1194
พอร์ต 1194
dev tun1
secret ovpn.key
redirect-gateway def1
ifconfig 10.4.0.2 10.4.0.1
ถุงเท้า proxy-ลองใหม่อีกครั้ง
ถุงเท้าพร็อกซี่ 127.0.0.1 8080

หมายเหตุบรรทัด“ remote” ตัวที่สองใช้ localhost แทน IP ของเซิร์ฟเวอร์ OpenVPN รวมทั้งสองบรรทัดที่ส่วนท้ายที่กำหนดค่า OpenVPN ให้ใช้พร็อกซี SOCKS ทุกอย่างอื่นเหมือนเดิม.

บันทึกไฟล์ปรับแต่งใหม่ของคุณลงในโฟลเดอร์ปรับแต่งของไดเรกทอรี OpenVPN ของคุณ.

การตั้งค่าแอพ

ขั้นตอนสุดท้ายคือการกำหนดค่าแอพของคุณให้ใช้พร็อกซี่ผ่านพอร์ต 8080 ซึ่งคล้ายกับสิ่งที่เราทำกับพร็อกซี SSH พื้นฐานจากบทช่วยสอนล่าสุด แอพจำนวนมากจะมีการตั้งค่าพร็อกซีพร้อมใช้งานในการตั้งค่าและบางแอพอาจตรวจจับอัตโนมัติ หากคุณต้องการตั้งค่าด้วยตนเองข้อมูลสามอย่างที่คุณต้องการคือ:

  • โฮสต์: 127.0.0.1
  • พอร์ต: 8080
  • ประเภทพร็อกซี: SOCKS5 (หรือ SOCKS v5)

นี่คือคำแนะนำสำหรับ Firefox และ Chrome:

ใน Firefox:

  • ไปที่เครื่องมือ > ตัวเลือก > สูง > เครือข่าย > สัมพันธ์ > การตั้งค่า > การกำหนดค่าพร็อกซีด้วยตนเอง
  • ตั้งค่า SOCKS Host เป็น 127.0.0.1 และพอร์ตเป็น 8080 (หรืออะไรก็ตามที่คุณตั้งค่าช่องสัญญาณอุโมงค์เป็นบน PuTTy).
  • คลิกตกลงเพื่อบันทึก

ใน Chrome Proxy Switchy

  • หน้าการตั้งค่าควรปรากฏขึ้นทันทีที่คุณติดตั้งส่วนขยายหรือคลิกที่ไอคอนที่ด้านบนขวาของ Chrome แล้วคลิกตัวเลือก.
  • ตั้งชื่อโปรไฟล์ตามที่คุณต้องการ ภายใต้การกำหนดค่าด้วยตนเองตั้งค่าโฮสต์ SOCKS เป็น 127.0.0.1 และพอร์ตเป็น 8080 (หรืออะไรก็ตามที่คุณตั้งค่าพอร์ตอุโมงค์เป็น PuTTy ปล่อยให้ทุกอย่างว่างเปล่า.
  • กดปุ่มบันทึกจากนั้นคลิกที่ไอคอนอีกครั้งเพื่อเลือกโปรไฟล์พร็อกซีของคุณ.

obfsproxy chrome proxy proxyy สลับกัน

ตอนนี้เชื่อมต่อกับเซิร์ฟเวอร์ของคุณก่อนด้วย PuTTy โดยใช้การกำหนดค่าด้านบนแล้วใช้ VPN โดยใช้ไฟล์ config ใหม่ที่เราสร้างขึ้น.

ตอนนี้คุณเชื่อมต่ออินเทอร์เน็ตด้วย OpenVPN ผ่าน SSH!

โทรศัพท์มือถือ

เราจะอธิบายวิธีปรับช่องสัญญาณ OpenVPN + SSH ของคุณสำหรับ Android แม้ว่า iOS จะไม่แตกต่างกัน.

ก่อนที่เราจะเริ่มมีข้อแม้อยู่สองสามข้อ ก่อนวิธีนี้ใช้ได้สำหรับการท่องเว็บเท่านั้น นั่นเป็นเพราะไม่เหมือนกับเดสก์ท็อปคุณไม่สามารถเปิดพอร์ตได้ตามต้องการบนอุปกรณ์ Android หรือ iOS นั่นหมายถึงพอร์ตที่ใช้โดยแอปอื่นจะไม่ถูกส่งผ่านพร็อกซี SSH เพื่อเอาชนะสิ่งนี้คุณสามารถรูทหรือเจลเบรคอุปกรณ์ของคุณและใช้แอพเช่น ProxyDroid หรือแอพ Unix ของ Cydia เพื่อกำหนดค่าพร็อกซี.

นั่นคือการสอนสำหรับวันต่อมา สำหรับตอนนี้มาเริ่มกันเลยบน Android พร้อม Firefox คุณจะต้องติดตั้งแอปต่อไปนี้:

  • OpenVPN สำหรับ Android (หมายเหตุ: ไม่ใช่ OpenVPN Connect ซึ่งเป็นเรื่องพิถีพิถันมากขึ้นเกี่ยวกับการรับรองความถูกต้อง)
  • ConnectBot หรือแอปเทอร์มินัล SSH ที่เทียบเท่า (JuiceSSH นั้นดี แต่มีค่าใช้จ่ายเพิ่มเติมสำหรับการส่งต่อพอร์ต)
  • ตัวจัดการไฟล์เช่น File Commander
  • Firefox หรือเบราว์เซอร์อื่นที่ให้คุณกำหนดค่าพร็อกซี่

คุณจะต้องใช้วิธีการโอนย้ายไฟล์จากคอมพิวเตอร์ไปยังโทรศัพท์ของคุณด้วย สายเคเบิล USB นั้นใช้ได้ ฉันใช้โฟลเดอร์ซิงค์ของ IBackup.

ค้นหา ovpn.key ของคุณและไฟล์กำหนดค่า. ovpn ที่คุณสร้างขึ้นบนเดสก์ท็อปแล้วย้ายไปยังที่เก็บข้อมูลภายในหรือการ์ด SD ในโทรศัพท์ของคุณ นอกจากนี้ให้ย้ายไฟล์คีย์. pem ที่มาจากโฮสต์เซิร์ฟเวอร์ของคุณ อาจอยู่ในตำแหน่งเดียวกับไฟล์. pkk ของคุณที่คุณใช้ตรวจสอบสิทธิ์กับ PuTTy หากคุณทำหายคุณจะต้องสร้างอีกอันบนแดชบอร์ด Amazon EC2 หรือจากบริการโฮสติ้งเซิร์ฟเวอร์ใดก็ตามที่คุณใช้.

คุณสามารถเลือกใช้ไฟล์. vpn มาตรฐานที่คุณใช้เชื่อมต่อโดยไม่มี SSH จากนั้นคุณสามารถใช้ VPN กับแอปทั้งหมดแทนที่จะเป็นเพียงเบราว์เซอร์และเป็นประโยชน์สำหรับการแก้ไขปัญหา.

การตั้งค่า ConnectBot

เรียกใช้ ConnectBot บนโทรศัพท์ของคุณ คลิกที่จุดสามจุดที่มุมขวาบนแล้วไปที่จัดการ Pubkeys คลิกที่จุดอีกครั้งในหน้าถัดไปและคลิกนำเข้า สิ่งนี้จะเรียกใช้ตัวจัดการไฟล์ที่คุณติดตั้ง ค้นหาไฟล์. pem ที่คุณเพิ่งย้ายไปยังโทรศัพท์และเลือก ตอนนี้มันควรจะปรากฏในรายการของกุญแจสาธารณะที่มีล็อคสีแดงอยู่ข้างๆ แตะเพื่อเปลี่ยนเป็นสีเขียว กดปุ่มย้อนกลับเพื่อกลับไปที่หน้าหลักของ ConnectBot.

connectbot

ในฟิลด์เทอร์มินัลด้านล่างถัดจาก“ ssh” ให้ป้อนรายละเอียด SSH ของคุณ ควรมีลักษณะเช่นนี้:

EC2 ผู้ใช้ @: 22

แทนที่ด้วยที่อยู่ IP ของเซิร์ฟเวอร์ OpenVPN ของคุณ แตะปุ่ม Enter เพื่อ SSH ลงในเซิร์ฟเวอร์ของคุณ ทั้งหมดนี้ควรได้รับการบันทึกเพื่อที่คุณจะไม่ต้องป้อนใหม่อีกครั้ง แต่คุณอาจต้องสลับรหัสสาธารณะอีกครั้งในอนาคต.

เมื่อเชื่อมต่อเรียบร้อยแล้วให้กดสามจุดอีกครั้งแล้วยกเลิกการเชื่อมต่อ โปรไฟล์ของคุณควรได้รับการบันทึกบนหน้าจอหลักของ ConnectBot กดค้างไว้เพื่อเปิดเมนูบริบทแล้วแตะ“ แก้ไขพอร์ตส่งต่อ” ในหน้าถัดไปแตะที่จุดสามจุดแล้วเลือก“ เพิ่มพอร์ตไปข้างหน้า”

ตั้งชื่อมันตามที่คุณชอบ ตั้งค่า Type เป็น Dynamic (SOCKS) และพอร์ตต้นทางเป็น 8080 (หรืออะไรก็ตามที่อยู่ในบรรทัดถุงเท้า-proxy ของไฟล์กำหนดค่า OpenVPN ของคุณ) แตะ“ สร้างพอร์ตไปข้างหน้า”.

ConnectBot พร้อมใช้งานแล้ว แต่เรายังไม่ได้เชื่อมต่อ มาตั้งค่า OpenVPN ก่อน.

OpenVPN สำหรับการตั้งค่า Android

เรียกใช้ OpenVPN สำหรับ Android.

คลิกปุ่มรูปสี่เหลี่ยมที่มีลูกศรชี้ลงที่มุมบนขวาเพื่อนำเข้าโปรไฟล์ นำทางไปยังไฟล์. ovpn ของคุณแล้วเลือก ในหน้าถัดไปให้กดปุ่มที่ระบุว่า "เลือก".

openvpn สำหรับ Android

คราวนี้ไปที่ไฟล์ ovpn.key ของคุณแล้วเลือก กดปุ่มบันทึกสีเหลืองที่มุมขวาล่าง.

โปรไฟล์ใหม่ของคุณควรปรากฏในรายการบนหน้าจอหลักของแอพ.

ก่อนที่เราจะเชื่อมต่อให้ตรวจสอบไฟร์วอลล์เซิร์ฟเวอร์อีกครั้ง ลงชื่อเข้าใช้ AWS เลือกอินสแตนซ์และไฮไลต์เซิร์ฟเวอร์ OpenVPN ของคุณ ในฟิลด์กลุ่มความปลอดภัยคลิกอันที่ใช้สำหรับอินสแตนซ์นี้ คลิกขวาและเลือก“ แก้ไขกฎขาเข้า”.

เพิ่มกฎ TCP แบบกำหนดเองสำหรับพอร์ต 22, 1194 และ 8080 ปรับตามความจำเป็นสำหรับการกำหนดค่าส่วนบุคคลของคุณ.

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

ความสำเร็จของ openvpn ssh สำหรับ Android

ในตอนท้ายของบันทึก OpenVPN ที่ปรากฏขึ้นเมื่อคุณเชื่อมต่อคุณควรเห็นข้อความที่ระบุว่า“ CONNECTED, SUCCESS”.

โปรดทราบว่าเนื่องจากเรากำลังใช้ไฟล์. pem และ. key เดียวกับบนเดสก์ท็อปของเราคุณสามารถใช้ข้อมูลรับรองเหล่านี้ได้ครั้งละหนึ่งอุปกรณ์เท่านั้น ตรวจสอบให้แน่ใจว่าคุณไม่ได้เชื่อมต่อกับเดสก์ท็อปของคุณก่อน หากคุณต้องการเชื่อมต่อพร้อมกันในอุปกรณ์หลายเครื่องคุณจะต้องสร้างข้อมูลประจำตัวใหม่ (.key และ. pem) สำหรับแต่ละอุปกรณ์.

กำหนดค่า Firefox เพื่อใช้พร็อกซี

สุดท้ายเราต้องกำหนดค่า Firefox เพื่อใช้พร็อกซี Chrome และ Safari บนมือถือไม่ได้มาพร้อมตัวเลือกการกำหนดค่าพร็อกซีซึ่งเป็นสาเหตุที่เราแนะนำ Firefox คุณสามารถลองตั้งค่าพร็อกซีในการตั้งค่า Wi-Fi ได้ แต่คุณจะต้องเปลี่ยนทุกครั้งที่คุณต้องการเชื่อมต่อโดยไม่ต้องใช้พร็อกซี.

การกำหนดค่าพร็อกซี firefox

ในแถบ URL ของ Firefox พิมพ์“ about: config” ในแถบค้นหาของหน้านั้นพิมพ์“ network.proxy” สิ่งนี้จะนำมาซึ่งฟิลด์ทั้งหมดที่เราเกี่ยวข้อง ป้อนการตั้งค่าต่อไปนี้ในฟิลด์ที่ระบุ:

  • network.proxy.socks: 127.0.0.1
  • network.proxy.socks_port: 8080 (หรือสิ่งที่คุณกำหนดใน OpenVPN config และ ConnectBot)
  • network.proxy.type: 1

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

หากคุณต้องการเชื่อมต่อผ่านพร็อกซี SSH โดยไม่มี OpenVPN เพียงแค่ SSH เข้าสู่เซิร์ฟเวอร์ของคุณด้วย ConnectBot และไม่เชื่อมต่อกับ OpenVPN ในทางกลับกันคุณสามารถนำเข้าไฟล์การตั้งค่าพื้นฐานที่ไม่ใช่ SSH .ovpn ลงในแอป OpenVPN และเชื่อมต่อกับพร็อกซี SSH นั้นได้.

“ tunnel” โดย jo.sau ได้รับอนุญาตภายใต้ CC BY 2.0

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me

About the author

Leave a Reply

Your email address will not be published. Required fields are marked *

9 + 1 =

Adblock
detector