天天看點

[Linux]NIS: 集中化認證服務

在本篇博文中,我們來看下經常和NFS搭配使用的NIS服務的配置和使用方法。NIS(Network Information Services)允許賬号登入和其它服務諸如:主機名解析,xinetd網絡服務配置等等可以在一台NIS Server伺服器上集中完成,極大友善了企業運維管理人員。本文主要着眼于NIS使用者賬号登入認證的的使用和配置。需要注意的是:NIS的用戶端和伺服器端進行通信的時候并未使用加密算法,因而建議僅僅在獨立網絡或者是有防火牆防護的私有網絡使用NIS。

NIS簡介

NIS服務将許多原本需要在本地提供的檔案移至了伺服器端,而每當用戶端需要使用這些檔案的時候,它可以向伺服器端發起申請進而獲得這些檔案。通常而言,常用的檔案有:/etc/passwd,/etc/shadow,/etc/groups,/etc/hosts,/etc/services,/etc/networks,/etc/rpc,/etc/protocols,/etc/aliases等等。由NIS Server和NIS Client所組成的叢集我們稱之為一個NIS域。而每一個NIS域中必須進行時間同步,通常而言,這可以通過使用NTP服務實作。

事實上,随着科技的發展,在集中化認證服務上,LDAP已經逐漸取代了NIS成為越來越多的企業的選擇,因為LDAP相較NIS而言,具有跨平台、更好的web用戶端支援及桌面應用支援的優勢。想要了解的朋友可以自行百度。

NIS伺服器端配置

NIS伺服器端配置需要的RPM包有:

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,就先分享到這裡,有不對的地方歡迎批評指正!

繼續閱讀