RHEL配置NIS網絡信息服務實例
在RHEL配置NIS網絡信息這個過程中,筆者從以下服務端的設定、客戶端的設定、重新啟動客戶端來測試結果等3大方面進行了詳細的描述。
NIS概述:
NIS,是Network Information Services的簡寫,意為網絡信息服務 ;其最初是由Sun Microsystems組織開發, 主要目標是用于UNIX系統的集中管理。 目前,它基本上已
經成為了業界標準; 所有主流的類 UNIX 系統 (Solaris,HP-UX,AIX,Linux,NetBSD,OpenBSD,FreeBSD等等) 都支持 NIS。
NIS原來的名稱為黃頁(Yellow Pages),但由于商標的問題,Sun將其改名為現在的名字。NIS是一個基于 RPC 的客戶機/服務器系統, 它允許在一個 NIS 域中的一組機器
共享一系列配置文件。 這樣, 系統管理員就可以配置只包含最基本配置數據的 NIS 客戶機系統, 并在單點上(主NIS服務器)增加、刪除或修改配置數據。
在 NIS 環境中, 有三種類型的主機: 主服務器(master), 從服務器(slave),和客戶機(client)。服務器的作用是充當主機配置信息的中央數據庫,保存著用戶帳號、
組帳號等配置信息的權威副本,而從服務器則是保存這些信息的冗余副本。客戶機將使用這些信息。
RHEL配置NIS配置示例:
本例中網絡模型如下:
server 192.168.0.16 NIS主服務器
client 192.168.0.128 NIS客戶端
一、服務端的設定
1、設定NIS域名
#nisdomainname benet
#vi /etc/sysconfig/network
添加:
NISDOMAIN=benet
#vi /etc/rc.local
添加:
/sbin/nisdomainname benet
2、默認情況下,RHEL4沒有安裝ypserv包,此軟件在***張光盤上,安裝上即可
查看是否已經安裝ypserv
# rpm -qa |grep ^yp
ypbind-1.17.2-3
yp-tools-2.8-7
掛載***張光盤并安裝ypserv
# mount /dev/cdrom /media/cdrom
# rpm -ivh /media/cdrom/RedHat/RPMS/ypserv-2.13-5.i386.rpm
warning: /media/cdrom/RedHat/RPMS/ypserv-2.13-5.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ########################################### [100%]
1:ypserv ########################################### [100%]
3、主配置文件/etc/ypserv.conf
此部分配置比較簡單,大部分保持默認即可,***一段來定義訪問安全性。但一般情況下,管理員應該使用securenets文件,未必用ypserv.conf定義安全性。
這部分語法如下:
[Host ] : [Domain ] : [Map ] : [Security]
[主機名稱/IP] : [NIS域名稱] : [可用資料庫名稱] : [安全限制]
字段如下:
host :授權或禁止訪問的計算機,它由地址/掩碼對確定.例如 192.168.1.0/255.255.255.0 . *表示所有主機;
map :該字段表示訪問的NIS映射表項名稱。例如:passwd.byuid。*表示映射表 中所有的字段都可用;
security :授權訪問類型
none :允許訪問,不加強安全性;
port :允許特權端口訪問;只接收源端口小于1024的連接;
deny :禁止訪問;
如本實驗中,我們應該在主配置文件尾設置如下項:
127.0.0.0/255.255.255.0 : * : * : none
192.168.0.0/255.255.255.0 : * : * : none
* : * : * : deny
4、編輯 /etc/yp.conf 文件
NIS服務器同時也是它們自己的NIS客戶端,所以你需要編輯NIS客戶端配置文件/etc/yp.conf,將其記錄域的NIS服務器同時也是主機。
# vi /etc/yp.conf
添加:
ypserver 127.0.0.1
5、啟動rpc、ypserv、yppasswdd等進程
# service portmap start
Starting portmap: [ OK ]
# rpcinfo -p localhost
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 32768 status
100024 1 tcp 32768 status
# service ypserv start
Starting YP server services: [ OK ]
# rpcinfo -u localhost ypserv
program 100004 version 1 ready and waiting
program 100004 version 2 ready and waiting
#
service yppasswdd start
Starting YP passwd service: [ OK ]
# rpcinfo -u localhost yppasswdd
program 100009 version 1 ready and waiting
# rpcinfo -p localhost
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 32768 status
100024 1 tcp 32768 status
100004 2 udp 613 ypserv
100004 1 udp 613 ypserv
100004 2 tcp 616 ypserv
100004 1 tcp 616 ypserv
100009 1 udp 628 yppasswdd
#p#
6、初始化NIS域
接下來使用 ypinit 命令去創立域maps文件
# /usr/lib/yp/ypinit -m
At this point, we have to construct a list of the hosts which will run NIS
servers. server.mshome.net is in the list of NIS server hosts. Please continue to add
the names for the other hosts, one per line. When you are done with the
list, type a .
next host to add: server.mshome.net
next host to add:
The current list of NIS servers looks like this:
server
Is this correct? [y/n: y] y
We need a few minutes to build the databases...
Building /var/yp/benet/ypservers...
Running /var/yp/Makefile...
gmake[1]: Entering directory `/var/yp/benet'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
Updating rpc.byname...
Updating rpc.bynumber...
Updating services.byname...
Updating services.byservicename...
Updating netid.byname...
Updating protocols.bynumber...
Updating protocols.byname...
Updating mail.aliases...
gmake[1]: Leaving directory `/var/yp/benet'
server has been set up as a NIS master server.
Now you can run ypinit -s server on all slave server.
7、設置/var/yp/securenets,配置安全訪問
在RHEL配置NIS過程中添加如下內容(你可以根據自己的網絡而作相應的修改):
host 127.0.0.1
255.255.255.0 192.168.0.0
說明:此文件用來定義客戶端的對NIS服務器的訪問權限,它使用netmask/network來定義,實際使用中需要將其間的'/'符號換為空格;同時,如果僅用來定義某個主機的
訪問,需要將掩碼換為'host'指令。
8、啟動客戶端進程,并測試NIS服務器
# service ypbind start
Binding to the NIS domain: [ OK ]
Listening for an NIS domain server..
[root@server ~]# yptest
Test 1: domainname
Configured domainname is "benet"
Test 2: ypbind
Used NIS server: 192.168.0.16
………………
………………
# 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 passwd
redhat:$1$btyeQR8Z$TR0OkRrcrXYmgxY.MEN2R.:500:501::/home/redhat:/bin/bash
說明:redhat為手動建立的系統帳號
# ypmatch redhat passwd
redhat:$1$btyeQR8Z$TR0OkRrcrXYmgxY.MEN2R.:500:501::/home/redhat:/bin/bash
二、客戶端的設定
1、設定NIS域名
#nisdomainname benet
#vi /etc/sysconfig/network
添加:
NISDOMAIN=benet
#vi /etc/rc.local
添加:
/sbin/nisdomainname benet
2、查看是否已經安裝相應的rpm包ypbind和yptools,RHEL4默認已經安裝
# rpm -qa |grep ^yp
ypbind-1.17.2-3
yp-tools-2.8-7
3、設置主配置文件/etc/yp.conf
#vi /etc/yp.conf
添加如下行:
domain benet server 192.168.0.16
其語法格式為:
domain NISDOMAIN server HOSTNAME
其中NISDOMAIN為你的NIS域名,HOSTNAME為你的NIS服務器名字,推薦使用IP;或者你也可以設置/etc/hosts文件,使用客戶端能解析NIS Server的主機名稱,此處則可以
寫作服務器的主機名;
4、設置/etc/nsswitch.conf文件
找到如下項:
passwd: files
shadow: files
group: files
#hosts: db files ldap nis dns
hosts: files dns
將其修改為:
passwd: files nis
shadow: files nis
group: files nis
#hosts: db files ldap nis dns
hosts: files nis dns
5、查看客戶端portmap進程的啟動狀況,確定無誤后啟動其ypbind進程:
# service portmap status
portmap (pid 1774) is running...
# service ypbind start
Shutting down NIS services: [ OK ]
Binding to the NIS domain: [ OK ]
Listening for an NIS domain server.
將ypbind設置為開機自動啟動
#chkconfig --level 2345 ypbind on
6、測試客戶端的連接
# ypcat passwd
redhat:$1$btyeQR8Z$TR0OkRrcrXYmgxY.MEN2R.:500:501::/home/redhat:/bin/bash
# ypmatch redhat passwd
redhat:$1$btyeQR8Z$TR0OkRrcrXYmgxY.MEN2R.:500:501::/home/redhat:/bin/bash
# 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 hosts
192.168.0.16 server
127.0.0.1 localhost.localdomain localhost
7、配置客戶端在啟動時登錄到NIS域
# vi /etc/sysconfig/authconfig
找到如下行:
USENIS=no
修改為:
USENIS=yes
8、在服務器添加測試用戶
#userdd niSuSEr
#passwd nisuer
并使用如下命令重建maps數據庫,其使用方法見服務端設定部分
# /usr/lib/yp/ypinit -m
#p#
三、重新啟動客戶端來測試結果
1、客戶端登錄:
# ssh -l niSuSEr 192.168.0.128
niSuSEr@192.168.0.128's password:
Last login: Wed Jul 11 17:59:14 2007 from server
Could not chdir to home directory /home/niSuSEr: No such file or directory
-bash-3.00$
2、在服務端輸出/home目錄,以使得客戶端漫游配置文件:
# vi /etc/exports
/home 192.168.0.0/24(rw,no_root_squash,async)
啟動nfs服務:
# service nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS daemon: [ OK ]
Starting NFS mountd: [ OK ]
設置其開機自動啟動
# chkconfig --level 2345 nfs on
3、客戶端的設定
以root用戶登錄客戶端,掛載服務端的/home目錄至本機的/home目錄,而后測試使用niSuSEr用戶登錄
# ssh -l niSuSEr 192.168.0.128
niSuSEr@192.168.0.128's password:
[niSuSEr@client ~]$ ls -a
. .. .bash_logout .bash_profile .bashrc .emacs .gtkrc .kde
[niSuSEr@client ~]$ ls /home
lost+found niSuSEr redhat
編輯/etc/fstab文件,使其開機能自動掛載
192.168.0.16:/home /home ext3 defaults 0 0
4、在客戶端使用yppasswd命令修改個人密碼
[niSuSEr@client ~]$ yppasswd
Changing NIS account information for niSuSEr on server.
Please enter old password: <----此處要輸入舊密碼
Changing NIS password for niSuSEr on server.
Please enter new password: <----新密碼
Please retype new password: <----確認新密碼
The NIS password has been changed on server. <----修改的確認信息
在這篇文章中筆者從實例著手在3大方面對RHEL配置NIS信息服務上進行了詳細的分析,是用戶對RHEL配置有了更詳細的了解。
【編輯推薦】