centos7 下用FREERADIUS3+ldap(windowsAD)搭建radius服务器

centos7 下用FREERADIUS3+ldap(windowsAD)搭建radius服务器,第1张

1安装软件:
yum install freeradius freeradius-ldap freeradius-utils -y

2启动服务
systemctl start radiusdservice
3开机自动启动
systemctl enable radiusdservice

4修改配置文件 /etc/raddb/mods-available/ldap主要是ldap部分,其它都是默认
[root@10-57-22-55 mods-available]# cat /etc/raddb/mods-available/ldap | grep -v '#' | grep -v ^$

5在 mods-enabled/ 下执行ln 注意后面有点

6在 sites-available/ 下创建 site_ldap
[root@10-57-22-55 sites-available]# cat site_ldap

7在 sites-enabled/ 下执行ln 注意后面有点

重启服务器
systemctl restart radiusdservice

测试 命令如下
radtest user password localhost:1833 0 testing123

以下结果表示成功:Received Access-Accep(密码带特殊字符需要用‘’引号引起来)

以下为密码错误Received Access-Reject

LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X500标准的,但是简单得多并且可以根据需要定制。

LDAP由互联网工程任务组(IETF)的文档RFC定义,使用了描述语言ASN1定义。最新的版本是版本3,由RFC 4511所定义。例如,一个用语言描述的LDAP的搜索如:“在公司邮件目录中搜索公司位于那什维尔名字中含有“Jessy”的有邮件地址的所有人。请返回他们的全名,电子邮件,头衔和简述。”

扩展资料:

LDAP-开发方式

如果需要开发一种提供公共信息查询的系统一般的设计方法可能是采用基于WEB的数据库设计方式,即前端使用浏览器而后端使用WEB服务器加上关系数据库。后端在Windows的典型实现可能是Windows NT + IIS + Acess数据库或者是SQL SERVER,IIS和数据库之间通过ASP技术使用ODBC进行连接,达到通过填写表单查询数据的功能;

参考资料来源:百度百科-LDAP

参考资料来源:百度百科-目录访问协议

需要。
使用非加密的ldap时,只能对AD域账号信息查询。如果要对AD域用户信息进行修改和新增 *** 作,必须使用(SSL)加密方式连接AD,需满足如下几个条件:① AD上需要安装证书服务。② 连接AD的主机上使用>from ldap3  import Server, Connection, ALL, MODIFY_ADD, MODIFY_REPLACE, MODIFY_DELETE

class Connect_ldap:

    def __init__(self):   #初始化

        selfserver ='10101010'   #ldap服务器地址

        selfuser ='cn=Directory Manager'   # Bind DN or user

        selfbase_dn ='dc=bizenit,dc=com'  #base_dn

        selfpwd ='XXXXXXX'    #密码

        selfport =5389   #端口

    def connect(self):    #连接ldap服务

        server = Server(host=selfserver, port=selfport, get_info=ALL)

        conn = Connection(server=server, user=selfuser, password=selfpwd, auto_bind=True)

        return conn

    def add_user(self):   #添加条目

        i =1

        j =17300000001

        conn =selfconnect()

        while i <220000:

            mail =str(j) +"@mailcom"

            print(connadd("uid=username%s,ou=Internal,ou=People,dc=bizenit,dc=com" % (i),

                          object_class=['top', 'inetOrgPerson', 'person', 'organizationalPerson',

                                        'smart-extends', 'customized-extends'],        #类型

                          attributes={'cn':"username%s" % (i), 'smart-type':"E1",

                                      'departmentNumber':"D1155073", 'mobile': j,

                                      'smart-status':1, 'mail': mail, 'telephoneNumber': j,

                                      'userPassword':"smart123"}))    #属性

            i +=1

            j +=1

    def delete_user(self):     #删除条目

        i =1

        conn =selfconnect()

        while i <220000:

            print(conndelete("uid=username%s,ou=Internal,ou=People,dc=bizenit,dc=com" % (i)))

            i +=1

    def modify_user(self):      #修改条目 

        i =793123

        j =17300793123

        conn =selfconnect()

        while i <1000000:

            connmodify("uid=username%s,ou=Internal,ou=People,dc=bizenit,dc=com" % (i),

                        {"objectClass": [(MODIFY_ADD, ['customized-extends', 'smart-extends'])]})

mail =str(j) +"@mailcom"

            a = connmodify("uid=sidl%s,ou=Internal,ou=People,dc=bizenit,dc=com" % (i),

                            {"departmentNumber": [(MODIFY_ADD, ['D1155073'])], "smart-type": [(MODIFY_ADD, ["E1"])],

                            "telephoneNumber": [(MODIFY_ADD, [j])], "userPassword": [(MODIFY_ADD, ["smart123"])],

                            "smart-status": [(MODIFY_ADD, [1])], "mail": [(MODIFY_ADD, [mail])]})

        print(a)

        print(i)

        i +=1

        j +=1

    def modify_dn_user(self):    #移动条目

        i =1

        j =17300000001

        conn =selfconnect()

        print(connmodify_dn("uid=username%s,ou=People,dc=bizenit,dc=com" % (i), 'uid=username%s' % (i),

                            new_superior="ou=Internal,ou=People,dc=bizenit,dc=com"))

        i +=1

        j +=1

if __name__ =="__main__":

a = Connect_ldap()

