NIS所需软件包
ypserv-2.19-3.i386.rpm:NIS服务的主程序包
yp-tools-2.9-0.1.i386.rpm:提供NIS客户端设定功能的软件包
ypbind-1.19-8.el5.i386.rpm:提供NIS客户端的查询指令功能的软件包
portmap-4.0-65.2.2.1.i386.rpm:管理RPC连接、启动RPC必需的软件包
NIS相关文档
/etc/ypserv.conf:NIS主配置文件,可以规范NIS客户端是否具有可以查询NIS服务器的权限
/etc/hosts:记录主机和IP地址对应关系,如果没有DNS系统,则NIS服务器的hosts文件需要每一台NIS客户端的主机记录。
/etc/netgroup:设置信任的主机或网段
/etc/yp/Makefile:与建立数据库有关的配置文件
企业需求
公司准备在DMZ区域中放置多台服务器,服务器包括samba服务器、邮件服务器、WEB服务器、代理服务器,他们的IP分别是192.168.8.1、192.168.8.2、192.168.8.3、192.168.8.4,其于客户端为windows系统,使用windows域环境管理。为了方便日常的服务器管理工作,准备再搭建一台NIS服务器,其IP地址为192.168.8.188,为了方便管理,所有DMZ区域内的服务器都可以使用teamadmin帐号以及其他管理帐号登录。
NIS应用拓扑图:
p_w_picpath
需求分析
在DMZ区域管理服务器并不需要架设Master/Slave结构环境,所以只需要设置好主NIS服务器即可。首先要设置的是建立teamadmin帐号并设置密码,然后配置NIS域名,例如NIS域名为dmz。下面还需要设置好主配置文件ypserv.conf以及建立数据库文件。还需要设置/etc/hosts、/etc/netgroup等配置文件。最后重新启动相关服务使配置生效。
解决方案
1、安装NIS所需软件包
p_w_picpath
2、创建teamadmin用户
p_w_picpath
3、设置NIS域名
vim /etc/sysconfig/network
p_w_picpath
vim /etc/rc.d/rc.local
p_w_picpath
保存退出
4、设置/etc/hosts配置文件
vim /etc/hosts
p_w_picpath
5、设置/etc/ypserv.conf主配置文件
vim /etc/ypserv.conf
在整个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文件是逐行解释执行,所以要注意设置顺序
127.0.0.1/255.0.0.0:*:*:none
192.168.8.0/255.255.255.0:*:*:none
*:*:*:deny
p_w_picpath
6、建立NIS数据库
service ypserv start
p_w_picpath
首先我们要启动ypserv服务,否则建立NIS数据库会报错
p_w_picpath
/usr/lib/yp/ypinit -m
p_w_picpath
当NIS数据库被建立之后,需要通知ypserv和yppasswdd这两个服务,以告知NIS数据库被更新过了哈~
通常通知的方法就是重启这两个服务
/etc/init.d/ypserv restart
/etc/init.d/yppasswdd restart
p_w_picpath
注意:每次更改数据库内容后(比如更新用户密码)就需要使用ypinit -m命令重新创建数据库并重启ypserv和yppasswdd这两个服务,否则添加新数据将无法生效哈~
7、建立信任群
可以使用/etc/netgroup文件来建立NIS服务器所信任的客户端
格式:host,user,domain
如果这个文件没有内容,则代表所有的主机、帐号和域名都接受哈~因为已经在/etc/ypserv.conf中设置好了关于安全的项目,默认此文件不存在,所以这个文件只要建立就可以了。
touch /etc/netgroup
p_w_picpath
8、重启相关服务使配置生效
service portmap restart
service ypserv restart
service yppasswdd restart 
chkconfig --level 35 portmap on
chkconfig --level 35 ypserv on
chkconfig --level 35 yppasswdd on
p_w_picpath
9、客户端设置
客户端必须安装ypbind和yp-tools这两个软件包
p_w_picpath
(1)加入NIS域
确保客户端和服务器的NIS域名相同,可以使用nisdomainname命令设置,然后设置开机自动配置NIS域名
nisdomainname dmznis
p_w_picpath
vim /etc/sysconfig/network
p_w_picpath
vim /etc/rc.d/rc.local
p_w_picpath
(2)修改/etc/hosts文件
如果没有DNS服务器,那我们必须确保/etc/hosts文件中有NIS服务器的记录
vim /etc/hosts
p_w_picpath
(3)修改密码验证方式
NIS客户端在查找用户名和密码时先从本地开始查找,比如先查询/etc/passwd和/etc/shadow文件等,如果没有查询到用户名和密码则发送广播到NIS服务器从而进行查询。
默认情况下客户端如果没有查询到用户名和密码是不会发送广播到NIS服务器的,所以我们需要修改/etc/nsswitch.conf文件哈~
vim /etc/nsswitch.conf
p_w_picpath
四个字段中添加NIS服务器的主机名,修改效果如下哈~
p_w_picpath
(4)修改/etc/yp.conf文件
在客户端/etc/yp.conf文件中设置NIS服务器的主机名和NIS域名
vim /etc/yp.conf
p_w_picpath
如果需要使用广播查询则可以直接添加domain dmz broadcast 
(5)重新启动ypbind服务
service ypbind restart
p_w_picpath
注意,一定要开启111端口,可以使用rpcinfo命令查看rpc所使用的端口
rpcinfo -p
p_w_picpath
(6)设置开机启动ypbind服务
chkconfig --level 35 ypbind on
p_w_picpath
10、客户端检测
yp-tools软件包中自带一些测试工具,可以帮助我们更好得了解NIS客户端和服务器通信情况
(1)yptest
yptest命令测试数据库内容等所有与NIS相关的信息
p_w_picpath
如果 Test 9: yp_all下面出现NIS服务器上的所有帐号信息则表示配置成功,否则我们就要检查上面的配置是否存在问题哈~
(2)ypwhich
ypwhich命令主要测试NIS客户端与服务器之间通信使用的是哪些数据库文件
只使用ypwhich命令只显示NIS主机名
p_w_picpath
ypwhich -x则显示NIS客户端与服务器通信使用了哪些数据库文件
p_w_picpath
(3)ypcat
ypcat命令可以查看NIS服务器上使用者帐号及密码信息,也可以查看NIS服务器上的/etc/hosts文件记录哪些主机信息
ypcat passwd:查看NIS服务器上帐号密码等信息
p_w_picpath
 ypcat hosts:查看NIS服务器上的/etc/hosts文件记录哪些主机信息
p_w_picpath
(4)ypmatch
ypmatch teamadmin passwd:查询指定用户帐号密码信息
p_w_picpath
(5)yppasswd
客户端可以使用yppasswd命令修改帐号和密码
p_w_picpath
注意:密码长度不能少于6位哈~此外使用yppasswd命令可以自动更新NIS数据库中内容。 
###########################Michael分割线#####################