日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Nis服务器主从安装配置

發布時間:2024/4/14 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nis服务器主从安装配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Nis服務器作用:

NIS服務的應用結構分為NIS服務器和NIS客戶機兩種角色,NIS服務器集中維護用戶的帳號信息(數據庫)供NIS客戶機進行查詢,用戶登錄任何一臺NIS客戶機都會從NIS服務器進行登錄認證,可實現用戶帳號的集中管理。


二、整個Nis的運作流程:

Nis?Server(Master/Slave)

1.Nis?Master先將帳號密碼相關文件制作成數據庫文件;

2.Nis?Master可以主動告訴Nis?Slave來更新;

3.Nis?Slave亦可以主動前往Nis?Master取得更新;

4.若有帳號密碼變動時,需要重新制作數據庫文件并重新同步Master/Slave。


Nis?Client

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

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

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


三、Nis環境大體組件:

1.Nis?Master?Server:將文件建成數據庫,并提供給Slave?Server來更新;

2.Nis?Slave?Server:以Master?Server的數據庫作為本身的數據庫來源;

3.Nis?Client:向Master/Slave?請求登陸者的驗證數據。


Nis服務器所提供信息如下:

服務器端文件名檔案內容
/etc/passwd提供用戶賬號、UID、GID、家目錄所在、Shell?等等
/etc/group提供群組數據以及?GID?的對應,還有該群組的加入人員
/etc/hosts主機名與?IP?的對應,常用于?private?IP?的主機名對應
/etc/services每一種服務?(daemons)?所對應的端口號?(port?number)
/etc/protocols基礎的?TCP/IP?封包協定,如?TCP,?UDP,?ICMP?等
/etc/rpc每種?RPC?服務器所對應的程序號碼
/var/yp/ypserversNIS?服務器所提供的數據庫


架設環境:

一臺Master?Server?:Centos?5.9

一臺Slave?Server?:Centos?5.9

一臺Client?:Centos?5.9?(所有客戶端配置一樣,所以這里用一臺)

配置步驟:

