айпитаблы или заблочить внешку

Операционки на базе Unix
sim
Эникейщик
Эникейщик
Posts: 251
Joined: 16 Mar 2010, 21:01
ОС: MSDOS
Location: с марса

Re: айпитаблы или заблочить внешку

Post by sim » 24 May 2010, 15:37

Gen1us2k
странно но не вижу
кто нить скиньте торрент клиент под альт плз
SSD хочу
User avatar
Raven
Бородатый сис
Бородатый сис
Posts: 2791
Joined: 03 Mar 2010, 15:12
ОС: RHEL 8
Location: Из серверной

Re: айпитаблы или заблочить внешку

Post by Raven » 24 May 2010, 17:45

sim wrote:кто нить скиньте торрент клиент под альт плз
Скоро!!!
Я не злопамятный, я просто часто ковыряю логи
sim
Эникейщик
Эникейщик
Posts: 251
Joined: 16 Mar 2010, 21:01
ОС: MSDOS
Location: с марса

Re: айпитаблы или заблочить внешку

Post by sim » 24 May 2010, 19:19

Raven
ждуууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууу :)
SSD хочу
User avatar
ИМХО
Бытовой хакер
Бытовой хакер
Posts: 975
Joined: 02 Mar 2010, 13:21
ОС: Maui 2
Location: Чолпон-Ата
Contact:

Re: айпитаблы или заблочить внешку

Post by ИМХО » 24 May 2010, 19:22

есть трансмиссион и кторрент.
ftp://ftp.totel.kg/incoming/personal/A- ... /ktorrent/
sim
Эникейщик
Эникейщик
Posts: 251
Joined: 16 Mar 2010, 21:01
ОС: MSDOS
Location: с марса

Re: айпитаблы или заблочить внешку

Post by sim » 24 May 2010, 20:59

ИМХО
пасибки
SSD хочу
sim
Эникейщик
Эникейщик
Posts: 251
Joined: 16 Mar 2010, 21:01
ОС: MSDOS
Location: с марса

Re: айпитаблы или заблочить внешку

Post by sim » 28 May 2010, 21:05

ну так вот что у мну получилось он мну говорит

Code: Select all

Starting firewall: iptablesBad argument `5190'
Try `iptables -h' or 'iptables --help' for more information.
Bad argument `5190'
Try `iptables -h' or 'iptables --help' for more information.
.
команда
/home/sim/rules/iptables start
содержание файла

Code: Select all

#!/bin/bash
IPT=/sbin/iptables
EXT=eth0 #Мой интерфейс смотрящий в инет

