Re: authentication problems

From: Joerg Wunsch <j(at)uriah.heep.sax.de>
Date: Sun, 20 Jan 2002 14:41:04 +0100

As Wittig, Christoph wrote:

> #!/bin/sh
> ispppcontrol isp0
> myauthproto=chap

(Ich hoffe, die stehen jeweils auf einer Zeile. ;-)

> ifconfig isp0 0.0.0.0 0.0.0.1 netmask 0xffffffff link1
> debug

debug hast Du. Was sagt denn der Debug-Output bei CHAP?

> PS: Ist die verstuemmelte Anzeige nach 'pap failure' nur
> ein Schoenheitsfehler oder deuted das auf tiefergehende
> Ungereimtheiten in meinem System hin?

Zumindest ist sie verwunderlich, wenn tcpdump selbst dort einen String
stehen hatte. Bei PAP habe ich das noch nicht gesehen, bei CHAP sieht
die Meldung normalerweise vernünftig aus (d. h. ich sehe den String
der Gegenseite).

> Die entsprechende
> Stelle in i4b_ispppsubr.c habe ich nicht ganz verstanden:
> (...)
> case PAP_NAK:
> UNTIMEOUT(sppp_pap_my_TO, (void *)sp, sp->pap_my_to_ch);
> if (debug) {
> log(LOG_INFO, SPP_FMT "pap failure",
> SPP_ARGS(ifp));

SPP_FMT und SPP_ARGS() sind Makros, die die Unterschiede zwischen den
*BSDs verbergen helfen. Ansonsten wird damit erstmal die Log-Zeile
begonnen.

> name_len = *((char *)h);

Zeiger h zeigt auf einen Zeichenpuffer mit den Paketdaten. Per
RFC soll nach dem Fehlercode die Länge der Fehlermeldung stehen.

> if (len > 5 && name_len) {

Wenn die Paketlänge überhaupt lang genug für eine Fehlermeldung war
(diese ist optional) und die übermittelte Länge der Fehlermeldung
größer 0 ist...

> log(-1, ": ");
> sppp_print_string((char*)(h+1), name_len);

...dann füge dem Log die Fehlermeldung hinzu, die auf Zeichenposition
h+1 steht (h+0 war das Längenbyte). sppp_print_string() fügt dem Log
einen String der angegebenen Länge hinzu; PPP-Strings sind i. Allg.
nicht \0-terminiert, daher ist diese Funktion nützlich.

> }
> log(-1, "\n");

Danach dem Log noch ein Newline anhängen.

> } else
> (...)
> Kann man hier nicht statt 'name_len' auch wie in den
> entsprechenden Teil fuer die chap-authentication 'len -4'
> als Laenge in sppp_print_string() angeben, dann stimmt

Das ist verwunderlich, warum ich für beide Protokolle verschiedene
Varianten gewählt habe. ;-)

> jedenfalls die Ausgabe (zumindest bei mir)?

Das ist noch seltensamer. Falls der Längenparameter falsch war,
sollte sich doch der Inhalt des Strings selbst damit nicht ändern,
d. h. die Anzeige sollte nur kürzer oder länger werden. Das verstehe
ich gerade nicht. Vielleicht debugge ich es ja mal irgendwann...

-- 
cheers, J"org               .-.-.   --... ...--   -.. .  DL8DTL
http://www.sax.de/~joerg/                        NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sun 20 Jan 2002 - 19:13:20 CET

search this site