From nobody@FreeBSD.org  Thu Jun 27 02:52:36 2002
Return-Path: <nobody@FreeBSD.org>
Received: from www.freebsd.org (www.FreeBSD.org [216.136.204.117])
	by hub.freebsd.org (Postfix) with ESMTP id 01F2437B406
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 27 Jun 2002 02:52:36 -0700 (PDT)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.12.4/8.12.4) with ESMTP id g5R9qYOT069442
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 27 Jun 2002 02:52:34 -0700 (PDT)
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.12.4/8.12.4/Submit) id g5R9qYT6069441;
	Thu, 27 Jun 2002 02:52:34 -0700 (PDT)
Message-Id: <200206270952.g5R9qYT6069441@www.freebsd.org>
Date: Thu, 27 Jun 2002 02:52:34 -0700 (PDT)
From: Reto Trachsel <reto.trachsel@netmodule.com>
To: freebsd-gnats-submit@FreeBSD.org
Subject: Userland PPP - CHAP and PAP are swaped
X-Send-Pr-Version: www-1.0

>Number:         39918
>Category:       bin
>Synopsis:       Userland PPP - CHAP and PAP are swaped
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    brian
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jun 27 03:00:11 PDT 2002
>Closed-Date:    Tue Jun 29 08:20:03 GMT 2004
>Last-Modified:  Tue Jun 29 08:20:03 GMT 2004
>Originator:     Reto Trachsel
>Release:        FreeBSD 4.5-STABLE
>Organization:
Netmodule AG
>Environment:
FreeBSD jona.pacific 4.5-STABLE FreeBSD 4.5-STABLE #1: Wed Apr  3 11:36:12 CEST 2002     root@jona.pacific:/usr/src/sys/compile/JONA  i386

>Description:
Connection with userland ppp ( /usr/sbin/ppp ) to a PPP Server. The LCP Options are set as:
-----
ppp ON jona> show lcp
deflink: LCP [Initial]
 his side: MRU 1500, ACCMAP ffffffff, PROTOCOMP off, ACFCOMP off,
           MAGIC 00000000, MRRU 0, SHORTSEQ off, REJECT 0000
 my  side: MRU 1500, ACCMAP 00000000, PROTOCOMP on, ACFCOMP on,
           MAGIC 1445eca3, MRRU 0, SHORTSEQ off, REJECT 0000

 Defaults: MRU = any (max 2048), MTU = any (max 2048), ACCMAP = 00000000
           LQR period = 30s, Open Mode = active (delay 1s)
           FSM retry = 3s, max 5 Config REQs, 5 Term REQs
    Ident:

 Negotiation:
           ACFCOMP =   disabled & denied
           CHAP =      disabled & denied
           CHAP80 =    disabled & denied
           LANMan =    disabled & denied
           CHAP81 =    disabled & denied
           LQR =       disabled & denied
           PAP =       disabled & accepted
           PROTOCOMP = disabled & denied
-----
-> Only PAP is enabled. 

If i try to connect to the PPP Server, the log of the userland ppp shows, that the pap option was rejected. The channel can't build up.

