Solaris for ISPs 管理ガイド

コマンド行からのディレクトリエントリの作成

一般的なディレクトリサービスのエントリ作成方法については、『Sun Directory Services 3.1 管理ガイド』の第 5 章「ディレクトリ情報の読み込みと保守」を参照してください。この節では、Solaris for ISPs が必要とする特別なエントリの作成方法について説明します。

Deja ツールを使用してディレクトリエントリを作成する方法については、Sun Internet Administrator のオンラインヘルプを参照してください。

ディレクトリエントリの作成: 一般的な手順

Sun Directory Services には、ディレクトリエントリの作成と変更のために次のコマンド行ユーティリティが用意されています。

上記のコマンド行ユーティリティを使用するには、スーパーユーザーのアクセス権が必要です。詳細は、リファレンスマニュアルページ (セクション 1) を参照してください。

ldapaddldapmodify への入力には、コマンド行またはテキストファイルを使用します。エントリ情報は複雑で長いものが多いので、以降の項に示す手順ではテキストファイルから入力する方法について説明します。

どの場合でも、次の手順に従ってエントリ情報を作成します。

  1. ディレクトリに作成する 1 つまたは複数のエントリを記述したファイルを作成します。ファイル形式の詳細は、ldif(4) のマニュアルページを参照してください。

  2. スーパーユーザーのアクセス権を取得し、エントリ情報が入ったファイルを指定して ldapadd を実行し、エントリを作成します。

ldapadd コマンドの実行形式を次に示します。


# ldapadd -D "BindDN" -w password -f file

BindDN はディレクトリにバインドする識別名 (DN) で、ディレクトリツリーの当該部分への書き込み権を持っている必要があります。password はバインドのためのパスワードです。また、file オプションでは、作成した ldif ファイル名を指定します。

ldif(4) ファイルの構造

コマンド行からエントリを追加するには、エントリ情報が入った ldif 形式のファイルを作成します。ldif 形式のファイルは、各ディレクトリエントリを空白行で区切った単純テキスト形式のファイルです。各ディレクトリエントリは、次の例のような構造を持ちます。


注 -

次の例では必須属性だけを示します。ほとんどのオブジェクトクラスには、この他にさまざまなオプション属性があります。オプション属性は、必要に応じて使用してください。


dn: ou=wcgate1,ou=eng,o=sun,c=US 
ou: wcgate1 
associateddomain: wcgate1.eng.sun.com  
objectclass: organizationalUnit 
objectclass: domainRelatedObject

各属性の意味は次のとおりです。

dn

作成するエントリの識別名を指定します。

ou

作成するエントリの名前属性です。よく使用する名前属性としては、commonNameorganizationalUnit (ou)、domainComponent (dc) があります。

associatedDomain

DC ツリー内の対応するエントリのドメイン名をドット区切り形式で指定します。OSI ツリーと DC ツリーの関係については、「Solaris for ISPs のディレクトリ構造」、ドメインのクロスリファレンスエントリを作成する方法については、「ドメインエントリの作成」を参照してください。

この場所には、属性:値のペアを一行ごとに必要な数だけ指定できます。

objectClass

エントリのオブジェクトクラス (種類) を指定します。objectClass は多数存在しますが、この例では 2 つだけ示します。

使用できるオブジェクトクラスと属性の詳細は、このマニュアルの第 6 章「Solaris for ISPs のディレクトリサービスのスキーマ」、および『Sun Directory Services 3.1 管理ガイド』の第 8 章「ディレクトリスキーマの構成」を参照してください。

ドメインエントリの作成

ディレクトリにドメインを作成するには、OSI ツリーと DC ツリーの両方にドメインエントリを 1 つずつ作成する必要があります。その後で、OSI ツリー内のドメインエントリの下に必要な organizationalUnit エントリを作成します。