aadd_user()

1 LDAP入门

11 定义

LDAP是轻量目录访问协议(LightweightDirectory Access Protocol)的缩写,LDAP标准实际上是在X500标准基础上产生的一个简化版本。

12 目录结构

LDAP也可以说成是一种数据库,也有client端和server端。server端是用来存放数据,client端用于 *** 作增删改查等 *** 作,通常说的LDAP是指运行这个数据库的服务器。只不过,LDAP数据库结构为树结构,数据存储在叶子节点上。

因此,在LDAP中,位置可以描述如下

因此,苹果redApple的位置为

dn标识一条记录,描述了数据的详细路径。因此,LDAP树形数据库如下

因此,LDAP树形结构在存储大量数据时,查询效率更高,实现迅速查找,可以应用于域验证等。

13 命名格式

LDAP协议中采用的命名格式常用的有如下两种:LDAP URL 和X500。

任何一个支持LDAP 的客户都可以利用LDAP名通过LDAP协议访问活动目录,LDAP名不像普通的Internet URL名字那么直观,但是LDAP名往往隐藏在应用系统的内部,最终用户很少直接使用LDAP 名。LDAP 名使用X500 命名规 范,也称为属性化命名法,包括活动目录服务所在的服务器以及对象的属性信息。

2 AD入门

21 AD定义

AD是Active Directory的缩写,AD是LDAP的一个应用实例,而不应该是LDAP本身。比如:windows域控的用户、权限管理应该是微软公司使用LDAP存储了一些数据来解决域控这个具体问题,只是AD顺便还提供了用户接口,也可以利用ActiveDirectory当做LDAP服务器存放一些自己的东西而已。比如LDAP是关系型数据库,微软自己在库中建立了几个表,每个表都定义好了字段。显然这些表和字段都是根据微软自己的需求定制的,而不是LDAP协议的规定。然后微软将LDAP做了一些封装接口,用户可以利用这些接口写程序 *** 作LDAP,使得ActiveDirectory也成了一个LDAP服务器。

22 作用

221 用户服务

管理用户的域账号、用户信息、企业通信录(与电子邮箱系统集成)、用户组管理、用户身份认证、用户授权管理、按需实施组管理策略等。这里不单单指某些线上的应用更多的是指真实的计算机,服务器等。

222 计算机管理

管理服务器及客户端计算机账户、所有服务器及客户端计算机加入域管理并按需实施组策略。

223 资源管理

管理打印机、文件共享服务、网络资源等实施组策略。

224 应用系统的支持

对于电子邮件(Exchange)、在线及时通讯(Lync)、企业信息管理(SharePoint)、微软CRM&ERP等业务系统提供数据认证(身份认证、数据集成、组织规则等)。这里不单是微软产品的集成,其它的业务系统根据公用接口的方式一样可以嵌入进来。

225 客户端桌面管理

系统管理员可以集中的配置各种桌面配置策略,如:用户适用域中资源权限限制、界面功能的限制、应用程序执行特征的限制、网络连接限制、安全配置限制等。

23 AD域结构常用对象

231 域(Domain)

域是AD的根,是AD的管理单位。域中包含着大量的域对象,如:组织单位(Organizational Unit),组(Group),用户(User),计算机(Computer),联系人(Contact),打印机,安全策略等。

可简单理解为:公司总部。

232 组织单位(Organization Unit)

组织单位简称为OU是一个容器对象,可以把域中的对象组织成逻辑组,帮助网络管理员简化管理组。组织单位可以包含下列类型的对象:用户,计算机,工作组,打印机,安全策略,其他组织单位等。可以在组织单位基础上部署组策略,统一管理组织单位中的域对象。

可以简单理解为:分公司。

233 群组(Group)

群组是一批具有相同管理任务的用户账户,计算机账户或者其他域对象的一个集合。例如公司的开发组,产品组,运维组等等。可以简单理解为分公司的某事业部。

群组类型分为两类:

234 用户(User)

AD中域用户是最小的管理单位,域用户最容易管理又最难管理,如果赋予域用户的权限过大,将带来安全隐患,如果权限过小域用户无法正常工作。可简单理解成为某个工作人员。

域用户的类型,域中常见用户类型分为:

一个大致的AD如下所示:

总之:Active Directory =LDAP服务器 LDAP应用(Windows域控)。ActiveDirectory先实现一个LDAP服务器,然后自己先用这个LDAP服务器实现了自己的一个具体应用(域控)。

3 使用LDAP *** 作AD域

特别注意:Java *** 作查询域用户信息获取到的数据和域管理员在电脑上 *** 作查询的数据可能会存在差异(同一个意思的表示字段,两者可能不同)。

连接ad域有两个地址:ldap://XXXXXcom:389 和 ldap://XXXXXcom:636(SSL)。

端口389用于一般的连接,例如登录,查询等非密码 *** 作,端口636安全性较高,用户密码相关 *** 作,例如修改密码等。

域控可能有多台服务器,之间数据同步不及时,可能会导致已经修改的数据被覆盖掉,这个要么域控缩短同步的时间差,要么同时修改每一台服务器的数据。

31 389登录

32 636登录验证(需要导入证书)

33 查询域用户信息

34 重置用户密码

35 域账号解锁

总结


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13474958.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-14
下一篇 2023-08-14

发表评论

登录后才能评论

评论列表(0条)

保存