On the PPP Server (an Embedded System with serveral log an diagnostic monitors, the options are false! The userland ppp send a chap option instead ofthe pap option! The same behavour the other way.

If the PPP Server provide PAP/CHAP negotiation, the userland ppp log shows the LCP PAP Authentification, but in effect, on the PPP Link the CHAP Auth proto is used (MD5 hasches!).
>How-To-Repeat:
Try to connect to a CHAP only PPP-Server with the userland ppp (LCP Option: Only CHAP activated) -> NO connection available.

Try to connect to a PAP only PPP-Server with ths userland ppp (LCP Option: Only PAP activated) -> NO connection available.
>Fix:
Set the correct options in the userland ppp (deny/accept || enable|disable)      
>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->feedback 
State-Changed-By: kris 
State-Changed-When: Sat Jul 12 23:48:31 PDT 2003 
State-Changed-Why:  
Does this problem persist with a later release? 

http://www.freebsd.org/cgi/query-pr.cgi?pr=39918 
Responsible-Changed-From-To: freebsd-bugs->brian 
Responsible-Changed-By: kris 
Responsible-Changed-When: Sat Jul 12 23:48:52 PDT 2003 
Responsible-Changed-Why:  
Assign to ppp maintainer 

http://www.freebsd.org/cgi/query-pr.cgi?pr=39918 

From: kosmos <abowhill@blarg.net>
To: freebsd-gnats-submit@FreeBSD.org, reto.trachsel@netmodule.com
Cc:  
Subject: Re: bin/39918: Userland PPP - CHAP and PAP are swaped
Date: Sat, 22 Nov 2003 02:00:26 -0800

 I am not the original submitter, but I can attest to some of the
 behavior he cites. If only PAP is enabled, (using "enable pap" in
 ppp.conf) it won't get past the authentication phase. If "enable pap" is
 removed from ppp.conf, everything works just fine.
 
 At first, I thought it was a problem with the provider. But on a support
 call they said radius was authenticating me properly.
 
 This behavior started after I updated OS sources and made world on Nov.
 19 (I'm sorry, I can't tell you what sources changed. I do know some
 user PPP sources were updated from CVSup output).
 
 I no longer have a phone line, (got rid of it and switched to cable)
 so I am not going to much help if you need someone to test.
 
 So, fwiw, here is a log of one such failed session:
 
 (No error messages are produced)
 
 == begin log ===
 Nov 19 21:21:12 kosmos ppp[4142]: Phase: Using interface: tun0 
 Nov 19 21:21:12 kosmos ppp[4142]: Phase: deflink: Created in closed state 
 Nov 19 21:21:12 kosmos ppp[4142]: tun0: Command: default: ident user-ppp VERSION (built COMPILATIONDATE) 
 Nov 19 21:21:12 kosmos ppp[4142]: tun0: Command: default: set device /dev/cuaa0 
 Nov 19 21:21:12 kosmos ppp[4142]: tun0: Command: default: set speed 115200 
 Nov 19 21:21:12 kosmos ppp[4142]: tun0: Command: default: set timeout 180 
 Nov 19 21:21:12 kosmos ppp[4142]: tun0: Command: default: set server +3000 ******** 
 Nov 19 21:21:12 kosmos ppp[4142]: tun0: Phase: Listening at port 3000. 
 Nov 19 21:21:12 kosmos ppp[4142]: tun0: Command: default: enable lqr dns 
 Nov 19 21:21:12 kosmos ppp[4142]: tun0: Command: default: accept lqr dns 
 Nov 19 21:21:12 kosmos ppp[4142]: tun0: Command: default: disable ipv6cp vj pred1 deflate 
 Nov 19 21:21:12 kosmos ppp[4142]: tun0: Command: default: deny vj pred1 deflate 
 Nov 19 21:21:12 kosmos ppp[4142]: tun0: Command: default: nat enable yes 
 Nov 19 21:21:12 kosmos ppp[4142]: tun0: Command: default: nat unregistered_only yes 
 Nov 19 21:21:12 kosmos ppp[4142]: tun0: Command: default: nat deny_incoming yes 
 Nov 19 21:21:12 kosmos ppp[4142]: tun0: Command: default: set redial random.random 4 
 Nov 19 21:21:12 kosmos ppp[4142]: tun0: Command: default: set reconnect 3 5 
 Nov 19 21:21:12 kosmos ppp[4142]: tun0: Command: default: enable pap 
 Nov 19 21:21:12 kosmos ppp[4142]: tun0: Command: default: set dial ABORT BUSY ABORT NO\sCARRIER TIMEOUT 5 "" AT OK-ATZ-OK AT&F&C1&D2&K3V1W1E0X4 OK-ATZ-OK \dATDT\T TIMEOUT 40 CONNECT 
 Nov 19 21:21:12 kosmos ppp[4142]: tun0: Phase: PPP Started (interactive mode). 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Command: /dev/tty: dial blarg 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Command: default: allow users kosmos 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Command: blarg: set phone 206-219-4888|425-738-4888|425-818-4888 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Command: blarg: set authname abowhill 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Command: blarg: set authkey ******** 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Command: blarg: set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Command: blarg: add default HISADDR 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Phase: bundle: Establish 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Phase: deflink: closed -> opening 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Phase: deflink: Connected! 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Phase: deflink: opening -> dial 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Chat: Phone: 206-219-4888 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Chat: deflink: Dial attempt 1 of 4 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Chat: Send: AT^M 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Chat: Expect(5): OK 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Chat: Received: ^M 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Chat: Received: OK^M 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Chat: Send: AT&F&C1&D2&K3V1W1E0X4^M 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Chat: Expect(5): OK 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Chat: Received: ^M 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Chat: Received: OK^M 
 Nov 19 21:21:16 kosmos ppp[4142]: tun0: Chat: Send: ATDT206-219-4888^M 
 Nov 19 21:21:18 kosmos ppp[4142]: tun0: Chat: Expect(40): CONNECT 
 Nov 19 21:21:37 kosmos ppp[4142]: tun0: Chat: Received: ^M 
 Nov 19 21:21:37 kosmos ppp[4142]: tun0: Chat: Received: CARRIER 14400^M 
 Nov 19 21:21:39 kosmos ppp[4142]: tun0: Chat: Received: ^M 
 Nov 19 21:21:39 kosmos ppp[4142]: tun0: Chat: Received: PROTOCOL: LAP-M^M 
 Nov 19 21:21:39 kosmos ppp[4142]: tun0: Chat: Received: ^M 
 Nov 19 21:21:39 kosmos ppp[4142]: tun0: Chat: Received: CONNECT 
 Nov 19 21:21:39 kosmos ppp[4142]: tun0: Phase: deflink: dial -> carrier 
 Nov 19 21:21:40 kosmos ppp[4142]: tun0: Phase: deflink: /dev/cuaa0: CD detected 
 Nov 19 21:21:40 kosmos ppp[4142]: tun0: Phase: deflink: carrier -> login 
 Nov 19 21:21:40 kosmos ppp[4142]: tun0: Phase: deflink: login -> lcp 
 Nov 19 21:21:40 kosmos ppp[4142]: tun0: LCP: FSM: Using "deflink" as a transport 
 Nov 19 21:21:40 kosmos ppp[4142]: tun0: LCP: deflink: State change Initial --> Closed 
 Nov 19 21:21:40 kosmos ppp[4142]: tun0: LCP: deflink: State change Closed --> Stopped 
 Nov 19 21:21:41 kosmos ppp[4142]: tun0: LCP: deflink: LayerStart 
 Nov 19 21:21:41 kosmos ppp[4142]: tun0: LCP: deflink: SendConfigReq(1) state = Stopped 
 Nov 19 21:21:41 kosmos ppp[4142]: tun0: LCP:  ACFCOMP[2] 
 Nov 19 21:21:41 kosmos ppp[4142]: tun0: LCP:  PROTOCOMP[2] 
 Nov 19 21:21:41 kosmos ppp[4142]: tun0: LCP:  ACCMAP[6] 0x00000000 
 Nov 19 21:21:41 kosmos ppp[4142]: tun0: LCP:  MRU[4] 1500 
 Nov 19 21:21:41 kosmos ppp[4142]: tun0: LCP:  MAGICNUM[6] 0x24688f55 
 Nov 19 21:21:41 kosmos ppp[4142]: tun0: LCP:  QUALPROTO[8] proto c025, interval 30000ms 
 Nov 19 21:21:41 kosmos ppp[4142]: tun0: LCP:  AUTHPROTO[4] 0xc023 (PAP) 
 Nov 19 21:21:41 kosmos ppp[4142]: tun0: LCP: deflink: State change Stopped --> Req-Sent 
 Nov 19 21:21:44 kosmos ppp[4142]: tun0: LCP: deflink: SendConfigReq(1) state = Req-Sent 
 Nov 19 21:21:44 kosmos ppp[4142]: tun0: LCP:  ACFCOMP[2] 
 Nov 19 21:21:44 kosmos ppp[4142]: tun0: LCP:  PROTOCOMP[2] 
 Nov 19 21:21:44 kosmos ppp[4142]: tun0: LCP:  ACCMAP[6] 0x00000000 
 Nov 19 21:21:44 kosmos ppp[4142]: tun0: LCP:  MRU[4] 1500 
 Nov 19 21:21:44 kosmos ppp[4142]: tun0: LCP:  MAGICNUM[6] 0x24688f55 
 Nov 19 21:21:44 kosmos ppp[4142]: tun0: LCP:  QUALPROTO[8] proto c025, interval 30000ms 
 Nov 19 21:21:44 kosmos ppp[4142]: tun0: LCP:  AUTHPROTO[4] 0xc023 (PAP) 
 Nov 19 21:21:47 kosmos ppp[4142]: tun0: LCP: deflink: SendConfigReq(1) state = Req-Sent 
 Nov 19 21:21:47 kosmos ppp[4142]: tun0: LCP:  ACFCOMP[2] 
 Nov 19 21:21:47 kosmos ppp[4142]: tun0: LCP:  PROTOCOMP[2] 
 Nov 19 21:21:47 kosmos ppp[4142]: tun0: LCP:  ACCMAP[6] 0x00000000 
 Nov 19 21:21:47 kosmos ppp[4142]: tun0: LCP:  MRU[4] 1500 
 Nov 19 21:21:47 kosmos ppp[4142]: tun0: LCP:  MAGICNUM[6] 0x24688f55 
 Nov 19 21:21:47 kosmos ppp[4142]: tun0: LCP:  QUALPROTO[8] proto c025, interval 30000ms 
 Nov 19 21:21:47 kosmos ppp[4142]: tun0: LCP:  AUTHPROTO[4] 0xc023 (PAP) 
 Nov 19 21:21:47 kosmos ppp[4142]: tun0: LCP: deflink: RecvConfigAck(1) state = Req-Sent 
 Nov 19 21:21:47 kosmos ppp[4142]: tun0: LCP:  ACFCOMP[2] 
 Nov 19 21:21:47 kosmos ppp[4142]: tun0: LCP:  PROTOCOMP[2] 
 Nov 19 21:21:47 kosmos ppp[4142]: tun0: LCP:  ACCMAP[6] 0x00000000 
 Nov 19 21:21:47 kosmos ppp[4142]: tun0: LCP:  MRU[4] 1500 
 Nov 19 21:21:47 kosmos ppp[4142]: tun0: LCP:  MAGICNUM[6] 0x24688f55 
 Nov 19 21:21:47 kosmos ppp[4142]: tun0: LCP:  QUALPROTO[8] proto c025, interval 30000ms 
 Nov 19 21:21:47 kosmos ppp[4142]: tun0: LCP:  AUTHPROTO[4] 0xc023 (PAP) 
 Nov 19 21:21:47 kosmos ppp[4142]: tun0: LCP: deflink: State change Req-Sent --> Ack-Rcvd 
 Nov 19 21:21:48 kosmos ppp[4142]: tun0: LCP: deflink: RecvConfigReq(143) state = Ack-Rcvd 
 Nov 19 21:21:48 kosmos ppp[4142]: tun0: LCP:  ACCMAP[6] 0x000a0000 
 Nov 19 21:21:48 kosmos ppp[4142]: tun0: LCP:  AUTHPROTO[4] 0xc023 (PAP) 
 Nov 19 21:21:48 kosmos ppp[4142]: tun0: LCP:  MAGICNUM[6] 0xce1830f9 
 Nov 19 21:21:48 kosmos ppp[4142]: tun0: LCP:  PROTOCOMP[2] 
 Nov 19 21:21:48 kosmos ppp[4142]: tun0: LCP:  ACFCOMP[2] 
 Nov 19 21:21:48 kosmos ppp[4142]: tun0: LCP: deflink: SendConfigAck(143) state = Ack-Rcvd 
 Nov 19 21:21:48 kosmos ppp[4142]: tun0: LCP:  ACCMAP[6] 0x000a0000 
 Nov 19 21:21:48 kosmos ppp[4142]: tun0: LCP:  AUTHPROTO[4] 0xc023 (PAP) 
 Nov 19 21:21:48 kosmos ppp[4142]: tun0: LCP:  MAGICNUM[6] 0xce1830f9 
 Nov 19 21:21:48 kosmos ppp[4142]: tun0: LCP:  PROTOCOMP[2] 
 Nov 19 21:21:48 kosmos ppp[4142]: tun0: LCP:  ACFCOMP[2] 
 Nov 19 21:21:48 kosmos ppp[4142]: tun0: LCP: deflink: State change Ack-Rcvd --> Opened 
 Nov 19 21:21:48 kosmos ppp[4142]: tun0: LCP: deflink: LayerUp 
 Nov 19 21:21:48 kosmos ppp[4142]: tun0: LCP: deflink: SendIdent(0) state = Opened 
 Nov 19 21:21:48 kosmos ppp[4142]: tun0: LCP:  MAGICNUM 24688f55 
 Nov 19 21:21:48 kosmos ppp[4142]: tun0: LCP:  TEXT user-ppp 3.1 (built Nov 19 2003) 
 Nov 19 21:21:48 kosmos ppp[4142]: tun0: Phase: bundle: Authenticate 
 Nov 19 21:21:48 kosmos ppp[4142]: tun0: Phase: deflink: his = PAP, mine = PAP 
 Nov 19 21:21:48 kosmos ppp[4142]: tun0: Phase: Pap Output: abowhill ******** 
 Nov 19 21:21:48 kosmos ppp[4142]: tun0: Phase: Pap Input: SUCCESS () 
 Nov 19 21:22:49 kosmos ppp[4142]: tun0: Phase: deflink: HDLC errors -> FCS: 2, ADDR: 0, COMD: 0, PROTO: 0 
 Nov 19 21:23:38 kosmos ppp[4142]: tun0: LCP: deflink: RecvTerminateReq(144) state = Opened 
 Nov 19 21:23:38 kosmos ppp[4142]: tun0: LCP: deflink: LayerDown 
 Nov 19 21:23:38 kosmos ppp[4142]: tun0: LCP: deflink: SendTerminateAck(144) state = Opened 
 Nov 19 21:23:38 kosmos ppp[4142]: tun0: LCP: deflink: State change Opened --> Stopping 
 Nov 19 21:23:39 kosmos ppp[4142]: tun0: Phase: deflink: Carrier lost 
 Nov 19 21:23:39 kosmos ppp[4142]: tun0: LCP: deflink: State change Stopping --> Starting 
 Nov 19 21:23:39 kosmos ppp[4142]: tun0: LCP: deflink: LayerFinish 
 Nov 19 21:23:39 kosmos ppp[4142]: tun0: LCP: deflink: State change Starting --> Initial 
 Nov 19 21:23:39 kosmos ppp[4142]: tun0: Phase: deflink: Disconnected! 
 Nov 19 21:23:39 kosmos ppp[4142]: tun0: Phase: deflink: lcp -> logout 
 Nov 19 21:23:39 kosmos ppp[4142]: tun0: Phase: deflink: Disconnected! 
 Nov 19 21:23:39 kosmos ppp[4142]: tun0: Phase: deflink: logout -> hangup 
 Nov 19 21:23:39 kosmos ppp[4142]: tun0: Phase: deflink: Connect time: 143 secs: 624 octets in, 572 octets out 
 Nov 19 21:23:39 kosmos ppp[4142]: tun0: Phase: deflink: 19 packets in, 11 packets out 
 Nov 19 21:23:39 kosmos ppp[4142]: tun0: Phase:  total 8 bytes/sec, peak 105 bytes/sec on Wed Nov 19 21:21:49 2003 
 Nov 19 21:23:39 kosmos ppp[4142]: tun0: Phase: deflink: hangup -> opening 
 Nov 19 21:23:39 kosmos ppp[4142]: tun0: Phase: deflink: Enter pause (3) for redialing. 
 === end log ===
 
 -- 
 Allan Bowhill
 abowhill@blarg.net
 
 It wasn't that she had a rose in her teeth, exactly.  It was more like
 the rose and the teeth were in the same glass.
State-Changed-From-To: feedback->closed 
State-Changed-By: brian 
State-Changed-When: Tue Jun 29 08:00:16 GMT 2004 
State-Changed-Why:  
No feedback received from the original submitter, and the other 
submitted logs look fine (enable PAP, PAP is used) 

http://www.freebsd.org/cgi/query-pr.cgi?pr=39918 
>Unformatted:
Could the submitter please show me a log with ``set log phase lcp'' enabled ?
I can't really see how these can be the wrong way 'round as chap is initiated
by the side that demands authentication (challenge/response/result) and pap
is initiated by the side that need to authenticate (login/response).

It certainly behaves correctly here.

If these logs aren't detailed enough, feel free to add ``physical'' to the
log level and we can go through what the individual bytes mean.
