Portál AbcLinuxu, 12. května 2025 08:24

Dotaz: iptables -> nastavení fw s redirectem, povolením specifických částí a drop všeho ostatního

16.6.2023 10:19 kotum
iptables -> nastavení fw s redirectem, povolením specifických částí a drop všeho ostatního
Přečteno: 509×
Odpovědět | Admin
Už nějakou dobu se peru s nastavením firewallu, imho by to mělo být vcelku jednoduché, ale nedaří se mi. Zjednodušeně mám tenhle skript (reálně větší). Jde však o to, že když ho obvykle takto nastavím, tak buď funguje nějaká komunikace, která by neměla jít (typicky odchozí) a nebo naopak není možné se připojit na ty porty 8070 / 443 kde je to přesměrování. Zkoušel jsem to i převést na nft, ale chovalo se to imho hůře. Je možné, že tam mám nějakou zásadní botu..
#!/bin/sh
#maybe flush all tables?
iptables --flush;
ip6tables --flush;

#allow local
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#DNS
iptables -A OUTPUT -p udp -m udp -d 10.0.3.1 --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp -m udp -d 1.1.1.1 --dport 53 -j ACCEPT

#access http server
iptables -A INPUT -p tcp --dport 8070 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

#redirect to port
iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-port 8070;

#ssh allow incomming
iptables -A INPUT -p tcp -s 10.0.3.1 --dport 22 -j ACCEPT

#rest drop connections to ssh
iptables -A INPUT -p tcp --dport 22 -j DROP

#allow connections from specific ips and to specific and ports
iptables -A INPUT -p tcp -s 10.0.3.5 --dport 2000:3000 -j ACCEPT
iptables -A OUTPUT -p tcp -d 10.0.3.5 --dport 2000:3000 -j ACCEPT
iptables -A OUTPUT -p tcp -d 10.0.3.5 --dport 443 -j ACCEPT

#drop all other connections to these ports
iptables -A INPUT -p tcp --dport 2000:3000 -j DROP
ip6tables -A INPUT -p tcp --dport 2000:3000 -j DROP

#allow other communication -> apt and updates
iptables -A OUTPUT -p tcp -d 185.125.190.39 --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -d 185.125.190.39 --dport 443 -j ACCEPT
ip6tables -A OUTPUT -p tcp -d 2620:2d:4000:1::19 --dport 80 -j ACCEPT
ip6tables -A OUTPUT -p tcp -d 2620:2d:4000:1::19 --dport 443 -j ACCEPT

#allow sending email
iptables -A OUTPUT -p tcp -d 142.250.0.0/15 --dport 587 -j ACCEPT

#alow communication with NFS storage
iptables -A OUTPUT -d 10.0.3.6 -j ACCEPT

#drop rest
iptables -A INPUT -p tcp -j DROP
iptables -A OUTPUT -p tcp -j DROP
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.6.2023 11:38 X
Rozbalit Rozbalit vše Re: iptables -> nastavení fw s redirectem, povolením specifických částí a drop všeho ostatního
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jen to ukaz cele, protoze jen tady je tolik veci blbe, ze nevim kde zacit. Dve chyby a jeste na:
iptables -A OUTPUT -p udp -m udp -d 10.0.3.1 --dport 53 -j ACCEPT iptables -A OUTPUT -p udp -m udp -d 1.1.1.1 --dport 53 -j ACCEPT
Proc? Tohle nedava smysl. Stavovy pravidla se davaji vzdy prvni a pravidla se prochaze sekvencne.
iptables -A INPUT -p tcp --dport 8070 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
Kdyz delas presmerovani tak na co to potom povolujes?? Prerouting pravidla maji prednost.
iptables -A INPUT -p tcp --dport 443 -j ACCEPT ...

iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-port 8070;
Zbytecne, nema zadny vyznam. Kdyz to stejne ve finale zariznes.
iptables -A INPUT -p tcp --dport 22 -j DROP
Zbycerne, ve finale stejne zahodis.
iptables -A INPUT -p tcp --dport 2000:3000 -j DROP ip6tables -A INPUT -p tcp --dport 2000:3000 -j DROP
Michat do sebe ipv6 a ipv4 pravidla? Proc? Kde je zbytek ipv6?
ip6tables -A OUTPUT -p tcp -d 2620:2d:4000:1::19 --dport 80 -j ACCEPT ip6tables -A OUTPUT -p tcp -d 2620:2d:4000:1::19 --dport 443 -j ACCEPT
Kde mas definovane porty, kdyz to ma byt NFS?
iptables -A OUTPUT -d 10.0.3.6 -j ACCEPT
Polovina pravidel k nicemu a naopak ta co maji byt chybi. Spatne poradi. PStana logika. Zadna politika. Hnus.
16.6.2023 14:26 kotum
Rozbalit Rozbalit vše Re: iptables -> nastavení fw s redirectem, povolením specifických částí a drop všeho ostatního
Dobře díky za info. Zkusím odstranit ty zbytečné pravidla na DROP. Zkontroluji to pořadí u toho přesměrování a to povolení.

ipv6, tam je minimálně (původně jsem měl v nft).

Napsal jste, že tam nějaká pravidla chybí a nějaké je špatně, můžete prosím rozvést?
16.6.2023 16:50 X
Rozbalit Rozbalit vše Re: iptables -> nastavení fw s redirectem, povolením specifických částí a drop všeho ostatního
Klidne muzu pokracovat. Nemas definou politiku a pouzivas ACCEPT, takze vsechno co explicitne nezakazes povolujes. Napriklad libovolne UDP spojeni. Sledovani spojeni mas jen pro INPUT. Neresis vube ICMP provoz. Rozsah pro gmail ma smyslenou masku. Pokud mas pravidel takto malo je prehlednejsi kdyz to rozdelis podle smeru a protokolu. Mimochodem, pouzivas stare neuaktulizovane ubuntu a stare prasive repo. Az to cele prepises tak to sem dej opravene a ucesane znova CELE a muzeme se bavit.
AraxoN avatar 16.6.2023 12:10 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: iptables -> nastavení fw s redirectem, povolením specifických částí a drop všeho ostatního
Odpovědět | | Sbalit | Link | Blokovat | Admin
Všetky tie pravidlá na DROP sú tam IMHO zbytočné. Namiesto toho by DROP mala byť východzia politika a pravidlá by mali špecifikovať len to, čo je povolené.

Nikde tam napríklad nemáš pravidlo na DROP udp, icmp, či hocijaký z ďalších exotickejších IP packetov. Je ľahké na niečo zabudnúť, práve to rieši východzia politika DROP.
16.6.2023 14:21 kotum
Rozbalit Rozbalit vše Re: iptables -> nastavení fw s redirectem, povolením specifických částí a drop všeho ostatního
Díky za info ohledně ostatních protokolů. Upravím ten poslední drop. Co se týče těch předchozích drop, jsou tam kvůli tomu, že jsou to oddělené části (povolení & zákaz zároveň). Ohledně výchozí DROP politiky, můj názor na ní je, že je to vcelku nebezpečné (hlavně bez fyzického přístupu). Viděl jsem několik lidí co díky tomu museli dělat hodně problematické věci...
2.7.2023 17:59 kotum
Rozbalit Rozbalit vše Re: iptables -> nastavení fw s redirectem, povolením specifických částí a drop všeho ostatního
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak udělal jsem pár úprav a zjistil jsem, že ten základní problém je už pouze v tom redirectu / posledním pravdilu pro DROP
#clean
iptables --flush;
ip6tables --flush;
iptables -t nat --flush;
#redirect
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8070;
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
#allow ports
iptables -A INPUT -p tcp --dport 8070 -j ACCEPT;
iptables -A INPUT -p tcp --dport 443 -j ACCEPT;
#drop all 
#jak toto pravidlo opravit, aby se vše zahodilo, ale zůstal ten redirect?
iptables -A OUTPUT -j DROP
Jakmile aktivuji to poslední pravidlo, tak ten redirect přestane fungovat.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.