Заметки о ssh туннелях

SSH туннели.

Синтаксис, в общем виде:

ssh -L [bind address(начало тоннеля):]bindport:host(конец тоннеля):hostport sshserver.com -l sshuser

ssh -R [bind address(начало тоннеля):]bindport:host(конец тоннеля):hostport sshserver.com -l sshuser

[.] необязательный параметр

где под началом и концом туннеля имеется ввиду направление работы туннеля, т.е. откуда и куда форвардится tcp соединение через ssh

bindport- порт на котором слушает ssh клиент или ssh сервер

hostport - порт к которому подключается ssh клиент или ssh сервер

-L -форвардинг в направлении с локальной (L)ocal машины на удаленный сервер

-R -форвардинг с удаленного (R)emote сервера на локальную машину

sshserver.com - удаленный сервер

sshuser - пользователь, имеющий доступ к серверу по ssh

Схема

для -L:

[ { application client } ===> { (bindport)ssh client } ] ------> [ { ssh sever } ===> { (hostport) application server } ]

для -R:

[ { application server(hostport) } <=== { ssh client } ] ------> [ { ssh sever (bindport) } <=== { application client } ]

---> направление ssh соединения

===> направление ssh туннеля

Пример:
Предоставить доступ к веб серверу, запущенному на локальной машине за nat через доступный по ssh сервер myserver.com с публичным ip:

На ssh сервере добавляем в sshd.config:

AllowTcpForwarding yes - разрешить форвардинг
GatewayPorts yes - разрешить соединения на указанные порты не только с localhost-a

На локальной машине запускаем:
ssh -N -R 3456:localhost:80 myserver.com -l sshuser
-N - не выполнять на удаленной машине команды, т.е. не запускать /bin/sh

На сервере открыть файрволом порт 3456
После этого при подключении на http://myserver.com:3456 получим доступ к веб серверу на 80 прту локальной машины.

Подключение по rdp с использованием ssh туннелей через промежуточный сервер описано в статье https://nixadmin.ru/rdp_connect_via_ssh_tunnels_with_intermediate_server

https://www.ssh.com/ssh/tunneling/example

Отправить комментарий

CAPTCHA
Чтобы убедиться в том что Вы не робот, ответьте, пожалуйста, на вопрос
Fill in the blank