Featured image of post Перенаправлення портів за допомогою SSH тунелю

Перенаправлення портів за допомогою SSH тунелю

Введення

SSH Тунелі дозволяють перенаправляти певні порти на віддаленому сервері або локально. Це дуже зручно, коли нам потрібно потрапити на конкретний сервер у локальній мережі.

Технічно є можливість перенаправляти можна як локальні, так і віддалені порти. Ми розглянемо обидва випадки.

Перенаправлення локального порта

Розглянемо ситуацію, коли ми перебуваємо всередині локальної мережі, де доступ в інтернет блокується фаєрволлом усім, крім одного сервера, що має прямий доступ до інтернету. У нас є доступ до цього сервера SSH. Наше завдання полягає в тому, щоб підключитися до віддаленого сервера, який знаходиться у зовнішній мережі SSH.

Розглянемо приклад:

ssh -f -N -L 2222:212.212.212.212:22 user@111.111.111.111

Ця команда створить тунель, прокинувши порт 22 віддаленого сервера через локальний сервер, і ми зможемо підключитися до віддаленого сервера через порт 2222, який слухатиметься на локальному інтерфейсі нашого ПК.

Залишаємо термінал із тунельною сесією запущеним, у новому терміналі підключаємося до віддаленого сервера командою:

ssh -p2222 127.0.0.1

Таким чином, ми отримали доступ до SSH віддаленого сервера.

Перенаправлення віддаленого порту

Цей випадок протилежний до перенаправлення локального порта. Розглянемо ту ж саму локальну мережу і віддалений сервер, тільки тепер у локального ПК є доступ до Інтернету через NAT. Припустимо, що системному адміністратору, який має фізичний доступ до віддаленого сервера, потрібно підключитися по RDP до комп’ютера 192.168.0.2, але NAT не дасть цього зробити безпосередньо.

Розглянемо приклад, де існує RDP сервіс, що за змовчанням запущено на локальному порту 3389. Прокидаємо його на віддалений порт 3333.

ssh -f -N -R 3333:127.0.0.1:3389 username@212.212.212.212

Після підняття такого тунелю, сисадмін, що сидить за віддаленим сервером, зможе до нас підключитися RDP, використовуючи в RDP клієнті адресу 127.0.0.1:3333.

Висновки

Ось такі прості прийоми тунелювання через SSH протокол дозволяють маючи в розпорядженні доступ по SSH, перенаправляти порти локального чи віддаленого сервісу як заманеться, що може стати в нагоді якщо треба обійти певні обмеження в мережі, як, наприклад NAT.

Всі права захищено.