Руководство FreeBSD

         

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


OpenSSH поддерживает возможность создания туннеля для пропуска соединения по другому протоколу через защищенную сессию.

Следующая команда указывает ssh(1) создать туннель для telnet:

% ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com

%

Команда ssh используется со следующими параметрами:

-2

Указывает ssh использовать версию 2 протокола (не используйте этот параметр, если работаете со старыми SSH серверами).

-N

Означает использование в не-командном режиме, только для тунеллирования. Если этот параметр опущен, ssh запустит обычную сессию.

-f

Указывает ssh запускаться в фоновом режиме.

-L

Означает локальный туннель в стиле localport:remotehost:remoteport.

user@foo.example.com

Удаленный сервер SSH.

Туннель SSH создается путем создания прослушивающего сокета на определенном порту localhost. Затем все принятые на локальном хосту/порту соединения переправляются на через SSH на определенный удаленный хост и порт.

В этом примере, порт 5023 на localhost перенаправляется на порт 23

на localhost удаленного компьютера. Поскольку 23 это порт telnet, будет создано защищенное соединение telnet через туннель SSH.

Этот метод можно использовать для любого числа небезопасных протоколов, таких как SMTP, POP3, FTP, и так далее.

Пример 14-1. Использование SSH для создания защищенного туннеля на SMTP

% ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com

user@mailserver.example.com's password: *****

% telnet localhost 5025

Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 mailserver.example.com ESMTP

Этот метод можно использовать вместе с ssh-keygen(1) и дополнительными пользовательскими учетными записями для создания более удобного автоматического SSH тунеллирования. Ключи могут быть использованы вместо паролей, и туннели могут запускаться от отдельных пользователей.



Содержание раздела