【Linux】NIS: 集中化認證服務
在本篇博文中,我們來看下經常和NFS搭配使用的NIS服務的配置和使用方法。NIS(Network Information Services)允許賬號登入和其它服務諸如:主機名解析,xinetd網路服務配置等等可以在一臺NIS Server伺服器上集中完成,極大方便了企業運維管理人員。本文主要著眼於NIS使用者賬號登入認證的的使用和配置。需要注意的是:NIS的客戶端和伺服器端進行通訊的時候並未使用加密演算法,因而建議僅僅在獨立網路或者是有防火牆防護的私有網路使用NIS。
NIS簡介
NIS服務將許多原本需要在本地提供的檔案移至了伺服器端,而每當客戶端需要使用這些檔案的時候,它可以向伺服器端發起申請從而獲得這些檔案。通常而言,常用的檔案有:
事實上,隨著科技的發展,在集中化認證服務上,LDAP已經逐步取代了NIS成為越來越多的企業的選擇,因為LDAP相較NIS而言,具有跨平臺、更好的web客戶端支援及桌面應用支援的優勢。想要了解的朋友可以自行百度。
NIS伺服器端配置
- NIS伺服器端配置需要的
l Ypbind rpc埠繫結服務
l Portmap rpc埠對映服務,在centos6上已經被rpcbind服務取代
l Ypserv NIS server服務
l Yp-tools NIS支援命令(ypcat,yppasswd,ypwhich…)
l Nscd 處理密碼和組查詢功能並且進行快取。LDAP和NIS均需要用到該服務。它定義了NIS支援查詢的檔案,比如說,認證需要passwd shadow和group檔案的支援。其配置檔案位於/etc/ncsd.conf
- NIS SERVER端需要修改的配置檔案
Ø /etc/sysconfig/network—該檔案主要用來設定NISDOMAIN的域名
例如:
NETWORKING=yes
HOSTNAME=nisServerName
NISDOMAIN=lab2
Ø /etc/yp.conf ----該檔案主要用來設定NIS Server的IP地址,及本身所處的NIS domain域,該檔案主要應在client端設定,如果server本身也擬作NIS認證,則在Server端也需要做這些設定。
例如:domain lab2 server 127.0.0.1
在這個例子中,假設NIS Server本身登入時也要做nis認證,因此將server的地址更改為自身的loopback地址,lab2即為NISDOMAIN域的域名。
Ø /etc/nsswitch.conf----該檔案定義系統登入時查詢相應賬戶資訊的查詢順序
passwd: files nis
shadow: files nis
group: files nis
上述配置檔案的含義為:當系統登入時,首先查詢本地的/etc/passwd(/etc/shadow,/etc/group),如果沒有找到相關的認證資訊則就會到NIS伺服器上查詢相應的配置檔案。
/etc/ypserv.conf這個檔案用於設定1)NIS Server的相關屬性,2)自身哪些檔案可以被哪些客戶端訪問。各項含義說明如下:
==========NIS SERVER的相關屬性===================
dns: no 是否使用dns解析主機名
files: 30 快取檔案個數
slp: no 是否使用slp
slp_timeout: 3600 slp超時時間
xfr_check_port: yes 是否對xfr使用的埠進行檢查
================訪問規則==========================
* : * : shadow.byname : port
* : * : passwd.adjunct.byname : port
訪問規則的形式如下:
host:domain:map:security
host: 定義可以使用NIS服務的終端主機的地址範圍 *代表允許所有主機訪問
domain:定義了該條規則應用於那個domain域 *代表所有NIS domain域
map: 對映檔案的名稱,*代表所有對映檔案
security:總共有三個選項none,port,deny
none:允許所有訪問
port:如果訪問埠號來源小於1024則允許訪問,否則不允許訪問。
Deny:不允許訪問此條對映
所以如果nis client端除錯不通的時候,可以編制訪問規則:
*:*:*:none 測試是否是由於策略問題,導致無法訪問NIS Server。
設定完成後以root使用者執行如下命令:
# nisdomainname name-of-domain ---設定nis domain域名,即時生效,重啟失效
# service rpcbind start
# service yppasswdd start
# service ypserv start
# /usr/lib64/yp/ypinit -m
ypint -m命令使用-m引數將本臺NIS Server配置為一臺主NIS Server ,這會將本機的/etc/passwd,/etc/shadow, /etc/hosts等等檔案轉換成NIS GNU dbm資料庫格式,並且產生一個make檔案。
最後,我們可以使用rpcinfo –p localhost命令檢查本機rpcbind及ypserv等等服務是否已經使能並執行。
以上就是NIS 伺服器端的配置,下面我們看一下NIS Client端的配置。
NIS客戶端配置
需要的RPM包:
ypbind
rpcbind
yp-tools
修改配置檔案:/etc/sysconfig/network, /etc/yp.conf, /etc/nsswitch.conf等等與server端的修改相似,不再贅述。
而後執行命令:
service rpcbind restart
service ypbind restart
執行命令:rpcinfo –u localhost ypbind檢視portmapper服務是否成功啟動並且ypbind已經成功註冊。事實上,對於客戶端的配置有個圖形化的配置工具authconfig-tui,使用起來非常簡單,僅需簡單的啟用NIS,並設定好NIS伺服器的主機名即可。
通過上述幾個步驟,就可以設定好NIS Server端和Client端的配置,而後就可以通過ssh client端的地址進行測試,檢視是否成功設定了NIS服務。此時,有一個小問題,因為當客戶端成功通過伺服器端驗證並登陸後,其會在本地查詢使用者家目錄,但此時我們在客戶端並未有相應的使用者家目錄,因此會有一點小問題,解決方案也很簡單,即在伺服器端通過NFS將使用者的家目錄/home匯出,並在客戶端進行掛載即可,這也是NFS和NIS搭配使用的一個原因。
好了,關於NIS,就先分享到這裡,有不對的地方歡迎批評指正!