Як маршрутизувати Інтернет через тунель SSH?


24

Старий Q Як налаштувати сервер OpenVPN без привілеїв root?

Чи є спосіб встановити сервер OpenVPN без привілеїв root? Наприклад, з конфігураційними файлами в моєму домашньому каталозі? Якщо так, то як це зробити?

Я намагаюся SSH увійти в систему і встановити сервер OpenVPN там для особистого використання.

EDIT

Оскільки очевидно, що OpenVPN потребує кореневих привілеїв, я змінюю питання про маршрутизацію мого Інтернету за допомогою SSH, який я можу легко налаштувати.


Під "користувацьким простором" ви маєте на увазі домашню папку без дозволів root? Зазвичай "простір користувачів" використовується як протилежний "простору ядра".
Лекенштейн


@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у багатослівному режимі -vпрапор.

У цьому прикладі весь інтернет-трафік, крім DNS, здійснюється через VPN. -rпрапор позначає віддалене ім'я хоста та необов'язкове ім'я користувача та порт, що слідує у наведеному вище прикладі. 0/0Короткий 0.0.0.0/0варіант, який представляє підмережі для маршрутизації через VPN. Використання 0/0маршрутів весь трафік, крім запитів DNS на віддалений сервер. Налаштування DNS можливе при використанні -Hпрапора.

Будь ласка, прочитайте сторінку man ( man sshuttle), щоб отримати детальну інформацію про параметри та режими, в яких sshuttleможна працювати. Інформацію про концепцію та інші приклади див. На сторінці проекту .


червоні шкарпетки також варто врахувати; ті ж особливості, трохи інша страта
sanmai

17

Ви не можете налаштувати OpenVPN без кореневих привілеїв, оскільки цього вимагають певні операції.

  • Передумови: вам потрібно включити переадресацію пакетів у брандмауері (iptables?)
  • Додавання пристроїв в експлуатацію: спеціальний віртуальний пристрій потрібно додати за допомогою ifconfig. Інакше зв’язок між сервером та клієнтом неможливий

Залежно від ваших потреб, доступні інші рішення. Для перегляду вашого сервера ви можете налаштувати сервер SOCKS.

Проксі-сервер SOCKS

Налаштувати проксі-сервер 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. Натисніть OK та Close, щоб закрити діалогові вікна налаштувань.

Приклад налаштування FIrefox


1
Я хочу прокласти свій Інтернет через систему, на якій потрібно налаштувати VPN.
Oxwivi

На жаль, ви не можете змінити правила маршрутизації на сервері без привілеїв root. Одне рішення, яке забезпечує принаймні безпечне рішення для перегляду, - це використання проксі-сервера SOCKS, як описано у відповіді.
Лекенштейн

1
Мені вдалося перенести свій інтернет через тунель SSH. Чи потрібно редагувати вашу відповідь, щоб конкретно посилатися на це, коли я редагував питання? Або ти зробиш це?
Oxwivi

@Oxwivi: Я її ще раз замовляю і додаю приклад для Firefox.
Лекенштейн

-1

Якщо ви хочете тунелювати лише ваш TCP-трафік, я рекомендую використовувати програму під назвою tun2socks. Якщо ви також хочете тунелювати трафік UDP, вам доведеться встановити udpgw на свій сервер.

Ось підручник із встановлення та використання цих програм: http://board.nwrk.biz/viewtopic.php?id=3


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