搭建LDAP验证服务器
完成了基础的虚拟机环境后,就可以开始用虚拟机安装各种服务了,几乎所有的服务都依赖登录,要是每个服务都自己配置用户那维护就太不方便了。
LDAP可以提供统一的验证方案,目前很多软件都有对LDAP支持。以前我都是直接使用windows server的LDAP服务的,这次准备用linux搭个LDAP服务。
我们以后用ldap来表示运行验证服务的服务器,它可以被安装在任何一台虚拟机上,然后给一个ldap的cname。
安装OpenLDAP
首先先要安装ldap的服务:
$ yum install openldap-servers openldap-clients
$ systemctl enable slapd
$ systemctl start slapd
配置OpenLDAP
LDAP不建议我们直接修改配置文件,所以还要掌握下最基本的LDAP的命令行操作。首先先查询下所有的配置:
$ ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn
查看下hdb数据库配置:
$ ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config olcDatabase=hdb
下面修改hdb数据库的配置,首先新建一个文件hdb_config.ldif
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example,dc=com
-
replace: olcRootDN
olcRootDN: cn=Manager,dc=example,dc=com
-
add: olcRootPW
olcRootPW: secret
-
add: olcAccess
olcAccess: to attrs=userPassword
by self write
by anonymous auth
by dn.base="cn=Manager,dc=ly,dc=com" write
by * none
-
add: olcAccess
olcAccess: to *
by self write
by dn.base="cn=Manager,dc=ly,dc=com" write
by * read
然后更新配置:
$ ldapmodify -Q -H ldapi:/// -f hdb_config.ldif
添加数据
新建文件data.ldif
# Organization for Example Corporation
dn: dc=example,dc=com
objectClass: dcObject
objectClass: organization
dc: example
o: Example Corporation
description: The Example Corporation
# Organizational Role for Directory Manager
dn: cn=Manager,dc=example,dc=com
objectClass: organizationalRole
cn: Manager
description: Directory Manager
导入数据:
$ ldapadd -f data.ldif -x -D "cn=Manager,dc=example,dc=com" -w secret
导入schema
$ ldapadd -H ldapi:// -f /etc/openldap/schema/cosine.ldif
$ ldapadd -H ldapi:// -f /etc/openldap/schema/inetorgperson.ldif
$ ldapadd -H ldapi:// -f /etc/openldap/schema/nis.ldif
安装LDAP图形化管理工具
用命令行管理ldap实在有点痛苦,尤其是现在OpenLDAP自己的配置都是用LDAP来配置的,所以下面先安装LDAP Account Manager。 这是一个基于web的管理工具。
先安装apache,如果之前没有装过:
$ yum install httpd php php-ldap
$ systemctl enable httpd
安装lam:
$ wget http://prdownloads.sourceforge.net/lam/ldap-account-manager-5.2.tar.bz2
$ tar -xvf ldap-account-manager-5.2.tar.bz2
$ cd ldap-account-manager-4.2.1
$ ./configure --with-httpd-user=apache \
--with-httpd-group=apache
$ make install
$ cd /usr/local/lam/config
$ cp config.cfg.sample config.cfg
$ cp windows_samba4.conf.sample lam.conf
$ chown apache:apache config.cfg lam.conf
创建一个httpd的配置:/etc/httpd/conf.d/lam.conf
Alias /lam /usr/local/lam
<Directory /usr/local/lam>
AllowOverride none
Require all granted
</Directory>
然后启动服务:
$ systemctl restart httpd
打开浏览器,访问http://ldap.tiwb.net/lam
就可以看到LAM的登录界面了,登录前要先在右上角的LAM configuration
里配置ldap服务器。
配置TLS
首先先生成证书,注意common name必须和ldap服务器的名字一样。
$ cd /etc/pki/CA
$ . /etc/pki/tls/misc/CA -newca
$ openssl req -new -nodes -keyout newreq.pem -out newreq.pem
$ . /etc/pki/tls/misc/CA -sign
$ mv newcert.pem /etc/pki/tls/certs/ldap.tiwb.net.pem
$ mv newreq.pem /etc/pki/tls/private/ldap.tiwb.net.key
然后ldap设置cn=config
olcTLSCACertificateFile: /etc/pki/CA/cacert.pem
olcTLSCertificateFile: /etc/pki/tls/certs/ldap.tiwb.net.pem
olcTLSCertificateKeyFile: /etc/pki/tls/private/ldap.tiwb.net.key
修改配置文件:/etc/openldap/ldap.conf
,增加:
LS_CACERT /etc/pki/CA/cacert.pem
修改apache配置文件:/etc/httpd/conf.d/authz_ldap.conf
, 增加:
LDAPTrustedGlobalCert CA_BASE64 /etc/pki/CA/cacert.pem