LDAP目录服务
LDAP:轻量级目录访问协议(Lightweight Directory Access Protocol)
Ø 由服务器来集中存储并向客户端提供的消息,存储方式类似于DNS分层结构
Ø 提供的信息包括:用户名、密码、通信录、主机名映射记录……
典型的LDAP工作模式
Ø LDAP服务器为一组客户机集中提供可登录的用户帐号
Ø 本地用户:用户名、密码信息存储/etc/passwd、/etc/shadow
Ø 网络用户:用户名、密码信息存储在 LDAP 服务端
Ø 这些客户机都须加入同一个LDAP域
加入LDAP需要的条件
1)服务端提供:
Ø LDAP服务器地址,基本DN名称
Ø 加密用的证书(若需要)
2)客户端准备:
Ø 用途:使用另一台服务器上的账号登录到本机
Ø 修改用户登录的验证方式,启用LDAP
Ø 正确配置LDAP服务器参数
Ø 软件包:sssd(与服务端沟通程序)、authconfig-gtk(图形化配置sssd程序)、
【Base DN、服务器地址、证书】
配置工具:
authconfig-gtk(图形工具)
authconfig-tui(字符界面)
系统服务(C):sssd
服务端Server:为其他机器提供某一种资源或功能的程序
客户端Client:使用其他机器提供的资源或功能的程序
如何加入LDAP域:
第一步:装包,yum -y install sssd authconfig-gtk
第二步:配置LDAP认证,图形:authconfig-gtk
输入LDAP服务器地址(即指定用户帐户数据库LDAP),基本DN名称,加密用的证书
第三步:
1)查看服务状态:systemctl status sssd
2)重启sssd服务成功:systemctl restart sssd
3)设置服务开机自启:systemctl enable sssd
第四步:验证LDAP用户登录
#id ldapuser0
#su - ldapuser0
配置虚拟机server0使用系统classroom.example.com提供的LDAP服务,要求如下:
1.验证服务的基本DN是:dc=example,dc=com
2.账户信息和验证信息都是由 LDAP 提供的
3.连接要使用证书加密,证书可以在下面的链接下载:http://classroom.example.com/pub/example-ca.crt
4.当正确完成配置后,用户 ldapuser0 应该能登录到你的系统,不过暂时没有主目录(需完成 autofs 题目)
5.用户 ldapuser0 的密码是 password
方案:需要安装软件包sssd已提供支持。
配置工具可选择默认安装的authconfig-tui,或者使用图形程序authconfig-gtk。
步骤一:安装支持软件sssd、图形配置authconfig-gtk
[root@server0 ~]# yum -y install sssd authconfig-gtk
[root@server0 ~]# rpm -q sssd authconfig-gtk
步骤二:配置LDAP客户端参数
1)使用authconfig-gtk认证配置工具
打开配置程序后,可以看到“Identity & Authentication”窗口。
单击“User Account Database”右侧的下拉框选中“LDAP”,单击“Authentication Method”右侧的下拉框选中“LDAP Password”。然后在“LDAP Search DN”后的文本框内填入指定的基本DN字串“dc=example,dc=com”,在“LDAP Server”后的文本框内填入指定的LDAP服务器地址“classroom.example.com”。
勾选“Use TLS to encrypt connections”前的选框,然后下方的“Download CA Certificate”按钮会变成可用状态,上方的警告消息也会自动消失。
单击“Download CA Certificate”按钮,根据提示填入TLS加密用CA证书的下载地址(http://classroom.example.com/pub /example-ca.crt),然后单击OK回到配置界面,单击右下方的“Apply”按钮,耐心等待片刻即完成设置,配置程序自动 关闭。
2)确保sssd服务已经运行
只要前一步配置正确,检查sssd服务会发现已经自动运行。
[root@server0 ~]# systemctl status sssd
sssd.service - System Security Services Daemon
... ..
[root@server0 ~]# systemctl enable sssd //确保sssd服务开机自启。
步骤三:LDAP客户端验证
1)在客户机上能检测到LDAP网络用户
[root@server0 ~]# grep 'ldapuser0' /etc/passwd
[root@server0 ~]# id ldapuser0 //检查ldapuser0的ID值:
uid=1700(ldapuser0) gid=1700(ldapuser0) groups=1700(ldapuser0)
2)可以su切换到LDAP网络用户
//切换到用户ldapuser0并返回:
[root@server0 ~]# su - ldapuser0
su: warning: cannot change directory to /home/guests/ldapuser0: No such file or directory
mkdir: cannot create directory '/home/guests': Permission denied
-bash-4.2$ //成功登入,但没有家目录
-bash-4.2$ exit //返回原用户环境
Logout
[root@server0 ~]#
3)可以使用LDAP网络用户在客户机上登录
//以用户ldapuser0,密码password尝试ssh登录到server0:
[root@server0 ~]# ssh [email protected]
The authenticity of host 'server0.example.com (172.25.0.11)' can't be established.
ECDSA key fingerprint is eb:24:0e:07:96:26:b1:04:c2:37:0c:78:2d:bc:b0:08.
Are you sure you want to continue connecting (yes/no)? yes //首次接受密钥
Warning: Permanently added 'server0.example.com,172.25.0.11' (ECDSA) to the list of known hosts.
[email protected]'s password: //输入密码password
Last login: Sat Nov 26 05:45:51 2016
Could not chdir to home directory /home/guests/ldapuser0: No such file or directory
mkdir: cannot create directory ‘/home/guests’: Permission denied
-bash-4.2$ //成功登入,但没有家目录
-bash-4.2$ exit //返回原用户环境
logout
Connection to server0.example.com closed.