<!-- <SECT1 ID="pamnss"><TITLE>LDAP authentication using pam_ldap and
nss_ldap</TITLE>
-->
<SECT1 ID="pamnss"><TITLE>pam_ldap と nss_ldap を使った LDAP 認証</TITLE>

<!--
<PARA>This section focuses on how to use LDAP as a NIS substitute
for user accounts management. Having a lot of user accounts on several hosts
often causes misalignments in the accounts configuration. LDAP can be used to
build a centralized authentication system thus avoiding data replication and
increasing data consistency.</PARA> 
-->
<PARA>この章は LDAP を NIS の代用品としてユーザカウントの管理に
使う方法に焦点を合わせます。たくさんのユーザアカウントを幾つかの
ホストに分散して持っていると、アカウント設定に不整合が生じることが
よくあります。LDAP を使えば、集中認証システムを構築することによって
データの重複を避けたり一貫性を増したりすることができます。
</PARA>

<!--
<PARA>At the moment the most used method to distribute users account data and
other information through a network is the Network Information Service (NIS).
Like LDAP, NIS is a distributed service that allows to have a central server
where configuration files such as passwd, shadow, groups, services,hosts etc.
are kept. The NIS server is queried by NIS clients to retrieve this information.
</PARA> 
-->
<PARA>現時点では、ユーザのアカウントデータや他の情報を
ネットワーク経由で供給するために最もよく使われている方式は
Network Information Service (NIS) です。LDAP と同様に、NIS も 
中央サーバに passwd, shadow, groups, services, hosts 等々の
設定ファイルを保管して置けるようにするサービスです。
NIS サーバは NIS クライアントから問い合わせを受けて、
こうした情報を提供します。
</PARA>

<!--
<PARA>LDAP can offer the same functionality of NIS, moreover there are several
advantages on using LDAP:</PARA> 
-->
<PARA>LDAP は NIS と同じ機能を提供でき、
さらに幾つか、LDAP の方が優れている点があります。以下のとおりです。
</PARA>

<ITEMIZEDLIST> 

<!--
<LISTITEM> <PARA>Information on the LDAP server can be easily used for several
purposes. As outlined in this HOWTO, the same users entries on the LDAP database
can be used for other applications like phone directories, mail routing, staff
databases etc., thus avoiding data replication and inconsistency.</PARA>
</LISTITEM> 
-->
<LISTITEM><PARA>
LDAP サーバ上の情報は、容易に複数の用途に利用できます。この HOWTO で
概説しているように、LDAP データベース上の同じユーザエントリは、電話帳、
郵便配達、部員名簿などのような他のアプリケーションに使えるので、データ      
の重複や矛盾を避けることができます。
</PARA></LISTITEM>

<!--
<LISTITEM> <PARA>LDAP allows complex access control lists to be applied on the
database. This allows for a fine grain tuning of permissions on the database
entries.</PARA> </LISTITEM> 
-->
<LISTITEM><PARA>LDAP は複雑なアクセスコントロールリストを
データベースに適用できます。これはデータベースの
エントリに対する<!-- on -->パーミッションの適切な微調整を可能にします。
</PARA></LISTITEM>

<!--
<LISTITEM>
<PARA>A secure transmission channel between the LDAP server and the clients
can be implemented through the Secure Socket Layer (SSL).</PARA></LISTITEM>
-->
<LISTITEM><PARA>Secure Socket Layer (SSL) を通すことによって、LDAP
サーバとクライアントの間にセキュアな転送経路を実装できます。
</PARA></LISTITEM>

<!--
<LISTITEM> <PARA>A fault tolerant service can be implemented using slapd
replication  <FOOTNOTE> <PARA>A mechanism that permits LDAP database
replication between servers.</PARA> </FOOTNOTE> and DNS round robin queries
(this is not covered in this document).</PARA> </LISTITEM> 
-->
<LISTITEM><PARA>slapd レプリケーション <FOOTNOTE><PARA>LDAP データベースの
複製をサーバ間で行なう仕組み</PARA></FOOTNOTE> および
DNS round robin query (これは本文書では扱いませんが)
を使って、耐故障化サービスを実装することができます
(訳注：DNS round robin query は耐故障化にならないのではないか、
という報告があって著者に確認したところ、
<!-- FROM ROLEK's MAIL -->
<!--
A broken server will not respond to queries. It depends on the client
whether it will try to connect to another server in the DNS pool if a
connection to the first is refused. i might need to document this better...
-->
「最初の DNS サーバへの接続が拒否されたときに他のサーバへの接続を試行するかは
クライアントに依存する」との回答を得ました)。
</PARA></LISTITEM>

<!--
<LISTITEM> <PARA>Having a single instance of users on the network helps to
maintain users on many hosts from a single management point (i.e. you can
create and delete accounts in the LDAP server and this changes are available
immediately to LDAP clients).</PARA> </LISTITEM> 
-->
<LISTITEM><PARA>ネットワーク上のユーザアカウントを一箇所に集めておくことは、
ひとつの管理場所からたくさんのホストのユーザを保守管理する助けになります
(つまり、LDAP サーバでアカウントを作成および削除すれば、
その変更点が即座に LDAP クライアントから活用できるようになるのです)。
</PARA></LISTITEM>


</ITEMIZEDLIST> 

<!--
<PARA>Herein I'll focus on how an LDAP server can be used for authentication
and authorization on systems providing the Pluggable Authentication Module
(PAM) and the Name Service Switch (NSS) technologies, in particular I'll refer
to the Linux operating system even if this instructions can be applied to other
operating systems.</PARA> 
-->
<PARA>ここで、Pluggable Authentication Module (PAM) と
Name Service Switch (NSS) テクノロジを備えたシステム上で
LDAP サーバがどのように認証と認可のために使えるか
に焦点を合わせることにします。特に Linux オペレーティング
システムに言及するつもりですが、その説明が他のオペレーティング
システムに適用できないというわけではありません。
</PARA>

<!--
<PARA>The environment proposed consists of an LDAP server where users account
data is stored in a convenient format and a set of Un*x clients using this
information to authenticate and authorize users on resources in a standard Un*x
fashion.</PARA>
-->
<PARA>ここで取り上げる環境では１台の LDAP サーバがあり、ここに
ユーザアカウントデータが扱いやすい形式で格納されます。Un*x クライアント
は、この情報を使って標準の Un*x の流儀での認証とリソースに対する
認可を行います。
</PARA>

<!--
<PARA>A secure channel is also required in client/server communications since
critical information such as user account data, should not be sent in clear
over the network, this channel will be provided by the Secure Socket Layer.
</PARA> 
-->
<PARA>クライアント／サーバ通信には、セキュアな経路も要求されます。
というのも、ユーザアカウントのデータのように
クリティカルな情報は、
ネットワーク上に内容が明白なまま送信すべきではないからです。
このセキュアな経路は Secure Socket Layer によって備えられます。
</PARA>

<!--
<PARA>On the client side a caching mechanism, needed for performance issues,
can be provided by the Name Service Caching Daemon.</PARA>
-->
<PARA>クライアント側ではキャッシュ機構を性能上の問題から
必要としますが、これは Name Service Caching Daemon によって
備えることができます。
</PARA>

<!--
<PARA>All (almost) the software used to build this system is Open Source.
</PARA> 
-->
<PARA>このシステムを構築するのに使うソフトウェアの
(ほぼ) すべてがオープンソースです。
</PARA>


<!-- <SECT2><TITLE>The components of the framework</TITLE>
-->
<SECT2><TITLE>構成要素</TITLE>

<!--
<PARA>This section outlines the various components that are used to build the
authentication system. For each component is given a brief description.</PARA>
-->
<PARA>この節では、認証システムを構築するために使われる種々の構成要素を
概説します。各要素を簡単に説明していきます。
</PARA>

<!-- <SECT3><TITLE>Authentication: PAM and pam_ldap.so</TITLE>
-->
<SECT3><TITLE>認証 ― PAM と pam_ldap.so</TITLE>

