ldap服务认证与加密

实验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 加密,则需修改系统时间。

ldap 服务的主备:

master: rhel6 192.168.0.250
# yum install openldap-servers openldap-clients -y
# cd /etc/openldap
# rm -fr slapd.d
# cp slapd.conf.bak slapd.conf
# chgrp ldap slapd.conf
# cp /usr/share/doc/openldap-servers-2.4.19/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
# chown ldap.ldap /var/lib/ldap/DB_CONFIG
vim /etc/openldap/slapd.conf
include /etc/openldap/schema/misc.schema         注释掉次行
moduleload syncprov.la                           添加次行
database bdb
suffix "dc=westos.org"
checkpoint 1024 15
rootdn "cn=Manager,dc=westos.org"
rootpw westos

overlay syncprov                添加此3行
syncprov-checkpoint 100 10
syncprov-sessionlog 100

access to *
by dn.exact="cn=Manager,dc=westos.org" read
by * none

service slapd start


backup: rhel6 192.168.0.231
# yum install openldap-servers openldap-clients -y
# cd /etc/openldap
# rm -fr slapd.d
# cp slapd.conf.bak slapd.conf
# chgrp ldap slapd.conf
# cp /usr/share/doc/openldap-servers-2.4.19/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
# chown ldap.ldap /var/lib/ldap/DB_CONFIG
vim /etc/openldap/slapd.conf
database bdb
suffix "dc=westos.org"
checkpoint 1024 15
rootdn "cn=Manager,dc=westos.org"
rootpw westos

syncrepl rid=001
provider=ldap://192.168.0.250:389
type=refreshAndPersist
searchbase="dc=westos.org"
attrs=*
schemachecking=off
bindmethod=simple
binddn="cn=Manager,dc=westos.org"
credentials="westos"
retry="60 +"                      添加上面10行

access to *
by dn.exact="cn=Manager,dc=westos.org" read
by * none

service slapd start

注: 1. iptables 要开放slapd的端口。
2. 如果master上已经有数据,那么在启动slapd之前,需要执行
scp /var/lib/ldap/* backup:/var/lib/ldap 确保backup上的数据与master上的一致。

在主ldap server ,authconfig-tui 进去去掉ldap 认证。

然后在主ldap server ,
ldapsearch -x -b "dc=example,dc=com"   查看dn 的名称
ldapdelete -W -x -D "cn=manager,dc=example,dc=com" "cn=ldapuser3,ou=Group,dc=example,dc=com"
然后在备份 ldap server 上面查看:
ldapsearch -x -b "dc=example,dc=com"  就没有删除的用户了。

phpldapadmin-1.2.2   ldap的图形化管理软件,确保安装php,php-ldap 软件包,因为这个图形管理工具就是用php编写的。
tar zxf phpldapadmin-1.2.2  -C /var/www/html/
cd /var/www/html/
mv  phpldapadmin  phpldap
cd phpldap
cd config/
cp config.php.example  config.php
此时可以用浏览器访问:192.168.0.186/phpldap  输入用户名和密码就行了。在里面也可以手动添加用户,修改用户的相关信息。

你可能感兴趣的:(LDAP,服务认证与加密)