start_fw()
{
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP

$IPT -A INPUT -f -i $EXT -j DROP
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

$IPT -A INPUT --fragment -p ICMP -j LOG --log-prefix "FRAG-ICMP-IN " --log-tcp-options --log-ip-options
$IPT -A INPUT --fragment -p ICMP -j DROP
$IPT -A OUTPUT --fragment -p ICMP -j LOG --log-prefix "FRAG-ICMP-OUT " --log-tcp-options --log-ip-options
$IPT -A OUTPUT --fragment -p ICMP -j DROP

$IPT -A INPUT -p icmp -m icmp -i $EXT --icmp-type source-quench -j ACCEPT
$IPT -A OUTPUT -p icmp -m icmp -o $EXT --icmp-type source-quench -j ACCEPT
$IPT -A INPUT -p icmp -m icmp -i $EXT --icmp-type echo-reply -j ACCEPT
$IPT -A OUTPUT -p icmp -m icmp -o $EXT --icmp-type echo-request -j ACCEPT

$IPT -A INPUT -i $EXT -p udp -m udp --dport 53 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -m tcp --dport 53 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -m tcp --dport 22 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp --dport 22 --syn -m state --state NEW -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 212.112.96.0/19 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 85.115.192.0/19 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 195.38.160.0/19 -m multiport --dport 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 194.176.111.0/24 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 85.26.220.0/22 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 212.2.224.0/19 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 81.20.16.0/20 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 212.42.96.0/19 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 77.95.56.0/21 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 94.143.192.0/21 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 212.241.0.0/19 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 213.145.128.0/19 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 85.113.0.0/19 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 77.235.0.0/19 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 92.245.96.0/19 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 194.152.36.0/24 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 194.152.37.0/24 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 91.205.48.0/22 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 95.215.244.0/22 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 217.29.16.0/20 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 81.88.192.0/20 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 89.237.192.0/18 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 194.152.37.0/24 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 92.62.64.0/20 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 212.97.0.0/19 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 109.201.160.0/19 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 193.106.48.0/22 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 91.213.233.0/24 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 109.71.224.0/21 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp -s 91.192.64.0/22 -m multiport --dports 80,3258 -j ACCEPT
$IPT -A INPUT -i $EXT -j DROP

$IPT -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -d 85.115.192.0/19 -j ACCEPT
$IPT -A OUTPUT -d 212.112.96.0/19 -j ACCEPT
$IPT -A OUTPUT -d 195.38.160.0/19 -j ACCEPT
$IPT -A OUTPUT -d 194.176.111.0/24 -j ACCEPT
$IPT -A OUTPUT -d 85.26.220.0/22 -j ACCEPT
$IPT -A OUTPUT -d 212.2.224.0/19 -j ACCEPT
$IPT -A OUTPUT -d 81.20.16.0/20 -j ACCEPT
$IPT -A OUTPUT -d 212.42.96.0/19 -j ACCEPT
$IPT -A OUTPUT -d 77.95.56.0/21 -j ACCEPT
$IPT -A OUTPUT -d 94.143.192.0/21 -j ACCEPT
$IPT -A OUTPUT -d 212.241.0.0/19 -j ACCEPT
$IPT -A OUTPUT -d 213.145.128.0/19 -j ACCEPT
$IPT -A OUTPUT -d 85.113.0.0/19 -j ACCEPT
$IPT -A OUTPUT -d 77.235.0.0/19 -j ACCEPT
$IPT -A OUTPUT -d 92.245.96.0/19 -j ACCEPT
$IPT -A OUTPUT -d 194.152.36.0/24 -j ACCEPT
$IPT -A OUTPUT -d 194.152.37.0/24 -j ACCEPT
$IPT -A OUTPUT -d 91.205.48.0/22 -j ACCEPT
$IPT -A OUTPUT -d 95.215.244.0/22 -j ACCEPT
$IPT -A OUTPUT -d 217.29.16.0/20 -j ACCEPT
$IPT -A OUTPUT -d 81.88.192.0/20 -j ACCEPT
$IPT -A OUTPUT -d 89.237.192.0/18 -j ACCEPT
$IPT -A OUTPUT -d 194.152.37.0/24 -j ACCEPT
$IPT -A OUTPUT -d 92.62.64.0/20 -j ACCEPT
$IPT -A OUTPUT -d 212.97.0.0/19 -j ACCEPT
$IPT -A OUTPUT -d 109.201.160.0/19 -j ACCEPT
$IPT -A OUTPUT -d 193.106.48.0/22 -j ACCEPT
$IPT -A OUTPUT -d 91.213.233.0/24 -j ACCEPT
$IPT -A OUTPUT -d 109.71.224.0/21 -j ACCEPT
$IPT -A OUTPUT -d 91.192.64.0/22 -j ACCEPT
$IPT -A OUTPUT -o $EXT -p tcp -s $EXT_IP --dport 5190 --syn -m state --state NEW -j LOG --log-prefix "ICQ " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -o $EXT -p tcp -s $EXT_IP --dport 5190 --syn -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -f -j LOG --log-prefix "DROPPED " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -f -j DROP
}


case "$1" in
start) echo -n "Starting firewall: iptables"
start_fw
echo "."
;;
stop) echo -n "Stopping firewall: iptables"
$IPT -F
$IPT -X
$IPT -t nat -F
$IPT -P ACCEPT
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
echo "."
;;
block) echo -n "Locking firewall: iptables"
$IPT -F
$IPT -X
$IPT -t nat -F
$IPT -P FORWARD DROP
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
echo "."
;;
save) echo -n "Saving firewall: iptables"
iptables-save > /etc/rules-save
echo "."
;;
restart) echo -n "Restarting firewall: iptables"
iptables-save > /etc/rules-save
iptables -F
iptables -X
cat /etc/rules-save | iptables-restore
echo "."
;;
reload|force-reload) echo -n "Reloading configuration files for firewall: iptables"
echo "."
;;
*) echo "Usage: /etc/init.d/rules start|stop|block|restart|reload|force-reload"
exit 1
;;
esac
exit 0 
но на иностранные сайты не ходит
люди можете дат гугл хром, по сайтам классная бродилка, самая быстрая из всех по крайней мере на винде
что нужно прописать чтобы открыть асю ?
SSD хочу
User avatar
Raven
Бородатый сис
Бородатый сис
Posts: 2791
Joined: 03 Mar 2010, 15:12
ОС: RHEL 8
Location: Из серверной

Re: айпитаблы или заблочить внешку

Post by Raven » 31 May 2010, 08:56

sim wrote:$EXT_IP
не прописан. Тут твой внешний ип нужон.
измени

Code: Select all

#!/bin/bash
IPT=/sbin/iptables
EXT=eth0 #Мой интерфейс смотрящий в инет
на

Code: Select all

#!/bin/bash
IPT=/sbin/iptables
EXT=eth0 #Твой интерфейс смотрящий в инет
EXT_IP= #Твой внешний ип
Я не злопамятный, я просто часто ковыряю логи
User avatar
Raven
Бородатый сис
Бородатый сис
Posts: 2791
Joined: 03 Mar 2010, 15:12
ОС: RHEL 8
Location: Из серверной

Re: айпитаблы или заблочить внешку

Post by Raven » 31 May 2010, 16:55

Вот еще пример конфига блокинга внехи. Скрипт сам выкачивает с эльката список сетей, парсит его и составляет из него правила для фаервола. Основан на старой версии моего конфига.

Code: Select all

