Заранее прошу прощения у форума, если вопрос уже разобран, я искал решения и тут и, вообще, в инете. Уже неделю вожусь.Запрет/разрешение доступа в Internet машин локальной сети по их IP адресам.
Как разрешить всем машинам локальной сети выходить в Интернет на фикисрованный список удалённых портов (tcp 20,21,25,110; udp 53,67,68,123)
При этом дать отдельным машимнам право на tcp 80.
Фильтровать только по собственным IP локальных машин.
Я прочитал уже много документов, находил примеры, делал как в примерах, пытался понимать. Читаю и сейчас, и ставлю эксперименты.
Добился только полного доступа всех локальных машин в интерент без разбора.
Вот мои настройки iptables.
Firwall.sh
--- Cut here ---
PRIVATE=10.0.0.0/16
INET=eth0
LOCAL=eth1
SSH=22222
LOOP=127.0.0.1
iptables -P OUTPUT DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -F
iptables -F -t nat
iptables -F -t mangle
iptables -A INPUT -i $INET -s $LOOP -j DROP
iptables -A FORWARD -i $INET -s $LOOP -j DROP
iptables -A INPUT -i $INET -d $LOOP -j DROP
iptables -A FORWARD -i $INET -d $LOOP -j DROP
#iptables -A FORWARD -i $INET -s 192.168.0.0/16 -j DROP
iptables -A FORWARD -i $INET -s 172.16.0.0/12 -j DROP
iptables -A FORWARD -i $INET -s 10.0.0.0/8 -j DROP
#iptables -A INPUT -i $INET -s 192.168.0.0/16 -j DROP
iptables -A INPUT -i $INET -s 172.16.0.0/12 -j DROP
iptables -A INPUT -i $INET -s 10.0.0.0/8 -j DROP
iptables -A FORWARD -p tcp --sport 137:139 -o $INET -j DROP
iptables -A FORWARD -p udp --sport 137:139 -o $INET -j DROP
iptables -A OUTPUT -p tcp --sport 137:139 -o $INET -j DROP
iptables -A OUTPUT -p udp --sport 137:139 -o $INET -j DROP
iptables -A FORWARD -s ! $PRIVATE -i $LOCAL -j DROP
iptables -A INPUT -s $LOOP -j ACCEPT
iptables -A INPUT -d $LOOP -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p tcp --dport $SSH -j ACCEPT
iptables -A OUTPUT -p tcp --sport $SSH -j ACCEPT
iptables -A FORWARD -p tcp --dport $SSH -j ACCEPT
# Отсебятина
# ALL Allow UDP
iptables -A FORWARD -s $PRIVATE -p udp -m multiport --dport 53,67,68,123 -o $LOCAL -j ACCEPT
iptables -A FORWARD -d $PRIVATE -p udp -m multiport --sport 53,67,68,123 -o $LOCAL -j ACCEPT
#ALL Allow TCP
iptables -A FORWARD -s $PRIVATE -p tcp -m multiport --dport 20,21,25,110,5190,4889,5900,30000,30001,30002,30003,30004,30005 -o $LOCAL -j ACCEPT
iptables -A FORWARD -d $PRIVATE -p tcp -m multiport --sport 20,21,25,110,5190,4889,5900,30000,30001,30002,30003,30004,30005 -o $LOCAL -j ACCEPT
#Unic TCP Allow
iptables -A FORWARD -s 10.0.0.21 -p tcp -m multiport --dport 80,443 -o $LOCAL -j ACCEPT
iptables -A FORWARD -d 10.0.0.21 -p tcp -m multiport --sport 80,443 -o $LOCAL -j ACCEPT
iptables -A OUTPUT -m state --state NEW -o $INET -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state NEW -o $INET -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $INET -p tcp -j DROP
iptables -A FORWARD -o $INET -p udp -j DROP
iptables -A FORWARD -o $LOCAL -p tcp -j DROP
iptables -A FORWARD -o $LOCAL -p udp -j DROP
iptables -t nat -A POSTROUTING -s $PRIVATE -o $INET -j MASQUERADE
--- Cut here ---
Вот вывод сохранения:
iptables-save | moreh
--- Cut here ---
# Generated by iptables-save v1.4.0 on Tue Mar 24 12:52:40 2009
*mangle
:PREROUTING ACCEPT [192620:134838583]
:INPUT ACCEPT [7045:619830]
:FORWARD ACCEPT [185575:134218753]
:OUTPUT ACCEPT [2249:411273]
:POSTROUTING ACCEPT [187766:134595573]
COMMIT
# Completed on Tue Mar 24 12:52:40 2009
# Generated by iptables-save v1.4.0 on Tue Mar 24 12:52:40 2009
*nat
:PREROUTING ACCEPT [25861:1920682]
:POSTROUTING ACCEPT [608:40861]
:OUTPUT ACCEPT [751:61121]
-A POSTROUTING -s 10.0.0.0/16 -o eth0 -j MASQUERADE
COMMIT
# Completed on Tue Mar 24 12:52:40 2009
# Generated by iptables-save v1.4.0 on Tue Mar 24 12:52:40 2009
*filter
:INPUT DROP [6:815]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -s 127.0.0.1/32 -i eth0 -j DROP
-A INPUT -d 127.0.0.1/32 -i eth0 -j DROP
-A INPUT -s 172.16.0.0/12 -i eth0 -j DROP
-A INPUT -s 10.0.0.0/8 -i eth0 -j DROP
-A INPUT -s 127.0.0.1/32 -j ACCEPT
-A INPUT -d 127.0.0.1/32 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22222 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 127.0.0.1/32 -i eth0 -j DROP
-A FORWARD -d 127.0.0.1/32 -i eth0 -j DROP
-A FORWARD -s 172.16.0.0/12 -i eth0 -j DROP
-A FORWARD -s 10.0.0.0/8 -i eth0 -j DROP
-A FORWARD -o eth0 -p tcp -m tcp --sport 137:139 -j DROP
-A FORWARD -o eth0 -p udp -m udp --sport 137:139 -j DROP
-A FORWARD -s ! 10.0.0.0/16 -i eth1 -j DROP
-A FORWARD -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A FORWARD -p tcp -m tcp --dport 22222 -j ACCEPT
-A FORWARD -s 10.0.0.0/16 -o eth1 -p udp -m multiport --dports 53,67,68,123 -j A
CCEPT
-A FORWARD -d 10.0.0.0/16 -o eth1 -p udp -m multiport --sports 53,67,68,123 -j A
CCEPT
-A FORWARD -s 10.0.0.0/16 -o eth1 -p tcp -m multiport --dports 20,21,25,110,5190
,4889,5900,30000,30001,30002,30003,30004,30005 -j ACCEPT
-A FORWARD -d 10.0.0.0/16 -o eth1 -p tcp -m multiport --sports 20,21,25,110,5190
,4889,5900,30000,30001,30002,30003,30004,30005 -j ACCEPT
-A FORWARD -s 10.0.0.21/32 -o eth1 -p tcp -m multiport --dports 80,443 -j ACCEPT
-A FORWARD -d 10.0.0.21/32 -o eth1 -p tcp -m multiport --sports 80,443 -j ACCEPT
-A FORWARD -o eth0 -m state --state NEW -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o eth0 -p tcp -j DROP
-A FORWARD -o eth0 -p udp -j DROP
-A FORWARD -o eth1 -p tcp -j DROP
-A FORWARD -o eth1 -p udp -j DROP
-A OUTPUT -o eth0 -p tcp -m tcp --sport 137:139 -j DROP
-A OUTPUT -o eth0 -p udp -m udp --sport 137:139 -j DROP
-A OUTPUT -p tcp -m tcp --sport 22222 -j ACCEPT
-A OUTPUT -o eth0 -m state --state NEW -j ACCEPT
COMMIT
# Completed on Tue Mar 24 12:52:40 2009
--- Cut here ---
Если я коментирую строчки:
iptables -A FORWARD -m state --state NEW -o $INET -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
То всякая связь локальной сети с интерент обрывается.
Не могу понять, чего я не доделал в iptables.
Может сможете поделиться не только мыслями, но и работающими конфигами, чтобы я сравнил?