http://www.opsers.org/server/chapter-vii-nis-service-raiders.html
内容简介
NIS简介
NIS所需软件及相关的服务
NIS常用工具
NIS相关配置文件
NIS服务器与客户端配置步骤
案例详解
NIS简介
NIS(Network Information Service)是一个为网络中所有的机器提供网络信息的系统,包括用户名、密码、主目录、组信息等。如果某个用户的用户名以及密码保存在了NIS密码数据库中,NIS允许此用户在网络当中的任何一台运行有NIS客户程序的机器上登陆。这使得整个网络看起来象一个独立系统,在所有的主机上有着相同的帐号。
NIS工作原理(图)
NIS提供的数据
服务器端文件名称 档案内容
/etc/passwd 提供使用者账号、UID、GID、家目录所在、Shell 等等
/etc/group 提供群组数据以及 GID 的对应,还有该群组的加入人员
/etc/hosts 主机名称与 IP 的对应,常用于 private IP 的主机名称对应
/etc/services 每一种服务 (daemons) 所对应的端口 (port number)
/etc/protocols 基础的 TCP/IP 封包协议,如 TCP, UDP, ICMP 等
/etc/netgroup 网络群组的定义与使用 (NIS 可能会需要)
/etc/rpc 每种 RPC 服务器所对应的程序号码
/var/yp/ypservers NIS 服务器所提供的数据库
NIS服务一览
后台进程:ypserv,ypbind,yppasswdd
使用端口:由portmap (111)分配
所需RPM包:ypserv,ypbind,yp-tools
相关RPM包:portmap
服务端配置文件:/etc/ypserv.conf /var/yp/*
NIS所需软件
ypserv-*.rpm:NIS服务的主程序包,提供NIS服务端的设定软件包
yp-tools-*.rpm:提供NIS相关查询指令的软件包
ypbind-*.rpm:提供NIS客户端设定功能的功能的软件包
portmap-*.rpm:管理RPC连接、启动RPC必需的软件包
NIS常用工具
ypcat:列出来自NIS server的map信息
ypinit:建立并安装NIS database
ypwhich:列出NIS server的名称
ypset:强制指定某台机器当NIS server
makedbm:创造NIS map的dbm档
与数据库有关的指令
/usr/sbin/yppush:master 主机将数据库直接送至 slave 的指令;
/usr/lib/yp/ypinit:建立数据库的指令,非常常用;
/usr/lib/yp/ypxfr:传送数据库的指令。
NIS相关配置文件
/etc/ypserv.conf:这是最主要的设定档, 可以规范 NIS 客户端是否可登入的权限。
/etc/hosts:每一部主机都需要记录才行。
/etc/netgroup:设定信任的主机与网域;
/var/yp/Makefile:与建立数据库有关的动作设定文件;
/etc/sysconfig/network:可以在这个档案内指定 NIS 的网域 (nisdomainname)。
【NIS服务器端配置】
第一步:安装相关软件
ypserv-*.rpm:NIS服务的主程序包,提供NIS服务端的设定软件包
yp-tools-*.rpm:提供NIS相关查询指令的软件包
ypbind-*.rpm:提供NIS客户端设定功能的功能的软件包
portmap-*.rpm:管理RPC连接、启动RPC必需的软件包
第二步:配置服务器端
① 设置NIS域名为nis.test
第一种方法:
通过以下命令:
为了系统启动后自动执行此操作,可以将此命令添加到文件/etc/rc.local中。
命令为:echo “/bin/nisdomainname nis.test” >> /etc/rc.local
第二种方法
在/etc/sysconfig/network文件中,最后加入
NISDOMAIN=nistest
然后启动ypserv服务,就会开启NIS域名了
② 配置服务器端主配置文件
/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
③ 初始化NIS数据库
首先要启动ypserv服务,否则建立NIS数据库会报错”failed to send ‘clear’ to local ypserv: RPC: Program not registeredUpdating passwd.byuid…”。我也在网上GOOGLE了半天没有找到答案,无意中发现这个问题,所以在这里也提醒一下大家,很多一些小问题,折腾人啊!!
的NIS数据库,创建完成后,在目录/var/yp下会有相应的文件记录设置。
④ 建立信任群(可以省略)
可以使用/etc/netgroup文件来建立NIS服务器所信任的客户端
格式:host,user,domain
如果这个文件没有内容,则代表所有的主机、帐号和域名都接受哈~因为已经在/etc/ypserv.conf中设置好了关于安全的项目,默认此文件不存在,所以这个文件只要建立就可以了
⑤ 修改/var/yp/ypservers配置文件
添加NIS域中NIS服务器名称
⑥ 启动服务
service portmap restart
service ypserv restart
service yppasswdd restart
此外为了使主/从NIS服务器完成数据库同步,我们需要在NIS主服务器上启动ypxfrd服务
如果是从服务器,要使用/usr/lib/yp/ypinit -s NIS服务器ip或主机名 来同步数据
当主NIS服务器更新数据并使用ypinit -m命令重新生成数据库后,从NIS服务器上的数据就会不一致,这时候我们可以在从NIS服务器上使用ypxfr命令同步数据库信息保持数据状态为最新
命令格式如下
ypxfr -h NIS主服务器IP或主机名 数据库文件
ypxfr -h nis passwd.byname
ypxfr -h nis passwd.byuid
附:
NIS固定端口配置
NIS和NFS服务相似,同样使用随机端口,我们可以配置固定端口加强NIS的可管理性
(1)修改/etc/sysconfig/network
添加YPSERV_ARGS和YPXFRD_ARGS字段,可以设置NIS的ypserv和ypxfrd两个进程使用固定端口号,而对于yppasswd则不提供支持,我们可以使用参数-p指定固定端口
格式如下:
YPSERV_ARGS=”-p 666″
YPXFRD_ARGS=”-p 667″
修改后,重启服务并测试
修改network配置文件后我们需要重启network、ypserv和ypxfrd服务,然后可以使用rpcinfo -p查看端口使用情况
【NIS客户端配置】
第一步:安装NIS客户端程序
第二步:设置NIS域名为
通过以下命令:
通过以下命令:
第三步:修改/etc/yp.conf文件
在客户端/etc/yp.conf文件中设置NIS服务器的主机名和NIS域名
如:
ypserver
domain
第四步:修改/etc/hosts文件
如果没有DNS服务器,那我们必须确保/etc/hosts文件中有NIS服务器的记录
第五步:更改密码验证方式。
可以用两种方法
第一种方法:字符界面修改下面这四个文件
/etc/nsswitch.conf
# 这个档案的内容有相当多,不过如果你只想要进行登入验证,可以这样:
passwd:
shadow:
group:
hosts:
# 亦即只要加入 nis 即可!这几个设定的意义是:
# 1. passwd: 就是使用者相关信息查寻,分别为 /etc/passwd, nis
# 2. shadow: 就是使用者密码的查寻, /etc/shadow, nis
# 3. group:
# 4. hosts:
nsswitch.conf记录了系统查询用户密码、组、主机名等资源的遵循顺序
确定nsswitch.conf文件中需要向服务器查询数据的资源顺序中包含NIS项
查询资源可以是:
files:本地文件
dns:域名服务器
nis/nisplus:NIS服务器
ldap:ldap服务器db:数据库
/etc/sysconfig/authconfig
USENIS=no
# 这个档案的内容很好修改!只要将上面 NIS 部分改成 yes 即可:
USENIS=yes
# 这个部分也很重要!很容易忘记啦!修改 PAM 的设定档找到如下一行:
password
# 上面可是同一行喔!将他改成:
password
/etc/yp.conf
# 这个是 ypbind 的主要设定文件,主要语法是这样的:
# domain [NIS领域] server [主机名称]
# 或者是透过广播,适合用于大网域有多部 NIS 服务器时:
# domain [NIS领域] broadcast
domain testnis broadcast
这样设定完成后,再给他启动 ypbind 即可
第二种方法:图形界面
使用命令:authconfig-tui
第六步:启动服务portmap,ypbind
第七步:测试nis客户端
(1)yptest
yptest命令测试数据库内容等所有与NIS相关的信息
(2)ypwhich
ypwhich命令主要测试NIS客户端与服务器之间通信使用的是哪些数据库文件
只使用ypwhich命令只显示NIS主机名
ypwhich -x则显示NIS客户端与服务器通信使用了哪些数据库文件
(3)ypcat
ypcat命令可以查看NIS服务器上使用者帐号及密码信息,也可以查看NIS服务器上的/etc/hosts文件记录哪些主机信息
ypcat passwd:查看NIS服务器上帐号密码等信息
ypcat hosts:查看NIS服务器上的/etc/hosts文件记录哪些主机信息
(4)ypmatch
ypmatch teamadmin passwd:查询指定用户帐号密码信息
(5)yppasswd
客户端可以使用yppasswd命令修改帐号和密码
注意:密码长度不能少于6位哈~此外使用yppasswd命令可以自动更新NIS数据库中内容。
NIS辅助服务器配置(与上面基本上差不多,所以就简略了)
第一步:安装NIS服务器相关软件
第二步:设置ypserv.conf文件
第三步:数据同步
可以在从NIS服务器上使用ypxfr命令同步数据库信息保持数据状态为最新
命令如下
ypxfr -h NIS主服务器IP或主机名 数据库文件
ypxfr -h nis passwd.byname
ypxfr -h nis passwd.byuid
第四步:启动服务进行测试
案例详解
公司准备在nis.test区域中放置多台服务器,服务器包括samba服务器、邮件服务器、WEB服务器、代理服务器等等。为了方便日常的服务器管理工作,再搭建一台NIS服务器,其IP地址为192.168.85.128,从NIS服务器,其IP地址为192.168.85.129为了方便管理,所有nisdomain区域内的服务器都可以使用admin帐号以及其他管理帐号登录。
里面涉及到NFT+NIS+AUTOFS三者的联合使用,实现用户家目录的自动挂载