Мне нужно перенаправить все подключения на любой адресный порт 22 на другой шлюз (т.е. без значения по умолчанию). Сначала я предполагаю сделать это с помощью ipfw:
sudo ipfw add 5 fwd $EXTERNAL_IP,22 tcp from any to any 22 keep-state
Но с Mac OS X Lion вроде бы не работает. В любом случае, глядя на документацию по ipfw, я вижу, что он устарел, и мне следует использовать pfctl.
Итак, я изменил /etc/pf.conf
файл:
rdr proto tcp from $internal_ip to any port 22 -> $external_ip port 22
Но безуспешно.
Кто-нибудь знает, как переводить или перенаправлять все соединения, созданные локальными приложениями, на любой адрес, кроме порта 22, на другой шлюз / IP-адрес?
Обновить
Следуя предложению Джейка, я попытался указать только IP-адрес назначения, поэтому преобразовал правило rdr в синтаксис mac os x:
rdr proto tcp from any to any port 22 -> $external_ip port 22
Даже в этом случае я не получил ожидаемых результатов, т.е. я могу подключиться к моему серверу по ssh, но через шлюз по умолчанию.
Вы можете попробовать найти порт Rinetd для Mac OS X.
rdr pass on $internal_ip inet proto tcp from any to any port 22
Ни в коем случае не эксперт, думаю, это должно сработать. Был длинный время с тех пор, как я использовал что-нибудь кроме iptables :)