您好,登錄后才能下訂單哦!
搭建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用法一樣
[root@xuegod63 ~]# nisdomainname
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服務器,除此之外的客戶端都拒絕連接。
如圖:
ypserv.conf文件是逐行解釋執行,所以要注意設置順序
參數 格式為: | |
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
NETWORKING=yes
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 nisuser1@192.168.1.64
nisuser1@192.168.1.64'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
-bash-4.1$
#能使用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)修改密碼
[root@xuegod63 ~]# ssh nisuser1@192.168.1.64
-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 nisuser1@192.168.1.64
nisuser1@192.168.1.64's password: 123456789
Last login: Thu Apr 16 20:11:20 2015 from xuegod64.cn
Could not chdir to home directory /home/nishome/nisuser1: No such file or directory
-bash-4.1$
方法二:
[root@xuegod63 ~]# ssh nisuser1@192.168.1.64
-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上測試遠程登錄
[root@xuegod63 ~]# ssh nisuser1@192.168.1.64
nisuser1@192.168.1.64'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作為專門備份用戶:
[root@xuegod63 ~]# ssh nisuser1@192.168.1.64
nisuser1@192.168.1.64's password:
[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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。