ฉันจะกำหนดเส้นทางอินเทอร์เน็ตของฉันผ่านอุโมงค์ SSH ได้อย่างไร


24

เก่าถามฉันจะติดตั้งเซิร์ฟเวอร์ OpenVPN โดยไม่มีสิทธิ์รูทได้อย่างไร

มีวิธีการตั้งค่าเซิร์ฟเวอร์ OpenVPN โดยไม่มีสิทธิ์รูทหรือไม่? เช่นกับไฟล์การกำหนดค่าในไดเรกทอรีบ้านของฉัน ถ้าใช่ฉันจะตั้งค่าได้อย่างไร

ฉันพยายามที่จะ SSH เข้าสู่ระบบและตั้งค่าเซิร์ฟเวอร์ OpenVPN ที่นั่นเพื่อการใช้งานส่วนตัว

แก้ไข

เนื่องจากเห็นได้ชัดว่า OpenVPN ต้องการสิทธิ์รูทฉันจึงเปลี่ยนคำถามเป็นการกำหนดเส้นทางอินเทอร์เน็ตโดยใช้ SSH ซึ่งฉันสามารถตั้งค่าได้อย่างง่ายดาย


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


@Lekensteyn ใช่โดยไม่ได้รับอนุญาต root ฉันไม่ทราบว่ามีผู้ใช้ที่อ้างถึงพื้นที่อื่น โปรดแก้ไขคำถามของฉันเป็นสิ่งที่เหมาะสม ฉันคิดถึงคำตอบนั้นด้วย แต่ฉันไม่รู้เกี่ยวกับการตั้งค่าโดยไม่ได้รับสิทธิ์รูท
Oxwivi

คำตอบ:


32

sshuttleเป็นพร็อกซีเซิร์ฟเวอร์แบบโปร่งใสที่ส่งต่อผ่านการเชื่อมต่อ SSH และตั้งค่าพร็อกซีด้วยการเรียกใช้สคริปต์ Python บนเซิร์ฟเวอร์ระยะไกล sshuttleสามารถเรียกใช้ภายใต้เงื่อนไขดังต่อไปนี้:

  • เครื่องไคลเอนต์หรือเราเตอร์ใช้ Linux, FreeBSD หรือ Mac OS
  • สิทธิ์ของผู้ดูแลระบบสำหรับลูกค้า
  • เข้าถึงเครือข่ายระยะไกลผ่าน SSH
  • ไม่มีสิทธิ์ของผู้ดูแลระบบในเครือข่ายระยะไกล
  • ความพร้อมใช้งานของ Python บนเซิร์ฟเวอร์ระยะไกล

ติดตั้งsshuttleป้อนคำอธิบายรูปภาพที่นี่จาก Software Center หรือ Terminal:

sudo apt-get install sshuttle

คำสั่งพื้นฐานสำหรับการเรียกใช้ sshuttle ด้วยการกำหนดเส้นทางการรับส่งข้อมูลทั้งหมดคือ:

sshuttle -r username@sshserver:port 0/0

เมื่อดำเนินการตามคำสั่งsudoระบบจะแสดงพรอมต์รหัสผ่านและรหัสผ่านไปยังบัญชี SSH จะไม่มีรายละเอียดอื่นใดปรากฏยกเว้นข้อความสั้นและกลับสู่เชลล์เมื่อเกิดความล้มเหลว สำหรับข้อความสถานะเพิ่มเติมให้รันsshuttleในโหมด verbose ด้วย-vแฟล็ก

ในตัวอย่างนี้การรับส่งข้อมูลทางอินเทอร์เน็ตทั้งหมดยกเว้น DNS จะถูกส่งผ่าน VPN -rflag หมายถึงชื่อโฮสต์ระยะไกลและชื่อผู้ใช้และพอร์ตทางเลือกที่ตามมาในตัวอย่างด้านบน 0/0สั้นสำหรับ0.0.0.0/0ที่แสดงถึงเครือข่ายย่อยเพื่อกำหนดเส้นทางผ่าน VPN การใช้0/0เส้นทางทั้งหมดทราฟฟิกยกเว้น DNS ร้องขอไปยังเซิร์ฟเวอร์ระยะไกล การปรับแต่ง DNS สามารถทำได้เมื่อใช้การ-Hตั้งค่าสถานะ

