Portál AbcLinuxu, 18. července 2025 12:18


Dotaz: Nahrazení IP v IPTABLES scriptu + kontrola

21.10.2008 23:42 beginer666 | skóre: 9
Nahrazení IP v IPTABLES scriptu + kontrola
Přečteno: 328×
Odpovědět | Admin
Zdravim (: Tak už jsem tu po dlouhé době zase. Sice už jsem delší dobu nic nepotřeboval, ale mám zase jeden špek >.<

Je to v celku jednoduché a už jsem se dostal docela daleko ale pořád mi chybí koncovka.

Tak o co jde:

Potřebuji nahradit IP adresu v IPTABLES scriptu včetně kontroli jestli už neni nastavena správně.
Takže první krok(pořád vim jak):
Zjištění aktuální IP
ifconfig eth1|head -2|tail -1|cut -d: -f2|cut -d\  -f1 > /var/test/vystup1
Druhý krok(pořád vim jak):
Zjištění aktuálně nastavené IP v IPTABLES scriptu
cat /etc/init.d/fw | grep "INET_IP=" | awk -F \" '{print $2}' > /var/test/vystup2
Třetí krok(teď to přinde):
Porovnání jestli oba výstupy souhlasí a pokud ne tak proveď akci
No a stim už nevim jak dál >.<
Respektive dokážu porovnat vystup1 s vystup2
Ale uz nejsem schopnej, pokud to nesouhlasí, nahradit "aktuálně přidělenou IP" "IP ve scriptu".
Zkoušel jsem:
sed 's/"cat soubor_1 | grep "INET_IP=" | awk -F \" '{print $2}'"/"ifconfig eth1|head -2|tail -1|cut -d: -f2|cut -d\  -f1"/g' < /etc/init.d/fw
...ale nejde to... ): ...

chyba: sed: -e výraz #1, znak 52: unterminated `s' command
Zkousel jsem i :

pc:~# sed 's/"cat /var/test/vystup2"/"cat /var/test/vystup1"/g' < /etc/init.d/fw
sed: -e výraz #1, znak 13: unknown option to `s'
pc:~# sed 's/cat /var/test/vystup2/cat /var/test/vystup1/g' < /etc/init.d/fw
sed: -e výraz #1, znak 12: unknown option to `s'
Může mi někdo poradit kde jsem zase zapomněl ňákou tečku apod.
Případně pokud máte nějakej lepší nápad jak "cat vystup2" nahradit "cat vystup1" v "/etc/init.d/fw" budu moc rád. 
Už se stim trápim 5 hodin (holt to někomu myslí pomalu)
DÍKY
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

22.10.2008 12:10 beginer666 | skóre: 9
Rozbalit Rozbalit vše Re: Nahrazení IP v IPTABLES scriptu + kontrola
Odpovědět | | Sbalit | Link | Blokovat | Admin
To tady neni žádný GURU který koukne a vidí ? ):
--------------------------------------------------------
Snad to nejni uplně trapnej dotaz... /cry
rADOn avatar 22.10.2008 12:59 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Nahrazení IP v IPTABLES scriptu + kontrola
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jestli se snazis menit nastaveni iptables kvuliva tomu ze se ti meni adresa rozhrani, tak vez ze na to maji iptables lepsi prostredky. Kdyz podrobneji popises o co se snazis, treba se najde mene krkolomny zpusob. Jestli vubec kraci o iptables, pacz bych rekl ze menis jen nastaveni rozhrani a to je neco uplne jineho.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
22.10.2008 13:15 beginer666 | skóre: 9
Rozbalit Rozbalit vše Re: Nahrazení IP v IPTABLES scriptu + kontrola
No asi máš pravdu. Mění se mi adresa na rozhraní eth1. Vymyslel jsem tenhle způsbob. Napadá tě neco lepšího?..
22.10.2008 13:25 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Nahrazení IP v IPTABLES scriptu + kontrola
Třeba to že se vykašlat na IP a v pravidlu použít rozhraní eth1 :-) místo IP.

A pak ať se IP mění jak chce.....
22.10.2008 13:37 prOm3TheuS | skóre: 18 | Praha
Rozbalit Rozbalit vše Ale fuj!
Odpovědět | | Sbalit | Link | Blokovat | Admin
ifconfig - nechápu, proč se tenhle hnus ještě do distribucí dává?
Co zkusit tohle?
INET_IP=`ip -o -4 a s dev eth1 | sed 's/.*inet\ \([0-9.]*\)\/.*/\1/'`
Rozhodně to vypadá líp, než to strkat přes 4 trubky ;-)

Jinak jak už někdo napsal, iptables si s dynamickou ip adresou dokáží poradit.
Your distro, your rules!
22.10.2008 13:52 beginer666 | skóre: 9
Rozbalit Rozbalit vše Re: Ale fuj!
Ok díky, ale když se mi změní adresa v průběhu běhu systému? ..FW obvykle nerestartuju dokud něco neměnim...
22.10.2008 15:31 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Ale fuj!
Tak jak jsem říkal nepoužívej IP ale použij rozhraní (eth1), prostě si přepiš pravidla a místo zdrojové, nebo cílové IP použij zdrojové nebo cílové rozhraní.

Co z toho nechápeš ? Pak je ti jedno jak ti dhcp mění IP na tom eth1.

Prostě místo -s 192.168.0.1 nebo -d 192.168.0.1 použij -i eth1 nebo -o eth1.

22.10.2008 22:46 beginer666 | skóre: 9
Rozbalit Rozbalit vše Re: Ale fuj!
Mě šlo o to že když použiju tohle "INET_IP=`ip -o -4 a s dev eth1 | sed 's/.*inet\ \([0-9.]*\)\/.*/\1/'`" tak se mi IP adresa ve scriptu stejně nezmění dokud nerestartuju FW_script.

Všecko jinak chápu akorát jsem to chtěl vymyslet složitě, když to jde samozřejmě i jednoduše ((:

22.10.2008 22:45 beginer666 | skóre: 9
Rozbalit Rozbalit vše Re: Ale fuj!
V jakym balíčku je obsažený o tvoje "ip" jak uvádíš v "INET_IP=`ip -o -4 a s dev eth1 | sed 's/.*inet\ \([0-9.]*\)\/.*/\1/'`"

Díky (;

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.