IPFW: проверка синтаксиса правил

Автор: | 09/26/2012
 

Для проверки служит ключ -n.

Пример:

# ipfw -n add 002010 deny all from 65.52.1.0/24 to me via eth0
02010 deny ip from 65.52.1.0/24 to me via eth0

В случае ошибки — ipfw выдаст соответствующее сообщение. Например:

# ipfw -n add 002010 denyw all from 65.52.1.0/24 to me via eth0
ipfw: invalid action denyw

При проверке важно указывать реальные команды и параметры, а не передавать переменные из правил фаервола. Например, в файле есть правило:

$cmd 001300 deny tcp from any to me 113 in via $pif

При проверке его в таком виде — получим ошибку:

# ipfw -n $cmd 001300 deny tcp from any to me 113 in via $pif
ipfw: bad command `deny’

Следует заменить обе переменные $ на реальные значения, в данном примере:

# ipfw -n add 001300 deny tcp from any to me 113 in via eth0
01300 deny tcp from any to me dst-port 113 in via eth0

Если все в порядке — можно перезапустить ipfw для применения новых правил:

# service ipfw restart
net.inet.ip.fw.enable: 1 -> 0
net.inet6.ip6.fw.enable: 1 -> 0
ipfw: missing «from»
ipfw: missing «from»
Firewall rules loaded.
Firewall logging enabled.