Список IP адресов или подсетей находится в файле /etc/block1.txt
Например:
10.10.1.1
10.10.1.2
192.168.0.0/16
IPFW
----
Блок чтения IP в таблицу, проверка в которой будет осуществляться
не через последовательный перебор правил, а через выборки из хэша:
ipfw table 1 flush
cat /etc/block1.txt | while read ip; do
# echo ipfw table 1 add $ip 1
ipfw table 1 add $ip 1
done
Привязка таблицы к правилу блокировки:
ipfw add 100 deny ip from "table(1)" to any via em1
Просмотр содержимого таблицы:
ipfw table 1 list
PF
--
/etc/pf.conf
table <blockedips> persist file "/etc/block1.txt"
ext_if="em1"
block drop in log (all) quick on $ext_if from <blockedips> to any
Проверка корректности правил PF:
pfctl -nf /etc/pf.conf
Чтение правил PF:
pfctl -f /etc/pf.conf
Добавление и удаление адресов из таблицы на лету:
pfctl -t blockedips -T add 192.168.1.1
pfctl -t blockedips -T delete 192.168.1.1
Просмотр содержимого таблицы и более подробной статистики по каждому адресу:
pfctl -t blockedips -T show
pfctl -t blockedips -T show -v
Просмотр лога срабатываний блокировок, умолчанию сохраняемого в /var/log/pflog:
tcpdump -n -e -ttt -r /var/log/pflog
tcpdump -n -e -ttt -r /var/log/pflog port 80
tcpdump -n -e -ttt -r /var/log/pflog and host 192.168.1.1
Срабатывание блокировок в режиме реального времени:
tcpdump -n -e -ttt -i pflog0
tcpdump -n -e -ttt -i pflog0 port 80
tcpdump -n -e -ttt -i pflog0 host 192.168.1.1
URL: http://www.cyberciti.biz/faq/opebsd-pf-firewall-block-subnet.../
Обсуждается: http://www.opennet.me/tips/info/1715.shtml