SSH туннелирование

SSH туннель — это туннель, создаваемый посредством SSH соединения и используемый для шифрования туннелированных данных. Используется для того, чтобы обезопасить передачу данных в интернете. Особенность состоит в том, что незашифрованный трафик какого-либо протокола шифруется на одном конце SSH соединения и расшифровывается на другом.

Пример: Использование веб-браузера

править

Настройка веб-браузера

править

Например, в Mozilla Firefox зайдите в Настройки -> Дополнительно -> Сеть -> Соединение

В параметрах соединения установите галочку на "Настроить параметры подключения прокси вручную" и пропишите в опциях:

SOCKS-прокси: localhost
Порт: 12345 (или любой другой неиспользуемый порт)

SSH соединение

править
SOCKS проксирование
править

Установите SSH-соединение командой в вашем SSH-клиенте

ssh -D localhost:12345 ваше_имя@адрес_удаленного_компьютера

опция -D адрес:порт задает туннелирование порта. Ее работа заключается в том, что создается сокет для прослушивания порта на локальной машине, привязанный (необязательно) к конкретному адресу. Когда создается соединение к этому порту, это соединение туннелируется по зашифрованному каналу, и протокол приложения затем используется, чтобы определить, куда соединяться с удаленной машиной. При этом SSH работает как SOCKS сервер. (поддерживается 4 и 5я версии протокола)

Переброс локального порта на удаленную машину
править

Возможно также переадресовывать все соединения на локальный порт через защищенный туннель на удаленную машину. Команда имеет вид:

ssh -L [локальный_адрес:]локальный_порт:удаленный_адрес:удаленный_порт [пользователь@]сервер

После этого все соединения на локальный_адрес:локальный_порт будут переадресовываться удаленному серверу, который будет соединяться с удаленный_адрес:удаленный_порт от своего имени. По умолчанию локальный_адрес соответствует 127.0.0.1. Возможно использование нескольких ключей -L в одном клиенте.

Переброс удаленного порта на локальную машину
править

Для совершения обратного действия нужно выполнить команду с ключом -R:

ssh -R [удаленный_адрес:]удаленный_порт:локальный_адрес:локальный_порт [пользователь@]сервер

Команда работает также как и в вышеописанном случае только соединения перебрасываются с удаленной машины на локальную.

SSH соединение с PuTTY

править

Для использования SSH-туннелирования в PuTTY:

  • В Connection -> SSH -> Tunnels введите
Source port: 12345
Destination: localhost:12345

Установите галочку на "Dynamic" и нажмите кнопку "Add".

  • В Session введите нужный "Host Name" и выберите протокол SSH. Затем сохраните опции набрав в "Saved Sessions" имя, например, "HostName with ssh tunnel on 12345" и нажмите "Save". Двойным кликом на это имя установите соединение.

Как только SSH-соединение установится, вы можете использовать свой браузер. Зайдя на одну из веб-страниц, где определяется ваш IP адрес, можно убедиться, что он теперь определяется как IP адрес удаленной машины. Поэтому SSH-туннелирование окажется полезным для просмотра статей платных журналов в вашем браузере используя SSH-соединение с университетом, имеющим онлайн подписку на эти журналы. При этом, сохраняя что-либо, вы сохраняете это сразу на ваш локальный компьютер.

Ссылки

править
Стандарты
Программы терминального доступа
  • OpenSSH — свободная библиотека и набор утилит для поддержки шифрования, открытый код
  • PuTTY — популярный кроссплатформенный SSH-клиент
  • PuTTY.org.ru — русскоязычный сайт PuTTY
  • Сравнение SSH-клиентов (англ.)
  • MidpSSH (англ.) — SSH-клиент для мобильных телефонов
  • Server Auditor (англ.) — Android и iOS SSH-клиент с поддержкой SSH туннелирования
Программы доступа к файлам