On 2003.01.29 at 13:42:31 +0300, Герасимов Д.С. wrote: > Hello Victor, > > Wednesday, January 29, 2003, 12:25:52 PM, you wrote: > > VW> On 2003.01.29 at 11:04:20 +0200, Denis A. Kulgeyko wrote: > > >> > Я, честно говоря, не помню процесс перетаскивания своего > >> > firewall-скрипта с 2.2 на 2.4, маскарадинг там тоже используется для > >> > прозрачного прокси. В общем, было это в другом дистрибутиве, так что > >> > неважно. Но по крайней мере фильтрация пакетов и получение статистики > >> > должны работать. > >> > >> Закину свои ржавых 1/20 часть "Убитого американского Енота". :) > >> Я для firewall'ов (а в свое время пришлось писать их немало, все на > >> линухе, в > >> основном woody/2.4.x) долго искал хороший инструмент для автоматизации. > >> Потому как писать _все_ правила ipchains/iptables руками > > VW> А зачем писать их все руками? > > VW> В конце концов, это обычные юниксовые команды, вызывающиеся из > VW> shell-овского скрипта. > > VW> Я генерирую из биллинговой базы файлик вида > > VW> block такой-то-IP > VW> allow такoй-то-IP smtp socks > VW> disallow такой-то-IP http > > VW> После чего этот файлик включается командой source в скрипт инициализации > VW> файрволла. А в том определены shell-функции block, allow, disallow etc. > Вот с этого места, если можно поподробнее.. :-).. Виктор, можно > взглянуть на этот скрипт? Для общего развития.
Ну вот некоторые фрагменты ADDRULES=/etc/network/ipchains_stop ip_block() { iptables -A FORWARD -s $1 -d 0/0 -j REJECT # Сюда надо еще добавить DNAT-правило, чтобы все запросы на 80 порт # любого хоста в интернет форвардились на страничку "Мужик, деньги # давай" } case `uname -r` in 2.2.*) exec /etc/init.d/firewall-ipchains ;; esac insmod ip_conntrack modprobe ip_nat_ftp modprobe ip_nat_irc #Здесь много-много фиксированных правил, общих для всей сети .... # Reject addresses of local clients which haven't pay enough for internet [ -x $ADDRULES ] && source $ADDRULES # and let all others out iptables -A FORWARD -s 192.168.216.0/25 -d 0/0 -j ACCEPT iptables -A FORWARD -s 192.168.216.128/25 -d 0/0 -j REJECT iptables -t nat -A POSTROUTING -o eth2 -s 192.168.216.0/24 -d 0.0.0.0/0 -j MASQUERADE # Здесь еще энное количество правил, А файлик который ADDRULES выглядит так: #!/bin/sh ip_block 192.168.216.84 ip_block 192.168.216.74 ip_block 192.168.216.15 ip_block 192.168.216.44 ip_block 192.168.216.70 ip_block 192.168.216.57 ip_block 192.168.216.13 В файле firewall-ipchains функция ip_block определена как: ip_block() { ipchains -A forward -s $1 -d 0/0 -j REJECT } -- Victor Wagner [EMAIL PROTECTED] Chief Technical Officer Office:7-(095)-748-53-88 Communiware.Net Home: 7-(095)-135-46-61 http://www.communiware.net http://www.ice.ru/~vitus