nis 主从搭建

环境:

环境:Centos 6.5

服务器nis master:172.16.68.3  主机名: tra-dindin-nis-master

     nis slave: 172.16.68.4    主机名:tra-dindin-nis-slave

      nis client:172.16.72.20   主机名:vm-travel

网络要求:客户端nis-client要能正常访问master及slave的nis相应的端口

此次搭建固定了 yppasswdd 端口为1012

               ypserv    端口为800

所以至少需要开通客户端到master及slave这两个端口的访问(master及slave之间不做访问限制,一般由于nis是用于内网所以直接开通客户端网段到master及slave的全部访问,实际情况另说)

 

 

master与slave之间能互相解析:

 

一:master服务器端的设置;

 

A;在服务器上安装所需软件(yum -y install yp-tools ypbind ypserv portreserve)   portreserver的前身是portmap

yp-tools:提供nis相关的查询命令功能

ypbind:提供nis client端的设置软件

ypserv;提供nis server端的设置软件

portreserve:这是rpc必须的软件

 

 

B;设置nis的域名

1,直接命令行下设置nis域名,临时生效

 

#nisdomainname dindin

 

2,每次开机时都需要启动这个nis域名的话,直接把它写入/etc/rc.d/rc.local中

 

 

3,启动nis时就自动设置好nis域,可以设置/etc/sysconfig/network这个文件

YPSERV_ARGS="-p 800" 固定ypserv启动在80端口 若有防火墙方便管理

 

 

4.修改/etc/yp.conf

 

C;主要配置文件/etc/ypserv.conf,根据实际情况在其中添加三行,我的如下(允许72 73 68 151 网段的主机连接此nis)

 

D;启动所有相关的服务

注意:在centos6 之后的版本 在启动以下服务的时候一定要先启动 rpcbind服务  否则后面的ypserv yppasswdd 服务刚启动起来就会挂掉

/etc/init.d/rpcbind start  #启动RPC必须服务

[root@master ~]#/etc/init.d/portreserver start

[root@master ~]#/etc/init.d/ypserv start    #启动NIS服务器提供的主要服务

[root@master ~]#/etc/init.d/yppasswdd start    #启动client修改密码服务

 

 

启动后rpcinfo查看

 

[root@tra-dindin-nis-master ~]# rpcinfo -p tra-dindin-nis-master

   program vers proto   port  service

    100000    4   tcp    111  portmapper

    100000    3   tcp    111  portmapper

    100000    2   tcp    111  portmapper

    100000    4   udp    111  portmapper

    100000    3   udp    111  portmapper

    100000    2   udp    111  portmapper

 600100069    1   udp    935  fypxfrd

 600100069    1   tcp    937  fypxfrd

    100004    2   udp    800  ypserv

    100004    1   udp    800  ypserv

    100004    2   tcp    800  ypserv

    100004    1   tcp    800  ypserv

    100009    1   udp   1012  yppasswdd

 

 # rpcinfo -u localhost ypserv
    program 100004 version 1 ready and waiting
    program 100004 version 2 ready and waiting

 

 

F;建立数据库

在完成了上面的所有步骤后,接下来我们得要开始将主机上面的账号档案转成数据库档案啦! 
不过,因为担心与 NIS 客户端的账号有冲突,加上之前我们已经建立过一些账号了。所以,这里我们的新账号使用大于1000的UID来建立。
#useradd -u 1001 nisuser1 -p "加密的密码"   
#useradd -u 1002 nisuser2 -p "加密的密码"

小知识:

useradd -p参数后面不能是明文的密码  必须是加密后的密码

可以用openssl passwd -stdin 生成

如 生成一个123密码的密文   将其复制到-p 参数后面即可

 

接下来,将建立的帐密数据转成数据库吧!

[root@master ~]#/usr/lib64/yp/ypinit -m

 

 

要注意出现的信息当中,在告知你可以直接输入 [ctrl]-d 以结束的那个地方, 你的主机名会主动的被捉出来。
注意!这个主机名务必需要在 /etc/hosts 可以被找到 IP 的对应, 否则会出现问题。
另外,万一在执行 ypinit -m 时,出现如下的错误,那肯定就是有些数据没有被建立了!

 

 

建立数据库后,必须要通知ypserv与yppasswdd这两个服务  以告知数据库被更改了

[root@master ~]#/etc/init.d/ypserv restart

[root@master ~]#/etc/init.d/yppasswdd restart

 

G.nis-master与slave 相关的配置

当执行了 ypinit -m 之后,所有的主机上面的账号相关档案会被转成数据库档案, 这些数据库会被放置到 /var/yp/"nisdomainname" 当中,

 

 

注意:  /var/yp/目录下会产生一个你自己设定的nisdomainname目录 一定要保证master,slave,client中的 nisdomainname设置的一致

 

开启Slave服务推送