#!/bin/bash
TMP=/tmp
URL=http://www.elcat.kg/ip/kg-nets.txt
INIT=$INIT
NETS=/tmp/kg-nets.txt

wget -O $NETS $URL

echo '#!/bin/sh' > $TMP/rules
echo 'IPT=/sbin/iptables' >> $TMP/rules
echo 'EXT=eth0' >> $TMP/rules
echo 'EXT_IP="Мой внешний ип"' >> $TMP/rules
echo 'INT=eth2' >> $TMP/rules
echo 'INT_IP="192.168.0.1"' >> $TMP/rules
echo 'INT_MSK="255.255.255.0"' >> $TMP/rules
echo 'LAN="192.168.0.0/24"' >> $TMP/rules
echo '' >> $TMP/rules
echo 'start_fw()' >> $TMP/rules
echo '{' >> $TMP/rules
echo '' >> $TMP/rules
echo '$IPT -F' >> $TMP/rules
echo '$IPT -t nat -F' >> $TMP/rules
echo '$IPT -t mangle -F' >> $TMP/rules
echo '$IPT -X' >> $TMP/rules
echo '$IPT -t nat -X' >> $TMP/rules
echo '$IPT -t mangle -X' >> $TMP/rules
echo '' >> $TMP/rules
echo '$IPT -P INPUT DROP' >> $TMP/rules
echo '$IPT -P OUTPUT DROP' >> $TMP/rules
echo '$IPT -P FORWARD DROP' >> $TMP/rules
echo '' >> $TMP/rules
echo '$IPT -A INPUT -i lo -j ACCEPT' >> $TMP/rules
echo '$IPT -A OUTPUT -o lo -j ACCEPT' >> $TMP/rules
echo '' >> $TMP/rules
echo '$IPT -A INPUT -i $INT -j ACCEPT' >> $TMP/rules
echo '$IPT -A OUTPUT -o $INT -j ACCEPT' >> $TMP/rules
echo '' >> $TMP/rules
echo '$IPT -A INPUT   -m state --state INVALID -j DROP' >> $TMP/rules
echo '$IPT -A FORWARD -m state --state INVALID -j DROP' >> $TMP/rules
echo '' >> $TMP/rules
echo '$IPT -A INPUT -f -i $EXT -j DROP ' >> $TMP/rules
echo '#$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j LOG --log-prefix "ESTABILISHED " --log-tcp-options --log-ip-options ' >> $TMP/rules
echo '$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ' >> $TMP/rules
echo '' >> $TMP/rules
echo '# ICMP redirecting check && deny' >> $TMP/rules
echo '$IPT -A INPUT --fragment -p ICMP -j LOG --log-prefix "FRAG-ICMP-IN " --log-tcp-options --log-ip-options' >> $TMP/rules
echo '$IPT -A INPUT --fragment -p ICMP -j DROP ' >> $TMP/rules
echo '$IPT -A OUTPUT --fragment -p ICMP -j LOG --log-prefix "FRAG-ICMP-OUT " --log-tcp-options --log-ip-options' >> $TMP/rules
echo '$IPT -A OUTPUT --fragment -p ICMP -j DROP ' >> $TMP/rules
echo '    ' >> $TMP/rules
echo ' # ICMP types allow.' >> $TMP/rules
echo '$IPT -A INPUT -p icmp -m icmp -i $EXT --icmp-type source-quench -j ACCEPT #--icmp-type source-quench' >> $TMP/rules
echo '$IPT -A OUTPUT -p icmp -m icmp -o $EXT --icmp-type source-quench -j ACCEPT #--icmp-type source-quench' >> $TMP/rules
echo '    ' >> $TMP/rules
echo '# Allow outbounding ping & deny incoming ping.' >> $TMP/rules
echo '$IPT -A INPUT -p icmp -m icmp -i $EXT --icmp-type echo-reply -j ACCEPT #--icmp-type echo-request ' >> $TMP/rules
echo '$IPT -A OUTPUT -p icmp -m icmp -o $EXT --icmp-type echo-request -j ACCEPT # ' >> $TMP/rules
echo '' >> $TMP/rules
echo '$IPT -A INPUT -i $EXT -p udp -m udp --dport 53 -j LOG --log-prefix "DNS " --log-tcp-options --log-ip-options ' >> $TMP/rules
echo '$IPT -A INPUT -i $EXT -p udp -m udp --dport 53 -j ACCEPT ' >> $TMP/rules
echo '$IPT -A INPUT -i $EXT -p tcp -m tcp --dport 53 -j LOG --log-prefix "DNS " --log-tcp-options --log-ip-options ' >> $TMP/rules
echo '$IPT -A INPUT -i $EXT -p tcp -m tcp --dport 53 -j ACCEPT ' >> $TMP/rules
echo '$IPT -A INPUT -i $EXT -p tcp -m tcp --dport 22 -j LOG --log-prefix "SSHD " --log-tcp-options --log-ip-options ' >> $TMP/rules
echo '$IPT -A INPUT -i $EXT -p tcp -m tcp --dport 22 -j ACCEPT ' >> $TMP/rules
echo '$IPT -A INPUT -i $EXT -p tcp --dport 22 --syn -m state --state NEW -j LOG --log-prefix "SSHD " --log-tcp-options --log-ip-options' >> $TMP/rules
echo '$IPT -A INPUT -i $EXT -p tcp --dport 22 --syn -m state --state NEW -j ACCEPT' >> $TMP/rules
echo '$IPT -A INPUT -i $EXT -p udp --dport 22 -m state --state NEW -j LOG --log-prefix "SSHD " --log-tcp-options --log-ip-options' >> $TMP/rules
echo '$IPT -A INPUT -i $EXT -p udp --dport 22 -m state --state NEW -j ACCEPT' >> $TMP/rules
echo '' >> $TMP/rules
echo '#In traffic filtering' >> $TMP/rules

