В итоге думаю для шлюза остановиться на таком.
#!/bin/bash
BLACKLIST="/var/blacklist.url"
n=1;
if [ -f $BLACKLIST ]; then
# удаляем все пробелы, табуляцию и пустые строки
sed -i '
s/^[ \t]*//
s/[ \t]*$//
/./!d
' $BLACKLIST
while read line
do
nslookup ${line} > /tmp/nslookup.tmp
X=`sed -rn '1,/^$/d;/^Address:\s+/s///p' /tmp/nslookup.tmp`
A=( $X )
i=0; while [ "${A[$i]}" ]; do echo "${A[i]}"; (( i++ )); done >> /tmp/blacklist.ip
done < $BLACKLIST
fi
mv /tmp/blacklist.ip /var/blacklist.ip
if [ -f /var/blacklist.ip ] ;
then
cat /var/blacklist.ip | while read line
do
echo "${line}"
iptables -I FORWARD $n -d ${line} -j DROP
let n=n+1;
echo $n;
done
fi
Правильнее
iptables -I FORWARD $n -d ${line} -j DROP
let n=n+1;
Иначе правило могут не сработать.
Например так не сработают.
iptables -P FORWARD -j DROP
iptables -A FORWARD -s 192.168.0.0/24 -o ppp0 -j ACCEPT
#или даже так
iptables -A FORWARD -s 192.168.0.0/24 -o ppp0 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -d ${line} -j DROP
Почему курим man iptables а точнее прохождение пакетов.
Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.