โปรดอ่าน man page ( man sshuttle) สำหรับรายละเอียดตัวเลือกและโหมดที่sshuttleสามารถใช้งานได้ สำหรับข้อมูลเกี่ยวกับแนวคิดและตัวอย่างเพิ่มเติมโปรดดูที่หน้าโครงการ


redsocksยังมีมูลค่าการพิจารณา; คุณสมบัติเดียวกันการดำเนินการที่แตกต่างกันเล็กน้อย
sanmai

17

คุณไม่สามารถตั้งค่า OpenVPN โดยไม่มีสิทธิ์รูทได้เนื่องจากการดำเนินการบางอย่างจำเป็นต้องใช้

  • สิ่งที่ต้องทำก่อน: คุณต้องเปิดใช้งานการส่งต่อแพ็คเก็ตในไฟร์วอลล์ (iptables?) ของคุณ
  • เพิ่มอุปกรณ์ในการดำเนินงาน: ifconfigอุปกรณ์เสมือนพิเศษจะต้องมีการเพิ่มการใช้ มิฉะนั้นจะไม่สามารถทำการสื่อสารระหว่างเซิร์ฟเวอร์และไคลเอนต์ได้

มีโซลูชั่นอื่น ๆ ให้เลือกตามความต้องการของคุณ สำหรับการเรียกดูผ่านเซิร์ฟเวอร์ของคุณคุณอาจตั้งค่าเซิร์ฟเวอร์ SOCKS

SOCKS proxy

การตั้งค่าพร็อกซี SOCKS ไม่ใช่เรื่องยาก: มันมีอยู่แล้วใน OpenSSH หากต้องการเปิดใช้งานเซิร์ฟเวอร์ SOCKS ให้รันคำสั่งถัดไปในเทอร์มินัล :

ssh user@host -D1234

แทนที่ 1234 ด้วยพอร์ตที่คุณต้องการ ในเบราว์เซอร์ของคุณคุณสามารถป้อนlocalhostเป็นโฮสต์และ1234พอร์ตที่เซิร์ฟเวอร์ SOCKS4 / 5

ด้านล่างเป็นตัวอย่างในเบราว์เซอร์ Firefox:

  1. ไปที่แก้ไข -> การตั้งค่า
  2. เปิดส่วนขั้นสูง
  3. ไปที่แท็บเครือข่าย
  4. กดการตั้งค่า
  5. เลือกการกำหนดค่าพร็อกซีด้วยตนเอง
  6. ป้อนlocalhostเป็นโฮสต์ SOCKS
  7. ป้อน1234เป็นพอร์ต (พอร์ตเดียวกับที่ระบุในคำสั่ง SSH)
  8. กดตกลงและปิดเพื่อปิดกล่องโต้ตอบการตั้งค่า

ตัวอย่างการตั้งค่า FIrefox


1
ฉันต้องการกำหนดเส้นทางอินเทอร์เน็ตผ่านระบบที่ฉันต้องการติดตั้ง VPN
Oxwivi

น่าเสียดายที่คุณไม่สามารถเปลี่ยนกฎการกำหนดเส้นทางบนเซิร์ฟเวอร์โดยไม่มีสิทธิ์รูท ทางออกหนึ่งที่ให้โซลูชันการรักษาความปลอดภัยอย่างน้อยสำหรับการเรียกดูคือการใช้พร็อกซี SOCKS ดังที่อธิบายไว้ในคำตอบ
Lekensteyn

1
ฉันประสบความสำเร็จในการท่องอินเทอร์เน็ตผ่านอุโมงค์ SSH ฉันจะแก้ไขคำตอบของคุณเพื่ออ้างถึงเฉพาะในขณะที่ฉันแก้ไขคำถามได้หรือไม่ หรือคุณจะทำมัน
Oxwivi

@Oxwivi: ฉันจะสั่งซื้อใหม่และเพิ่มตัวอย่างสำหรับ Firefox
Lekensteyn

-1

หากคุณต้องการเพียงช่องทางของการรับส่งข้อมูล TCP ระบบของฉันฉันแนะนำให้ใช้ programm ที่เรียกว่า tun2socks หากคุณต้องการรับส่งข้อมูลทันเดอร์ UDP คุณต้องติดตั้ง udpgw บนเซิร์ฟเวอร์ของคุณ

นี่คือการสอนวิธีการติดตั้งและใช้ programms นี้: http://board.nwrk.biz/viewtopic.php?id=3


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