以下是在CentOS 7.9环境中搭建NIS服务、实现用户统一管理的详细步骤:
一、环境规划
- 主服务器(Master):IP
192.168.1.10,负责存储用户数据。 - 客户端节点(Node1/Node2):IP
192.168.1.11、192.168.1.12,绑定到NIS主服务器。 - NIS域名:
niscluster(可自定义)。
二、主服务器(Master)配置
1. 安装NIS服务
# 安装NIS服务端及工具
yum install -y ypserv yp-tools rpcbind
2. 设置NIS域名
# 设置临时NIS域名
nisdomainname niscluster
# 永久生效(写入配置文件)
echo "NISDOMAIN=niscluster" >> /etc/sysconfig/network
3. 初始化NIS数据库
# 启动rpcbind服务
systemctl start rpcbind
systemctl enable rpcbind
# 初始化NIS数据库
/usr/lib64/yp/ypinit -m
- 根据提示输入主服务器主机名(如
master),按Ctrl+D结束。
4. 配置访问权限
# 允许所有客户端访问(生产环境需限制IP)
echo "0.0.0.0/0" > /var/yp/securenets
# 重启服务使配置生效
systemctl restart ypserv yppasswdd ypxfrd
systemctl enable ypserv yppasswdd ypxfrd
5. 防火墙配置
# 开放NIS相关端口
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=nis
firewall-cmd --reload
三、客户端节点(Node1/Node2)配置
1. 安装NIS客户端
yum install -y ypbind rpcbind
2. 设置NIS域名
# 设置临时NIS域名
nisdomainname niscluster
# 永久生效
echo "NISDOMAIN=niscluster" >> /etc/sysconfig/network
3. 配置NIS服务器地址
# 指定主服务器IP
echo "domain niscluster server 192.168.1.10" > /etc/yp.conf
4. 修改用户查询顺序
# 编辑nsswitch.conf,优先使用NIS
sed -i 's/^passwd:.*/passwd: files nis/' /etc/nsswitch.conf
sed -i 's/^group:.*/group: files nis/' /etc/nsswitch.conf
sed -i 's/^hosts:.*/hosts: files dns nis/' /etc/nsswitch.conf
5. 启动服务
systemctl start rpcbind ypbind
systemctl enable rpcbind ypbind
四、用户统一管理操作
1. 在主服务器创建用户
# 创建用户(如用户user1)
useradd user1
passwd user1
# 更新NIS数据库
cd /var/yp
make
2. 客户端验证用户
在Node1/Node2上执行:
# 查看用户是否同步
getent passwd user1
# 尝试使用用户登录
ssh user1@node1
五、用户删除操作
1. 在主服务器删除用户
# 删除用户
userdel -r user1
# 更新NIS数据库
cd /var/yp
make
2. 客户端验证删除
在Node1/Node2上执行:
getent passwd user1 # 应无输出
六、故障排查
1. 常见问题
-
客户端无法绑定:
- 检查主服务器防火墙是否开放端口(
rpcinfo -p master)。 - 确认客户端
/etc/yp.conf中的IP是否正确。
- 检查主服务器防火墙是否开放端口(
-
用户信息不同步:
- 主服务器执行
make强制更新数据库。 - 检查
/var/yp/Makefile中是否包含需要同步的文件(如passwd、group)。
- 主服务器执行
2. 日志检查
# 查看NIS服务日志
tail -f /var/log/messages | grep yp
七、安全增强建议
-
限制客户端IP:
- 编辑主服务器
/var/yp/securenets,仅允许Node1/Node2的IP:255.255.255.0 192.168.1.0
- 编辑主服务器
-
启用SELinux策略:
setsebool -P nis_enabled 1
通过以上步骤,您的集群将实现用户和组的集中管理,所有操作在主服务器执行后自动同步到客户端节点。
浙公网安备 33010602011771号