eng.sun.com の下に wcgate1 というドメインを作成する手順を次に示します。

  1. OSI ツリー に作成するエントリのデータをテキストファイル (たとえば、domain.ldif) に入力します。

       dn: ou=wcgate1,ou=eng,o=sun,c=US 
    ou: wcgate1 
    associateddomain: wcgate1.eng.sun.com 
    objectclass: organizationalUnit 
    objectclass: domainRelatedObject 

    associatedDomain 属性に、DC ツリー内のエントリ名をドット区切り形式 (DNS 形式) で指定していることに注意してください。

  2. domain.ldif ファイルに、DC ツリーのエントリ情報を追加します。

       dn: dc=wcgate1,dc=eng,dc=sun,dc=com 
    dc: wcgate1
    associatedname: ou=wcgate1,ou=eng,o=sun,c=US 
    description: DNS-to-DN Mapping for wcgate1.eng.sun.com 
    labeleduri: ldap:///ou=wcgate1,ou=eng,o=sun,c=US??sub 
    objectclass: domain 
    objectclass: labeledURIObject

    associatedDomain 属性に、OSI ツリー内のエントリ識別名を指定していることに注意してください。また、RFC2255 に従って labeledURI 属性にも同じ情報を指定していることに注意してください。

  3. domain.ldif ファイルに、必須の組織ユニットエントリである Services の情報を追加します。

       dn: ou=Services,ou=wcgate1,ou=eng,o=sun,c=US 
    ou: Services 
    objectclass: organizationalUnit
  4. domain.ldif ファイルに、必須の組織ユニットエントリである People の情報を追加します。

       dn: ou=People,ou=wcgate1,ou=eng,o=sun,c=US 
    ou: People 
    objectclass: organizationalUnit 
  5. domain.ldif ファイルに、必須の組織ユニットエントリである Groups の情報を追加します。

       dn: ou=Groups,ou=wcgate1,ou=eng,o=sun,c=US 
    ou: Groups 
    objectclass: organizationalUnit
  6. domain.ldif ファイルを保存します。

  7. スーパーユーザーのアクセス権を取得し、次のコマンドを実行してディレクトリに各エントリを追加します。バインドの識別名とパスワードは、それぞれ適切な値に置き換えてください。


    # ldapadd -D "cn=admin,o=sun,c=US" -w password -f domain.ldif
    

ldapadd 実行後のディレクトリ構造は図 5-5 のようになります。

図 5-5 ドメインが追加されたディレクトリ構造

Graphic

加入者エントリの作成

Solaris for ISPs の加入者には次の種類があります。

以降の項では、単純なエントリを作成しそれに必要な情報を追加することで、複雑な加入者エントリを構築する手順を示します。

基本加入者エントリの作成

加入者エントリを作成するには、ドメインと People の組織ユニットエントリが存在していなければなりません。これらのエントリが存在していれば、テキストファイル (たとえば、people.ldif) を編集して、加入者エントリ情報を作成できます。基本加入者エントリは、ispSubscriber という 1 つのオブジェクトクラスと、小数の必須属性を持ちます。基本加入者を追加するためのテキストファイルは次のようになります。

dn: cn=Jane Doe (jldoe),ou=People,ou=wcgate1,ou=eng,o=sun,c=US 
commonname: Jane Doe (jldoe) 
sn: Doe
uid: jldoe 
userpassword: hidden 
objectclass: ispSubscriber 

各属性の意味は次のとおりです。

dn

加入者エントリの識別名を指定します。

commonName

加入者エントリ (ispSubscriber オブジェクトクラス) の名前属性です。Solaris for ISPs の加入者と管理者の commonName 属性は、Firstname Lastname (userid) の形式で指定します。

sn

加入者の姓です。

uid

加入者のログイン名です。

userPassword

パスワードです。パスワード情報を UNIX アカウントと共有する場合は、8 文字以内の文字列でなければなりません。パスワードは、ディレクトリサービス管理コンソールで指定した方法で暗号化されます。

