1

Тема: Про pf

Не понимаю. Вообще-то я собрал ядро с поддержкой этого фильтра, т.е.

device pf
device pflog
device pfsync

Сие означает, насколько я понимаю, что мне не нужно указывать в rc.conf загружать этот модуль pf_enable="YES", поскольку он вкомпилирован в ядро и должен запускаться в любом случае. Однако без строки в rc.conf он не запускается при загрузке. Почему?

2

Re: Про pf

# ls -la /boot/kernel | grep pf
-r-xr-xr-x  1 root  wheel    51883 Nov 30  2007 ipfw.ko
-r-xr-xr-x  1 root  wheel   599000 Nov 30  2007 ispfw.ko
-r-xr-xr-x  1 root  wheel    13458 Nov 30  2007 ng_bpf.ko
-r-xr-xr-x  1 root  wheel     6740 Nov 30  2007 ng_ipfw.ko
-r-xr-xr-x  1 root  wheel   166839 Nov 30  2007 pf.ko
-r-xr-xr-x  1 root  wheel     8054 Nov 30  2007 pflog.ko

kldload -- load a file into the kernel

DESCRIPTION
     The kldload utility loads file.ko into the kernel using the kernel
     linker.  Note that if multiple modules are specified then an attempt will
     be made to load them all, even if some fail.  The .ko extension name is
     not mandatory when loading a given module using kldload.  It doesn't hurt
     to specify it though.

#kldload pf.ko
#kldload pflog.ko

это для тестов, а для работы

#vi /boot/loader.conf
module_load="YES"
module_name="pf.ko"
module_name="pflog.ko"

И ненадо ничего пересобирать

3

Re: Про pf

fred пишет:

Не понимаю. Вообще-то я собрал ядро с поддержкой этого фильтра, т.е.

device pf
device pflog
device pfsync

Сие означает, насколько я понимаю, что мне не нужно указывать в rc.conf загружать этот модуль pf_enable="YES", поскольку он вкомпилирован в ядро и должен запускаться в любом случае. Однако без строки в rc.conf он не запускается при загрузке. Почему?

Сие только означает, что поддержка фильтра встроена жестко в ядро, а не модульно "по требованию", что в разы улучшает его стабильность и скорость работы, те тут вы правы, что вкомпилировали его в ядро. Но это только качество, а для запуска вы все равно должны указывать в  rc.conf что ХОТИТЕ его иметь запущенным. Кстати - посмотрите возможные опции по этому поводу в /etc/default/  - там все расписано.

4

Re: Про pf

На основе одного примера на openbsd.org сделал правила. Очень хотелось бы знать, а оно "ваще нормально" если так? Не могли бы вы критично оценить эти строки и слегка прокомментировать?

int_if="vr1"
ext_if="vr0"
lan="192.168.20.0/24"
priv_nets="{127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8}"
##
# table containing all IP addresses assigned to the firewall
table <firewall> const { self }
##
set block-policy return
set skip on lo0
##
scrub in all
##
rdr on $int_if inet proto tcp from $lan to any port 80 -> 127.0.0.1 port 8080
nat on $ext_if from $lan to any -> ($ext_if)
antispoof quick for $ext_if
##
block in all
# activate spoofing protection for all interfaces
block in quick from urpf-failed

# pass all traffic to and from the local network.
# these rules will create state entries due to the default
# "keep state" option which will automatically be applied.
pass in  on $int_if from $lan to any
pass out on $int_if from any to $lan

# pass tcp, udp, and icmp out on the external (Internet) interface.
# tcp connections will be modulated, udp/icmp will be tracked
# statefully.
pass out on $ext_if proto { tcp udp icmp } all modulate state
pass in on $ext_if proto tcp from any to ! <firewall> \
port 80 keep state