ฉันจะสร้างการเชื่อมต่อ VPN โดยใช้เพียงเทอร์มินัล (SSH) ได้อย่างไร


13

ฉันกำลังพยายามสร้างการเชื่อมต่อ VPN สำหรับเครื่อง Ubuntu Server ของฉันที่จะใช้ ฉันสามารถเข้าถึงได้ผ่านเซสชันเทอร์มินัล ssh เท่านั้น

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

ฉันใช้ Ubuntu Server 12.x


ดังนั้นฉันคิดว่าคุณต้องการติดตั้งเซิร์ฟเวอร์ VPN บนเครื่องของคุณใช่ไหม
เรน

ฉันไม่คิดอย่างนั้น (เว้นแต่ฉันจะเข้าใจผิด) ฉันต้องการให้เซิร์ฟเวอร์ของฉันเชื่อมต่อกับ VPN ไม่ใช่เซิร์ฟเวอร์ VPN
Dve

ssh ทรงพลังจริงๆ คุณสามารถเชื่อมต่อโดยใช้ $ ssh -X <host> -u <user> ด้วยวิธีนี้คุณจะมีการเชื่อมต่อกับการส่งต่อ X ดังนั้นคุณสามารถใช้แอปพลิเคชัน X จากเครื่องระยะไกลของคุณ สิ่งนี้มีประโยชน์ถ้าคุณรู้สึกว่าใช้ X สะดวกสบายมากกว่าแค่ใช้คอนโซลธรรมดา
jap1968

อีกตัวเลือกหนึ่งคือใช้เงา + พร็อกซีแทน VPN
elprup

คำตอบ:


7

เนื่องจากฉันไม่เข้าใจสิ่งที่คุณต้องทำอย่างแท้จริงให้ฉันอธิบายว่า VPN ทำงานอย่างไร:

ในการมี VPN คุณต้องมีเซิร์ฟเวอร์ VPN (ที่ที่คุณเชื่อมต่อ) และไคลเอนต์ VPN (เครื่องที่คุณใช้เชื่อมต่อกับเซิร์ฟเวอร์) คุณไม่สามารถสร้างการเชื่อมต่อโดยไม่มีเซิร์ฟเวอร์ VPN เรามี 3 ความเป็นไปได้ที่นี่:

  • คุณต้องการให้เซิร์ฟเวอร์ของคุณเชื่อมต่อกับเซิร์ฟเวอร์อื่น (เซิร์ฟเวอร์ VPN) ในกรณีนี้คุณต้องมีไคลเอนต์และเนื่องจากมี VPN หลายประเภทคุณต้องทำตามคำแนะนำจากผู้ดูแลระบบเซิร์ฟเวอร์ VPN

  • คุณต้องการเชื่อมต่อกับเซิร์ฟเวอร์ของคุณจากเครื่องอื่น (เครื่องของคุณอาจ) และในกรณีนี้คุณต้องติดตั้งเซิร์ฟเวอร์ VPN บนเซิร์ฟเวอร์ของคุณและไคลเอนต์ในเครื่องของคุณ สำหรับสิ่งที่ฉันใช้OpenVPN เป็นเวลาหลายปีและทำงานได้ดีกับไคลเอนต์ Windows และ Ubuntu

  • คุณต้องการเชื่อมต่อทั้งสองเครื่องกับเซิร์ฟเวอร์ VPN ที่โฮสต์จากบุคคลที่สามและในกรณีนี้เนื่องจากมี VPN หลายประเภทคุณต้องทำตามคำแนะนำของผู้ดูแลระบบบุคคลที่สาม

หากคุณต้องการการเชื่อมต่อ "ส่วนตัว / เข้ารหัส" ไปยังเซิร์ฟเวอร์ของคุณคุณมี SSH อยู่แล้วและคุณจะไม่ต้องใช้ VPN อีกมาก VPN มีประโยชน์ในการเชื่อมต่อกับเครือข่ายราวกับว่าคุณเป็นเครื่องท้องถิ่นในเครือข่ายและไม่เป็นประโยชน์ในการเชื่อมต่อกับเครื่องเดียวซึ่งคุณสามารถใช้การเชื่อมต่อ SSH สำหรับเทอร์มินัล (และเปลี่ยนเส้นทางกราฟิกเอาต์พุตไปยังหน้าจอของคุณหากเซิร์ฟเวอร์มีกราฟิก desktop) และ SSH tunnels เพื่อเข้าถึงพอร์ตอื่น ตัวอย่างเช่นการสร้างช่องสัญญาณด้วย SSH โลคัลพอร์ตบนเครื่องของคุณไปยังพอร์ต 3306 บนเซิร์ฟเวอร์ระยะไกลเพื่อจัดการ MySQL ด้วยการเชื่อมต่อที่เข้ารหัส 100% แทนที่จะใช้ phpmyadmin ส่งรหัสผ่าน root ของคุณผ่าน http

ปรับปรุง PPTP:

