Есть скрипт, который переписывает правила IPTABLES
Код: Выделить всё
#!/bin/sh
# Константы
INET_IF="eth1"
INETIP="<белый IP>
NET_IF="eth0"
LANIP="<IP в локальной сети>"
INET_NET="0/24"
NET_NET="192.168.0.0/24"
BASEPORTS="20,21,22,25,43,70,79,80,110,123,143,210,443"
CLOSEPORTS="630,640,783,3310,10000"
NETSERVISPORTS="53,67,68,113"
UNPRIVPORTS="1024:65535"
TORRENTSPORTS="<Порты>"
MAILPORTS="25,110,143"
IMPORTS="5190,5222,5223,5269,5280"
SERVISPORTS="2049,3306,10000"
RDPPORTS="3389"
VNCPORTS="5900:5906,"
XPORTS="6000:6063"
NFSPORTS="111,2049"
DNS_SERVER1="<IP>"
DNS_SERVER2="<IP>"
CORPSERVER="<IP>"
CORPINJCOMP="<IP>"
GLAVBUHG="<IP>"
SYSADMIN="<IP домашнего ПК сисадмина>" # В данном случае шлюза, за которым сидит админ.
LOCAL_ADMINS=( "<IP в локальной сети>" "<IP в локальной сети>" "<IP в локальной сети>" )
ELCOM="<IP почтового сервера>"
POP3_YA=( "87.250.250.37" "87.250.251.37" "93.158.134.37" "213.180.204.37" )
SMTP_YA=( "77.88.21.38" "87.250.250.38" "93.158.134.38" "213.180.204.38" )
KONTUR="193.169.239.19"
KONTUR_A="91.142.140.80"
KONTUR_E="91.142.140.68"
POP3_1GB=( "81.177.24.21" "81.177.24.22" "81.177.24.23" "81.177.24.24" "81.177.24.85" "81.177.24.86" "81.177.24.87" "81.177.24.88" "81.176.226.28" "81.176.226.29" "81.176.226.30" "81.176.226.31" )
SMTP_1GB=( "81.176.226.20" "81.176.226.21" "81.176.226.22" "81.176.226.14" "81.176.69.157" "81.176.69.158" "81.176.69.159" "81.176.69.160" "81.176.226.24" "81.176.226.25" "81.176.226.26" "81.176.226.27" "81.176.226.28" "81.176.226.29" "81.176.226.30" "81.176.226.31" )
# Запускаем модули ядра!
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
# Включить перенаправление пакетов через ядро.
echo "1" > /proc/sys/net/ipv4/ip_forward
# Сбросить правила и удалить цепочки.
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -t nat -F PREROUTING
iptables -t nat -F POSTROUTING
iptables -X
iptables -t nat -X
iptables -t mangle -X
# Политики по умолчанию.
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
# Защита от некоторых видов атак
iptables -A INPUT -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -p UDP -s 0/0 --destination-port 137 -j DROP
iptables -A INPUT -p UDP -s 0/0 --destination-port 138 -j DROP
iptables -A INPUT -p UDP -s 0/0 --destination-port 113 -j REJECT
iptables -A INPUT -p UDP -s 0/0 --source-port 67 --destination-port 68 -j ACCEPT
# iptables -A INPUT -p UDP -j RETURN # При раскомменченной строчке с этой машины не идут запросы на DNS,
# За NAT-ом машины получают DNS запросы через этот шлюз.
# iptables -A OUTPUT -p UDP -s 0/0 -j ACCEPT
iptables -A INPUT --fragment -p ICMP -j DROP
iptables -A OUTPUT --fragment -p ICMP -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A INPUT -p tcp --tcp-option 64 -j DROP
iptables -A INPUT -p tcp --tcp-option 128 -j DROP
iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --update --seconds 20 -j DROP
iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --set -j ACCEPT
# Запрет полный и обязательный
iptables -A OUTPUT -p tcp -m tcp -o $INET_IF --dport 23 --sport $UNPRIVPORTS -j ACCEPT
iptables -A INPUT -p tcp -m tcp -i $INET_IF --dport $UNPRIVPORTS --sport 23 -j ACCEPT ! --syn
iptables -A INPUT -p tcp -m tcp -i $INET_IF --dport $XPORTS -j DROP --syn
# Разрешаем ICMP соединение.
iptables -A INPUT -p icmp -m icmp -i $INET_IF --icmp-type source-quench -j ACCEPT
iptables -A OUTPUT -p icmp -m icmp -o $INET_IF --icmp-type source-quench -j ACCEPT
iptables -A INPUT -p icmp -m icmp -i $NET_IF --icmp-type source-quench -j ACCEPT
iptables -A OUTPUT -p icmp -m icmp -o $NET_IF --icmp-type source-quench -j ACCEPT
# Разрешаем передачу пакета - некорректный параметр
iptables -A INPUT -p icmp -m icmp -i $INET_IF --icmp-type parameter-problem -j ACCEPT
iptables -A OUTPUT -p icmp -m icmp -o $INET_IF --icmp-type parameter-problem -j ACCEPT
# Ставим ловушки.
# iptables -A INPUT -p tcp -m tcp -j TARPIT # Не находит какую-то либу, поэтому закомменчено, что бы пока не мешалось.
# Прописываем порты, которые открыты в системе, но которые не должны быть открыты на сетевых интерфейсах:
iptables -A INPUT -p tcp -m tcp -m multiport -i $INET_IF -j DROP --destination-ports $CLOSEPORTS
# Принимать ответы по уже установленным соединениям
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Иной вариант того же действия
# iptables -A INPUT -d $INETIP -p TCP --dport $UNPRIVPORT -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A FORWARD -p TCP -m state --state ESTABLISHED,RELATED -m multiport --sport $UNPRIVPORT -j ACCEPT
# Разрешаем прохождение любого трафика по интерфейсу обратной петли.
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -p ALL -s 127.0.0.1 -i lo -j ACCEPT
iptables -A INPUT -p ALL -s $LANIP -i lo -j ACCEPT
iptables -A INPUT -p ALL -s $INETIP -i lo -j ACCEPT
iptables -A OUTPUT -p ALL -d 127.0.0.1 -o lo -j ACCEPT
iptables -A OUTPUT -p ALL -s $INETIP -j ACCEPT
iptables -A OUTPUT -p ALL -s $LANIP -j ACCEPT
iptables -A OUTPUT -p ALL -s 127.0.0.1 -j ACCEPT
# Открытые порты из Глобала
iptables -A INPUT -s $INET_NET -p TCP -d $INETIP -m multiport --dports 21,80 -j ACCEPT
# Иной вариант того же действия
#iptables -A INPUT -p tcp -m tcp -i $INET_IF -m multiport --dport 20,21,80,443 --sport $UNPRIVPORTS -j ACCEPT
#iptables -A OUTPUT -p tcp -m tcp -o $INET_IF -m multiport --dport $UNPRIVPORTS --sport 20,21,80,443 -j ACCEPT ! --syn
# Разрешаем торренты :-)
iptables -A INPUT -s $INET_NET -p TCP -d $INETIP -m multiport --dport $TORRENTSPORTS -j ACCEPT
iptables -A INPUT -s $INET_NET -p UDP -d $INETIP -m multiport --dport $TORRENTSPORTS -j ACCEPT
# Для VPN // Пока не нужно
#iptables -A INPUT -p 47 -m state --state ESTABLISHED,RELATED -i $INET_IF -j ACCEPT
#iptables -A OUTPUT -p TCP --dport 1723 -o eth0 -j ACCEPT
#iptables -A OUTPUT -p 47 -o eth0 -j ACCEPT
# Для RDP
iptables -t nat -A PREROUTING -p tcp -s $SYSADMIN -d $INETIP --dport 3389 -j DNAT --to-destination $CORPINJCOMP
iptables -t nat -A POSTROUTING -o $NET_IF= -j SNAT --to-source $INETIP
iptables -t nat -A POSTROUTING -p tcp -d $CORPINJCOMP --dport 3389 -j SNAT --to-source $LANIP
# Иной вариант того же действия
# iptables -A FORWARD -p TCP -s $NET_NET -d $CORPINJCOMP --dport 3389 -j ACCEPT
# Иной вариант того же действия
#iptables -t nat -A PREROUTING -d $INETIP -p TCP --dport 13389 -j DNAT --to-destination $CORPINJCOMP:3389
#iptables -A FORWARD -p TCP -d $CORPINJCOMP --dport 3389 -j ACCEPT
# Для почты
#iptables -A OUTPUT -p tcp -m tcp -o $INET_IF -m multiport --dports $MAILPORTS --sports $UNPRIPORTS -j ACCEPT
#iptables -A INPUT -p tcp -m tcp -i $INET_IF -m multiport --dports $UNPRIPORTS --sports $MAILPORTS -j ACCEPT ! --syn
iptables -A FORWARD -s $NET_NET -d $ELCOM -p TCP --dport 110 -j ACCEPT
iptables -A FORWARD -s $NET_NET -d $ELCOM -p TCP --dport 25 -j ACCEPT
index=0
while [ "$index" -lt "${#POP3_1GB[@]}" ]
do
iptables -A FORWARD -s $NET_NET -d ${POP3_1GB[$index]} -p TCP --dport 110 -j ACCEPT
let "index = $index + 1"
done
index=0
while [ "$index" -lt "${#SMTP_1GB[@]}" ]
do
iptables -A FORWARD -s $NET_NET -d ${SMTP_1GB[$index]} -p TCP --dport 25 -j ACCEPT
let "index = $index + 1"
done
index=0
while [ "$index" -lt "${#POP3_YA[@]}" ]
do
iptables -A FORWARD -s $NET_NET -d ${POP3_YA[$index]} -p TCP --dport 110 -j ACCEPT
let "index = $index + 1"
done
index=0
while [ "$index" -lt "${#SMTP_YA[@]}" ]
do
iptables -A FORWARD -s $NET_NET -d ${SMTP_YA[$index]} -p TCP --dport 25 -j ACCEPT
let "index = $index + 1"
done
# Для Жаббера
iptables -A OUTPUT -p tcp -m tcp -m multiport --dports $IMPORTS -j ACCEPT
iptables -A INPUT -p tcp -m tcp -m multiport --sports $IMPORTS -j ACCEPT
# NTP (обновление времени).
iptables -A INPUT -p udp --sport 123 --dport 123 -j ACCEPT
# Открытые порты из локалки
# iptables-A INPUT -i $NET_IF -j ACCEPT
iptables -A INPUT -s $NET_NET -p TCP -d $LANIP -m multiport --dport 3128,53 -j ACCEPT
iptables -A INPUT -s $NET_NET -p TCP -d $LANIP -m multiport --dport $IMPORTS -j ACCEPT
# Разрешаем только ответы DNS и DHCP сервера на запросы/
#iptables -A OUTPUT -p udp -m udp -o $INET_IF --dport 53 --sport $UNPRIVPORTS -j ACCEPT
#iptables -A OUTPUT -p tcp -m tcp -o $INET_IF --dport 53 --sport $UNPRIVPORTS -j ACCEPT
iptables -A INPUT -p UDP -s $DNS_SERVER1 -m state --state ESTABLISHED --sport 53 -j ACCEPT
iptables -A INPUT -p TCP -s $DNS_SERVER1 --sport 53 --dport $UNPRIVPORTS -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p UDP -s $DNS_SERVER2 -m state --state ESTABLISHED --sport 53 -j ACCEPT
iptables -A INPUT -p TCP -s $DNS_SERVER2 --sport 53 --dport $UNPRIVPORTS -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p UDP -s $NET_NET -d $DNS_SERVER1 --dport 53 -j ACCEPT
iptables -A FORWARD -p UDP -s $DNS_SERVER1 -d $NET_NET --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p TCP -s $NET_NET -d $DNS_SERVER1 --dport 53 -j ACCEPT
iptables -A FORWARD -p UDP -s $NET_NET -d $DNS_SERVER2 --dport 53 -j ACCEPT
iptables -A FORWARD -p UDP -s $DNS_SERVER2 -d $NET_NET --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p TCP -s $NET_NET -d $DNS_SERVER2 --dport 53 -j ACCEPT
# iptables -A OUTPUT -p udp -m udp -o $INET_IF --dport 67 --sport 68 -j ACCEPT
# iptables -A INPUT -p udp -m udp -i $INET_IF --dport 68 --sport 67 -j ACCEPT
# Доступ админам наружу
index=0
while [ "$index" -lt "${#LOCAL_ADMINS[@]}" ]
do
iptables -A INPUT -s ${LOCAL_ADMINS[$index]} -i $NET_IF -j ACCEPT
#iptables -A INPUT -s ${LOCAL_ADMINS[$index]} -p TCP -j ACCEPT
#iptables -A INPUT -s ${LOCAL_ADMINS[$index]} -p UDP -j ACCEPT
iptables -A FORWARD -s ${LOCAL_ADMINS[$index]} -p TCP -j ACCEPT
iptables -A FORWARD -s ${LOCAL_ADMINS[$index]} -p UDP -j ACCEPT
let "index = $index + 1"
done
# Сисадмину доступ
iptables -A FORWARD -p TCP -d $SYSADMIN -m multiport --dports $UNPRIVPORTS -j ACCEPT
iptables -A FORWARD -p TCP -s $SYSADMIN -m multiport --sports $UNPRIVPORTS -j ACCEPT
iptables -A FORWARD -p UDP -d $SYSADMIN -m multiport --dports $UNPRIVPORTS -j ACCEPT
iptables -A FORWARD -p UDP -s $SYSADMIN -m multiport --sports $UNPRIVPORTS -j ACCEPT
iptables -A FORWARD -p TCP -d $SYSADMIN -m multiport --dports $BASEPORTS -j ACCEPT
iptables -A FORWARD -p TCP -s $SYSADMIN -m multiport --sports $BASEPORTS -j ACCEPT
iptables -A FORWARD -p UDP -d $SYSADMIN -m multiport --dports $BASEPORTS -j ACCEPT
iptables -A FORWARD -p UDP -s $SYSADMIN -m multiport --sports $BASEPORTS -j ACCEPT
# Главбуху доступ
# iptables -A FORWARD -p TCP -d $GLAVBUHG --dport 25, -j ACCEPT
# iptables -A FORWARD -p TCP -s $GLAVBUHG --sport $UNPRIVPORTS -j ACCEPT
iptables -A FORWARD -s $GLAVBUHG -d $KONTUR -p TCP -m multiport --dports 80,443 -j ACCEPT
iptables -A FORWARD -s $GLAVBUHG -d $KONTUR_A -p TCP -m multiport --dports 80,443 -j ACCEPT
iptables -A FORWARD -s $GLAVBUHG -d $KONTUR_E -p TCP -m multiport --dports 80,443 -j ACCEPT
# Разрешен исходящий пинг, ограничен входящий.
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 2 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A OUTPUT -p icmp --icmp-type echo-reply -m icmp -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 2 -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -j DROP
iptables -A INPUT -p icmp -j ACCEPT
iptables -A FORWARD -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
#iptables -A INPUT -p icmp -m icmp -i $INET_IF --icmp-type echo-reply -j ACCEPT
#iptables -A OUTPUT -p icmp -m icmp -o $INET_IF --icmp-type echo-request -j ACCEPT
# Разрешены исходящие AUTH-запросы, входящие запрещены.
iptables -A OUTPUT -p tcp -m tcp -o $INET_IF --dport 113 --sport $UNPRIVPORTS -j ACCEPT
iptables -A INPUT -p tcp -m tcp -i $INET_IF --dport $UNPRIVPORTS --sport 113 -j ACCEPT ! --syn
iptables -A INPUT -p tcp -m tcp -i $INET_IF --dport 113 -j DROP
# Разрешаем finger, whois, gorper, wais. Traceroute только исходящий.
iptables -A INPUT -p tcp -m tcp -i $INET_IF --dport $UNPRIVPORTS --sport 20 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp -o $INET_IF --dport 20 --sport $UNPRIVPORTS -j ACCEPT ! --syn
iptables -A OUTPUT -p tcp -m tcp -o $INET_IF --dport $UNPRIVPORTS --sport $UNPRIVPORTS -j ACCEPT
iptables -A INPUT -p tcp -m tcp -i $INET_IF --dport $UNPRIVPORTS --sport $UNPRIVPORTS -j ACCEPT ! --syn
iptables -A OUTPUT -p tcp -m tcp -o $INET_IF --dport 79 --sport $UNPRIVPORTS -j ACCEPT
iptables -A INPUT -p tcp -m tcp -i $INET_IF --dport $UNPRIVPORTS --sport 79 -j ACCEPT ! --syn
iptables -A OUTPUT -p tcp -m tcp -o $INET_IF --dport 43 --sport $UNPRIVPORTS -j ACCEPT
iptables -A INPUT -p tcp -m tcp -i $INET_IF --dport $UNPRIVPORTS --sport 43 -j ACCEPT ! --syn
iptables -A OUTPUT -p tcp -m tcp -o $INET_IF --dport 70 --sport $UNPRIVPORTS -j ACCEPT
iptables -A INPUT -p tcp -m tcp -i $INET_IF --dport $UNPRIVPORTS --sport 70 -j ACCEPT ! --syn
iptables -A OUTPUT -p tcp -m tcp -o $INET_IF --dport 210 --sport $UNPRIVPORTS -j ACCEPT
iptables -A INPUT -p tcp -m tcp -i $INET_IF --dport $UNPRIVPORTS --sport 210 -j ACCEPT ! --syn
# iptables -A OUTPUT -p udp -m udp -o $INET_IF --dport 33434:33523 --sport 32769:65535 -j ACCEPT
# Перебрасываем порты
iptables -t nat -A PREROUTING -d $INETIP -p TCP --dport 10021 -j DNAT --to-destination $CORPSERVER:21
iptables -A FORWARD -p TCP -d $CORPSERVER --dport 21 -j ACCEPT
iptables -t nat -A PREROUTING -d $INETIP -p TCP --dport 10022 -j DNAT --to-destination $CORPSERVER:22
iptables -A FORWARD -p TCP -d $CORPSERVER --dport 22 -j ACCEPT
iptables -t nat -A PREROUTING -d $INETIP -p TCP --dport 10080 -j DNAT --to-destination $CORPSERVER:80
iptables -A FORWARD -p TCP -d $CORPSERVER --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -d $INETIP -p TCP --dport 16000 -j DNAT --to-destination $CORPSERVER:6000
iptables -A FORWARD -p TCP -d $CORPSERVER --dport 6000 -j ACCEPT
# Включаем NAT
iptables -t mangle -A PREROUTING -i $INET_IF -j TTL --ttl-set 64
iptables -t nat -A POSTROUTING -o $INET_IF -j SNAT --to-source $INETIP
# iptables -t nat -A POSTROUTING -o $INET_IF -j MASQUERADEИз локалки все как положено работает. Хотя я и не проверял как шлюз пропускает трафик с админских компов наружу, но коннект на 80 и 22 порты точно есть и работа по ним тоже.
Почта работает только та, что нужна, DNS запросы проходят нормально. Эхо запросы из локальной сети наружу нормально идут. WEB-трафик из локалки идет только через прокси.
А вот из глобала есть проблема: никого не пускает по 80 и 21 портам. Зато всех пускает по 22-му.
Торренты, на удивление, раздаются нормально при этом.
Вот что говорит iptables -L
Код: Выделить всё
Chain INPUT (policy DROP)
target prot opt source destination
DROP all -- anywhere anywhere state INVALID
REJECT tcp -- anywhere anywhere tcp flags:SYN,ACK/SYN,ACK state NEW reject-with tcp-reset
DROP tcp -- anywhere anywhere tcp flags:!FIN,SYN,RST,ACK/SYN state NEW
DROP udp -- anywhere anywhere udp dpt:netbios-ns
DROP udp -- anywhere anywhere udp dpt:netbios-dgm
REJECT udp -- anywhere anywhere udp dpt:auth reject-with icmp-port-unreachable
ACCEPT udp -- anywhere anywhere udp spt:bootps dpt:bootpc
DROP icmp -f anywhere anywhere
DROP tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN,PSH,URG
DROP tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN,SYN,RST,PSH,ACK,URG
DROP tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN,SYN,RST,ACK,URG
DROP tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,PSH,ACK,URG/NONE
DROP tcp -- anywhere anywhere tcp flags:SYN,RST/SYN,RST
DROP tcp -- anywhere anywhere tcp flags:FIN,SYN/FIN,SYN
DROP tcp -- anywhere anywhere tcp option=64
DROP tcp -- anywhere anywhere tcp option=128
DROP tcp -- anywhere anywhere state NEW tcp dpt:ssh recent: UPDATE seconds: 20 name: DEFAULT side: source
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh recent: SET name: DEFAULT side: source
ACCEPT tcp -- anywhere anywhere tcp spt:telnet dpts:1024:65535 flags:!FIN,SYN,RST,ACK/SYN
DROP tcp -- anywhere anywhere tcp dpts:x11:6063 flags:FIN,SYN,RST,ACK/SYN
ACCEPT icmp -- anywhere anywhere icmp source-quench
ACCEPT icmp -- anywhere anywhere icmp source-quench
ACCEPT icmp -- anywhere anywhere icmp parameter-problem
DROP tcp -- anywhere anywhere tcp multiport dports 630,640,783,3310,10000
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
ACCEPT all -- sgshm anywhere
ACCEPT all -- <Локальный IP> anywhere
ACCEPT all -- <Глобальный IP> anywhere
ACCEPT tcp -- default/24 <Глобальный IP> multiport dports ftp,http
ACCEPT tcp -- default/24 <Глобальный IP> multiport dports 49160:49300
ACCEPT udp -- default/24 <Глобальный IP> multiport dports 49160:49300
ACCEPT tcp -- anywhere anywhere tcp multiport sports 5190,xmmp,xmmps,xmpps2s,5280
ACCEPT udp -- anywhere anywhere udp spt:ntp dpt:ntp
ACCEPT tcp -- 192.168.0.0/24 <Локальный IP> multiport dports squid,domain
ACCEPT tcp -- 192.168.0.0/24 <Локальный IP> multiport dports 5190,xmmp,xmmps,xmpps2s,5280
ACCEPT udp -- <DNS1 прова> anywhere state ESTABLISHED udp spt:domain
ACCEPT tcp -- <DNS1 прова> anywhere tcp spt:domain dpts:1024:65535 state ESTABLISHED
ACCEPT udp -- <DNS2 прова> anywhere state ESTABLISHED udp spt:domain
ACCEPT tcp -- <DNS2 прова> anywhere tcp spt:domain dpts:1024:65535 state ESTABLISHED
ACCEPT all -- SysAdMin.local anywhere
ACCEPT all -- server anywhere
ACCEPT all -- <SAPR.local> anywhere
ACCEPT icmp -- anywhere anywhere icmp echo-request limit: avg 1/sec burst 2
DROP icmp -- anywhere anywhere icmp echo-request
ACCEPT icmp -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp spt:auth dpts:1024:65535 flags:!FIN,SYN,RST,ACK/SYN
DROP tcp -- anywhere anywhere tcp dpt:auth
ACCEPT tcp -- anywhere anywhere tcp spt:ftp-data dpts:1024:65535
ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpts:1024:65535 flags:!FIN,SYN,RST,ACK/SYN
ACCEPT tcp -- anywhere anywhere tcp spt:finger dpts:1024:65535 flags:!FIN,SYN,RST,ACK/SYN
ACCEPT tcp -- anywhere anywhere tcp spt:nicname dpts:1024:65535 flags:!FIN,SYN,RST,ACK/SYN
ACCEPT tcp -- anywhere anywhere tcp spt:gopher dpts:1024:65535 flags:!FIN,SYN,RST,ACK/SYN
ACCEPT tcp -- anywhere anywhere tcp spt:z39.50 dpts:1024:65535 flags:!FIN,SYN,RST,ACK/SYN
Chain FORWARD (policy DROP)
target prot opt source destination
DROP all -- anywhere anywhere state INVALID
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- 192.168.0.0/24 <Почта прова> tcp dpt:pop3
ACCEPT tcp -- 192.168.0.0/24 <Почта прова> tcp dpt:smtp
ACCEPT tcp -- 192.168.0.0/24 s14.in-solve.ru tcp dpt:pop3
ACCEPT tcp -- 192.168.0.0/24 s14.in-solve.ru tcp dpt:pop3
ACCEPT tcp -- 192.168.0.0/24 s14.in-solve.ru tcp dpt:pop3
ACCEPT tcp -- 192.168.0.0/24 s14.in-solve.ru tcp dpt:pop3
ACCEPT tcp -- 192.168.0.0/24 s19.in-solve.ru tcp dpt:pop3
ACCEPT tcp -- 192.168.0.0/24 s19.in-solve.ru tcp dpt:pop3
ACCEPT tcp -- 192.168.0.0/24 s19.in-solve.ru tcp dpt:pop3
ACCEPT tcp -- 192.168.0.0/24 s19.in-solve.ru tcp dpt:pop3
ACCEPT tcp -- 192.168.0.0/24 s27.in-solve.ru tcp dpt:pop3
ACCEPT tcp -- 192.168.0.0/24 s27.in-solve.ru tcp dpt:pop3
ACCEPT tcp -- 192.168.0.0/24 s27.in-solve.ru tcp dpt:pop3
ACCEPT tcp -- 192.168.0.0/24 s27.in-solve.ru tcp dpt:pop3
ACCEPT tcp -- 192.168.0.0/24 s24.in-solve.ru tcp dpt:smtp
ACCEPT tcp -- 192.168.0.0/24 s24.in-solve.ru tcp dpt:smtp
ACCEPT tcp -- 192.168.0.0/24 s24.in-solve.ru tcp dpt:smtp
ACCEPT tcp -- 192.168.0.0/24 s24.in-solve.ru tcp dpt:smtp
ACCEPT tcp -- 192.168.0.0/24 mail.1gb.ru tcp dpt:smtp
ACCEPT tcp -- 192.168.0.0/24 s5.in-solve.ru tcp dpt:smtp
ACCEPT tcp -- 192.168.0.0/24 s5.in-solve.ru tcp dpt:smtp
ACCEPT tcp -- 192.168.0.0/24 s5.in-solve.ru tcp dpt:smtp
ACCEPT tcp -- 192.168.0.0/24 s27.in-solve.ru tcp dpt:smtp
ACCEPT tcp -- 192.168.0.0/24 s27.in-solve.ru tcp dpt:smtp
ACCEPT tcp -- 192.168.0.0/24 s27.in-solve.ru tcp dpt:smtp
ACCEPT tcp -- 192.168.0.0/24 s27.in-solve.ru tcp dpt:smtp
ACCEPT tcp -- 192.168.0.0/24 s27.in-solve.ru tcp dpt:smtp
ACCEPT tcp -- 192.168.0.0/24 s27.in-solve.ru tcp dpt:smtp
ACCEPT tcp -- 192.168.0.0/24 s27.in-solve.ru tcp dpt:smtp
ACCEPT tcp -- 192.168.0.0/24 s27.in-solve.ru tcp dpt:smtp
ACCEPT tcp -- 192.168.0.0/24 pop.yandex.ru tcp dpt:pop3
ACCEPT tcp -- 192.168.0.0/24 pop.yandex.ru tcp dpt:pop3
ACCEPT tcp -- 192.168.0.0/24 pop.yandex.ru tcp dpt:pop3
ACCEPT tcp -- 192.168.0.0/24 pop.yandex.ru tcp dpt:pop3
ACCEPT tcp -- 192.168.0.0/24 smtp.yandex.ru tcp dpt:smtp
ACCEPT tcp -- 192.168.0.0/24 smtp.yandex.ru tcp dpt:smtp
ACCEPT tcp -- 192.168.0.0/24 smtp.yandex.ru tcp dpt:smtp
ACCEPT tcp -- 192.168.0.0/24 smtp.yandex.ru tcp dpt:smtp
ACCEPT udp -- 192.168.0.0/24 <DNS1 прова> udp dpt:domain
ACCEPT udp -- <DNS1 прова> 192.168.0.0/24 udp spt:domain state ESTABLISHED
ACCEPT tcp -- 192.168.0.0/24 <DNS1 прова> tcp dpt:domain
ACCEPT udp -- 192.168.0.0/24 <DNS2 прова> udp dpt:domain
ACCEPT udp -- ns.imex.ru 192.168.0.0/24 udp spt:domain state ESTABLISHED
ACCEPT tcp -- 192.168.0.0/24 <DNS2 прова> tcp dpt:domain
ACCEPT tcp -- SysAdMin.local anywhere
ACCEPT udp -- SysAdMin.local anywhere
ACCEPT tcp -- server anywhere
ACCEPT udp -- server anywhere
ACCEPT tcp -- SAPR.local anywhere
ACCEPT udp -- SAPR.local anywhere
ACCEPT tcp -- anywhere <Домашний ПК Админа> multiport dports 1024:65535
ACCEPT tcp -- <Домашний ПК Админа> anywhere multiport sports 1024:65535
ACCEPT udp -- anywhere <Домашний ПК Админа> multiport dports 1024:65535
ACCEPT udp -- <Домашний ПК Админа> anywhere multiport sports 1024:65535
ACCEPT tcp -- anywhere <Домашний ПК Админа> multiport dports ftp-data,ftp,ssh,smtp,nicname,gopher,finger,http,pop3,ntp,imap,z39.50,https
ACCEPT tcp -- <Домашний ПК Админа> anywhere multiport sports ftp-data,ftp,ssh,smtp,nicname,gopher,finger,http,pop3,ntp,imap,z39.50,https
ACCEPT udp -- anywhere <Домашний ПК Админа> multiport dports ftp-data,ftp,ssh,smtp,nicname,gopher,finger,http,pop3,ntp,imap,z39.50,https
ACCEPT udp -- <Домашний ПК Админа> anywhere multiport sports ftp-data,ftp,ssh,smtp,nicname,gopher,finger,http,pop3,ntp,imap,z39.50,https
ACCEPT tcp -- <ПК Буха> 193.169.239.19 multiport dports http,https
ACCEPT tcp -- <ПК Буха> 91.142.140.80 multiport dports http,https
ACCEPT tcp -- <ПК Буха> 91.142.140.68 multiport dports http,https
ACCEPT icmp -- anywhere anywhere icmp echo-request limit: avg 1/sec burst 2
DROP icmp -- anywhere anywhere icmp echo-request
ACCEPT icmp -- anywhere anywhere
ACCEPT tcp -- anywhere server tcp dpt:ftp
ACCEPT tcp -- anywhere server tcp dpt:ssh
ACCEPT tcp -- anywhere server tcp dpt:http
ACCEPT tcp -- anywhere server tcp dpt:x11
Chain OUTPUT (policy DROP)
target prot opt source destination
DROP tcp -- anywhere anywhere tcp flags:!FIN,SYN,RST,ACK/SYN state NEW
DROP icmp -f anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpt:telnet
ACCEPT icmp -- anywhere anywhere icmp source-quench
ACCEPT icmp -- anywhere anywhere icmp source-quench
ACCEPT icmp -- anywhere anywhere icmp parameter-problem
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere sgshm
ACCEPT all -- <Глобальный IP> anywhere
ACCEPT all -- <Локальный IP> anywhere
ACCEPT all -- sgshm anywhere
ACCEPT tcp -- anywhere anywhere tcp multiport dports 5190,xmmp,xmmps,xmpps2s,5280
ACCEPT icmp -- anywhere anywhere icmp echo-reply icmp any
ACCEPT icmp -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpt:auth
ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpt:ftp-data flags:!FIN,SYN,RST,ACK/SYN
ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpts:1024:65535
ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpt:finger
ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpt:nicname
ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpt:gopher
ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpt:z39.50Как убедить iptables пускать снаружи всех по 80-му и 21-му портам и только с избранного IP по 22-му?
В чем косяк скрипта?