RHEL5.4
制作人:wqmsl
目标:1、搭建单域单NIS服务器
2、搭建主/从NIS服务器3、客户端测试命令应用4、客户端文件配置配置方法
RHCENIS学习笔记
我的博客:http://wqmsl.blog.51cto.com/
5、常见到的问题解决
6、实现用户家目录漫游(即使用NFS挂载家目录)7、额外知识1、IP说明:
192.168.0.2——主机名:masternis.wqmsl.comnis主服务器192.168.0.3——主机名:slavenis.wqmsl.comnis从服务器192.168.0.4——主机名:client.wqmsl.comclient客户端2、前期准备
更改主机名称(更改三处):1、hostname更改,2、hosts更改,3、/etc/sysconfig/network3、所需软件包如下
ypserv-2.19-3.i386.rpmyp-tools-2.9-0.1.i386.rpmypbind-1.19-8.el5.i386.rpm如下:
————NIS服务的主程序包
————提供NIS客户端设定功能的软件包————提供NIS客户端的查询指令功能的软件包
portmap-4.0-65.2.2.1.i386.rpm————管理RPC连接、启动RPC必需的软件包
总计四个,安装即可
NIS的主配置文件是:/etc/ypserv.conf
一、实现第一个实验目标,配置一个单域单NIS的服务器哈
创建一个我们用来登陆系统的用户:
设置NIS的域名(域:wqmsl.com):
在/etc/sysconfig/network的最后添加NISDOMAIN=wqmsl.com一句即可注意:这里的域和DNS里面是是两回事,别混淆了哦
由于NIS每次启动都需要设置NIS域名,所以配置/etc/rc.d/rc.local,添加域名到rc.local中
以上的配置我们可以使用两条命令来实现:
这样就可以了最后执行如下命令
在这里我们没有搭建DNS,所以我们要配置hosts文件,添加从服务器和客户端的主机名和IP,以便我们解析使用:
设置/etc/ypserv.conf主配置文件
通常情况下,保持默认设置,NIS即可以正常工作,下面是ypserv.conf的默认内容,看下图中的重点字段:
1、dns:no用于设置是否使用DNS系统,默认设置为no,只需设置好/etc/hosts文件即可。2、files:30表示预设会将30个数据库资料读入高速缓存中,保持默认值即可
3、slp:no
slp_timeout:3600如果需要SLP服务,则将SLP设置为YES,一般仅使用单纯的NIS服务,所以保持默认的NO即可
4、xfr_check_port:yes该字段应用于master/slave结构的环境,yes表示主服务器和从服务器同步数据的时候都是用小于1024的端口号。具体内容如下:
1、配置文件中最为重要的字段,用于客户端或从服务器查询的权限,格式如下:Host:domain:map:security
1、host用于指定客户端,可以是具体的IP地址,也可以是网段
2、domain设置NIS域名,注意这里的NIS域名和DNS中的域名并没有关系3、map设置可用的数据库的名称,默认为“*”代表所有数据库4、security安全性设置,主要有一下参数可设置none没有任何,可以连接NIS服务器port只允许小于1024以下的端口连接NIS服务器
deny拒绝连接NIS服务器
我们一般设置思路是允许需要的用户可以连接NIS服务器,除此之外的客户端拒绝,看下图:
我设置只有192.168.1.0//24这个网段的用户连接我的NIS服务器,其他用户拒绝。
2、另外还可以使用securenets安全配置文件,做更高级的访问控制,该文件需要管理员手工建立。当这个文件不存在时,NIS服务器将允许所有主机访问NIS服务器(使用配置文件中的访问规则,默认的安全设置有欠缺)/var/yp/securenetshost192.168.11.1
255.255.255.0192.168.11.0
注意:该文件中未定义的全部拒绝访问
-----针对主机
-----针对网段,先掩码后地址段
这个我就不设置了,当你需要更高的安全控制的时候是可以使用它的哦!
启动服务,然后建立数据库
建立数据库:
注意:在这里按“ctrl+D”
这里选择Y即可哈
数据库建立完成之后我们检查一下
以下的就是生成的数据库
注意:当我们每次更新完账号等信息之后一定要重新初始化,然后重新启动服务我们来配置客户端,这次客户端的配置我们使用setup来配置(简单方便),最后一次使用配置文件来配置,我来启动客户端执行“setup”命令:选择第一次项:
选择\"UserNIS\"然后“NEXT”
填写域和服务器名称(即hostname)
最后点击OK
由于我们没有DNS,所以在/etc/hosts添加NIS服务器的IP和主机名
下面我们来测试一下哈:
我切换用户成功,说明我们的单域单NIS已经完成了,但是提示用户没有家目录么,这个我们后面再讲如何挂载NIS的家目录到本地机器哦
二、我们来实现第二个目标,搭建主/从NIS服务器
主NIS服务器我们已经搭建完成,下面主要讲搭建从NIS首先安装所需包,和主NIS一样(安装就不细说了)
配置主配置文件/etc/ypserv.conf(如果你有访问控制,那么参照主NIS配置)
我们的主NIS有访问控制,所以下面我来配置从NIS的ypserv.conf
保存退出
编辑hosts文件,添加主NIS的IP对应关系:
设置域名:
检查一下域名和主机名
启动服务
然后我们去配置一下主NIS服务器,以便我们传送数据
h编辑主服务器上的/var/lib/yp/Makefile文件,使其能在更改maps后主动将更改puspush至从服务器
#vi/var/yp/Makefile找到如下行:NOPUSH=true更改为:NOPUSH=false
保存退出
ypserver文件,指明服务器将maps可以push到的目标从编辑主服务器上的/var/yp//var/yp/ypypserver服务器
#vi/var/yp/server添加如下行:
slavenis.wqmsl.com(注:此处最好使用从服务器名称,前提是此从服务器名能被主服务器解析,我们已经通过编辑主服务器的/etc/hosts文件实现了)
开启主服务器的资料传送进程
serviceypxfrdstart
重新启动主NIS上的所有相关的服务,并设置开机自行启动
下面我们去从NIS上操作从主NIS服务器获取maps资料
/usr/lib/yp/ypinit-smasternis.wqmsl.com开始传送资料了
传送完成
大家可以看到,数据文件已经传送到了从NIS上面了
这样就完成了主/从NIS的搭建了,当你的主NIS宕机之后,那么从NIS就可以担当NIS的角色了(只要我们在客户端编辑vi/etc/yp.conf文件,添加如下:)
把从NIS的主机名加到主NIS主机名的后面,用分号隔开即可,重新启动ypbind服务(这个你在配置客户端的时候就一次性完成,免得以后再次添加,麻烦是不是)
下面我们来做一个简单的测试哈
我停止主NIS的网卡,使其不能通信
在客户端测试如下:
客户端只检测到了从NIS服务器,如果没有切断的话,应该这里显示的是主NIS的。我在客户端登陆试试哈
看到了吧,登陆成功了哈(没有用户的家目录的问题,我们最后解决)
我们每次添加完用户之后都会初始化数据库,那么我们从NIS服务器上面的数据库文件不是就和主上面的不一样了么,每次手动去更新是一件很麻烦的事情,所有我们可以在从NIS上面定制一个计划任务,每小时的第一分钟我们更新数据库文件,第二分钟重新启动ypserv服务,第三分钟重新启动ypserv服务,(通过我测试,如果从服务器更新了数据,如果没有重启服务的话,那么客户端还是无法使用更新后的用户登录)具体如下
这样做不知道可行不可行,希望大家指点哈
大家还有更好的办法可以和我沟通哈,我这里还有一个疑惑就是,加入主NIS宕机之后,主NIS上面的家目录共享的NFS服务也停止了,那么我们客户端登
录的时候不是又没有家目录了么,虽然从NIS还是可以让我们登录系统,大家有这方面的信息没有,有的话告诉一下我,谢谢哦
第二个实验目标已经完成了,下了我们做第三个目标哈:
三、下面我们做实验的第三个目标,客户端测试命令应用
客户端检测
yp-tools软件包中自带一些测试工具,可以帮助我们更好得了解NIS客户端和服务器通信情况(1)yptest
yptest命令测试数据库内容等所有与NIS相关的信息
如果Test9:yp_all下面出现NIS服务器上的所有帐号信息则表示配置成功,否则我们就要检查上面的配置是否正确~(2)ypwhich
ypwhich命令主要测试NIS客户端与服务器之间通信使用的是哪些数据库文件只使用ypwhich命令只显示NIS主机名
ypwhich-x则显示NIS客户端与服务器通信使用了哪些数据库文件
(3)ypcat
ypcat命令可以查看NIS服务器上使用者帐号及密码信息,也可以查看NIS服务器上的/etc/hosts文件记录哪些主机信息
ypcatpasswd:查看NIS服务器上帐号密码等信息
ypcathosts:查看NIS服务器上的/etc/hosts文件记录哪些主机信息
(4)ypmatch
ypmatchnistestpasswd:查询指定用户帐号密码信息
(5)yppasswd
客户端可以使用yppasswd命令修改帐号和密码(修改其他用户密码的时候要求输入root密码)
注意:密码长度不能少于6位哈~此外使用yppasswd命令可以自动更新NIS数据库中内容。
四、实现实验的第三个目标,采用命令的形式配置NIS客户端
设定NIS域名
nisdomainnamewqmsl.com
服务设为自动启动
配置/etc/yp.conf,添加主/从NIS和域
编辑/etc/nsswitch.conf
启动客户端ypbind服务
配置客户端在启动时登录到NIS域
[root@centosa~]#vi/etc/sysconfig/authconfig找到如下行:USENIS=no修改成:
USENIS=yes如下图:
这样就OK了
五、常见的问题解决
1、在做好之后遇到一个问题,客户端用yppasswd来更新密码时,一直报下面的错:(1)yppasswd:yppasswddnotrunningonNISmasterhost
在服务器上运行该命令正常。
这是因为客户端不能解析到NIS服务器的IP地址,只要你在客户端的hosts文件里面添加IP对应关系即可。
(2)yppasswd:yppasswddnotrunningonNISmasterhost(\"hostname\").
这时候你ping下hostname看解析的为多少,如果为127.0.0.1的话,那就赶紧在/etc/hosts中加入IPhostname,如果解析正常,自然不会报错了。2、当启动ypbind服务的时候,会出现以下的错误:serviceypbindstart
关联到NIS域:[确定]
监听NIS域服务器。YPBINDPROC_DOMAIN:未绑定域YPBINDPROC_DOMAIN:未绑定域
这个问题一般是因为我们在配置yp.conf文件的时候没有配置正确的域和NIS服务器,所以启动在监听NIS服务器的时候会找不到NIS服务器,就会会出错,yp.conf中添加的内容的语法是:“domain域名称server主NIS服务器名称;从NIS服务器名称”,千万不可写错哦。
六、配置漫游家目录,解决客户端登陆提示没有家目录的问题
解决这个问题要用到我们之前讲到的NFS服务,共享home下的目录,客户端挂载即可下面我们来做
在主NIS下面配置NFS(这里就不详细讲解了,如忘记了请看“Linux5.4RHCENFS学习笔记”)
编辑vi/etc/exports添加/home目录为共享目录
启动nfs服务即可
在客户端查看NIS服务器NFS共享目录
在客户端设置开机自动挂载NFS目录
保存并退出
设置ypbind服务开机启动后,我们重新启动客户端试试
开机启动之后使用NIS上面的账号登陆后,没有再提示我们用户没有家目录,用pwd查看,我们在自己的家目录,使用df查看一下,我们的家目录是在主NIS上面。
NFS相关安全参数
rw:可写权限ro:只读取权限
no_root_squash:如果登入共享目录的用户是root,则对于这个共享目录而言,它具有root权限,不安全!
root_squash:..........如果是root登陆,自动变成匿名用户.all_squash:不论登陆的用户是谁,都自动变成匿名用户.相当于nobody
附录:
1、最后说一下NIS如何使用固定端口
在NIS服务器的/etc/sysconfig/network文件里面添加以下内容即可
YPSERV_ARGS=“-p888”YPXFRD_ARGS=“-p999”
修改network配置文件后我们需要重启network、ypserv和ypxfrd服务,然后可以使用rpcinfo-p查看端口使用情况
2、建立信任群
可以使用/etc/netgroup文件来建立NIS服务器所信任的客户端格式:host,user,domain
如果这个文件没有内容,则代表所有的主机、帐号和域名都接受哈~因为已经在/etc/ypserv.conf中设置好了关于安全的项目,默认此文件不存在,所以这个文件只要建立就可以了。touch/etc/netgroup
3、从NIS服务器同步设置
主NIS服务器更新数据并使用ypinit-m命令重新生成数据库后,从NIS服务器上的数据就会不一致哈~
我们可以在从NIS服务器上使用ypxfr命令同步数据库信息保持数据状态为最新哈~ypxfr-hNIS主服务器IP或主机名数据库文件ypxfr-hnispasswd.bynameypxfr-hnispasswd.byuid还有就是使用计划任务来做这件事