Portál AbcLinuxu, 23. prosince 2025 06:17
#!/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 ACCEPT
Zdá sa, že to negunguje dokonale, kde mám chybu?
takže dodat pravidla pro eth0 a taktéž pro input a output neboť ten router taky určitě musí nějak komunikovat i když třeba jenom přes lo. (127.0.0.1).
PS. Podívej se na internetu je hromada firewallů a trochu to nastuduj a předělej.
-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 ACCEPT
Tak 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.