写点什么

CentOS-7.2 部署 OpenLDAP 服务器以及客户端

作者:指剑
  • 2022-11-30
    重庆
  • 本文字数:3045 字

    阅读完需:约 10 分钟

CentOS-7.2部署OpenLDAP服务器以及客户端

一、安装与启动

1、安装与启停控制 OpenLDAP

#yum -y install openldap openldap-servers openldap-clients openldap-devel compat-openldap wget
复制代码


2、启动 slapd 服务并设置开机启动

#systemctl start slapd#systemctl enable slapd
复制代码


二、配置 OpenLDAP 服务器以及相关服务

1、配置 OpenLDAP 用户认证服务

1)配置 OpenLDAP 服务器主机名以及 FQDN 域名解析

#hostnamectl set-hostname fl.fl.com //设置主机名为fl.fl.com#echo  "fl.fl.com" >> /etc/hostname
复制代码


#配置域名解析


#vi /etc/hosts  //添加如下内容
复制代码


2)生成 OpenLDAP 服务器全局连接密码

调用 slappasswd 对管理员密码进行加密


#slappasswd -s passwd000000 -n > /etc/openldap/passwd#cat /etc/openldap/passwd
复制代码


3)创建 x509 认证本地 LDAP 服务证书

LDAP 目录服务以明文的方式在网络中传输数据和密码,不安全,所以采用 TLS 加密机制来处理此问题,使用 openssl 工具生成 X509 格式的证书文件(有效期 365 天)使用如下命令


#openssl req -new -x509 -nodes -out /etc/openldap/certs/cert.pem -keyout /etc/openldap/certs/priv.pem -days 365
复制代码


4)、修改 LDAP 证书所属组和权限

#chown -R ldap:ldap /etc/openldap/certs/*#chmod 600 /etc/openldap/certs/priv.pem
复制代码


5)、生成 LDAP 数据库并设置权限

#cp -v /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
复制代码



#slaptest
复制代码



#chown ldap.ldap /var/lib/ldap/DB_CONFIG
复制代码



#slaptest 
复制代码


6)、设置 LDAP 日志文件保存日志信息

#echo ‘local4.* /var/log/ldap.log’ >> /etc/rsyslog.conf#systemctl restart rsyslog#systemctl enable rsyslog
复制代码


7)、安装并设置 httpd 服务

#yum -y install httpd
复制代码



# cp /etc/openldap/certs/cert.pem /var/www/html/
复制代码



#systemctl restart httpd#systemctl enable httpd
复制代码



测试 httpd 服务器是否正常工作


# wget http://fl.fl.com/cert.pem
复制代码



8、设置防火墙和 SELinux 策略(若已关闭防火墙和 SElinux 则可忽略此步骤)

#firewall-cmd --permanent --add-service=ldap#firewall-cmd --add-service=http --permanent
复制代码



#firewall-cmd --reload#setenforce 0
复制代码


2、创建 OpenLDAP 用户和用户组

1)配置基础用户认证结构

# cd /etc/openldap/schema/# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f cosine.ldif
复制代码



# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f  nis.ldif
复制代码


2)自定义 LDIF 文件并导入 LDAP 服务器

(1)创建/etc/openldap/changes.ldif 文件,并配置

vi /etc/openldap/changes.ldif

//添加如下内容


dn:olcDatabase={2}hdb,cn=configchangetype:modifyreplace:olcSuffixolcSuffix:dc=fl,dc=com
dn:olcDatabase={2}hdb,cn=configchangetype:modifyreplace:olcRootDNolcRootDN:cn=Manager,dc=fl,dc=com
dn:olcDatabase={2}hdb,cn=configchangetype:modifyreplace:olcRootPWolcRootPW:{SSHA}4P124Z9SfxL+Sq6436wEMXEjki5ycDdp//此处为你之前生成的密钥
dn:cn=configchangetype:modifyreplace:olcTLSCertificateFileolcTLSCertificateFile:/etc/openldap/cert/cert.pem
dn:cn=configchangetype:modifyreplace:olcTLSCertificateKeyFileolcTLSCertificateKeyFile:/etc/openldap/cert/priv.pem
dn:cn=configchangetype:modifyreplace:olcLogLevelolcLogLevel:-1
dn:olcDatabase={1}monitor,cn=configchangetype:modifyreplace:olcAccessolcAccess:{0} to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,dc=fl,dc=com" read by * none
复制代码


(2)将新的配置文件更新到 slapd 服务程序

#ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/changes.ldif
复制代码


(3)创建/etc/openldap.base.ldif 文件

vi /etc/openldap/base.ldif

#base.ldifdn:dc=fl,dc=comdc:flobjectClass:topobjectClass:domain
dn:ou=People,dc=fl,dc=comou:PeopleobjectClass:topobjectClass:organizationalUnit
dn:ou=Group,dc=fl,dc=comou:GroupobjectClass:topobjectClass:organizationalUnit
复制代码


