PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Firewalling - Verweis auf eigene Regelkette



xstevex22
27.03.03, 14:29
Hi!
Bin nicht so ganz im Thema, aber scheinbar ist es nicht möglich, folgende Anweisung auszuführen:

iptables -t nat -A PREROUTING -p TCP --dport 80 -j my_chain

Dann kommt die error message:

iptables v1.2.5: Couldn't load target `my_chain':/lib/iptables/libipt_my_chain.so: cannot open shared object file: No such file or directory

Gibt es da eine andere Möglichkeit. Ich habe Daten, die über das Gateway ins Internet wandern. Diese muss ich in der PREROUTING chain behandeln. Ich möchte Pakete mittels --set-mark markieren. Allerdings nur, wenn diese

- über Interface eth0 eintreffen
- nicht als Destination 10.0.0.0/8 haben
- nicht als Destination 192.168.100.0/24 haben

Dazu will ich dann eine eigene chain erstellen und die einzelnen Sachen durchtesten. Bei Nichterfüllen würde ich dann einfach mit einem -j RETURN die Kette verlassen, bevor am Ende die Pakete markiert werden (d.h., wenn alle Punkte erfüllt sind).

Es ist doch nicht möglich, mehrere Source Angaben (-s 10.0.0.0/8 192.168.100.0/24) zu machen, oder ?

Jinto
27.03.03, 14:40
Tja die Kette sollte halt schon existieren.

Lies bitte mal das Packetfilter/Netfilter HOWTO: http://netfilter.samba.org

xstevex22
27.03.03, 14:48
Hi!
Die Kette existiert. Wird vorher mittels iptables -N my_chain kreiert.
Ändere ich die Anweisung ab in

iptables -A INPUT -p TCP --dport 80 -j my_chain

funktioniert alles. Also muss es an der Kombination -t nat -A PREROUTING liegen.

HangLoose
27.03.03, 15:37
moin moin


Ich habe Daten, die über das Gateway ins Internet wandern. Diese muss ich in der PREROUTING chain behandeln

verstehe ich das richtig, das es sich dabei um *ausgehende* pakete handelt? wenn ja, laufen diese aber nicht durch die PREROUTING CHAIN, sondern durch die POSTROUTING CHAIN



Es ist doch nicht möglich, mehrere Source Angaben (-s 10.0.0.0/8 192.168.100.0/24) zu machen, oder

doch müßte eigentlich gehen, wenn du sie in einer variable definierst

spezial="10.0.0.0/8 192.168.100.0/24"

und dann so abfragen

for spezial in $spezial ; do

iptables -A OUTPUT -s $spezial ......

done


Gruß HL

xstevex22
27.03.03, 15:59
Original geschrieben von HangLoose
moin moin



verstehe ich das richtig, das es sich dabei um *ausgehende* pakete handelt? wenn ja, laufen diese aber nicht durch die PREROUTING CHAIN, sondern durch die POSTROUTING CHAIN

Gruß HL

Die Pakete kommen an eth0 an (also PREROUTING). POSTROUTING geht natürlich auch, da die Pakete den Host ja auch wieder verlassen.
Bei den -s 10.0.0.0/8 usw. meinte ich mehrere Hosts/Netze in einer Anweisung:

iptables -A INPUT -p TCP -s 10.0.0.0(8 192.168.100.0/24 ...

Jinto
27.03.03, 16:05
nur mal so neben bei, die NAT Tabelle ist nicht zum filter/verändern vorgesehen.

xstevex22
27.03.03, 16:23
Hi!
Und wo setzt man am besten diese Regeln ??

HangLoose
27.03.03, 16:52
hi

so ganz klar ist mir auch noch nicht, wie dein netz aussieht und was du genau vorhast. die prerouting chain kennt imho nur das target -j DNAT, von daher kann deine regel

iptables -t nat -A PREROUTING -p TCP --dport 80 -j my_chain

nicht funktionieren. ich hab mich mit userdefinierten regeln noch nicht großartig beschäftigt. aber du könntest mal folgendes versuchen.

for spezial in $spezial ; do

iptables -A FORWARD -p tcp -i eth0 -s $spezial --dport 80 -j my_chain

done

damit werden pakete die am interface eth0 *auflaufen*, von deinen definierten ip's kommen und als zielport port 80 haben, an die userdefinierte regel my_chain *geschickt*

iptables -N my_chain

iptables -t nat -A PREROUTING -p TCP --dport 80 -j DNAT --to-destination <ip>
iptables -A my_chain -p tcp -d <ip> -j ACCEPT

aber wie gesagt, ich bin mir nicht sicher ob DNAT in einer userdefinierten regel möglich ist

Gruß HL

xstevex22
27.03.03, 19:43
Hi!
Ich überprüfe das ganze morgen nochmals und berichte dann von meinen Änderungen. Was ich machen will ist im Endeffekt ein Einsatz von iproute2 (deshalb die Markierung spezieller Pakete). Funktioniert auch soweit ganz gut, nutze 2 DSL Leitungen, eine für den internen Traffic aus dem Lan, die andere für Zugriffe aus der DMZ & extern.
Mein Problem ist "nur", dass keine Webserver mehr in der DMZ aus unserem internen LAN erreicht werden (wenn ich die öffentliche IP aufrufe), weil diese Pakete ebenfalls markiert werden und nicht wieder zurück in die DMZ wandern, sondern ebenfalls über die zweite Leitung gelangen.