[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

nis.debian.howto



鍋谷です。

nis パッケージ付属の nis.debian.howto の日本語訳を久々に更新
しました。

ちなみに、こういったパッケージ付属文書の翻訳版はどうすべきで
しょうか。nis パッケージに入れるのがベストですが、メンテナン
スが大変ですし・・・。

大阪大学理学研究科物理学専攻 博士後期課程3年 大坪研究室
      鍋谷 栄展  <nabetani@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
0. はじめに

この HOWTO では、以下の事項について記述しています。

  1.  NIS クライアントシステムのみの設定方法
  2.  NIS が使用するリソースの指定方法
  3.  NIS マスターサーバーの設定方法
  4.  シャドウパスワードについて
  5.  NIS スレーブサーバーの設定方法


1.  ローカル NIS クライアントの設定方法

  1.1 netbase, netstd, nis パッケージをインストールして下さい。

  1.2 インストール中に NIS ドメイン名の入力を求められます。NIS ドメイン名
      とは、NIS を使用するシステムグループの名前であり、ホスト名ではあり
      ません。NIS ドメイン名は設定ファイル /etc/defaultdomain に保存され
      ますので、後で変更することができます。DNS ホスト名やドメイン名と異
      なり、NIS ドメイン名は大文字小文字を区別します。

  1.3 NIS サーバーが、ネットワーク内で "ローカル" でないのでしたら、微調
      整が必要です。ypbind プロセスは /etc/yp.conf という設定ファイルを参
      照します。このファイルで NIS サーバーを固定することが可能です。
      - 詳しい情報についてはマニュアル ypbind(8) を参照してください。

  1.4 コマンドラインから以下のように入力し、NIS を起動させます。

       /etc/init.d/nis stop
       /etc/init.d/nis start


2. NIS が使用するリソースの指定方法

  2.1 libc6 の設定:

      /etc/nsswitch.conf ファイルを見て、passwd, group, shadow, netgroup
      のエントリが以下のようになっていることを確認してください。

      passwd:   compat
      group:    compat
      shadow:   compat
      netgroup: nis

      現在 libc6 には、netgroup データをファイルから読み取る際にいくつか
      の不具合があります。そのため、netgroup のエントリに "db" や "files"
      を使ってはいけません。netgroup のすべての照合は NIS サーバーを通さ
      なければいけません。

  2.2 ユーザー設定: NIS クライアントの /etc/passwd ファイルに次の行を追加
      して下さい。

      +::::::

      + と - 文字を使って、ユーザーを受け入れる/受け入れない、又はユー
      ザーの変更を行うことができます。ユーザー guest を入れさせたくないの
      でしたら、/etc/passwd に -guest を追加するだけです。ユーザー "linux"
      が違うシェル(例えば ksh)を使いたいときは? 簡単です。単に、
      /etc/passwd に "+linux::::::/bin/ksh" を加えるだけです(引用符は入れ
      ないでください)。変更したくないフィールドは、空のまま残しておく必要
      があります。

      例えば、ログインを許すユーザーを miquels, dth, ed のみとしたいが、そ
      れ以外の全てのユーザーアカウント情報も利用可能にしておきたいといった
      場合、以下のようにします。

      +miquels:::::::
      +ed:::::::
      +dth:::::::
      +:*::::::/etc/NoShell

      この例にあるように、Linux ではパスワードフィールドを無効にすることも
      可能であることに注意して下さい。

  2.3 グループ設定: /etc/group に次の行を追加して下さい。

      +:::

  2.4 ホスト設定:

      通常、NIS によるホストの照合を行ってはいけません。ホストの照合には
      DNS を使用してください。本当に NIS を使用しなければならないならば、
      その方法を以下に示します。

  2.4.1 libc5 システムの設定:

        NIS サーバーの NIS ホストマップを使用するなら、/etc/host.conf 
        ファイルを変更しなければなりません。ただ、"order" の行に "nis" 
        を加えるだけです。host.conf ファイルの例はこのようになります。

        order host,nis
        multi on

  2.4.2 libc6 システムの設定:

        /etc/nsswitch.conf を編集して、hosts エントリを変更します。

        hosts:  nis files

3. マスター NIS サーバーの設定方法

  3.1 nis パッケージをインストールして下さい。RPC デーモン (rpc.portmap)
      を使用するため、netbase と netstd パッケージもインストールする必要
      があります。

  3.2 NIS サーバーとして使用しようとしている *すべての* マシン(つまり、マ
      スターとスレーブ)が /etc/hosts ファイルに他の全てのマシン名を保持し
      ていることを確認して下さい。それぞれの IP アドレスの後には、まず 
      FQDN (Fully Qualified Domain Name:「完全に記述された名前」)を書きま
      す。その後に(ドメイン名を除いた)ホスト名のみを書きます。例えば次の
      ようになります。

         192.168.88.10   troi.cistron.nl troi

      NIS サーバー上の NIS ホストファイル(通常は単に /etc/hosts)は、上記
      のように設定します。これは、NIS が DNS を使用しないためです。

  3.3 /etc/defaultdomain ファイル中に自分の NIS ドメイン名を記述します。
      NIS ドメイン名は、単に NIS を使用するシステム群の名前であり、ホスト
      名ではありません。NIS ドメイン名には自分の DNS ドメイン名を使うこと
      が一般的な慣例となっています。
 
      NIS ドメイン名として DNS ドメイン名を使うのはセキュリティ上危険であ
      るとよく言われます。その理由として、ドメイン名がわかると、リモート
      から NIS サーバーに問い合わせて、すべての NIS マップをダウンロード
      できるからだというのです。しかし、これを防御するために、非公開なド
      メイン名を使用するのは誤りです。単に、ローカルネットワーク外から
      NIS サーバーに全くアクセスできないように /etc/ypserv.securenets と
      /etc/ypserv.conf を正しく設定すればよいのです。

  3.4 /etc/init.d/nis 中で ypserv を master に設定して下さい。
      (NISSERVER=master)

  3.5 ファイル /etc/ypserv.securenets に自分のローカルネットワークアドレ
      スを加えて下さい。これは必須ではありませんが、*強く*推奨します。
      なぜなら、デフォルトの設定では誰にでも NIS サーバーへのアクセスを
      許可していまうためです。

      更にセキュリティを強化したい場合、/etc/ypserv.conf を編集して、ある
      クライアントからはパスワードファイルを見えなくすることもできます。
      (ネットワーク上に Debian 以外のスレーブサーバーがあるならこれを行っ
      てはいけません!)

  3.6 "/usr/lib/yp/ypinit -m" と入力してサーバーの設定を行います。

  3.7 以下のように入力してサーバーを起動させます。

      /etc/init.d/nis stop
      /etc/init.d/nis start

      これで、サーバー(ypserv)とパスワードデーモン(yppasswdd)が起動します。
 
      NIS サーバーへのアクセスを制限したいならば、NIS サーバーも同様にクラ
      イアントとして設定を行う必要があります。このためには、ypbind を起動
      して、パスワードファイル /etc/passwd の途中に + エントリを追加します。
      ライブラリ関数は、はじめの NIS エントリ以後の全ての通常エントリを無
      視し、NIS によって残りの情報を取得します。このようにして NIS アクセ
      スルールが保守されます。以下がその例です。

      root:x:0:0:root:/root:/bin/bash
      daemon:*:1:1:daemon:/usr/sbin:
      bin:*:2:2:bin:/bin:
      sys:*:3:3:sys:/dev:
      sync:*:4:100:sync:/bin:/bin/sync
      games:*:5:100:games:/usr/games:
      man:*:6:100:man:/var/catman:
      lp:*:7:7:lp:/var/spool/lpd:
      mail:*:8:8:mail:/var/spool/mail:
      news:*:9:9:news:/var/spool/news:
      uucp:*:10:50:uucp:/var/spool/uucp:
      nobody:*:65534:65534:noone at all,,,,:/dev/null:
      +miquels::::::
      +:*:::::/etc/NoShell
      [ All normal users AFTER this line! ]
      tester:*:299:10:Just a test account:/tmp:
      miquels:1234567890123:101:10:Miquel van Smoorenburg:/home/miquels:/bin/zsh

     ユーザ tester が存在するが、シェル /etc/NoShell を持つ。
     ユーザ miquels は、通常のアクセスができる。

     別のやり方としては、/var/yp/Makefile ファイルを編集して NIS が別のソー
     スパスワードファイルを使用するようにもできます。大規模なシステムでは、
     NIS パスワードファイルとグループファイルは通常 /var/yp/ypfiles/ に保存
     されます。しかし、これにより "passwd", "chfn", "adduser" といったパス
     ワードファイル管理用の通常のツールが動作しなくなります。そのため、この
     種の作業用にツールを自作する必要があります。
  
     しかし、yppasswdd に -D オプションを使って NIS パスワードファイルと
     シャドーファイルの場所を指定して起動するなら、yppasswd、ypchsh、
     ypchfn は動作します。これらのユーティリティ(と yppasswdd デーモン)
     の Debian バージョンは非標準的な拡張がされています。"root" は、(root
     パスワードを使って)他人のパスワード、finger 情報、shell を変更するこ
     とができます。

     NIS パスワードファイルを手動で編集した場合や、普通の /etc/passwd ファ
     イルを使用している場合に、忘れてはいけないのが、NIS ソースファイルの
     一つでも変更があれば、NIS マップを更新するために /var/yp ディレクトリ
     で "make" を実行する必要があることです。NIS マップを必ず最新にしてお
     くために、毎晩 cron で実行するとよいでしょう。

4. シャドーパスワード

   Linux の libc5 は、シャドー NIS マップをサポートしていません。もし 
   libc5 アプリケーションを利用しているならシャドウ NIS マップを使用して
   はいけません。代わりに以下のような方法を利用することが可能です。

  4.1 シャドーライクなセキュリティ

      パスワードファイルのエントリ中の NIS 照合用パスワードを "つぶす"
      ことでシャドーライクなセキュリティを提供することができます。詳細は、
      "ypserv.conf" の man ページとサンプルファイル /etc/ypserv.conf のコ
      メントを読んで下さい。

  4.2 本物のシャドーサポート

      libc6 は NIS ビルトインで本物のシャドーパスワードをサポートしていま
      すので、NIS は期待通りに動作します。NIS サーバーからシャドーマップ
      を取り出し、それを利用します。シャドーマップは makedbm に "-s" 
      (secure) オプションを付けて構築されていなければなりません。これは、
      最近の /var/yp/Makefile ファイルでは自動的に行われます。

      シャドーパスワードファイルを使用している場合、/etc/passwd と
      /etc/shadow の両方に(2.2 で示したように) "+" エントリを加える必要
      があることに注意して下さい。正しい書式を使用していることを確認して
      下さい。特に passwd ファイルと shadow ファイルは異なるフィールドを
      持っていることに注意してください。

      マスターサーバーの "all:" ターゲットに shadow ファイルを含めるには
      /var/yp/Makefile を編集する必要があります。/var/yp/Makefile 中の例
      をそのまま使用する場合は、"networks # shadow publickey ... " 行の
      "shadow" の前にあるコメント記号を削除し "shadow" の後にコメント記号
      を追加してください。

5. NIS スレーブサーバーの設定方法

  5.1 最初に、NIS クライアントが動作するようにシステムの設定をしてくださ
      い。(1. を参照)

  5.2 上記で説明したステップ 3.1 〜 3.5 と基本的に同じです。但し、ステッ
      プ 3.4 で /etc/init.d/nis ファイルの ypserv をスレーブに設定します。
      (NISSERVER=slave)

  5.3 次にスレーブサーバーがあることをマスター NIS サーバーに知らせます。
      まず、この先すべての更新が自動的にスレーブサーバーに伝播するように
      *マスター上の* NIS Makefile を調整しなければなりません。次のように
      /var/yp/Makefile の中で NOPUSH 変数を "false" に設定します。

      NOPUSH="false"

      (二重否定を嫌ってはいけない ..)マスターサーバーで
      "/usr/lib/yp/ypinit -m" を実行することで、マスターにスレーブの情報
      を伝えます。この時、スレーブサーバー名を入力して下さい。NIS マップ
      が再構築されます。しかし、まだスレーブには転送(プッシュ)されません。

  5.3 コマンドラインから以下のように入力して、スレーブサーバーを起動・初
      期化します

      /etc/init.d/nis stop
      /etc/init.d/nis start
      /usr/lib/yp/ypinit -s <name_of_your_master_nis_server_here>

  5.5 *スレーブマシンの* /etc/cron.d/nis に次のスクリプトを追加し、実行
      権限をつける(chmod 755 /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

      これによって、マスターサーバー上で更新があった時点でスレーブサーバー
      が停止していたためにスレーブサーバーの更新が行われなかった場合でも、
      ほとんどの NIS マップが最新情報に保たれていることが保証されます。
   

          nis.debian.howto  3.4-1  31-Jul-1999  miquels@xxxxxxxxxx
          翻訳者  鍋谷栄展 <nabe@debian.or.jp>  最終更新 01-Aug-2000