PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : iptables Problem ( Couldn't load match)



keiner_1
06.10.02, 22:57
Hallo zusammen

ich habe mir ein iptables script gebastelt und will es nun implementieren...

hier der Error:

# bash iptables
iptables v1.2.5: Couldn't load match `--state':/lib/iptables/libipt_--state.so: cannot open shared object file: No such file or directory

Try `iptables -h' or 'iptables --help' for more information.

habe die Lib schon in ld.so.conf eingetragen und ldconfig laufen lassen

greetz
adme

Belkira
06.10.02, 23:42
# bash iptables
iptables v1.2.5: Couldn't load match `--state':/lib/iptables/libipt_--state.so: cannot open shared object file: No such file or directory

Wurde die Fehlermeldung kopiert oder abgetippt? Der rot hervorgehobene Teil ist falsch. Die Userspace Extension heißt libipt_state.so und ist übrigens keine Library. Wenn bei Dir statt "state" die Zeichenkette "--state" eingesetzt wird, ist möglicherweise etwas kaputtcompiliert.

keiner_1
06.10.02, 23:55
danke für die Antwort

ich habe sie per Cut and Past ins Forum kopiert (nicht abgetippselt)

was würdest du mir vorschlagen um mein Script doch noch zum laufen zu brigen??

greetz
adme

Belkira
07.10.02, 00:17
Ich kenn Dein Skript nicht. Verwendest Du zufällig -m --state statt -m state?

Damit kann ich den Fehler reproduzieren. ;)

HangLoose
07.10.02, 00:28
hi

hast du zufällig den *zustand* hinter --state klein geschrieben, statt NEW => new?

Gruß HangLoose

keiner_1
07.10.02, 00:38
Sali zusammen

Ich bin jetzt müde gehe ins Bett... so habe ich es geschrieben

iptables -A OUTPUT -o eth0 -p tcp -s localhost --sport 1024:65535 --dport 21 -m state --state NEW -j ACCEPT

danke für eure Hilfe hoffe das es dann ohne doppelt geht!

greetz
adme

Thomas
07.10.02, 07:51
Hu adme!

Deine Codezeile ist völlig korrekt.
Hast du Support für Statefull-Filtering und für Match in den Kernel einkompiliert bzw. als Modul übersetzt?

So, muss jetzt zur Arbeit düsen, bis heute Abend...


Thomas.

HangLoose
07.10.02, 10:39
moin moin

@adme

deine iptables-anweisung läuft bei mir auch ohne fehlermeldung.

wie tthomas schon sagte, könnte es am fehlenden modul liegen. schau mal in deiner kernelconfig nach, ob unter ip: netfilter configuration das connection tracking als modul im kernel eingebunden ist.


Gruß HangLoose

keiner_1
07.10.02, 11:13
danke

werde ich heute abend machen!

der Kernel ist Generic von Red Hat, habe das System frisch installiert

greetz
adme

Belkira
07.10.02, 12:06
Ich halte an meinen beiden Postings fest, insbesondere am zweiten. Mal das gesamte Skript auf so einen Tippfehler prüfen.



hast du zufällig den *zustand* hinter --state klein geschrieben, statt NEW => new?
Das wäre egal!

HangLoose
07.10.02, 12:35
Das wäre egal!

jo hast recht, hab ich wohl mit den targets und chains verwechselt.

keiner_1
07.10.02, 17:45
>>Ich halte an meinen beiden Postings fest, insbesondere am zweiten. Mal das gesamte Skript auf so einen Tippfehler prüfen.

du hast recht gehabt! jetzt nimmt iptables das script an, nur leider funktionierts noch nicht :(

ich werde heute abende noch ein bisschen basteln

greetz
adme

Belkira
07.10.02, 21:34
Ich tippe mal bei den portöffnenden Regeln auf -s localhost, was gleich -s 127.0.0.1 ist und damit nur Verbindungen erlaubt, die 127.0.0.1 als Absender-IP-Adresse enthalten. Kann mir nicht vorstellen, daß das der Fall ist, und ohne IP Masquerading (in der NAT PREROUTING Chain) kämst Du dann ohnehin nicht aus.

HangLoose
07.10.02, 21:42
hi

bin selbst noch newbie, also nicht gleich schlagen *grins*


bist du sicher das -s localhost in der form erlaubt ist? wird an der stelle nicht eine ip oder ein netzwerk erwartet?

du könntest natürlich eine variable localhost anlegen. die müßtest du am anfang des scripts aber erst deklarieren, oder wie das heißt ;).

set localhost = 192.168.99.1

und dann im script mit -s $localhost aufrufen


beim surfen ist zum beispiel die input-chain auskommentiert.

iptables -A OUTPUT -p TCP --sport 1024:65535 --dport http -j ACCEPT
iptables -A INPUT -p TCP --dport 1024:65535 --sport http ! --syn -j ACCEPT
iptables -A INPUT -p TCP --dport http --syn -j DROP


damit sollte das surfen eigentlich möglich sein


Gruß HangLoose

keiner_1
07.10.02, 22:04
@HangLoose + Belkira
vielen herzlichen(!) Dank, jetzt funzt sshd, http, dns (als client) die anderen Sachen habe ich noch nicht ausprobiert

ich war wohl zu blöd das selbst herauzufinden :(

greetz
adme

HangLoose
07.10.02, 22:13
hi

sag jetzt nicht, ich hab zur 'ner problemlösung bei iptables beigetragen, ich fass es nicht *grins*

übrigens kannst du folgenden eintrag 1024:65535 auch mit ner variablen definieren =>

set p_high = 1024:65535 #spart eventuell etwas tiparbeit


aufruf im script dann mit z.b. --sport $p_high


Gruß HangLoose

Belkira
07.10.02, 22:15
bist du sicher das -s localhost in der form erlaubt ist? wird an der stelle nicht eine ip oder ein netzwerk erwartet?
Ja, localhost ist aber ein gültiger Hostname, der sich nach 127.0.0.1 auflöst. Eingabe von numerischen IP Adressen ist nicht zwingend erforderlich. Können auch durchaus Hostnamen verwendet werden.

HangLoose
07.10.02, 22:19
hi belkira


Ja, localhost ist aber ein gültiger Hostname, der sich nach 127.0.0.1 auflöst. Eingabe von numerischen IP Adressen ist nicht zwingend erforderlich. Können auch durchaus Hostnamen verwendet werden.

*plums* wieder auf dem boden gelandet ;)


danke für den hinweis.

@adme

wie du siehst, hat dein thread nicht nur dir was gebracht :).


Gruß HangLoose

keiner_1
07.10.02, 22:52
>set p_high = 1024:65535 #spart eventuell etwas tiparbeit

ja ich habe drum mit cut and paste gearbeitet, sicherlich werde ich das Script jetzt noch etwas ausarbeiten und weiter ports öffnen!

die Basics in Shell Programmierung habe ich schon intus :)

greetz
adme