为了将公司内部认证统一化,启用了802.1x认证,认证流程以下:html
UserClient->AC控制器->Freeradius->OpenLdapvim
其中:api
Freeradius作认证使用安全
OpenLdap存储用户帐户密码bash
如今开始配置:服务器
环境:session
Centos7dom
OpenLdap2.4.4ssh
Freeradius 3.0.13ide
1.安装Freeradius
#yum -y install freeradius* //Free RADIUS Version 3.0.13
2.修改配置文件
vim/etc/raddb/users
最后一行添加
testuser Cleartext-Password := "test123"
说明:这一步仅仅是添加一个测试用户,测试Freeradius是否正常启动的,若是不想测试,能够不建这个用户
3.vim/etc/hosts若是设置host这里应该设置hostname的值。
[ip][hostname]
4.测试
再打开一个终端,执行
radtest testuser test123 127.0.0.1 0 testing123
其中 testuser 是用户 test123是密码 ,就是步骤2中新建的用户 testing123是共享密钥
若是看到
SendingAccess-Requestofid87to127.0.0.1port1812 User-Name="testuser" User-Password="testpassword" NAS-IP-Address=192.168.50.65 NAS-Port=1812 Message-Authenticator=0x00000000000000000000000000000000 rad_recv:Access-Acceptpacketfromhost127.0.0.1port1812,id=87,length=20 则表示radius服务器配置成功。
5.编辑eap文件
配置文件以下
cat /etc/raddb/mods-enabled/eap|grep -v "#"|grep -v "^$" eap { default_eap_type = peap timer_expire = 60 ignore_unknown_eap_types = no cisco_accounting_username_bug = no max_sessions = ${max_requests} md5 { } leap { } gtc { auth_type = PAP } tls-config tls-common { private_key_password = whatever private_key_file = ${certdir}/server.pem certificate_file = ${certdir}/server.pem ca_file = ${cadir}/ca.pem dh_file = ${certdir}/dh ca_path = ${cadir} cipher_list = "DEFAULT" cipher_server_preference = no ecdh_curve = "prime256v1" cache { enable = no } verify { } ocsp { enable = no override_cert_url = yes url = "http://127.0.0.1/ocsp/" } } tls { tls = tls-common } ttls { tls = tls-common default_eap_type = peap copy_request_to_tunnel = no use_tunneled_reply = no virtual_server = "inner-tunnel" } peap { tls = tls-common default_eap_type = mschapv2 copy_request_to_tunnel = no use_tunneled_reply = no virtual_server = "inner-tunnel" } mschapv2 { } }
6.启用ldap功能,由于帐户密码存储在ldap上,因此freeradius须要配置ldap的链接信息
# ln -s /etc/raddb/mods-available/ldap /etc/raddb/mods-enabled/ldap
7 编辑ldap配置文件
cat mods-enabled/ldap|grep -v "#"|grep -v "^$" ldap { server = '127.0.0.1' port = 389 identity = 'cn=root,dc=domain,dc=com' password = 'your_password' base_dn = 'ou=OP,dc=domain,dc=com' sasl { } update { control:Password-With-Header += 'userPassword' control:NT-Password := 'sambaNTPassword' //重要,必定要记得更改这一行,下面会说缘由 control: += 'radiusControlAttribute' request: += 'radiusRequestAttribute' reply: += 'radiusReplyAttribute' }
若是Freeradius的eap配置中 default_eap_type = peap 若是配置成peap的话,OpenLdap中的用户密码存储的时候能够采用两种方式
1.)明文存储,Freeradius认证没问题,可是很不安全,由于能看到用户的明文密码
2.)使用NT-Password加密存储,他实际上是xp系统中用的MD4加密,因此OpenLdap中就须要添加samba的支持,而后将sambaNTPassword存储的密码字段映射为Freeradius中的NT-Password字段
我采用的是方式2
这段配置能够参考资料 https://hub.packtpub.com/storing-passwords-using-freeradius-authentication/
8.vim sites-available/inner-tunnel 取消里面的全部的ldap注释
9 vim sites-available/default 取消里面的全部的ldap注释
至此,Freeradius的配置部分就完成了
启动radius可使用
radiusd -X //带有debug模式启动,能够查看调试信息
第二部分 OpenLdap配置
1.安装不写了,参考个人文章 http://www.cnblogs.com/Kevin-1967/p/8931304.html
2.安装完成后,须要按照上述步骤7中说的那样,添加samba支持,方法以下:
#yum install -y samba-common samba samba-client #cp /usr/share/doc/samba-4.6.2/LDAP/samba.schema /etc/openldap/schema/ #cp /usr/share/doc/samba-4.6.2/LDAP/samba.ldif /etc/openldap/schema/ #ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/samba.ldif #systemctl restart slapd
重启完OpenLdap的进程后,添加用户entry的时候就可使用sambaSamAccount 的objectclass了,我添加用户的ldif文件模板以下
dn: uid=testuser,ou=OP,dc=domain,dc=com objectClass: top objectClass: sambaSamAccount objectClass: inetOrgPerson cn: 测试用户1 sambaSID: testuser sn: testuser uid: testuser mail: testuser@163.com sambaNTPassword: C941B8F73337FAC694888A9AA7376678 telephoneNumber: 18812341234 userPassword: e1NTSEF914cxeVRDWdeuR2NZdjl0e991bWtzNn0kn3pVNQ==
说明:
Freeradius认证拿的是SambaNTPassword字段的值,若是你还须要openldap完成其余认证,就须要同步修改userPassword字段
因此,你须要写个网页,用户自助修改密码的时候同时修改OpenLdap中的sambaNTPassword字段和userPassword字段
而后在cisco无线控制器上添加Freeradius便可,配置无线走802.1x认证,步骤略
配置完。。。
参考资料: http://www.178pt.com/179.html https://www.cnblogs.com/lemon-le/p/6207695.html 参考资料: http://zgssheng.cn/2014/03/FreeRadius%20+%20802.1x:WPA%20+%20OpenLDAP%20wifi%E7%99%BB%E5%BD%95%E4%BD%BF%E7%94%A8%E4%B8%AA%E4%BA%BA%E5%B8%90%E5%8F%B7/