Создаем таблицу
ipfw table 3 add 10.10.10.1 ipfw table 3 add 10.10.10.2 ipfw table 3 add 10.10.10.4 ipfw table 3 add 10.10.10.6 ipfw table 3 add 10.10.10.21 ipfw table 3 add 10.10.11.21 ipfw table 3 add 10.11.11.21/24
Смотрим содержимое таблицы
ipfw table 3 list
Должны увидеть
10.10.10.1/32 0 10.10.10.2/32 0 10.10.10.4/32 0 10.10.10.6/32 0 10.10.10.21/32 0 10.10.11.21/32 0 10.11.11.21/24 0
Применяем таблицу
ipfw add deny ip from table\(3\) to me
Должны увидеть
00100 6 634 allow ip from any to any via lo0 00200 0 0 deny ip from any to 127.0.0.0/8 00300 0 0 deny ip from 127.0.0.0/8 to any 00400 0 0 allow ip from any to any established 00500 0 0 deny ip from table(3) to me 00600 20 1418 allow ip from any to any 65535 0 0 deny ip from any to any
Удаляем записи из таблицы
ipfw table 3 delete 10.10.10.6/32
или сразу все записи
ipfw table 3 flush
Скрипт для интерактивной работы с таблицей файервола
/etc/badguys.sh
#!/bin/sh # Скрипт интерактивного добавления IP или подсети в бан лист файервола echo "Установка переменных" ${table='2'} ${filename='/etc/badguys.list'} tmpfile=`mktemp /tmp/badguys.XXX` tmpdialog=`mktemp /tmp/dialog.XXX` DIALOG=${DIALOG:=/usr/bin/dialog} reload() { echo "Очистка таблицы файервола" ipfw table ${table} flush echo "Сортировка списка IP адресов" sort ${filename} > ${tmpfile} mv ${tmpfile} ${filename} echo "Загрузка списка IP в таблицу файервола" for i1 in `cat ${filename}`; do ipfw table ${table} add $i1 done } case $1 add) ${DIALOG} --inputbox "Добавить новый IP или подсеть" 10 40 2> ${tmpdialog} ip=`cat ${tmpdialog}` echo ${ip} >> ${filename} reload ;; clear) rm -rf ${filename} ipfw table ${table} flush ;; help) echo "Скрипт интерактивного добавления IP или подсети в бан лист файервола" echo "add - добавление нового IP" echo "clear - очистка списков" echo "help - помощь" ;; esac
Примечание: не забываем добавить права исполнения к скрипту
Источник : http://wiki.slavka.kiev.ua/index.php/%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B_ipfw
# IPs i want to block exec < /etc/rc.ipfw_blocked_ips.txt while read ip do $ipfw -q add table 2 add $ip done $ipfw -q add deny tablearg ip from table\(2\) to any in via $oif
# ipfw table all list - - - table(2) - - - 12.0.0.0/16 0 82.96.xy.z/32 0 etc
00311 243 16304 pipe 1 ip from not 192.168.110.0/24 to table(1) out
00312 132 11572 pipe 2 ip from table(1) to not 192.168.110.0/24 in