Portál AbcLinuxu, 10. května 2025 09:39
Dejte sem komletní výpis pravidel firewallu, jinak můžem jenom věštit...
#vymazani vsech pravidel pro INPUT a OUTPUT
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
#
#vychozi zahozeni vseho
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#
#vytvoreni NAT
iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -j SNAT --to-source=10.7.128.17
#
#
#FORWARD
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT #http
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 21 -j ACCEPT #ftp
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 22 -j ACCEPT #ssh
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 53 -j ACCEPT #DNS tcp
iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -j ACCEPT #DNS udp
iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 53 -j ACCEPT #DNS tcp
iptables -A FORWARD -i eth1 -o eth0 -p udp --dport 53 -j ACCEPT #DNS udp
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 5190 -j ACCEPT #gaim tcp
iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 5190 -j ACCEPT #gaim udp
iptables -A FORWARD -p tcp --dport 111 -j ACCEPT
iptables -A FORWARD -p tcp --dport 113 -j ACCEPT
iptables -A FORWARD -p tcp --dport 445 -j ACCEPT
iptables -A FORWARD -p tcp --dport 665 -j ACCEPT
#
#
#INPUT
iptables -A INPUT -i eth0 -p udp --dport 53 -j ACCEPT #DNS udp
iptables -A INPUT -i eth0 -p tcp --dport 53 -j ACCEPT #DNS tcp
iptables -A INPUT -i eth0 -p tcp --dport 445 -j ACCEPT #samba
iptables -A INPUT -i eth0 -p tcp --dport 139 -j ACCEPT #samba
iptables -A INPUT -i eth0 -p udp --dport 139 -j ACCEPT #samba udp
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT #ssh
iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT #ssh na eth1
#
#
#
#OUTPUT
#
iptables -A OUTPUT -o eth0 -p udp --sport 53 -j ACCEPT #DNS udp
iptables -A OUTPUT -o eth0 -p tcp --sport 53 -j ACCEPT #DNS tcp
iptables -A OUTPUT -o eth0 -p tcp --sport 445 -j ACCEPT #samba
iptables -A OUTPUT -o eth0 -p tcp --sport 139 -j ACCEPT #samba
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -j ACCEPT #ssh
iptables -A OUTPUT -o eth1 -p tcp --sport 22 -j ACCEPT #ssh na eth1
Problém je minimálně v tom, že předpokládáte, že pro DNS dotazy klienti (Tedy PC ve vnitřní síti) používají, stejně jako server port 53, což je samozřejmě nesmysl (obvykle to jsou nějaké vysoké porty). Pravidla
iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 53 -j ACCEPT #DNS tcp iptables -A FORWARD -i eth1 -o eth0 -p udp --dport 53 -j ACCEPT #DNS udp
tedy nedávají smysl (vše za předpokladu, že eth1
je rozhraní do internetu*) a tudíž vám na stanicích nefunguje překlad adres. Buď zaměňte --dport
za --sport
(což je ale z bezpečnostního hlediska pěkná blbost...), nebo zkuste využít možností stavového filtru a použijte obligátní:
iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT;
* ve vašem případě se samozřejmě jedná o privátní síť (10.7.128.17)
Ještě jsem zapomněl dodat, že služby, který chcete ze stanic využívat
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT #http iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 21 -j ACCEPT #ftp iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 22 -j ACCEPT #ssh
Pouštíte taky jenom jednim směrem (ven). Výše uvedenej příklad s ESTABLISHED, RELATED nicméně řeší i toto.
eth1
je do moji vnitrni site(192.168.x.x) a eth0
je do vnejsi site(taky z privatniho rpzsahu 10.x.x.x)
Na moje příspěvky výše to nicméně nemá moc zásadní vliv
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.