Archive

Posts Tagged ‘ipfw’

Использование ipfw table

March 19th, 2009

Использование таблиц файрвола IPFW в некоторых случаях может быть очень удобным. Например, если нужно заблокировать много ip при dos-атаке. Суть в том, что все ip-адреса помещаются в таблицу и в правилах файрвола оперируем уже таблицей целиком.

ipfw table 3 add 10.10.11.1 #добавление в таблицу
ipfw table 3 add 10.11.11.2/24 #добавление в таблицу
ipfw table 3 list #посмотреть что в таблице
ipfw add deny ip from table\(3\) to me #пример исп-я. Слэши нужны!
ipfw table 3 delete 10.10.11.1 #удаляем
ipfw table 3 flush #чистим всю таблицу

Оперативно обновлять таблицу можно, к примеру, так:

#!/bin/sh
ipfw table 3 flush
cat /etc/ip.txt | while read ip; do
  ipfw table 3 add $ip
done

FreeBSD ,

включение ipfw

December 8th, 2008
firewall_enable="YES"
firewall_script="/usr/local/etc/ipfw.rules"

создать файл с правилами, проверить что в них нам будет доступ по ssh. Например такой:

#!/bin/sh

ipfw -q -f flush
cmd="ipfw -q add "
sshport="222"

# remote control
$cmd 150 allow tcp from 1.2.3.1 to me dst-port $sshport

# services
$cmd 1000 allow icmp from any to any
$cmd 1020 allow tcp from any to me dst-port 21,25,80
$cmd 1021 allow udp from any 53 to me
$cmd 1022 allow udp from any to me 53
$cmd 1023 allow udp from any to me 161

# general
$cmd 1035 allow ip from any to any via lo0
$cmd 1040 allow ip from me to any
$cmd 1050 allow ip from any to any established

# all traffic for some hosts
$cmd 1070 allow ip from 1.2.3.1 to me
/etc/rc.d/ipfw forcestart &

система сама подгрузит модуль ядра. Необходимо отметить, что в данном случае последним будет добавлено правило запрещающее весь трафик, поэтому нужно убедиться, что мы не отключим доступ для нас самих.

Перед включением рекомендуется поставить задачу в кронтаб, на всякий случай, чтобы сработала через пару минут:

25 22 * * * root ipfw -q add 10 allow all from any to any

FreeBSD ,