======FreeRadius on CentOS 7 with LDAP support====== =====Prerequisite===== * Download the WPA test script: {{:rad_eap_test.gz|}} =====Installation====== yum install freeradius-ldap freeradius-utils freeradius cd /etc/raddb/mods-enabled/ ln -s ../mods-available/ldap =====Configuration===== ====LDAP==== vi ldap In the ldap section change the following fields. In my example I stall radius on the same machine as the ldap server so I am going to connect to localhost. **The following config is not the complete config, only the changed part!** ldap { server = "localhost" port = 389 identity = "cn=manager,dc=helux,dc=nl" password = mypass base_dn = "dc=helux,dc=nl" update { control:Password-With-Header += 'userPassword' control:NT-Password := 'SambaNTPassword' reply:Reply-Message := 'radiusReplyMessage' reply:Tunnel-Type := 'radiusTunnelType' reply:Tunnel-Medium-Type := 'radiusTunnelMediumType' reply:Tunnel-Private-Group-ID := 'radiusTunnelPrivategroupId' } user { access_attribute = "dialupAccess" access_positive = yes } } ====Clients==== vi /etc/raddb/clients.conf client private-network-1 { ipaddr = 172.16.0.0/16 secret = testing123 } client private-network-1-ipv6 { ipv6addr = 2a02:22a0:bbb7:400::/56 secret = testing123 } ====TLS==== In this situation I already have a CA and a certificate created on the CA for this machine. So I move the old directory and create a new one! cd /etc/raddb mv certs certs.org mkdir certs chown root:radiusd certs chmod 770 certs Now let's copy the necessary files. * the certificate and private key must be concatenated in server.pem * the CA certificate must have the name ca.pem * copy the dh file from the original certs directory * set the correct permissions Result: cd /etc/raddb/certs ls -l total 16 -rw-r-----. 1 root radiusd 1375 Jun 24 16:24 ca.pem -rw-r-----. 1 root radiusd 245 Jun 24 16:24 dh -rw-r-----. 1 root radiusd 6297 Jun 24 16:24 server.pem systemctl enable radiusd systemctl start radiusd =====Firewall===== firewall-cmd --permanent --zone=management --add-service=radius firewall-cmd --permanent --zone=local --add-service=radius firewall-cmd --reload =====Testing===== Query user for normal access: radtest localhost 2 testing123 Query user for WPA enterprise: ./rad_eap_test -H localhost -P 1812 -S testing123 -u -p -m WPA-EAP -e PEAP -2 MSCHAPV2 ./rad_eap_test -H localhost -P 1812 -S testing123 -u -p -m WPA-EAP -e TTLS -2 PAP =====Update to CentOS 7.4===== The upgrade to CentOS 7.4 breaks FreeRadius with LDAP. I discovered some errors with dots (.) in the username. So I altered the filter file in /etc/raddb/policy.d THIS CODE IS OBSOLETE . . . # if (&User-Name =~ /\.\./ ) { # update request { # &Module-Failure-Message += 'Rejected: User-Name contains multiple ..s' # } # reject # } . . # if (&User-Name =~ /\.$/) { # update request { # &Module-Failure-Message += 'Rejected: Realm ends with a dot' # } # reject # } . . . ===== Peap config change for radius assigned VLAN ==== . . peap { . . use_tunneled_reply = yes . . {{tag>centos}}