Пробросы портов
На клиентской машине под Window будут рассмотрены примеры с использованием программы Putty, для Linux буду использовать shell.
Прямой проброс.
Рассмотрим следующую ситуацию:
Есть сервер Host3. Доступ к нему имеется только через Host2. Нам необходимо подключиться на 22 порт Host3 (3.3.3.3)
В данном случае мы сообщаем промежуточному узлу (Host 2)что все данные, которые мы будет отправлять на определенный сокет своей системы (т.е. определенный порт определенного адреса, порт выбирается любой свободный) необходимо переслать на определенный порт адреса host3 (в нашем примере на порт 22 адреса 3.3.3.3)
Linux:
В общем виде команда выглядит следующим образом:
ssh -L addr_local:port_local:addr3:port3 user@host2
addr_local и port_local это ip адрес и порт нашего компьютера
addr3 и port3 — адрес и нужный нам порт на целевом хосте
user@host2 – имя пользователя и адрес промежуточного узла
Перед пробросом порта убедитесь, что порт на локальном компьютере свободен и не закрыт firewall`ом
Пробросим порт 2201 с 1.1.1.1:
ssh -L 1.1.1.1:2201:3.3.3.3:22 user@2.2.2.2
или с 127.0.0.1
ssh -L 127.0.0.1:2201:3.3.3.3:22 user@2.2.2.2
Примечание: локальный адрес 127.0.0.1 можно не указывать, т.к. он идет по умолчанию
Если у вас реализована система доменных имен, то можно вместо адресов писать имена хостов:
ssh -L localhost:2201:host3:22 user@host2
или
ssh -L 2201:host3:22 user@host2
Если хотите сделать доступ к туннелю со всех интерфейсах то укажите в качестве локального адреса 0.0.0.0
Например:
ssh -L 0.0.0.0:2201:host3:22 user@host2
Windows:
1. Пропишите адрес или доменное имя промежуточного хоста (host2)
2. Укажите порт SSH сервера на промежуточном хосте
3. Перейдите в параметры SSH в раздел туннелей
4. Укажите локальный порт на клиентской машине на который будут отсылаться данный (port local)
5. Укажите адрес и порт на целевом хосте (host3)
6. Нажать на кнопку применить правила
7. После чего правило отобразится в данном окне
8. По умолчанию порт будет слушаться на интерфейсе 127.0.0.1, если необходимо слушать на всех интерфейсах поставьте галочку
9. После чего открываем сессию и вводим учетные данные на промежуточном узле
Туннель у нас готов, теперь если мы откроем новую сессию на нашей машине (localhost) и попытаемся подключиться на адрес 127.0.0.1 и порт 2201, то попадем на порт 22 целевого узла (host3)
Таким образом можно прокинуть любой порт удаленной системы (например 80 для http и 443 для https)