<!--
<PARA>The Pluggable Authentication Module allows integration of various
authentication technologies such as standard UNIX, RSA, DCE, LDAP etc. into
system services such as login, passwd, rlogin, su, ftp, ssh etc. without
changing any of these services.</PARA>
-->
<PARA>Pluggable Authentication Module は、標準 UNIX, RSA, DCE, LDAP
といった種々の認証技術と login, passwd, rlogin, su, ftp, ssh
等々のシステムサービスとの統合を可能にし、しかもこれらのサービス
を変更する必要がありません。
</PARA>

<!--
<PARA>First implemented by Sun Solaris, PAM is now the standard authentication
framework of many Linux distributions, including RedHat and Debian. It provides
an API through which authentication requests are mapped into technology
specific actions (implemented in the so called pam modules). This mapping is
done by PAM configuration files, in which, for each service are basically given
the authentication mechanisms to use.</PARA> 
-->
<PARA>最初は Sun Solaris に実装されたのですが、今や PAM は
RedHat や Debian を含む多くの Linux ディストリビューションで、
認証の枠組みの標準的なものとなっています。
これによって供給される API を通して、認証の要求がテクノロジ特有の動作
(これは PAM モジュールと呼ばれるライブラリによって実装されています) に
割り当てられます。
この割り当ては PAM 設定ファイルで行なわれます。基本的にこのファイルの中で、
各サービスに用いる認証機構が与えられることになります。
</PARA>

<!--
<PARA>In our case, the pam_ldap module, implemented in the shared library
pam_ldap.so, allows user and group authentication using an LDAP service.
</PARA> 
-->
<PARA>今回の場合は、pam_ldap.so 共有ライブラリで実装される
pam_ldap モジュールによって、ユーザとグループの認証に LDAP サービスを
使えるようにします。
</PARA>

<!--
<PARA>Each service that needs an authentication facility, can be configured
through the PAM configuration files to use different authentication methods.
This means that it is possible, using the PAM configuration files, to write a
custom list of requirements that an user must satisfy to obtain access to a
resource.</PARA> 
-->
<PARA>認証設備<!-- facility -->を必要とするサービスはそれぞれ、
PAM 設定ファイルを通して、異なる認証方式を使うように
設定できます。これはつまり、PAM 設定ファイルを使って、
ユーザがリソースへのアクセスを得るために満たさなくてはならない
要求事項の一覧表を書くことができるという意味です。
</PARA>

</SECT3> 

<!-- <SECT3><TITLE>The Name Service Switch and nss_ldap.so</TITLE>
-->
<SECT3><TITLE>Name Service Switch と nss_ldap.so</TITLE>

<!--
<PARA>Once an user is authenticated, many applications still need access to
user information. This information is traditionally contained in text files
(<FILENAME>/etc/passwd</FILENAME>, <FILENAME>/etc/shadow</FILENAME>, and
<FILENAME>/etc/group</FILENAME>) but can also be provided by other name
services.</PARA>
-->
<PARA>いったんユーザが認証されてからも、多くのアプリケーションは
ユーザ情報へのアクセスを必要とします。この情報は伝統的には
テキストファイル (<FILENAME>/etc/passwd</FILENAME>,
<FILENAME>/etc/shadow</FILENAME>, <FILENAME>/etc/group</FILENAME>)
に入れられていますが、他のネームサービスによって供給することもできます。
</PARA>

<!--
<PARA>As a new name service (such as LDAP) is introduced it can be implemented
either in the C library (as it was for NIS and DNS) or in the application that
wants to use the new nameservice.</PARA> 
-->
<PARA>新しいネームサービス (たとえば LDAP) が導入されるにつれ、
このような情報取得の実装は、
(NIS や DNS のように) C ライブラリ内、または                        
その新しいネームサービスを使いたいアプリケーション内の、 
どちらでも可能となってしまいました。
</PARA>

<!--
<PARA>Anyway, this can be avoided using a common, general purpose, name
service API and by demanding to a set of libraries the task of retrieving this
information performing technology based operations.</PARA> 
-->
<PARA>いずれにしても、こういったことは、共通の汎用的なネームサービス API  
を使って、各テクノロジに基づく動作でサービスから情報を得る       
ライブラリ群にそれを要求することにすれば避けられます。
</PARA>

<!-- "originated form" may be a typo of "originated from"
<PARA>This solution was adopted in the GNU C Library that implements the
<EMPHASIS>Name Service Switch</EMPHASIS>, a method originated form the Sun C
library that permits to obtain information from various name services through a
common API.</PARA>
-->
<PARA>GNU C Library は <EMPHASIS>Name Service Switch</EMPHASIS> を実装して
上記を解決しました。
これは Sun C library に起源を持ち、
共通の API を通して種々のネームサービスから情報を得られるように
する方法です。
<!-- どうして Sun C は library が小文字なのだろう…… -->
</PARA>

<!--
<PARA>NSS uses a common API and a configuration file
(<FILENAME>/etc/nsswitch.conf</FILENAME>) in which are specified the name
service providers for every supported database.</PARA>
-->
<PARA>NSS は共通の API と設定ファイル
(<FILENAME>/etc/nsswitch.conf</FILENAME>) を使用します。
この設定ファイル内で、サポートするデータベース毎に、
そのサービスを提供するライブラリを指定します。
</PARA>

<!--
<PARA>The databases currently supported by NSS  <FOOTNOTE><PARA>It is not a
case that these are the maps provided by NIS.</PARA></FOOTNOTE> are:</PARA> 
-->
<PARA>現在 NSS によってサポートされている <FOOTNOTE><PARA>NIS
で割り当てている場合は異なります。</PARA></FOOTNOTE>
データベースは ―
</PARA>

<ITEMIZEDLIST> 

<!-- <LISTITEM> <PARA>aliases: Mail aliases. </PARA> </LISTITEM> 
-->
<LISTITEM><PARA>aliases ― メールエイリアス。</PARA></LISTITEM>

<!-- <LISTITEM> <PARA>ethers: Ethernet numbers. </PARA> </LISTITEM> 
-->
<LISTITEM><PARA>ethers ― イーサネットの番号のデータ。</PARA></LISTITEM>

<!-- <LISTITEM> <PARA>group: Groups of users. </PARA> </LISTITEM> 
-->
<LISTITEM><PARA>group ― ユーザのグループ。</PARA></LISTITEM>

<!-- <LISTITEM> <PARA>hosts: Host names and numbers. </PARA> </LISTITEM> 
-->
<LISTITEM><PARA>hosts ― ホストの名前と番号のデータ。</PARA></LISTITEM>

<!-- <LISTITEM> <PARA>netgroup: Network wide list of host and users.</PARA>
</LISTITEM> 
-->
<LISTITEM><PARA>netgroup ― ネットワーク全体のホストとユーザの一覧。</PARA>
</LISTITEM>

<!-- <LISTITEM> <PARA>network: Network names and numbers. </PARA> </LISTITEM>
-->
<LISTITEM><PARA>network ― ネットワークに関する名前と番号のデータ。</PARA>
</LISTITEM>

<!-- <LISTITEM> <PARA>protocols: Network protocols. </PARA> </LISTITEM>
-->
<LISTITEM><PARA>protocols ― ネットワークのプロトコル。</PARA></LISTITEM>

<!-- <LISTITEM> <PARA>passwd: User passwords. </PARA> </LISTITEM>
-->
<LISTITEM><PARA>passwd ― ユーザのパスワード。</PARA></LISTITEM>

<!-- <LISTITEM> <PARA>rpc: Remote procedure call names and numbers.</PARA>
</LISTITEM>
-->
<LISTITEM><PARA>rpc ― Remote Procedure Call に関する名前と番号のデータ。
</PARA></LISTITEM>

<!-- <LISTITEM> <PARA>services: Network services. </PARA> </LISTITEM>
-->
<LISTITEM><PARA>services ― ネットワークサービス。</PARA></LISTITEM>

<!-- <LISTITEM> <PARA>shadow: Shadow user passwords. </PARA> </LISTITEM>
-->
<LISTITEM><PARA>shadow ― ユーザのシャドウパスワード。
</PARA></LISTITEM>

</ITEMIZEDLIST> 

