openldap+nfs+autofs
要求
系统:centos7.5
关闭selinux:vim /etc/sysconfig/selinux ,修改enforcing为disabled(一定要改为disabled,否则phpldapadmin无法登录)
关闭防火墙:systemctl disabled firewalld ,并设为开机不启动 systemctl disable firewalld
服务器与客户端时间要同步
/usr/bin/timedatectl set-timezone Asia/Shanghai(同步时区,服务器跟客户端都要做)
1 服务器上操作
yum -y install ntp
vim /etc/ntp.conf
restrict 10.0.100.1 mask 255.255.255.0 nomodify (添加此行)
systemctl start ntpd
systemctl enable ntpd
2 客户端操作
yum -y install ntp
crontab -e
* */1 * * * /usr/sbin/ntpdate 10.0.100.41;/sbin/hwclock -w (添加此行,每小时同步一下域服务器)
systemctl start crond
systemctl enable crond
install server
1 安装LDAP服务器和客户端,migrationtools工具包
yum install -y openldap-servers openldap-clients migrationtools
2 设置openldap管理员密码,(保存好生成的密码,马上就要用到)
[root@localhost ~]# slappasswd
New password:
Re-enter new password:
{SSHA}QGEH5yXifS3x/tnCIZTXDJ7UlvDJ54r6
3 更改openldap配置
vim /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif
olcSuffix: dc=test,dc=com (修改dc)
olcRootDN: cn=yskj,dc=test,dc=com (修改cn以及dc,这一行就是管理账号的用户名,用来登陆的)
olcRootPW: {SSHA}QGEH5yXifS3x/tnCIZTXDJ7UlvDJ54r6 (额外添加的一行,管理员的密码)
4 更改监控认证配置
vim /etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif
修改cn以及dc与上一步的一致
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
al,cn=auth" read by dn.base="cn=yskj,dc=test,dc=com" read by * none
5 设置DB Cache
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown -R ldap:ldap /var/lib/ldap/
6 测试配置是否成功
[root@localhost ~]# slaptest -u
5de7678e ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif"
5de7678e ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif"
config file testing succeeded
末尾出现configfile testing successed 说明成功了
7 启动OpenLDAP和开机启动
[root@localhost ~]# systemctl start slapd.service
[root@localhost ~]# systemctl enable slapd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/slapd.service to /usr/lib/systemd/system/slapd.service.
8 导入模板
[root@localhost ~]# ls /etc/openldap/schema/*.ldif | xargs -I {} sudo ldapadd -Y EXTERNAL -H ldapi:/// -f {}
9 创建基础目录
vim base.ldif
[root@localhost ~]# cat base.ldif
dn: dc=test,dc=com
o: test com
dc: test
objectClass: top
objectClass: dcObject
objectclass: organization
dn: cn=yskj,dc=test,dc=com
cn: yskj
objectClass: organizationalRole
description: Directory yskj
dn: ou=People,dc=test,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit
dn: ou=Group,dc=test,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit
使用phpldapadmin管理域用户
1 安装phpldapadmin
yum install -y epel-release
yum install -y phpldapadmin
2 配置phpldapadmin
[root@localhost ~]# vim /etc/phpldapadmin/config.php
$servers->setValue('login','attr','dn'); (397行)
// $servers->setValue('login','attr','uid');(398行)
3 配置phpldapadmin的网络访问
[root@localhost ~]# vim /etc/httpd/conf.d/phpldapadmin.conf
添加一行Require all granted
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
**Require all granted**
</IfModule>
4 启动phpldapadmin
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
5 访问
访问 http://ip/phpldapadmin
登陆用户名:cn=yskj,dc=test,dc=com
密码:第2步的明文密码
安装证书
[root@localhost home]# openssl req -new -x509 -nodes -out /etc/openldap/certs/cert.pem -keyout /etc/openldap/certs/priv.pem -days 365
Generating a 2048 bit RSA private key
...........+++
.........................+++
writing new private key to '/etc/openldap/certs/priv.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:SHANXI
Locality Name (eg, city) [Default City]:SHANXI
Organization Name (eg, company) [Default Company Ltd]:yskj
Organizational Unit Name (eg, section) []:test
Common Name (eg, your name or your server's hostname) []:bb
Email Address []:bb@yuansuan.cn
[root@localhost certs]# chown ldap:ldap /etc/openldap/certs/*
[root@localhost home]# cd /etc/openldap/certs/
[root@localhost certs]# chmod 600 priv.pem
生成的证书在/etc/openldap/certs/下的cert.pem
install 客户端
1 安装必要的LDAP客户端软件包。
yum install -y openldap-clients nss-pam-ldapd
2 使用图形化安装
[root@pbsnode cacerts]# scp root@10.0.100.41:/etc/openldap/certs/cert.pem /etc/openldap/cacerts/ (将服务器端的证书拷贝到客户端)
[root@pbsnode cacerts]# authconfig-tui
修改ldap域服务器ip,以及dc
4 启动服务
[root@localhost ~]# systemctl restart nslcd
[root@localhost ~]# systemctl enable nslcd
5 验证是否成功
在客户端上:id 用户名
[root@localhost ~]# id bbzhang
uid=1000(bbzhang) gid=500(mygroup) groups=500(mygroup)
说明成功
重要:一定要su,不然不会产生用户家目录
[root@localhost ~]# su bbzhang
sh-4.2$
会在/home/users/下生成用户家目录
NFS安装及autofs自动挂载
1 NFS安装参照链接中的九 nfs安装
nfs服务端安装在域服务器上即可
2 设置autofs自动挂载nfs共享目录
yum install autofs nfs-utils -y
[root@pbsnode ~]# vim /etc/auto.master
/home /etc/auto.guests (加入这一行) home/guests --指定需要把远程服务器上的目录挂载到本地客户端的哪个目录下。etc/auto.guests --指定挂载时用到的子配置文件名,这是一个映射文件,名字可以随便取,路径也可以随便,下边要用到。
[root@pbsnode users]# vim /etc/auto.guests
* -rw 10.0.100.41:/home/& (加入这一行)
如果是使用用户bbzhang
cd /home,su bbzhang
就会在/home目录下生成bbzhang的用户家目录
3 启动autofs
[root@pbsnode users]# systemctl enable autofs
[root@pbsnode users]# systemctl start autofs
本地用户导入到域上
ldapadd命令是在server端才可以使用的命令,所以这篇文章中用到ldapadd的地方都去域服务器上去执行
参考:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律