英文名称
中文名
备注

DN
Distinguished Name
识别名
表示条款在目录树中从根出发的绝对路径,是条款标唯一标识
DC
Domain Name
域名
OU
Organizational Unit
组织单元
最多可以有四级,每级最长32个字符,可以为中文
CN
Common Name
用户名
LDAP的搭建和利用
1. 安装ldap做事端及工具集slapd是做事端程序,ldap-utils是工具集(ladpmodify,ldapadd等)
apt install slapd ldap-utils
2. 重设密码和DN等信息
dpkg-reconfigure slapd
由于部分运用须要memberOf支持,以是我们在一开始就要添加该模块,这样后续用到时候方便直策应用。该部分参考链接完成。
首先须要新建三个文件,可以新建一个目录,分别是memberof_config.ldif、refint1.ldif、refint2.ldif。特殊把稳的是,在做这些之前,须要获取几个参数。
查询ldap配置db文件。ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn | grep db查询ldap模块路径。find /usr/ -name ldap新建memberof_config.ldif,把稳修正olcDatabase和olcModulePath为上面查询得结果。
# vim memberof_config.ldifdn: cn=module,cn=configcn: moduleobjectClass: olcModuleListolcModuleLoad: memberofolcModulePath: /usr/lib/ldapdn: olcOverlay={0}memberof,olcDatabase={1}mdb,cn=configobjectClass: olcConfigobjectClass: olcMemberOfobjectClass: olcOverlayConfigobjectClass: topolcOverlay: memberofolcMemberOfDangling: ignoreolcMemberOfRefInt: TRUEolcMemberOfGroupOC: groupOfNamesolcMemberOfMemberAD: memberolcMemberOfMemberOfAD: memberOf
新建refint1.ldif。
# vim refint1.ldifdn: cn=module{1},cn=configadd: olcmoduleloadolcmoduleload: refint
新建refint2.ldif,同样须要把稳修正olcDatabase和上面查询得db结果同等。
# vim refint2.ldifdn: olcOverlay={1}refint,olcDatabase={1}mdb,cn=configobjectClass: olcConfigobjectClass: olcOverlayConfigobjectClass: olcRefintConfigobjectClass: topolcOverlay: {1}refintolcRefintAttribute: memberof member manager owner
运行下面命令,配置memberof模块。
ldapadd -Q -Y EXTERNAL -H ldapi:/// -f memberof_config.ldif
运行下面命令加载和配置refint模块。
ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f refint1.ldifldapadd -Q -Y EXTERNAL -H ldapi:/// -f refint2.ldif
4. 测试模块是否添加成功(生产环境不须要实行)
先添加两个节点,分别用于存放用户和用户组。新建配置文件add_nodes.ldif。把稳修正dn的值为你自己的。
# vim add_nodes.ldifdn: ou=people,dc=zhushurui,dc=cnobjectClass: organizationalUnitou: Peopledn: ou=groups,dc=zhushurui,dc=cnobjectClass: organizationalUnitou: Groups
实行以下命令使得配置生效。把稳修正dc,输入密码后实行成功。
ldapadd -x -D cn=admin,dc=zhushurui,dc=cn -W -f add_nodes.ldif
添加一个用户,首先天生用户密码。
slappasswd -h {SHA} -s my_secret_password
结果如下:
{SHA}M6XDJwA47cNw9gm5kXV1uTQuMoY=
新建配置文件add_user.ldif如下,添加用户,特殊把稳修正你的dn。
# vim add_user.ldifdn: uid=john,ou=people,dc=zhushurui,dc=cncn: John DoegivenName: Johnsn: Doeuid: johnuidNumber: 5000gidNumber: 10000homeDirectory: /home/johnmail: john.doe@example.comobjectClass: topobjectClass: posixAccountobjectClass: shadowAccountobjectClass: inetOrgPersonobjectClass: organizationalPersonobjectClass: personloginShell: /bin/bashuserPassword: {SHA}M6XDJwA47cNw9gm5kXV1uTQuMoY=
实行以下命令,添加用户,须要修正dc和cn为你管理员的账号,默认情形只须要修正dc即可,然后输入你的管理员密码。
ldapadd -x -D cn=admin,dc=zhushurui,dc=cn -W -f add_user.ldif
新建配置文件add_group.ldif,添加用户组,特殊把稳修正你的dn和member。
# vim add_group.ldifdn: cn=mygroup,ou=groups,dc=zhushurui,dc=cnobjectClass: groupofnamescn: mygroupdescription: All usersmember: uid=john,ou=people,dc=zhushurui,dc=cn
实行以下命令,添加用户组,同样须要修正dc和cn。输入密码后添加成功。
ldapadd -x -D cn=admin,dc=zhushurui,dc=cn -W -f add_group.ldif
接下来查询用户,看是否已经有memberof模块配置了。
ldapsearch -x -LLL -H ldap:/// -b uid=john,ou=people,dc=zhushurui,dc=cn dn memberof
phpldapadmin可以用来管理ldap,实行以下命令安装软件。
apt install phpldapadmin
这时候可以通过访问http://ip/phpldapadmin/访问,我们须要修正配置文件。
vim /etc/phpldapadmin/config.php
把稳设置成以下几个。第一条表示不给匿名用户登录,第二话设置只许可管理员登录,第三句话修正登录页默认添补的用户名,第四句话让phpldapadmin识别默认的dn。
$servers->setValue('login','anon_bind',false);$servers->setValue('login','allowed_dns',array('cn=admin,dc=zhushurui,dc=cn'));$servers->setValue('login','bind_id','cn=admin,dc=zhushurui,dc=cn');$servers->setValue('server','base',array('dc=zhushurui,dc=cn'));
6. 利用phpldapadmin新增用户和用户组
一开始先利用模板Generic: Organisational Unit新建People和Groups两个节点,分别用于新建用户和用户组。在Users下面新建用户利用inetOrgPerson,在Groups下面新建用户组利用groupOfNames就可以自动添加memberof模块支持。也可以参考第四部分新增一个用户模板,后续可以通过复制的形式新增用户。
7. 安装和利用ldap-account-management(可选)考试测验后不推举用,彷佛字段不全等问题,实行下列命令安装。
apt install ldap-account-manager
访问http://ip/lam即可登录系统。然后根据下面的动图完成初始化配置。初始化密码是lam。
配置做事器设置。
配置账号。
-- Write by PercyC
2021年12月14日