Зворотне динамічне переспрямування SSH: віддалений SOCKS-прослуховувач
Створіть зворотний динамічний SOCKS-прослуховувач на сервері SSH, де з'єднання до призначень відкриваються з боку клієнта.
Зазвичай тунель SSH SOCKS дає ноутбуку мережевий вихід сервера. Зворотне динамічне переспрямування перевертає цю схему: програма на віддаленій машині може використовувати мережу, доступну вашому SSH-клієнту.
На клієнті OpenSSH, що підтримує віддалене переспрямування без призначення:
ssh -N -R 127.0.0.1:1080 [email protected]
SOCKS-прослуховувач розташований на remote.example.net і прив'язаний до власної loopback-адреси. Програми там використовують 127.0.0.1:1080. З'єднання до призначень ідуть назад через SSH і відкриваються з того боку, де працює ваш клієнт.
Читайте напрямок раніше за IP
Документація -R робить пропущене призначення значущим. Специфікація з port:host:hostport — це натомість фіксоване переспрямування. Не припускайте, що старий клієнт підтримує коротшу динамічну форму.
Зовнішній IP — це той, який мережа на боці вашого клієнта використовує для цих з'єднань. Ноутбук за домашнім маршрутизатором може виходити через трансльовану публічну адресу маршрутизатора. Це не автоматично IP сервера SSH і не адреса, призначена ноутбуку безпосередньо.
Тримайте віддалений прослуховувач обмеженим. Прив'язка з підстановочним знаком може дозволити іншим машинам використовувати мережу на боці вашого клієнта як вихід, згідно з політикою сервера. Навіть loopback може бути доступним іншим відповідним процесам на віддаленому хості; це не секрет окремого процесу.
Для обмеженого набору призначень перегляньте PermitRemoteOpen і політику переспрямування сервера. Маршрут також залежить від того, чи залишається ваш клієнт у мережі. Коли це з'єднання закривається, віддалений шлях через проксі зникає. Зворотне переспрямування змінює те, звідки виникають з'єднання; воно не дає самостійного проксі, незалежного від сеансу SSH.