while read myline
do
  echo "\$IPT -A INPUT -i \$EXT -p tcp  -s  $myline   -m multiport --dports 80 -j LOG --log-prefix \"KG \" --log-tcp-options --log-ip-options" >> $TMP/rules
  echo "\$IPT -A INPUT -i \$EXT -p tcp  -s  $myline   -m multiport --dports 80 -j ACCEPT" >> $TMP/rules
done < $NETS

echo '' >> $TMP/rules
echo '#Out traffic filtering' >> $TMP/rules

while read myline
do
  echo "\$IPT -A OUTPUT -d  $myline  -j LOG --log-prefix \"KG \" --log-tcp-options --log-ip-options" >> $TMP/rules
  echo "\$IPT -A OUTPUT -d  $myline  -j ACCEPT" >> $TMP/rules
done < $NETS

echo '$IPT -A OUTPUT  -o $EXT -p tcp -s $EXT_IP --dport 5190 --syn -m state --state NEW -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options' >> $TMP/rules
echo '$IPT -A OUTPUT  -o $EXT -p tcp -s $EXT_IP --dport 5190 --syn -m state --state NEW -j ACCEPT' >> $TMP/rules
echo '$IPT -A OUTPUT -f -j LOG --log-prefix "DROPPED " --log-tcp-options --log-ip-options ' >> $TMP/rules
echo '$IPT -A OUTPUT -f -j DROP' >> $TMP/rules
echo '}' >> $TMP/rules
echo '' >> $TMP/rules

echo 'stop_fw()' >> $TMP/rules
echo '{' >> $TMP/rules
echo '' >> $TMP/rules
echo '$IPT -F' >> $TMP/rules
echo '$IPT -t nat -F' >> $TMP/rules
echo '$IPT -t mangle -F' >> $TMP/rules
echo '$IPT -X' >> $TMP/rules
echo '$IPT -t nat -X' >> $TMP/rules
echo '$IPT -t mangle -X' >> $TMP/rules
echo '' >> $TMP/rules
echo '$IPT -P INPUT DROP' >> $TMP/rules
echo '$IPT -P OUTPUT DROP' >> $TMP/rules
echo '$IPT -P FORWARD DROP' >> $TMP/rules
echo '' >> $TMP/rules
echo '$IPT -A INPUT -i lo -j ACCEPT' >> $TMP/rules
echo '$IPT -A OUTPUT -o lo -j ACCEPT' >> $TMP/rules
echo '' >> $TMP/rules
echo '$IPT -A INPUT -i $INT -j ACCEPT' >> $TMP/rules
echo '$IPT -A OUTPUT -o $INT -j ACCEPT' >> $TMP/rules
echo '' >> $TMP/rules
echo '$IPT -A INPUT   -m state --state INVALID -j DROP' >> $TMP/rules
echo '$IPT -A FORWARD -m state --state INVALID -j DROP' >> $TMP/rules
echo '' >> $TMP/rules
echo '$IPT -A INPUT -f -i $EXT -j DROP ' >> $TMP/rules
echo '#$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j LOG --log-prefix "ESTABILISHED " --log-tcp-options --log-ip-options ' >> $TMP/rules
echo '$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ' >> $TMP/rules
echo '' >> $TMP/rules
echo '# ICMP redirecting check && deny' >> $TMP/rules
echo '$IPT -A INPUT --fragment -p ICMP -j LOG --log-prefix "FRAG-ICMP-IN " --log-tcp-options --log-ip-options' >> $TMP/rules
echo '$IPT -A INPUT --fragment -p ICMP -j DROP ' >> $TMP/rules
echo '$IPT -A OUTPUT --fragment -p ICMP -j LOG --log-prefix "FRAG-ICMP-OUT " --log-tcp-options --log-ip-options' >> $TMP/rules
echo '$IPT -A OUTPUT --fragment -p ICMP -j DROP ' >> $TMP/rules
echo '    ' >> $TMP/rules
echo ' # ICMP types allow.' >> $TMP/rules
echo '$IPT -A INPUT -p icmp -m icmp -i $EXT --icmp-type source-quench -j ACCEPT #--icmp-type source-quench' >> $TMP/rules
echo '$IPT -A OUTPUT -p icmp -m icmp -o $EXT --icmp-type source-quench -j ACCEPT #--icmp-type source-quench' >> $TMP/rules
echo '    ' >> $TMP/rules
echo '# Allow outbounding ping & deny incoming ping.' >> $TMP/rules
echo '$IPT -A INPUT -p icmp -m icmp -i $EXT --icmp-type echo-reply -j ACCEPT #--icmp-type echo-request ' >> $TMP/rules
echo '$IPT -A OUTPUT -p icmp -m icmp -o $EXT --icmp-type echo-request -j ACCEPT # ' >> $TMP/rules
echo '' >> $TMP/rules
echo '$IPT -A INPUT -i $EXT -p udp -m udp --dport 53 -j LOG --log-prefix "DNS " --log-tcp-options --log-ip-options ' >> $TMP/rules
echo '$IPT -A INPUT -i $EXT -p udp -m udp --dport 53 -j ACCEPT ' >> $TMP/rules
echo '$IPT -A INPUT -i $EXT -p tcp -m tcp --dport 53 -j LOG --log-prefix "DNS " --log-tcp-options --log-ip-options ' >> $TMP/rules
echo '$IPT -A INPUT -i $EXT -p tcp -m tcp --dport 53 -j ACCEPT ' >> $TMP/rules
echo '$IPT -A INPUT -i $EXT -p tcp -m tcp --dport 22 -j LOG --log-prefix "SSHD " --log-tcp-options --log-ip-options ' >> $TMP/rules
echo '$IPT -A INPUT -i $EXT -p tcp -m tcp --dport 22 -j ACCEPT ' >> $TMP/rules
echo '$IPT -A INPUT -i $EXT -p tcp --dport 22 --syn -m state --state NEW -j LOG --log-prefix "SSHD " --log-tcp-options --log-ip-options' >> $TMP/rules
echo '$IPT -A INPUT -i $EXT -p tcp --dport 22 --syn -m state --state NEW -j ACCEPT' >> $TMP/rules
echo '$IPT -A INPUT -i $EXT -p udp --dport 22 -m state --state NEW -j LOG --log-prefix "SSHD " --log-tcp-options --log-ip-options' >> $TMP/rules
echo '$IPT -A INPUT -i $EXT -p udp --dport 22 -m state --state NEW -j ACCEPT' >> $TMP/rules
echo '' >> $TMP/rules
echo '#In traffic filtering' >> $TMP/rules

