实验之前的诚恳话语
1.默认情况下redhat-ds允许匿名去读取目录服务里面的数据
2.匿名访问是不要任何用户名和密码的
3.simple bind简单认证意指客户端只要输入用户名和密码给目录服务,然后目录服务把从客户端传过来的用户名(dn)和密码与自己的ldif数据库对比,一致就通过,不一致就拒绝。关键问题是simple bind在传送用户名和密码过程中是明文的有安全隐患,而且只要用户名和密码就能证明你的合法性了吗?却有些简单了。
4.针对上述问题提出了两种方法
*使用证书即tls(ssl)加密你的用户名(dn)和密码在网络传输给目录服务做认证的过程中。也加密了你查询到的数据。
*使用SASL即kerberos
5.可以使用图像化安装证书也可以使用命令行
安装ca中心证书
certutil �Cd /etc/dirsrv/实例名 �CA �Ci ca-certificate.crt的路径 -n 证书的显示名 -t CT,CT,CT
安装服务器证书
certutil �Cd /etc/dirsrv/实例名 �CA �Ci server-certificate.crt的路径 -n 证书的显示名 -t u,u,u
诚恳的话语讲完了,我们可以试验了,不好意思����嗦嗦的了。
步骤一:建立自签名证书
当前目录在station9.example.com这台CA上的/etc/pki/CA操作
vim /etc/pki/tls/openssl.cnf
根据配置文件建立这些目录和文件以支撑证书中心的记录
生成ca中心的密钥
生成ca中心的公钥
步骤二:目录服务器申请证书
当前操作在server109.example.com这台目录服务控制台上操作
服务器利用redhat-ds生成证书请求文件
步骤三:ca中心给目录服务器证书请求签发证书
回到station9.example.com这个ca中心上操作了
步骤四:目录服务器下载并安装证书
回到server109.example.com目录服务上操作了
下载server109.crt和my-ca.crt这两个证书
在redhat-ds控制台中安目录服务器证书
在安装ca中心证书到目录服务器中
步骤五:开启tls加密功能
开始启用证书ssl加密
点击save按钮
提示你tls加密使用636端口,平常使用389端口
重新启动dirsrv目录服务
可是当服务器重新后到加载dirsrv目录服务时也需要输入这个密码,这个多少有些麻烦,可以在一个文件中先吧密码保存好,服务启动后直接找这个文件要密码就ok了
vim /etc/dirsrv/实例名/pin.txt
设置开机自动加载
当你重启服务的时候很有可能发生服务启动失败主要有几种情况
1.服务器和ca中心的时间不同步,或者不再一个时区,会提示你服务器证书安装成功但是过期。
net time -S 目标时间服务器
2.上述的两个勾选“信任客户机”“信任其他服务器”没选中,否则提示你证书安装成功但是不被信任的用户。
3.启动不成功将无法再次连接dirsrv目录服务,你可以vim /etc/dirsrv/实例名/dse.ldif找到
nsSSLActivation: off
nsslapd-security: off
然后再次重新启动就不会提示你输入保护私钥的密码,也就是说属于开389端口启动。进入证书管理界面删除服务器证书和ca证书即可。
步骤六:客户端验证之字符界面
接下来我们要进行客户端验证了
我们用authconfig-tui来把让客户端启用LDAP方式的身份验证
#authconfig-tui
当你选择了Use LDAP后提示你没有nss模块,啥也不说了直接yum install nss*即可
那现在就把ca中心的证书拷贝到指定的目录
cp my-ca.crt /etc/openldap/cacerts
其实我们刚刚的操作都写在/etc/openldap/ldap.conf中了
现在你依然可以用匿名身份查询到并且你也可以使用不加密的形式来得到数据,但最好还是用加密的方式从目录服务得到数据和传输用户名和口令给目录服务做身份验证。
ldapsearch �Cx -ZZ
这条命令就可以得到结果了,你感觉和ldapsearch -x得到的结果没有区别。是得,只不过在潜移默化中你得到的数据已经被tls加密了。这两条命令结果之间的区别只有依靠抓包分析软件来证明了。
步骤七:客户端验证之邮件雷鸟