G.1  将 /var/yp/Makefile中的NOPUSH定义修改为false

  

 

G.2  指定Slave服务主机,告诉master要把数据给谁-->tra-dindin-nis-slave

 

[root@tra-dindin-nis-master yp]# cat /var/yp/ypservers 

tra-dindin-nis-master

tra-dindin-nis-slave

 

 

G.3   启动 ypxfrd服务

可以让 slave 服务器主动链接上 ypxfrd 来更新数据库, 可以免除系统管理原自己手动更新。

[root@tra-dindin-nis-master yp]# /etc/init.d/ypxfrd start

此外,如果 master 机器想要直接将某些特定的数据库直接传给 slave 主机的话, 那么可以使用 yppush 这个指令。

 

例如:#yppush -h tra-dindin-nis-slave  passwd.*

 

设置开机启动:

chkconfig --level 35 yppasswdd on

chkconfig --level 35 ypxfrd on

 

chkconfig --level 35 ypserv on

 

 

二:slave服务器端的设置(基本和master一致);

A;在服务器上安装所需软件(yum -y install yp-tools ypbind ypserv portreserve)

 

B.设定NIS域名(同master一样)
#nisdomainname dindin   #使用nisdomainname命令设置NIS域名

# vim /etc/rc.d/rc.local

添加:/bin/nisdomainname dindin   #设定开机启动sunnorth域名
# vim /etc/sysconfig/network

 

 

C.配置主要配置文件 /etc/ypserv.conf

 

C.[root@tra-dindin-nis-slave ~]# vim /etc/sysconfig/yppasswdd

YPPASSWDD_ARGS="--port 1012"

D.[root@tra-dindin-nis-slave ~]# vim /etc/yp.conf

domain dindin server 172.16.68.3

 

E.启动服务(启动前确认rpcbind服务启动了已经):

#/etc/init.d/ypserv start

# /etc/init.d/yppasswdd start

# /etc/init.d/ypbind start

 

设置开机启动:

chkconfig  --level 35 yppasswdd on

 

chkconfig --level  35 ypserv on

chkconfig --level  35 ypbind on

 

 

F.获取源数据库(即同步master上的数据)

 

 

[root@tra-dindin-nis-slave ~]# /usr/lib64/yp/ypinit -s tra-dindin-nis-master

 

 

G.测试:

[root@tra-dindin-nis-slave ~]# ypcat -h tra-dindin-nis-slave passwd.byname

 

 

test及test2这两个用户是我之前在master上面建立的用户

 

H.设置数据同步时间(master端要启动ypxfrd
# vim /etc/crontab
# 在最后加入以 ypxfr 传输数据的 script 喔! 
*/5 * * * * /usr/lib64/yp/ypxfr –h  tra-dindin-nis-master   passwd.byname
*/5 * * * * /usr/lib64/yp/ypxfr –h  tra-dindin-nis-master   passwd.byuid

 

I.更改配置(这三个文件修改的东西一样):
# vim /usr/lib/yp/ypxfr_1perday 
# vim /usr/lib/yp/ypxfr_1perhour 
# vim /usr/lib/yp/ypxfr_2perday
  $YPBINDIR/ypxfr $map -h  tra-dindin-nis-master  

 

当master有变更时可以在slave上手动执行以下两条命令立即同步

/usr/lib64/yp/ypxfr –h  tra-dindin-nis-master   passwd.byname

/usr/lib64/yp/ypxfr –h  tra-dindin-nis-master   passwd.byuid

 

 

 

三:客户端的设置

A;安装所需的软件

#yum -y install ypbind yp-tools portreserver 

B;修改必要的配置文件

 

 

1,直接命令行下设置nis域名,临时生效

 

#nisdomainname dindin

 

2,每次开机时都需要启动这个nis域名的话,直接把它写入/etc/rc.d/rc.local中

 

 

3,启动nis时就自动设置好nis域,可以设置/etc/sysconfig/network这个文件

 

 

 

 

 

(2) 启动ypbind来连接至nis server,修改如下配置文件

1,#vim /etc/nsswitch.conf

 

 

 

 

 

 

2,#vim /etc/sysconfig/authconfig

 

 

 

3,#vim /etc/pam.d/system-auth

 

 

4,#vim /etc/yp.conf

 

 

 

 

设置完成后,再启动ypbind  (启动之前也要先启动rpcbind服务 一般这个都系统都安装好了的 我们只需要启动就可以)

#/etc/init.d/rpcbind start

#/etc/init.d/ypbind start

在客户端查看nis账户中的test用户 (客户端本地是没有这个用户的)

 

 说明nis搭建成功

 

测试:

停掉nis master端

 

 

 在客户端查看test用户

 

 

依然可以查到 说明nis主从服务搭建成功

 

posted @ 2018-05-23 17:14  日出东海,我心向西  阅读(1947)  评论(0编辑  收藏  举报