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

SSH через обратный прокси

Хорошо, у меня есть странный, но, надеюсь, простой. Я уже искал туннелирование SSH и знаком с командой «ssh -r». Но это другая ситуация.

Вот установка. У меня есть 1 сервер обратного прокси-сервера / балансировки нагрузки / брандмауэра, который принимает HTTP-запросы и передает их 3 внутренним серверам. Только у шлюза есть общедоступный IP-адрес. Все внутренние серверы ограничены частными IP-адресами в VPN. У меня нет физического доступа ни к одному из этих серверов (хостинг VPS). Все серверы Ubuntu, прокси фунт.

Что мне нужно сделать, так это использовать SSH для подключения к любому из «ящиков» для обслуживания, обновлений и т. Д. Через шлюз. Как при вызове с моей домашней машины «ssh user @ gateway -p [BACKEND PORT]» и иметь шлюз, направляющий этот номер порта на правильный компьютер стандартным способом SSH. Как мне этого добиться?

Если сервер фунта является брандмауэром, я предполагаю, что он будет запускать iptables, настроить iptables для пересылки с внешнего порта X на внутренний порт Y. Pound предназначен для прокси http и https, переадресация портов для не веб-трафика должна выполняться с помощью соответствующего ПО, которое в данном случае не фунт.

Что-то вроде этого может сработать

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 222 -j DNAT --to 192.168.1.2:22
iptables -A FORWARD -p tcp -d 192.168.1.2 --dport 22 -j ACCEPT

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 223 -j DNAT --to 192.168.1.3:22
iptables -A FORWARD -p tcp -d 192.168.1.3 --dport 22 -j ACCEPT

И так далее, подстраивайтесь под свою ситуацию и т. Д.