免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 972 | 回复: 0
打印 上一主题 下一主题

LINUX网络服务 NIS服务 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-05 01:33 |只看该作者 |倒序浏览

               
LINUX网络服务  NIS服务
  
NIS最大的用途在于向客户端用户提供信息查询,例如:用户的账号、密码、UID、默认目录、SHELL等,都可以通过NIS服务器来查询。
  
[color="#ff0000"]NIS的由来
  
在一个大型网段中,如果有多台linux主机,而且每台主机都需要设置相同的账号与密码,此时,可以用一台主控服务器来管理网段中所有主机的账号,让其他主机在有用户登录需求时才到这台服务器上查询相关账号、密码等用户信息,这样的话,如果想要增加、修改、删除用户信息,只要到主控服务器上处理即可,这样就能降低重复设置用户账号的麻烦了。
  
[color="#ff0000"]NIS的功能
  
通常的建议都是,一台linux主机,功能越简单越好,也就是说,一台linux就专门进行一项服务。这样有很多的好处,因为功能简单,不仅系统资源得到充分利用,而且在系统发生状况的时候,比较容易查出问题所在。所以说,一个公司内部常常会有好几台linux主机,有的专门负责WWW、有的负责MAIL、有的负责SAMBA等服务。
  
这样做虽然有了很多的好处,但是,由于是一个公司内部的多台主机,事实上所有的linux主机的账号与密码都是一样的,如果公司有100人的话,我们就需要针对这么多的主机去设置账号与密码,而且,如果以后还有新员工进入的话,那么系统管理员的工作就只剩下设置密码了。
  
但是,如果我们设计了一台专门管理账号与密码的主机,当其他的linux主机有客户端要登录的时候,就需要到这台管理密码的主机来查询用户的账号与密码,这样以来,所有需要管理的linux主机的账号与密码,只要到那台服务器主机上去进行设置就行了。这就是NIS(network  information  service)主机的主要功能了。
  
[color="#ff0000"]NIS的运作
  
如果在一个很大型的网段里,万一所有的linux主机都向同一台NIS服务器请求用户信息,这台NIS服务器的负载可能会过大,如果再考虑到数据使用的风险,要是这单一的一台NIS服务器宕机,那么其他的linux主机就不会让其他的用户登录了,所以在较为大型的企业环境中,NIS服务器可以使用MASTER/SLAVE主从结构。
  
MASTER NIS服务器提供系统管理员制作的数据库,SLAVE则取得来自MASTER的数据,并以此提供其他客户端的查询。客户端可以向整个网段请求用户数据的响应,MASTER/SLAVE皆可回答,由于SLAVE的数据来自于MASTER,所以用户账号数据是同步的,如此一方面可以分散NIS服务器的负载,而且也可以避免因NIS服务器宕机而导致的无法登录的风险。
  
[color="#ff0000"]当有客户登录时,整个NIS的运行流程如下:
  
(1)NIS server 的运行流程
  
     NIS master 先将本身的账号密码相关文件制作成数据库文件
  
     NIS master 可以主动告诉NIS SLAVE SERVER来更新
  
     NIS SLAVE也可以主动前往NIS MASTER SERVER 取得更新后的数据库文件
  
     若有账号密码变动时,需要重新制作数据库文件,并重新同步MASTER/SLAVE
  
(2)当NIS CLIENT有任何登录查询的需求时
  
     NIS CLIENT 若有登录需求,会先查询其本机的/etc/passwd、/etc/shadow等文件。
  
若在NIS CLIENT本机找不到相关的账号信息,才开始向整个NIS网段的主机广播查询。
  
每台NIS SERVER都可以响应,基本上是先响应者优先。
  
[color="#ff0000"]NIS服务器端的配置
  
(1)所需要的软件
  
由于NIS服务器需要使用RPC(远程过程调用)协议,因此它需要以下软件:
  
[color="#ff0000"]Yp-tools:提供NIS相关的查询命令功能
  
[color="#ff0000"]Ypbind:提供NIS CLIENT端的设置软件
  
[color="#ff0000"]Ypserv:提供NIS SERVER端的设置软件
  
[color="#ff0000"]Portmap:这是RPC必须的软件
  
一般来说,yp-tools、ypbind都会主动安装,ypserv可能不会主动安装。
  
(2)ypserv的主要配置文件有下面一些:
  
    [color="#ff0000"] /etc/ypserv.conf:最主要的配置文件,用于设置NIS客户端是否可登录的权限
  
[color="#ff0000"]     /etc/hosts:非常重要,每一台主机都需要记录才行
  
[color="#ff0000"]     /etc/netgroup:设置信任的主机与域名
  
[color="#ff0000"]     /etc/sysconfig/network:可以在这个文件内指定NIS的域名
  
上面简单的介绍了NIS的一些功能与服务,下面进行一个实验:
  
