为了将公司内部认证统一化,启用了802.1x认证,认证流程如下:

UserClient->AC控制器->Freeradius->OpenLdap

其中:

Freeradius做认证使用

OpenLdap存储用户账户密码

现在开始配置:

环境:

Centos7

OpenLdap2.4.4

Freeradius 3.0.13

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/

Freeradius+Cisco2500AC+OpenLdap认证的更多相关文章

  1. LDAP落地实战(四):Jenkins集成OpenLDAP认证

    前几篇分文章分别介绍了OpenLDAP的部署管理和维护以及svn.git的接入,今天我们再下一城接入jenkins. 前情提要:LDAP系列文章 LDAP落地实战(一):OpenLDAP部署及管理维护 ...

  2. LDAP落地实战(三):GitLab集成OpenLDAP认证

    上一篇文章介绍了svn集成OpenLDAP认证,版本控制除了svn外,git目前也被越来越多的开发者所喜爱,本文将介绍GitLab如何集成openldap实现账号认证 GitLab集成OpenLDAP ...

  3. LDAP落地实战(二):SVN集成OpenLDAP认证

    上一篇文章我们介绍了LDAP的部署以及管理维护,那么如何接入LDAP实现账号统一认证呢?这篇文章将带你完成svn的接入验证 subversion集成OpenLDAP认证 系统环境:debian8.4 ...

  4. Django集成OpenLDAP认证

    本文详细介绍了django-auth-ldap的使用方法,参数含义,并提供了示例代码 版本说明 Django==2.2 django-auth-ldap==1.7.0 集成过程 Django集成LDA ...

  5. freeradius + oracle 无限认证

    Radius安装配置维护文档 一.下载软件包 freeradius-server-3.0.9.tar.gz和talloc-2.1.3.tar.gz 二.配置/root目录下的.bash_profile ...

  6. (三)Harbor使用OpenLDAP认证登陆

    接上一篇<安装Harbor>,安装好之后,接下来我们使用OpenLDAP来进行Harbor  web界面的登陆验证及权限分配! OpenLDAP: 使用OpenLDAP的都知道,这是一个集 ...

  7. Ubuntu下freeradius的EAP-MD5,PEAPv0/EAP-MSCHAPv2,EAP-TTLS/MD5,EAP-TTLS/MSCHAPv2方式认证(基于mysql)

    基于freeradius+mysql,今天验证下freeradius的EAP认证:1.EAP-MD5:2.EAP-PEAP 一.EAP-MD5方式认证 1.修改配置文件 (1)/usr/local/e ...

  8. OpenLDAP使用疑惑解答及使用Java完成LDAP身份认证

    导读 LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是实现提供被称为目录服务的信息服务.目录服务是一种特殊的数据库系统,其专门针对读取,浏览 ...

  9. 802.1X 账号密码+设备信息双重认证

    名词解释 802.1X: IEEE802 LAN/WAN 委员会为解决无线局域网网络安全问题,提出了 802.1X 协议.后来,802.1X协议作为局域网端口的一个普通接入控制机制在以太网中被广泛应用 ...

随机推荐

  1. 八十九:redis之python操作redis

    安装:pip install redis 连接 字符串操作 插入值 获取 删除值 列表操作,更多操作见源码 添加 获取 集合操作,更多操作见源码 哈希操作,更多操作见源码 事务操作:cache.pip ...

  2. js 闭包解决方案

    相比很多人都遇见过这样的情况: 给一个ul的所有li绑定行为,在点击时获取其index. 假设结构如下: <body> <ul> <li>0</li> ...

  3. SqlServer:SqlServer(xpath,字段约束,时间查询,数据文件查询及还原,压缩备份)

    1.xpath --1.文档 select @data --2.任意级别是否存在price节点 select @data.exist('//price') --3.获取所有book节点 select ...

  4. Asp.NetCore应用--部署到 ubuntu 进行托管

    准备过程 netcore linux发布包(本人是通过vs2017发布) ubuntu 16.0.4虚机 进行托管 ubuntu  netcore发布文件路径 服务器设置为将对 http://< ...

  5. 【神经网络与深度学习】Google Protocol Buffer介绍

    简介 什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这样的文字介绍: Google Protocol Buffer( 简称 Protobuf) 是 Googl ...

  6. Sql Server使用TOP实现Limit m,n的功能

    转载自:https://blog.csdn.net/weixin_41798450/article/details/88885891 在MySQL中,可以用 Limit 来查询第 m 列到第 n 列的 ...

  7. SpreadJS与Vue集成,苏宁集团『极客办公』系统开发案例

    “造极”如今已成为苏宁集团的年度核心关键词.“造极”在具体工作上的体现,代表着苏宁不断追求极致的工匠精神,即对待每一个环节,都要严格要求.精益求精.“极客办公”系统,正是在这种环境下应运而生.本期公开 ...

  8. Storm提交Topology报错:Found multiple defaults.yaml resources.

    Storm提交Topology运行方式分为本地和集群运行两种,其中集群运行需要将程序打包并把jar包复制到集群,通过以下方式执行: bin/storm jar /opt/run/storm-demo- ...

  9. Codeforces 1237E Perfect Balanced Binary Search Tree

    题目链接 Observations 含有 $n$ 个点且 key(以下也称 key 为「权值」)是 1 到 $n$ 的 BST 具有下列性质: 若 $k$ 是一个非根叶子且是个左儿子,则 $k$ 的父 ...

  10. java-selenium浏览器常用操作命令

    一.浏览器操作命令 启动火狐浏览器(49版本以下) System.setProperty("webdriver.firefox.bin","D:\\Firefox\\fi ...