while read myline
do
  echo "\$IPT -A INPUT -i \$EXT -p tcp  -s  $myline   -m multiport --dports 80 -j LOG --log-prefix \"KG \" --log-tcp-options --log-ip-options" >> $TMP/rules
  echo "\$IPT -A INPUT -i \$EXT -p tcp  -s  $myline   -m multiport --dports 80 -j ACCEPT" >> $TMP/rules
done < $NETS

echo '' >> $TMP/rules
echo '}' >> $TMP/rules
echo '' >> $TMP/rules
echo 'case "$1" in' >> $TMP/rules
echo 'start)	echo -n "Starting firewall: iptables"' >> $TMP/rules
echo '	start_fw' >> $TMP/rules
echo '        echo "." ' >> $TMP/rules
echo '	;;' >> $TMP/rules
echo 'stop)	echo -n "Stopping firewall: iptables"' >> $TMP/rules
echo '	stop_fw' >> $TMP/rules
echo '        echo "."' >> $TMP/rules
echo '        ;;' >> $TMP/rules
echo 'block) echo -n "Locking firewall: iptables"' >> $TMP/rules
echo '        $IPT -F' >> $TMP/rules
echo '        $IPT -X' >> $TMP/rules
echo '        $IPT -t nat -F' >> $TMP/rules
echo '        $IPT -P FORWARD DROP' >> $TMP/rules
echo '        $IPT -P INPUT   DROP' >> $TMP/rules
echo '        $IPT -P OUTPUT  DROP' >> $TMP/rules
echo '        $IPT -A INPUT -i lo -j ACCEPT' >> $TMP/rules
echo '        $IPT -A OUTPUT -o lo -j ACCEPT' >> $TMP/rules
echo '        echo "."' >> $TMP/rules
echo '       ;;' >> $TMP/rules
echo 'save)	echo -n "Saving firewall: iptables"' >> $TMP/rules
echo '	iptables-save > /etc/rules-save' >> $TMP/rules
echo '	echo "."' >> $TMP/rules
echo '	;;    ' >> $TMP/rules
echo 'restart) echo -n "Restarting firewall: iptables"' >> $TMP/rules
echo '	iptables-save > /etc/rules-save' >> $TMP/rules
echo '	iptables -F' >> $TMP/rules
echo '	iptables -X' >> $TMP/rules
echo '	cat /etc/rules-save | iptables-restore' >> $TMP/rules
echo '        echo "."' >> $TMP/rules
echo '        ;;' >> $TMP/rules
echo 'reload|force-reload) echo -n "Reloading configuration files for firewall: iptables"' >> $TMP/rules
echo '        echo "."' >> $TMP/rules
echo '        ;;' >> $TMP/rules
echo '*)	echo "Usage: /etc/init.d/rules start|stop|block|restart|reload|force-reload"' >> $TMP/rules
echo '        exit 1 ' >> $TMP/rules
echo '        ;;' >> $TMP/rules
echo 'esac' >> $TMP/rules
echo 'exit 0 ' >> $TMP/rules

