Archiv verlassen und diese Seite im Standarddesign anzeigen : IPTables und Symbolische Namen
Hi!
Was mach ich falsch ?
Kann mir jemand sagen warum das nicht funzt ?
Möchte die einzelnen Hosts dann nochmal Gruppieren.
Warum erkennt das Script nur $HOST1 und die anderen als" Bad argument '172.16.0.2` also alles hinter Host1.
Hier die wichtigen Zeilen:
-----------------------------------------------
#! /bin/bash
IPTABLES=/sbin/iptables
HOST1=172.16.0.1
HOST2=172.16.0.2
HOST3=172.16.0.3
HOST4=172.16.0.4
HOST5=172.16.0.5
ALL_HOSTS="$HOST1 $HOST2 $HOST3 $HOST4 $HOST5"
${IPTABLES} -t nat -A POSTROUTING -s $ALL_HOST -d 0/0 -o $INTERNET -j SNAT --to-source 120.12.12.12
----------------------------------------------------------------
Hoffe mir kann jemand helfen
Gruss
Fraegle
Original geschrieben von fraegle
HOST1=172.16.0.1
HOST2=172.16.0.2
HOST3=172.16.0.3
HOST4=172.16.0.4
HOST5=172.16.0.5
ALL_HOSTS="$HOST1 $HOST2 $HOST3 $HOST4 $HOST5"
${IPTABLES} -t nat -A POSTROUTING -s $ALL_HOST -d 0/0 -o $INTERNET -j SNAT --to-source 120.12.12.12
das klappt nicht, weil der resultierende befehl (nach expansion von $ALL_HOSTS) dann so aussieht:
${IPTABLES} -t nat -A POSTROUTING -s 172.16.0.1 172.16.0.2 172.16.0.3 172.16.0.4 172.16.0.5 -d 0/0 -o $INTERNET -j SNAT --to-source 120.12.12.12
wie man leicht sieht, ist das keine gültige syntax mehr.
baus in eine schleife ein:
for HOST in $ALL_HOSTS; do
${IPTABLES} -t nat -A POSTROUTING -s $HOST -d 0/0 -o $INTERNET -j SNAT --
to-source 120.12.12.12
done
damit wird pro host in $ALL_HOSTS eine iptables-regel generiert.
-j
Danke für die Schnelle Antwort.
Aber gibts nicht so was wie bei der tcsh
$HOSTS = ( $HOST1 $HOST2 ... )
?
Gibts keine andere Möglichkeit für eine Gruppierung ?
Fraegle
hi
ich schätze mal mit dieser lösung, schieß ich am ziel vorbei, oder? ;)
set host=172.16.0.0/24
Gruß HangLoose
Hi!
Jo, will ja nicht alle zulassen, sondern gesondert gruppieren um das Script lesbarer zu machen.
Fraegle
Original geschrieben von fraegle
Danke für die Schnelle Antwort.
Aber gibts nicht so was wie bei der tcsh
$HOSTS = ( $HOST1 $HOST2 ... )
?
Gibts keine andere Möglichkeit für eine Gruppierung ?
Fraegle
das ist keine frage der shell sondern eine frage der iptables-parameter!
und iptables akzeptiert nunmal nur -s ip/mask. d.h. du kannst gruppieren soviel du willst, wenn du iptables mit den daten dann fütterst, musst du dich nach iptables richten.
-j
hi
wäre es nicht möglich, die host's einzeln zu listen
HOST1=172.16.0.1
HOST2=172.16.0.2
HOST3=172.16.0.3
HOST4=172.16.0.4
HOST5=172.16.0.5
und wenn du alle brauchst, das folgendermaßen löst?
ALL_HOSTS=172.16.0.0/24
Gruß HangLoose
Hi!
Nein , das will ich ja nicht. Dann dürften ja zum Beispiel HOST6- HOST99 auch das was die ersten fünf dürfen.
Ich muss einzelne Rechte für die unterschiedlichen Hostgruppen aufsetzen.
Fraegle
hi
nächster vorschlag, so schnell geb ich nicht auf ;)
HOST1=172.16.0.1
HOST2=172.16.0.2
HOST3=172.16.0.3
HOST4=172.16.0.4
HOST5=172.16.0.5
All_HOSTS=(172.16.0.1 172.16.0.2 172.16.0.3 172.16.0.4 172.16.0.5)
Original geschrieben von fraegle
Hi!
Nein , das will ich ja nicht. Dann dürften ja zum Beispiel HOST6- HOST99 auch das was die ersten fünf dürfen.
Ich muss einzelne Rechte für die unterschiedlichen Hostgruppen aufsetzen.
Fraegle
aehm, du meinst sicherlich HOST6-HOST254.
ich sehe dein problem nicht. erstelle deine gruppen:
DIE_DUERFEN="goodhost1 goodhost2 goodhost3"
DIE_DUERFEN_NICHT="badhost1 badhost2 badhost3"
und dann pro gruppe eine schleife die die regeln setzt. wo ist das problem?
-j
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.