1.1:所需軟件

  • yp-tools :提供 NIS 相關的查尋指令功能?

  • ypbind :提供 NIS Client 端的設定軟件?

  • ypserv :提供 NIS Server 端的設定軟件?

  • portmap :這是 RPC必須的軟件!

  • 可以用rpm?-qa?|?grep?"^yp"來檢查是否有安裝ypserv;一般來說?yp-tools,?ypbind?都會主動的安裝,此時建議用{yum?install?ypserv}來安裝。

    1.2:Nis?服務器相關配置文件

    配置文件
    /etc/ypserv.conf這是最主要的 ypserv 軟件所提供的配置文件,可以規范 NIS 客戶端是否可登入的權限。?
    /etc/hosts由于 NIS server/client 會用到網絡主機名與 IP 的對應,因此這個主機名對應檔就顯的相當重要!每一部主機名與 IP 都需要記錄才行!?
    /etc/netgroup提供組數據及GID的對應。
    /etc/sysconfig/network可以在這個檔案內指定 NIS 的網域 (nisdomainname)。?
    /var/yp/Makefile這就是與建立數據庫有關的動作配置文件;
    主要服務方面
    /usr/sbin/ypserv就是 NIS 服務器的主要提供服務
    /ust/sbin/rpc.ypxfrd

    用于Master/Slave主機之間的傳輸數據庫的服務。

    /usr/sbin/rpc.yppasswdd提供額外的 NIS 客戶端之用戶密碼修改服務, 透過這個服務, NIS 客戶端可以直接修改在 NIS 服務器上的密碼。相關的使用程序則是 yppasswd 指令;?
    數據庫相關指令
    /usr/lib64/yp/ypinit建立數據庫的指令,非常常用?(在 32 位的系統下,文件名則是 /usr/lib/yp/ypinit );?
    /usr/bin/yppasswd與 NIS 客戶端有關,主要在讓用戶修改服務器上的密碼。
    /usr/sbin/yppushmaster 主機將數據庫直接送至 slave 的指令;
    /usr/lib/yp/ypxfr傳送數據庫的指令,在該目錄下尚有 ypxfr_1perday, ypxfr_1perhour, ypxfr_2perday 等等。?


    實做案例:

    NIS?的域名為:abc

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

    NIS?master?server?的?IP為:192.168.100.254?,主機名為:master.abcnis

    NIS?slave?server的IP為:192.168.100.253,主機名為:slave.abcnis

    NIS?client?的?IP?為?192.168.100.10,主機名為:client01.abcnis?


    Master Nis Server的設定與啟動

    # yum -y install yp-tools* ??#安裝提供NIS相關的查詢命令組件

    # yum -y install ypbind* ???#安裝提供NISClient端的設置組件

    # yum -y install ypserv* ???#安裝提供NISServer端的設置組件

    # yum -y install portmap*?? #安裝RPC必須的組件

    1.先設定Nis的域名(Nis Domain Name)

    #?nisdomainname abc? #使用nisdomainname命令設置NIS域名

    # nisdomainname ???#不添加參數的時候直接輸出當前域名

    abc


    # vim /etc/rc.d/rc.local

    添加:
    /bin/nisdomainname abc? ?#設定開機啟動abc域名
    # vim/etc/sysconfig/network
    添加:
    NISDOMAIN=abc ? ? ? ?? ? ? #開機或者啟動NIS相關服務時NIS域名就自己設定了
    YPSERV_ARGS="-P 1011" #設定NIS每次都啟動在固定的端口

    Tips:其實 nisdomainname 與 ypdomainname 及 domainname 都是一模一樣的指令!你只要記住一個指令名稱即可。
    不過,這個指令現在大概只用來檢查設定是否正確,因為啟動 NIS 服務器時,服務器去捉取的數據就是從 network 這個檔案里面捉取的!所以只要改這個配置文件即可啊!
    另外,由于未來想使用 iptables 直接管理 NIS 的使用,因此我們想要控制 NIS 啟動在固定的端口上。此時, 就使用『YPSERV_ARGS="-p 1011"』這個設定值來固定端口在 1011 上!

    2.主要配置文件 /etc/ypserv.conf
    #vim /etc/ypserv.conf?

    Dns:no?? #DNS服務器是否開啟;NIS 服務器大多使用于內部局域網絡,只要有 /etc/hosts 即可,所以不用 DNS !
    Files:30? #默認會有30個數據庫被讀入內存中
    Slp:no
    Slp_timeout:3600?? #與SLP服務有關
    Xfr_check_port:yes? #與Master/Slave有關,用于同步更新的數據庫比對所使用的端口,放置于 <1024內。

    # 底下則是設定限制客戶端或 slave server 查詢的權限,利用冒號隔成四部分:
    # [主機名/IP] : [NIS域名] : [可用數據庫名稱] : [安全限制]?
    127.0.0.0/255.255.255.0? : *? ???:*???? ??????: none
    192.168.100.0/255.255.255.0? : *?????: *???? ???: none
    *???? ????????????????:*?????? : *??? ?????: deny

    # 還有一個簡單作法,你可以先將上面三行批注,然后加入底下這一行即可:(當然也可以依據自己的需求設定)
    *? ? ? ? ? ? ? ? ? ? ?:?* ? ??? : * ? ? ??: none?

    3.設定主機名與IP的對應(/etc/hosts)
    #vim ?/etc/hosts
    # 原本就有的 localhost 與 127.0.0.1 之類的設定都不要更動,只要新增數據:?
    192.168.100.254 ? ? ? master.abcnis
    192.168.100.253 ? ? ? slave.abcnis
    192.168.100.10 ? ? ? ? client01.abcnis
    Tips:注意!如果你的主機名 (hostname) 與 NIS 的域名不一樣,那么在這個檔案當中還是需要將你的主機名給他設定進來! 否則在后面數據庫的設定時,肯定會發生問題。


    4.建立信任群組(/etc/netgroup)
    touch ?/etc/netgroup
    格式:
    主機,用戶賬戶,域名稱 ? ? ???#每一行都有三個字段,分別以逗號『,』隔開;如果是空的話默認接受所有。
    Tips:現在比較新的Distributions都可以略過這個檔案的檢查了,不過建議了解一下,只需建立即可。(本來是不存在的!

    5.啟動觀察所有相關服務

    為了讓 yppasswdd 啟動在固定的端口,方便防火墻的管理, 因此,建議你可以設定一下 /etc/sysconfig/yppasswdd?
    # vim /etc/sysconfig/yppasswdd?
    YPPASSWDD_ARGS="--port 1012" <==找到這個設定值,修改一下內容成這樣!
    ?

    # /etc/init.d/portmapstart ??????#啟動RPC必須服務

    # /etc/init.d/ypservstart?? ??????#啟動NIS服務器提供的主要服務

    # /etc/init.d/yppasswddstart ?#啟動client修改密碼服務

    # rpcinfo -p localhost ? ? ? ? ? ? #啟動后rpcinfo查看
    ? ?program vers proto ? port
    ? ? 100000 ? ?2 ? tcp ? ?111 ?portmapper
    ? ? 100000 ? ?2 ? udp ? ?111 ?portmapper
    ? ? 100024 ? ?1 ? udp ? ?952 ?status
    ? ? 100024 ? ?1 ? tcp ? ?955 ?status
    ? ? 100009 ? ?1 ? udp ? ?828 ?yppasswdd
    ? ? 100004 ? ?2 ? udp ? 1012 ?ypserv
    ? ? 100004 ? ?1 ? udp ? 1012 ?ypserv
    ? ? 100004 ? ?2 ? tcp ? 1015 ?ypserv
    ? ? 100004 ? ?1 ? tcp ? 1015 ?ypserv

    ?# rpcinfo -u localhost ypserv
    ? ??program 100004 version 1 ready and waiting
    ? ??program 100004 version 2 ready and waiting

    6.處理帳號并建立數據庫
    在完成了上面的所有步驟后,接下來我們得要開始將主機上面的賬號檔案轉成數據庫檔案啦!?
    不過,因為擔心與 NIS 客戶端的賬號有沖突,加上之前我們已經建立過一些賬號了。所以,這里我們的新賬號使用大于1000的UID來建立。
    #useradd -u 1001 nisuser1
    #useradd -u 1002 nisuser2
    #echo password | passwd --stdin nisuser1? ? ? ? ? ?#給nisuser1設定密碼
    #echo password | passwd --stdin nisuser2 ? ? ? ? ? #給nisuser2設定密碼

    接下來,將建立的帳密數據轉成數據庫吧!
    #/usr/lib/yp/ypinit –m ?#建立數據庫

  • At this point,?we have to construct?a?list of the hosts which will run NIS

  • servers.?master.abcnis is in the list of NIS?server?hosts.?Please continue to add

  • the names?for?the other hosts,?one per line.?When you are done with the

  • list,?type?a?<control D>.

  • ????next host to add: master.abcnis ?<==系統根據主機名自動捉取

  • ????next host to add: ??<==這個地方按下 [crtl]-d

  • he current list of NIS servers looks like this:

  • master.abcnis

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

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

  • Building /var/yp/abc/ypservers...

  • Running /var/yp/Makefile...

  • gmake[1]: Entering directory `/var/yp/abc'

  • Updating passwd.byname...

  • ……………………………………………………

  • Updating protocols.byname...

  • Updating mail.aliases...

  • gmake[1]: Leaving directory `/var/yp/abc'


  • master.abcnis has been set up as a NIS master server.


  • Now you can run ypinit -s master.abcnis on all slave server.

  • 要注意出現的信息當中,在告知你可以直接輸入 [ctrl]-d 以結束的那個地方, 你的主機名會主動的被捉出來。
    注意!這個主機名務必需要在 /etc/hosts 可以被找到 IP 的對應, 否則會出現問題。
    另外,萬一在執行 ypinit -m 時,出現如下的錯誤,那肯定就是有些數據沒有被建立了!

  • gmake[1]:?***?No rule to make?target?`/etc/aliases\', needed by `mail.aliases\'.?Stop.

  • gmake[1]:?Leaving directory `/var/yp/abcnis\

  • make: *** [target] Error 2

  • Error running Makefile.

  • Please try it by hand.?

  • [root@www ~]# touch /etc/aliases # 解決方法很簡單吶!缺少什么檔案,就 touch 他就是了!?


  • [root@www ~]# /usr/lib64/yp/ypinit -m # 然后再重新執行一次即可!


  • 7.重啟服務,以告知數據庫已經被更改了。
    # /etc/init.d/ypservrestart
    # /etc/init.d/yppasswddrestart


    Tips:如果你的用戶密碼有變動過,那么你就得要重新制作數據庫,重新啟動 ypserv 及 yppasswdd ?!!!



    8.與Slave Nis Server有關的一些設定

    當我們執行了 ypinit -m 之后,所有的主機上面的賬號相關檔案會被轉成數據庫檔案, 這些數據庫會被放置到 /var/yp/"nisdomainname" 當中,
    我們的 nisdomainname 是 abcnis , 所以被建立的數據庫通通被放置到 /var/yp/abcnis/ 目錄中!您可以自行去檢查看看。

    若變更了使用者帳號密碼參數,針對這個檔案進行數據庫更新:
    # cd /var/yp/
    # make passwd

    開啟Slave服務推送
    #vim/var/yp/Makefile?
    更改NOPUSH=false

    指定Slave服務主機
    #vim /var/yp/ypservers
    master.abcnis
    slave.abcnis ? ? #告訴master要把數據給誰

    啟動 ypxfrd服務
    # /etc/init.d/ypxfrd start? ?#可以讓 slave 服務器主動鏈接上 ypxfrd 來更新數據庫, 可以免除系統管理原自己手動更新

    此外,如果 master 機器想要直接將某些特定的數據庫直接傳給 slave 主機的話, 那么可以使用 yppush 這個指令。
    例如:#yppush -h slave.abcnis ?passwd.*

    Slave Nis Server的設定與啟動

    # yum -y install yp-tools* ??#安裝提供NIS相關的查詢命令組件

    # yum -y install ypbind*??? #安裝提供NISClient端的設置組件

    # yum -y install ypserv*??? #安裝提供NISServer端的設置組件

    # yum -y install portmap* #安裝RPC必須的組件


    1.設定NIS域名
    #nisdomainname abc?? #使用nisdomainname命令設置NIS域名

    # vim /etc/rc.d/rc.local

    添加:/bin/nisdomainname abc? ?#設定開機啟動sunnorth域名
    # vim/etc/sysconfig/network

    添加:NISDOMAIN=abc? ? ? #開機或者啟動NIS相關服務時NIS域名就自己設定了


    2.配置主要配置文件 /etc/ypserv.conf

    #vim /etc/ypserv.conf

    添加:

    127.0.0.0/255.255.255.0??? : *?????: *??? ??????: none

    172.20.48.0/255.255.252.0? : *??????: *??? ?????: none

    *????????????????? ???: *??????: *???? ???????: deny


    3.設定 /etc/hosts 和 /etc/netgroup
    #touch /etc/netgroup
    #vim ?/etc/hosts
    192.168.100.254 ? ? ? master.abcnis
    192.168.100.253 ? ? ? slave.abcnis
    192.168.100.10 ? ? ? ? client01.abcnis

    啟動所有服務及建立數據庫

    # /etc/init.d/portmap start

    # /etc/init.d/ypserv start

    # /usr/lib/yp/ypinit -s ?master.abcnis ? ??#取得來源于數據庫的文件

    雖然使用上頭的指令事實上會出現有錯誤的信息,就是那個『Trying ypxfrd ... not running』的信息, 但事實上數據庫的轉移還是成功的!不相信的話,你可以使用底下這個指令來測試一下數據庫是否正確:
    # ypcat -h localhost passwd.byname?
    如果有正確的輸出賬號/密碼數據輸出的話,就OK了。

    4.設置數據同步時間(master端要啟動ypxfrd)
    # vim /etc/crontab
    # 在最后加入以 ypxfr 傳輸數據的 script 喔!?
    */5 * * * * /usr/lib64/yp/ypxfr –h ?master.abcnis??passwd.byname
    */5 * * * * /usr/lib64/yp/ypxfr –h ?master.abcnis??passwd.byuid
    ?
    更改配置:
    # vim /usr/lib/yp/ypxfr_1perday?
    # vim /usr/lib/yp/ypxfr_1perhour?
    # vim /usr/lib/yp/ypxfr_2perday
    ? $YPBINDIR/ypxfr $map -h master.abcnis ? ?

    Client端的設定

    Client端所需軟件:

    # yum -y install ypbind* ? ? ? ?#?ypbind 是與 ypserv 互相溝通的客戶端聯機軟件

    # yum -y install yp-tools* ? ? ?#yp-tools 是提供查詢的軟件


    客戶端相關文檔:
    /etc/sysconfig/networkNIS 的領域名
    /etc/hosts至少需要有各個 NIS 服務器的 IP 與主機名對應;
    /etc/yp.conf這個則是 ypbind 的主要配置文件,里面主要設定 NIS 服務器所在?
    /etc/sysconfig/authconfig規范賬號登入時的允許認證機制
    /etc/pam.d/system-auth這個最容易忘記!因為賬號通常由 PAM 模塊所管理, 所以你必須要在 PAM 模塊內加入 NIS 的支持才行!?
    /etc/nsswitch.conf這個檔案可以規范賬號密碼與相關信息的查詢順序,默認是先找 /etc/passwd 再找 NIS 數據庫
    客戶端相關指令:
    /usr/bin/yppasswd?更改你在 NIS database (NIS Server 所制作的數據庫) 的密碼?
    /usr/bin/ypchsh ??同上,但是是更改 shell?
    /usr/bin/ypchfn ??同上,但是是更改一些用戶的訊息!?


    Nis Client 的設定與啟動

    啟動 NIS client 的設定就簡單多了!最主要是加入 NIS domain 當中,然后再啟動 ypbind 即可。?
    雖然你可以手動去修改所有的配置文件,然而近期以來的 Linux distributions 賬號處理機制越來越復雜, 所以如果你想要手動修改所有配置文件,恐怕會瘋掉的~
    因此,這里建議你使用系統提供的工具來設定, 至于一些重要配置文件,最后有機會再去參考一下即可。


    設定好NIS Domain 以及 /etc/hosts主機名對應

    # nisdomainname abc

    # vim /etc/rc.d/rc.local

    添加:/bin/nisdomainname abc? ?#設定開機啟動sunnorth域名

    # vim/etc/sysconfig/network

    添加:NISDOMAIN=abc? ? ? #開機或者啟動NIS相關服務時NIS域名就自己設定了

    #vim/etc/hosts? ???#設置主機名稱

    添加:

    192.168.100.254??master.abcnis
    ??192.168.100.253?? ? slave.abcnis

    192.168.100.10 ?? ? ?client01.abcnis


    啟動ypbind來連接至Nis Server
    #setup ? ? #執行setup后以下圖方式處理;

    選擇《Authentication Configuration》后,出現下圖:

    因為我們要用NIS作為登入者身份驗證的機制,因此選擇Use NIS;

    最后再填寫 NIS 網域 (Domain) 以及 NIS 服務器的 IP (Server),按下確定即可。

    ????????????
    如果你真的想要手動處理的話, 那么你必須要手動的修改底下這些檔案:

    • /etc/sysconfig/network (加入 NISDOMAIN 項目)

    • /etc/nsswitch.conf (修改許多主機驗證功能的順序)

    • /etc/sysconfig/authconfig (CentOS 的認證機制)

    • /etc/pam.d/system-auth (許多登入所需要的 PAM 認證過程)

    • /etc/yp.conf (亦即是 ypbind 的配置文件)?


    NIS Client端的檢驗:yptest , ypwhich , ypcat?

    如何確定 NIS client 已經連上 NIS server 呢?基本上,只要剛剛使用 setup 去設定時,最后的步驟并沒有被卡住, 那應該就是順利成功啦!該步驟會自動啟動portmap 與 ypbind 兩個服務。

    1.利用yptest檢驗數據庫測試:
    直接在NIS Client輸入yptest 即可檢查相關的測試數據;

  • [root@clientlinux?~]#?yptest

  • Test 1: domainname

  • Configured domainname is \"abc\"


  • Test 2: ypbind

  • Used NIS?server:?master.abcnis


  • Test 3: yp_match

  • WARNING: No such key in?map?(Map?passwd.byname,?key nobody)

  • ....(中間省略)....


  • Test 6: yp_master

  • master.abcnis


  • ....(中間省略)....


  • Test 8: yp_maplist

  • passwd.byname

  • protocols.byname

  • hosts.byaddr

  • hosts.byname

  • ....(中間省略)....


  • Test 9: yp_all

  • nisuser1 nisuser1:$1$U9Gccb60$K5lDQ.mGBw9x4oNEkM0Lz/:1001:1001::/home/nisuser1:/bin/bash

  • ....(中間省略)....

  • 1 tests failed

  • 從這個測試當中我們可以發現一些錯誤,就是在 Test 3 出現的那個警告信息啦。還好,那只是說沒有該數據庫而已~ 該錯誤是可以忽略的。
    重點在第 9 個步驟 yp_all 必須要有列出你 NIS server 上頭的所有帳戶信息,如果有出現賬號相關數據的話,那么應該就算驗證成功了!


    2.利用ypwhich檢驗數據庫數量:
    單純使用 ypwhich 的時候顯示的是『NIS Client 的 domain』名稱,而當加入 -x 這個參數時, 則是顯示『NIS Client 與 Server 之間溝通的數據庫有哪些?』

    3.利用ypcat讀取數據庫內容:
    #ypcat [-h nisserver] [數據庫名稱] 選項與參數:
    -h nisserver :如果有設定的話,指向某一部特定的 NIS 服務器,如果沒有指定的話,就以 ypbind 之設定為主;
    數據庫名稱:亦即在 /var/yp/vbirdnis/ 內的檔名啊!例如 passwd.byname?
    # 讀出 passwd.byname 的數據庫內容
    [root@clientlinux ~]# ypcat passwd.byname?

    使用者參數修改: yppasswd, ypchfn, ypchsh

    • yppasswd :與 passwd 指令相同功能;

    • ypchfn :與 chfn 相同功能;

    • ypchsh :與 chsh 相同功能。?


    本文轉自 蔡小趙 51CTO博客,原文鏈接:http://blog.51cto.com/zhaopeiyan/1972800

    總結

    以上是生活随笔為你收集整理的Nis服务器主从安装配置的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。