Portál AbcLinuxu, 15. července 2025 09:56
#!/bin/bash NET="192.168.1.0/24" IPT="/sbin/iptables" TCP="ssh,smtp,www,https,ftp,ftp-data,irc,5190,pop3,pop3s" $IPT -P FORWARD DROP $IPT -A FORWARD -m multiport -p tcp -i eth1 \ --dports $TCP -s $NET -j ACCEPT $IPT -A FORWARD -m multiport -p tcp -o eth1 \ --sports $TCP -d $NET -j ACCEPT $IPT -A FORWARD -m multiport -p udp -i eth1 \ --dports domain -j ACCEPTZdá sa, že to negunguje dokonale, kde mám chybu?
-i eth0 -o eth1
' resp. naopak. No, vlastně bych spíš psal spíš '-i $EXTIF -o $INTIF
'… :-)
$IPT -A FORWARD -m multiport -p tcp -o eth1 \ --sports $TCP -d $NET -j ACCEPTTak tohle je přímo ukázková chyba. Tím totiž nepovolujete odpovědi na své dotazy na vybrané služby ale jakoukoli TCP komunikaci do vnitřní sítě, použije-li útočník jako zdrojový některý z vyjmenovaných portů. To ovšem není nejmenší problém a vzhledem k tomu, že tam máte i neprivilegované porty, nepotřebuje k tomu ani práva roota na svém počítači.
Správnější by bylo místo toho použít
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPTTo by mohlo řešit i váš problém, který by mohl spočívat v tom, že sice povolujete DNS dotazy ven, ale už ne odpovědi na ně. Jestli to nepomůže, nezbyde než odtajnit informaci, co konkrétně znamená vaše "to negunguje dokonale".
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.