Предположим, есть хосты A
и B
A
разрешен доступ SSH к B
на основе его IP-адреса. Рассмотрим теперь еще один хост C
C
не имеет доступа к B
, но если бы мы могли направить его трафик через A
, то C
мог бы получить доступ к B
Проблема в том, как сделать такой перевод адреса? Нет двух хостов в одной локальной сети.
Моей первой мыслью было сделать SNAT с iptables на A
:
iptables -t nat -A POSTROUTING --protocol tcp --source C --destination B --sport 7777 --dport 22 -j SNAT A
Это означает, что C
должен попытаться подключиться к A:7777
но я понял, что маршрутизация пакета до SNAT все портит, поэтому преобразование адреса должно выполняться в PREROUTING - что, к сожалению, невозможно. Еще одна мысль была о настройке VPN, но я думаю, что это слишком сложно. Есть ли хороший способ сделать это, желательно с чем-то таким чистым, как iptables?