Назад | Перейти на главную страницу

IPTables перенаправляет SSH на основе строки подключения?

Мы используем облачный сервер (Debian Squeeze), через который общедоступные порты на общедоступном IP направляют трафик на внутренние серверы. Мы ищем способ использовать IPTables и ssh, где на основе некоторой части строки подключения ssh (или чего-то подобного) iptables перенаправит ssh-соединение на «правильный» внутренний сервер. Это позволит нам использовать один общий общедоступный порт, а затем перенаправить ssh-соединения на отдельные серверы.

Так, например, мы надеемся сделать что-то вроде следующего:

Похоже, что "строковый" аспект iptables не делает того, что мы хотим.

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

Какие-либо предложения? Спасибо!

Это невозможно. Связь между вами и ssh-сервером полностью зашифрована, iptables не имеет возможности заглянуть внутрь пакета и, следовательно, может соответствовать только на основе IP / порта на отправляющей и принимающей стороне.

Я бы настроил разные порты на общедоступном компьютере и перенаправил их через iptables на машины в фоновом режиме, а затем сделал бы что-то вроде этого в конфигурации вашего ssh-клиента (~ / .ssh / config):

Host machineA
        HostName your-public-machine
        Port 12341

Host machineB
        HostName your-public-machine
        Port 12342

Host machineC
        HostName your-public-machine
        Port 12343

С этой конфигурацией вы можете просто запустить ssh machineA, ssh machineB или ssh machineC и добраться до нужной машины.