chmod 0755 $TMP/rules
rm -f $INIT/rules.old
mv $INIT/rules $INIT/rules.old
cp $TMP/rules $INIT/rules
exec $INIT/rules start


В результате работы скрипта создается скрипт с правилами для фаервола, копируется в /etc/init.d, старый конфиг резервируется, а новый запускается. Сгенерированый набор правил получается следующий

Code: Select all

#!/bin/sh
IPT=/sbin/iptables
EXT=eth0
EXT_IP="Мой внешний ип"
INT=eth2
INT_IP="192.168.0.1"
INT_MSK="255.255.255.0"
LAN="192.168.0.0/24"

start_fw()
{

$IPT -F
$IPT -t nat -F
$IPT -t mangle -F
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

$IPT -A INPUT -i $INT -j ACCEPT
$IPT -A OUTPUT -o $INT -j ACCEPT

$IPT -A INPUT   -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP

$IPT -A INPUT -f -i $EXT -j DROP 
#$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j LOG --log-prefix "ESTABILISHED " --log-tcp-options --log-ip-options 
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 

# ICMP redirecting check && deny
$IPT -A INPUT --fragment -p ICMP -j LOG --log-prefix "FRAG-ICMP-IN " --log-tcp-options --log-ip-options
$IPT -A INPUT --fragment -p ICMP -j DROP 
$IPT -A OUTPUT --fragment -p ICMP -j LOG --log-prefix "FRAG-ICMP-OUT " --log-tcp-options --log-ip-options
$IPT -A OUTPUT --fragment -p ICMP -j DROP 
    
 # ICMP types allow.
$IPT -A INPUT -p icmp -m icmp -i $EXT --icmp-type source-quench -j ACCEPT #--icmp-type source-quench
$IPT -A OUTPUT -p icmp -m icmp -o $EXT --icmp-type source-quench -j ACCEPT #--icmp-type source-quench
    
# Allow outbounding ping & deny incoming ping.
$IPT -A INPUT -p icmp -m icmp -i $EXT --icmp-type echo-reply -j ACCEPT #--icmp-type echo-request 
$IPT -A OUTPUT -p icmp -m icmp -o $EXT --icmp-type echo-request -j ACCEPT # 

$IPT -A INPUT -i $EXT -p udp -m udp --dport 53 -j LOG --log-prefix "DNS " --log-tcp-options --log-ip-options 
$IPT -A INPUT -i $EXT -p udp -m udp --dport 53 -j ACCEPT 
$IPT -A INPUT -i $EXT -p tcp -m tcp --dport 53 -j LOG --log-prefix "DNS " --log-tcp-options --log-ip-options 
$IPT -A INPUT -i $EXT -p tcp -m tcp --dport 53 -j ACCEPT 
$IPT -A INPUT -i $EXT -p tcp -m tcp --dport 22 -j LOG --log-prefix "SSHD " --log-tcp-options --log-ip-options 
$IPT -A INPUT -i $EXT -p tcp -m tcp --dport 22 -j ACCEPT 
$IPT -A INPUT -i $EXT -p tcp --dport 22 --syn -m state --state NEW -j LOG --log-prefix "SSHD " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp --dport 22 --syn -m state --state NEW -j ACCEPT
$IPT -A INPUT -i $EXT -p udp --dport 22 -m state --state NEW -j LOG --log-prefix "SSHD " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p udp --dport 22 -m state --state NEW -j ACCEPT

#In traffic filtering
$IPT -A INPUT -i $EXT -p tcp  -s  89.237.192.0/18   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  89.237.192.0/18   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  81.20.16.0/20   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  81.20.16.0/20   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  194.152.37.0/24   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  194.152.37.0/24   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  212.112.96.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  212.112.96.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  92.245.96.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  92.245.96.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  92.62.64.0/20   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  92.62.64.0/20   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  77.95.56.0/21   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  77.95.56.0/21   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  212.97.0.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  212.97.0.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  212.2.224.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  212.2.224.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  91.205.48.0/22   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  91.205.48.0/22   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  109.201.160.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  109.201.160.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  81.88.192.0/20   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  81.88.192.0/20   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  193.106.48.0/22   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  193.106.48.0/22   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  94.143.192.0/21   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  94.143.192.0/21   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  217.29.16.0/20   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  217.29.16.0/20   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  212.241.0.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  212.241.0.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  91.213.233.0/24   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  91.213.233.0/24   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  85.113.0.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  85.113.0.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  195.38.160.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  195.38.160.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  109.71.224.0/21   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  109.71.224.0/21   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  212.42.96.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  212.42.96.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  194.176.111.0/24   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  194.176.111.0/24   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  85.115.192.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  85.115.192.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  77.235.0.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  77.235.0.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  194.152.36.0/24   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  194.152.36.0/24   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  95.215.244.0/22   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  95.215.244.0/22   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  85.26.220.0/22   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  85.26.220.0/22   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  91.192.64.0/22   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  91.192.64.0/22   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  213.145.128.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  213.145.128.0/19   -m multiport --dports 80 -j ACCEPT

#Out traffic filtering
$IPT -A OUTPUT -d  89.237.192.0/18  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  89.237.192.0/18  -j ACCEPT
$IPT -A OUTPUT -d  81.20.16.0/20  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  81.20.16.0/20  -j ACCEPT
$IPT -A OUTPUT -d  194.152.37.0/24  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  194.152.37.0/24  -j ACCEPT
$IPT -A OUTPUT -d  212.112.96.0/19  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  212.112.96.0/19  -j ACCEPT
$IPT -A OUTPUT -d  92.245.96.0/19  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  92.245.96.0/19  -j ACCEPT
$IPT -A OUTPUT -d  92.62.64.0/20  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  92.62.64.0/20  -j ACCEPT
$IPT -A OUTPUT -d  77.95.56.0/21  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  77.95.56.0/21  -j ACCEPT
$IPT -A OUTPUT -d  212.97.0.0/19  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  212.97.0.0/19  -j ACCEPT
$IPT -A OUTPUT -d  212.2.224.0/19  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  212.2.224.0/19  -j ACCEPT
$IPT -A OUTPUT -d  91.205.48.0/22  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  91.205.48.0/22  -j ACCEPT
$IPT -A OUTPUT -d  109.201.160.0/19  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  109.201.160.0/19  -j ACCEPT
$IPT -A OUTPUT -d  81.88.192.0/20  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  81.88.192.0/20  -j ACCEPT
$IPT -A OUTPUT -d  193.106.48.0/22  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  193.106.48.0/22  -j ACCEPT
$IPT -A OUTPUT -d  94.143.192.0/21  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  94.143.192.0/21  -j ACCEPT
$IPT -A OUTPUT -d  217.29.16.0/20  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  217.29.16.0/20  -j ACCEPT
$IPT -A OUTPUT -d  212.241.0.0/19  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  212.241.0.0/19  -j ACCEPT
$IPT -A OUTPUT -d  91.213.233.0/24  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  91.213.233.0/24  -j ACCEPT
$IPT -A OUTPUT -d  85.113.0.0/19  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  85.113.0.0/19  -j ACCEPT
$IPT -A OUTPUT -d  195.38.160.0/19  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  195.38.160.0/19  -j ACCEPT
$IPT -A OUTPUT -d  109.71.224.0/21  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  109.71.224.0/21  -j ACCEPT
$IPT -A OUTPUT -d  212.42.96.0/19  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  212.42.96.0/19  -j ACCEPT
$IPT -A OUTPUT -d  194.176.111.0/24  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  194.176.111.0/24  -j ACCEPT
$IPT -A OUTPUT -d  85.115.192.0/19  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  85.115.192.0/19  -j ACCEPT
$IPT -A OUTPUT -d  77.235.0.0/19  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  77.235.0.0/19  -j ACCEPT
$IPT -A OUTPUT -d  194.152.36.0/24  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  194.152.36.0/24  -j ACCEPT
$IPT -A OUTPUT -d  95.215.244.0/22  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  95.215.244.0/22  -j ACCEPT
$IPT -A OUTPUT -d  85.26.220.0/22  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  85.26.220.0/22  -j ACCEPT
$IPT -A OUTPUT -d  91.192.64.0/22  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  91.192.64.0/22  -j ACCEPT
$IPT -A OUTPUT -d  213.145.128.0/19  -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT -d  213.145.128.0/19  -j ACCEPT
$IPT -A OUTPUT  -o $EXT -p tcp -s $EXT_IP --dport 5190 --syn -m state --state NEW -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A OUTPUT  -o $EXT -p tcp -s $EXT_IP --dport 5190 --syn -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -f -j LOG --log-prefix "DROPPED " --log-tcp-options --log-ip-options 
$IPT -A OUTPUT -f -j DROP
}

