NIS搭建 (Rocky Linux 8)
本指南概述了设置基本且功能齐全的网络信息服务(NIS)配置的步骤,以供后续参考。

本指南适用于 Rocky Linux 8。如果您使用的是不同版本的 Linux,步骤可能会有所不同。
概述
设置 Linux 服务器集群通常需要中央身份验证系统,包括 LDAP 和 NIS 等选项。在本指南中,我们专注于使用 NIS(网络信息服务)来管理用户身份验证,并确保跨节点的无缝集成。本指南提供了建立强大且功能齐全的 NIS 配置的全面分步说明。通过在多个 Linux 服务器间集中用户身份验证,NIS 可以减少管理开销并促进分布式系统的无缝集成,包括无密码 SSH 登录。
架构
网络信息服务(NIS)是一种客户端-服务器目录服务协议,旨在通过网络分发系统配置文件——如用户账户、组和主机名。以下是 NIS 架构的概述:

关键 NIS 映射
| 映射名称 | 描述 |
passwd.byname | 按用户名的用户账户信息 |
passwd.byuid | 按 UID 的用户账户信息 |
group.byname | 按组名的组信息 |
group.bygid | 按 GID 的组信息 |
hosts.byname | 主机名到 IP 的映射 |
hosts.byaddr | IP 到主机名的映射 |
这些映射构成了 NIS 功能的核心,为网络范围的一致性提供对用户和主机数据的结构化访问。
服务端配置
安装必要的软件包:
安装 NIS 服务器功能所需的组件。
bashdnf -y install ypserv rpcbind设置 NIS 域名:
为您的 NIS 设置定义一个唯一的域名。
bashypdomainname hpc echo -e "\nNISDOMAIN=hpc" >> /etc/sysconfig/network允许所有主机、用户和组:
配置 NIS 以允许无限制的访问。在生产环境中需要调整为更严格的安全设置。
bashecho "* : * : * : none" >> /etc/ypserv.confQuote警告: 此配置允许对所有主机、用户和组的无限制访问,这可能会带来安全风险。对于生产环境,请考虑定义更严格的访问控制策略以限制暴露。
启用并启动服务:
激活运行 NIS 服务器所需的服务。
bashsystemctl enable --now rpcbind ypserv ypxfrd yppasswdd nis-domainname初始化 NIS 映射:
生成初始的 NIS 映射,其中包括用户和组数据。
bash/usr/lib64/yp/ypinit -m添加用户后更新 NIS 映射:
每当对用户或组数据进行更改时,刷新映射。
bashmake -C /var/yp可选:配置 SELinux:
调整 SELinux 策略以适应 NIS 功能。
bashsetsebool -P nis_enabled on setsebool -P domain_can_mmap_files on配置防火墙:
防火墙配置是确保 NIS 设置安全性的关键步骤。它控制可以访问您服务器的网络流量并防止未经授权的访问。考虑在启用服务之前执行此步骤,以避免在配置期间暴露您的系统。
编辑
/etc/sysconfig/network:bashecho 'YPSERV_ARGS="-p 944"' >> /etc/sysconfig/network echo 'YPXFRD_ARGS="-p 945"' >> /etc/sysconfig/network编辑
/etc/sysconfig/yppasswdd:bashecho 'YPPASSWDD_ARGS="--port 950"' >> /etc/sysconfig/yppasswdd重启服务:
bashsystemctl restart rpcbind ypserv ypxfrd yppasswdd配置防火墙:
bashfirewall-cmd --add-service=rpc-bind firewall-cmd --add-port={944-951/tcp,944-951/udp} firewall-cmd --runtime-to-permanent
客户端配置
安装必要的软件包:
安装 NIS 客户端所需的组件。
bashdnf -y install ypbind rpcbind oddjob-mkhomedir设置 NIS 域名:
为客户端系统定义 NIS 域。
bashypdomainname hpc echo -e '\nNISDOMAIN=hpc' >> /etc/sysconfig/network配置 NIS 客户端:
设置客户端连接到 NIS 服务器。
编辑
/etc/yp.conf:bashecho 'domain hpc server controlplane-01' >> /etc/yp.conf
启用并启动服务:
激活 NIS 客户端功能所需的服务。
bashsystemctl enable --now rpcbind ypbind nis-domainname oddjobd配置身份验证:
bashauthselect select nis --force此命令通过更新 PAM(可插拔身份验证模块)堆栈来配置系统使用 NIS 进行身份验证。它确保通过 NIS 服务器验证的用户可以访问系统。此步骤对于在 NIS 环境中启用集中式身份验证至关重要。
在初始登录时创建主目录:
bashauthselect enable-feature with-mkhomedir
可选:配置 SELinux:
调整 SELinux 策略以支持 NIS 客户端操作。
bashsetsebool -P nis_enabled on验证 NIS 服务器绑定:
检查客户端连接到哪个 NIS 服务器。
bashypwhich预期输出:
plaintextcontrolplane-01
更改 NIS 密码:
更新用户的 NIS 密码。
bashyppasswd
结论
通过遵循本指南,您可以成功在服务端和客户端设置和配置 NIS。此设置集中化用户管理,简化跨多个系统的身份验证,并减少管理开销。对于生产环境,请始终检查安全设置以确保符合组织策略和最佳实践。如果遇到问题,请查阅系统日志、验证服务状态或检查网络配置以识别潜在的错误配置。通过适当的设置和维护,NIS 可以显著简化系统管理并提高运营效率。

