Portál AbcLinuxu, 11. května 2025 23:57

Dotaz: iptables pridani pravidel v cyklech

petka avatar 1.1.2010 20:13 petka | skóre: 25 | blog: heydax | Klasterec N/O
iptables pridani pravidel v cyklech
Přečteno: 190×
Odpovědět | Admin
Vylepsuju si svuj firewall s tim ze bych pridaval pravidla presmerovani portu v cyklech . Seznam presmerovanych adres bych mel ulozeny v txt souboru a pri kazdem spusteni firewallu by se natahl seznam presmerovanych adres . Priklad tri radku pro presmerovani jedne IP adresy z vnitrni site .
iptables -A INPUT -i eth0 -p TCP -s 0/0 -d 10.222.1.17 --dport 8088 -j ACCEPT                      
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8088 -j DNAT --to 192.168.0.4:80         
iptables -A FORWARD -p tcp -i eth0 -d 192.168.0.4 --dport 80 -j ACCEPT            
v cyklech bych to videl takhle
let a=0;                                                                                            
for serverport in ${seznamserverportu[@]} ; do
iptables -A INPUT -i eth0 -p TCP -s 0/0 -d 10.222.1.17 --dport $serverport -j ACCEPT                      
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport $serverport -j DNAT --to 192.168.0.4:80         
iptables -A FORWARD -p tcp -i eth0 -d 192.168.0.4 --dport 80 -j ACCEPT 
let a=$a+1;                                                                                                     
done;
dale mi pak zbyva vnitrni ip adresa IP a port na kterem mi sluzba bezi .

Da se v jednom cyklu zapsat tri promenne a ne jen jedna . A jak by mel mel vypada txt zaznam serveru ve kterem budou tri promene .
Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

petka avatar 2.1.2010 00:55 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: iptables pridani pravidel v cyklech
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak jsem si odpovedel sam , vsechno bez zadnych cyklu , ale za pomoci awk .
cat seznam.txt | awk '{print "iptables -A INPUT -i " $2 " -p TCP -s 0/0 -d " $4 " --dport " $6 " -j ACCEPT " }' | sh
cat seznam.txt | awk '{print "iptables -t nat -A PREROUTING -i " $2 " -p TCP --dport " $6 " -j DNAT --to " $8 ":" $10 }' | sh
cat seznam.txt | awk '{print "iptables -A FORWARD -p TCP -i " $2 " -d " $8 " --dport " $10 " -j ACCEPT " }' | sh             
A zde je formatovani seznamu , ktery se cte po radkach . Vypis prvniho radku .
1 eth0 wan_ip 10.222.1.17 wan_port 8088 lan_ip  192.168.0.4     lan_port
Cele to funguje perfektne .
Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
2.1.2010 02:20 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: iptables pridani pravidel v cyklech
Pokud už chcete použít awk (na tohle je zbytečný, to uděláte rovnou v shellu a bude to i přehlednější), bylo by praktičtější projít ten konfigurační soubor jen jednou a pro každý řádek vypsat všechny tři příkazy.
petka avatar 2.1.2010 02:53 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: iptables pridani pravidel v cyklech
O to jsem se snazil a vsak bez vysledku .
Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
Řešení 1× (petka (tazatel))
MMMMMMMMM avatar 2.1.2010 08:40 MMMMMMMMM | skóre: 44 | blog: unstable | Valašsko :-)
Rozbalit Rozbalit vše Re: iptables pridani pravidel v cyklech
možná by pro inspiraci pomohl tento thread http://www.abclinuxu.cz/poradna/linux/show/288773
petka avatar 2.1.2010 13:34 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: iptables pridani pravidel v cyklech
Tak tohle jsem presne potreboval jen jsem nevedel jak na to . Diky moc .
Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
2.1.2010 10:05 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: iptables pridani pravidel v cyklech
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na co tam je to $a?

Jinak, moje oblíbená metoda je toto:
#!/bin/sh

( sed '
s/#.*$//
s/^ *//
s/ *$//
/^$/d' | while read host port; do
        iptables ... $host ... $port ...
done ) <<END

# vnoreny konfiguracni soubor

# komentar
1.2.3.4 22
2.3.4.5 80

# dalsi komentar
192.168.0.0/24 8080

# konec
END

# pokracovani shell skriptu
In Ada the typical infinite loop would normally be terminated by detonation.

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.