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-соединение с университетом, имеющим онлайн подписку на эти журналы. При этом, сохраняя что-либо, вы сохраняете это сразу на ваш локальный компьютер.
Ссылки
править- Стандарты
- RFC4251. The Secure Shell (SSH) Protocol Architecture (англ.)
- RFC4251. Архитектура протокола SSH (перевод)
- Программы терминального доступа
- OpenSSH — свободная библиотека и набор утилит для поддержки шифрования, открытый код
- PuTTY — популярный кроссплатформенный SSH-клиент
- PuTTY.org.ru — русскоязычный сайт PuTTY
- Сравнение SSH-клиентов (англ.)
- MidpSSH (англ.) — SSH-клиент для мобильных телефонов
- Server Auditor (англ.) — Android и iOS SSH-клиент с поддержкой SSH туннелирования
- Программы доступа к файлам
- FTP Commander Deluxe — популярная программа поддерживает все безопасные протоколы
- WinSCP [1] — SFTP-клиент для Microsoft Windows
- CloudMounter – SFTP-клиент для Mac OS X
- SftpDrive — SFTP-клиент для Microsoft Windows
- SSH Filesystem — позволяет подключить директорию, доступную на удаленной машине по ssh, как локальную директорию в GNU/Linux.