OpenLDAP自动启动和安全设定1.自动启动OpenLDAP服务器
如果希望ldap每次启动都能自动运行,可以用ntsysv设置。以root权限运行命令:
#ntsysv
图6启动OpenLDAP提供网络服务
打开如图6 所示的窗口,在ldap服务选项加上*(用空格键),然后重新启动系统,这样系统会启动ldap目录服务。
2.使用访问控制(Access Control)实现用户认证
修改OpenLDAP的配置文件,增加控制模块方法如下:
# vi /usr/local/etc/OpenLDAP/slapd.conf
access to attr=userPassword
by anonymous auth
by self write
by * none
access to *
by self write
by users read
这里访问控制用于禁止匿名查询,而认证用户可以修改自己的所有属性,除了userPassword属性,允许查询它人的信息条目。上面的每一行都是必须
的,如果没有“by anonymous
auth”,需要认证的用户不能完成认证,因为它查询不到密码。所以“auth”在这里的作用就是允许匿名用户可以读到密码,但只能用于验证,而不能用于
其它的用途,这就保证了密码属性的安全。
另外前面介绍/etc/OpenLDAP/slapd.conf文件设定密码时,使用了明文,主要是为了调试方便,实际工作时应当使用加密方法。最新版本的OpenLDAP支持三种加密方法:MD5、CRYPT、SSHA。我们不想将rootpw 在
服务器上的明文内,所以我们改用散列。有几种普遍使用的散列方法可通过slappasswd
命令来实现,包括SHA、SSHA、MD5、和CRYPT在内。安全方面CRYPT最差。SSHA是默认方法,MD5也不错。使用slappasswd
可以生成一个很好的散列rootpw:
$ slappasswd
New password:
Re-enter new password:
{SSHA}Lr7P++EoH6GpIS4GZ36v4R422RuW7R
现在复制粘贴这个很好的新散列到/etc/ldap/slapd.conf内:
rootpw {SSHA}Lr7P++EoH6GpIS4GZ36vkV4R422RuW7R
这是一个永久设置,很适合用在小型的简单的网络上。更好的解决方案就是创建一个LDAP记录,该记录定义了LDAP管理员,还为LDAP管理员使用
slapd.conf中的ACLs (access control
lists)定义了访问权限。尽量少将安全敏感的信息存储在目录中.如果非存不可.一定要编辑ACL严格的控制访问权限如userPassword等.多
数情况下目录服务还要主要是给其他的服务提供数据存储.这样的话应该让每个服务器绑定到不通的DN,同时在ACL中赋予他们较高的权限.而不能让所有的服
务都使用rootdn来绑定。