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

Сохранять состояние соединения с целевой машиной в PF, когда ответ приходит с другого IP

Я столкнулся с проблемой с моим брандмауэром PF на машине OpenBSD.

С клиента (A) я подключаюсь к серверу (B), используя целевой IP-адрес (SRV-IP-1). Сервер отвечает на мой запрос, но получает ответ с другого IP-адреса (SRV-IP-2).

Брандмауэр отбрасывает ответ, поскольку не может понять, что ответ является частью разговора, исходящего из внутренней сети (он думает, что ответ - это соединение, запущенное извне).

Есть ли способ указать брандмауэру считать ответ действительным, если он поступает, скажем, из «пула» адресов вместо адреса, используемого в качестве цели разговора (SRV-IP-1)? Например, было бы неплохо сопоставить указанный адрес с другими адресами, чтобы «связать» состояние.

Спасибо.

Есть много способов разрешить трафик с пула адресов.

Вы можете использовать подсети CIDR:

pass in on [interface] from 10.0.0.0/8

Вы можете использовать макрос:

allowed-reply = " {10.0.0.1, 10.0.0.3} "
pass in on [interface] from allowed-reply

Другой способ - использовать якоря

Это позволит вам "вкладывать" правила в другое правило ... вроде ...

Документация OpenBSD по PF если очень полезно как есть Веб-сайт Каломеля

Брандмауэр не знает, что сервер B имеет два IP-адреса - он рассматривает каждый IP-адрес как отдельный источник / объект. На схеме ниже показано, что видит ваш брандмауэр.

Чтобы брандмауэр пропускал трафик с этого «другого» компьютера, вам необходимо добавить явные правила, разрешающие зеленый трафик (со второго IP-адреса на произвольные хосты в Интернете) - вы можете сделать это с помощью индивидуальных правил или с помощью таблицы адресов. (см. документация pf для получения дополнительной информации о таблицах).

Лучшее решение, вероятно, состоит в том, чтобы определить, почему вы отправляете ответы с другого адреса, чем тот, на который вы получаете запросы - если вы можете сделать так, чтобы весь трафик проходил на / с одного адреса, вы сможете воспользоваться преимуществами автоматического pf. отслеживание состояния и гораздо более простая среда для управления.