SSH-туннель на локальный порт.

    Допустим у нас есть WEB-сервер, без доступа в интернет, для внутренний (приватной) сети. На роутере сети, всё закрыто, открыт только SSH-порт. Как же попасть на WEB-страницу сервера. Для этого нам необходимо организовать туннель по с помощью SSH.
    Общий формат:

    ssh -L [Local_IP:]Local_Port:Target_IP:Target_Port [Remote_User@]SSH_Server -p SSH_Port

    Где,

    Local_IP - Локальный адрес компьютера (по умолчанию localhost) c которого производим подключение.
    Local_Port – Порт на локальном компьютере, на который будем потом подключаться. 

    Target_IP - IP-адрес компьютера в приватной/внутренней сети сети
    Target_Port  – Порт назначения, компьютера в локальной сети.

    Remote_User – Удаленный пользователь на сервере к которому подключаемся.
    SSH_Server - SSH-сервер к которому подключаемся (роутер).
    SSH_Port - Если используется не стандартный порт для SSH (по умолчанию 22)

    При установлении соединения от имени пользователя  Local_Port не может быть менее 1024.

    Для примера: Подключаемся на внешний роутер gate.gateway.ru по ssh на порт 2112, и указываем ему создать туннель между поднятым на локальным хосте, портом 8080 и хостом за роутером в приватной сети 10.3.7.2 и портом 80 на нем.

    ssh -L 127.0.0.1:8080:10.3.7.2:80 root@gate.gateway.ru -p2112

    После этого можем проверить порт:

    $ netstat -pan | grep 8080
    tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      158910/ssh

    Теперь введя в адресной строке броузера http://127.0.0.1:8080/ мы попадем на внутренний WEB-сервер.

    Вот еще один пример которым я пользуюсь достаточно часто. Есть один клиент с дибильными админами, которые запрещают прямой доступ на сервер. Для подключения к серверу нужно подключить VPN потом зайти в шлюз удаленных рабочих столов Guacamole и уже оттуда попасть на сервер, на протяжении этого надо 4 раза вводить логин пароль, иначе как на садизм это не похоже. Поэтому шлем их на йух, подключаемся один раз на сервер и выполняем там:

    ssh -N -R 2211:localhost:22 root@19.19.19.19 -p2233

    19.19.19.19 - адрес моего сервера (SERVER), под моим контролем
    2233 - это порт SSH моего сервера.
    2211 - этот порт будет поднят на моем сервере, именно подключаясь к нему я буду попадать на скрытый хост (HOST)
    localhost - это айпи/host на котором будет поднят порт 2211, если подключаться будем с с самого сервера можно оставить localhost, иначе нужно прописывать адрес сервера полный
    22 - соответственно SSH-порт на хосте

    Теперь мы заходим на сервер, и вводя команду попадаем по тунелю на хост.:

    ssh user@localhost -p2211

    Copyright © 2022Powered by Bludit