环境准备:
open-master 管理登录节点 192.168.29.12
open-node01 管理登录节点 192.168.29.13
操作系统:
Centos7-2009 禁用防火墙,关闭selinux
安装LADP
master
安装软件
yum install openldap*
yum install migrationtools #用户迁移工具
systemctl start slapd
systemctl enable slapd
设置管理员密码
slappasswd -s king.king
#复制生成的密码,这个密码每次生成会不一样,这个在以后的配置文件中需要,例如;{SSHA}kWgCCgMa6BFr4Q9K3PqnxE74WvAK0kmL
DB.ldif
可以直接参考我的设置,我设置的域是hpc.com,管理域为ldapadm.hpc.com。
vim /root/db.ldif
-------
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=hpc,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=ldapadm,dc=hpc,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}kWgCCgMa6BFr4Q9K3PqnxE74WvAK0kmL ##slappasswd 生成的密码
-------
ldapmodify -Y EXTERNAL -H ldapi:/// -f db.ldif
monitor.ldif
直接用,复制就行。
vim /root/db.ldif
-------
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external, cn=auth" read by dn.base="cn=ldapadm,dc=hpc,dc=com" read by * none
-------
ldapmodify -Y EXTERNAL -H ldapi:/// -f monitor.ldif
生成证书和秘钥
openssl req -new -x509 -nodes -out /etc/openldap/certs/deployldapcert.pem -keyout /etc/openldap/certs/deployldapkey.pem -days 3650
#按照下面提示
-------
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:HB
Locality Name (eg, city) [Default City]:WH
Organization Name (eg, company) [Default Company Ltd]:HPC
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []: open-master
Email Address []:
-------
certs.ldif
直接用,复制就行。就是设置证书路径就行。
vim /root/certs.ldif
-------
dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/deployldapcert.pem
dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/deployldapkey.pem
-------
ldapmodify -Y EXTERNAL -H ldapi:/// -f certs.ldif
验证和修改配置
slaptest -u
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap /var/lib/ldap/*
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
base.ldif
安装如下图直接拷贝就行 这个已经精简到最小模式。
dn: dc=hpc,dc=com
objectClass: top
objectClass: domain
dn: cn=ldapadm ,dc=hpc,dc=com
objectClass: organizationalRole
cn: ldapadm
description: LDAP Manager
dn: ou=People,dc=hpc,dc=com
objectClass: organizationalUnit
ou: People
dn: ou=Group,dc=hpc,dc=com
objectClass: organizationalUnit
ou: Group
ldapadd -x -W -D "cn=ldapadm,dc=deploy,dc=sgg,dc=whu,dc=edu,dc=cn" -f base.ldif
配置结束
到此LDAP server配置已经结束了,接下来就得导入用户了。LDAP添加一个用户都得要一个用户模版,例如下图;
- 所以我的使用方法是先在系统中添加,然后使用导入工具导入。
生成用户,以及导入用户。
添加用户,以及导入用户到LDAP中
useradd admin
useradd test01
useradd test02
echo "admin:123456" | chpasswd
echo "test01:123456" | chpasswd
echo "test02:123456" | chpasswd
#导出UID为1000以后的用户信息到文件中
grep ":10[0-9][0-9]" /etc/passwd > user.txt
grep ":10[0-9][0-9]" /etc/group > group.txt
#使用migrationtools生成用户模版;用户组模版。
/usr/share/migrationtools/migrate_passwd.pl user.txt > user.ldif
/usr/share/migrationtools/migrate_group.pl group.txt > group.ldif
#导入用户
ldapadd -x -W -D "cn=ldapadm,dc=hpc,dc=com" -f group.ldif
ldapadd -x -W -D "cn=ldapadm,dc=hpc,dc=com" -f user.ldif
可选: 安装phpldapadmin
# httpd httpd服务
# phpldapadmin phpldapadmin服务
yum install -y httpd phpldapadmin
#修改配置文件/etc/phpldapadmin/config.php
vim /etc/phpldapadmin/config.php
-------
#打开 dn 注释,注释掉uid
$servers->setValue('login','attr','dn');
// $servers->setValue('login','attr','uid');
-------
#修改httpd内的phpldapadmin 配置文件
vim /etc/httpd/conf.d/phpldapadmin.conf
-------
#
# Web-based tool for managing LDAP servers
#
Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
Alias /ldapadmin /usr/share/phpldapadmin/htdocs
<Directory /usr/share/phpldapadmin/htdocs>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>
-------
#启动httpd
systemctl start httpd
#设置开机自启
systemctl enable httpd
地址:192.168.29.12/phpldapadmin/
账号:cn=ldapadm,dc=hpc,dc=com
密码:自己设置的
客户端配置
修改hosts文件
安装软件
yum install -y openldap-clients nss-pam-ldapd
配置
authconfig --enableldap --enableldapauth --ldapserver=open-master --ldapbasedn="dc=hpc,dc=com" --update