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

перенаправление портов pf

У меня есть основы работы с моим брандмауэром pf / маршрутизатором NAT; трафик идет нормально, запросы DNS на порт 53 отображаются во внутреннюю подсеть и успешно возвращаются обратно (без изменения номера порта). Но я застрял в переадресации портов с внутреннего шлюза на машину, где мне нужно перевести порты. Вот что у меня, похоже, не работает:

rdr on $ext_if inet proto tcp from any to 192.168.1.101 port 24 -> 192.168.0.105 port 22
pass in on $ext_if inet proto tcp from any to 192.168.0.105 port 22

Сеть является общедоступным IP => этот шлюз по адресу 192.168.1.101 => машине требуется доступ по ssh по адресу 192.168.0.105

порт 22 общедоступного адреса используется в другой подсети (10. сеть, параллельная сети 192.168.0.1/32).

для справки работает следующая ИС:

rdr on $ext_if proto udp from any to any port 53 -> 192.168.0.105
pass in on $ext_if inet proto udp from any to 192.168.0.105 port 53

РЕДАКТИРОВАТЬ: Итак, добавление «состояния synproxy» привело к тому, что он установил соединение и пытался войти в систему, а затем отключился (тогда как раньше он довольно быстро терпел неудачу). Это может быть просто вопрос тайм-аутов отсюда. Я попробую еще раз когда-нибудь; на данный момент я только что открыл SSH на самом маршрутизаторе и могу входить в систему шаг за шагом (на маршрутизатор, затем на машину).

Вы должны использовать внешний IP-адрес вашего шлюза. Попробуй это:

rdr on $ext_if inet proto tcp from any to ($ext_if:0) port 24 -> 192.168.0.105 port 22

Скобки вставляют IP-адрес, привязанный к этому интерфейсу в настоящий момент, и обновляют его, если он изменяется (например, из-за DHCP). Значение: 0 указывает, что он должен использовать только основной IP-адрес, привязанный к интерфейсу, а не псевдонимы.