Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
bash Skript... mir fehlen Ideen.

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Sonstiges
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Max
Gast





BeitragVerfasst am: 27. Jul 2001 13:52   Titel: bash Skript... mir fehlen Ideen.

folgendes Problem:
Ich will verschiedene Variablen einlesen und über eine Schleife diese an ein Programm weitergeben.

Beispiel
A1=127.0.0.1
A2=111
A3=0
A4=1023:

B1=192.168.0.1
B2=25
B3=172.168.0.10
B4=22

Wie bekomme ich eine Schleife hin, die sagen wir mal, ipchains im ersten Durchlauf A1-A4 übergibt, im 2. Durchlauf B1-B4
usw...

sollte dann so in etwa wirken :
ipchains -A input -i eth1 -s $A1 $A2 -d $A3 $A4 -j ACCEPT
im nächsten Durchlauf dann das gleich mit $B1 statt $A1 usw...

Intention bin zu faul fünzig mal quasi dieselbe Zeile in zu hacken, bzw finde ich das sehr unelegant.
Fällt da jemanden spontan was zu ein?

Thanx Max
PS. Sorry, falls das das falsche Forum ist....
 

Jochen
Gast





BeitragVerfasst am: 27. Jul 2001 14:28   Titel: Re: bash Skript... mir fehlen Ideen.

code:

grep -v '^ *#' meine_firewall_regeln | while read SRCIP SRCPORT DESTIP DESTPORT ; do
ipchains -A input -i eth1 -s $SRCIP $SRCPORT -d $DESTIP $DESTPORT -j ACCEPT
done



In meine_firewall_regeln stehen pro Zeile die vier Werte wie beim read-Kommando angegeben. Zeilen mit führenden "#" (dürfen zuerst auch noch Blanks stehen) werden ignoriert. Man will ja Kommentare in so ein File stecken.

War das das, was Du wolltest?

Jochen
 

Max
Gast





BeitragVerfasst am: 27. Jul 2001 15:05   Titel: Re: bash Skript... mir fehlen Ideen.

danke dir Jochen.
Es ist zumindesten eine Idee ;-)
hmmm...
Bei mir steckt in _meinen_ Firewallregeln noch allerhand anderer Kram.
z.B. IP-Nummern, Devices usw.
Ich habe es als skript angelegt und es wird von der eigenltichen Firewall zu Beginn aufgerufen:

. regeln.conf

Ich will natürlich ungern noch eine Datei pflegen...
Aber ich denke mal in der Pipe noch ein grep rein der explizit die gewünschten Regeln liefert, dürfte es bringen.

Gruss MAx
 

Max
Gast





BeitragVerfasst am: 27. Jul 2001 15:27   Titel: Re: bash Skript... mir fehlen Ideen.

nochmals Danke, denn es klappt wunderbar!
Lasse die entsprechenden Zeilen mit #@ anfangen und greppe nur diese aus.
So wird auch direkt der Rest aussen vor gelassen. (Ausser natürlich irgendeine Zeile fängt reinzufällig mit #@ an)

Das nenne ich elegant ;-)
Gruss Max
 

Jochen
Gast





BeitragVerfasst am: 27. Jul 2001 15:31   Titel: Re: bash Skript... mir fehlen Ideen.

Dann mach's halt als Here-Skript (und awk):
code:

awk '
$0 !~ /^ *#/ {
cmd = "ipchains -A input -i eth1 -s " $1 " " $2 " -d " $3 " " $4 " -j ACCEPT"
system(cmd)
} ' <<EOF
127.0.0.1 111 0 1023
192.168.0.1 25 172.168.0.10 22
EOF

exit 0



Natürlich kannst Du anstelle von 4 Werten auch noch das Interface und ACCESS/REJECT/DENY mit dazunehmen. Dann musst Du das Kommando nur mit 6 Variablen statt mit 4 zusammensetzen.

Jochen
 

Max
Gast





BeitragVerfasst am: 27. Jul 2001 16:30   Titel: Re: bash Skript... mir fehlen Ideen.

*g* awk, voll Lustig.

Da habe ich ja überhaupt keine Ahnung von. Bis jetzt habe ich mich immer vor gedrückt.
Aber es klappt so wunderbar.
mit grep "^#@" /etc/regeln.conf | while read n a b c d e ; do
ipchains.....
done
klappt es wunderbar $n enthält dann #@ und im Rest stecken die Werte. Habe es noch um das Protokoll erweitert. Bei mir enthalten fast alle Regeln ACCEPT weil sonst sowieso alles verboten ist.
Interface brauche ich auch nicht.
Ich habe eine ipchains Kette entworfen die mir für diesen Fall dann gleich auch den Verkehr für rein und raus regelt.
So muss ich nur noch in regeln.conf angeben welche IPs,Port und davon Ziel und Quelle und jetzt noch Protokoll.
So bleiben die Regeln an sich im Regel Skript, und der Syntax in der Firewall.
Gruss Max
 

hugenay
Gast





BeitragVerfasst am: 27. Jul 2001 16:48   Titel: Re: bash Skript... mir fehlen Ideen.

hi max,
du koenntest ja auch deine config datei folgendermassen gestalten:

ALLOW=SMTP
192.168.0.1 0:65535 172.168.0.10 25

usw.; sed sagst du dann, er soll nach ALLOW suchen, und die darauffolgende zeile (ueber die while schleife) dann an ipchains weitergeben. Nicht schlecht daran ist, dass du dann ueber die jeweils vorhergehende zeile mittels ALLOW=POP, ALLOW=SSH etc. deine config datei schoen uebersichtlich bleibt
code:

#!/bin/sh
sed -ne '/ALLOW/{n
p
}' firewall.conf | while read SRCIP SRCPORT DESTIP DESTPORT
do
ipchains -A input -i eth1 -s $SRCIP $SRCPORT -d $DESTIP $DESTPORT -j ACCEPT
done

 

Max
Gast





BeitragVerfasst am: 28. Jul 2001 21:39   Titel: Re: bash Skript... mir fehlen Ideen.

jetzt auch noch sed???
awk und sed??
Ne lass mal.
Danke Hugh.
Aber mir ist immer noch am wohlsten wenn ich weiss was abgeht.
Und um mich jetzt noch in sed und awk reinzuarbeiten fehlt mir die Zeit....
Mein Problem habe ich gelösst und bin recht zufrieden...
Dafür habe ich schon wieder andere, was auch sonst...
Muss ne Software vorgaukeln Debian sei RedHat....
Gruss und Dank an alle!
Schönes, heisses Wochenende noch.
Max
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Sonstiges Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy