第21章 NIS ドメインおよびネットグループとの統合

21.1. NIS と Identity Management

UNIX 環境では、ネットワーク情報サービス (NIS) が ID と認証を集中管理する一般的な方法です。NIS は Yellow Pages (YP) と呼ばれていたこともあり、以下のような認証と ID の情報を集中的に管理します。
  • ユーザーとパスワード
  • ホスト名および IP アドレス
  • POSIX グループ
現代のネットワークでは、NIS はホスト認証を提供せず、ネットワーク上でデータを暗号化せずに送信するため、安全とはみなされていません。この問題を回避するために、NIS は他のプロトコルと統合してセキュリティーを強化することがよくあります。
Identity Management (IdM) を利用すると、NIS サーバープラグインを使って、IdM に完全に移行できないクライアントに接続することができます。IdM は、netgroup と他の NIS データを IdM ドメインに統合します。また、ユーザーおよびホストの ID を NIS ドメインから IdM に移行することも容易になります。

Identity Management での NIS

NIS オブジェクトは、RFC 2307 に従って、Directory Server のバックエンドに統合、保存されます。IdM は NIS オブジェクトを LDAP ディレクトリーに作成し、クライアントは暗号化された LDAP 接続を使用して、これらをたとえば System Security Services Daemon (SSSD) や nss_ldap から取得します。
IdM は、netgroup、アカウント、グループ、ホスト、および他のデータを管理します。IdM は NIS リスナーを使ってパスワード、グループ、および netgroup を IdM エントリーにマッピングします。

Identity Management での NIS プラグイン

NIS のサポートに IdM は以下のプラグインを使用します。これらは、slapi-nis パッケージで提供されます。
NIS サーバープラグイン
NIS サーバープラグインを使用すると、IdM 統合の LDAP サーバーはクライアント用の NIS サーバーとして機能することができます。この場合、設定に従って Directory Server が動的に NIS マップを生成し、更新します。このプラグインを使用することで、IdM は、NIS プロトコルを NIS サーバーとして使用するクライアントの要求に応えます。
詳細情報は、「Identity Management で NIS を有効にする」 を参照してください。
スキーマ互換性プラグイン
このプラグインを使用すると、Directory Server バックエンドがディレクトリー情報ツリー (DIT) の一部の保存されているエントリーの別のビューを提供できるようになります。これには、属性値の追加、削除、名前変更や、ツリーの複数のエントリーから属性の値を取得することなどが含まれます。
詳細については、/usr/share/doc/slapi-nis-version/sch-getting-started.txt ファイルを参照してください。

21.1.1. Identity Management での NIS Netgroup

NIS エンティティーは netgroup に保存出来ます。UNIX グループと比べると、netgroup は以下をサポートします。
  • 入れ子グループ (他のグループのメンバーとしてのグループ)
  • ホストのグループ化
netgroup では、ホスト、ユーザー、およびドメインが定義されます。これら情報のセットは triple と呼ばれ、これらのフィールドには以下が含まれます。
  • ダッシュ (-)。これは、有効な値がないことを意味します。
  • 値なし。フィールドが空の場合は、ワイルドカードを意味します。
(host.example.com,,nisdomain.example.com)
(-,user,nisdomain.example.com)
クライアントが NIS netgroup をリクエストすると、IdM は LDAP エントリーを以下に変換します。
  • 従来の NIS マップ。NIS プラグインを使用して NIS プロトコルによりクライアントにこれを送信します。
  • LDAP 形式。これは RFC 2307 または RFC 2307bis 準拠になります。

21.1.1.1. NIS Netgroup エントリーの表示

IdM はユーザーとグループを memberUser 属性に、ホストとホストグループを memberHost に保存します。以下の例では、IdM の Directory Server コンポーネントにある netgroup エントリーを表示しています。

例21.1 Directory Server 内の NIS エントリー

dn: ipaUniqueID=d4453480-cc53-11dd-ad8b-0800200c9a66,cn=ng,cn=alt,...
...
cn: netgroup1
memberHost: fqdn=host1.example.com,cn=computers,cn=accounts,...
memberHost: cn=VirtGuests,cn=hostgroups,cn=accounts,...
memberUser: cn=demo,cn=users,cn=accounts,...
memberUser: cn=Engineering,cn=groups,cn=accounts,...
nisDomainName: nisdomain.example.com
IdM では、ipa netgroup-* コマンドを使って netgroup エントリーを管理します。たとえば、netgroup エントリーを表示するには、以下を実行します。

例21.2 Netgroup エントリーの表示

[root@server ~]# ipa netgroup-show netgroup1
Netgroup name: netgroup1
Description: my netgroup
NIS domain name: nisdomain.example.com
Member Host: VirtGuests
Member Host: host1.example.com
Member User: demo
Member User: Engineering