iptables -> bestimmte ip's sperren

Gast #2225235
Lesenswert?
• ▲
▼
tach,

ich steh irgendwie gerade auf dem schlauch.
habe ein forwarding auf einen internen webserver:

$IPT -t nat -A PREROUTING -i $DEV_INET -p tcp --sport $UNPRIVPORTS -d 
$IP_INET --dport 80 -j DNAT --to-destination 192.168.0.1
$IPT -A FORWARD -i $DEV_INET -o $DEV_LAN -p tcp --sport $UNPRIVPORTS -d 
192.168.0.1 --dport 80 -m state --state NEW,ESTABLISH

so und nun möchte ich aber bestimmte IP's davon bzw. generell 
ausschliessen. ein simples:
$IPT -A INPUT -s $BADIP -j DROP
funktioniert jedoch nicht. Da habe ich noch mal in das iptables 
blockdiagramm geschaut und nun bin ich verwirt.

prerouting------>forward------->postrouting
            |              |
            |              |
          input->local->output

weia da jemand was ;-)  ?
Gast #2225501
Lesenswert?
• ▲
▼
nee, funktioniert auch nicht. kann auch nicht, da mit prerouting schon 
entschieden ist was mit dem paket passiert -> es erreicht die 
INPUT-chain gar nicht erst. <-laut handbuch gewinnt der erste treffer. 
d.h. auch, das das 'FORWARD' das  '-I INPUT' nicht aufheben kann...
Gast #2225511
Lesenswert?
• ▲
▼
mike schrieb:
> nee, funktioniert auch nicht. kann auch nicht, da mit prerouting schon
> entschieden ist was mit dem paket passiert -> es erreicht die
> INPUT-chain gar nicht erst.
nein, jedes externe Packet muss durch die Input chain. Es ist unabhängig 
ob es im NAT teil schon bearbeitet wurden ist.

Zum testen kann du ja einfach mal

iptable -I INPUT -j DROP machen - dann geht nichts mehr von aussen.
Gast #2226505
Lesenswert?
• ▲
▼
peter du hast unrecht aber mich auf etwas gebracht.
ohne es bis jetzt getestet zu haben, aber ich glaub ich weis die lösung:

das paket kommt an und landet in der prerouting chain. dort wird 
festgestellt, das es in ein anderes netz geht. und da liegt der hund 
begraben! es muss lauten:

$IPT -A FORWARD -s $BADIP -j DROP
$IPT -A FORWARD -i $DEV_INET -o $DEV_LAN -p tcp --sport $UNPRIVPORTS -d
192.168.0.1 --dport 80 -m state --state NEW,ESTABLISH

@PETER:
..deswegen erreicht es die INPUT chain nicht.
mein blockdiagramm ist vielleicht etwas unglücklich, dieses ist besser:
http://1.bp.blogspot.com/_VN8zHqq8Ns8/SLepX1xMFkI/AAAAAAAABPM/V7-gN94R70U/s1600-h/fire_tables.png



werde ich gleich mal testen!
Gast #2226509
Lesenswert?
• ▲
▼
mike schrieb:
> @PETER:
> ..deswegen erreicht es die INPUT chain nicht.
> mein blockdiagramm ist vielleicht etwas unglücklich, dieses ist besser:

stimmt, ich war noch beim vorgänger von iptables. Bei iptables muss ein 
externen Packet nur durch FORWARD.

sorry

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.