objectClass:ispSubscriber

この加入者エントリのオブジェクトクラスの種類を指定します。

people.ldif ファイルには、属性値の異なるこのようなデータブロックを追加することにより、加入者エントリを必要なだけ作成できます。データ入力が終わったら、people.ldif を保存します。スーパーユーザーのアクセス権を取得し、次のコマンドを実行してディレクトリに加入者エントリを追加します。バインドの識別名とパスワードは、それぞれ適切な値に置き換えてください。


# ldapadd -D "cn=admin,o=sun,c=US" -w password -f people.ldif

FTP と Web の仮想ホスト情報の追加

Sun Internet FTP Server と Sun WebServer (SWS) で使用する仮想ホストを構成するには、次の 3 種類の属性を追加する必要があります。

gidnumber: 60001 
uidnumber: 60001 
ispcontentdirectory: jldoe

各属性の意味は次のとおりです。

gidNumber

FTP サービスと Web サービス用の仮想ホストドメインにおいて、このユーザーに指定する UNIX のグループ ID です。

uidNumber

FTP サービスと Web サービス用の仮想ホストドメインにおいて、このユーザーに指定する UNIX のユーザー ID です。

ispContentDirectory

コンテンツのパス (関連ドメインのドキュメントルートからの相対パスで指定される) で、ここにこの加入者のコンテンツファイルが存在します。


注 -

uidNumbergidNumber の 2 つの属性値を指定するには、仮想 FTP ドメインに共有アクセスできるように正しく設定された UNIX アカウントが必要です。仮想ホストの構成については、Sun Internet FTP Server のオンラインヘルプを参照してください。


people.ldif ファイルには、このようなデータブロックを追加することにより、加入者エントリを必要なだけ作成できます。データ入力が終わったら、 people.ldif を保存します。スーパーユーザーのアクセス権を取得し、次のコマンドを実行してディレクトリに加入者エントリを追加します。バインドの識別名とパスワードは、それぞれ適切な値に置き換えてください。


# ldapadd -D "cn=admin,o=sun,c=US" -w password -f people.ldif

既存エントリの属性を変更する場合は、ldapmodify を実行します。ldapmodify の実行方法については、ldapmodify(1) のマニュアルページを参照してください。

遠隔ユーザー情報の追加

RADIUS サーバーを介して ISP サービスにアクセスする加入者エントリを作成するには、エントリ情報に remoteUser というオブジェクトクラスといくつかの属性を追加する必要があります。


注 -

Solaris for ISPs のデフォルト構成では、ルートドメインが RADIUS 加入者エントリの検索ベースになっています。ルートドメイン以外を検索ベースにしたいときは、ディレクトリサービス管理コンソールを使用して RADIUS を構成し、検索ベースを変更してください。


ldif ファイルに次の行を追加します。

objectclass: remoteUser
authsuffixname: @ispxpress
grpcheckinfo: authSuffixName
grpcheckinfo: userPassword
authserviceprotocol: Framed-User
framedrouting: None
framedprotocol: PPP
grpreplyinfo: authServiceProtocol
grpreplyinfo: framedProtocol
grpreplyinfo: framedRouting 

各属性の意味は次のとおりです。

objectClass: remoteUser

RADIUS サーバーを使用してサービスにアクセスする加入者に必要なオブジェクトクラスです。

authsuffixname: @ispxpress

加入者のユーザー名に付加される接尾辞です。RADIUS サーバーは、他のドメイン内の同じ uid を持つエントリをこの接尾辞で区別します。ユーザーエントリごとに適切な接尾辞を入力します。

grpcheckinfo: authSuffixName

RADIUS サーバーが認証するエントリを選択する前に authSuffixName 属性を確認するようにします。

grpcheckinfo: userPassword

RADIUS サーバーが認証するエントリを選択する前に userPassword 属性を確認するようにします。

