firewall freebsd

Подсказки о том, как собрать поддержку этих firewall в ядре в /usr/src/sys/conf/NOTES.

Основные опции:
### ipfw
options IPFIREWALL # поддержка файрвола
options IPFIREWALL_VERBOSE # поддержка логирования
options IPDIVERT # поддержка divert-сокетов (нужна для natd)
options DUMMYNET # поддержка шейпера dummynet

### ipf
options IPFILTER # поддержка файрвола
options IPFILTER_LOG # поддержка логирования

### pf
device pf # поддержка файрвола
device pflog # поддержка логирования
device pfsync # отслеживание состояния
options ALTQ # поддержка шейпера ALTQ


запуск /etc/rc.conf.
задаются:
### ipfw
firewall_enable="YES" # поддержка файрвола
firewall_type="/etc/ipfw.rules" # тип (способ инициализации)
natd_enable="YES" # поддержка natd

### ipf
ipfilter_enable="YES" # поддержка файрвола
ipfilter_rules="/etc/ipf.rules" # файл с правилами
ipnat_enable="YES" # поддержка ipnat
ipnat_rules="/etc/ipnat.rules" # файл с правилами NAT

### pf
pf_enable="YES" # поддержка файрвола
pf_rules="/etc/pf.rules" # файл с правилами


особенности
// ipfw
add check-state
add allow tcp from any to any out setup via rl0 keep-state

// ipf
pass out on rl0 proto tcp from any to any flags S keep state

// pf
pass out on rl0 proto tcp from any to any flags S/SA keep state


nat
// ipfw (должен быть запущен natd на порту 8668)
add divert 8668 ip from 10.10.0/24 to any out via bge0
add divert 8668 ip from any to 1.2.3.4 in via bge0

// ipf (правила выносятся в ipnat.rules, запускаются командой ipnat)
map rl0 10.10.0.0/24 -> 1.2.3.4/32

// pf (размещаются в общей конфигурации перед правилами фильтрации)
nat on rl0 from 10.10.0.0/24 to any -> 1.2.3.4/32


шейпинг
// ipfw
add pipe 1 ip from any to 192.168.0.0/24
pipe 1 config bw 128Kbit/s

// pf
altq on rl0 cbq queue q_limited
queue q_limited bandwidth 128Kb cbq(default)
pass quick from any to 192.168.0.0/24 keep state queue q_limited

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.