stop_fw()
{

$IPT -F
$IPT -t nat -F
$IPT -t mangle -F
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

$IPT -A INPUT -i $INT -j ACCEPT
$IPT -A OUTPUT -o $INT -j ACCEPT

$IPT -A INPUT   -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP

$IPT -A INPUT -f -i $EXT -j DROP 
#$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j LOG --log-prefix "ESTABILISHED " --log-tcp-options --log-ip-options 
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 

# ICMP redirecting check && deny
$IPT -A INPUT --fragment -p ICMP -j LOG --log-prefix "FRAG-ICMP-IN " --log-tcp-options --log-ip-options
$IPT -A INPUT --fragment -p ICMP -j DROP 
$IPT -A OUTPUT --fragment -p ICMP -j LOG --log-prefix "FRAG-ICMP-OUT " --log-tcp-options --log-ip-options
$IPT -A OUTPUT --fragment -p ICMP -j DROP 
    
 # ICMP types allow.
$IPT -A INPUT -p icmp -m icmp -i $EXT --icmp-type source-quench -j ACCEPT #--icmp-type source-quench
$IPT -A OUTPUT -p icmp -m icmp -o $EXT --icmp-type source-quench -j ACCEPT #--icmp-type source-quench
    
# Allow outbounding ping & deny incoming ping.
$IPT -A INPUT -p icmp -m icmp -i $EXT --icmp-type echo-reply -j ACCEPT #--icmp-type echo-request 
$IPT -A OUTPUT -p icmp -m icmp -o $EXT --icmp-type echo-request -j ACCEPT # 

$IPT -A INPUT -i $EXT -p udp -m udp --dport 53 -j LOG --log-prefix "DNS " --log-tcp-options --log-ip-options 
$IPT -A INPUT -i $EXT -p udp -m udp --dport 53 -j ACCEPT 
$IPT -A INPUT -i $EXT -p tcp -m tcp --dport 53 -j LOG --log-prefix "DNS " --log-tcp-options --log-ip-options 
$IPT -A INPUT -i $EXT -p tcp -m tcp --dport 53 -j ACCEPT 
$IPT -A INPUT -i $EXT -p tcp -m tcp --dport 22 -j LOG --log-prefix "SSHD " --log-tcp-options --log-ip-options 
$IPT -A INPUT -i $EXT -p tcp -m tcp --dport 22 -j ACCEPT 
$IPT -A INPUT -i $EXT -p tcp --dport 22 --syn -m state --state NEW -j LOG --log-prefix "SSHD " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp --dport 22 --syn -m state --state NEW -j ACCEPT
$IPT -A INPUT -i $EXT -p udp --dport 22 -m state --state NEW -j LOG --log-prefix "SSHD " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p udp --dport 22 -m state --state NEW -j ACCEPT

#In traffic filtering
$IPT -A INPUT -i $EXT -p tcp  -s  89.237.192.0/18   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  89.237.192.0/18   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  81.20.16.0/20   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  81.20.16.0/20   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  194.152.37.0/24   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  194.152.37.0/24   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  212.112.96.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  212.112.96.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  92.245.96.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  92.245.96.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  92.62.64.0/20   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  92.62.64.0/20   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  77.95.56.0/21   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  77.95.56.0/21   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  212.97.0.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  212.97.0.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  212.2.224.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  212.2.224.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  91.205.48.0/22   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  91.205.48.0/22   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  109.201.160.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  109.201.160.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  81.88.192.0/20   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  81.88.192.0/20   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  193.106.48.0/22   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  193.106.48.0/22   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  94.143.192.0/21   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  94.143.192.0/21   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  217.29.16.0/20   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  217.29.16.0/20   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  212.241.0.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  212.241.0.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  91.213.233.0/24   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  91.213.233.0/24   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  85.113.0.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  85.113.0.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  195.38.160.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  195.38.160.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  109.71.224.0/21   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  109.71.224.0/21   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  212.42.96.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  212.42.96.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  194.176.111.0/24   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  194.176.111.0/24   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  85.115.192.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  85.115.192.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  77.235.0.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  77.235.0.0/19   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  194.152.36.0/24   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  194.152.36.0/24   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  95.215.244.0/22   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  95.215.244.0/22   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  85.26.220.0/22   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  85.26.220.0/22   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  91.192.64.0/22   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  91.192.64.0/22   -m multiport --dports 80 -j ACCEPT
$IPT -A INPUT -i $EXT -p tcp  -s  213.145.128.0/19   -m multiport --dports 80 -j LOG --log-prefix "KG " --log-tcp-options --log-ip-options
$IPT -A INPUT -i $EXT -p tcp  -s  213.145.128.0/19   -m multiport --dports 80 -j ACCEPT

}

