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:

  • В Сonnection -> 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-клиент для мобильных телефонов
Программы доступа к файлам