Знаю, много страниц в Сети исписано, что да как нужно делать, но там не совсем то.
Нужно: блокировать трафик на сервере. Есть список разрешенных подсетей (как RU-IX, UA-IX, у нас - TAS-IX), записанных в файле в формате 83.221.96.0/24 на каждой строке. Сервер: Debian 6 x86, интернет - через PPPoE подключение.
Вначале прописал правило
iptables -A POSTROUTING -t nat -o ppp0 -j MASQUERADE
IPTABLES=/sbin/iptables
ipset -N tasix nethash
IPFILE="tasix_subnets"
grep "^" $IPFILE | while read ip;
do
if [ $ip <> NULL ]
then `ipset -A tasix $ip`
fi
done
$IPTABLES -N TAS-IX
# переводим всех на цепочку TAS-IX
$IPTABLES -A FORWARD -t filter -i eth0 -s 192.168.0.0/20 -j TAS-IX
# в этой цепочке возвращаем в цепочку FORWARD, если IP назначения не в зоне Tas-ix, и к ним будет применена политика по умолчанию
$IPTABLES -A TAS-IX -m set --set ! tasix src,dst -j RETURN
# задаю политику по умолчанию для FORWARD'a и tasix
$IPTABLES -P FORWARD DROP
$IPTABLES -P TAS-IX DROP
#и дропаю всех, кто не попал под правило
$IPTABLES -A TAS-IX -j DROP
$IPTABLES -A FORWARD -j DROP
В результате, с других компов вообще перестал интернет работать. Может из-за последних двух строк? Но они же последние по вставке в список правил, хотя кто знает. Даже правило добавлял.
iptables -A FORWARD -s 192.168.0.1 -j ACCEPT