由于网段比较小,并且是在VM上模拟的,因此我们只需要NIS SERVER 和NIS CLIENT两台主机就可以了,NIS的网段为192.168.100.0/24,名称为benet ,NIS SERVER 的IP为192.168.100.1,主机名称为nis,NIS CLIENT的IP为192.168.100.10,主机名称为client。
  
首先,我们先来查看一下ypserv是否安装,下面显示并没有安装,并且ypbind和yp-tools已经安装
  

  
查看完成后,我们需要把安装光盘挂载到主机中
  
在tmp目录下新建一个名字为cdrom的空目录
  

  
将光盘挂载到上面新建的空目录中
  

  
进入新建的cdrom目录,进行查看,我们会看到下面红色标记的SERVER,很多的服务都是在这个里面的
  

  

  
接下来我们进入server目录,查找ypserv文件
  

  
安装ypserv的RPM包,安装完成后,进行查看验证
  

  
配置SERVER主机的网络属性,见下面的红色标记部分
  


  
保存退出后,重新启动网络服务,并查看配置是否生效
  


  
基本的准备工作完成后,接下来就开始进行NIS SERVER的配置了
  
[color="#ff0000"]1.设置NIS的域名
  
所有的NIS SERVER和NIS CLIENT都需要设置域名,我们设置域名为benet
  

  
如果确定每次开机时都需要启动NIS域名的话,直接把它写入/etc/rc.d/rc.local中,写入的内容下面的红色标记部分
  


  
如果想在启动NIS时自动设置好NIS域,可以利用下面这个文件,写成下面的样子
  
并且在这个文件中,我们同样可以修改主机的名称,但是在这里修改后,需要重新启动主机才可以生效,但在实际应用中,我们并不重新启动,而是使用hostname先把主机的名字修改,等到配置完成后,再重启即可。
  


  
[color="#ff0000"]这里我们添加一个用户dgplpan,并到home目录下查看:
  


  
在/etc/passwd文件中查看是否有新建的用户:
  

  
[color="#ff0000"]2.主要配置文件/etc/ypserv.conf
  
这个配置文件是NIS服务器最重要的配置文件,内容其实很简单,大部分保持默认即可
  

  
dns:NIS服务器在使用时绝大部分都是在局域网内,所以不需要DNS系统
  
Files:默认会有30个数据库文件被写入内存中
  
Slp:这两个与SLP服务有关,这里我们仅使用NIS,因此不需要启动
  
最后一句:与主机有关,用同步更新的数据库比对所使用的端口,放置于小于1024的端口内
  

  
下面设置的是限制客户端查询的权限,利用冒号隔开,分别为
  
主机名称/IP:NIS网段名称:可用数据库名称:安全限制
  
主机名称/IP:可以使用network/netmask
  
NIS网段名称:在这个实验中的benet
  
可用数据库名称:就是由NIS制作出来的数据库名称
  
安全限制:包括没有限制(none)、仅能使用小于1024(port)及拒绝(deny)
  
在这个实验中,我们设置成下面的模样,其中*表示任何数据都接收,下面几行的意思是开放lo内部端口,开放lan网段,且拒绝所有其他来源的NIS请求
  

  
[color="#ff0000"]3.设置主机名称与建立信任群组
  
  NIS大部分是给局域网中的主机使用的,并且会使用到很多的主机名称,所以一定要设置好/etc/hosts对应关系,在这个实验中,我们设置为下面的情况:
  


  
/etc/group文件用于记录网段里被信任的群组,并且这个文件默认是不存在的,需要我们手动创建,如果这个文件为空,那么就代表着全部的主机、账号和域名都接受,我们在/etc/ypserv.conf中设置好了安全项目,所以这个文件只要建立即可(也可以跳过这一步,因为在比较新的linux版本中都可以跳过这个文件的检查。)
  

  
Securenets安全配置文件,用于对NIS客户端的用户进行访问控制,这个文件也是不存在的,需要手动创建,写成下面的格式,同样,这个文件也可以不需要
  


  
[color="#ff0000"]4.启动所有相关服务
  
启动RPC、ypserv以及yppasswdd服务,其中protmap这个服务默认是启动的,但这个是在VM中,实际环境中还是得注意这个服务的启动状态的,默认portmap启动的端口是111,其他的RPC启动的端口则是随机产生的,因此需要向port111注册。
  

  
我们可以使用下面的命令来查看每个RPC服务的注册状况,下面是显示目前这台主机的RPC状态,并且出现了下面的画面,表示正确启动了ypserv
  

  
如果需要开机启动ypserv的话,我们使用chkconfig命令来处理,具体使用见下:
  

  
[color="#ff0000"]5.建立数据库
  