<!-- "tough" may be a typo of "though"
<PARA>Using the nss_ldap shared library it is possible to implement the maps
above using LDAP, anyway here I'll focus only on the LDAP implementation of
shadow, passwd and group database tough all the maps above can be implemented.
</PARA> 
-->
<PARA>nss_ldap 共有ライブラリを使えば、LDAP を用いて上記の割り当てを
実装することができます。ほんとうは上記すべての割り当てが実装できるのです
けれども、ここでは shadow, passwd, group データベースの LDAP 実装
にのみ焦点を合わせることにします。
</PARA>

</SECT3>

<!-- <SECT3><TITLE> The Lightweight Directory Access Protocol</TITLE>
-->
<SECT3><TITLE>Lightweight Directory Access Protocol</TITLE>

<!--
<PARA>For our application LDAP is used to provide clients with information
about user accounts and user groups. The standard objectclasses that are used
to represent users and groups are: top, posixAccount, shadowAccount and
posixGroup.</PARA>
-->
<PARA>今回のアプリケーションでは、ユーザアカウントと
ユーザグループに関する情報をクライアントに供給するために LDAP が使用されます。
ユーザとグループを表わすのに用いられる標準的な objectclass は
top, posixAccount, shadowAccount, posixGroup です。
</PARA>

<!--
<PARA>Users entries on the database must belong at least<FOOTNOTE><PARA>An
entry can belong to several objectclasses.</PARA></FOOTNOTE> to the top,
posixAccount and shadowAccount objectclasses. Group entries must belong to the
top and posixGroup objectclasses.</PARA>
-->
<PARA>データベース上のユーザ関連のエントリは少なくとも <FOOTNOTE><PARA>
ひとつのエントリが複数の objectclass に属することができます。
</PARA></FOOTNOTE> top, posixAccount, shadowAccount の objectclass
に属していなくてはなりません。グループエントリは top と posixGroup
の objectclass に属していなくてはなりません。
</PARA>

<!--
<PARA>The implementation of pam_ldap and nss_ldap that we use refers to this
objectclasses, that are described in RFC 2307.</PARA> 
-->
<PARA>今回利用する pam_ldap と nss_ldap の実装がこの objectclass
を参照するからです。この objectclass は RFC 2307 に記述されているものです。
</PARA>

<!--
<NOTE> <PARA>Actually LDAP NSS recognize other objectclasses</PARA> </NOTE>
-->
<NOTE><PARA>実際には、LDAP 版 NSS はここで例示しなかった objectclass
も認識します。
</PARA></NOTE>

</SECT3>

<!-- <SECT3><TITLE> The Name Service Caching Daemon</TITLE>
-->
<SECT3><TITLE>Name Service Caching Daemon</TITLE>

<!--
<PARA>The Name Service Caching Daemon (NSCD) is used to cache name service
lookups and can improve performance with the services provided by the NSS.
</PARA>
-->
<PARA>Name Service Caching Daemon (NSCD) はネームサービスによる
名前解決の結果をキャッシュするために使われ、
NSS によって提供されるサービスの性能を向上できます。
</PARA>

<!--
<PARA>It must be tuned with a large cache for passwd entries in order to have
acceptable performance on the client side.</PARA>
-->
<PARA>クライアント側が許容できる性能を得るために、
passwd エントリのために大きなキャッシュを設定しなくてはなりません。
</PARA>

</SECT3> 

<!-- <SECT3><TITLE> The Secure Socket Layer</TITLE>
-->
<SECT3><TITLE>Secure Socket Layer</TITLE>

<!--
<PARA>For details on SSL refer to <XREF LINKEND="ssl">.</PARA>
-->
<PARA>詳細については <XREF LINKEND="ssl"> を参照してください。</PARA>

<!-- "SLL" must be typo
<PARA>SSL is needed in the communication between the LDAP server and the
clients libraries (pam_ldap.so and nss_ldap.so), since sensible data, such as
password entries, needs to be encrypted between the client and the server. SLL
also permits the client to uniquely identify the server, thus avoiding to
obtain authentication informations from an untrusted source.</PARA>
-->
<PARA>LDAP サーバとクライアントライブラリ (pam_ldap.so や nss_ldap.so)
間の通信には SSL が必要です。重要なデータ、
たとえばパスワードエントリなどは、クライアントとサーバとの間で
暗号化されている必要があるからです。SSL はまた、クライアントがサーバを
特定することを可能にしますから、これによって、不確かな情報源から
認証情報を得るということを避けられます。
</PARA>

<!--
<PARA>Client authentication (the server identifies the client) is not supported
in the current implementation of pam_ldap and nss_ldap modules tough it may be
useful.</PARA> 
-->
<PARA>クライアント認証 (サーバがクライアントを識別する機能)
は現在の pam_ldap および nss_ldap モジュールの実装では
サポートされていません。きっと有用なのでしょうけれども。
</PARA>

</SECT3>

</SECT2> 
 
<!-- <SECT2><TITLE> Building the authentication system</TITLE>
-->
<SECT2><TITLE>認証システムの構築</TITLE>

<!--
<PARA>This section describes the steps needed to build the authentication
 system using the components described in the previous section.</PARA>
-->
<PARA>この章では、前章に記されている構成要素を用いた認証システムを
構築するために必要な手順を説明します。
</PARA>

<figure>
<!--
    <title>PAM Layout</title>
-->
    <title>PAM の配置図</title>
    <mediaobject>
