帳號控管: NIS 伺服器

Post on 29-Jan-2016

113 views 1 download

description

14. 帳號控管: NIS 伺服器. - PowerPoint PPT Presentation

Transcript of 帳號控管: NIS 伺服器

第三 篇

區域網路內常見的伺服器架設

14帳號控管: NIS 伺服器

有沒有想過,如果我有十部 Linux 主機,這十部主機僅負責不同的功能,事實上,所有的主機帳號與對應的密碼都相同!那麼我是將帳號與密碼分別設定置在十部電腦上面,還是可以透過一部主機做為帳號管理的功能,然後其他的主機只要當用戶用登入時,就必須要到管理帳號的主機上面確認其帳號與密碼呢?哪一個比較方便而且靈活?當然是找一個帳號管理的主機比較方便的多啦!如果有使用者要修改密碼,不必要去到十部主機修改密碼啦!只要到主要管理主機去修改,其他的主機根本就不需要更動!哈哈!輕鬆又愉快呢!這個功能的達成有很多的方式,在這裡,我們介紹一個很簡單的方式,那就是 Network Information Service 這個 NIS 伺服器的架設啦! !

NIS 主要提供的是使用者的帳號、密碼、家目錄檔名、 UID 等資訊,但 NIS 並沒有提供檔案系統。同時, NIS 同樣使用前一章談到的 RPC 伺服器,因此在本章開始前,你還是得要認識一下第十三章談到的 NFS 與 RPC ,同時你還得要知道基礎學習篇第三版裡面的第十四章帳號管理,同時也得瞭解一下基礎學習篇第二十二章 make/Makefile 的資訊才好。

P.14-2請參閱書籍

NIS 的由來與功能

NIS 的主要功能:管理帳號資訊事實上, Network Information Service 最早應該是稱為 Sun Yellow Pages ( 簡稱 yp) ,也就是 Sun 這家公司出的一個名為 Yellow Pages 的伺服器軟體,請注意, NIS 與 YP 是一模一樣的咚咚喔!

P.14-3請參閱書籍

那麼 NIS 伺服器提供了哪些資訊呢?還記得帳號與密碼放置在哪裡吧? NIS 就是提供那些資料啦!主要有底下這些基本的資料提供給有登入需求的主機喔:

P.14-3請參閱書籍

NIS 的運作流程:透過 RPC 服務 由於 NIS 伺服器主要是提供使用者登入的資訊給用戶端主機來查詢之用,所以, NIS 伺服器所提供的資料當然就需要用到傳輸與讀寫比較快速的 " 資料庫 " 檔案系統,而不是傳統的純文字資料。為了要達到這個目的,所以 NIS 伺服器就必須要將前一小節提到的那些檔案製作成為資料庫檔案,然後使用網路通訊協定讓用戶端主機來查詢囉。至於所使用的通訊協定與前一章的 NFS 相同,都使用遠端程序呼叫 (RPC) 這個玩意兒喔!

P.14-3請參閱書籍

P.14-4請參閱書籍

關於 NIS Server (master/slave) 的運作程序:

1. NIS Master 先將本身的帳號密碼相關檔案製作成為資料庫檔案;

2. NIS Master 可以主動的告知 NIS slave server 來更新;

3. NIS slave 亦可主動的前往 NIS master server 取得更新後的資料庫檔案;

4. 若有帳號密碼的異動時,需要重新製作 database 與重新同步化 master/slave 。

P.14-4請參閱書籍

關於當 NIS Client 有任何登入查詢的需求時:

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

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

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

P.14-4請參閱書籍

NIS Server 端的設定

所需要的軟體 yp-tools :提供 NIS 相關的查尋指令功能 ypbind � :提供 NIS Client 端的設定軟體 ypserv � :提供 NIS Server 端的設定軟體 rpcbind � :就是 RPC 一定需要的資料啊!

P.14-5請參閱書籍

NIS 伺服器相關的設定檔 /etc/ypserv.conf :這是最主要的 ypserv 軟體所提供的設定

檔,可以規範 NIS 用戶端是否可登入的權限。 /etc/hosts :由於 NIS server/client 會用到網路主機名稱與

IP 的對應,因此這個主機名稱對應檔就顯的相當重要!每一部主機名稱與 IP 都需要記錄才行!

/etc/sysconfig/network :可以在這個檔案內指定 NIS 的網域 (nisdomainname) 。

/var/yp/Makefile� :前面不是說帳號資料要轉成資料庫檔嗎?這就是與建立資料庫有關的動作設定檔;

P.14-6請參閱書籍

至於 NIS 伺服器提供的主要服務方面有底下兩個: /usr/sbin/ypserv :就是 NIS 伺服器的主要提供服務; /usr/sbin/rpc.yppasswdd :提供額外的 NIS 用戶端之使用

者密碼修改服務,透過這個服務, NIS 用戶端可以直接修改在 NIS 伺服器上的密碼。相關的使用程式則是 yppasswd 指令;

與帳號密碼的資料庫有關的指令方面有底下幾個: /usr/lib64/yp/ypinit :建立資料庫的指令,非常常用 ( 在 32 位元的系統下,檔名則是 /usr/lib/yp/ypinit 喔! ) ;

/usr/bin/yppasswd� :與 NIS 用戶端有關,主要在讓用戶修改伺服器上的密碼。

P.14-6請參閱書籍

一個實作案例 NIS 的網域名稱為 vbirdnis

整個內部的信任網域為 192.168.100.0/24

NIS master server 的 IP 為 192.168.100.254 ,主機名稱為 www.centos.vbird

NIS client 的 IP 為 192.168.100.10 ,主機名稱為 clientlinux.centos.vbir

P.14-7請參閱書籍

1. 先設定 NIS 的網域名稱 (NIS domain name)

NIS 是會分領域名稱 (domain name) 來分辨不同的帳號密碼資料的,因此你必須要在伺服器與用戶端都指定相同的 NIS 領域名稱才行。設定這個 NIS 領域名稱的動作很簡單,就直接編輯 /etc/sysconfig/network 即可!如下所示:

P.14-7請參閱書籍

2. 主要設定檔 /etc/ypserv.conf

P.14-7~8請參閱書籍

3. 設定主機名稱與 IP 的對應 (/etc/hosts)

在 /etc/ypserv.conf 的設定當中我們談到 NIS 大部分是給區域網路內的主機使用的,所以當然就不需要 DNS 的設定了。不過,由於 NIS 使用到很多的主機名稱,但是網路連線透過的是 IP 啊!所以你一定要設定好 /etc/hosts 裡面的主機名稱與 IP 的對應,否則會無法成功連線 NIS !這個很重要,絕大部分的朋友無法達成 NIS server/client 的連線都是這裡出問題而已。 依據本案例的設定值,你應該這樣做:

P.14-8請參閱書籍

4. 啟動與觀察所有相關的服務

為了也讓 yppasswdd 啟動在固定的埠口,方便防火牆的管理,因此,我們也建議你可以設定一下 /etc/sysconfig/yppasswdd 喔!

P.14-9請參閱書籍

5. 處理帳號並建立資料庫

P.14-10請參閱書籍

如果是如下的錯誤,那可能是因為: � 你的 ypserv 服務沒有順利啟動,請利用 rpcinfo 檢查看看;

� 你的主機名稱與 IP 沒有對應好,請檢查 /etc/hosts

P.14-11請參閱書籍

防火牆設置又來到了防火牆的規劃了!要注意的是,我們的 NIS 與 NFS 都是使用 RPC Server 的,所以囉,除了上述談到的固定埠口之外,你還得要開放 port 111 才行。假設你已經看過前一章,而且是使用鳥哥的 iptables.rule 腳本來處理你的防火牆,那麼你可以修改該檔案的內容,新增幾條規則去:

P.14-12請參閱書籍

NIS client 所需軟體與軟體結構NIS client 端所需要的軟體僅有:

ypbind � yp-tools�

P.14-12請參閱書籍

NIS client 的設定與啟動很簡單,就利用 setup 這個指令即可!

P.14-13~14請參閱書籍

NIS 搭配 NFS 的設定在叢集電腦上的應用 什麼是叢集電腦?

因為個人電腦的 CPU 速度越來越快,核心數目越來越多,因此個人電腦的效能已經不比伺服器等級的大型電腦差了!不過,如果要用來作為計算大型數值模式的應用,即使是最快的個人電腦,還是沒有辦法有效的負荷的。此時你可能就得要考慮一下,是要買超級電腦 (Top 500) 還是要自己組一部 PC 叢集電腦 (PC cluster) 。

超級電腦的結構中,主要是透過內部電路將好多顆 CPU 與記憶體連接在一塊,因為是特殊設計,因此價格非常昂貴。 如果我們可以將較便宜的個人電腦串接在一塊,然後將數值運算的任務分別丟給每一部串接在一塊的個人電腦,那不就很像超級電腦了嗎?沒錯!這就是 PC cluster 最早的想法。

P.14-19請參閱書籍

所以,在 PC cluster 上面的所有電腦就得要有: � 相同的使用者帳號資訊,包括帳號、密碼、家目錄等等一大堆資訊;

� 相同的檔案系統,例如 /home, /var/spool/mail 以及數值程式放置的位置

� 可以搭配的平行化函式庫,常見的有 MPICH, PVM...

P.14-20請參閱書籍

另一個不成材的實例

那我們有沒有辦法來實作一下平行化的叢集架構呢?老實說,很麻煩~不過,至少我們可以先完成前面談到的兩個元件!分別是 NIS 與 NFS 嘛!但是,在我們目前這個網路環境中,使用者帳號實在是太紊亂了~所以,如果想要將伺服器的 /home 掛載到用戶端的 /home ,那麼那個測試用的用戶端可能很多本地用戶都無法登入了~因此,在這個測試練習中,我們打算這樣做:

P.14-20請參閱書籍

� 帳號:建立大於 2000 以上的帳號,帳號名稱為 cluser1, cluser2, cluser3 ( 將 cluster user 縮寫為 cluser ,不是少寫一個 t 喔! ) ,且這些帳號的家目錄預計放置於 /rhome 目錄內,以與 NIS client 本地的用戶分開;

NIS � 伺 服 器 : 領 域 名 稱 為 vbirdcluster , 伺 服 器 是 www.centos.vbird (192.168.100.254) ,用戶端是 clientlinux.centos.vbird (192.168.100.10) ;

NFS � 伺服器:伺服器分享了 /rhome 給 192.168.100.0/24 這個網域,且預計將所有程式放置於 /cluster 目錄中。 此外,假設所有用戶端都是很乾淨的系統,因此不需要壓縮用戶端 root 的身份。

NFS � 用戶端:將來自 server 的檔案系統都掛載到相同目錄名稱底下!

那就分別來實作一下囉! P.14-20請參閱書籍