接下来我们要将主机上的账号文件转换成数据库文件,转换操作使用下面的命令完成,其中红色标记部分nis,系统会自动捕捉到,这个地方需要特别注意
  

  
根据提示按下ctrl+D,输入y,然后就会出现下面的过程,并且在最后结束的地方,主机名称会自动显示
  

  
数据库建立完成后,必须要通知ypserv和yppasswdd这两个服务,告诉它们数据库已经被改动了,重启这两个服务即可,如果用户密码发生变动,就必须重新制作数据库,并且重启这两个服务。
  

  
到这里,服务器端的配置基本完成了,下面我们进入客户端的配置
  
[color="#ff0000"]NIS CLIENT端的配置
  
NIS SERVER提供数据库文件,NIS CLIENT则会提供ypbind这个联机软件,在NIS CLIENT端有登录需求时,NIS CLIENT基本上还是先搜索自己的/etc/passwd、/etc/group等文件后才会去找NIS SERVER的数据库
  
[color="#ff0000"]NIS CLIENT端所需要的软件有:ypbind、yp-tools,其中,yp-tools是提供查询的软件,ypbind是与ypserv互相沟通的客户端联机软件。
  
NIS CLIENT端主要有以下配置文件:
  
[color="#ff0000"]/etc/sysconfig/network:主要用于设置NIS域名称,让ypbind启动时可以设置好。
  
[color="#ff0000"]/etc/hosts:这个很重要,至少需要有各个NIS服务器的IP与主机名对应。
  
[color="#ff0000"]/etc/yp.conf:这个是ypbind的主要配置文件,里面主要规范NIS SERVER。
  
[color="#ff0000"]/etc/nsswitch.conf:这个文件很重要,用于规范账号密码与相关信息的查询顺序,默认是先/etc/passwd,再下来是NIS。
  
NIS CLIENT的设置
  
在设置前,我们首先要做的就是做好准备工作,完成后CLIENT的网络属性,确保能与SERVER端互通。
  

  
设置NIS DOMAIN,直接建立域名,域名与SERVER端的相同
  

  
开机立即启动此域名
  


  
预设在启动ypbind时,设置NIS域名
  

  

  
设置主机名称与IP的对应配置文件
  

  
查看是否有客户端所需要的两个软件,默认安装
  

  
修改许多主机验证功能的顺序,这个文件在NIS CLIENT端是很重要的,并且这个文件的内容很多,在这个实验中我们只需要进行登录验证,因此可以写成下面的样式:
  
Passwd:用户相关信息查询
  
Shadow:用户密码的查询
  
Group:用户的群组信息查询
  
Hosts:主机名称与IP对应的查询
  
只需要在files后加上nis,也就是SERVER端的主机名即可
  

  

  
接下来配置ypbind的主要配置文件,主要的语法是:
  
Domain NIS域名  server  主机名称
  
如果在大网段有多台NIS服务器的情况下,我们需要通过广播
  
Domain  NIS域 broadcast
  

  
在这个实验中,我们写入下面的信息:
  

  
配置完成后,启动下面的两个服务
  

  
利用yptest检验数据库,直接输入命令即可进行测试,重点是第九步,yp_all需要列出NIS SERVER上所有账号信息,如果出现了,则验证成功
  


  
利用ypwhich检验数据数量,如果单纯使用ypwhich时,显示的是NIS CLIENT的DOMAIN
  

  
加入-x参数时,则显示NIS CLIENT与SERVER之间沟通的数据库有哪些
  

  
所有的配置完成,并且检验成功,我们使用在SERVER端创建的用户来登录CLIENT端,会出现下面的情况,这样表示在NIS CLIENT上没有真正的dgplpan这个账号,而这个账号是从NIS SERVER上取得的,因此,在NIS CLIENT端并没有/home/dglppan这个目录。
  
Dgplpan这个用户登录NIS CLIENT的时候,会找不到自己的默认目录,而且,如果我们的NIS CLIENT很多的话,要是每次登录NIS CLIENT的时候,所拥有的默认目录都是个别NIS CLIENT上的目录,那么就没有实现NIS的功能了。
  
所以,如果我们需要同一个账号登录的每个NIS CLIENT所拥有的默认目录都是相同的,就可以使用NFS来加以设置.
  
首先在NIS SERVER上开放/home这个目录出来
  
在NIS CLIENT上,mount NIS主机的/home到自己的/home里去。
  
如此以来,不论登录哪一台NIS SERVER或CLIENT,用户都是进入到NIS SERVER的/home里的默认目录中。
  

  
具体设置方法如下
  





  
到客户端设置NIS CLIENT的mount数据,这个命令可以放入/etc/fstab中,或是/etc/rc.d/rc.local中,这样可以每次开机自动挂载
  

这时再查看客户端的/home下,我们会看到dgplpan这个用户
  

  
接下来我们使用dgplpan登录客户端,登录完成后,我们可以使用yppasswd来修改密码
  

  
实验完成
[/url]
               

本文来自ChinaUnix博客,如果查看原文请点:[url]http://blog.chinaunix.net/u3/93926/showart_1955651.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP