iptables - Problem

Das Forum für den Linux-Pinguin - auch andere Unix-Derivate (*BSD, (Open)Solaris, Apple's Darwin / MacOS X, ...) sind hier willkommen!
Forumsregeln
Das Forum für den Linux-Pinguin - auch andere Unix-Derivate (*BSD, (Open)Solaris, Apple's Darwin / MacOS X, ...) sind hier willkommen!

iptables - Problem

Beitragvon Fidus » So 13 Aug, 2006 15:57

Hallo! Bin gerade dabei meine Firewall mittls iptables zu konfigurieren.
Ich hab mir auch einige HowTo's zu diesem Thema runtergeladen.

Ich hab meine Regeln in die Datei ip-up.local, welche beim Verbindungsaufbau aufgerufen wird, eingebaut.

Jedoch machen mir einige Regeln Probleme und ich hoffe nun das ihr mir weiter helfen könnt:

1. Problem:

# icmp handling - ICMP-Pakete werden erlaubt, bis auf type 5 (redirect)
$IPTABLES -N icmp_allow
$IPTABLES -N icmp_reject
$IPTABLES -A INPUT -p icmp --icmp-type ! 5 -j icmp_allow
$IPTABLES -A INPUT -i $DEV_INET -p icmp --icmp-type 5 -m limit -j icmp_reject
$IPTABLES -A icmp_allow -j ACCEPT
$IPTABLES -A icmp_reject -m limit -j LOG --log-prefix "icmp_rej "
$IPTABLES -A icmp_reject -j REJECT --reject-with icmp-host-unreachable


Wenn ich mir die Fehlermeldung in /var/log/messages so ansehe dann wirft die Zeile

$IPTABLES -A INPUT -p icmp --icmp-type ! 5 -j icmp_allow

einen Fehler : "Couldn't load target 'icmp-allow': /usr/lib/iptables/libipt_icmp_allow.so"

Ich verwende die Distri SuSE 10.1. Kann ich die lib irgendwie nach installieren oder schaut der aufruf unter SuSE 10.1 anders aus?

2. Problem

# Ersteinmal alles löschen, was generell kaputt ist oder
# Angriffsversuche darstellen könnte.
$IPTABLES -N invalid
$IPTABLES -A INPUT -m state --state INVALID -i ! $DEV_LOOP -j invalid
$IPTABLES -A FORWARD -m state --state INVALID -j invalid
$IPTABLES -A INPUT -m unclean -i ! $DEV_LOOP -j invalid
$IPTABLES -A invalid -m limit -j LOG --log-prefix "invalid "
$IPTABLES -A invalid -j REJECT


Hier verursacht die Zeile
$IPTABLES -A invalid -m limit -j LOG --log-prefix "invalid "
einen Unknown error 4294967295

Hat a einer vielleicht eine Ahnung?

Ich danke euch im voraus
Fidus
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 29
Registriert: Fr 11 Aug, 2006 19:44

Beitragvon zid » Mo 14 Aug, 2006 13:38

libipt_icmp_allow.so gibt meines wissens nicht, für icmp matches ist
libipt_icmp.so zuständig. sieht so aus, daß iptables irgendwie icmp_allow als implementiertes
target aufzufassen scheint und versucht, den namen der entsprechenden bibliothek zu
rekonstruieren.
probe: ersetze den string "icmp_allow" durch "my_chain1". kommt dann
die fehlermeldung:"Couldn't load target 'my_chain1': /usr/lib/iptables/libipt_my_chain1.so"?
wenn nicht, ist alles o.k.
sonst fällt mir dazu folgendes ein:
1. stelle sicher, daß alle module
geladen/eincompiliert sind (ipt_conntrack, ipt_limit, ipt_MASQUERADE, ipt_TCPMSS, ipt_TOS, ipt_state,
ipt_LOG, ip6t_LOG, ip6t_REJECT, ip6table_mangle, ipt_REJECT, iptable_mangle, iptable_filter, ip_nat_ftp,
iptable_nat, ip_conntrack_ftp, ip_conntrack, ip_tables, ip6table_filter, ip6_tables, ipv6)
u. ipfwadmin u. ipchains nicht geladen sind. prüfe kernel parms i. /proc/sys/net/ipv4/*.

2. definiere erst die user chains und dann die jumps (hat einmal bei e. ähnlichen prob geholfen, weiß aber
bis heute nicht warum):
$IPTABLES -N icmp_allow
$IPTABLES -A icmp_allow -j ACCEPT
$IPTABLES -N icmp_reject
$IPTABLES -A icmp_reject -m limit -j LOG --log-prefix "icmp_rej "
$IPTABLES -A icmp_reject -j REJECT --reject-with icmp-host-unreachable
$IPTABLES -A INPUT -p icmp --icmp-type ! 5 -j icmp_allow
$IPTABLES -A INPUT -i $DEV_INET -p icmp --icmp-type 5 -m limit -j icmp_reject

3. ersetze die icmp_allow chain durch 1 accept (wäre sowieso d. bessere/schnellere lösung, nur 1 jump)
$IPTABLES -A INPUT -p icmp --icmp-type ! 5 -j ACCEPT
statt:
$IPTABLES -N icmp_allow
$IPTABLES -A icmp_allow -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type ! 5 -j icmp_allow

zur 2. fehlermeldung:
1. möglicherweise macht d. unclean match probs. wurde ursprünglich a. kompatibilität z. kern 2.2.
eingeführt, wird angeblich nicht mehr gewartet u. sollte nicht verwendet werden. mehr probs als nutzen.
2. wie oben pkt. 2
3. sollte zwar nicht sein: name d. kette "invalid", "INVALID" ist e. schlüsselwort f. state match.
kette unbenennen "invalid" -> "invalid_packets".

>EDIT:
hab' deine regeln (so, wie du sie formuliert hast) geladen ->
1 fehlermeldung: "iptables: No chain/target/match by that name"
regel m. unclean match deaktiviert -> alles o.k., regeln kommen richtig.
zid
Board-User Level 3
Board-User Level 3
 
Beiträge: 1080
Registriert: Fr 23 Jun, 2006 09:08
Wohnort: wien

Beitragvon Fidus » Mo 14 Aug, 2006 15:52

Danke für die wertvollen Tipps. Werde sie zu Hause gleich ausprobieren.
Melde mich wieder!
Fidus
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 29
Registriert: Fr 11 Aug, 2006 19:44

Beitragvon Fidus » Di 15 Aug, 2006 15:12

Deine Tipps waren die Lösung, danke noch einmal.

Jetzt hab ich aber noch eine Frage: Wenn ich mit pptp 10.0.0.138 meine Verbindung teste dann bekomm ich folgendes Listing:

using interface ppp0
using channgel 2
Connect: ppp0<--> /dev/pts/0
sent
.
.
CHAP authentication succeeded
.
.
.
Script /etc/ppp/ip-up finished (pid 3154), status = 0x0

Und dann passiert gor nix mehr. ich komm weder zurück zur Shell noch passiert sonst irgendwas. Erst mit CTRL + C wird die Verbindung beendet?
Ist dieses Verhalten normal?
Fidus
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 29
Registriert: Fr 11 Aug, 2006 19:44

Beitragvon TroubleWolf » Di 15 Aug, 2006 17:49

Hallo Fidus.

Ich galube das das programm das du mit pptp 10.0.0.38 startest normalerweise im hintergrund lauft und es sich deswegen nicht selbsttätig abschaltet wenn es durchlauft. Auch weiters glaub ich nicht das mit CTRL + C die Verbindung dann unterbrochen ist. Poste hier mal ein kleinen teil einer anleitung:

Code: Alles auswählen
2.7 Verbindung testen

Testen des Verbindungsaufbau:

     pptp 10.0.0.38
   

Verbindung wieder abbauen

     killall pppd
     killall pptp
   

Wenn die Verbindung steht, sollte ifconfig etwa folgendes ausgeben:

     ppp0      Link encap:Point-to-Point Protocol 
               inet addr:10.66.8.39  P-t-P:172.19.90.132  Mask:255.255.255.255
               UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
               RX packets:346 errors:0 dropped:0 overruns:0 frame:0
               TX packets:352 errors:0 dropped:0 overruns:0 carrier:0
               collisions:0 txqueuelen:10
   



Hoffe das hilft dir einwenig.
TroubleWolf
Neu im Board
Neu im Board
 
Beiträge: 16
Registriert: So 23 Jul, 2006 18:35

Beitragvon lordpeng » Di 15 Aug, 2006 17:58

>Ist dieses Verhalten normal?
ja, versuchs mal mit pptp 10.0.0.138 & damit geht der pptp client in den hintergrund, wenn du das allerdings in einem terminal fenster machst bleibt der prozess nur solange offen, soang das terminal geöffnet bleibt, d.h. wenn du das terminal schliesst beendest du auch den prozess der darin läuft alternativ kannst nohup pptp 10.0.0.138 & aufrufen, durch nohup ignoriert pptp das hangup beim schliessen des terminals, die verbindung trennst du dann mit kill -9 `pidof pptp pppd`

mehr details finden sich in sogut wie jedem linux/unix buch und in den manpages zu den befehlen

btw. wenn pptp händisch gekillt wird, muss übrigens auch das dazugehörige pid file in /var/run gelöscht werden

hth
lordpeng
Moderator
Moderator
 
Beiträge: 10183
Registriert: Mo 23 Jun, 2003 22:45

Beitragvon zid » Di 15 Aug, 2006 22:20

hallo fidus,
freut mich, daß deine fw. läuft. könntest du bitte posten, was jetzt wirklich los war, wollen ja
schließlich auch was lernen. danke.
zu deiner frage oben- ich versteh' genau bahnhof.
wenn ich diesen faden richtig interpretiere, dann hast du einen aon su zugang, d.h. wahrscheinlich st546
modem mit der default su konfig.
dein os ist suse 10.1., du verwendest also smppd zur einwahl? und der pppd öffnet den tunnel über die
pty option?
was willst du genau testen? funktioniert dein inet-zugang nicht? deine geposteten logs sehen genauso
aus wie der start von pppd von terminal mit nodetach option (soweit man da überhaupt etwas sehen kann, es fehlt das
"wirre zeug" dazwischen).
wenn du fragen hast, dann bitte vollständige debug-logs posten, also auch das "w... z..." :-), i.
zusammenhang m. ppp/pptp bedeutet das, daß du den pppd m. d. "debug" u. "dump" option starten
(d. optionen kannst du i. deinem pppd-konfig. file, wahrscheinlich /etc/ppp/options, einfach eintragen
oder, falls schon vorhanden, durch entfernen d. kommentarzeichen aktivieren) und dann d. logs posten
solltest. m. "debug" wird d. gesamte verbindungsaufbau (lcp, ipcp, chap) sehr geneu geloggt, mit "dump"
loggt d. pppd vor d. einwählen d. aktiven optionen incl. quelle, was i. fall v. suse/smpppd nicht unwichtig
ist, da d. smpppd nicht alle optionen aus d. ppp-options file nimmt ( d. wichtigsten optionen sind schon fest
i. smpppd implementiert, damit nicht irgendwelche schlaumeier durch "geschickte" wahl d. optionen d.
einwahlvorgang gefährden).
damit komme ich zurück zu meiner frage- was genau ist deine frage bzw. dein problem?
wie wählst du dich normalerweise ein- ifup, cinternet, kinternet?
lg zid


p.s.: du hast i. d. oben erwähnten thread behauptet: "Du kannst mir eines glauben, auch wenn ich diese Zahlen
Buchstaben Kombination gepostet hätte, wäre daraus nicht ersichtlich gewesen um welchen Fehler es sich handelt."
das stimmt so nicht:
" LCP terminated by peer " -> die hauptursachen f. diese meldung sind:
1. pppd läuft ohne "noauth" option od. "noauth" als privileged option in non-privi. file, d.h. d. provider muß sich authentifizieren, i. schnitt sind d. provs. nicht einverstanden damit.
2. pppd läuft ohne "ipcp-accept-local", d.h. d. pppd ist nicht bereit die public-ip d. provs. zu akzeptieren,
i. schnitt sind d. provs. nicht einverstanden damit.
3. passwd, user-id, chap-secrets nicht o.k., i. schnitt sind d. provs. nicht einverstanden damit.
4. b. d. übertragung von passwd./user-id ist was schief gelaufen (indiz dafür: d. verbindungsaufbau dauert sehr lange:
1. versuch geht schief wegen übertragungsfehler, 2. versuch nach hausnummer 10 sec. usw.).*>EDIT

"anon warn ["wirres Zeug"]: short read (-1): Input/output error
anon warn ["wirres Zeug"]: pppd may have shutdown, see pppd log": diese meldung bedeutet(soweit mir bekannt), daß der ppp link schon down ist, der pptp-call-manager aber noch läuft (wird aber, wenn alles o.k., gekillt).
wenn d. call-manager nicht gekillt werden würde, könntest du dich nach e. verbindungsabbruch nicht mehr einwählen.

*>EDIT: oops, hab' wieder mal was vergessen:
wenn, wie i. deinem fall, die auth. schief geht, so kriegst du im debug modus eine nachricht "failed to authenticate ourselves...".
fehler b. d. eigenen auth. sind aber auch i. normalen modus a. exit status = 19 zu erkennen, fehlende noauth opt. wird durch exit status 11 angezeigt. du kannst übrigens mit siguser1 -> pppd dynamisch zw. debug u. norm. modus switchen (details s. man pppd)
zid
Board-User Level 3
Board-User Level 3
 
Beiträge: 1080
Registriert: Fr 23 Jun, 2006 09:08
Wohnort: wien

Beitragvon Fidus » Mi 16 Aug, 2006 11:55

zid hat geschrieben:freut mich, daß deine fw. läuft. könntest du bitte posten, was jetzt wirklich los war, wollen ja
schließlich auch was lernen.


Es war so wie du es beschrieben hast. Die Regel "invalid" ist nur zulässig, da es anscheinend ein reserviertes Wort ist. Und dieses unclean hab ich einfach weggelassen.

zid hat geschrieben: wenn du fragen hast, dann bitte vollständige debug-logs posten


Jawohl werde ich in Zukunft beachten, wobei ich noch immer der Meinung bin, daß es nichts gebracht hätte, denn wichtiger ist was hinter den eckigen Klammern stand (anon warn ["wirres Zeug"]: short read (-1): Input/output error ), aber egal.

Ich baue meine Verbindung mittels pptp 10.0.0.138 auf. Es klappt auch alles, die Authentifizierung klappt, das script ip-up wird abgearbeitet usw. Anschließend erscheint aber nicht mehr die Eingabeaufforderung

LinuxRechner~ #_

Erst wenn ich mit CTRL C die Verbindung unterbreche erscheint sie wieder.
Das heißt ich kann solange die Verbindung aufgebaut ist nicht weiterarbeiten.

Erst wenn ich die inet-Verbindung mittels pptp 10.0.0.138 & starte
gelange ich nach dem Verbindungsaufbau mit einem Tastendruck zurück
zu meiner Eingabeaufforderung

LinuxRechner~ #_

Verstehst du jetzt was ich meine?
Fidus
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 29
Registriert: Fr 11 Aug, 2006 19:44

Beitragvon zid » Mi 16 Aug, 2006 14:09

danke für d. infos. welche version v. iptables hast du?
zu pptp: wie schon gesagt, ich glaube, daß du d. "nodetach" option v. pppd aktiviert hast, wenn du sie deaktivierst,
müßte das ganze auch ohne "&" funktionieren. aber zugegeben 1 zusätzlicher tastendruck ist zu verkraften :-).
zid
Board-User Level 3
Board-User Level 3
 
Beiträge: 1080
Registriert: Fr 23 Jun, 2006 09:08
Wohnort: wien

Beitragvon Fidus » Mi 16 Aug, 2006 19:40

zid hat geschrieben:danke für d. infos. welche version v. iptables hast du?


ich verwende die Version 1.3.5 von iptables

zid hat geschrieben: ... ich glaube, daß du d. "nodetach" option v. pppd aktiviert hast ...


du hattest recht!

Jetzt hab ich aber noch ein Problem. Hab mir ein Script geschrieben und es in den runlevel 3 eingebunden. Das Script befindet sich auf /etc/init.d und ein Link in /etc/init.d/rc3.d und /usr/sbin. Soweit so gut. Händisch läßt sich das Script auch starten nur automatisch wird es nicht aufgerufen. Den Name im rc3.d Verzeichnis hab ich laut Konvention vergeben z.B. S13inet. Ich kapier nicht warum es nicht aufgerufen wird...
Fidus
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 29
Registriert: Fr 11 Aug, 2006 19:44

Beitragvon zid » Mi 16 Aug, 2006 20:52

hast du das skript ausführbar gemacht (o.k., blöde frage, bringt mich aber hinreichend oft zur weißglut)?
kill link auch eingefügt? was spuckt chkconfig --list aus? wenn es nicht aufscheint, wird wahrscheinlich der header
nicht o.k. sein. generell ist es vorteilhafter startskr. m. chkconfig/insserv einzufügen, sodaß d. system über d. header d.
startreihung vornehmen kann. ist auch gleichzeitig eine gute kontrolle, denn chkconfig beschwert sich, wenn irgendwas
nicht stimmt.
zid
Board-User Level 3
Board-User Level 3
 
Beiträge: 1080
Registriert: Fr 23 Jun, 2006 09:08
Wohnort: wien

Beitragvon Fidus » Mi 16 Aug, 2006 21:09

Aja danke, das wars. Hab das Script mittels chkconfig -a eingebunden und jetzt fruchtet es.
Fidus
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 29
Registriert: Fr 11 Aug, 2006 19:44


Zurück zu LINUX & UNIX-DERIVATE

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 107 Gäste