SSH туннели

SSH туннели

Life-Hack - Linux/Хакинг/Хакер/ИБ/Osint

Туннель через SSH – стандарт, обеспечивающий безопасный удаленный доступ в систему и передачу файлов по защищённым сетям. Кроме того, он защищает трафик данных приложения за счёт переадресации портов, обычно это туннелирование произвольного порта TCP/IP через SSH. То есть трафик направляется на поток внутри зашифрованного SSH-соединения и не может быть перехвачен извне. SSH-туннелирование особенно актуально, если требуется обеспечить безопасность устаревших приложений, которые не поддерживают шифрование.

В рамках SSH-туннелирования устанавливается соединение между клиентом и сервером, оно зашифровывается и тем самым позволяет защитить конфиденциальность и целостность данных.

Приложение соединяется с сервером приложений по SSH, связываясь с портом на локальном хосте. Данные приложения в зашифрованном виде перенаправляются по туннелю на сервер, подключенный к фактическому серверу приложений. Благодаря SSH-туннелированию связь приложения остаётся защищённой, при этом не требуется менять рабочие процессы.

SSH-туннели применяются для:

  • Предоставления зашифрованных каналов для протоколов, использующих открытый текст
  • Открытия бэкдоров в частные сети
  • Обхода сетевых экранов

Local ssh Port Forwarding

Вы можете использовать локальный ssh-туннель, когда хотите получить доступ к ресурсу, к которому вы не можете получить доступ напрямую, но ssh-сервер, к которому у вас есть доступ, может.

На изображении выше синий хост не может связаться с http://192.168.0.3, но может связаться по ssh с 192.168.0.2. Следующая команда ssh, выполненная на синем хосте, позволит синему хосту получить доступ к красному хосту.

ssh -L 8080:192.168.0.3:80 reduser@192.168.0.2

Теперь синий хост может открыть браузер, перейти к http://localhost:8080 и получить веб-страницу, размещенную на 192.168.0.3.

Local Port Forward

На изображении выше синий хост хочет подключиться к красному хосту через порт 80, но между ними есть брандмауэр, который запрещает это. Поскольку синий хост может подключаться по ssh к красному хосту, мы можем создать локальный туннель ssh, перенаправляющий порт для доступа к этому порту. Команда на синем хосте будет такой:

ssh -L 8080:192.168.0.2:80 reduser@192.168.0.2

Теперь, когда синий хост откроет браузер и перейдет в http://localhost:8080, он сможет увидеть все, что есть у красного сервера на порту 80.

Remote SSH Port Forwarding

В этом сценарии мы создаем обратный ssh-туннель. Здесь мы можем инициировать ssh-туннель в одном направлении, а затем использовать этот туннель для создания ssh-туннеля обратно в другом направлении. Это может быть полезно, когда вы помещаете дрон-компьютер в сеть и хотите, чтобы он «позвонил домой». Затем, когда он звонит домой, вы можете подключиться к нему через установленный туннель ssh.

Мы находимся на зеленом хосте и хотим подключиться по ssh к синему хосту. Однако брандмауэр блокирует это соединение напрямую. Поскольку синий хост может подключаться по ssh к зеленому хосту, мы можем подключаться с его помощью, и когда зеленый хост захочет подключиться по ssh к синему хосту, он сможет использовать ранее установленный туннель. Синий хост инициирует ssh туннель следующим образом:

ssh -R 2222:localhost:22 greenuser@192.168.0.2

Это откроет порт 2222 на зеленом хосте, который затем перенаправит его на порт 22 на синем хосте. Таким образом, если зеленый хост подключится к самому себе по ssh на порт 2222, он достигнет синего хоста. Зеленый хост теперь может обращаться по ssh на синий хост следующим образом:

ssh -p 2222 blueuser@localhost


Report Page