天天看點

搭建NIS伺服器實作使用者集中化認證

搭建NIS伺服器實作使用者集中化認證

NIS伺服器概述

NIS網絡資訊服務,模式是C/S 模式。NIS是集中控制幾個系統管理資料庫的網絡産品。NIS簡化了UNIX和LINUX桌面客戶的管理工作,用戶端利用它可以使用中心伺服器的管理檔案。桌面系統的使用者無需建立他們自己的/etc/passwd。管理者隻需要簡單的使用維護NIS伺服器的檔案即可。 

    Linux系統中使用者按地域分兩類: 本地使用者, 遠端使用者(NIS,LDAP,AD) 

ypbind是定義NIS伺服器的用戶端程序。一旦确定了伺服器位置,客戶機綁定到了伺服器上,所有用戶端的查詢都發往NIS伺服器。 

ypserv是回答用戶端查詢的伺服器程序。 

使用的場景:

 在一個大型的網域當中,如果有多部 Linux 主機,萬一要每部主機都需要設定相同的賬号與密碼時,如果能夠有一部賬号主要伺服器來管理網域中所有主機的賬号, 當其他的主機有使用者登入的需求時,才到這部主要伺服器上面要求相關的賬号、密碼等使用者資訊, 如此一來,如果想要增加、修改、删除使用者資料,隻要到這部主要伺服器上面處理即可, 這樣就能夠降低重複設定使用者賬号的步驟了!

NIS工作流程

    NIS服務的應用結構分為NIS伺服器和NIS客戶機兩種角色,NIS伺服器集中維護使用者的帳号資訊(資料庫)供NIS客戶機進行查詢,使用者登入任何一台NIS客戶機都會從NIS伺服器進行登入認證,可實作使用者帳号的集中管理。

    1.Nis Master先将帳号密碼相關檔案制作成資料庫檔案;

    2.若有帳号密碼變動時,需要重新制作資料庫檔案并重新同步Master/Slave。

    3.NIS client 若有登入需求時,會先查詢其本機的 /etc/passwd, /etc/shadow 等檔案; 

    4.若在 NIS Client 本機找不到相關的賬号資料,才開始向整個 NIS 網域的主機廣播查詢; 

    5.每部 NIS server (不論 master/slave) 都可以響應,基本上是『先響應者優先』

一:實驗目标 

實戰:配置NIS伺服器實作集中化認證。 

實戰:在用戶端自動挂載NIS使用者家目錄 

二:實驗環境

NIS服務端  :xuegod63   IP:192.168.1.63

Web服務端 :xuegod64   IP:192.168.1.64

用戶端     :xuegod62   IP:192.168.1.62

三:實驗代碼

1、環境搭建

1)NIS伺服器:xuegod63: 

[root@xuegod63 ~]# rpm -ivh /mnt/Packages/ypserv-2.19-22.el6.x86_64.rpm

#NIS服務的主程式包。

[root@xuegod63 ~]# service iptables stop

2)NIS用戶端:xuegod64

[root@xuegod64 ~]# rpm -ivh /mnt/Packages/ypbind-1.20.4-29.el6.x86_64.rpm #NIS用戶端,ypind程序包

[root@xuegod64 ~]# rpm -ivh /mnt/Packages/yp-tools-2.9-12.el6.x86_64.rpm #NIS用戶端工具,用來查詢資料庫資訊。

[root@xuegod63 ~]# rpm -qf `which yppasswd ` #使用yppasswd可以遠端修改NIS伺服器使用者的密碼

yp-tools-2.9-12.el6.x86_64

[root@xuegod64 ~]# service iptables stop

NIS伺服器相關文檔

/etc/ypserv.conf

NIS主配置檔案,可以控制NIS用戶端是否可以通路NIS伺服器

/etc/hosts

記錄主機和IP位址對應關系,如果沒有DNS系統,則NIS伺服器的hosts檔案需要存放每一台NIS用戶端的主機記錄。

實戰:配置NIS伺服器實作集中化認證

通過NIS伺服器可以使用帳号nisuser1,登入公司的samba伺服器、郵件伺服器、WEB伺服器等

認證過程:

NIS伺服器的域名:NIS

服務端主機名:xuegod63.cn

用戶端主機名:xuegod64.cn

1、安裝NIS伺服器 :xuegod63

1)建立nis使用者專用目錄(友善後期實作:NIS+autofs的功能)

[root@xuegod63 ~]# mkdir  /home/nishome/

[root@xuegod63 ~]# useradd -d /home/nishome/nisuser1 nisuser1  

[root@xuegod63 ~]# useradd -d /home/nishome/nisuser2 -s /sbin/nologin nisuser2 #後期測試是否可以使用此帳号能否登入其它系統

[root@xuegod63 ~]#  echo 123456 | passwd --stdin nisuser1

[root@xuegod63 ~]#  echo 123456 | passwd --stdin nisuser2

2)設定NIS域名

NIS是會通過域名來分辨不通賬号的密碼資料,是以必須要在伺服器與用戶端都指定相同的NIS域名才行。

[root@xuegod63 ~]# nisdomainname

(none)

方法1:永久生效,需要重新開機機器

[root@xuegod63 ~]# vim /etc/sysconfig/network #在檔案最後,添加以下内容

cat /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=xuegod63.cn

NISDOMAIN=xuegod.cn

[root@xuegod63 ~]# service network restart

方法2:臨時生效

[root@xuegod63 ~]# nisdomainname xuegod.cn #臨時生效,和hosname用法一樣

xuegod.cn

3)配置hosts檔案:主機名與IP的對應

[root@xuegod63 ~]# vim /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.1.63 xuegod63.cn

192.168.1.64 xuegod64.cn 

4)設定/etc/ypserv.conf主配置檔案

[root@xuegod63 ~]#vim /etc/ypserv.conf 

配置:允許所有内網用戶端可以連接配接NIS伺服器,除此之外的用戶端都拒絕連接配接。

如圖:

參數 格式為:

Host:

指定用戶端,可以指定具體IP位址,也可以挃定一個網段

Domain:

設定NIS域名,這裡的NIS域名和DNS中的域名并沒有關系。

Map:

設定可用資料庫名稱,可以用“*”代替所有資料庫

Security:

安全性設定。主要有none、port和deny三種參數設定。

none:

沒有任何安全限制,可以連接配接NIS伺服器。

port:

隻允許小于1024以下的端口連接配接NIS伺服器。

deny:

拒絕連接配接NIS伺服器。

5)建立NIS資料庫

(1)首先要啟動ypserv服務,否則建立NIS資料庫會報錯

[root@xuegod63 ~]# service ypserv start

(2)建立資料庫:

[root@xuegod63 ~]# ll /usr/lib64/yp/ypinit #使用這個指令,必須寫絕對路徑

-rwxr-xr-x 1 root root 4088 Aug 31 2011 /usr/lib64/yp/ypinit

[root@xuegod63 ~]# echo $PATH #沒有在PATH中

/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin

[root@xuegod63 conf]# /usr/lib64/yp/ypinit -m  # 這裡必須是全路徑,m - master

next host to add: xuegod63.cn

next host to add: #Ctrl+D結束輸入

Is this correct? [y/n: y] y 

We need a few minutes to build the databases...

Building /var/yp/xuegod.cn/ypservers...

Running /var/yp/Makefile... # 生成哪個NIS資料庫檔案 

gmake[1]: Leaving directory `/var/yp/xuegod.cn'

xuegod63.cn has been set up as a NIS master server.

Now you can run ypinit -s xuegod63.cn on all slave server.

[root@xuegod63 ~]# ls /var/yp #生成一個xuegod.cn 目錄。

binding Makefile nicknames xuegod.cn ypservers

說明: 每次手動更改資料庫内容後,(比如更新使用者密碼) 。 就需要執行: /usr/lib64/yp/ypinit  -m

6)重新開機服務: 不重新開機,否則添加新資料将無法生效

[root@xuegod63 ~]# service ypserv restart

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

[root@xuegod63 ~]# chkconfig ypserv on

[root@xuegod63 ~]# chkconfig yppasswdd on

2、配置用戶端:xuegod64

1)安裝NIS用戶端具

[root@xuegod64 ~]# rpm -ivh /mnt/Packages/ypbind-1.20.4-29.el6.x86_64.rpm [root@xuegod64 ~]# rpm -ivh /mnt/Packages/yp-tools-2.9-12.el6.x86_64.rpm

2)加入域

[root@xuegod64 ~]# system-config-authentication #此指令需要在圖形界面執行

在“User Account Configuration”出選擇“NIS”,填入相應的NIS資訊,如下圖

點選“Apply”之後,如下圖測試:

注:這裡要是綁定失敗,應該是防火牆的問題,要将防火牆關閉的

(1)檢視執行system-config-authentication後,修改的内容: 

[root@xuegod64 Desktop]# cat /etc/sysconfig/network

HOSTNAME=xuegod64.cn

NISDOMAIN=xuegod.cn 

[root@xuegod64 Desktop]#

[root@xuegod64 Desktop]# vim /etc/nsswitch.conf # 修改密碼驗證方式

33 passwd: files nis

34 shadow: files nis

35 group: files nis

3、測試登入

1)xuegod63上遠端登入:

[root@xuegod63 ~]# ssh [email protected]

[email protected]'s password:

Could not chdir to home directory /home/nishome/nisuser1: No such file or directory

-bash-4.1$

2)在xueogd64上測試:

[root@xuegod64 Desktop]# su - nisuser1

su: warning: cannot change directory to /home/nishome/nisuser1: No such file or directory

#能使用NIS帳号登入系統,說明配置成功。

3)檢視NIS客戶服務ypbind的配置檔案

[root@xuegod64 ~]# tail /etc/yp.conf #指定了NIS伺服器位址 ,檢視最後一行,在用戶端/etc/yp.conf檔案中設定NIS伺服器的主機名和NIS域名

domain xuegod.cn server 192.168.1.63

4)重新啟動ypbind服務

[root@xuegod64 Desktop]# service ypbind restart 重新啟劢ypbind服務

[root@xuegod64 Desktop]# chkconfig ypbind on 設定開機啟劢ypbind服務

5)測試修改密碼

yppasswd 用戶端可以使用yppasswd指令修改帳号和密碼

注意:密碼長度不能少于6位。此外使用yppasswd指令可以自劢更新NIS資料庫中内容。:通過yppasswd(1)修改密碼

-bash-4.1$ yppasswd

Changing NIS account information for nisuser1 on xuegod63.cn.

Please enter old password:123456

Changing NIS password for nisuser1 on xuegod63.cn.

Please enter new password:123456789

Please retype new password:123456789

The NIS password has been changed on xuegod63.cn.

(2)使用新密碼登入:

[root@xuegod64 ~]# ssh [email protected]

[email protected]'s password: 123456789

Last login: Thu Apr 16 20:11:20 2015 from xuegod64.cn

方法二: 

-bash-4.1$ passwd #直接使用passwd指令,新密碼要複雜一些

實戰:在用戶端實作自動挂載NIS使用者家目錄

描述: xuegod63 配置NFS,把NIS使用者的家目錄共享出去, NIS使用者在用戶端登入,使用autofs自動挂載NIS使用者家目錄。

1、xuegod63 配置NFS

1)安裝 xuegod63,配置NFS:

[root@xuegod63 ~]# rpm -ivh /mnt/Packeges/nfs-utils-1.2.3-15.el6.x86_64

[root@xuegod63 ~]# ls /home/nishome/

nisuser1 nisuser2

[root@xuegod63 ~]# vim /etc/exports #寫入以下内容

/home/nishome 192.168.1.0/255.255.255.0(rw,sync)

2)啟動服務并設定開機自啟動

[root@xuegod63 ~]# /etc/init.d/nfs restart  

[root@xuegod63 ~]# showmount -e 192.168.1.63

Export list for 192.168.1.63:

/home/nishome 192.168.1.0/255.255.255.0、

[root@xuegod63 ~]# chkconfig nfs on

2、xuegod64 所有的NIS用戶端,安裝autofs

1)安裝autofs

[root@xuegod64 Desktop]# rpm -qf /etc/init.d/autofs

autofs-5.0.5-39.el6.x86_64

[root@xuegod64 Desktop]# yum install -y autofs

2)配置autofs

[root@xuegod64 Desktop]# vim /etc/auto.master #autofs服務主配置檔案

8  /home/nishome  /etc/auto.nishome  #/home/nishome 挂載點

#如果要自動挂載/home/nishome,就去找/etc/auto.nishome這個配置檔案。

3)修改配置檔案

[root@xuegod64 ~]# vim /etc/auto.nishome  

* -rw 192.168.1.63:/home/nishome/& # 目下的所有檔案,

#autofs支援挂載目錄使用通配符“*”表示,而網絡路徑中的使用者名使用“&”表示 如果進入本地的/home/nishome中,(這個字首已經在剛才的/etc/auto.master中挃定了),就會把192.168.1.63上/home/nishome/上對應的目錄挂過來。

4)重新開機服務并開機啟動: 

[root@xuegod64 ~]# /etc/init.d/autofs restart

[root@xuegod64 ~]# chkconfig autofs on

3、測試: 

1)Xuegod63上測試遠端登入

[email protected]'s password: 123456

Last login: Thu Apr 16 22:04:25 2015 from xuegod63.cn

[nisuser1@xuegod64 ~]$

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

Nis不僅僅是做集中化認證,還有其他的作用

#在不同的使用者家目錄下放不同的軟體和工具: 登入不同帳号,就可以擁有對應的軟體或腳本

[root@xuegod63 ~]# echo " cp -rv /var/www/html /tmp/" > /home/nishome/nisuser1/auto-back.sh

[root@xuegod63 ~]# chmod +x !$

chmod +x /home/nishome/nisuser1/auto-back.sh

(1)讓nisuser1作為專門備份使用者: 

[nisuser1@xuegod64 ~]$ ./auto-back.sh

`/var/www/html' -> `/tmp/html'

`/var/www/html/index.html' -> `/tmp/html/index.html'

(2)回顧: mount 挂載nfs檔案:

[root@xuegod64 ~]# mount 192.168.1.63:/home/nishome  /opt/

[root@xuegod64 ~]# ls /opt/

nisuser1 nisuser2 

本文轉自 于學康 51CTO部落格,原文連結:http://blog.51cto.com/blxueyuan/1922604,如需轉載請自行聯系原作者