Як створити 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

інший варіант - використання shadowsocks + proxychains замість VPN
elprup

Відповіді:


7

Оскільки я не зрозумів, що саме потрібно робити, дозвольте мені пояснити, як працює VPN:

Щоб мати VPN, вам потрібен сервер VPN (де ви підключаєтесь) та клієнт VPN (машина, яку ви використовуєте для підключення до сервера). Ви не можете створити з'єднання без VPN-сервера. У нас є 3 можливості:

  • Ви хочете, щоб ваш сервер підключився до іншого (VPN-сервера). У цьому випадку вам потрібен клієнт, і оскільки існують різні типи VPN, вам потрібно слідувати інструкціям адміністратора сервера VPN.

  • Ви хочете підключитися до свого сервера з іншої машини (можливо, ваша локальна машина), і в цьому випадку вам потрібно встановити VPN-сервер на вашому сервері та клієнт на вашій машині. Для цього я використовую OpenVPN вже багато років, і він дуже добре працює з клієнтами Windows та Ubuntu

  • Ви хочете підключити обидва машини до розміщеного VPN-сервера від третьої сторони, і в цьому випадку, оскільки існує багато різних типів VPN, вам потрібно дотримуватися вказівок адміністратора третьої сторони.

Якщо ви хочете лише "приватне / зашифроване" з'єднання з вашим сервером, у вас вже є SSH, і з VPN ви не будете мати більше. VPN корисно для підключення до мережі, як якщо б ви були локальною машиною в мережі, і не так корисно для підключення до однієї машини, де ви можете використовувати SSH-з'єднання для терміналів (і перенаправляти графічний вихід на екран, якщо сервер має графічний робочий стіл) та SSH тунелі для доступу до інших портів. Наприклад, тунелювання за допомогою SSH локального порту на вашій машині до порту 3306 на віддаленому сервері для адміністрування MySQL зі 100% зашифрованим з'єднанням замість того, щоб використовувати phpmyadmin, що надсилає ваш пароль кореневого базу даних через http.

Оновлення PPTP:

Для клієнта PPTP через командний рядок ви можете використовувати клієнт pptp-linux:

sudo apt-get install pptp-linux

Про те, як його налаштувати, існує багато навчальних посібників:

Відредаговано після коментарів з ОП: Довідковий сайт спільноти Ubuntu працював.

Інші доступні, наприклад, клієнт PPTP Linux . Підручник призначений для клієнта командного рядка або клієнта GUI, тому встановлюйте лише, pptp-linuxа неnetwork-manager-pptp

Інструкції сайту pptp-linux для Debian також детально описані для командного рядка і повинні без проблем працювати на Ubuntu.


1
Так, я це розумію. Я намагаюся зробити те, що ви вказали в першій точці кулі - підключитися до іншого VPN-сервера, з мого сервера. Я знаю всі деталі підключення, я підключений до терміналу свого сервера (через ssh). Я намагаюся дізнатися, як налаштувати з'єднання vpn через цей термінальний сеанс.
Две

То які деталі з'єднання? (тип 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
Ласкаво просимо в Ask Ubuntu! Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
Луціо

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 для установки pptp-клієнта vpn-з'єднання, так, він працює.

Pid-файл знаходиться в /var/run/ppp-xxx.pid, "xxx" - це ваше ім'я посилання, яке у вашому конфігураційному файлі. Ви можете прочитати pid pppd з цього pid-файлу, надіслати сигнал pppd, наприклад, "sudo kill -s SIGTERM pid_of_pppd", щоб вимкнути pppd.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.