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

блокировка пакетов для неустановленного соединения на freebsd pf

Для брандмауэра freebsd pf; Я хочу, чтобы он блокировал пакеты для неустановленных соединений. Например, злоумышленник не должен отправлять пакеты Reset для неизвестного, еще не установленного соединения.

В Linux это легко сделать

-d targethost -m state --state NEW -j ACCEPT
-m state --state RELATED,ESTABLISHED -j ACCEPT

Это позволит создавать новые состояния и блокировать любые другие вещи, кроме пакетов для установленного состояния (ESTABLISHED).

Я думаю, что freebsd pf тоже должен работать так. Есть ли у pf что-нибудь такое? Как вы думаете, должен ли приведенный ниже набор правил разрешать пакеты Reset для неустановленного соединения?

# 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 не принимает (передавать или блокировать) пакеты для сброса пакетов, предназначенных для хоста за брандмауэром.

Из OpenBSD pf документы:

Все правила передачи автоматически создают запись состояния, когда пакет соответствует правилу. Это можно явно отключить, используя no state вариант.

Итак, вы уже сохраняете состояние.

И чтобы уточнить, FreeBSD иногда портирует pf из OpenBSD, поэтому их документация относится к основным функциям.