ipfw tables

Создаем таблицу

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
Запись опубликована в рубрике *CentOS, *Unix,*Linux, FreeBSD. Добавьте в закладки постоянную ссылку.

Один комментарий на «ipfw tables»

  1. Eugen говорит:

    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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91