於 Debian Linux 架設 NIS Server (Slave)

想要了解 NIS 是做什麼? 要查詢相關網頁? 可見: 於 Debian Linux 架設 NIS Server (Master)

此篇紀錄 NIS Server 的 Slave 如何架設.

前置準備

  • NIS Master 的 Domain: master.domain, IP: 192.168.0.1
  • NIS Slave 的 Domain: slave.domain

NIS Server 架設(Slave)

Slave 架設需於 Master、Slave 分別設定.

於 Master 設定
  1. /var/yp/Makefile # 將 NOPUSH 改成 false

    NOPUSH=true => NOPUSH=false

  2. vim /var/yp/ypservers # 於此加入 NIS Slave domain, 注意此 Domain 要於 /etc/hosts 有對應 IP

    master.domain
    slave.domain

於 Slave 設定
  1. sudo su - # 建議下述用 root 做, 此帳號在確定 架設完成 且 帳號都正常前, 都不要登出.
  2. apt-get install portmap nis # 新版 portmap 套件改名為 rpcbind
  3. /etc/init.d/portmap stop
  4. /etc/init.d/nis stop # service ypserv stop
  5. vim /etc/default/nis # 修改下述

    NISSERVER=false => NISSERVER=slave
    NISMASTER=master.domain # 這個如果有寫, 每次啟動 NIS 時, 會自動取 Master 同步.(可不填)

  6. vim /etc/defaultdomain # 填入 domain name (ex: tw.yahoo.com => 填寫 yahoo.com)
  7. vim /etc/yp.conf # 指定 NIS Master server、Slave server

    ypserver master.domain
    ypserver slave.domain

  8. vim /etc/hosts # 指定此 Master server 的 IP

    192.168.0.1 master.domain

  9. /etc/init.d/portmap start # 若無法啟動可直接執行: /sbin/portmap, 記得 portmap 要比 nis 先啟動. (service portmap restart)
  10. /etc/init.d/nis start # service ypserv restart
  11. rpcinfo -p localhost # 可由此看 portmap 有沒有啟動
  12. /usr/lib/yp/ypinit -s master.domain # 從 slave 建立 master db 備份
  13. /etc/init.d/nis stop # service ypserv stop
  14. /etc/init.d/nis start # service ypserv start
定時與 Master Sync (於 Slave 設定)
  1. vim /etc/cron.d/nis

    20 *    * * *    root  /usr/lib/yp/ypxfr_1perhour >/dev/null 2>&1
    40 6    * * *    root  /usr/lib/yp/ypxfr_1perday  >/dev/null 2>&1
    55 6,18 * * *    root  /usr/lib/yp/ypxfr_2perday  >/dev/null 2>&1

  2. chmod 755 /etc/cron.d/nis

於此 NIS Slave 設定就已經完成, 若 NIS Slave 又是 NIS Client 的話, 需要再做下述設定.

NIS Slave + Client 的設定

  1. vim /etc/nsswitch.conf # 加上 nis. 註: 若只設定 compact 的話, 帳號可以登入, 但是 id / group 會用 Client 機器的, 會 造成 帳號 與 uid / gid 對應錯誤.

    passwd: nis compact
    group:  nis compact
    shadow: nis compact
    hosts: files nis dns # 查詢順序, 若要插入 NIS 的順序的話, 加入 nis 即可.

  2. vim /etc/nsswitch.conf # 但是若 id / group 都同步的話, 建議用此設定

    passwd: compact nis
    group: compact nis
    shadow: compact nis
    hosts: files nis dns # 查詢順序, 若要插入 NIS 的順序的話, 加入 nis 即可.

  3. /etc/init.d/nis restart # service ypserv restart
  4. visudo # 增加 wheel group(假設 Master 有加此 Group 的話)

    %wheel  ALL=NOPASSWD: ALL

  5. mkdir /home/user1; mkdir /home/user2; # 建立 /home 目錄, chown 成帳號權限(或可以考慮 NFS)

限制連線安全性設定

  1. vim /etc/ypserv.securenets # 0.0.0.0 是允許任何 NIS Client 存取

    #0.0.0.0     0.0.0.0

  2. 加入自己的 IP Group, ex:

    255.255.255.0   192.168.1.0
    255.255.255.255 123.123.123.123 # 如果是特定某個 IP.

Iptables 設定

  • # 請自行依照自己的網路環境修改
  • /sbin/iptables -A -s 192.168.1.0/24 --dport 111 -j ACCEPT
  • /sbin/iptables -A --dport 111 -j DROP

Slave 常用命令

  • /usr/sbin/yppush: 從 Master 將 DB 送到 Slave 的命令
  • /usr/lib/yp/ypinit: 建立 DB
  • /usr/lib/yp/ypxfr, ypxfr_1perday, ypxfr_1perhour, ypxfr_2perday: 傳送 DB (與 Master 互通)

Master 常見問題

若 Master 有修改特定 DB, 要往 Slave 推的話(與 Slave 同步), 要怎麼做? (下述於 Master)
  • yppush -h slave.domain *
  • yppush -h slave.domain passwd.* # /var/yp/DOMAIN/ 的檔案 password.*
  • 註: 通常 ypxfrd 會 自動sync.
若 Master 有新增 user, 要如何與 Slave sync.(下述於 Master)
  1. 於 Master: adduser
  2. /usr/lib/yp/ypinit -m 或 cd /var/yp; make # 更新 DB
  3. yppush -h slave.domain *

相關文章

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料