使用LDAP认证

LDAP目录服务

LDAP:轻量级目录访问协议(Lightweight Directory Access Protocol)

Ø 由服务器来集中存储并向客户端提供的消息,存储方式类似于DNS分层结构

Ø 提供的信息包括:用户名、密码、通信录、主机名映射记录……

 

典型的LDAP工作模式

Ø LDAP服务器为一组客户机集中提供可登录的用户帐号

Ø 本地用户:用户名、密码信息存储/etc/passwd、/etc/shadow

Ø 网络用户:用户名、密码信息存储在 LDAP 服务端

Ø 这些客户机都须加入同一个LDAP域

 

如何加入LDAP域

加入LDAP需要的条件

1)服务端提供:

Ø LDAP服务器地址,基本DN名称

Ø 加密用的证书(若需要)  

2)客户端准备:

Ø 用途:使用另一台服务器上的账号登录到本机

Ø 修改用户登录的验证方式,启用LDAP

Ø 正确配置LDAP服务器参数

Ø 软件包:sssd(与服务端沟通程序)、authconfig-gtk(图形化配置sssd程序)、

【Base DN、服务器地址、证书】

配置工具:

authconfig-gtk(图形工具)

authconfig-tui(字符界面)

系统服务(C):sssd

 

ssh  ldapuser0@server0.example.com

服务端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

 


案例:绑定到LDAP验证服务

配置虚拟机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  ldapuser0@server0.example.com

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.

ldapuser0@server0.example.com'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.