此文简述在中转服务器上安装NIS服务。中转服务器使用的操作系统是CentOS 6 Desktop,NIS客户端使用的操作系统为CentOS 6 minimal。由于网络拓扑比较简单,NIS服务并没有从服务器。
NIS服务简介
NIS, 表示网络信息服务 (Network Information Services), 最初由 Sun Microsystems 开发, 用于 UNIX® (最初是 SunOS™) 系统的集中管理。 目前, 它基本上已经成为了业界标准; 所有主流的类 UNIX® 系统 (Solaris™, HP-UX, AIX®, Linux, NetBSD, OpenBSD, FreeBSD, 等等) 都支持 NIS。
NIS 也就是人们所熟知的黄页(Yellow Pages)【tlanyan注:相当于电话簿】, 但由于商标的问题, Sun 将其改名为现在的名字。 旧的术语 (以及 yp), 仍然经常可以看到, 并被广泛使用。
这是一个基于 RPC 的客户机/服务器系统, 它允许在一个 NIS 域中的一组机器共享一系列配置文件。 这样, 系统管理员就可以配置只包含最基本配置数据的 NIS 客户机系统, 并在单点上增加、 删除或修改配置数据。
尽管实现的内部细节截然不同, 这和 Windows NT® 域系统非常类似, 以至于可以将两者的基本功能相互类比。
注:此段说明来自 http://www.freebsd.org/doc/zh_CN.UTF-8/books/handbook/network-nis.html
工作原理
NIS域中同时存在服务器和客户机,一般而言服务器保存了NIS域中的用户名、密码、分组等信息(客户机上也可以有自己的副本)。当一个用户登陆域中主机时,主机会根据配置文件中的顺序依次查找用户信息。一般顺序是本地文件优先,然后是NIS域。如果在本地文件中找不到用户信息,则主机向NIS服务器请求。如果用户提供的信息查询到且正确,就让用户成功登陆,否则拒绝。
配置NIS服务器
服务器需要ypserv, rpcbind两个软件包。其中ypserv是NIS服务的主程序包,rpcbind是启动和管理rpc的软件包。
- 安装所需软件包
yum -y install rpcbind ypserv
- 设置NIS域名
打开文件 /etc/sysconfig/network,添加一行:
NISDOMAIN=你的NIS域名
其中NIS域名不必和主机名相同。该设置在重启网络的时候生效,若想马上生效,可直接设置:
nisdomainname 你的nis域名
这种方式设置的域名在重启后就失效了,为了每次开机时生效,可编辑文件 /etc/rc.local,添加一行:
/bin/nisdomainname 你的nis域名
设置好之后可以使用nisdomainname或者domainname检查nis域名,使用hostname查看主机名。
- 配置客户端访问权限
主要是配置/etc/ypserv.conf文件,格式为:
Host : Domain : Map : Security
Host:指定客户端,可以指定具体 IP 地址,也可以指定一个网段
Domain:设置 NIS 域名,这里的 NIS 域名和 DNS 中的域名并没有关系哈~两者是两套不同系统哈~在同一个 NIS 域中,客户端可以从 NIS 服务器上查询用户名和密码,从 NIS 服务器可以与主服务器同步数据库内容
Map :设置可用数据库名称,可以用“*”代替所有数据库
Security:安全性设置。主要有 none、port 和 deny 三种参数设置。
none:没有任何安全限制,可以连接 NIS 服务器。
port:只允许小于 1024 以下的端口连接 NIS 服务器。
deny:拒绝连接 NIS 服务器。 通常设置思路是允许所有内网客户端连接 NIS 服务器,除此之外的客户端都拒绝连接哈~
ypserv.conf 文件是逐行解 释执行,所以要注意设置顺序。
例如允许192.168.1.0网段的主机和本机可以查询NIS服务器,其他则拒绝:
192.168.1.0/255.255.255.0:::none
127.0.0.1/255.0.0.0:::none
::*:deny
除此之外可以在/var/yp/securenets文件中进行配置。
- 启动服务
启动 rpc服务: service rpcbind start
启动ypserv服务: service ypserv start
启动yppasswdd服务: service yppasswdd start
其中yppasswdd服务是允许用户在其他主机上进行密码更改的服务。
为了开机的时候自动启动服务,将其添加到开机启动项里:
chkconfig –level 35 rpcbind on
chkconfig –level 35 ypserv on
chkconfig –level 35 yppasswdd on
- 建立NIS数据库
在服务器上建立用户数据库,通过初始化命令完成:
/usr/lib64/yp/ypinit -m
如果只使用当前主机做服务器,直接按ctrl+d即可。然后就会在当前服务器上建立了nis服务的数据文件。
- 重启ypserv和yppasswdd服务
由于数据库信息发生了更改,需要通知这两个服务有变更发生。重启命令即可:
service ypserv restart
service yppasswdd restart
- 配置外部访问
由于NIS和NFS一样使用随机端口,为了方便iptable管理,可以配置其为固定端口。打开文件/etc/sysconfig/network,在文件中添加一行:
YPSERV_ARGS=”-p xxx”
其中xxx是希望NIS服务进程使用的端口号。由于有selinux和iptables的存在,还需要对这两者进行配置。如果对安全性要求不高,可禁用selinux和iptables:打开文件 /etc/selinux/config,修改 SELINUX=disabled; 运行命令: service iptables stop。如果需要开机禁用iptables,则运行命令: chkconfig iptables off。
最后重启电脑,配置好nis客户端之后用户可以使用同一个用户名和密码访问nis域内主机。
文章参考:http://www.itchenyi.com/1668.html