IPFW редагування таблиць

ipfw table
У статті FreeBSD: боротьба з bruteforce - IPFW+Sshit вже згадувалося про додавання динамічної таблиці правил дляIPFW.

Т.к. там усе описано досить коротко — у цій статті докладніше буде описано роботу з таблицями вIPFW.

Додамо у файл конфігураціїIPFW правило блокування за даними з таблиці:

$cmd 00020 deny all from "table(1)" to any via $pif

#Префікс для команд cmd=»ipfw -q add»

#задаємо карту інтернет-мережі pif=»em0″

І перезавантажуємо фаєрвол для застосування нових правил:

# /etc/rc.d/ipfw restart net.inet.ip.fw.enable: 1 -> 0 net.inet6.ip6.fw.enable: 1 -> 0 Firewall rules loaded. Firewall logging enabled.

# ipfw table 1 add 194.0.200.1

Можна заблокувати цілу підмережу:

# ipfw table 1 add 194.0.200.0/24

Переглянути список заблокованихIP можна так:

# ipfw table 1 list 194.0.200.0/24 0 194.0.200.1/32 0

Для видаленняIP з таблиціIPFW :

# ipfw table 1 delete 194.0.200.0/24

# ipfw table 1 list 194.0.200.1/32 0

Підсіти з блоку прибрали, приберемо 1IP такою самою командою:

# ipfw table 1 delete 194.0.200.1

# ipfw table 1 flush

# cat blockip.sh #!/bin/sh ipfw table 1 flush cat /home/setevoy/blockip.txt while read ip; do ipfw table 1 add $ip done

Файл створювався під root , щоб виконувати його з іншого користувача — змінимо власника:

Не забудемо встановити права виконання скрипта:

# chmod ug+x blockip.sh

ug означає "додати права для User та Group" - тільки користувачеві root і користувачам групи setevoy , тобто. собі.

-rwxr-xr- 1 root wheel 107 Jul 2110:11 blockip.sh

# cat blockip.txt 194.0.200.1 194.0.200.2 194.0.200.0/24

# ipfw table 1 list 194.0.200.0/24 0 194.0.200.1/32 0 194.0.200.2/32 0