实验1:
sssd :安装在客户端,暂时缓存ldap server 端信息,
ldap server 安装:
yum install openldap openldap-servers openldap-clients -y #openldap-clients包提供客户端命令的
cd /etc/openldap/
mv slapd.d slapd.d.bak
cp -p slapd.conf.bak slapd.conf
ldap.conf 此文件保留客户端的信息
vim slapd.conf
database bdb
suffix "dc=example,dc=com" #设置目录信息树的后缀
checkpoint 1024 15
rootdn "cn=Manager,dc=example,dc=com" #设置LDAP管理者的DN
rootpw westos #设置ldap的管理密码,如果想要密文密码,则需用slappasswd 来生成密文密码
access to *
by dn.exact="cn=Manager,dc=example,dc=com" read
by * none
cd /usr/share/doc/openldap-servers-2.4.19/
cp DB_CONFIG.example /var/lib/ldap/
cd /var/lib/ldap/
cp DB_CONFIG.example DB_CONFIG
chown ldap.ldap DB_CONFIG
/etc/init.d/slapd start
ll /var/lib/ldap/ 会有初始化文件
下面进行数据导入:
cd /usr/share/doc/openldap-servers-2.4.19/
less README.migration
yum install migrationtools -y
cd /usr/share/migrationtools/
tail /etc/passwd
vim users
ldapuser1:westos:500:500:LDAP User:/home/ldapuser1:/
ldapuser2:westos:501:501:LDAP User:/home/ldapuser2:/bin/bash
ldapuser3:westos:502:502:LDAP User:/home/ldapuser3:/bin/bash
tail /etc/group
vim groups
ldapuser1:x:500:
ldapuser2:x:501:
ldapuser3:x:502:
vim migrate_common.ph
$DEFAULT_MAIL_DOMAIN = "example.com";
$DEFAULT_BASE = "dc=example,dc=com";
./migrate_base.pl
./migrate_base.pl > base.ldif #将文件信息转换成ldap 语句,并导入到base.ldif
vim base.ldif 只保留dn,people,group信息
dn: dc=example,dc=com
dc: example
objectClass: top
objectClass: domain
dn: ou=People,dc=example,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit
dn: ou=Group,dc=example,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit
./migrate_passwd.pl users > user.ldif
./migrate_group.pl groups >group.ldif
ll *.ldif
ldapadd -W -x -D "cn=manager,dc=example,dc=com" -f base.ldif
注意:/etc/openldap/slapd.conf配置文件里面 rootpw 行首不能有空格,且rootpw和后面的密码字段需用tab隔开。要不然报错:ldap_bind: Invalid credentials (49)。
ldapadd -W -x -D "cn=manager,dc=example,dc=com" -f user.ldif
ldapadd -W -x -D "cn=manager,dc=example,dc=com" -f group.ldif
ldapsearch -b "dc=example,dc=com" -x
ldapsearch -b "ou=Group,dc=example,dc=com" -x
ldapsearch -b "ou=People,dc=example,dc=com" -x
如果想删除,则
ldapdelete -W -x -D “ou=Group,dc=example,dc=com” “cn=ldapuser2,ou=Group,dc=example,dc=com“ #ou=Group,dc=example,dc=com指定ou的,cn=ldapuser2,ou=Group,dc=example,dc=com 是ldapsearch -x -b "ou=Group,dc=example,dc=com" 显示的dn: cn=ldapuser2,ou=Group,dc=example,dc=com 中的dn:名字
客户端进行帐号认证:
yum install sssd -y
安装在客户端,暂时缓存ldap server 端信息
authconfig-tui 如果提示需要/lib64/libnss_ldap.so.2
yum install /lib64/libnss_ldap.so.2 -y
authconfig-tui
getent passwd 默认只显示本机帐号,如果想要显示出来,则编辑/etc/sssd/sssd.conf
vim /etc/sssd/sssd.conf
[domain/default] 在这部分
enumerate = False
authconfig-tui
不选TLS,Server: ldap://192.168.0.96/,Base DN: dc=example,dc=com
getent passwd ldapuser1
getent passwd ldapuser2
getent passwd ldapuser3
su - ldapuser1
ldap TLS加密:
服务端:
cd /etc/openldap/
vim slapd.conf
TLSCACertificateFile /etc/pki/tls/certs/ca-bundle.crt #将前面的#去掉
TLSCertificateFile /etc/pki/tls/certs/slapd.pem
TLSCertificateKeyFile /etc/pki/tls/certs/slapd.pem
cd /etc/pki/tls/certs
rm slapd.pem -f 删除原有的的认证文件
make slapd.pem 确保主机名和本机的hostname一致
chmod 640 slapd.pem
chgrp ldap slapd.pem
scp slapd.pem 192.168.0.84:/etc/openldap/cacerts/ #将认证文件发给客户端的/etc/openldap/cacerts/ 目录
/etc/init.d/slapd restart
客户端:
authconfig-tui
认证选:[*] Use LDAP ,[*] Use MD5 Passwords,[*] Use LDAP Authentication,[*] Local authorization is sufficient
LDAP server:选[*] Use TLS, Server: ldap://desktop96.example.com/ ,Base DN: dc=example,dc=com 。 #desktop96.example.com 是服务端的hostname。使用TLS一定要用hostname。
测试:
getent passwd ldapuser1
getent passwd ldapuser2
getent passwd ldapuser3
su - ldapuser1
注:如果getent passwd ldapuser1 没有输出信息,日志又包不能开启TLS 加密,则需修改系统时间。