Создаем таблицу
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
RSS & RSS to Email
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