Freeradius with Active Directory
Hi, I am following the tutorial at: http://deployingradius.com/documents/configuration/active_directory.html but have hit a problem. Everything works up to and including the command line test using ntlm_auth but after I create the file raddb/modules/ntlm_auth and make the changes to raddb/sites-enabled/default , raddb/sites-enabled/inner-tunnel and the users file I get an error when running radiusd -X Error is: /etc/raddb/modules/ntlm_auth[9]: Failed to link to module 'rlm_ntlm_auth': file not found I have confirmed that the ntlm_auth file does exist in etc/raddb/modules/ I am running Freeradius 2.1.6 on OpenSuse 11.2 Here is the debug output: FreeRADIUS Version 2.1.6, for host i686-pc-linux-gnu, built on Nov 20 2009 at 09:43:24 Copyright (C) 1999-2009 The FreeRADIUS server project and contributors. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. You may redistribute copies of FreeRADIUS under the terms of the GNU General Public License v2. Starting - reading configuration files ... including configuration file /etc/raddb/radiusd.conf including configuration file /etc/raddb/proxy.conf including configuration file /etc/raddb/clients.conf including files in directory /etc/raddb/modules/ including configuration file /etc/raddb/modules/inner-eap including configuration file /etc/raddb/modules/pap including configuration file /etc/raddb/modules/ippool including configuration file /etc/raddb/modules/expiration including configuration file /etc/raddb/modules/files including configuration file /etc/raddb/modules/attr_rewrite including configuration file /etc/raddb/modules/detail.example.com including configuration file /etc/raddb/modules/exec including configuration file /etc/raddb/modules/etc_group including configuration file /etc/raddb/modules/preprocess including configuration file /etc/raddb/modules/ntlm_auth including configuration file /etc/raddb/modules/detail.log including configuration file /etc/raddb/modules/passwd including configuration file /etc/raddb/modules/linelog including configuration file /etc/raddb/modules/radutmp including configuration file /etc/raddb/modules/smsotp including configuration file /etc/raddb/modules/mac2ip including configuration file /etc/raddb/modules/logintime including configuration file /etc/raddb/modules/unix including configuration file /etc/raddb/modules/attr_filter including configuration file /etc/raddb/modules/ldap including configuration file /etc/raddb/modules/counter including configuration file /etc/raddb/modules/mac2vlan including configuration file /etc/raddb/modules/sqlcounter_expire_on_login including configuration file /etc/raddb/modules/always including configuration file /etc/raddb/modules/expr including configuration file /etc/raddb/modules/sradutmp including configuration file /etc/raddb/modules/policy including configuration file /etc/raddb/modules/wimax including configuration file /etc/raddb/modules/sql_log including configuration file /etc/raddb/modules/realm including configuration file /etc/raddb/modules/echo including configuration file /etc/raddb/modules/acct_unique including configuration file /etc/raddb/modules/otp including configuration file /etc/raddb/modules/mschap including configuration file /etc/raddb/modules/krb5 including configuration file /etc/raddb/modules/smbpasswd including configuration file /etc/raddb/modules/checkval including configuration file /etc/raddb/modules/digest including configuration file /etc/raddb/modules/pam including configuration file /etc/raddb/modules/chap including configuration file /etc/raddb/modules/perl including configuration file /etc/raddb/modules/detail including configuration file /etc/raddb/eap.conf including configuration file /etc/raddb/policy.conf including files in directory /etc/raddb/sites-enabled/ including configuration file /etc/raddb/sites-enabled/control-socket including configuration file /etc/raddb/sites-enabled/inner-tunnel including configuration file /etc/raddb/sites-enabled/default group = radiusd user = radiusd including dictionary file /etc/raddb/dictionary main { prefix = "/usr" localstatedir = "/var" logdir = "/var/log/radius" libdir = "/usr/lib/freeradius" radacctdir = "/var/log/radius/radacct" hostname_lookups = no max_request_time = 30 cleanup_delay = 5 max_requests = 1024 allow_core_dumps = no pidfile = "/var/run/radiusd/radiusd.pid" checkrad = "/usr/sbin/checkrad" debug_level = 0 proxy_requests = yes log { stripped_names = no auth = yes auth_badpass = yes auth_goodpass = no } security { max_attributes = 200 reject_delay = 1 status_server = yes } } radiusd: #### Loading Realms and Home Servers #### proxy server { retry_delay = 5 retry_count = 3 default_fallback = no dead_time = 120 wake_all_if_all_dead = no } home_server localhost { ipaddr = 127.0.0.1 port = 1812 type = "auth" secret = "testing123" response_window = 20 max_outstanding = 65536 require_message_authenticator = no zombie_period = 40 status_check = "status-server" ping_interval = 30 check_interval = 30 num_answers_to_alive = 3 num_pings_to_alive = 3 revive_interval = 120 status_check_timeout = 4 irt = 2 mrt = 16 mrc = 5 mrd = 30 } home_server_pool my_auth_failover { type = fail-over home_server = localhost } realm example.com { auth_pool = my_auth_failover } realm LOCAL { } radiusd: #### Loading Clients #### client localhost { ipaddr = 127.0.0.1 require_message_authenticator = no secret = "testing123" nastype = "other" } client xxx.xxx.xxx.xxx { require_message_authenticator = no secret = "testing123" shortname = "self" } client xxx.xxx.xxx.xxx { require_message_authenticator = no secret = "testing123" shortname = "marks-pc(vm)" } client xxx.xxx.xxx.xxx/23 { require_message_authenticator = no secret = "testing123" shortname = "CiscoSwitches" nastype = "cisco" } client xxx.xxx.xxx.xxx/23 { require_message_authenticator = no secret = "testing123" shortname = "CiscoSwitches" nastype = "cisco" } radiusd: #### Instantiating modules #### instantiate { Module: Linked to module rlm_exec Module: Instantiating exec exec { wait = no input_pairs = "request" shell_escape = yes } Module: Linked to module rlm_expr Module: Instantiating expr Module: Linked to module rlm_expiration Module: Instantiating expiration expiration { reply-message = "Password Has Expired " } Module: Linked to module rlm_logintime Module: Instantiating logintime logintime { reply-message = "You are calling outside your allowed timespan " minimum-timeout = 60 } } radiusd: #### Loading Virtual Servers #### server inner-tunnel { modules { Module: Checking authenticate {...} for more modules to load Module: Linked to module rlm_pap Module: Instantiating pap pap { encryption_scheme = "auto" auto_header = no } Module: Linked to module rlm_chap Module: Instantiating chap Module: Linked to module rlm_mschap Module: Instantiating mschap mschap { use_mppe = yes require_encryption = no require_strong = no with_ntdomain_hack = no } Module: Linked to module rlm_unix Module: Instantiating unix unix { radwtmp = "/var/log/radius/radwtmp" } Module: Linked to module rlm_eap Module: Instantiating eap eap { default_eap_type = "md5" timer_expire = 60 ignore_unknown_eap_types = no cisco_accounting_username_bug = no max_sessions = 2048 } Module: Linked to sub-module rlm_eap_md5 Module: Instantiating eap-md5 Module: Linked to sub-module rlm_eap_leap Module: Instantiating eap-leap Module: Linked to sub-module rlm_eap_gtc Module: Instantiating eap-gtc gtc { challenge = "Password: " auth_type = "PAP" } Module: Linked to sub-module rlm_eap_tls Module: Instantiating eap-tls tls { rsa_key_exchange = no dh_key_exchange = yes rsa_key_length = 512 dh_key_length = 512 verify_depth = 0 pem_file_type = yes private_key_file = "/etc/raddb/certs/server.pem" certificate_file = "/etc/raddb/certs/server.pem" CA_file = "/etc/raddb/certs/ca.pem" private_key_password = "whatever" dh_file = "/etc/raddb/certs/dh" random_file = "/etc/raddb/certs/random" fragment_size = 1024 include_length = yes check_crl = no cipher_list = "DEFAULT" make_cert_command = "/etc/raddb/certs/bootstrap" cache { enable = no lifetime = 24 max_entries = 255 } } Module: Linked to sub-module rlm_eap_ttls Module: Instantiating eap-ttls ttls { default_eap_type = "md5" copy_request_to_tunnel = no use_tunneled_reply = no virtual_server = "inner-tunnel" include_length = yes } Module: Linked to sub-module rlm_eap_peap Module: Instantiating eap-peap peap { default_eap_type = "mschapv2" copy_request_to_tunnel = no use_tunneled_reply = no proxy_tunneled_request_as_eap = yes virtual_server = "inner-tunnel" } Module: Linked to sub-module rlm_eap_mschapv2 Module: Instantiating eap-mschapv2 mschapv2 { with_ntdomain_hack = no } /etc/raddb/modules/ntlm_auth[9]: Failed to link to module 'rlm_ntlm_auth': file not found /etc/raddb/sites-enabled/inner-tunnel[223]: Failed to find module "ntlm_auth". /etc/raddb/sites-enabled/inner-tunnel[176]: Errors parsing authenticate section. Errors initializing modules Can anybody tell me where I am going wrong? Thanks, Mark. ******************************************************************************************************************** This message may contain confidential information. If you are not the intended recipient please inform the sender that you have received the message in error before deleting it. Please do not disclose, copy or distribute information in this e-mail or take any action in reliance on its contents: to do so is strictly prohibited and may be unlawful. Thank you for your co-operation. NHSmail is the secure email and directory service available for all NHS staff in England and Scotland NHSmail is approved for exchanging patient data and other sensitive information with NHSmail and GSI recipients NHSmail provides an email address for your career in the NHS and can be accessed anywhere For more information and to find out how you can switch, visit www.connectingforhealth.nhs.uk/nhsmail ********************************************************************************************************************
Hi,
Everything works up to and including the command line test using ntlm_auth but after I create the file raddb/modules/ntlm_auth and make the changes to raddb/sites-enabled/default , raddb/sites-enabled/inner-tunnel and the users file I get an error when running radiusd -X
Error is: /etc/raddb/modules/ntlm_auth[9]: Failed to link to module 'rlm_ntlm_auth': file not found
built from the source code ? did you check the output during the ./configure stage? please re-run the configure part again but, for vrevity, pipe it through a grep process to check output for things that are wrong....eg if you used just ./configure then please run ./configure | grep WARN and see what it complains about....i suspect you dont have required samba dev tools installed. yes, the ntlm_auth module file will be there...because thats just simple text config. alan
Hi, Not built from source, installed using freeradius-server-2.1.6-6.1.i586.rpm Mark. ________________________________________ From: freeradius-users-bounces+mark.whitmarsh=nhs.net@lists.freeradius.org [freeradius-users-bounces+mark.whitmarsh=nhs.net@lists.freeradius.org] On Behalf Of Alan Buxey [A.L.M.Buxey@lboro.ac.uk] Sent: 10 March 2010 11:10 To: FreeRadius users mailing list Subject: Re: Freeradius with Active Directory Hi,
Everything works up to and including the command line test using ntlm_auth but after I create the file raddb/modules/ntlm_auth and make the changes to raddb/sites-enabled/default , raddb/sites-enabled/inner-tunnel and the users file I get an error when running radiusd -X
Error is: /etc/raddb/modules/ntlm_auth[9]: Failed to link to module 'rlm_ntlm_auth': file not found
built from the source code ? did you check the output during the ./configure stage? please re-run the configure part again but, for vrevity, pipe it through a grep process to check output for things that are wrong....eg if you used just ./configure then please run ./configure | grep WARN and see what it complains about....i suspect you dont have required samba dev tools installed. yes, the ntlm_auth module file will be there...because thats just simple text config. alan - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html ******************************************************************************************************************** This message may contain confidential information. If you are not the intended recipient please inform the sender that you have received the message in error before deleting it. Please do not disclose, copy or distribute information in this e-mail or take any action in reliance on its contents: to do so is strictly prohibited and may be unlawful. Thank you for your co-operation. NHSmail is the secure email and directory service available for all NHS staff in England and Scotland NHSmail is approved for exchanging patient data and other sensitive information with NHSmail and GSI recipients NHSmail provides an email address for your career in the NHS and can be accessed anywhere For more information and to find out how you can switch, visit www.connectingforhealth.nhs.uk/nhsmail ********************************************************************************************************************
El mié, 10-03-2010 a las 10:29 +0000, Whitmarsh Mark (Leeds Teaching Hospitals NHS Trust) escribió:
Hi, I am following the tutorial at: http://deployingradius.com/documents/configuration/active_directory.html but have hit a problem. Everything works up to and including the command line test using ntlm_auth but after I create the file raddb/modules/ntlm_auth and make the changes to raddb/sites-enabled/default , raddb/sites-enabled/inner-tunnel and the users file I get an error when running radiusd -X
Error is: /etc/raddb/modules/ntlm_auth[9]: Failed to link to module 'rlm_ntlm_auth': file not found
I have confirmed that the ntlm_auth file does exist in etc/raddb/modules/
I am running Freeradius 2.1.6 on OpenSuse 11.2
.../... I'm not sure but I think that in order to use ntlm_auth protocol it is necessary include it in your site-enable (default by default) ie: add ntlm_auth in authorize section of file sites\enable\default -- Por favor, NO utilice formatos de archivo propietarios para el intercambio de documentos, como DOC y XLS, sino HTML, RTF, TXT, CSV o cualquier otro que no obligue a utilizar un programa de un fabricante concreto para tratar la información contenida en él. SALUD.
Hi,
Everything works up to and including the command line test using ntlm_auth but after I create the file raddb/modules/ntlm_auth and make the changes to raddb/sites-enabled/default , raddb/sites-enabled/inner-tunnel and the users file I get an error when running radiusd -X
can you cut and past your ntlm_auth line (comment out with XXX's any sensitive data) and the inner-tunnel and default config files - just the section around where you made changes - at least 20 lines before and after. (once again, comment out any sensitive values) alan
Hi, I've included the ntlm_auth command line - is that what you meant by
can you cut and past your ntlm_auth line
ntlm_auth --request-nt-key --domain=XXX.local --username=XXX password: NT_STATUS_OK: Success (0x0) ======================================= The /etc./raddb/modules/ntlm_auth file: # -*- text -*- # # $Id$ # NTLM module # # To authenticate requests using AD. # ntlm_auth { wait = yes program = "/usr/bin/ntlm_auth --request-nt-key --domain=XXX --username=%{mschap:User-Name} --password=%{User-Password}" } ======================================= ======================================= Extract from /etc/raddb/sites-enabled/default # Uncomment it if you want to use ldap for authentication # # Note that this means "check plain-text password against # the ldap database", which means that EAP won't work, # as it does not supply a plain-text password. # Auth-Type LDAP { # ldap # } # # Allow EAP authentication. eap ntlm_auth } # # Pre-accounting. Decide which accounting type to use. # ======================================= ======================================= Extract from /etc/raddb/sites-enabled/inner-tunnel # Uncomment it if you want to use ldap for authentication # # Note that this means "check plain-text password against # the ldap database", which means that EAP won't work, # as it does not supply a plain-text password. # Auth-Type LDAP { # ldap # } # # Allow EAP authentication. eap ntlm_auth } ###################################################################### # # There are no accounting requests inside of EAP-TTLS or PEAP # tunnels. # ###################################################################### # Session database, used for checking Simultaneous-Use. Either the radutmp ======================================= Thanks, Mark. ________________________________________ From: freeradius-users-bounces+mark.whitmarsh=nhs.net@lists.freeradius.org [freeradius-users-bounces+mark.whitmarsh=nhs.net@lists.freeradius.org] On Behalf Of Alan Buxey [A.L.M.Buxey@lboro.ac.uk] Sent: 10 March 2010 14:07 To: FreeRadius users mailing list Subject: Re: Freeradius with Active Directory Hi,
Everything works up to and including the command line test using ntlm_auth but after I create the file raddb/modules/ntlm_auth and make the changes to raddb/sites-enabled/default , raddb/sites-enabled/inner-tunnel and the users file I get an error when running radiusd -X
can you cut and past your ntlm_auth line (comment out with XXX's any sensitive data) and the inner-tunnel and default config files - just the section around where you made changes - at least 20 lines before and after. (once again, comment out any sensitive values) alan - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html ******************************************************************************************************************** This message may contain confidential information. If you are not the intended recipient please inform the sender that you have received the message in error before deleting it. Please do not disclose, copy or distribute information in this e-mail or take any action in reliance on its contents: to do so is strictly prohibited and may be unlawful. Thank you for your co-operation. NHSmail is the secure email and directory service available for all NHS staff in England and Scotland NHSmail is approved for exchanging patient data and other sensitive information with NHSmail and GSI recipients NHSmail provides an email address for your career in the NHS and can be accessed anywhere For more information and to find out how you can switch, visit www.connectingforhealth.nhs.uk/nhsmail ********************************************************************************************************************
On 10/03/10 15:52, Whitmarsh Mark (Leeds Teaching Hospitals NHS Trust) wrote:
Hi, I've included the ntlm_auth command line - is that what you meant by
can you cut and past your ntlm_auth line
ntlm_auth --request-nt-key --domain=XXX.local --username=XXX password: NT_STATUS_OK: Success (0x0)
======================================= The /etc./raddb/modules/ntlm_auth file: # -*- text -*- # # $Id$ # NTLM module # # To authenticate requests using AD. #
ntlm_auth { wait = yes program = "/usr/bin/ntlm_auth --request-nt-key --domain=XXX --username=%{mschap:User-Name} --password=%{User-Password}" }
This is wrong. The syntax is: module { options } ...or: module instance-name { options } So you want: exec ntlm_auth { options } The "--request-nt-key" option is redundant when doing plaintext user/password check combos - it only applies to NTLM challenge/response. Also, you are aware this config will only authenticate PAP requests, yes?
Oops! Thank you for pointing that out. I've changed that and now radiusd -X loads without errors. On to the next stage of testing. The end goal is to get our Cisco switches to back-off login requests to Active Directory via Freeradius. We've got the switches talking to freeradius and can do local auth with a user on the freeradius server but now comes the tricky bit I think. Thanks again for your help, Mark. ________________________________________ From: freeradius-users-bounces+mark.whitmarsh=nhs.net@lists.freeradius.org [freeradius-users-bounces+mark.whitmarsh=nhs.net@lists.freeradius.org] On Behalf Of Phil Mayers [p.mayers@imperial.ac.uk] Sent: 10 March 2010 16:21 To: freeradius-users@lists.freeradius.org Subject: Re: Freeradius with Active Directory On 10/03/10 15:52, Whitmarsh Mark (Leeds Teaching Hospitals NHS Trust) wrote:
Hi, I've included the ntlm_auth command line - is that what you meant by
can you cut and past your ntlm_auth line
ntlm_auth --request-nt-key --domain=XXX.local --username=XXX password: NT_STATUS_OK: Success (0x0)
======================================= The /etc./raddb/modules/ntlm_auth file: # -*- text -*- # # $Id$ # NTLM module # # To authenticate requests using AD. #
ntlm_auth { wait = yes program = "/usr/bin/ntlm_auth --request-nt-key --domain=XXX --username=%{mschap:User-Name} --password=%{User-Password}" }
This is wrong. The syntax is: module { options } ...or: module instance-name { options } So you want: exec ntlm_auth { options } The "--request-nt-key" option is redundant when doing plaintext user/password check combos - it only applies to NTLM challenge/response. Also, you are aware this config will only authenticate PAP requests, yes? - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html ******************************************************************************************************************** This message may contain confidential information. If you are not the intended recipient please inform the sender that you have received the message in error before deleting it. Please do not disclose, copy or distribute information in this e-mail or take any action in reliance on its contents: to do so is strictly prohibited and may be unlawful. Thank you for your co-operation. NHSmail is the secure email and directory service available for all NHS staff in England and Scotland NHSmail is approved for exchanging patient data and other sensitive information with NHSmail and GSI recipients NHSmail provides an email address for your career in the NHS and can be accessed anywhere For more information and to find out how you can switch, visit www.connectingforhealth.nhs.uk/nhsmail ********************************************************************************************************************
Hi,
The /etc./raddb/modules/ntlm_auth file:
ntlm_auth { wait = yes program = "/usr/bin/ntlm_auth --request-nt-key --domain=XXX --username=%{mschap:User-Name} --password=%{User-Password}" }
that is wrong - I think Phil may have already said this (just saw email drop into mailbox) read the web document again and note the difference ntlm_auth ISNT a code module. you want to use the 'exec' code module to launch ntlm_auth. it will then work alan
participants (4)
-
Alan Buxey -
Phil Mayers -
Trujillo Carmona, Antonio -
Whitmarsh Mark (Leeds Teaching Hospitals NHS Trust)