Chinaunix首页 | 论坛 | 博客
  • 博客访问: 758751
  • 博文数量: 112
  • 博客积分: 2581
  • 博客等级: 少校
  • 技术积分: 1229
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-18 13:05
个人简介

你撒下一粒善良的种_子, 会在暗中蔓延出一片灿烂的花海

文章分类

全部博文(112)

文章存档

2019年(4)

2018年(2)

2017年(1)

2016年(1)

2015年(3)

2014年(6)

2013年(6)

2012年(2)

2011年(20)

2010年(16)

2009年(28)

2008年(23)

分类: LINUX

2012-02-14 11:37:25

http://www.cnblogs.com/cabin/archive/2010/10/26/1861305.html

NIS:network information server:主机账号等系统信息提供集中管理的网络服务,在linux系统中对所有能运行NIS的客户端进行用户名、密码、访问权限进行统一管理,工作 方式和作用类似于windows server中的AD,适用于网络中存在大量的linux应用server,或存在大量的linux客户机。

使用NIS必须结合NFS使用

NIS提供的数据包括:

服务器端文件名称

文件内容

/etc/passwd

提供用户账号,UID,GID,默认家目录,shell等信息

/etc/group

提供群组名称,GID,及该组成员等信息

/etc/hosts

提供主机名与IP的对应,即主机名和IP地址的相互解析

/etc/services

提供每一种服务(daemon)所对应的端口信息

/etc/protocols

提供基本的TCP/IP协议信息

/etc/netgroup

提供网络群组的定义与使用(NIS使用)

/etc/rpc

提供每种RPC服务所对应的进程号

/var/yp/ypservers

NIS服务器提供的数据库

NIS将上述表格信息做成数据库文件,方便客户端主机快速查询。

由于NIS是为网络中其他主机提供用户登录等信息,网络中其他主机需要请求NIS服务器获取用户信息,所以NIS比较重要,通常采取 master/slave模式,master、slave可以同时响应客户端的登录请求,实现负载均衡。也可避免master宕机引起网络客户端无法登录 的情况。

NIS运作流程:

1. NIS master将本身的账号密码等相关文件制作成数据库文件

2. NIS master主动告诉NIS slave server来更新数据库文件

3. 若有账号变动,需要重新制作数据库文件并重新同步NIS slave server

NIS client有查询请求时:

1. NIS client有登录需求时,首先查询本地的/etc/passwd、/etc/shadow

2. 若在本机找不到相关账号信息,会向整个NIS网段主机广播查询请求

3. 每个NIS服务器都可以响应该请求,先响应者先优先答复请求

NIS client或NIS slave会主动拿掉本机的一般账号,仅保留系统所需的root及系统账号,便于一般用户被NIS server管理。

NIS服务所需软件

Yp-tools:提供NIS相关查询命令、Ypbind:提供NIS客户端设置软件、Ypserv:提供NIS server设置软件、Portmap:提供RPC查询功能

NIS master server设置

设置域名:

#nisdomainname test

# echo /bin/nisdomainname test>>/etc/rc.d/rc.local

# echo NISDOMAINNAME=test>>/etc/sysconfig/network

NIS固定端口配置

NIS和NFS服务相似,使用随机端口,可以配置固定端口加强NIS可管理性。

添加YPSERV_ARGS和YPXFRD_ARGS字段,设置NIS的ypserv和ypxfrd进程使用固定端口号,使用参数-p指定固定端口。

# echo YPSERV_ARGS=\"\-p 800\">>/etc/sysconfig/network

# echo YPXFRD_ARGS=\"\-p 810\">>/etc/sysconfig/network

重启network、ypserv、ypxfrd服务,使用rpcinfo –p查看端口信息

#rpcinfo –p

…………………………………………

100004 2 udp 800 ypserv

100004 1 udp 800 ypserv

100004 2 tcp 800 ypserv

100004 1 tcp 800 ypserv

600100069 1 udp 810 fypxfrd

600100069 1 tcp 810 fypxfrd

设置/etc/hosts

实现NIS服务器和客户端的主机名和IP的对应

#echo 192.168.23.128 master.test>>/etc/hosts

#echo 192.168.23.129 slave.test>>/etc/hosts

#echo 192.168.23.131 client.test>>/etc/hosts

设置ypserv.conf配置文件

# cat /etc/ypserv.conf

dns: no #是否启用DNS系统,如果环境较小,设置好/etc/hosts即可

files: 30 #设置数据库被读入内存的数量,依据网络环境大小决定

slp: no #设置是否启动SLP服务,如果仅需要NIS,无需启动SLP

slp_timeout: 3600

# xfr requests are only allowed from ports < 1024

xfr_check_port: yes #同步数据库启用的端口,默认使用小于1024端口

# Host : Domain : Map : Security

# * : * : passwd.byname : port

# * : * : passwd.byuid : port

127.0.0.1/255.255.255.0:*:*:none

192.168.23.0/255.255.255.0:*:*:none #192.168.23.0/255.255.255.0即本机IP网段