สำหรับไคลเอนต์ PPTP ผ่านทางบรรทัดคำสั่งคุณสามารถใช้ไคลเอนต์ pptp-linux:

sudo apt-get install pptp-linux

มีบทเรียนมากมายเกี่ยวกับวิธีการกำหนดค่า:

แก้ไขหลังจากความคิดเห็นจาก OP: ไซต์ช่วยเหลือชุมชน Ubuntuทำงาน

อื่น ๆ ที่มีอยู่เช่นลูกค้า PPTP ลินุกซ์ กวดวิชาสำหรับลูกค้าบรรทัดคำสั่งหรือลูกค้า GUI เพื่อติดตั้งเฉพาะpptp-linuxและไม่ได้network-manager-pptp

คำแนะนำไซต์ pptp-linuxสำหรับ Debian ยังมีรายละเอียดสำหรับบรรทัดคำสั่งและควรทำงานได้อย่างไม่มีปัญหาใน Ubuntu


1
ใช่ฉันเข้าใจแล้ว ฉันพยายามทำสิ่งที่คุณระบุไว้ในหัวข้อย่อยแรก - เชื่อมต่อกับเซิร์ฟเวอร์ VPN อื่นจากเซิร์ฟเวอร์ของฉัน ฉันรู้รายละเอียดการเชื่อมต่อทั้งหมดฉันเชื่อมต่อกับเทอร์มินัลเซิร์ฟเวอร์ของฉัน (ผ่าน ssh) ฉันพยายามค้นหาวิธีกำหนดค่าการเชื่อมต่อ VPN ผ่านเทอร์มินัลเซสชันนี้
Dve

ดังนั้นรายละเอียดการเชื่อมต่อคืออะไร? (ประเภทของ VPN ของเซิร์ฟเวอร์และพารามิเตอร์ที่จำเป็นถ้ามี - ไม่จำเป็นต้องใช้รหัสผ่านหรือ ip จริงถ้ามี) คุณไม่มีคำแนะนำในการตั้งค่าไคลเอนต์จากผู้ดูแลเซิร์ฟเวอร์ VPN ใช่ไหม
เรน

1
ฉันกำลังถามชนิดของ VPN เพราะแต่ละโปรโตคอล VPN ต้องการไคลเอนต์ที่แตกต่างกัน คุณสามารถหาคำแนะนำสำหรับพวกเขาได้ในhelp.ubuntu.com/community/VPNClient
laurent

มันคือการเชื่อมต่อ PPTP ลิงค์ที่คุณโพสต์นั้นดูเหมือนว่าจะไม่มีรายละเอียดขั้นตอนในการสร้างการเชื่อมต่อ PPTP ใหม่ (เท่าที่ฉันเห็น) มันจะดีถ้าฉันสามารถเปิดตัวจัดการเครือข่ายผ่านการส่งต่อ ssh X11 - แต่ฉันไม่ต้องการที่จะติดตั้ง gdm เพื่อทำเช่นนั้น
Dve

อัปเดตคำตอบสำหรับ PPTP
เรนต์

1

บทความนี้อาจเป็นประโยชน์ http://ashu-geek.blogspot.com/2012/05/vpn-virtual-private-network.html

มันอธิบายวิธีการสร้างการเชื่อมต่อ VPN โดยใช้เทอร์มินัลและ GUI dekstop


3
ยินดีต้อนรับสู่ถาม Ubuntu! ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
Lucio

0

ใช้ 'pppd' เพื่อทำให้สำเร็จ:

sudo pppd nodetach defaultroute replacedefaultroute persist password mypassword file myvpn

แทนที่ "mypassword" ด้วยรหัสผ่านบัญชี pptp ของคุณ "myvpn" เป็นไฟล์กำหนดค่าจัดรูปแบบดังนี้:

linkname myvpn 
ipparam myvpn 
pty "pptp server_address --nolaunchpppd " 
name myaccount 
usepeerdns 
require-mppe 
refuse-eap noauth

# adopt defaults from the pptp-linux package 
file /etc/ppp/options.pptp

รูปแบบไฟล์กำหนดค่านี้มีการกล่าวถึงในที่นี่: https://help.ubuntu.com/community/VPNClient

และ "nodetach" หรือ "defaultroute" เป็นตัวเลือกสำหรับ pppd ซึ่งได้อธิบายไว้ที่นี่: http://manpages.ubuntu.com/manpages/hardy/man8/pppd.8.html

ฉันใช้วิธีนี้ใน java เพื่อตั้งค่าการเชื่อมต่อ VPN ไคลเอนต์ pptp ใช่ใช้งานได้

ไฟล์ pid อยู่ใน /var/run/ppp-xxx.pid "xxx" คือชื่อลิงก์ของคุณที่อยู่ในไฟล์ปรับแต่งของคุณ คุณสามารถอ่าน pid ของ pppd จากไฟล์ pid นี้ส่งสัญญาณไปยัง pppd เช่น "sudo kill -s SIGTERM pid_of_pppd" เพื่อปิด pppd

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