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

Поэтому решил попробовать включить фаервол с NAT на уровне ядра через файлы конфигурации системы /etc/rc.conf и /boot/loader.conf

bsd$ grep -i ipfw /boot/defaults/loader.conf

ipfw_load="NO"
# Firewall

bsd$ egrep -i '^firewall_' /etc/defaults/rc.conf

firewall_enable="NO"

firewall_script="/etc/rc.firewall"

firewall_type="UNKNOWN"

firewall_quiet="NO"

firewall_logging="NO"

firewall_logif="NO"

firewall_flags=""

firewall_coscripts=""

firewall_client_net="192.0.2.0/24"

firewall_simple_iif="ed1"

firewall_simple_inet="192.0.2.16/28"

firewall_simple_oif="ed0"

firewall_simple_onet="192.0.2.0/28"

firewall_myservices=""

firewall_allowservices=""

firewall_trusted=""

firewall_logdeny="NO"

firewall_nologports="135-139,445 1026,1027 1433,1434"

firewall_nat_enable="NO"

firewall_nat_interface=""

firewall_nat_flags=""

# Set to YES to enable firewall functionality

# Which script to run to set up the firewall

# Firewall type (see /etc/rc.firewall)

# Set to YES to suppress rule display

# Set to YES to enable events logging

# Set to YES to create logging-pseudo interface

# Flags passed to ipfw when type is a file

# List of executables/scripts to run after

# IPv4 Network address for "client"

# Inside network interface for "simple"

# Inside network address for "simple"

# Outside network interface for "simple"

# Outside network address for "simple"

# List of TCP ports on which this host

# List of IPs which have access to

# List of IPs which have full access to this

# Set to YES to log default denied incoming

# List of TCP/UDP ports

 

# Enable kernel NAT (if firewall_enable == YES)

# Public interface or IPaddress to use

# Additional configuration parameters

Перед перезагрузкой следует не забыть прописать в /etc/rc.conf параметры запуска ipfw, чтобы после перезагрузки не потерять соединение с сервером

bsd$ echo 'firewall_enable="YES"' | sudo tee -a /etc/rc.conf

bsd$ echo 'firewall_type="OPEN"' | sudo tee -a /etc/rc.conf


Модуль ipfw.ko можно загрузить вручную, но при этом надо держать в уме, что он не загрузит правила, определенные в rc.firewall и тогда единственным правилом будет правило, запрещающее все соединения(!)

bsd$ sudo ls / ;Чтобы на следующие команды не запрашивался пароль(!)

bsd$ sudo kldload ipfw.ko; sudo /etc/rc.d/ipfw restart;


bsd$ man ipfw

bsd$ man ipfirewall