*:*:*:deny

配置文件中最重要的就是限制客户端或从服务器的查询权限。

格式为: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是逐行解释执行,所以要注意设置顺序

创建/etc/netgroup 建立NIS服务器所信任的客户端

默认情况不存在该文件,需手动创建,如文件为空,表示全部主机、账号域名都可以接受。

#touch /etc/netgroup

启动NIS master server相关服务,并设置开机启动

# /etc/init.d/portmap start

# /etc/init.d/ypserv start

# /etc/init.d/yppasswdd start

# chkconfig --level 35 ypserv on

# chkconfig --level 35 yppasswdd on

创建数据库

# /usr/lib/yp/ypinit –m

查看相关数据库文件是否创建:#ls /var/yp/test

重启ypserv和yppasswdd服务

#/etc/init.d/ypserv restart

#/etc/init.d/yppasswdd restart

如果仅修改了某用户的密码,无需重启服务,进入所在目录,make即可

# cd /var/yp

# ls

binding Makefile nicknames test ypservers

# make passwd

Updating passwd.byname...

Updating passwd.byuid...

更新后的文件放置在yp目录中,需要手动移到目录test中

# mv passwd.byname passwd.byuid ./test

如果有salve服务器,需要和salve进行数据同步

#vi /var/yp/Makefile将NOPUSH=true改成NOPUSH=false

# vi /var/yp/ypservers

master.test

slave.test

启动ypxfrd让NIS salve主动连上NIS master更新数据库

[root@localhost yp]# /etc/init.d/ypxfrd start

NIS salve server设置

设置域名,并设置开机启动

# nisdomainname test

# echo /bin/nisdomainname test>>/etc/rc.d/rc.local

# echo NISDOMAINNAME=test>>/etc/sysconfig/network

设置配置文件/etc/ypserv.conf和/etc/hosts、/etc/netgroup保持与NIS master server一致即可

开启portmap和ypserv服务并设置其开机启动

# /etc/init.d/portmap start

# /etc/init.d/ypserv start

# chkconfig --level 35 portmap on

# chkconfig --level 35 ypserv on

确保NIS salve所需的软件包已经安装

# rpm -q ypbind

# rpm -q yp-tools

# rpm -q portmap

# rpm -q ypserv

NIS固定端口配置、设置/etc/hosts与master主机一致即可

重启network、ypserv、ypxfrd服务,并rpcinfo –p查看端口信息

从NIS master服务器上获取数据库文件

# /usr/lib/yp/ypinit -s 192.168.23.128

使用ls –l /usr/yp/test查看数据库文件是否已经建立。

同步主从NIS服务器的数据库文件

#crontab –e

*/1 * * * * /usr/lib/yp/ypxfr -h test passwd.byname

*/1 * * * * /usr/lib/yp/ypxfr -h test passwd.byuid

可以依据具体实际情况设置。

客户端设置

设置nis域名、/etc/hosts配置文件

# vi /etc/nsswitch.conf

passwd: files nis

shadow: files nis

group: files nis

hosts: files nis dns

# vi /etc/sysconfig/authconfig

USENIS=yes

# cat /etc/yp.conf添加如下信息

domain test server Master.test

ypserver Slave.test

domain NIS域名 主机名称 或 domain NIS域名 broadcast

Setup打开配置模式,选择验证配置,使用NIS,使用md5口令和屏蔽口令,设置域名和主服务器。

Yptest验证配置结果。看到yp_all和账户信息就算配置成功。

使用ypwhich –x和ypwhich查看数据库数量

# ypwhich #显示NIS主机名

Master.test

# ypwhich –x #显示数据库数量

Use "ethers" for map "ethers.byname"

Use "aliases" for map "mail.aliases"

Use "services" for map "services.byname"

Use "protocols" for map "protocols.bynumber"

Use "hosts" for map "hosts.byname"

Use "networks" for map "networks.byaddr"

Use "group" for map "group.byname"

Use "passwd" for map "passwd.byname"

使用ypcat查看数据库内容

# ypcat hosts

192.168.23.128 Master.test

127.0.0.1 localhost.localdomain localhost

127.0.0.1 localhost.localdomain localhost

192.168.23.129 Slave.test

192.168.23.131 Client.test

# ypcat passwd

test:$1$5.4y6WdS$f8.fskhB.zguKoX48I2CI0:500:500::/home/test:/bin/bash

small:$1$WZpOJRXl$.uwbqzprJIwci0qaPO59v.:501:501::/home/small:/bin/bash

Ypmatch查看指定账户信息

# ypmatch test passwd

test:$1$5.4y6WdS$f8.fskhB.zguKoX48I2CI0:500:500::/home/test:/bin/bash

yppasswd修改用户密码

# yppasswd test

Changing NIS account information for test on Master.test.

Please enter root password:

Changing NIS password for test on Master.test.

Please enter new password:

Please retype new password:

The NIS password has been changed on Master.test.

阅读(1390) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~