iptables PREROUTING/POSTROUTING nach --source kann nicht gefiltert werden

Post Reply
Message
Author
trinty_get_the_matrix

iptables PREROUTING/POSTROUTING nach --source kann nicht gefiltert werden

#1 Post by trinty_get_the_matrix »

HI,
Ich habe endlich erfolgreich ein Portforwarding hinbekommen.
Zwar für folgendes Szenario:(nur ein Testszenario)

Client (172.16.31.202) schickt eine Anfrage an "Router"(172.16.31.119) über http auf Port 8000 und wird über iptables an den Webserver(172.16.31.200) an Port 80 weitergeleitet.Und der Client bekommt ein nettes html-doc zurück.
so weit die Theorie.
Praktisch, hab ich das so verwirklicht:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 8000 -j DNAT --to-destination 172.16.31.200:80
echo 1 > /proc/sys/net/ipv4/ip_forward

und das funktioniert super.
Nun möchte ich jedoch diese Weiterleitung auf eine bestimmte IP oder ein bestimmtes Subnetz begrenzen. Hierfür bietet iptables ja das --source Argument.
OK.So sehen meine Versuche aus das ganze nur für 172.16.31.202 zu erlauben:

iptables -t nat -A PREROUTING -p tcp --source 172.16.31.202 --dport 8000 -j DNAT --to-destination 172.16.31.200:80

#oder
iptables -t nat POSTROUTING -p tcp -d 172.16.31.200 --dport 80 -j SNAT --to-source 172.16.31.202
#oder nur den Client beim Ausgang maskieren

iptables -t nat -A POSTROUTING -o eth0 -s 172.16.31.202 -j MASQUERADE

Ja, leider sind diese Versuche fehlgeschlagen, obwohl ich meinem Halbwissen nach finde daß es klappen sollte. :roll:
Ich habe echt großen Respekt vor denen die fitt in der Materie sind
Vielleicht kann ich ja im INPUT chain alle anderen IP's sperren, jedoch dachte ich dass dort nur Pakete die an lokale Prozesse gerichtet sind, behandelt werden. Aber iss jetzt iptables selbst auch so ein lokaler Prozess...........?
Also ich bin offensichtlich sehr verwirrt bei dieser Thematik.Ich hoffe mir kann jemand auf die Sprünge helfen, dafür wär ich echt dankbar und ich freu mich über jede Antwort!
Danke schon mal, dass du bis hier gelesen hast........... :wink:
eure trinity

Otto

#2 Post by Otto »

IP=172.16.31.202
# Was nicht erlaubt wird ist gesperrt
iptables -P FORWARD DROP
# Zum Client
iptables -A FORWARD -d $IP -j ACCEPT
# Vom Client
iptables -A FORWARD -s $IP -j ACCEPT

HTH

trinty_get_the_matrix

#3 Post by trinty_get_the_matrix »

Danke Otto, für deine Antwort!
MIt diesen zusätzlichen Einträgen könnt es auch klappen, hab das jetz nicht getestet.
Aber mit
#
iptables -t nat -A PREROUTING -p tcp -s $SOURCEIP --dport $PORT -j DNAT -- to-destination X.X.X.X:Y
#
($SOURCEIP = deine Quelladresse, $PORT = der Zielport,
x.x.x.x=Umgeleitet IP, y=Umgeleiteter Port)

funktionniert das super, der Fehler lag wohl bei mir.........Danke für das Interesse :wink:
Ein wirklich guter Link von dieser Seite hat mir sehr dabei geholfen...........
http://www.pl-forum.de/t_netzwerk/iptables.html
bis zum nächsten mal , denn eure
trinty_get_the_matrix

Post Reply