Linux based RADIUS Setup Introduction The Linux distribution chosen to setup the FreeRADIUS server was SuSE 9.3 Professional. Several distributions were tried; the location of the files varies a bit from the distribution. You can download the ISO for CD 1, and if you have a fast network connection, you can point the installation to be performed from SuSE's FTP server. In our case we downloaded all the ISO images and performed a "regular" OS installation in a PII machine with 512MB RAM. How can this be used? Giving a username/password can be a problem because it can be shared. Installing a certificate on a machine will prevent this; the user can not use the certificate anywhere else because the password is not available. An additional control is the certificate revocation date. In this kind of scenario the time consuming part is the process of managing the certificates. Hardware needed: • 1 PC with at least 256MB RAM; for the NIC use 3COM or Intel (suggested) This PC will be used to install SuSE 9.3 • 1 AP/Router configured to have access to the Internet on the WAN port. A Linksys WRT54GL was used • 1 Windows NT Client + (1) Ethernet port + (1) wireless port with WPA support. The AP will have the following settings: • LAN address: 172.16.1.1/24, DNS values are left blank (on auto) • WAN address: set by DHCP • Wireless: The same settings as the setup used for the Windows based RADIUS configuration (Server IP 172.16.1.10, etc.) • The rest of the values are to be left at the default factory settings The Windows NT Client will have the following settings: • Ethernet IP: Set by DHCP • Wireless IP: Set by DHCP The topology is as follows: The Ethernet ports of the Windows NT client and the Linux box will be connected to the LAN side of the router, the WAN port will be provided access to the Internet.
Linux based RADIUS Setup
Page 2 of 38
Installing SuSE 9.3
Screenshot 1
1. Click on Installation, then I agree, then Accept, then Details The YaST installer window displays
Screenshot 2
2. In the Installation Settings pane scroll down a bit and click on Software
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 3 of 38
The Software Selection pane displays
Screenshot 3
3. The radio button for Standard system with KDE should be selected by default 4. Click the Detailed selection… button The Installation Settings window displays
Screenshot 4
5. In the left Selection pane click on Network/Server (no need for a checkmark)
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 4 of 38
6. In the right Package pane place a checkmark on freeradius. 7. Click the Accept button. The Changed Packages window displays
Screenshot 5
8. Click the Continue button a. The Installation Settings window displays (Screenshot 4) b. Click the Accept button. 9. On the license for the Flash Player screen, confirm all. 10. On the Confirm Install screen, choose Install. 11. Your hard disk will be partitioned, and the requested packages will be copied onto it 12. For the root user, the password is toor. a. Confirm the password settings twice
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 5 of 38
The Network Configuration window displays
Screenshot 6
13. Click the Change… button 14. Choose Network interfaces 15. On the section of Already Configured Network devices, choose Change •
Your NIC should be listed there
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 6 of 38
The Network Configuration Overview window displays
Screenshot 7
16. Click the Edit button The Network Address Setup window displays
Screenshot 8
17. Click the Advanced button.
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 7 of 38
The Network Address Setup window displays
Screenshot 9
18. Click the Hostname and Name Server button 19. To the domain section, add “.com” to site, so it displays site.com Note: So far the domain linux.site.com is not registered in the WWW 20. Click the OK button. 21. Click the Advanced button, then choose Detailed Settings.
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 8 of 38
The Detailed Network Card Settings window displays
Screenshot 10
22. Change the Firewall Zone to Internal Zone (unprotected), then click OK, then click Next, then click Finish, then click Next. 23. Skip the Online Update, click Skip This Test, then click Next. 24. For the Authentication Method, use Local 25. On the Add New User screen enter the username “user” and assign the password “toor’ 26. Click Next, then click Yes, then click Yes. Disable the Auto login option. 27. Click Next on the release notes 28. For the Hardware configuration click Next. 29. On the Installation Completed screen click Finish. 30. Allow the computer to reboot •
You will be greeted by a series of requests about updates, etc.
•
Cancel them all; we will manually update specific areas after RADIUS works.
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 9 of 38
31. Login as root, password is toor. a. If at this point you are logged in as “user”, your desktop’s background will be in blue. b. Log off by clicking on the •
icon, located on the bottom left.
This is the K Menu and we will be referring to it many times. The root user’s Desktop displays
Screenshot 11
Notes: •
We are now ready to start. The overall recommendation is to be working as the regular user “user”, but for developmental purposes, we will work as super-user “root”.
•
From here on, every step more or less constitutes a test; each item has been made as granular as possible to allow for easy troubleshooting.
•
In Linux, commands are case-sensitive.
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 10 of 38
Starting and stopping the RADIUS server Starting the server 1. In the taskbar shown in Screenshot 11, click the 2. This opens a shell window, the Linux command line interface. 3. Enter radiusd -X 4. If all is OK from the perspective of the server, the last line will display "Ready to process requests". 5. Scroll through the window and look for entries that begin with rlm_eap. •
All of them must be followed by a “success” comment. If not, this indicates that OpenSSL is not working or configured properly. Fix this item before proceeding.
Stopping the server 6. Click the
on the taskbar to start a second shell.
7. Enter netstat -ap –udp • We are interested in an entry that will be in the format or mask of nnnnn/radiusd. •
nnnnn is the process number or identifier (PID) for that process.
8. To stop the RADIUS server, enter the command kill nnnnn •
Look at the first shell window were radiusd was started. It should display a message that the process was “killed”.
There are other ways and options to stop and start the server. Up to this point, we have tested one item: The basic server setup is running. Connectivity Testing Before we start to configure anything, we must test for connectivity, internal and external. The server will report all that it sees, at this point we want to see activity, it does not matter if it denies or accepts requests for any of these tests. Internal connectivity quick test (localhost): 9. Start the server in one shell window as shown in step 3 above. 10. In the second shell window, enter the command: radtest test test localhost 0 testing123 •
What matters is the last line that displays rad_recv: Rejected
- This indicates the server is sending/receiving info. So far, so good. 11. Stop the server as shown in steps 7 and 9 above. • Now try the same command and see the difference (The PID will be different, find
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 11 of 38
out the new one, running the kill command blindly can cause problems). External connectivity quick test: 12. Start the FreeRADIUS server. 13. Download the NTRadPing utility. • Simply open Google, search for NTRadPing. The Novell site should be at the top. 14. Install it on the PC with the Ethernet and Wireless cards.
Screenshot 12
15. Once you have it running, enter 172.16.1.10:1812 in the RADIUS Server/port box. 16. For the request type, choose Authentication Request. 17. Click the Send button. 18. On the server shell, you will see activity. The IP of the computer running the ping must show up somewhere in the debug info from the server. If so, move on to the next step. 19. At this point, we have now tested the connectivity of the server. 20. Shutdown FreeRADIUS Testing the OpenSSL compilation and configurations. Notes: • One time consuming part in any Linux distro is finding where all files are. The Linux file system is a huge tree, and all starts at the root, or / . • On Wintel platforms, the root for a particular storage unit is located at \ plus the letter of the unit as a prefix (a colon in the middle of course). In Linux, / serves the same purpose as \ in Wintel systems. • In Linux, hardware devices are treated as folders located or mounted in the file system
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 12 of 38
21. Click on K Menu • Right above there you will see Find Files/Folders, click on it. The Find Files/Folders window displays.
Screenshot 13
22. Search for a file named eap.conf, and look in / as shown. 23. After a while, only one entry will show up. 24. Click on the name itself, and a text file editor will automatically open the file.
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 13 of 38
Screenshot 14
25. Look for the entry that begins with #tls {. 26. Remove the # before it, and carefully find the closing } below it. It should be located below the line #check_cert_cn. Also remove the preceding # from here. •
We now have enabled the EAP-TLS module. We will temporarily be using the demo certs to test it.
27. Below the line tls{ you will see 6 # (pound symbols), up to the line #random_file. • • •
Remove them. Close the editor, click Yes to save. The above Screenshot 14 shows the detail. Keep this in mind, we will be changing those lines again later on.
28. Start the server. For SuSE 9.3, an error message will be displayed, that is no problem. • The error relates to being unable to open the root CA. What matters is that somewhere in the displayed lines it says that the module rml_eap did initialize. •
Notice how the password <whatever> is shown in the listing. The error will be related to not having the correct permissions to open a file.
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 14 of 38
We are done with the setup testing; now we move on to setting up RADIUS to work with our system.
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 15 of 38
We will group this in 3 major sections: A. Setting up the CA authority, Server CA, Client CA B. Setting up radius config files C. Setting up the Windows NT Client configuration files. Tips and Hints • You can copy this file into the Linux box, and simply cut and paste all the commands. - The short cut keys for the shell to paste is [SHIFT]+[INS] or simply right click in it and choose paste. •
vi tips •
vi is a command line editor - To start inserting text press the i key, - To finish inserting text, press the ESC key - To exit vi exit press capital Z two times, i.e. ZZ
Setting up the CA authority, Server CA, Client CA 1. To set the CA system, we must modify the openssl.cnf file. You can search for it, and open it, modify the blue text to suit your needs. cd /etc/ssl vi openssl.cnf [i]
2. Change the CA root path in the CA_default section to reflect the CA we're about to create. [ CA_default ] dir = ./luisCA # The following lines are further countryName_default = stateOrProvinceName_default = 0.organizationName_default = commonName = [ESC] [Z][Z]
# Where everything is kept down in openssl.cnf: US Texas Industrial Wiremonkeys of the World linux.site.com
3. Keep this in mind: As we go through this process, the common name linux.site.com will be changed twice from the default setting. If this is not done, the setup will fail. 4. The file xpextensions must be created in the same folder (/etc/ssl), so you can either use vi or find the application KWRITE. vi xpextensions i [ xpclient_ext ] extendedKeyUsage = 1.3.6.1.5.5.7.3.2 [ xpserver_ext ] extendedKeyUsage = 1.3.6.1.5.5.7.3.1 [ESC] [Z][Z]
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 16 of 38
5. We now create the CA authority, SuSE93CA, by modifying the script that is responsible for creating one. It will also create the luisCA folder for us. 6. Find the CA.sh file. It should be located in the /usr/share/ssl/misc folder, and make the changes marked in blue. cd /usr/share/ssl/misc vi CA.sh i CATOP=./luisCA [esc] [Z][Z]
7. Jump back to the ssl folder: cd /etc/ssl 8. Type in a pass phrase (use “passphrase” {suggestion}), 9. For common name use SuSE93CA (suggestion, otherwise substitute accordingly) 10. /usr/share/ssl/misc/CA.sh -newca CA certificate filename (or enter to create)
#Do not type anything here, simply press enter Making CA certificate ... Generating a 1024 bit RSA private key ........................++++++ ..++++++ writing new private key to './luisCA/private/./cakey.pem' Enter PEM pass phrase: Verifying - Enter PEM pass phrase: ----You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----Country Name (2 letter code) [US]: State or Province Name (full name) [Texas]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: linux.site.com []:Suse93CA Email Address []:
11. We are now creating a server certificate, the Common Name is linux.site.com. •
The -nodes option is not recommended, in a production environment, but for now we will use it. The server is running in our Linux box, the Common Name will be linux.site.com
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 17 of 38
12. Enter the following command: openssl req -new -nodes -keyout server_key.pem –out server_req.pem -days 730 -config ./openssl.cnf
•
Note: The above command must be typed on one line, even though it may wrap on your screen.
Generating a 1024 bit RSA private key ............................................................................. ....................++++++ .............................................................++++++ writing new private key to 'server_key.pem' ----You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----Country Name (2 letter code) [US]: State or Province Name (full name) [Texas]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: linux.site.com []:linux.site.com Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:password An optional company name []:
13. Enter the command below. The CA is used to sign the server certificate request: openssl ca -config ./openssl.cnf -policy policy_anything -out server_cert.pem -extensions xpserver_ext -extfile ./xpextensions \-infiles ./server_req.pem
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 18 of 38
Using configuration from ./openssl.cnf Enter pass phrase for ./luisCA/private/cakey.pem: Check that the request matches the signature Signature ok Certificate Details: Serial Number: 1 (0x1) Validity Not Before: Jun 21 14:43:05 2006 GMT Not After : Jun 21 14:43:05 2007 GMT Subject: countryName = US stateOrProvinceName = Texas organizationName = Internet Widgits Pty Ltd commonName = linux.site.com X509v3 extensions: X509v3 Extended Key Usage: TLS Web Server Authentication Certificate is to be certified until Jun 21 14:43:05 2007 GMT (365 days) Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated
14. It is time to clean out the certificate, and combine the key and certificate in a single file. The file to be modified is server_cert.pem. We edit the file as shown below. • • •
vi server_cert.pem delete by pressing the d key as needed until the line --Begin CERTIFICATE--is left at the top [Z][Z]
15. We now concatenate these two files files: cat server_key.pem server_cert.pem > \server_keycert.pem 16. We now start the same process for the clients. 17. First we request a certificate for the client. •
In our case, the NetBIOS name of the client is LIFEBOOK.
•
In the shell, you can press the up arrow key to go back to the previous command and only make the needed changes. The -nodes option is left out.
openssl req -new -keyout client_key.pem -out client_req.pem -days 730 -config ./openssl.cnf
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 19 of 38
Generating a 1024 bit RSA private key .++++++ ........++++++ writing new private key to 'client_key.pem' Enter PEM pass phrase: Verifying - Enter PEM pass phrase: ----You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----Country Name (2 letter code) [US]: State or Province Name (full name) [Texas]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: linux.site.com []:LIFEBOOK Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:password An optional company name []:
18. We now sign the client certificate. openssl ca -config ./openssl.cnf -policy policy_anything -out client_cert.pem -extensions xpclient_ext -extfile ./xpextensions -infiles ./client_req.pem
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 20 of 38
Using configuration from ./openssl.cnf Enter pass phrase for ./luisCA/private/cakey.pem: DEBUG[load_index]: unique_subject = "yes" Check that the request matches the signature Signature ok Certificate Details: Serial Number: 2 (0x2) Validity Not Before: Jun 21 20:27:39 2006 GMT Not After : Jun 21 20:27:39 2007 GMT Subject: countryName = US stateOrProvinceName = Texas organizationName = Internet Widgits Pty Ltd commonName = LIFEBOOK X509v3 extensions: X509v3 Extended Key Usage: TLS Web Client Authentication Certificate is to be certified until Jun 21 20:27:39 2007 GMT (365 days) Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated
19. We now do the same with the client certificate. • vi client_cert.pem • delete by pressing the letter d as needed until --Begin CERTIFICATE--is left at the top • [Z][Z] 20. Concatenating the files : cat client_key.pem client_cert.pem > \client_keycert.pem 21. Here we begin to setup the information needed to run the EAP-TLS authentication for XP, first we export to a certificate file to be sent to XP later on. openssl pkcs12 -export -in client_cert.pem -inkey client_key.pem -out client_cert.p12 –clcerts Enter pass phrase for client_key.pem: Enter Export Password: Verifying - Enter Export Password:
22. Setting up the certificates in RADIUS 23. The files we have created must now be copied to the right places, and then we set the ownerships and permissions. Enter the following commands:
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
• • • •
Page 21 of 38
cp /etc/ssl/luisCA/cacert.pem /etc/raddb/certs chmod 0444 /etc/raddb/certs/cacert.pem cp /etc/ssl/server_keycert.pem /etc/raddb/certs chmod 0400 /etc/raddb/certs/server_keycert.pem
24. In SuSE 9.3 the user user was created during the setup process. Enter: chown radiusd:users /raddb/certs/server_keycert.pem 25. If all is fine, no error messages will show for any of the commands above 26. We need random numbers, always use the internal random number generator. Enter • cd /etc/raddb/certs • openssl dhparam -check -text -5 512 -out dh Generating DH parameters, 512 bit long safe prime, generator 5 This is going to take a long time ...........+................................................................. ..............+..........+.......+..............+........................+..+ ........+..+..............+.................................................. ...........................+......+.......................................... .....................+.....................+................+......+......... ...........+.+..................................+............................ ....................................+..+........+.+.................+........ ............+...................+..........+........................+........ ....................................................+........................ ................+...............+..+..........+...............+.........+.... ................................++*++*++*++*++*++* DH parameters appear to be ok. dd if=/dev/random of=random count=2 0+2 records in 0+1 records out 170 bytes (170 B) copied, 0.001783 seconds, 95.3 kB/s chmod 0400 dh chmod 0400 random chown user:users dh chown user:users random
27. At this point we are done with setting up the CA, we have partially configured RADIUS by setting up the CA files and setting ownerships. 28. We now modify the eap.conf file again, change to the values shown below, vi eap.conf [i] default_eap_type = tls private_key_password = qwerty private_key_file = ${raddbdir}/certs/server_keycert.pem certificate_file = ${raddbdir}/certs/server_keycert.pem CA_file = ${raddbdir}/certs/cacert.pem dh_file = ${raddbdir}/certs/dh random_file = ${raddbdir}/certs/random [ESC][Z][Z]
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 22 of 38
29. At the end of the clients.conf file add vi client.conf [i] client 172.16.1.0/24{ secret = qaz123 shortname = linksys nastype = other } [ESC][Z][Z]
30. Another file to be modified would be radiusd.conf. Since SuSE does not create a user for FreeRadius, for now it is best not to make any changes. 31. Later on, the files must be secured, for example: chown root:root eap.conf chmod 0600 eap.conf
32. We are done with the Linux system, start the RADIUS server. Watch carefully all the messages.
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 23 of 38
Access point setup: Quick reminder: Wireless Security window
Screenshot 15
Configuring XP 1. In order to manually import the files, there are two files that must be copied into XP: client_cert.p12 and cacert.pem. These files must be imported using the certificates snap-in.
Screenshot 16
2. The .p12 file goes into Certificate –current user/personal/certificates
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 24 of 38
3. The other file goes here:
Screenshot 16
4. The Wireless NIC has to be configured as follows:
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 25 of 38
5. Then:
6. Save the profile and connect.
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 26 of 38
Troubleshooting. 1. If all goes ok, you will see something similar to the following output once connected: rad_recv: Access-Request packet from host 172.16.1.1:2048, id=0, length=129 User-Name = "LIFEBOOK" NAS-IP-Address = 172.16.1.1 Called-Station-Id = "0014bf18fbd1" Calling-Station-Id = "000e35e93319" NAS-Identifier = "0014bf18fbd1" NAS-Port = 3 Framed-MTU = 1400 NAS-Port-Type = Wireless-802.11 EAP-Message = 0x0201000d014c494645424f4f4b Message-Authenticator = 0xaabedd1f00d840959228067122f038f9 Processing the authorize section of radiusd.conf modcall: entering group authorize for request 0 modcall[authorize]: module "preprocess" returns ok for request 0 modcall[authorize]: module "chap" returns noop for request 0 modcall[authorize]: module "mschap" returns noop for request 0 rlm_realm: No '@' in User-Name = "LIFEBOOK", looking up realm NULL rlm_realm: No such realm "NULL" modcall[authorize]: module "suffix" returns noop for request 0 rlm_eap: EAP packet type response id 1 length 13 rlm_eap: No EAP Start, assuming it's an on-going EAP conversation modcall[authorize]: module "eap" returns updated for request 0 users: Matched entry DEFAULT at line 152 modcall[authorize]: module "files" returns ok for request 0 modcall: group authorize returns updated for request 0 rad_check_password: Found Auth-Type EAP auth: type "EAP" Processing the authenticate section of radiusd.conf modcall: entering group authenticate for request 0 rlm_eap: EAP Identity rlm_eap: processing type tls rlm_eap_tls: Requiring client certificate rlm_eap_tls: Initiate rlm_eap_tls: Start returned 1 modcall[authenticate]: module "eap" returns handled for request 0 modcall: group authenticate returns handled for request 0 Sending Access-Challenge of id 0 to 172.16.1.1:2048 EAP-Message = 0x010200060d20 Message-Authenticator = 0x00000000000000000000000000000000 State = 0x98bb72e5259b893d9048b63f08918889 Finished request 0 Going to the next request --- Walking the entire request list --Waking up in 6 seconds... rad_recv: Access-Request packet from host 172.16.1.1:2048, id=0, length=240 User-Name = "LIFEBOOK" NAS-IP-Address = 172.16.1.1 Called-Station-Id = "0014bf18fbd1" Calling-Station-Id = "000e35e93319" NAS-Identifier = "0014bf18fbd1" NAS-Port = 3 Framed-MTU = 1400
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 27 of 38
State = 0x98bb72e5259b893d9048b63f08918889 NAS-Port-Type = Wireless-802.11 EAP-Message = 0x0202006a0d8000000060160301005b01000057030144a0b189d7d493b3b398a78a05be64894 e89e0408557c428d930eefb2b1db10f00003000390038003500160013000a00330032002f0066 000500040065006400630062006000150012000900140011000800030100 Message-Authenticator = 0x1bd4f459c5c46dd9ef95192e791f7a0a Processing the authorize section of radiusd.conf modcall: entering group authorize for request 1 modcall[authorize]: module "preprocess" returns ok for request 1 modcall[authorize]: module "chap" returns noop for request 1 modcall[authorize]: module "mschap" returns noop for request 1 rlm_realm: No '@' in User-Name = "LIFEBOOK", looking up realm NULL rlm_realm: No such realm "NULL" modcall[authorize]: module "suffix" returns noop for request 1 rlm_eap: EAP packet type response id 2 length 106 rlm_eap: No EAP Start, assuming it's an on-going EAP conversation modcall[authorize]: module "eap" returns updated for request 1 users: Matched entry DEFAULT at line 152 modcall[authorize]: module "files" returns ok for request 1 modcall: group authorize returns updated for request 1 rad_check_password: Found Auth-Type EAP auth: type "EAP" Processing the authenticate section of radiusd.conf modcall: entering group authenticate for request 1 rlm_eap: Request found, released from the list rlm_eap: EAP/tls rlm_eap: processing type tls rlm_eap_tls: Authenticate rlm_eap_tls: processing TLS rlm_eap_tls: Length Included eaptls_verify returned 11 (other): before/accept initialization TLS_accept: before/accept initialization rlm_eap_tls: <<< TLS 1.0 Handshake [length 005b], ClientHello TLS_accept: SSLv3 read client hello A rlm_eap_tls: >>> TLS 1.0 Handshake [length 004a], ServerHello TLS_accept: SSLv3 write server hello A rlm_eap_tls: >>> TLS 1.0 Handshake [length 0529], Certificate TLS_accept: SSLv3 write certificate A rlm_eap_tls: >>> TLS 1.0 Handshake [length 010d], ServerKeyExchange TLS_accept: SSLv3 write key exchange A rlm_eap_tls: >>> TLS 1.0 Handshake [length 0066], CertificateRequest TLS_accept: SSLv3 write certificate request A TLS_accept: SSLv3 flush data TLS_accept:error in SSLv3 read client certificate A In SSL Handshake Phase In SSL Accept mode eaptls_process returned 13 modcall[authenticate]: module "eap" returns handled for request 1 modcall: group authenticate returns handled for request 1 Sending Access-Challenge of id 0 to 172.16.1.1:2048 EAP-Message = 0x0103040a0dc0000006fa160301004a02000046030144a0b20210c68653fbb1925194ce4e811 644421c87a5e5cb88c1e1f57447a94820242eae1d7eab56ba07b3e1b021f9d774e0e8000a2921 305b23ee21098fcc1f8a00390016030105290b00052500052200023d30820239308201a2a0030 20102020101300d06092a864886f70d01010405003053310b3009060355040613025553310e30
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 28 of 38
0c0603550408130554657861733121301f060355040a1318496e7465726e65742057696467697 47320507479204c74643111300f060355040313085375736539334341301e170d303630363233 3030343330395a170d3037303632333030343330395a30 EAP-Message = 0x59310b3009060355040613025553310e300c0603550408130554657861733121301f0603550 40a1318496e7465726e6574205769646769747320507479204c7464311730150603550403130e 6c696e75782e736974652e636f6d30819f300d06092a864886f70d010101050003818d0030818 902818100b28d45af30e2dd0733a4c0b01bcbaf59e2d3dc72daa28becb2eaab87951f4bcef29e 389f42ca16b572ed75ea6a4858b1db6b5d69d0c0d76c776a1a0022c700bdc12e3331b83a740f7 d54354afcc95df484201db372b0814e904b5a40f8373f00e9864647ba3a8e465dfbd63468beed 15ac2dde3134c8336ad1086dd023dc40fd0203010001a3 EAP-Message = 0x17301530130603551d25040c300a06082b06010505070301300d06092a864886f70d0101040 5000381810077bc1b07fd241b45066b3033a44ebe48cc4599008542a669f3a1f2e691fbf0e11c d5696d9c18cf9580d6443b90ced2a66f24a81ef4751b0cd38d799c3820efd2a1bdb9e1b8ff083 8d7685532ccb441fe459d7f723ce83c2889406ccdaa34f8884a7b2e8435ec87a24a22379eeb5b f60bbea51bb66a4d684d61f58b478b8ccdec0002df308202db30820244a003020102020900fad f8685a1337da4300d06092a864886f70d01010405003053310b3009060355040613025553310e 300c0603550408130554657861733121301f060355040a EAP-Message = 0x1318496e7465726e6574205769646769747320507479204c74643111300f060355040313085 375736539334341301e170d3036303632333030343134365a170d303730363233303034313436 5a3053310b3009060355040613025553310e300c0603550408130554657861733121301f06035 5040a1318496e7465726e6574205769646769747320507479204c74643111300f060355040313 08537573653933434130819f300d06092a864886f70d010101050003818d0030818902818100c 14faa1ea6e09568ec8ed722d4b10b2a61c3230190fb3c00467380a7adb3bb68c9e43cb8524673 31be7aebf0fd391113bab1b94d10f985a30d02c244cba5 EAP-Message = 0x3da49ba0cfb8c8d5d68f029ec94fc94c0aaf9e8ac6e9 Message-Authenticator = 0x00000000000000000000000000000000 State = 0xd0fa6a5ad055c6ad336cb8af99beb64a Finished request 1 Going to the next request Waking up in 6 seconds... rad_recv: Access-Request packet from host 172.16.1.1:2048, id=0, length=140 User-Name = "LIFEBOOK" NAS-IP-Address = 172.16.1.1 Called-Station-Id = "0014bf18fbd1" Calling-Station-Id = "000e35e93319" NAS-Identifier = "0014bf18fbd1" NAS-Port = 3 Framed-MTU = 1400 State = 0xd0fa6a5ad055c6ad336cb8af99beb64a NAS-Port-Type = Wireless-802.11 EAP-Message = 0x020300060d00 Message-Authenticator = 0x5330a137852ce3a28af6629bd1067b6d Processing the authorize section of radiusd.conf modcall: entering group authorize for request 2 modcall[authorize]: module "preprocess" returns ok for request 2 modcall[authorize]: module "chap" returns noop for request 2 modcall[authorize]: module "mschap" returns noop for request 2 rlm_realm: No '@' in User-Name = "LIFEBOOK", looking up realm NULL rlm_realm: No such realm "NULL" modcall[authorize]: module "suffix" returns noop for request 2 rlm_eap: EAP packet type response id 3 length 6 rlm_eap: No EAP Start, assuming it's an on-going EAP conversation modcall[authorize]: module "eap" returns updated for request 2 users: Matched entry DEFAULT at line 152
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 29 of 38
modcall[authorize]: module "files" returns ok for request 2 modcall: group authorize returns updated for request 2 rad_check_password: Found Auth-Type EAP auth: type "EAP" Processing the authenticate section of radiusd.conf modcall: entering group authenticate for request 2 rlm_eap: Request found, released from the list rlm_eap: EAP/tls rlm_eap: processing type tls rlm_eap_tls: Authenticate rlm_eap_tls: processing TLS rlm_eap_tls: Received EAP-TLS ACK message rlm_eap_tls: ack handshake fragment handler eaptls_verify returned 1 eaptls_process returned 13 modcall[authenticate]: module "eap" returns handled for request 2 modcall: group authenticate returns handled for request 2 Sending Access-Challenge of id 0 to 172.16.1.1:2048 EAP-Message = 0x010403040d80000006fa19bcb492be041c164db2caf555e07364ffe37736e104d46dd3ffcaa 435249a53648741f8e9bf2c2cf81e17610203010001a381b63081b3301d0603551d0e04160414 dc0a7a63e7c2df866f01aff0b4609c1a32b966403081830603551d23047c307a8014dc0a7a63e 7c2df866f01aff0b4609c1a32b96640a157a4553053310b3009060355040613025553310e300c 0603550408130554657861733121301f060355040a1318496e7465726e6574205769646769747 320507479204c74643111300f060355040313085375736539334341820900fadf8685a1337da4 300c0603551d13040530030101ff300d06092a864886f7 EAP-Message = 0x0d0101040500038181007bebc67e9bb290e997ac42b4be73fea306bc22d2b876ca78d8c53cf 69807b81d871357512cb2e83265cd73a7b329bc17f3269c6ed0b699002eaa3816cbf724ee6e79 677a66fe13dad6e63aef3786054d7f4958543a95e060596eb32e0630d6e8b1fb92bee54429d0f 4eb1aace90ccde7baaecd3fec520f15c2952a6ce739d6f0160301010d0c0001090040ab971431 9d4ca6ac89e55edd0b8a6a3269f11a12768ecf7599d7dda6ad5f82eb898f960c3230a481978b6 effe406d0de3f6fc3122a6c55d7ae6aa1f1219ccaab0001050040187c8feb8aeb7734fcd3cca5 489751780fa0a6a8df79ffce7cddc027994bbe81fc5d57 EAP-Message = 0xdd8f59bf5297e8d13c79c6ed38b4c045d6fe0f0a7a391bba9ed93ca78b00803257ff5cada79 730e2d1db79d9981d8dbddfe96ec5a7e00e7b7cf3deee94bfc7e379ab46b43ae083558746c2e1 5e632af3a7de69532df479fdfbda70467398a7d9005c51e83bb1903ccb34dcd49aa3ce822a3cc 2259b0f17bd010925c4b86919b27fbd6cf2cb243439e247327b8f08f66e636f025c9d3dfb911a 60ef1e01325716030100660d00005e0403040102005700553053310b300906035504061302555 3310e300c0603550408130554657861733121301f060355040a1318496e7465726e6574205769 646769747320507479204c74643111300f060355040313 EAP-Message = 0x0853757365393343410e000000 Message-Authenticator = 0x00000000000000000000000000000000 State = 0xcdb9cf3efdc25f9c31b52c55763e7213 Finished request 2 Going to the next request Waking up in 6 seconds... rad_recv: Access-Request packet from host 172.16.1.1:2048, id=0, length=1640 User-Name = "LIFEBOOK" NAS-IP-Address = 172.16.1.1 Called-Station-Id = "0014bf18fbd1" Calling-Station-Id = "000e35e93319" NAS-Identifier = "0014bf18fbd1" NAS-Port = 3 Framed-MTU = 1400 State = 0xcdb9cf3efdc25f9c31b52c55763e7213
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 30 of 38
NAS-Port-Type = Wireless-802.11 EAP-Message = 0x020405d80dc00000063916030105230b00051f00051c000237308202333082019ca00302010 2020102300d06092a864886f70d01010405003053310b3009060355040613025553310e300c06 03550408130554657861733121301f060355040a1318496e7465726e657420576964676974732 0507479204c74643111300f060355040313085375736539334341301e170d3036303632333030 343535385a170d3037303632333030343535385a3053310b3009060355040613025553310e300 c0603550408130554657861733121301f060355040a1318496e7465726e657420576964676974 7320507479204c74643111300f060355040313084c4946 EAP-Message = 0x45424f4f4b30819f300d06092a864886f70d010101050003818d0030818902818100e132acb 5baef33b65eb1531239067c7d63f022b4e178797f86ca37dc246f17dfede8c3ff70689c642492 3f771251bbc8e8ccfb2fa3fc1ca5fa0e093c9b37e2a95789c32ea49e84cc09d581645fe9a93de 027670cf8021c3a999d51d1f63f1377cc02748643bff9968df9cabbaff0b84f9af839132316dc b24b529a5c1682771b0203010001a317301530130603551d25040c300a06082b0601050507030 2300d06092a864886f70d0101040500038181006e7fa09d749f54d9a210baf23e21a4be82dd19 b3e712f5d90ec6bf161ab903ce75823a75c06fe66b7065 EAP-Message = 0x61f8fc747f3de445e32e1fcc34bfda04c05defb8afe5624712a88de62cc37d7aa1cabb3108e b8f5f5b42cabf8e197a8303d2cb83a64fbc6d4f30c9a4165a429941cb01d5a0584591e91d115a 93ec086c5c102a8559160002df308202db30820244a003020102020900fadf8685a1337da4300 d06092a864886f70d01010405003053310b3009060355040613025553310e300c060355040813 0554657861733121301f060355040a1318496e7465726e6574205769646769747320507479204 c74643111300f060355040313085375736539334341301e170d3036303632333030343134365a 170d3037303632333030343134365a3053310b30090603 EAP-Message = 0x55040613025553310e300c0603550408130554657861733121301f060355040a1318496e746 5726e6574205769646769747320507479204c74643111300f0603550403130853757365393343 4130819f300d06092a864886f70d010101050003818d0030818902818100c14faa1ea6e09568e c8ed722d4b10b2a61c3230190fb3c00467380a7adb3bb68c9e43cb852467331be7aebf0fd3911 13bab1b94d10f985a30d02c244cba53da49ba0cfb8c8d5d68f029ec94fc94c0aaf9e8ac6e919b cb492be041c164db2caf555e07364ffe37736e104d46dd3ffcaa435249a53648741f8e9bf2c2c f81e17610203010001a381b63081b3301d0603551d0e04 EAP-Message = 0x160414dc0a7a63e7c2df866f01aff0b4609c1a32b966403081830603551d23047c307a8014d c0a7a63e7c2df866f01aff0b4609c1a32b96640a157a4553053310b3009060355040613025553 310e300c0603550408130554657861733121301f060355040a1318496e7465726e65742057696 46769747320507479204c74643111300f060355040313085375736539334341820900fadf8685 a1337da4300c0603551d13040530030101ff300d06092a864886f70d0101040500038181007be bc67e9bb290e997ac42b4be73fea306bc22d2b876ca78d8c53cf69807b81d871357512cb2e832 65cd73a7b329bc17f3269c6ed0b699002eaa3816cbf724 EAP-Message = 0xee6e79677a66fe13dad6e63aef3786054d7f4958543a95e060596eb32e0630d6e8b1fb92bee 54429d0f4eb1aace90ccde7baaecd3fec520f15c2952a6ce739d6f01603010046100000420040 68159e7556e242d4f9a923bb949cdbc6399cf3cef8fb5b15dac5a95dc858b28ab15a136ea0594 3ada87a37f1b22afc116c755e902ae76d04002dde24f949febe16030100860f00008200806797 ba15c43c566668c0691043147bedbf9cdecc530edd93691fdd5a437fbbddc5cf5cc051ae2af10 7a635bf1d9cb22414144effca8d50916e07fef23cad79f6f2824729719a6148593272c3d9dc3f 06 Message-Authenticator = 0x5deaef240bde7b5ddf0ec8f82cfb238c Processing the authorize section of radiusd.conf modcall: entering group authorize for request 3 modcall[authorize]: module "preprocess" returns ok for request 3 modcall[authorize]: module "chap" returns noop for request 3 modcall[authorize]: module "mschap" returns noop for request 3 rlm_realm: No '@' in User-Name = "LIFEBOOK", looking up realm NULL rlm_realm: No such realm "NULL"
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 31 of 38
modcall[authorize]: module "suffix" returns noop for request 3 rlm_eap: EAP packet type response id 4 length 253 rlm_eap: No EAP Start, assuming it's an on-going EAP conversation modcall[authorize]: module "eap" returns updated for request 3 users: Matched entry DEFAULT at line 152 modcall[authorize]: module "files" returns ok for request 3 modcall: group authorize returns updated for request 3 rad_check_password: Found Auth-Type EAP auth: type "EAP" Processing the authenticate section of radiusd.conf modcall: entering group authenticate for request 3 rlm_eap: Request found, released from the list rlm_eap: EAP/tls rlm_eap: processing type tls rlm_eap_tls: Authenticate rlm_eap_tls: processing TLS rlm_eap_tls: Received EAP-TLS First Fragment of the message eaptls_verify returned 9 eaptls_process returned 13 modcall[authenticate]: module "eap" returns handled for request 3 modcall: group authenticate returns handled for request 3 Sending Access-Challenge of id 0 to 172.16.1.1:2048 EAP-Message = 0x010500060d00 Message-Authenticator = 0x00000000000000000000000000000000 State = 0xb3776a248e752a5b898b3a09d7f53563 Finished request 3 Going to the next request Waking up in 6 seconds... rad_recv: Access-Request packet from host 172.16.1.1:2048, id=0, length=247 User-Name = "LIFEBOOK" NAS-IP-Address = 172.16.1.1 Called-Station-Id = "0014bf18fbd1" Calling-Station-Id = "000e35e93319" NAS-Identifier = "0014bf18fbd1" NAS-Port = 3 Framed-MTU = 1400 State = 0xb3776a248e752a5b898b3a09d7f53563 NAS-Port-Type = Wireless-802.11 EAP-Message = 0x020500710d002607d5d30cd4bd2a712b22788615156a932768e07111935e7d1645e2b21eb2e bd9f945a3453a87acb2b4d7aa9d3d77d214030100010116030100301e7de961308a03425adf52 86655c082dfdb3aac03f9d66c2f033144a64a0153c1f6b5677908e0270c442f6ccc0acf06f Message-Authenticator = 0x1ed3f4beeeb8aa26b78949f1766b932a Processing the authorize section of radiusd.conf modcall: entering group authorize for request 4 modcall[authorize]: module "preprocess" returns ok for request 4 modcall[authorize]: module "chap" returns noop for request 4 modcall[authorize]: module "mschap" returns noop for request 4 rlm_realm: No '@' in User-Name = "LIFEBOOK", looking up realm NULL rlm_realm: No such realm "NULL" modcall[authorize]: module "suffix" returns noop for request 4 rlm_eap: EAP packet type response id 5 length 113 rlm_eap: No EAP Start, assuming it's an on-going EAP conversation modcall[authorize]: module "eap" returns updated for request 4 users: Matched entry DEFAULT at line 152 modcall[authorize]: module "files" returns ok for request 4 modcall: group authorize returns updated for request 4
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 32 of 38
rad_check_password: Found Auth-Type EAP auth: type "EAP" Processing the authenticate section of radiusd.conf modcall: entering group authenticate for request 4 rlm_eap: Request found, released from the list rlm_eap: EAP/tls rlm_eap: processing type tls rlm_eap_tls: Authenticate rlm_eap_tls: processing TLS eaptls_verify returned 7 rlm_eap_tls: Done initial handshake rlm_eap_tls: <<< TLS 1.0 Handshake [length 0523], Certificate chain-depth=1, error=0 --> User-Name = LIFEBOOK --> BUF-Name = Suse93CA --> subject = /C=US/ST=Texas/O=Internet Widgits Pty Ltd/CN=Suse93CA --> issuer = /C=US/ST=Texas/O=Internet Widgits Pty Ltd/CN=Suse93CA --> verify return:1 chain-depth=0, error=0 --> User-Name = LIFEBOOK --> BUF-Name = LIFEBOOK --> subject = /C=US/ST=Texas/O=Internet Widgits Pty Ltd/CN=LIFEBOOK --> issuer = /C=US/ST=Texas/O=Internet Widgits Pty Ltd/CN=Suse93CA --> verify return:1 TLS_accept: SSLv3 read client certificate A rlm_eap_tls: <<< TLS 1.0 Handshake [length 0046], ClientKeyExchange TLS_accept: SSLv3 read client key exchange A rlm_eap_tls: <<< TLS 1.0 Handshake [length 0086], CertificateVerify TLS_accept: SSLv3 read certificate verify A rlm_eap_tls: <<< TLS 1.0 ChangeCipherSpec [length 0001] rlm_eap_tls: <<< TLS 1.0 Handshake [length 0010], Finished TLS_accept: SSLv3 read finished A rlm_eap_tls: >>> TLS 1.0 ChangeCipherSpec [length 0001] TLS_accept: SSLv3 write change cipher spec A rlm_eap_tls: >>> TLS 1.0 Handshake [length 0010], Finished TLS_accept: SSLv3 write finished A TLS_accept: SSLv3 flush data (other): SSL negotiation finished successfully SSL Connection Established eaptls_process returned 13 modcall[authenticate]: module "eap" returns handled for request 4 modcall: group authenticate returns handled for request 4 Sending Access-Challenge of id 0 to 172.16.1.1:2048 EAP-Message = 0x010600450d800000003b1403010001011603010030ffc1330acd1b4fa431cd36d692e54683f 23bba1fc746a43454c9638d95747eef167a1ff32a76ce8bdbb32cf3323df5f6 Message-Authenticator = 0x00000000000000000000000000000000 State = 0x686fc26dc863eae98add41589a941fde Finished request 4 Going to the next request Waking up in 6 seconds... rad_recv: Access-Request packet from host 172.16.1.1:2048, id=0, length=140 User-Name = "LIFEBOOK" NAS-IP-Address = 172.16.1.1 Called-Station-Id = "0014bf18fbd1"
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 33 of 38
Calling-Station-Id = "000e35e93319" NAS-Identifier = "0014bf18fbd1" NAS-Port = 3 Framed-MTU = 1400 State = 0x686fc26dc863eae98add41589a941fde NAS-Port-Type = Wireless-802.11 EAP-Message = 0x020600060d00 Message-Authenticator = 0x9b18f0f66649b6c99513a0a457d5ac3b Processing the authorize section of radiusd.conf modcall: entering group authorize for request 5 modcall[authorize]: module "preprocess" returns ok for request 5 modcall[authorize]: module "chap" returns noop for request 5 modcall[authorize]: module "mschap" returns noop for request 5 rlm_realm: No '@' in User-Name = "LIFEBOOK", looking up realm NULL rlm_realm: No such realm "NULL" modcall[authorize]: module "suffix" returns noop for request 5 rlm_eap: EAP packet type response id 6 length 6 rlm_eap: No EAP Start, assuming it's an on-going EAP conversation modcall[authorize]: module "eap" returns updated for request 5 users: Matched entry DEFAULT at line 152 modcall[authorize]: module "files" returns ok for request 5 modcall: group authorize returns updated for request 5 rad_check_password: Found Auth-Type EAP auth: type "EAP" Processing the authenticate section of radiusd.conf modcall: entering group authenticate for request 5 rlm_eap: Request found, released from the list rlm_eap: EAP/tls rlm_eap: processing type tls rlm_eap_tls: Authenticate rlm_eap_tls: processing TLS rlm_eap_tls: Received EAP-TLS ACK message rlm_eap_tls: ack handshake is finished eaptls_verify returned 3 eaptls_process returned 3 rlm_eap: Freeing handler modcall[authenticate]: module "eap" returns ok for request 5 modcall: group authenticate returns ok for request 5 Login OK: [LIFEBOOK/<no User-Password attribute>] (from client linksys port 3 cli 000e35e93319) Sending Access-Accept of id 0 to 172.16.1.1:2048 MS-MPPE-Recv-Key = 0xcf735d5779fd012c96f4245e2e55f39c14764742ef8d772e3b2688064bb8b63c MS-MPPE-Send-Key = 0x2962bb710502043ca21d199bf97d3477042dc37f1529d9086c0b9603cd66b183 EAP-Message = 0x03060004 Message-Authenticator = 0x00000000000000000000000000000000 User-Name = "LIFEBOOK" Finished request 5 Going to the next request Waking up in 6 seconds... rad_recv: Access-Request packet from host 172.16.1.1:2048, id=0, length=247 User-Name = "LIFEBOOK" NAS-IP-Address = 172.16.1.1 Called-Station-Id = "0014bf18fbd1" Calling-Station-Id = "000e35e93319" NAS-Identifier = "0014bf18fbd1"
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 34 of 38
NAS-Port = 3 Framed-MTU = 1400 State = 0xb3776a248e752a5b898b3a09d7f53563 NAS-Port-Type = Wireless-802.11 EAP-Message = 0x020500710d002607d5d30cd4bd2a712b22788615156a932768e07111935e7d1645e2b21eb2e bd9f945a3453a87acb2b4d7aa9d3d77d214030100010116030100301e7de961308a03425adf52 86655c082dfdb3aac03f9d66c2f033144a64a0153c1f6b5677908e0270c442f6ccc0acf06f Message-Authenticator = 0x1ed3f4beeeb8aa26b78949f1766b932a Processing the authorize section of radiusd.conf modcall: entering group authorize for request 4 modcall[authorize]: module "preprocess" returns ok for request 4 modcall[authorize]: module "chap" returns noop for request 4 modcall[authorize]: module "mschap" returns noop for request 4 rlm_realm: No '@' in User-Name = "LIFEBOOK", looking up realm NULL rlm_realm: No such realm "NULL" modcall[authorize]: module "suffix" returns noop for request 4 rlm_eap: EAP packet type response id 5 length 113 rlm_eap: No EAP Start, assuming it's an on-going EAP conversation modcall[authorize]: module "eap" returns updated for request 4 users: Matched entry DEFAULT at line 152 modcall[authorize]: module "files" returns ok for request 4 modcall: group authorize returns updated for request 4 rad_check_password: Found Auth-Type EAP auth: type "EAP" Processing the authenticate section of radiusd.conf modcall: entering group authenticate for request 4 rlm_eap: Request found, released from the list rlm_eap: EAP/tls rlm_eap: processing type tls rlm_eap_tls: Authenticate rlm_eap_tls: processing TLS eaptls_verify returned 7 rlm_eap_tls: Done initial handshake rlm_eap_tls: <<< TLS 1.0 Handshake [length 0523], Certificate chain-depth=1, error=0 --> User-Name = LIFEBOOK --> BUF-Name = Suse93CA --> subject = /C=US/ST=Texas/O=Internet Widgits Pty Ltd/CN=Suse93CA --> issuer = /C=US/ST=Texas/O=Internet Widgits Pty Ltd/CN=Suse93CA --> verify return:1 chain-depth=0, error=0 --> User-Name = LIFEBOOK --> BUF-Name = LIFEBOOK --> subject = /C=US/ST=Texas/O=Internet Widgits Pty Ltd/CN=LIFEBOOK --> issuer = /C=US/ST=Texas/O=Internet Widgits Pty Ltd/CN=Suse93CA --> verify return:1 TLS_accept: SSLv3 read client certificate A rlm_eap_tls: <<< TLS 1.0 Handshake [length 0046], ClientKeyExchange TLS_accept: SSLv3 read client key exchange A rlm_eap_tls: <<< TLS 1.0 Handshake [length 0086], CertificateVerify TLS_accept: SSLv3 read certificate verify A rlm_eap_tls: <<< TLS 1.0 ChangeCipherSpec [length 0001] rlm_eap_tls: <<< TLS 1.0 Handshake [length 0010], Finished TLS_accept: SSLv3 read finished A
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 35 of 38
rlm_eap_tls: >>> TLS 1.0 ChangeCipherSpec [length 0001] TLS_accept: SSLv3 write change cipher spec A rlm_eap_tls: >>> TLS 1.0 Handshake [length 0010], Finished TLS_accept: SSLv3 write finished A TLS_accept: SSLv3 flush data (other): SSL negotiation finished successfully SSL Connection Established eaptls_process returned 13 modcall[authenticate]: module "eap" returns handled for request 4 modcall: group authenticate returns handled for request 4 Sending Access-Challenge of id 0 to 172.16.1.1:2048 EAP-Message = 0x010600450d800000003b1403010001011603010030ffc1330acd1b4fa431cd36d692e54683f 23bba1fc746a43454c9638d95747eef167a1ff32a76ce8bdbb32cf3323df5f6 Message-Authenticator = 0x00000000000000000000000000000000 State = 0x686fc26dc863eae98add41589a941fde Finished request 4 Going to the next request Waking up in 6 seconds... rad_recv: Access-Request packet from host 172.16.1.1:2048, id=0, length=140 User-Name = "LIFEBOOK" NAS-IP-Address = 172.16.1.1 Called-Station-Id = "0014bf18fbd1" Calling-Station-Id = "000e35e93319" NAS-Identifier = "0014bf18fbd1" NAS-Port = 3 Framed-MTU = 1400 State = 0x686fc26dc863eae98add41589a941fde NAS-Port-Type = Wireless-802.11 EAP-Message = 0x020600060d00 Message-Authenticator = 0x9b18f0f66649b6c99513a0a457d5ac3b Processing the authorize section of radiusd.conf modcall: entering group authorize for request 5 modcall[authorize]: module "preprocess" returns ok for request 5 modcall[authorize]: module "chap" returns noop for request 5 modcall[authorize]: module "mschap" returns noop for request 5 rlm_realm: No '@' in User-Name = "LIFEBOOK", looking up realm NULL rlm_realm: No such realm "NULL" modcall[authorize]: module "suffix" returns noop for request 5 rlm_eap: EAP packet type response id 6 length 6 rlm_eap: No EAP Start, assuming it's an on-going EAP conversation modcall[authorize]: module "eap" returns updated for request 5 users: Matched entry DEFAULT at line 152 modcall[authorize]: module "files" returns ok for request 5 modcall: group authorize returns updated for request 5 rad_check_password: Found Auth-Type EAP auth: type "EAP" Processing the authenticate section of radiusd.conf modcall: entering group authenticate for request 5 rlm_eap: Request found, released from the list rlm_eap: EAP/tls rlm_eap: processing type tls rlm_eap_tls: Authenticate rlm_eap_tls: processing TLS rlm_eap_tls: Received EAP-TLS ACK message rlm_eap_tls: ack handshake is finished eaptls_verify returned 3
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 36 of 38
eaptls_process returned 3 rlm_eap: Freeing handler modcall[authenticate]: module "eap" returns ok for request 5 modcall: group authenticate returns ok for request 5 Login OK: [LIFEBOOK/<no User-Password attribute>] (from client linksys port 3 cli 000e35e93319) Sending Access-Accept of id 0 to 172.16.1.1:2048 MS-MPPE-Recv-Key = 0xcf735d5779fd012c96f4245e2e55f39c14764742ef8d772e3b2688064bb8b63c MS-MPPE-Send-Key = 0x2962bb710502043ca21d199bf97d3477042dc37f1529d9086c0b9603cd66b183 EAP-Message = 0x03060004 Message-Authenticator = 0x00000000000000000000000000000000 User-Name = "LIFEBOOK" Finished request 5 Going to the next request --- Walking the entire request list --Waking up in 6 seconds... --- Walking the entire request list --Cleaning up request 5 ID 0 with timestamp 44a0b203 Nothing to do. Sleeping until we see a request.
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 37 of 38
2. The listing below shows a problem. Do not be misguided; this has nothing to do with the MTU size. The Linux virtual NIC adapter had to be manually assigned to the physical Ethernet port to correct it. rad_recv: Access-Request packet from host 172.16.1.1:2053, id=0, length=129 User-Name = "LIFEBOOK" NAS-IP-Address = 172.16.1.1 Called-Station-Id = "0014bf18fbd1" Calling-Station-Id = "000e35e93319" NAS-Identifier = "0014bf18fbd1" NAS-Port = 3 Framed-MTU = 1400 NAS-Port-Type = Wireless-802.11 EAP-Message = 0x0201000d014c494645424f4f4b Message-Authenticator = 0x3431b5fa7e98a9995472157a0099025b Processing the authorize section of radiusd.conf modcall: entering group authorize for request 0 modcall[authorize]: module "preprocess" returns ok for request 0 modcall[authorize]: module "chap" returns noop for request 0 modcall[authorize]: module "mschap" returns noop for request 0 rlm_realm: No '@' in User-Name = "LIFEBOOK", looking up realm NULL rlm_realm: No such realm "NULL" modcall[authorize]: module "suffix" returns noop for request 0 rlm_eap: EAP packet type response id 1 length 13 rlm_eap: No EAP Start, assuming it's an on-going EAP conversation modcall[authorize]: module "eap" returns updated for request 0 users: Matched entry DEFAULT at line 152 modcall[authorize]: module "files" returns ok for request 0 modcall: group authorize returns updated for request 0 rad_check_password: Found Auth-Type EAP auth: type "EAP" Processing the authenticate section of radiusd.conf modcall: entering group authenticate for request 0 rlm_eap: EAP Identity rlm_eap: processing type tls Segmentation fault
Problems with installing OpenSSL and FreeRADIUS latest versions. 1. In some cases, building the newest version can cause problems, bugs within the compilation scripts can be very difficult to resolve. As you compile, messages as “silently not building rlm_eap” means a particular module was not included. 2. Using the versions included within your Linux distribution adds a level of assurance, since these have been tested to work properly. 3. First get to work the basic settings, then start to build additional items into it; otherwise it will be almost impossible to debug. 4. There are other configuration files for RADIUS, as they are, for example, the users,conf file allows for almost anything to log in. This is needed for initial debug, later on you can come back and start developing more security. 5. FreeRADIUS supports MySQL and other systems. It is really flexible, but it takes time to setup.
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06
Linux based RADIUS Setup
Page 38 of 38
Patches & Updates •
If you will recall from our initial configuration, DNS was never configured. It is left to the student to manually set up DNS on the Linux box.
•
Once this works, the first update that must be applied is the kernel. One of the options available to you is to delete the source files, uncheck it, if later on you need to recompile something e.g. VMWare drivers, the kernel header files are needed.
•
Keep updating the kernel as needed until it no longer shows up on the list.
•
FreeRadius and OpenSSL are next in priority. For these you do no need to keep the installation files. To update, run YAST, it is the fifth icon going from left to right, and on the left pane you will see Online Update, click on it. After a few screens related to connectivity, click on the option of Manually Select patches, then click Next. The rest is very intuitive. After any changes, test the RadiusSERVER
•
Student Activities •
The setup shows how to use TLS, the student should now configure MS-CHAPv2.
Questions: 1. Is it advisable to store passwords in a certificate? 2. What are the options that control this in openssl? RESOURCES: • www.freeradius.org The links software itself, and links to other articles • www.aspisos.org/wiki/index.php?n=Guides.EAP-TLS#toc1 Provides the information to setup EAP-TLS, the procedure is not centered in a particular Linux distribution, it shows how to create a script for setting multiple users • www.urbanwireless.co.nz/?p=3 This document was based on the Urban Wireless Information site
FreeRADIUS EAP-TLS.doc
Saved: 6/28/06