(4)创建目录的结构服务

# ldapadd -x -W -D cn=Manager,dc=fl,dc=com -f /etc/openldap/base.ldif 
复制代码


3、创建 Linux 本地用户和本地用户组

# mkdir /home/guests# useradd -d /home/guests/ldap1 ldapuser1# passwd ldapuser1
复制代码


4、迁移本地账号为 LDAP 账号

1)安装并设置 migrationtools

# yum -y install migrationtools
复制代码



# vi /usr/share/migrationtools/migrate_common.ph 
复制代码


修改 71 行和 74 行,注释掉原有内容,添加如下内容


$DEFAULT_MAIL_DOMAIN = "fl.com";$DEFAULT_BASE = "dc=fl,dc=com";
复制代码


2)将当前系统中的用户迁移至目录服务

# cd /usr/share/migrationtools/# grep ":10[0-9][0-9]" /etc/passwd > passwd# ./migrate_passwd.pl passwd users.ldif# ldapadd -x -w passwd000000 -D cn=Manager,dc=fl,dc=com -f users.ldif 
复制代码


3)将当前系统中的用户组迁移至目录服务

# grep ":10[0-9][0-9]" /etc/group > group# ./migrate_group.pl group groups.ldif# ldapadd -x -w passwd000000 -D cn=Manager,dc=fl,dc=com -f groups.ldif
复制代码



5、测试 LDAP 用户配置文件

# ldapsearch -x cn=ldapuser1 -b dc=fl,dc=com
复制代码



#cat /etc/passwd |grep ldapuser

id ldapuser1

三、配置 OpenLDAP 客户端及相关服务

请准备另一台虚拟机,作为客户端,保证 2 台虚拟机在同一网段中

1、配置 LDAP 客户端

1)配置客户端 IP 和域名解析

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
复制代码


修改静态 IP 地址为 192.168.100.21



vi /etc/hosts


测试 ping fl.fl.com


2)安装客户端所需软件包

# yum -y install openldap-clients nss-pam-ldapd authconfig-gtk pam_krb5
复制代码


3)运行并设置客户端认证工具

(①以 GUI GNOME 为例)

以下二选一 ①或②

# system-config-authentication
复制代码




然后单击【下载 CA 证书】按钮,在弹出的框内,填写服务器上的证书地址




配置认证


#authconfig --enableldap --enableldapauth --ldapserver="fl.fl.com" --ldapbasedn="dc=fl,dc=com" --update#authconfig --enableldaptls --update
复制代码



#cd /etc/openldap/cacerts#wget http://fl.fl.com/cert.pem
复制代码

②若您不是 GNOME 界面,也可使用如下命令进行操作,以命令界面为例

修改配置文件 1、/etc/nsswitch.conf 配置文件 33-35 行修改为如下内容



58 行



62 行



配置认证


#authconfig --enableldap --enableldapauth --ldapserver="fl.fl.com" --ldapbasedn="dc=fl,dc=com" --update#authconfig --enableldaptls --update
复制代码


authconfig-tui


4)验证是否可用 LDAP 全局账号

# id  ldapuser1
复制代码


2、挂载 LDAP 用户目录客户端,请在服务器端进行操作

1)在 LDAP 服务器上配置 NFS 服务

安装 NFS 服务


# yum -y install  nfs-utils  rpcbind
复制代码


vi /etc/exports

/home/guests/ldap1 192.168.100.20(rw,sync,root_squash)
复制代码


systemctl restart nfs-server rpcbind //重启 nfs-server 和 rpcbind 服务

#systemctl enable nfs-server rpcbind
复制代码


showmount -e 192.168.100.20 //显示 NFS 服务端的共享列表


2)在 LDAP 客户机上设置自动挂载(1)修改/home 目录权限 chmod 1777 /home/


(2)手动挂载 LDAP 用户主目录到客户端

#showmount  -e  192.168.100.20
复制代码



#mkdir /home/guests/ldap1 -p //创建本地挂载点,作为LDAP账号的主目录。#mount -t nfs fl.fl.com:/home/guests/ldap1  /home/guests/ldap1
复制代码



#su  - ldapuser1     //再次尝试切换到ldapuser1用户
复制代码



(3)设置开机自动挂载 LDAP 用户主目录 #vi /etc/fstab192.168.100.20:/home/guests/ldap1 /home/guests/ldap1 nfs defaults 0 0 //增加的配置行



发布于: 刚刚阅读数: 4
用户头像

指剑

关注

InfoQ签约作者 2022-07-13 加入

AWS社区建设者,AWS学生大使,微软学生大使,阿里云签约作者,Info Q签约作者,CSDN博客专家,华为云云享专家

评论

发布
暂无评论
CentOS-7.2部署OpenLDAP服务器以及客户端_centos_指剑_InfoQ写作社区