authserviceprotocol: Framed-User

デフォルトの RADIUS 構成を使用する場合は、この属性値をそのまま入力します。ネットワークアクセスサーバーの構成により正確な値が決まります。

framedrouting: None

デフォルトの RADIUS 構成を使用する場合は、この属性値をそのまま入力します。ネットワークアクセスサーバーの構成により正確な値が決まります。

framedprotocol: PPP

デフォルトの RADIUS 構成を使用する場合は、この属性値をそのまま入力します。ネットワークアクセスサーバーの構成により正確な値が決まります。

grpreplyinfo: authServiceProtocol

応答メッセージに authServiceProtocol 属性値を含めるように、RADIUS サーバーに指示します。

grpreplyinfo: framedProtocol

応答メッセージに framedProtocol 属性値を含めるように、RADIUS サーバーに指示します。

grpreplyinfo: framedRouting

応答メッセージに frameRouting 属性値を含めるように、RADIUS サーバーに指示します。

people.ldif ファイルには、このようなデータブロックを追加することにより、加入者エントリを必要なだけ作成できます。データ入力が終わったら、 people.ldif を保存します。スーパーユーザーのアクセス権を取得し、次のコマンドを実行してディレクトリに加入者エントリを追加します。バインドの識別名とパスワードは、それぞれ適切な値に置き換えてください。


# ldapadd -D "cn=admin,o=sun,c=US" -w password -f people.ldif

既存エントリの属性を変更する場合は、ldapmodify を実行します。ldapmodify の実行方法については、ldapmodify(1) のマニュアルページを参照してください。

完成した ldif ファイル

複雑な加入者情報を含む ldif ファイルは次のようになります。

dn: cn=Jane Doe (jldoe),ou=People,ou=wcgate1,ou=eng,o=sun,c=US 
commonname: Jane Doe (jldoe) 
sn: Doe
uid: jldoe 
userpassword: hidden 
gidnumber: 60001 
uidnumber: 60001 
objectclass: ispSubscriber 
objectclass: remoteUser
ispcontentdirectory: /home/users/jldoe
authsuffixname: @ispxpress
grpcheckinfo: authSuffixName
grpcheckinfo: userPassword
authserviceprotocol: Framed-User
framedrouting: None
framedprotocol: PPP
grpreplyinfo: authServiceProtocol
grpreplyinfo: framedProtocol
grpreplyinfo: framedRouting 

グループエントリの作成

グループエントリを作成する前に、次のエントリが作成されていなければなりません。

これらのエントリが存在していれば、テキストファイル (たとえば、groups.ldif) を編集して、グループ情報を作成できます。グループエントリを追加するためのテキストファイルは次のようになります。

dn: cn=isp-gp1,ou=Groups,ou=wcgate1,ou=eng,o=sun,c=US 
cn: isp-grp1
objectclass: groupOfNames
member: cn=Ed Anchor (anchor),ou=People,ou=wcgate1,ou=eng,o=sun,c=US
member: cn=April Shower (showers),ou=People,ou=wcgate1,ou=eng,o=sun,c=US
member: cn=Chili Jones (relleno),ou=People,ou=wcgate1,ou=eng,o=sun,c=US

各属性の意味は次のとおりです。

dn

作成するグループの識別名を指定します。

cn

グループエントリの関連識別名です。

objectClass

groupOfNames というオブジェクトクラスが、このエントリの種類を示します。

member

既存の加入者エントリの識別名を member 属性で指定します。

groups.ldif ファイルには、このようなデータブロックを追加することにより、グループエントリを必要なだけ作成できます。データ入力が終わったら、 groups.ldif を保存します。スーパーユーザーのアクセス権を取得し、次のコマンドを実行してディレクトリにグループを追加します。バインドの識別名とパスワードは、それぞれ適切な値に置き換えてください。


# ldapadd -D "cn=admin,o=sun,c=US" -w password -f groups.ldif