<!--
 Japanese translator commented out these eps's.
 Because JF documents are converted only to HTML or TXT.
 You can safely uncomment these parts.
 No error occurred for me. (Though I don't know why.)
-->
<!--
       <imageobject>
          <imagedata fileref="PAMlayout.eps" format="eps">
       </imageobject>
-->
       <imageobject>
          <imagedata fileref="PAMlayout.gif" format="gif">
       </imageobject>
       <textobject>
<!--      <phrase>The relationships among the pieces of
 the authentication system from the PAM point of view</phrase>
-->
	  <phrase>PAM の視点から見た、認証システム各部の間の関係
	  </phrase>
       </textobject>
    </mediaobject>
</figure>


<figure>
<!--
    <title>NSS Layout</title>
-->
    <title>NSS の配置図</title>
    <mediaobject>
<!--
       <imageobject>
          <imagedata fileref="NSSlayout.eps" format="eps">
       </imageobject>
-->
       <imageobject>
          <imagedata fileref="NSSlayout.gif" format="gif">
       </imageobject>
       <textobject>
<!--      <phrase>The relationships among the pieces of
 the authentication system from the NSS perspective</phrase>
-->
	  <phrase>NSS の観点からの、認証システムの各部間の関係
	  </phrase>
       </textobject>
    </mediaobject>
</figure>


<!--
<PARA>Though this layout may seem quite complex to implement, most of the
components are already in place in a Linux system.</PARA>
-->
<PARA>この配置図は、自分で実装するにはとても複雑に
見えるかもしれません。けれどもほとんどの要素はすでに Linux
のシステム内に入ってしまっています。
</PARA>


<!-- <SECT3><TITLE> Server side</TITLE>
-->
<SECT3><TITLE>サーバ側</TITLE>

<!--
<PARA>On the server side an LDAP server must be installed and configured. The
LDAP server used is OpenLDAP, an open source LDAP toolkit including an LDAP
server (slapd), library and utilities.</PARA>
-->
<PARA>サーバ側においては、LDAP サーバがインストールされ、かつ
設定されていなくてはなりません。ここで使う LDAP サーバは OpenLDAP という
オープンソースの LDAP ツールキットで、LDAP サーバ (slapd) と
ライブラリとユーティリティを含んでいます。
</PARA>

<!--
<PARA>At the moment OpenLDAP comes with two implementation of LDAP: a V2
implementation (OpenLDAP 1.2.x) ad a V3 (OpenLDAP 2.0.x) implementation</PARA>
-->
<PARA>現時点の OpenLDAP には LDAP の実装がふたつあります。
V2 の実装 (OpenLDAP 1.2.x) と V3 の実装 (OpenLDAP 2.0.x) です。
</PARA>

<!--
<PARA>The V3 implementation provides native SSL, the V2 doesn't. Anyway it is
possible to use an SSL wrapper to add SSL capabilities to the server (see <XREF
LINKEND="ssl">).</PARA>
-->
<PARA>V3 の実装は本体で SSL 機能を提供しますが、V2 は提供しません。
とはいえ、V2 のサーバにも SSL ラッパを使えるので SSL 機能を追加できます
(<XREF LINKEND="ssl"> を参照)。
</PARA>


<!-- <SECT4><TITLE>Installing and configuring OpenLDAP</TITLE>
-->
<SECT4><TITLE>OpenLDAP のインストールと設定</TITLE>

<!--
<PARA>You can refer to the LDAP-HOWTO for instruction on installation and
configuration of LDAP</PARA>
-->
<PARA>LDAP のインストールと設定の手順は、
LDAP-HOWTO を参考にできます。
</PARA>

<!--
<PARA>Once slapd is properly configured we need to insert some data for the
initial creation of the database. Therefore an LDIF (LDAP Data interchange
format) file must be created. This is a text file that can be imported in the
LDAP database with the command:</PARA>
-->
<PARA>slapd が適切に設定されたら、
データベースの初期生成のためにデータを入れる必要があります。
そこで、LDIF (LDAP Data Interchange Format) ファイルを
作らなくてはなりません。これはテキストファイルで、
以下のコマンドによって LDAP データベースにインポートされます。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
#ldif2ldbm -i your_file.ldif 
</PROGRAMLISTING></PARA> 
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
#ldif2ldbm -i your_file.ldif 
</PROGRAMLISTING></PARA>

<!--
<NOTE> <PARA>ldif2ldbm is provided with the OpenLDAP 1.2.x  package, if you use
OpenLDAP 2.0.x, you should use the <FILENAME>ldapadd</FILENAME> command
(after the server is started).</PARA> </NOTE>
-->
<NOTE><PARA>ldif2ldbm は OpenLDAP 1.2.x パッケージで
提供されるので、OpenLDAP 2.0.x を使うのであれば
<FILENAME>ldapadd</FILENAME> コマンドを (サーバ起動後に) 使うべきです
(訳注：2.0.x で ldif2ldbm に相当するのは slapadd だという指摘を
稲地様からいただきました。サーバ停止中に <COMMAND>slapadd -l your_file.ldif
</COMMAND>とする方が速くて簡単らしいです)。
</PARA></NOTE>

<!--
<PARA>If you use OpenLDAP 2.0.x (LDAPv3) you can find the standard nis schema
in the file <FILENAME>etc/openldap/schema/nis.schema</FILENAME>, include
it in your
<FILENAME>slapd.conf</FILENAME> with the include directive, to have schema
enforcement.</PARA>
-->
<PARA>OpenLDAP 2.0.x (LDAPv3) を使うのであれば、標準的な NIS スキーマが
<FILENAME>/etc/openldap/schema/nis.schema</FILENAME> というファイルに
入っていますから、それを自分の <FILENAME>slapd.conf</FILENAME> で
include ディレクティブによってスキーマを有効にしてください。
</PARA>

<!--
<PARA>Here is an example of a minimal LDIF file. Each entry is
separated by a blank line.</PARA>
-->
<PARA>以下に LDIF ファイルの最も簡単な例を挙げます。
各エントリは空行で分けられています。
</PARA>


<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
dn:dc=yourorg, dc=com
objectclass: top
objectclass: organizationalUnit

dn:ou=groups, dc=yourorg, dc=com
objectclass: top
objectclass: organizationalUnit
ou: groups

dn:ou=people, dc=yourorg, dc=com
objectclass: top
objectclass: organizationalUnit
ou: people

dn: cn=Giuseppe LoBiondo, ou=people, dc=yourorg, dc=com
cn: Giuseppe Lo Biondo
sn: Lo Biondo
objectclass: top
objectclass: person
objectclass: posixAccount
objectclass: shadowAccount
uid:giuseppe
userpassword:{crypt}$1$ss2ii(0$gbs*do&@=)eksd
uidnumber:104
gidnumber:100
gecos:Giuseppe Lo Biondo
loginShell:/bin/zsh
homeDirectory: /home/giuseppe
shadowLastChange:10877
shadowMin: 0
shadowMax: 999999
shadowWarning: 7
shadowInactive: -1
shadowExpire: -1
shadowFlag: 0

dn: cn=mygroup, ou=groups, dc=yourorg, dc=com
objectclass: top
objectclass: posixGroup
cn: mygroup
gidnumber: 100
memberuid: giuseppe
memberuid: anotheruser
</PROGRAMLISTING></PARA>

<!--
<NOTE> <PARA> Note that lines that are too long are continued on the following
line started by a tab or a space,  this in true too for LDIF format files
</PARA> </NOTE>
-->
<NOTE><PARA>長過ぎる行は次の行をタブかスペース (いずれかをひとつだけ) で始めて
続けられることを覚えておいてください。これは他の LDIF 書式のファイル
にも当てはまります。
</PARA></NOTE>

<!--
<PARA>Here we defined the base DN for the orgazation <EMPHASIS>dc=yourorg,
dc=com</EMPHASIS> under which are contained two sub organizational units: people
and groups. Then is described a user that belongs to the people organizational
unit and a group (which the users belongs to) under the groups organizational
unit.</PARA>
-->
<PARA>ここでは下部組織を二つ持つ組織として、DN を定義しました。
<EMPHASIS>dc=yourorg, dc=com</EMPHASIS>
という組織として定義しましたが、その下に、ふたつの組織サブユニット ―
people と groups ― が含まれています。そしてユーザは、people 組織ユニット
と、groups 組織ユニット下のグループ (のうち、ユーザが所属しているもの。
訳注：giuseppe の場合は mygroup) とに所属するよう記述されています。
</PARA>

<!--
<NOTE> <PARA>Useful tools to convert existing databases into ldif format are
provided by PADL and can be found at the address <ULINK
URL="ftp://ftp.padl.com/pub/MigrationTools.tar.gz">
ftp://ftp.padl.com/pub/MigrationTools.tar.gz</ULINK>.</PARA> </NOTE>
-->
<NOTE><PARA>既存のデータベースを LDIF 書式に変換する
便利なツールが PADL によって提供されています。これは<ULINK
URL="ftp://ftp.padl.com/pub/MigrationTools.tar.gz">
ftp://ftp.padl.com/pub/MigrationTools.tar.gz</ULINK>
というアドレスにあります。
</PARA></NOTE>

<!--
<PARA>The LDIF file must be imported in the server while it is not running
since the ldif2ldbm command builds the database directly, bypassing the LDAP
server. Once the LDIF file is imported into the database, the server can be
started.</PARA> 
-->
<PARA>LDIF ファイルは、サーバが動作していないときに
インポートしなくてはなりません。ldif2ldbm コマンドは LDAP
サーバを通さずに直接データベースを構築するからです。
LDIF ファイルをデータベースにインポートすれば、
サーバを起動できます。
</PARA>

</SECT4>

</SECT3>

<!-- <SECT3><TITLE> Client side</TITLE>
-->
<SECT3><TITLE>クライアント側</TITLE>

<!--
<PARA>On the client side pam_ldap.so and nss_ldap.so are required and they
must be compiled using the Netscape LDAP Library (Mozilla) since it provides
the required LDAPS (LDAP over SSL) API. The library is distributed in a binary
package under Netscape One license and is not open source (it is public domain
anyway).</PARA>
-->
<PARA>クライアント側には pam_ldap.so と nss_ldap.so
が必須で、それらは Netscape LDAP Library (Mozilla)
を使ってコンパイルされていなくてはなりません。
そのライブラリが供給する LDAPS (LDAP over SSL) の API
が要求されるからです。そのライブラリはバイナリパッケージで
Netscape One License のもとに配布されており、オープンソース
ではありません (とはいえパブリックドメインではあります)。
</PARA>

<!--
<PARA>The package can be extracted, for example, in the directory
<FILENAME>/usr/local/ldapsdk</FILENAME>.</PARA>
-->
<PARA>そのパッケージを、たとえば <FILENAME>/usr/local/ldapsdk</FILENAME>
というディレクトリ内に展開してください。
</PARA>

<!--
<PARA>Client libraries must also have access to a certificate database
containing the LDAP (stunnel) server certificate and the CA certificate of the
CA that signed the server certificate (marked as trusted).</PARA>
-->
<PARA>さらに、クライアントライブラリは証明データベースにアクセスでき
なくてはなりません。このデータベースには LDAP (stunnel) サーバ証明書と、
そのサーバ証明書に (「信用済み &lt;trusted&gt;」として) 署名した CA の
CA 証明書とが含まれていなければなりません。
</PARA>

<!--
<PARA>The certificate database must be in Netscape format since the Mozilla
LDAP API used to compile pam_ldap and nss_ldap uses certificate databases in
Netscape format.</PARA>
-->
<PARA>証明データベースは Netscape の書式のものでなければなりません。
pam_ldap と nss_ldap をコンパイルするために使われている Mozilla LDAP API
が Netscape の書式の証明データベースを使うからです。
</PARA>

<!--
<PARA>To deal with such certificate databases it is convenient to use the
certutil utility found in the PKCS#11 package provided by Netscape 
<FOOTNOTE> <PARA>In a tricky way, it is also possible to use the Netscape
Communicator certificate database.</PARA> </FOOTNOTE>.</PARA>
-->
<PARA>そのような証明データベースを扱うには、Netscape
が提供している PKCS&num;11 パッケージ内にある certutil
というユーティリティを使うのが便利です
<FOOTNOTE><PARA>ウラ技として、Netscape Communicator
の証明データベースを使うこともできます。</PARA></FOOTNOTE>。
</PARA>

<!--
<PARA>The main configuration file for LDAP clients is
<FILENAME>/etc/ldap.conf</FILENAME>.</PARA> 
-->
<PARA>LDAP クライアントの主要な設定ファイルは
<FILENAME>/etc/ldap.conf</FILENAME> です。
</PARA> 

<!--
<PARA> Note that if you use nss_ldap, you don't strictly need to use pam_ldap.
</PARA>
-->
<PARA>もし nss_ldap を使うのであれば、厳密には pam_ldap の使用は必要ないのだ
ということを覚えておいてください。
</PARA>

<!--
<PARA> You can use the pam_unix_auth module instead, since nss_ldap maps all
getpw* and getsh* calls into LDAP lookups and pam_unix_auth uses this calls to
authenticate users.</PARA>
-->
<PARA>そのかわりに pam_unix_auth モジュールを使えます。
なぜなら nss_ldap はあらゆる getpw* および getsh* コールを LDAP 参照に割当て、
pam_unix_auth はユーザ認証にこのコールを利用するからです。
(訳注：ここについて、著者の Roel van Meer 様からの注意をいただきました。
<!-- FROM ROLEK's MAIL -->
<!--
PAM is only used for authentication. NSS is used to get users information.
(And a lot of other things.)
PAM will get its information from the PAM library, not the NSS library.
If you want pam to _authenticate_ to an LDAP server, you will need the
pam_ldap module.
i think this comes from a section contributed by someone else. Obviously
it is incorrect. i'll update it in the next release.
-->
彼はその中で、PAM が認証にのみ使われることと、
PAM が NSS ライブラリではなくPAM ライブラリから情報を得ることを指摘し、
「認証」には pam_ldap モジュールが必要だ、とおっしゃっていました。
修正されるはずなので、正確な情報は原文の最新版にあたってください。)
</PARA>


<!-- <SECT4><TITLE>PAM LDAP Installation and Configuration</TITLE>
-->
<SECT4><TITLE>PAM LDAP のインストールと設定</TITLE>

<!--
<PARA>To compile and install pam_ldap, do the following:</PARA>
-->
<PARA>pam_ldap をコンパイルしてインストールするには、
以下のようにしてください。
</PARA>

<!--
 Japanese translator modified following double hyphens.
 Because they cause errors when they are in commented part.
-->

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
$ ./configure &#045;&#045;with-ldap-lib=netscape4 \
              &#045;&#045;with-ldap-dir=/usr/local/ldapsdk
$ make
# make install
</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
$ ./configure --with-ldap-lib=netscape4 --with-ldap-dir=/usr/local/ldapsdk
$ make
# make install
</PROGRAMLISTING></PARA>

<!--
<PARA>The configure switch &#045;&#045;with-ldap-lib tells which LDAP library you are
going to use.</PARA>
-->
<PARA>configure の --with-ldap-lib オプションは、
どの LDAP ライブラリを使おうとしているかを指定します。
</PARA>

<!--
<PARA>The switch &#045;&#045;with-ldap-dir tells where you have installed your Netscape
ldapsdk toolkit.</PARA>
-->
<PARA>--with-ldap-dir オプションは、どこに Netscape ldapsdk
ツールキットをインストールしてあるのかを指定します。
</PARA>

<!--
<PARA>This will install <FILENAME>/lib/security/pam_ldap.so.1</FILENAME> and the
various symlinks.</PARA>
-->
<PARA>これによって <FILENAME>/lib/security/pam_ldap.so.1</FILENAME>
と各種シンボリックリンクがインストールされます。
</PARA>

<!--
<PARA>PAM has to be properly configured in order to access the new
authentication system. PAM configuration files are located in the directory
<FILENAME>/etc/pam.d</FILENAME> and are named after the service for which
authentication is provided.</PARA>
-->
<PARA>PAM が新しい認証システムにアクセスできるように、
適切に設定されなくてはいけません。PAM 設定ファイルは
<FILENAME>/etc/pam.d</FILENAME> というディレクトリに配置され、
認証が供給されるサービス名にしたがって名付けられています。
</PARA>

<!--
<PARA>For example this is the PAM configuration file for the login service (in a
file named <FILENAME>login</FILENAME>).</PARA>
-->
<PARA>たとえば以下は login サービスのための PAM 設定ファイル
(<FILENAME>login</FILENAME> という名前のファイル) です。
</PARA>


<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC"> 
#%PAM-1.0
auth     required   /lib/security/pam_securetty.so
auth     required   /lib/security/pam_nologin.so
auth     sufficient /lib/security/pam_ldap.so
auth     required   /lib/security/pam_unix_auth.so use_first_pass
account  sufficient /lib/security/pam_ldap.so
account  required   /lib/security/pam_unix_acct.so
password required   /lib/security/pam_cracklib.so
password sufficient /lib/security/pam_ldap.so
password required   /lib/security/pam_unix_passwd.so use_first_pass md5 shadow
session  required   /lib/security/pam_unix_session.so
</PROGRAMLISTING>
</PARA>

<!--
<PARA>Standard PAM configuration files for use with PAM can be found in the
pam_ldap source distribution, in the directory
<FILENAME>pam_ldap-version/pam.d</FILENAME>.</PARA>
-->
<PARA>PAM で使う標準的な PAM 設定ファイルは pam_ldap のソースの
<FILENAME>pam_ldap-(バージョン)/pam.d</FILENAME> というディレクトリ
の中にあります。
</PARA>

<!--  ____/This must be "These"
<PARA>This files can be copied in the <FILENAME>/etc/pam.d</FILENAME> directory.
Caution must be given when performing this operation, since if something goes
wrong you probably will not be able to login again. It is suggested to make a
backup copy of <FILENAME>/etc/pam.d</FILENAME> before installing new files there
and to leave an open privileged shell.</PARA> 
-->
<PARA>この標準的なファイルは <FILENAME>/etc/pam.d</FILENAME> ディレクトリの中に
コピーできます。もし何かおかしなことをしてしまうと、おそらく再びログイン
できなくなってしまうので、この操作をする時は注意深く行ってください。
新しいファイルをインストールする前に
<FILENAME>/etc/pam.d</FILENAME> のバックアップをとっておき、
それを復帰させる権限のあるシェルを開いたままにしておくことをお勧めします。
</PARA>

<!--
<NOTE><PARA>In the example <FILENAME>pam.d</FILENAME> directory,
a <FILENAME>sshd</FILENAME> file is not present, so unless you
create one, you will be unable to login via ssh, if it uses pam (OpenSSH does
use PAM).</PARA></NOTE>
-->
<NOTE><PARA>そのサンプルの <FILENAME>pam.d</FILENAME> ディレクトリには
<FILENAME>sshd</FILENAME> というファイルがありません。そのため、
それを作成しなければ、pam を使う ssh を介してログイン
できません (OpenSSH は PAM を使用します)。
</PARA></NOTE>

</SECT4>

<!-- <SECT4><TITLE>NSS LDAP installation and configuration</TITLE>
-->
<SECT4><TITLE>NSS LDAP のインストールと設定</TITLE>

<!--
<PARA>After you've unpacked the sources, check the makefile. For most
configurations, it doesn't need to be edited. Anyway, if you want to use SSL
you must link against an SSL aware LDAP library, such as the Netscape one.
</PARA>
-->
<PARA>ソースを展開してから、Makefile
を確認してください。ほとんどの設定内容に対しては編集の必要はありません。
とはいえ、SSL を使いたいのであれば SSL 対応の LDAP
ライブラリ ― たとえば Netscape のもの ― をリンクしなくてはなりません。
</PARA>

<!--
<PARA>Assuming that the ldap sdk is in <FILENAME>/usr/local/ldapsdk</FILENAME>
you have to modify the Makefile to enable SSL. Look for NSFLAGS in
<FILENAME>Makefile.linux.mozilla</FILENAME> and uncomment -DSSL.</PARA>
-->
<PARA>LDAP の SDK が <FILENAME>/usr/local/ldapsdk</FILENAME>
内にあるとすれば、SSL を有効にするには、Makefile を修正しなければなりません。
その修正内容は、<FILENAME>Makefile.linux.mozilla</FILENAME>
内で NSFLAGS を探して、コメントになっている -DSSL を有効にすることです。
</PARA>

<!--
<PARA>Also check the LIBS definition to see if the ldapssl library specified
in the file is the same that you have installed (ldap_nss.so compiles with both
libldapssl40 and libldapssl30).</PARA>
-->
<PARA>さらに LIBS の定義を見て、そのファイル内で指定されている
ldapssl ライブラリが、自分のインストールしてあるものと同じかどうか
を確認してください (ldap_nss.so は libldapssl40 と libldapssl30
の両方にリンクして<!-- with -->コンパイルされます)。
</PARA>

<!--
<PARA>Then you can install the library:</PARA>
-->
<PARA>その後、ライブラリをインストールできます ―
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
$ make -f Makefile.linux.mozilla
# make -f Makefile.linux.mozilla install	
#ldconfig	 
</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
$ make -f Makefile.linux.mozilla
# make -f Makefile.linux.mozilla install	
#ldconfig	 
</PROGRAMLISTING></PARA>


<!--
<PARA>this installs <FILENAME>/lib/libnss_ldap.so</FILENAME>,
which is the nss_ldap library, and a set of example configuration files,
<FILENAME>/etc/nsswitch.ldap</FILENAME> and <FILENAME
MOREINFO="NONE">/etc/ldap.conf</FILENAME>, in case they do not exist
already.</PARA>
-->
<PARA>これによって <FILENAME>/lib/libnss_ldap.so</FILENAME>
がインストールされます。これが nss_ldap ライブラリです。
そして <FILENAME>/etc/nsswitch.ldap</FILENAME>
と <FILENAME MOREINFO="NONE">/etc/ldap.conf</FILENAME>
とがまだ存在してない場合には、サンプルの設定ファイルとしてインストールされます。
</PARA>

<!--
<PARA>Once you have installed it you must edit the NSS configuration file
<FILENAME>/etc/nsswitch.conf</FILENAME>. Tough LDAP can be used for all the
services we use it only for passwd, group and shadow therefore we should have
something like:</PARA>
-->
<PARA>インストールしたら、その NSS 設定ファイル
<FILENAME>/etc/nsswitch.conf</FILENAME> を編集しなくてはなりません。
LDAP はあらゆるサービスに用いることができるのですが、今回は passwd,
group, shadow にのみ使用します。この場合、設定ファイルの冒頭に
以下のようなことを書いておくべきです。<!-- 次の段落と結合 -->
</PARA>

<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC"> 	
passwd: files ldap
group:  files ldap
shadow: files ldap
</PROGRAMLISTING></PARA>

<!--
<PARA>in the first lines of the configuration file. With this configuration,
entries are first looked in the system files and, if no value is returned, the
LDAP server is queried.</PARA> 
-->
<PARA>この設定だとエントリは、まずシステムファイル内で探されて、
値が返ってこなかったなら LDAP サーバに問い合わせられます。
</PARA>

<!--
<NOTE><PARA>Beware when using ldap as backup for your dns lookups. If dns cannot
resolve the hostname, we're in infinite recursion, because libldap calls
gethostbyname(). [ from the nsswitch.ldap]</PARA></NOTE>
-->
<NOTE><PARA>LDAP を DNS 問い合わせのバックエンド
として使うときには注意してください。DNS がそのサーバのホスト名を
解決できないと、無限ループに入ってしまうのです。
なぜなら libldap 自体が gethostbyname() をコールするからです。
(nsswitch.ldap 内の記述より)
</PARA></NOTE>

</SECT4> 

<!-- <SECT4><TITLE>NSCD configuration</TITLE>
-->
<SECT4><TITLE>NSCD の設定</TITLE>

<!--
<PARA>NSCD is already available in many Linux distributions, anyway it can be
found within the GNU C library package.</PARA>
-->
<PARA>NSCD は多くの Linux ディストリビューションには
最初から入っています。入っていなくても GNU C ライブラリの
パッケージ内にあります。
</PARA>

<!--
<PARA>The NSCD configuration file is <FILENAME>/etc/nscd.conf</FILENAME>. Each
line specifies either an attribute and a value, or an attribute, cachename, and a
value. Fields are separated either by SPACE or TAB characters. cachename can be
hosts, passwd, or groups (in our case we won't cache hosts).</PARA>
-->
<PARA>NSCD の設定ファイルは <FILENAME>/etc/nscd.conf</FILENAME>
です。各行は属性と値、または属性とキャッシュ名と値のいずれかを指定します。
それぞれのフィールドはスペースかタブで区切られます。キャッシュ名は
hosts, passwd, groups のいずれかにすることができます (今回は
hosts をキャッシュしません)。
</PARA>

<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
enable-cache           passwd  yes	
positive-time-to-live  passwd  600
negative-time-to-live  passwd  20	
suggested-size         passwd  211
keep-hot-count         passwd  20	
check-files            passwd  yes		
enable-cache           group  yes	
positive-time-to-live  group  3600	
negative-time-to-live  group  60	
suggested-size         group  211	
keep-hot-count         group  20	
check-files            group  yes	 
</PROGRAMLISTING></PARA>

<!--
<PARA>Keep in mind that the nscd program caches passwd entries obtained from
LDAP.</PARA>
-->
<PARA>LDAP から得た passwd エントリを NSCD プログラムが
キャッシュしてしまうということを心に銘記しておいてください。
</PARA>

<!--
<PARA>This means that when an user is modified on the ldap server, the nscd
cache remains valid. This is avoided when using flat unix files by the
check-files directive that invalidates the cache when the corresponding file is
modified. Such a mechanism should be generalized, at the moment anyway does not
apply to LDAP. A way to avoid possible misalignments between the LDAP server
and the cache is to invalidate the cache manually when updating passwd entries
with the command:</PARA>
-->
<PARA>これはつまり、LDAP サーバ上のユーザ情報に手を加えたときにも
NSCD キャッシュは有効なままだということです。この問題は、
check-files ディレクティブによって通常の UNIX ファイルを利用すれば避けられます。
これは対応するファイルが変更されたときにはキャッシュを無効にします。
このような仕組みは一般的なはずなのに、現時点で LDAP
には適用されません。LDAP サーバとキャッシュの間の不整合を
避ける方法は、passwd エントリを更新したときに
次のコマンドを打って自分でキャッシュを無効にすることです。
<!-- possible は日本語にせず無視しました -->
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
#nscd &#045;&#045;invalidate=TABLE	
</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
#nscd --invalidate=TABLE	
</PROGRAMLISTING></PARA>

<!--
<PARA>Where TABLE can be passwd, groups or hosts.</PARA>
-->
<PARA>上記 TABLE のところは passwd, groups, hosts のいずれかになります。
</PARA>

<!--
<PARA>To avoid confusion when testing, do not use nscd.</PARA>
-->
<PARA>試用時には、混乱を避けるため NSCD を使わないようにしてください。
</PARA>

<!--
<PARA>Moreover using nss and nscd will produce a lot of open filedescriptors,
so is easy to run out of available filedescriptors on the system (this can hang
your system).</PARA>
-->
<PARA>さらに言えば、NSS と NSCD の使用は大量の
ファイルデスクリプタを開いてしまいます。
そのため、システム上の使えるファイルデスクリプタが
簡単に不足してしまいます (これはシステムをハングさせかねません)。
</PARA>

<!--
<PARA>You can increase the maximum number of filedescriptors in a Linux box
(Kernel 2.2.x) with something like:</PARA>
-->
<PARA>Linux マシン (カーネル 2.2.x) では、
次のようにしてファイルデスクリプタの上限を増やすことができます。
</PARA>

<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
#echo 16384 > /proc/sys/fs/file-max
</PROGRAMLISTING></PARA>

<!--
<PARA>The maximum number of filedescriptors suggested for a system depends
anyway from the configuration of your system.</PARA> 
-->
<PARA>推奨されるファイルデスクリプタ上限値は、とにかく
そのシステムの構成に依存します。
</PARA>

</SECT4>


<!-- <SECT4><TITLE>LDAP client configuration file</TITLE>
-->
<SECT4><TITLE>LDAP クライアントの設定ファイル</TITLE>

<!--
<PARA>The LDAP client configuration file <FILENAME>/etc/ldap.conf</FILENAME> is
read by pam_ldap and nss_ldap as well as other LDAP clients. The following is an
example of how it should look like in our environment.</PARA>
-->
<PARA>LDAP クライアントの設定ファイルである <FILENAME>/etc/ldap.conf</FILENAME>
は、他の LDAP クライアントからと同様、pam_ldap や nss_ldap からも読まれます。
以下は、そのファイルが今回の環境ではどのようになっているべきかの一例です。
</PARA>

<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
#
<!-- Japanese translator modified "$" and more. Rolek permitted me. Thanks. -->
<!--
# &dollar;Id: section-pamnss.sgml,v 1.6 2000/10/26 16:36:59 roel Exp $
-->
&num; @(&num;)&dollar;Id: ldap.conf,v 2.18 2001/03/28 23:35:00 lukeh Exp &dollar;
<!--
# This is the configuration file for the LDAP nameservice
# switch library and the LDAP PAM module.
# PADL Software
# http://www.padl.com
-->
# これは LDAP NSS ライブラリと LDAP PAM モジュールのための設定ファイルです。
# PADL Software
# http://www.padl.com
#
<!--
# If the host and base aren't here, then the DNS RR
# _ldap._tcp.[defaultdomain]. will be resolved. [defaultdomain]
# will be mapped to a distinguished name and the target host
# will be used as the server.
-->
# もしこのファイルに host も base もなければ、そのときは
# _ldap._tcp.[defaultdomain]. という DNS RR が解決されます。
# [defaultdomain] は識別名に割り当てられ、
# 目標のホストはサーバとして使われることになります。
#
<!--
# Your LDAP server. Must be resolvable without using LDAP.
host 192.111.111.111
-->
# 自分の LDAP サーバです。LDAP を使わずに解決できなくてはなりません。
host 192.111.111.111
#
<!--
# The distinguished name of the search base.
base dc=yourorg, dc=com
-->
# 検索ベースの識別名です。
base dc=yourorg, dc=com
#
<!--
# The LDAP version to use (defaults to 2,
# use 3 if you are using OpenLDAP 2.0.x or Netscape Directory Server)
# ldap_version 3
-->
# 使用する LDAP のバージョンです。(デフォルトは 2 ですが、
# OpenLDAP 2.0.x や Netscape Directory Server を使うなら 3 にしてください)
# ldap_version 3
#
<!--
# The distinguished name to bind to the server with.
# Optional: default is to bind anonymously.
# binddn cn=manager,dc=padl,dc=com
-->
# サーバにバインドする識別名です。
# 指定は任意です ― 指定しなければ匿名バインドです。
# binddn cn=manager,dc=padl,dc=com
#
<!--
# The credentials to bind with. 
# Optional: default is no credential.
#bindpw secret
-->
# バインドする資格証明です。
# 指定は任意です ― 指定しなければ資格証明が不要です。
#bindpw secret
#
<!--
# The port.
# Optional: default is 389. 636 is for ldaps
port 636
-->
# ポートです。
# 指定は任意です ― 指定しなければ 389 です。636 は LDAPS 用です。
port 636
#
<!--
# The search scope.
#scope sub
#scope one
#scope base
-->
# 検索スコープです。
#scope sub
#scope one
#scope base
#
<!--
# The following options are specific to nss_ldap.
-->
# 以下のオプションは nss_ldap 特有のものです。
#
<!--
# The hashing algorithm your libc uses. 
# Optional: default is des
#crypt md5
#crypt sha
#crypt des
-->
# 自分の libc が使うハッシュのアルゴリズムです。
# 指定は任意です ― 指定しなければ des です。
#crypt md5
#crypt sha
#crypt des
#
<!--
# The following options are specific to pam_ldap.
-->
# 以下のオプションは pam_ldap 特有のものです。
#
<!--
# Filter to AND with uid=%s
pam_filter objectclass=posixAccount
-->
# uid=%s に AND するフィルタです。
pam_filter objectclass=posixAccount
#
<!--
# The user ID attribute (defaults to uid)
pam_login_attribute uid
-->
# ユーザ ID の属性です。(デフォルトは uid)
pam_login_attribute uid
#
<!--
# Search the root DSE for the password policy (works
# with Netscape Directory Server)
#pam_lookup_policy yes
-->
# パスワードポリシーをルート DSE で検索します。
# (Netscape Directory Server に有効です)
# (訳注：ルート DSE については Root Directory Server Specific Entry
# のことだという報告をいただきました。訳者は知りませんでした。)
#pam_lookup_policy yes
#
<!--
# Group to enforce membership of
#
#pam_groupdn cn=PAM,ou=Groups,dc=padl,dc=com
-->
# このグループのメンバであることを強要します。<!-- membership は権限？ -->
#pam_groupdn cn=PAM,ou=Groups,dc=padl,dc=com
#
<!--
# Group member attribute
pam_member_attribute memberuid
# Template login attribute, default template user
# (can be overridden by value of former attribute
# in user's entry)
#pam_login_attribute userPrincipalName
#pam_template_login_attribute uid
#pam_template_login nobody
-->
# グループメンバの属性です。
pam_member_attribute memberuid
# テンプレートログインの属性と、デフォルトのテンプレートユーザです。
# (これ以前のユーザのエントリ内の属性で上書きできます)
#pam_login_attribute userPrincipalName
#pam_template_login_attribute uid
#pam_template_login nobody
#
<!--
# Hash password locally; required for University of
# Michigan LDAP server, and works with Netscape
# Directory Server if you're using the UNIX-Crypt
# hash mechanism and not using the NT Synchronization
# service.
pam_crypt local
-->
# ローカルにパスワードをハッシュします。
# University of Michigan 版 LDAP サーバに必要とされます。
# また、もし UNIX-Crypt のハッシュ機構を使用しており、
# かつ NT Synchronization (同期) サービスを使用していないならば
# Netscape Directory Server で有効です。
pam_crypt local
#
<!--
# SSL Configuration
ssl yes
sslpath /usr/local/ssl/certs
#
-->
# SSL の設定
ssl yes
sslpath /usr/local/ssl/certs
</PROGRAMLISTING></PARA>

<!--
<NOTE><PARA>To avoid problems with the various applications that may read this
file it is suggested not to use tabs between parameters and values, only a
single space.</PARA></NOTE>
-->
<NOTE><PARA>このファイルを読むことのある種々のアプリケーション
との問題を避けるために、パラメータと値との間に
タブを使わず、スペースひとつだけを使うようお勧めします。
</PARA></NOTE>

<!--
<PARA>The pam_groupdn directive is useful when an LDAP server provides
authentication information to a pool of clients, but the user should be
authorized only on a set of clients. This directive can provide the same
functionality of NIS netgroups.</PARA>
-->
<PARA>pam_groupdn ディレクティブは LDAP サーバが
一連<!-- a pool -->のクライアントの認証情報を管理している場合に、
ユーザが認可されるのを一部のクライアントだけに限定したい
ときに便利です。このディレクティブは NIS の netgroups と同じ機能を
提供することができるのです。
</PARA>

<!--
<PARA>The SSL configuration directives are not documented in the package, but
they tell to enable SSL and where the file containing the LDAP server
certificate and the CA certificate is stored.</PARA>
-->
<PARA>SSL 設定に関するディレクティブはパッケージ内で文書化
されていませんが、SSL を有効にし、LDAP
サーバ証明書および CA 証明書を含むファイルが
どこに格納されているか指定します。
</PARA>

<!--
<PARA>A Netscape certificate database named cert7.db is searched in sslpath.
This file must contain the server certificate and the CA certificate (unless
the server certificate is self signed). There are two ways to generate this
file: using the Netscape PKCS#11 tools or using the Netscape browser.
</PARA>
-->
<PARA>cert7.db という名前の Netscape 証明書データベースが
sslpath 内で検索されます。このファイルにはサーバ証明書と
(そのサーバ証明書が自己署名でないかぎり)
CA 証明書とを含んでいなければなりません。このファイルを生成するには
ふたつの方法 ― Netscape PKCS&num;11 を使うか Netscape のブラウザを使うか
― があります。
</PARA>

<!--
<PARA>With the Netscape browser, after you have started slapd and stunnel on the
server you can use Netscape Navigator to connect to the URL
https://your.ldap.server:636/, you will be prompted to insert the server
certificate in your database. Also the CA certificate (provided by your CA) must
be loaded in the database (unless you are using a self signed certificate). At
this point you can copy the <FILENAME>$HOME/.netscape/cert7.db</FILENAME> in
<FILENAME>sslpath</FILENAME>. It is preferred that you use a scratch account with
a default <FILENAME>cert7.db</FILENAME> file since other server certificates,
that may be present in your personal certificate database, will be considered by
your LDAP client as trusted authentication servers. Once the browser has imported
the server certificate it can be used to debug SSL since it will behave like the
pam and nss libraries. </PARA> 
-->
<PARA>Netscape のブラウザを使う場合は、サーバ上で slapd と stunnel
を起動したあとで Netscape Navigator を https://your.ldap.server:636/
という URL に接続すると、自分のデータベースにそのサーバ証明書を入力するよう
促されます。(自己署名の証明書を使わないのであれば) 同様に
(CA から供給される) CA 証明書もデータベースにロード
しなくてはなりません。ここまで来たら、<FILENAME>$HOME/.netscape/cert7.db
</FILENAME>を <FILENAME>sslpath</FILENAME> にコピーできます。
上記の作業の際、デフォルトの <FILENAME>cert7.db</FILENAME> を持つ
初期状態のアカウントで行なう方が好ましいです。なぜなら
自分の証明書データベースには他のサーバ証明書があるかもしれず、あると
LDAP クライアントがそれを、信用済みの認証サーバなのだと
みなしてしまうからです。いったんサーバ証明書がインポートされた
ブラウザは SSL をデバッグするために使えます。
そのブラウザは pam や nss のライブラリのようにふるまうからです。
</PARA>

</SECT4> 

</SECT3> 

</SECT2> 

<!-- <SECT2><TITLE>Starting up</TITLE>
-->
<SECT2><TITLE>起動</TITLE>

<!--
<PARA>On the server side you have to start slapd (the LDAP daemon process)
with a command like:</PARA>
-->
<PARA>サーバ側で、次のようなコマンドによって、
slapd (LDAP デーモンプロセス) を起動しなくてはいけません。
</PARA>

<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
# slapd	 
</PROGRAMLISTING></PARA>

<!--
<PARA>If you use stunnel, it has to be started on the LDAPS port 636:</PARA>
-->
<PARA>もし stunnel を使うなら、LDAPS の 636 番のポート上で
起動しなくてはいけません。次のようにしてください。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">  
# /usr/local/sbin/stunnel  -r ldap  -d 636 \
 -p /usr/local/ssl/certs/stunnel.pem	 
</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">  
# /usr/local/sbin/stunnel -r ldap -d 636 -p /usr/local/ssl/certs/stunnel.pem
</PROGRAMLISTING></PARA>

<!--
<PARA>If you use OpenLDAP 2.0.x, compiled with TLS (OpenSSL), you can start the
server using the command</PARA>
-->
<PARA>TLS (OpenSSL) 付きでコンパイルされた OpenLDAP 2.0.x
を使うのであれば、次のコマンドでサーバを起動できます。
</PARA>


<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">  
# slapd -h "ldap:/// ldaps:///"
</PROGRAMLISTING></PARA>


<!--
<PARA>On the client nscd can be started with the a startup script, usually
found in many Linux distributions:</PARA>
-->
<PARA>クライアント上で、NSCD を多くのディストリビューションに
ふつう含まれている起動スクリプトから起動できます。
</PARA>


<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC"> 
# /etc/rc.d/init.d/nscd start
</PROGRAMLISTING></PARA>

<!--
<PARA>If PAM and NSS are correctly configured this should be enough.</PARA>
-->
<PARA>PAM と NSS が適切に設定されていれば、これで十分のはずです。
</PARA>


</SECT2>


<!-- <SECT2><TITLE>Accounts maintenance</TITLE>
-->
<SECT2><TITLE>アカウントの保守管理</TITLE>

<!--
<PARA>At this point account creation and maintenance should be done using LDAP
client tools.</PARA>
-->
<PARA>ここまで来た時点で、LDAP クライアントツールを使って
アカウント作成と保守管理ができるはずです。
</PARA>

<!--
<PARA>Unfortunately these general purpose tools are not intended for Un*x
accounts maintenance. The one that seems to be enough versatile is the LDAP
Browser/Editor (<ULINK
URL="http://www-unix.mcs.anl.gov/~gawor/ldap">http://www-unix.mcs.anl.gov/~gawor/ldap</ULINK>)
that allows to set passwords in various formats and can use SSL to connect to the
server.</PARA>
-->
<PARA>残念ながら汎用的なツールのほとんど<!-- these の推測 -->は Un*x
アカウントの管理用にはできていません。
それに見合う機能があるように思えるものは、
LDAP Browser/Editor (<ULINK URL="http://www-unix.mcs.anl.gov/~gawor/ldap"
>http://www-unix.mcs.anl.gov/~gawor/ldap</ULINK>) があり、それは
色々な書式でパスワードの設定ができ、サーバに接続するために SSL を使用
できます。
</PARA>

</SECT2> 
 
<!-- <SECT2><TITLE>Known limits</TITLE>
-->
<SECT2><TITLE>既知の制限事項</TITLE>

<!--
<PARA>As it is for NIS with a single master server (no slave servers), LDAP
without a replication mechanism represents a single point of failure for the
authentication system. For authentication purposes it is rather important to
implement LDAP replication. The server that cames with OpenLDAP (slapd) provides
replication capabilities.</PARA>
-->
<PARA>単独のマスタサーバによる (スレーブサーバのない) NIS
の場合と同様に、レプリケーションを利用しない LDAP は認証機構にとって
「a single point of failure (単一機器の障害がシステム全体の
障害となってしまう弱点)」であると言えます。
ですから LDAP レプリケーションを実装することは、認証という目的のためには一層
重要と言えます。OpenLDAP (slapd) によるサーバはレプリケーション機能を
備えています。
</PARA>

</SECT2> 

 <!-- <SECT2><TITLE>File permissions</TITLE>
-->
<SECT2><TITLE>ファイルのパーミッション</TITLE>

<!--
<PARA>The following are the file permissions that should be applied to some of
the files used by the authentication system.</PARA>
-->
<PARA>以下は認証システムで使われるファイルに
適用されているべきパーミッションの一部です。
</PARA>


<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC"> 
-rw-r--r--  root.root /etc/ldap.conf
-rw-------  root.root /usr/local/etc/openldap/slapd.conf
-rwxr-xr-x  root.root /lib/security/pam_ldap.so.1
-rw-r--r--  root.root /lib/libnss_ldap-2.1.2.so
-rw-r--r--  root.root /usr/local/ssl/certs/cert7.db
-rw-------  root.root /usr/local/ssl/certs/stunnel.pem	
</PROGRAMLISTING></PARA>
</SECT2>

</SECT1>
