Предполагается что rTorrent установлен и настроен.
Итак, подключаем конфиг для ipfw. Окрываем /etc/rc.conf и вписываем:
firewall_script="ipfw.script"
Далее, создаём в этой же директории (/etc) собственно скрипт ipfw.script со следующим содержимым:
#!/bin/sh
ipfw -f flush
ipfw table 10 flush
directory="/tmp"
cd $directory
fetch -q -o - http://noc.ix.net.ua/ua-list.txt | sed 's/\.0$/.0\/24/g' > prefixes.txt || exit
/usr/bin/less prefixes.txt | grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" > ua-networks.txt
list=`less ua-networks.txt`
for i in ${list};
do
ipfw table 10 add ${i}
done
find $directory -name "prefixes.*" -delete
find $directory -name "ua-networks.*" -delete
ipfw add allow all from table\(10\) to {IP} in
ipfw add allow all from any to any out
ipfw add deny all from any to {IP} in
Здесь {IP} — конкретный IP-адрес, на который распространятся ограничения.ipfw -f flush
ipfw table 10 flush
directory="/tmp"
cd $directory
fetch -q -o - http://noc.ix.net.ua/ua-list.txt | sed 's/\.0$/.0\/24/g' > prefixes.txt || exit
/usr/bin/less prefixes.txt | grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" > ua-networks.txt
list=`less ua-networks.txt`
for i in ${list};
do
ipfw table 10 add ${i}
done
find $directory -name "prefixes.*" -delete
find $directory -name "ua-networks.*" -delete
ipfw add allow all from table\(10\) to {IP} in
ipfw add allow all from any to any out
ipfw add deny all from any to {IP} in
Затем делаем его исполнимым:
chmod +x /etc/ipfw.script
Скрипт запрашивает актуальный список UA-IX сетей, обрабатывает его и загоняет в таблицу правил файрволла table 10. Ознакомиться с её содержимым можно при помощи следующей команды:
ipfw table 10 list
Загнать вывод этой команды в текстовый файл можно следующим образом:
ipfw table 10 list > /tmp/table10.txt
No comments:
Post a Comment