Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    FreeRADIUS 3.x package is here! Feedback, please

    Scheduled Pinned Locked Moved pfSense Packages
    60 Posts 14 Posters 22.1k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • jimpJ
      jimp Rebel Alliance Developer Netgate
      last edited by

      Hmm, the password formatting is identical between versions. Their parser must have changed.

      Can you try this patch?

      diff --git a/usr/local/pkg/freeradius.inc b/usr/local/pkg/freeradius.inc
      index 87753d6..418b28a 100644
      --- a/usr/local/pkg/freeradius.inc
      +++ b/usr/local/pkg/freeradius.inc
      @@ -2725,7 +2725,7 @@ function freeradius_modulesldap_resync($restart_svc = true) {
       	$varmodulesldapserver = ($arrmodulesldap['varmodulesldapserver'] ?: 'ldap.example.com');
       	$varmodulesldapserverport = ($arrmodulesldap['varmodulesldapserverport'] ?: '389');
       	$varmodulesldapidentity = ($arrmodulesldap['varmodulesldapidentity'] ?: 'cn=admin,o=My Company Ltd,c=US');
      -	$varmodulesldappassword = ($arrmodulesldap['varmodulesldappassword'] ?: 'mypass');
      +	$varmodulesldappassword = (escapeshellarg($arrmodulesldap['varmodulesldappassword']) ?: 'mypass');
       	$varmodulesldapbasedn = ($arrmodulesldap['varmodulesldapbasedn'] ?: 'o=My Company Ltd,c=US');
       	$varmodulesldapfilter = ($arrmodulesldap['varmodulesldapfilter'] ?: '(uid=%{%{Stripped-User-Name}:-%{User-Name}})');
       	$varmodulesldapbasefilter = ($arrmodulesldap['varmodulesldapbasefilter'] ?: '(objectclass=radiusprofile)');
      @@ -2738,7 +2738,7 @@ function freeradius_modulesldap_resync($restart_svc = true) {
       	$varmodulesldap2server = ($arrmodulesldap['varmodulesldap2server'] ?: 'ldap.example.com');
       	$varmodulesldap2serverport = ($arrmodulesldap['varmodulesldap2serverport'] ?: '389');
       	$varmodulesldap2identity = ($arrmodulesldap['varmodulesldap2identity'] ?: 'cn=admin,o=My Company Ltd,c=US');
      -	$varmodulesldap2password = ($arrmodulesldap['varmodulesldap2password'] ?: 'mypass');
      +	$varmodulesldap2password = (escapeshellarg($arrmodulesldap['varmodulesldap2password']) ?: 'mypass');
       	$varmodulesldap2basedn = ($arrmodulesldap['varmodulesldap2basedn'] ?: 'o=My Company Ltd,c=US');
       	$varmodulesldap2filter = ($arrmodulesldap['varmodulesldap2filter'] ?: '(uid=%{%{Stripped-User-Name}:-%{User-Name}})');
       	$varmodulesldap2basefilter = ($arrmodulesldap['varmodulesldap2basefilter'] ?: '(objectclass=radiusprofile)');
      
      

      As for STARTTLS I can't really comment on that behavior. I'd expect the initial exchange to be plain until STARTTLS kicked in and then it should be encrypted, but it looks like we're setting all the correct options, it may also be something in FreeRADIUS 3.x that changed.

      I don't have a viable test setup for LDAP-backed connections, I'd have to try to rig one up and test more.

      Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

      Need help fast? Netgate Global Support!

      Do not Chat/PM for help!

      1 Reply Last reply Reply Quote 0
      • G
        gerby123
        last edited by

        I'll give that a shot and report back as soon as I can; pulled to another issue at the moment.

        1 Reply Last reply Reply Quote 0
        • G
          gerby123
          last edited by

          That patch does appear to have resolved the issue with the password contents according to radiusd -C -X; not sure whether it's transmitting correctly to the LDAP server yet.

          1 Reply Last reply Reply Quote 0
          • G
            gerby123
            last edited by

            Disabling STARTLS and moving to 636 has resolved further issues.  I am still having LDAP integration issues and may need to modify some config files by hand.

            1 Reply Last reply Reply Quote 0
            • NogBadTheBadN
              NogBadTheBad
              last edited by

              Setup a WPA2-EAP SSID for testing works fine.

              Thought I'd have a play with accounting.

              One thing that would be nice would be changing the port when you change the interface type, ie changing from Auth to Accounting the port stays on 1812 rather than changing to 1813

              Not sure if this was the same with V2.

              Andy

              1 x Netgate SG-4860 - 3 x Linksys LGS308P - 1 x Aruba InstantOn AP22

              1 Reply Last reply Reply Quote 0
              • jimpJ
                jimp Rebel Alliance Developer Netgate
                last edited by

                @gerby123:

                That patch does appear to have resolved the issue with the password contents according to radiusd -C -X; not sure whether it's transmitting correctly to the LDAP server yet.

                I just pushed an update that contains the patch (and that's the only change), so next time you update that your password should keep working.

                Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                Need help fast? Netgate Global Support!

                Do not Chat/PM for help!

                1 Reply Last reply Reply Quote 0
                • L
                  luckyfreddy
                  last edited by

                  Hi guys,

                  great job. Thanks for developing. I've test the google authentificator otp while using OpenVPN with freeradius. First i was a little bit confused, because i expected an automatic generated init secret-code and don't know what i had to type in. After reading in this topic i found out, that i've to create an base32 code. Now it runs glad. It would be nice, if the secret-code will be generated automaticaly und an icon is behind the input-bar, so that there could be generated another one, if you click to them.

                  Sencond it would be fantastic if it would possible to login with freeradius and otp in the webgui.

                  Many thanks and great job.

                  Chris

                  1 Reply Last reply Reply Quote 0
                  • T
                    tman222
                    last edited by

                    Just switched over from FreeRADIUS 2 to 3 - upgrade went smooth and everything appears to be working just fine.  Thanks for all your hard work on this.

                    1 Reply Last reply Reply Quote 0
                    • P
                      peer46
                      last edited by

                      Unfortunately upgrading to Version 3 breaks authentication enitrely for me.
                      I uninstalled Version 2 and installed version 3.
                      I'm using local users i.e. no sql or ldap.

                      For Users authenticating with a username password (Cleartext) I get the following error:
                      (98) Login incorrect (mschap: FAILED: No NT/LM-Password. Cannot perform authentication): [USERNAME] (from client NAS port 15 cli XX-XX-XX-XX-XX-X via TLS tunnel)

                      Devices that do not support 802.1x and which get authenticated with their MAC-Address as username and password, I get the follwoing error:
                      (103) Login incorrect (Failed retrieving values required to evaluate condition): [MAC_ADDRESS] (from client NAS port 23 cli XX:XX:XX:XX:XX:XX)

                      Until I figure this out I have reverted to Version 2.

                      1 Reply Last reply Reply Quote 0
                      • jimpJ
                        jimp Rebel Alliance Developer Netgate
                        last edited by

                        @peer46:

                        For Users authenticating with a username password (Cleartext) I get the following error:
                        (98) Login incorrect (mschap: FAILED: No NT/LM-Password. Cannot perform authentication): [USERNAME] (from client NAS port 15 cli XX-XX-XX-XX-XX-X via TLS tunnel)

                        Devices that do not support 802.1x and which get authenticated with their MAC-Address as username and password, I get the follwoing error:
                        (103) Login incorrect (Failed retrieving values required to evaluate condition): [MAC_ADDRESS] (from client NAS port 23 cli XX:XX:XX:XX:XX:XX)

                        What sort of device is handing off authentication requests to haproxy? Switch? AP? If so, how is it setup? What options do you have set there?

                        What do you have setup on the EAP tab? It's apparently not happy with something there. Though my setup works fine with EAP-MSCHAPv2 on FreeRADIUS 3.

                        And if you could describe any other settings you have put in place anywhere in FreeRADIUS, that would be helpful as well.

                        Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                        Need help fast? Netgate Global Support!

                        Do not Chat/PM for help!

                        1 Reply Last reply Reply Quote 0
                        • P
                          peer46
                          last edited by

                          The first error is a wireless client where authentication is handled by a WAP. The second is a wired device and authentication is done by a switch.

                          In Freeradius Version 2 log output looks like this:
                          Wireless client with username/password:

                          
                          Login OK: [wirelessDevice] (from client wap-1 port 0 cli 4A-77-8F-C3-AB-91)
                          Login OK: [wirelessDevice] (from client wap-1 port 0 cli 4A-77-8F-C3-AB-91 via TLS tunnel) 
                          
                          

                          Wired client with mac address as username/password:

                          
                          Login OK: [771CD36F33C4] (from client switch-1 port 23 cli 77:1c:d3:6f:33:c4)
                          
                          

                          Below I've attached my freeradius config. I've changed names, passwords and mac addresses. One thing to note here is that the check-items don't work out of the box with the vertical bar "|" because ootb pfsense uses the vertical bar as a line seperator. So for that to work I have to adapt freeradius.inc after every update.

                          
                           <freeradiusinterfaces><config><varinterfaceip>*</varinterfaceip>
                          		<varinterfaceport>1812</varinterfaceport>
                          		<varinterfacetype>auth</varinterfacetype>
                          		<varinterfaceipversion>ipaddr</varinterfaceipversion></config> 
                          	 <config><varinterfaceip>*</varinterfaceip>
                          		<varinterfaceport>1813</varinterfaceport>
                          		<varinterfacetype>acct</varinterfacetype>
                          		<varinterfaceipversion>ipaddr</varinterfaceipversion></config></freeradiusinterfaces> 
                           <freeradiusclients><config><varclientip>10.0.20.2</varclientip>
                          		<varclientipversion>ipaddr</varclientipversion>
                          		<varclientshortname>switch-1</varclientshortname>
                          		<varclientsharedsecret>xyz</varclientsharedsecret>
                          		<varclientproto>udp</varclientproto>
                          		<varclientnastype>other</varclientnastype>
                          		<varrequiremessageauthenticator>no</varrequiremessageauthenticator>
                          		<varclientmaxconnections>16</varclientmaxconnections>
                          		<varclientlogininput></varclientlogininput>
                          		<varclientpasswordinput></varclientpasswordinput></config> 
                          	 <config><varclientip>10.0.20.3</varclientip>
                          		<varclientipversion>ipaddr</varclientipversion>
                          		<varclientshortname>switch-2</varclientshortname>
                          		<varclientsharedsecret>xyz</varclientsharedsecret>
                          		<varclientproto>udp</varclientproto>
                          		<varclientnastype>other</varclientnastype>
                          		<varrequiremessageauthenticator>no</varrequiremessageauthenticator>
                          		<varclientmaxconnections>16</varclientmaxconnections>
                          		<varclientlogininput></varclientlogininput>
                          		<varclientpasswordinput></varclientpasswordinput></config> 
                          	 <config><varclientip>10.0.20.4</varclientip>
                          		<varclientipversion>ipaddr</varclientipversion>
                          		<varclientshortname>wap-2</varclientshortname>
                          		<varclientsharedsecret>xyz</varclientsharedsecret>
                          		<varclientproto>udp</varclientproto>
                          		<varclientnastype>other</varclientnastype>
                          		<varrequiremessageauthenticator>no</varrequiremessageauthenticator>
                          		<varclientmaxconnections>16</varclientmaxconnections>
                          		<varclientlogininput></varclientlogininput>
                          		<varclientpasswordinput></varclientpasswordinput></config> 
                          	 <config><varclientip>10.0.20.5</varclientip>
                          		<varclientipversion>ipaddr</varclientipversion>
                          		<varclientshortname>wap-1</varclientshortname>
                          		<varclientsharedsecret>xyz</varclientsharedsecret>
                          		<varclientproto>udp</varclientproto>
                          		<varclientnastype>other</varclientnastype>
                          		<varrequiremessageauthenticator>no</varrequiremessageauthenticator>
                          		<varclientmaxconnections>16</varclientmaxconnections>
                          		<varclientlogininput></varclientlogininput>
                          		<varclientpasswordinput></varclientpasswordinput></config></freeradiusclients> 
                           <freeradiuseapconf><config><vareapconfdisableweakeaptypes></vareapconfdisableweakeaptypes>
                          		<vareapconfdefaulteaptype>md5</vareapconfdefaulteaptype>
                          		<vareapconftimerexpire>60</vareapconftimerexpire>
                          		<vareapconfignoreunknowneaptypes>no</vareapconfignoreunknowneaptypes>
                          		<vareapconfciscoaccountingusernamebug>no</vareapconfciscoaccountingusernamebug>
                          		<vareapconfmaxsessions>4096</vareapconfmaxsessions>
                          		<ssl_ca_cert>XXXXXXXXXXXX</ssl_ca_cert>
                          		<ssl_ca_crl>XXXXXXXXXXX</ssl_ca_crl>
                          		<ssl_server_cert>XXXXXXXXXXX</ssl_server_cert>
                          		<vareapconfincludelength>yes</vareapconfincludelength>
                          		<vareapconffragmentsize>1024</vareapconffragmentsize>
                          		<vareapconfenablecheckcertissuer></vareapconfenablecheckcertissuer>
                          		<vareapconfcountry></vareapconfcountry>
                          		<vareapconfstate></vareapconfstate>
                          		<vareapconfcity></vareapconfcity>
                          		<vareapconforganization></vareapconforganization>
                          		<vareapconfemail></vareapconfemail>
                          		<vareapconfcommonname></vareapconfcommonname>
                          		<vareapconfenablecheckcertcn></vareapconfenablecheckcertcn>
                          		<vareapconfcacheenablecache>no</vareapconfcacheenablecache>
                          		<vareapconfcachelifetime>24</vareapconfcachelifetime>
                          		<vareapconfcachemaxentries>255</vareapconfcachemaxentries>
                          		<vareapconfocspenable>no</vareapconfocspenable>
                          		<vareapconfocspoverridecerturl>no</vareapconfocspoverridecerturl>
                          		<vareapconfocspurl>http://127.0.0.1/ocsp/</vareapconfocspurl>
                          		<vareapconfttlsdefaulteaptype>md5</vareapconfttlsdefaulteaptype>
                          		<vareapconfttlscopyrequesttotunnel>yes</vareapconfttlscopyrequesttotunnel>
                          		<vareapconfttlsusetunneledreply>yes</vareapconfttlsusetunneledreply>
                          		<vareapconfttlsincludelength>yes</vareapconfttlsincludelength>
                          		<vareapconfpeapdefaulteaptype>mschapv2</vareapconfpeapdefaulteaptype>
                          		<vareapconfpeapcopyrequesttotunnel>yes</vareapconfpeapcopyrequesttotunnel>
                          		<vareapconfpeapusetunneledreply>yes</vareapconfpeapusetunneledreply>
                          		<vareapconfpeapsohenable>Disable</vareapconfpeapsohenable></config></freeradiuseapconf> 
                           <freeradius><config><sortable></sortable>
                          		<varusersusername>wirelessDevice</varusersusername>
                          		<varuserspassword>xyz</varuserspassword>
                          		<varuserspasswordencryption>Cleartext-Password</varuserspasswordencryption>
                          		<varusersmotpenable></varusersmotpenable>
                          		<varusersmotpinitsecret></varusersmotpinitsecret>
                          		<varusersmotppin></varusersmotppin>
                          		<varusersmotpoffset></varusersmotpoffset>
                          		<varuserswisprredirectionurl></varuserswisprredirectionurl>
                          		<varuserssimultaneousconnect></varuserssimultaneousconnect>
                          
                          		<varusersframedipaddress></varusersframedipaddress>
                          		<varusersframedipnetmask></varusersframedipnetmask>
                          		<varusersframedroute></varusersframedroute>
                          		<varusersvlanid>10</varusersvlanid>
                          		<varusersexpiration></varusersexpiration>
                          		<varuserssessiontimeout>14400</varuserssessiontimeout>
                          		<varuserslogintime></varuserslogintime>
                          		<varusersamountoftime></varusersamountoftime>
                          		<varuserspointoftime>Daily</varuserspointoftime>
                          		<varusersmaxtotaloctets></varusersmaxtotaloctets>
                          		<varusersmaxtotaloctetstimerange>daily</varusersmaxtotaloctetstimerange>
                          		<varusersmaxbandwidthdown></varusersmaxbandwidthdown>
                          		<varusersmaxbandwidthup></varusersmaxbandwidthup>
                          		<varusersacctinteriminterval></varusersacctinteriminterval>
                          		<varuserstopadditionaloptions></varuserstopadditionaloptions>
                          		<varuserscheckitemsadditionaloptions>NAS-IP-Address =~ "10.0.20.4|10.0.20.5", Calling-Station-ID == "4A-77-8F-C3-AB-91", Called-Station-ID =~ ".*(:Foobar)$"</varuserscheckitemsadditionaloptions>
                          		<varusersreplyitemsadditionaloptions>Termination-Action = 1</varusersreplyitemsadditionaloptions></config> 
                          	 <config><sortable></sortable>
                          		<varusersusername>771CD36F33C4</varusersusername>
                          		<varuserspassword>771CD36F33C4</varuserspassword>
                          		<varuserspasswordencryption>Cleartext-Password</varuserspasswordencryption>
                          		<varusersmotpenable></varusersmotpenable>
                          		<varusersmotpinitsecret></varusersmotpinitsecret>
                          		<varusersmotppin></varusersmotppin>
                          		<varusersmotpoffset></varusersmotpoffset>
                          		<varuserswisprredirectionurl></varuserswisprredirectionurl>
                          		<varuserssimultaneousconnect></varuserssimultaneousconnect>
                          
                          		<varusersframedipaddress></varusersframedipaddress>
                          		<varusersframedipnetmask></varusersframedipnetmask>
                          		<varusersframedroute></varusersframedroute>
                          		<varusersvlanid>20</varusersvlanid>
                          		<varusersexpiration></varusersexpiration>
                          		<varuserssessiontimeout>14400</varuserssessiontimeout>
                          		<varuserslogintime></varuserslogintime>
                          		<varusersamountoftime></varusersamountoftime>
                          		<varuserspointoftime>Daily</varuserspointoftime>
                          		<varusersmaxtotaloctets></varusersmaxtotaloctets>
                          		<varusersmaxtotaloctetstimerange>daily</varusersmaxtotaloctetstimerange>
                          		<varusersmaxbandwidthdown></varusersmaxbandwidthdown>
                          		<varusersmaxbandwidthup></varusersmaxbandwidthup>
                          		<varusersacctinteriminterval></varusersacctinteriminterval>
                          		<varuserstopadditionaloptions></varuserstopadditionaloptions>
                          		<varuserscheckitemsadditionaloptions>NAS-IP-Address =~ "10.0.20.2|10.0.20.3", Calling-Station-ID =~ "77-1C-D3-6F-33-C4|77:1c:d3:6f:33:c4"</varuserscheckitemsadditionaloptions>
                          		<varusersreplyitemsadditionaloptions>Termination-Action = 1</varusersreplyitemsadditionaloptions></config></freeradius> 
                           <freeradiussettings><config><varsettingsmaxrequests>1024</varsettingsmaxrequests>
                          		<varsettingsmaxrequesttime>30</varsettingsmaxrequesttime>
                          		<varsettingscleanupdelay>5</varsettingscleanupdelay>
                          		<varsettingsallowcoredumps>no</varsettingsallowcoredumps>
                          		<varsettingsregularexpressions>yes</varsettingsregularexpressions>
                          		<varsettingsextendedexpressions>yes</varsettingsextendedexpressions>
                          		<varsettingslogdir>syslog</varsettingslogdir>
                          		<varsettingsauth>yes</varsettingsauth>
                          		<varsettingsauthbadpass>no</varsettingsauthbadpass>
                          		<varsettingsauthbadpassmessage></varsettingsauthbadpassmessage>
                          		<varsettingsauthgoodpass>no</varsettingsauthgoodpass>
                          		<varsettingsauthgoodpassmessage></varsettingsauthgoodpassmessage>
                          		<varsettingsstrippednames>no</varsettingsstrippednames>
                          		<varsettingshostnamelookups>no</varsettingshostnamelookups>
                          		<varsettingsmaxattributes>200</varsettingsmaxattributes>
                          		<varsettingsrejectdelay>1</varsettingsrejectdelay>
                          		<varsettingsstartservers>5</varsettingsstartservers>
                          		<varsettingsmaxservers>32</varsettingsmaxservers>
                          		<varsettingsminspareservers>3</varsettingsminspareservers>
                          		<varsettingsmaxspareservers>10</varsettingsmaxspareservers>
                          		<varsettingsmaxqueuesize>65536</varsettingsmaxqueuesize>
                          		<varsettingsmaxrequestsperserver>0</varsettingsmaxrequestsperserver>
                          		<varsettingsmotpenable></varsettingsmotpenable>
                          		<varsettingsmotptimespan></varsettingsmotptimespan>
                          		<varsettingsmotppasswordattempts></varsettingsmotppasswordattempts>
                          		<varsettingsmotpchecksumtype>md5</varsettingsmotpchecksumtype>
                          		<varsettingsmotptokenlength></varsettingsmotptokenlength>
                          		<varsettingsenablemacauth></varsettingsenablemacauth>
                          		<varsettingsenableacctunique></varsettingsenableacctunique></config></freeradiussettings> 
                          
                          
                          1 Reply Last reply Reply Quote 0
                          • P
                            pdudas
                            last edited by

                            Hello!

                            Just started using the new Freeradius package - with the OTP possibilities on a freshly installed pfsense server.
                            I just cannot figure out how this part works.

                            • user name: mandatory
                            • password should be blank (at user page).
                            • authentication method: Google Authenticator
                            • init secret: 16 character long base32 encoded string. (used the same string as above)
                            • pin: 4 digit numeric pin

                            I enter the same secret to the google authenticator app on an android phone - this generates a time based OTP.
                            Sending Auth Request from NTRadPing utility with correct user name and OTP from the Google Authenticator app - REJECT.
                            Tried all the 3 Hash Algorithm - same.

                            What is the meaning of the mandatory PIN? Google Authenticator not using PIN during password generation process (just the secret).
                            How should I submit the radius auth request?

                            radiusd -X:
                            Ready to process requests
                            (0) Received Access-Request Id 19 from 10.101.168.3:51815 to 10.148.64.76:1812 length 61
                            (0)  User-Name = "pdudas"
                            (0)  User-Password = "132988"
                            (0)  Calling-Station-Id = "10.148.67.254"
                            (0) # Executing section authorize from file /usr/local/etc/raddb/sites-enabled/default
                            (0)  authorize {
                            (0)    [preprocess] = ok
                            (0)    [chap] = noop
                            (0)    [mschap] = noop
                            (0)    [digest] = noop
                            (0) suffix: Checking for suffix after "@"
                            (0) suffix: No '@' in User-Name = "pdudas", skipping NULL due to config.
                            (0)    [suffix] = noop
                            (0) ntdomain: Checking for prefix before ""
                            (0) ntdomain: No '' in User-Name = "pdudas", skipping NULL due to config.
                            (0)    [ntdomain] = noop
                            (0) eap: No EAP-Message, not doing EAP
                            (0)    [eap] = noop
                            (0) files: users: Matched entry pdudas at line 2
                            (0)    [files] = ok
                            rlm_counter: Entering module authorize code
                            rlm_counter: Could not find Check item value pair
                            (0)    [daily] = noop
                            rlm_counter: Entering module authorize code
                            rlm_counter: Could not find Check item value pair
                            (0)    [weekly] = noop
                            rlm_counter: Entering module authorize code
                            rlm_counter: Could not find Check item value pair
                            (0)    [monthly] = noop
                            rlm_counter: Entering module authorize code
                            rlm_counter: Could not find Check item value pair
                            (0)    [forever] = noop
                            (0)    if (&request:Calling-Station-Id == &control:Calling-Station-Id) {
                            (0)    ERROR: Failed retrieving values required to evaluate condition
                            (0)    [expiration] = noop
                            (0)    [logintime] = noop
                            (0) pap: WARNING: No "known good" password found for the user.  Not setting Auth-Type
                            (0) pap: WARNING: Authentication will fail unless a "known good" password is available
                            (0)    [pap] = noop
                            (0)  } # authorize = ok
                            (0) Found Auth-Type = GOOGLEAUTH
                            (0) # Executing group from file /usr/local/etc/raddb/sites-enabled/default
                            (0)  Auth-Type GOOGLEAUTH {
                            (0) googleauth: Executing: /usr/local/etc/raddb/scripts/googleauth.py %{request:User-Name} %{reply:MOTP-Init-Secret} %{reply:MOTP-PIN} %{request:User-Password}:
                            (0) googleauth: EXPAND %{request:User-Name}
                            (0) googleauth:    –> pdudas
                            (0) googleauth: EXPAND %{reply:MOTP-Init-Secret}
                            (0) googleauth:    --> H2EFO7LD566Q22PB
                            (0) googleauth: EXPAND %{reply:MOTP-PIN}
                            (0) googleauth:    --> 3843
                            (0) googleauth: EXPAND %{request:User-Password}
                            (0) googleauth:    --> 132988
                            (0) googleauth: ERROR: Program returned code (1) and output ''
                            (0)    [googleauth] = reject
                            (0)  } # Auth-Type GOOGLEAUTH = reject
                            (0) Failed to authenticate the user
                            (0) Using Post-Auth-Type Reject
                            (0) # Executing group from file /usr/local/etc/raddb/sites-enabled/default
                            (0)  Post-Auth-Type REJECT {
                            (0) attr_filter.access_reject: EXPAND %{User-Name}
                            (0) attr_filter.access_reject:    –> pdudas
                            (0) attr_filter.access_reject: Matched entry DEFAULT at line 11
                            (0)    [attr_filter.access_reject] = updated
                            (0)    [eap] = noop
                            (0)    policy remove_reply_message_if_eap {
                            (0)      if (&reply:EAP-Message && &reply:Reply-Message) {
                            (0)      if (&reply:EAP-Message && &reply:Reply-Message)  -> FALSE
                            (0)      else {
                            (0)        [noop] = noop
                            (0)      } # else = noop
                            (0)    } # policy remove_reply_message_if_eap = noop
                            (0)  } # Post-Auth-Type REJECT = updated
                            (0) Login incorrect (Failed retrieving values required to evaluate condition): [pdudas] (from client DC1 port 0 cli 10.148.67.254)
                            (0) Delaying response for 1.000000 seconds
                            Waking up in 0.2 seconds.
                            Waking up in 0.6 seconds.
                            (0) Sending delayed response
                            (0) Sent Access-Reject Id 19 from 10.148.64.76:1812 to 10.101.168.3:51815 length 20
                            Waking up in 3.9 seconds.
                            (0) Cleaning up request packet ID 19 with timestamp +10
                            Ready to process requests

                            Could you please help what is wrong here?

                            (ps - I have a successfully implemented multiOTP installation with AD authentication and then OTP as challenge, so Freeradius and Python is not new to me. Just this part has no info to use it properly. )

                            Thank you!

                            1 Reply Last reply Reply Quote 0
                            • P
                              pdudas
                              last edited by

                              Managed to figure out:

                              In the radius authentication packet (sent to the server as test) the following attributes needed:

                              User-Name: this is the user name configured at Freeradius Users.
                              User-Password: PIN+OTP code.  So in case the PIN was 1234 and 'Google Authenticator' app generated 564782, then 1234564782

                              In the Freeradius Settings I used SHA256 as Hash Algorithm at the "Mobile-One-Time-Password Configuration".

                              So the key: password is the PIN+OTP.

                              1 Reply Last reply Reply Quote 0
                              • P
                                Panja
                                last edited by

                                Is it possible to run multiple instances of FreeRADIUS?
                                I want to run 2 Radius server at once.

                                1 Reply Last reply Reply Quote 0
                                • jimpJ
                                  jimp Rebel Alliance Developer Netgate
                                  last edited by

                                  @Panja:

                                  Is it possible to run multiple instances of FreeRADIUS?
                                  I want to run 2 Radius server at once.

                                  No, but what would be the use case for that? Why do you believe that you need two instances?

                                  Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                                  Need help fast? Netgate Global Support!

                                  Do not Chat/PM for help!

                                  1 Reply Last reply Reply Quote 0
                                  • P
                                    Panja
                                    last edited by

                                    This is because I want to have a FreeRadius server for each SSID I have.
                                    I cannot get the user separation working. So having multiple FreeRadius servers can "fix" that.
                                    Of course this setup is not ideal and requires more administration etc but better something than nothing. ;)

                                    1 Reply Last reply Reply Quote 0
                                    • N
                                      NetworkGuy
                                      last edited by

                                      I tried out the FreeRADIUS3 package today. The curious part was that I uninstalled v2 from the GUI, and installed v3, expecting to set up the RADIUS service and enter all the MACs.  All the settings and MAC addresses had been retained…. maybe this is an issue? Or there is another uninstall step?

                                      Basically, MacAuth was no joy, as that is the only thing I tested before rolling back to a previous snapshot. RADIUS sends back a REJECT. v2 works like a champ.

                                      Wireless users only with Proxim APs. RADIUS Mac Authentication enabled.

                                      1 Reply Last reply Reply Quote 0
                                      • jimpJ
                                        jimp Rebel Alliance Developer Netgate
                                        last edited by

                                        @NetworkGuy:

                                        I tried out the FreeRADIUS3 package today. The curious part was that I uninstalled v2 from the GUI, and installed v3, expecting to set up the RADIUS service and enter all the MACs.  All the settings and MAC addresses had been retained…. maybe this is an issue? Or there is another uninstall step?

                                        That's by design, the GUI parts are nearly identical so the settings all carried over to make the transition easier.

                                        @NetworkGuy:

                                        Basically, MacAuth was no joy, as that is the only thing I tested before rolling back to a previous snapshot. RADIUS sends back a REJECT. v2 works like a champ.

                                        Wireless users only with Proxim APs. RADIUS Mac Authentication enabled.

                                        Curious, it works when I try it here. In the FreeRADIUS settings are your MAC addresses in upper or lower case? How are they transmitted from the APs? Perhaps something in the FreeRADIUS backend changed and it's expecting or using a different case now than before.

                                        Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                                        Need help fast? Netgate Global Support!

                                        Do not Chat/PM for help!

                                        1 Reply Last reply Reply Quote 0
                                        • N
                                          NetworkGuy
                                          last edited by

                                          Very good. Glad I didn't miss a step.

                                          FreeRADIUS settings are lower-case, i.e. ab-cd-ef-01-02-03.

                                          pfSense Packet capture: AP>pfSense (FreeRADIUS2):

                                          Username: e4ce8fxxxxxx
                                          Password: 8e5e8b82…....
                                          Called-Station-ID: 00-20-A6-XX-XX-XX
                                          Calling-Station-ID: E4-CE-8F-XX-XX-XX
                                          Message Authenticator: f8e5ecbd......

                                          The response, RADIUS>AP is Access-Accept with the Authenticator in all CAPS, and life goes on.

                                          I'll revert back to v3 and repeat the capture a little later and post. Too much going on in the network at the moment.

                                          Curious if formatting is the issue as there are formatting "normalization" routines at work here within the configuration scripts. Or are you referring to the bowels of the implementation?

                                          1 Reply Last reply Reply Quote 0
                                          • jimpJ
                                            jimp Rebel Alliance Developer Netgate
                                            last edited by

                                            @NetworkGuy:

                                            Curious if formatting is the issue as there are formatting "normalization" routines at work here within the configuration scripts. Or are you referring to the bowels of the implementation?

                                            Assuming the normalization is kicking in like it's supposed to… There is a policy in place that should be shifting the Calling-Station-ID to lowercase, but whether or not it's actually happening for your config is another question.

                                            Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                                            Need help fast? Netgate Global Support!

                                            Do not Chat/PM for help!

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.