21.04.2015

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

SSH туннелирование
Материал из Викиучебника

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

Содержание

    1 Пример: Использование веб-браузера
        1.1 Настройка веб-браузера
    2 SSH соединение
        2.1 SOCKS проксирование
        2.2 Переброс локального порта на удаленную машину
        2.3 Переброс удаленного порта на локальную машину
        2.4 SSH соединение с PuTTY
    3 Ссылки

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

Например, в 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-соединение с университетом, имеющим онлайн подписку на эти журналы. При этом, сохраняя что-либо, вы сохраняете это сразу на ваш локальный компьютер.