Блокировка пакетов для неустановленного соединения на freebsd pf
Для межсетевого экрана freebsd pf; Я хочу, чтобы он блокировал пакеты для не установленных соединений. Например, злоумышленник не должен отправлять пакеты Reset для неизвестного, еще не установленного соединения.
В Linux это легко сделать
-d targethost -m state --state NEW -j ACCEPT
-m state --state RELATED,ESTABLISHED -j ACCEPT
Это позволит устанавливать новые состояния и блокировать любую другую вещь, кроме пакетов для установленного состояния (УСТАНОВЛЕНО)
Я думаю, что freebsd pf также должен работать следующим образом. У pf есть что-нибудь такое? Как вы думаете, приведенный ниже набор правил должен разрешать сброс пакетов для неустановленного соединения?
# pfctl -sr -vvv
@0 pass in log (all) quick from <administrators:4> to any flags S/SA synproxy state
[ Evaluations: 423 Packets: 0 Bytes: 0 States: 4 ]
[ Inserted: uid 0 pid 25567 State Creations: 4 ]
@1 block drop log (all) quick inet6 all
[ Evaluations: 419 Packets: 0 Bytes: 0 States: 0 ]
[ Inserted: uid 0 pid 25567 State Creations: 0 ]
@2 block drop log (all) quick from <blacklist:0> to any
[ Evaluations: 419 Packets: 0 Bytes: 0 States: 0 ]
[ Inserted: uid 0 pid 25567 State Creations: 0 ]
@3 pass log (all) quick all flags S/SA keep state
[ Evaluations: 419 Packets: 103 Bytes: 10941 States: 15 ]
[ Inserted: uid 0 pid 25567 State Creations: 19 ]
tcpdump -i pflog0 не принимает (передает или блокирует) прием пакетов для сброса пакетов, предназначенных для хоста за брандмауэром.
1 ответ
Все проходные правила автоматически создают запись состояния, когда пакет соответствует правилу. Это может быть явно отключено с помощью
no state
вариант.
Итак, вы уже с состоянием.
И чтобы уточнить, FreeBSD порой портирует pf
из OpenBSD, поэтому их документация применима к основным функциям.