case "$1" in
start)	echo -n "Starting firewall: iptables"
	start_fw
        echo "." 
	;;
stop)	echo -n "Stopping firewall: iptables"
	stop_fw
        echo "."
        ;;
block) echo -n "Locking firewall: iptables"
        $IPT -F
        $IPT -X
        $IPT -t nat -F
        $IPT -P FORWARD DROP
        $IPT -P INPUT   DROP
        $IPT -P OUTPUT  DROP
        $IPT -A INPUT -i lo -j ACCEPT
        $IPT -A OUTPUT -o lo -j ACCEPT
        echo "."
       ;;
save)	echo -n "Saving firewall: iptables"
	iptables-save > /etc/rules-save
	echo "."
	;;    
restart) echo -n "Restarting firewall: iptables"
	iptables-save > /etc/rules-save
	iptables -F
	iptables -X
	cat /etc/rules-save | iptables-restore
        echo "."
        ;;
reload|force-reload) echo -n "Reloading configuration files for firewall: iptables"
        echo "."
        ;;
*)	echo "Usage: /etc/init.d/rules start|stop|block|restart|reload|force-reload"
        exit 1 
        ;;
esac
exit 0 
P.S. Требует наличия установленного в системе wget
Я не злопамятный, я просто часто ковыряю логи
Post Reply