> Dear Jonn-Erik Farmen, > > First, MS-CHAP uses MS-CHAP-Password, not CHAP-Password attribute. > Second, in order to configure Password for user for MS-CHAP you need := > operator instead of ==. > > --Monday, December 9, 2002, 1:46:32 PM, you wrote to >[EMAIL PROTECTED]: >
Thank you for your reponse, I wasn't able to see that MS-CHAP-Password was among the standard RADIUS attributes, and replacing == with := in the users file didn't help much: # echo "User-Name = jonn, MS-CHAP-Password = MEMEME" | radclient -x xxx.xxx.xxx.xxx:1812 auth testing123 radclient:Unknown attribute MS-CHAP-Password > > JEF> I'm having trouble with MS-CHAP. I' trying 2 authenticate with MS-CHAP, > JEF> but I'm not > JEF> very successful. I'm obviously missing a point a point here when it comes > JEF> to > JEF> authentication with MS-CHAP. I'm using freeradius 0.8 and radclient: > > > JEF> echo "User-Name = jonn, CHAP-Password = MEMEME" | radclient -x > JEF> xxx.xxx.xx.xxx:1812 auth testing123 > JEF> Sending Access-Request of id 112 to xxx.xxx.xx.xxx:1812 > JEF> User-Name = "jonn" > JEF> CHAP-Password = 0x704552484cb6fb830e6584c947df285671 > JEF> rad_recv: Access-Reject packet from host xxx.xxx.xx.xxx:1812, id=112, > JEF> length=20 > > JEF> The output of the radius server is: > > JEF> rad_recv: Access-Request packet from host xxx.xxx.xx.xxx:32778, id=112, > JEF> length=45 > JEF> User-Name = "jonn" > JEF> CHAP-Password = 0x704552484cb6fb830e6584c947df285671 > JEF> modcall: entering group authorize > JEF> modcall[authorize]: module "preprocess" returns ok > JEF> rlm_realm: No '@' in User-Name = "jonn", looking up realm NULL > JEF> rlm_realm: No such realm NULL > JEF> modcall[authorize]: module "suffix" returns noop > JEF> users: Matched DEFAULT at 79 > JEF> modcall[authorize]: module "files" returns ok > JEF> modcall[authorize]: module "mschap" returns notfound > JEF> modcall: group authorize returns ok > JEF> rad_check_password: Found Auth-Type MS-CHAP > JEF> auth: type "MS-CHAP" > JEF> modcall: entering group authenticate > JEF> rlm_mschap: No LM/NT password configured. Check authorization. > JEF> modcall[authenticate]: module "mschap" returns invalid > JEF> modcall: group authenticate returns invalid > JEF> auth: Failed to validate the user. > > JEF> in the users file, I have the following: > > JEF> # > JEF> # Please read the documentation file ../doc/processing_users_file, > JEF> # or 'man 5 users' (after installing the server) for more > JEF> information. > JEF> # > JEF> # This file contains authentication security and configuration > JEF> # information for each user. Accounting requests are NOT processed > JEF> # through this file. Instead, see 'acct_users', in this directory. > JEF> # > JEF> # The first field is the user's name and can be up to > JEF> # 253 characters in length. This is followed (on the same line) > JEF> with > JEF> # the list of authentication requirements for that user. This can > JEF> # include password, comm server name, comm server port number, > JEF> protocol > JEF> # type (perhaps set by the "hints" file), and huntgroup name (set by > JEF> # the "huntgroups" file). > JEF> # > JEF> # If you are not sure why a particular reply is being sent by the > JEF> # server, then run the server in debugging mode (radiusd -X), and > JEF> # you will see which entries in this file are matched. > JEF> # > JEF> # When an authentication request is received from the comm server, > JEF> # these values are tested. Only the first match is used unless the > JEF> # "Fall-Through" variable is set to "Yes". > JEF> [root@pc13-62 raddb]# cat /tmp/tmp2 > JEF> I'm having trouble with MS-CHAP. I' trying 2 authenticate with MS-CHAP, > JEF> but I'm not > JEF> very successful. I'm obviously missing a point a point here when it comes > JEF> to > JEF> authentication with MS-CHAP. I'm using freeradius 0.8 and radclient: > > > JEF> echo "User-Name = jonn, CHAP-Password = MEMEME" | radclient -x > JEF> xxx.xxx.xx.xxx:1812 auth testing123 > JEF> Sending Access-Request of id 112 to xxx.xxx.xx.xxx:1812 > JEF> User-Name = "jonn" > JEF> CHAP-Password = 0x704552484cb6fb830e6584c947df285671 > JEF> rad_recv: Access-Reject packet from host xxx.xxx.xx.xxx:1812, id=112, > JEF> length=20 > > JEF> The output of the radius server is: > > JEF> rad_recv: Access-Request packet from host xxx.xxx.xx.xxx:32778, id=112, > JEF> length=45 > JEF> User-Name = "jonn" > JEF> CHAP-Password = 0x704552484cb6fb830e6584c947df285671 > JEF> modcall: entering group authorize > JEF> modcall[authorize]: module "preprocess" returns ok > JEF> rlm_realm: No '@' in User-Name = "jonn", looking up realm NULL > JEF> rlm_realm: No such realm NULL > JEF> modcall[authorize]: module "suffix" returns noop > JEF> users: Matched DEFAULT at 79 > JEF> modcall[authorize]: module "files" returns ok > JEF> modcall[authorize]: module "mschap" returns notfound > JEF> modcall: group authorize returns ok > JEF> rad_check_password: Found Auth-Type MS-CHAP > JEF> auth: type "MS-CHAP" > JEF> modcall: entering group authenticate > JEF> rlm_mschap: No LM/NT password configured. Check authorization. > JEF> modcall[authenticate]: module "mschap" returns invalid > JEF> modcall: group authenticate returns invalid > JEF> auth: Failed to validate the user. > > JEF> in the users file, I have the following: > > JEF> # > JEF> # Please read the documentation file ../doc/processing_users_file, > JEF> # or 'man 5 users' (after installing the server) for more > JEF> information. > JEF> # > JEF> # This file contains authentication security and configuration > JEF> # information for each user. Accounting requests are NOT processed > JEF> # through this file. Instead, see 'acct_users', in this directory. > JEF> # > JEF> # The first field is the user's name and can be up to > JEF> # 253 characters in length. This is followed (on the same line) > JEF> with > JEF> # the list of authentication requirements for that user. This can > JEF> # include password, comm server name, comm server port number, > JEF> protocol > JEF> # type (perhaps set by the "hints" file), and huntgroup name (set by > JEF> # the "huntgroups" file). > JEF> # > JEF> # If you are not sure why a particular reply is being sent by the > JEF> # server, then run the server in debugging mode (radiusd -X), and > JEF> # you will see which entries in this file are matched. > JEF> # > JEF> # When an authentication request is received from the comm server, > JEF> # these values are tested. Only the first match is used unless the > JEF> # "Fall-Through" variable is set to "Yes". > JEF> # > JEF> # A special user named "DEFAULT" matches on all usernames. > JEF> # You can have several DEFAULT entries. All entries are processed > JEF> # in the order they appear in this file. The first entry that > JEF> # matches the login-request will stop processing unless you use > JEF> # the Fall-Through variable. > JEF> # > JEF> # If you use the database support to turn this file into a .db or > JEF> .dbm > JEF> # file, the DEFAULT entries _have_ to be at the end of this file and > JEF> # you can't have multiple entries for one username. > JEF> # > JEF> # You don't need to specify a password if you set Auth-Type += > JEF> System > JEF> # on the list of authentication requirements. The RADIUS server > JEF> # will then check the system password file. > JEF> # > JEF> # Indented (with the tab character) lines following the first > JEF> # line indicate the configuration values to be passed back to > JEF> # the comm server to allow the initiation of a user session. > JEF> # This can include things like the PPP configuration values > JEF> # or the host to log the user onto. > JEF> # > JEF> # You can include another `users' file with `$INCLUDE users.other' > JEF> # > > JEF> # > JEF> # For a list of RADIUS attributes, and links to their definitions, > JEF> # see: > JEF> # > JEF> # http://www.freeradius.org/rfc/attributes.html > JEF> # > > JEF> # > JEF> # Deny access for a specific user. Note that this entry MUST > JEF> # be before any other 'Auth-Type' attribute which results in the user > JEF> # being authenticated. > JEF> # > JEF> # Note that there is NO 'Fall-Through' attribute, so the user will not > JEF> # be given any additional resources. > JEF> # > JEF> #lameuser Auth-Type := Reject > JEF> # Reply-Message = "Your account has been disabled." > > JEF> # > JEF> # Deny access for a group of users. > JEF> # > JEF> # Note that there is NO 'Fall-Through' attribute, so the user will not > JEF> # be given any additional resources. > JEF> # > JEF> #DEFAULT Group == "disabled", Auth-Type := Reject > JEF> # Reply-Message = "Your account has been disabled." > JEF> # > > JEF> # > JEF> # This is a complete entry for "steve". Note that there is no Fall-Through > JEF> # entry so that no DEFAULT entry will be used, and the user will NOT > JEF> # get any attributes in addition to the ones listed here. > JEF> DEFAULT Auth-Type = MS-CHAP > JEF> # > JEF> #steve Auth-Type := Local, User-Password == "testing" > JEF> # Service-Type = Framed-User, > JEF> # Framed-Protocol = PPP, > JEF> # Framed-IP-Address = 172.16.3.33, > JEF> # Framed-IP-Netmask = 255.255.255.0, > JEF> # Framed-Routing = Broadcast-Listen, > JEF> # Framed-Filter-Id = "std.ppp", > JEF> # Framed-MTU = 1500, > JEF> # Framed-Compression = Van-Jacobsen-TCP-IP > > JEF> jonn Auth-Type := MS-CHAP, Password == "MEMEME" > JEF> Reply-message = "Hallo jonn", > JEF> # Service-Type = Framed-User, > JEF> # Framed-Routing = Broadcast-Listen, > JEF> Fall-Through = No, > JEF> # Framed-Protocol = PPP, > JEF> # Framed-IP-Address = 172.16.3.33, > JEF> # Framed-IP-Netmask = 255.255.255.0, > JEF> # Framed-Filter-Id = "std.ppp", > JEF> # Framed-MTU = 1500, > JEF> # Framed-Compression = Van-Jacobsen-TCP-IP > > JEF> # > JEF> # > JEF> # This is an entry for a user with a space in their name. > JEF> # Note the double quotes surrounding the name. > JEF> # > JEF> #"John Doe" Auth-Type := Local, User-Password == "hello" > JEF> # Reply-Message = "Hello, %u" > > JEF> # > JEF> # Dial user back and telnet to the default host for that port > JEF> # > JEF> #Deg Auth-Type := Local, User-Password == "ge55ged" > JEF> # Service-Type = Callback-Login-User, > JEF> # Login-IP-Host = 0.0.0.0, > JEF> # Callback-Number = "9,5551212", > JEF> # Login-Service = Telnet, > JEF> # Login-TCP-Port = Telnet > > JEF> # > JEF> # Another complete entry. After the user "dialbk" has logged in, the > JEF> # connection will be broken and the user will be dialed back after which > JEF> # he will get a connection to the host "timeshare1". > JEF> # > JEF> #dialbk Auth-Type := Local, User-Password == "callme" > JEF> # Service-Type = Callback-Login-User, > JEF> # Login-IP-Host = timeshare1, > JEF> # Login-Service = PortMaster, > JEF> # Callback-Number = "9,1-800-555-1212" > > JEF> # > JEF> # user "swilson" will only get a static IP number if he logs in with > JEF> # a framed protocol on a terminal server in Alphen (see the huntgroups > JEF> file). > JEF> # > JEF> # Note that by setting "Fall-Through", other attributes will be added from > JEF> # the following DEFAULT entries > JEF> # > JEF> #swilson Service-Type == Framed-User, Huntgroup-Name == "alphen" > JEF> # Framed-IP-Address = 192.168.1.65, > JEF> # Fall-Through = Yes > > JEF> # > JEF> # If the user logs in as 'username.shell', then authenticate them > JEF> # against the system database, give them shell access, and stop processing > JEF> # the rest of the file. > JEF> # > JEF> #DEFAULT Suffix == ".shell", Auth-Type := System > JEF> # Service-Type = Login-User, > JEF> # Login-Service = Telnet, > JEF> # Login-IP-Host = your.shell.machine > > > JEF> # > JEF> # The rest of this file contains the several DEFAULT entries. > JEF> # DEFAULT entries match with all login names. > JEF> # Note that DEFAULT entries can also Fall-Through (see first entry). > JEF> # A name-value pair from a DEFAULT entry will _NEVER_ override > JEF> # an already existing name-value pair. > JEF> # > > JEF> # > JEF> # First setup all accounts to be checked against the UNIX /etc/passwd. > JEF> # (Unless a password was already given earlier in this file). > JEF> # > JEF> DEFAULT Auth-Type := System > JEF> Fall-Through = 1 > > JEF> # > JEF> # Set up different IP address pools for the terminal servers. > JEF> # Note that the "+" behind the IP address means that this is the "base" > JEF> # IP address. The Port-Id (S0, S1 etc) will be added to it. > JEF> # > JEF> #DEFAULT Service-Type == Framed-User, Huntgroup-Name == "alphen" > JEF> # Framed-IP-Address = 192.168.1.32+, > JEF> # Fall-Through = Yes > > JEF> #DEFAULT Service-Type == Framed-User, Huntgroup-Name == "delft" > JEF> # Framed-IP-Address = 192.168.2.32+, > JEF> # Fall-Through = Yes > > JEF> # > JEF> # Defaults for all framed connections. > JEF> # > JEF> DEFAULT Service-Type == Framed-User > JEF> Framed-IP-Address = 255.255.255.254, > JEF> Framed-MTU = 576, > JEF> Service-Type = Framed-User, > JEF> Fall-Through = Yes > > JEF> # > JEF> # Default for PPP: dynamic IP address, PPP mode, VJ-compression. > JEF> # NOTE: we do not use Hint = "PPP", since PPP might also be auto-detected > JEF> # by the terminal server in which case there may not be a "P" > JEF> suffix. > JEF> # The terminal server sends "Framed-Protocol = PPP" for auto PPP. > JEF> # > JEF> DEFAULT Framed-Protocol == PPP > JEF> Framed-Protocol = PPP, > JEF> Framed-Compression = Van-Jacobson-TCP-IP > > JEF> # > JEF> # Default for CSLIP: dynamic IP address, SLIP mode, VJ-compression. > JEF> # > JEF> DEFAULT Hint == "CSLIP" > JEF> Framed-Protocol = SLIP, > JEF> Framed-Compression = Van-Jacobson-TCP-IP > > JEF> # > JEF> # Default for SLIP: dynamic IP address, SLIP mode. > JEF> # > JEF> DEFAULT Hint == "SLIP" > JEF> Framed-Protocol = SLIP > > JEF> # > JEF> # Last default: rlogin to our main server. > JEF> # > JEF> #DEFAULT > JEF> # Service-Type = Login-User, > JEF> # Login-Service = Rlogin, > JEF> # Login-IP-Host = shellbox.ispdomain.com > > JEF> # # > JEF> # # Last default: shell on the local terminal server. > JEF> # # > JEF> # DEFAULT > JEF> # Service-Type = Shell-User > > JEF> # On no match, the user is denied access. > > JEF> If somebody wants to give me an RTFM, that's fine, just give me a FM to > JEF> read. > > > JEF> Jonn-Erik Farmen > > > JEF> - > JEF> List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html > > > - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html