Sun Directory Services 3.1 管理ガイド

RADIUS サーバーの構成

管理コンソールでは、RADIUS サービスの次のパラメータを構成できます。

RADIUS サーバーが照会するディレクトリサーバーは常にローカルホストです。

これらのパラメータの構成は、管理コンソールの「RADIUS」セクションで行います。この構成はマッピングファイル /etc/opt/SUNWconn/ldap/current/mapping/radius.mapping に保存されます。


注 -

RADIUS 検索が照会サーバーに対して行われるときには、ブロックモードと動的アカウントの設定は考慮されません。


RADIUS 検索の詳細設定

管理コンソールを使用すると、RADIUS サーバーがユーザーとネットワークアクセスサーバー (NAS) の情報を検索するときに使用する名前付きコンテキストの基本構成を実行できます。radius.mapping ファイルを手作業で編集すると、次の操作を実行できます。

RADIUS サーバーが検索する名前付きコンテキストは、/etc/opt/SUNWconn/ldap/current/mapping/radius.mapping ファイルに指定します。USERS テーブルの「Dynamic」セクションの次の行がリモートユーザーのアクセス権を定義します。

BaseDN= l=Paris, o=xyz, c=us
FILTER=(&(Objectclass=remoteUser)(uid=$UserID))

この例では、RADIUS サーバーは、NAS からの要求で渡されるユーザー ID を名前付きコンテキスト l=Paris, o=XYZ, c=US のオブジェクトクラスが remoteUser であるエントリから検索します。

一時アクセス権を与えるには

基本構成を変更しなくても、エントリが別の名前付きコンテキストにあるリモートユーザーに一時アクセス権を与えることができます。

  1. USERS テーブルの「Dynamic」セクションにおいて、次の書式で BaseDN と FILTER トークンを接頭辞 TMP_ の構成に追加し、一時的な値を割り当てます。

    TMP_BASEDN = new_search_baseTMP_Filter = (&(Objectclass=remoteUser)(uid=$UserID)(uid=userid))
    • new_search_base は、一時アクセス権を与えるユーザーの remoteUser エントリを持つ名前付きコンテキストです。この名前付きコンテキストが別のサーバーに格納されている場合は、2 つのサーバーの間に照会が定義されていなければなりません。

    • userid は、リモートユーザーの実際のユーザー ID です。この ID を指定することによって、そのユーザーだけにアクセス権が与えられます。つまり、新しい検索ベースでオブジェクトクラスが remoteUser であるすべてのエントリにアクセス権が与えられることはありません。

  2. dsradiusd デーモンを再起動します。これにより、新しい構成ファイルが有効になります。

    # /opt/SUNWconn/ldap/sbin/dsradius stop
    # /opt/SUNWconn/ldap/sbin/dsradius start
    

    たとえば、リモートユーザーの基本識別名が l=Paris, o=XYZ, c=US で、Madrid にいるリモートユーザー Felipe Gonzalez に一時アクセス権を与える場合には、ローカルの radius.mapping ファイルを変更して次の行を組み込みます。

    BaseDN= l=Paris, o=xyz, c=us
    TMP_BaseDN= l=Madrid, o=xyz, c=us
    FILTER=(&(Objectclass=remoteUser)(uid=$UserID))
    TMP_Filter=(&(Objectclass=remoteUser)(uid=$UserID)(uid=fgonzalez))

    この例では、ローカルのディレクトリサーバーと、名前付きコンテキスト l=Madrid, o=XYZ, c=US を持つディレクトリサーバーとの間に照会が定義されているものとします。

    XYZ corporation のすべてのリモートユーザーにアクセス権を一時的に与えるには、次の一時的な基本識別名を使用します。

    TMP_BaseDN= o=xyz, c=us

    この例では、l=Paris, o=XYZ, c=US データ格納を持つサーバーから o=XYZ, c=US データ格納を持つサーバーへのデフォルトの照会があるとします。さらに、o=XYZ, c=US データ格納には、他のサーバーにあるすべてのデータ格納への照会エントリが含まれているとします。

特定の NAS によるアクセス権を制限するには

リモートユーザーを常に特定のネットワークアクセスサーバー (NAS) に接続したい場合があります。たとえば、通信費用を節約したい場合は、リモートユーザーを地理的に最も近い NAS に接続できます。

  1. USERS テーブルの「Dynamic」セクションにおいて、次の書式で BaseDN と FILTER トークンを接尾辞 _nasname の構成に追加し、一時的な値を割り当てます。

    BASEDN_nasname= search_baseFilter_ nasname= (&(Objectclass=remoteUser)(uid=$UserID))
    • nasname は NAS 名です (この NAS に対するディレクトリエントリの cn 属性値)。

    • search_base は、NAS からアクセス権を与えるリモートユーザーのディレクトリエントリを持つ名前付きコンテキストです。

  2. dsradiusd デーモンを再起動します。これにより、新しい構成ファイルが有効になります。

    # /opt/SUNWconn/ldap/sbin/dsradius stop
    # /opt/SUNWconn/ldap/sbin/dsradius start
    

    たとえば、リモートユーザーの基本識別名が l=France, o=XYZ, c=US で、Paris、Lyon、Toulouse にいるリモートユーザーがそれぞれのローカル NAS からネットワークに接続できるとします。NAS 名は、それぞれ ParisNAS、LyonNAS、ToulouseNAS です。通信費用の節約のために、リモートユーザーが常に最も近い NAS を通してネットワークに接続します。

    このため、radius.mapping ファイルを変更して次の行を組み込みます。

    BaseDN= l=France, o=xyz, c=us
    BaseDN_ParisNAS= l=Paris, l=France, o=xyz, c=us
    BaseDN_LyonNAS= l=Lyon, l=France, o=xyz, c=us
    BaseDN_ToulouseNAS= l=Toulouse, l=France, o=xyz, c=us
    FILTER=(&(Objectclass=remoteUser)(uid=$UserID))

    RADIUS サーバーは、ParisNAS から要求を受け取ると、リモートユーザーが名前付きコンテキスト l=Paris, l=France, o=XYZ, c=US に属しているかどうかを確認します。

一時アクセス権と NAS による制約の結合

一時アクセス権と特定の NAS へのアクセス制限とを結合するには、BaseDN トークンまたは FILTER トークンで TMP_ 接頭辞と _nasname 接尾辞を結合します。

たとえば、Madrid の Felipe Gonzalez に Paris への出張の間だけ Paris の NAS へのリモートアクセスを許可する場合は、radius.mapping ファイルを変更して、USERS テーブルの「Dynamic」セクションに次の行を組み込みます。

BaseDN= l=France, o=xyz, c=us
TMP_BaseDN= l=Madrid, o=xyz, c=us
FILTER=(&(Objectclass=remoteUser)(uid=$UserID))
TMP_Filter_ParisNAS=(&(Objectclass=remoteUser)(uid=$UserID)(uid=fgonzalez))

この例では、_nasname 接尾辞を一時基本識別名ではなく一時フィルタに追加しています。これは、Madrid の他のユーザーに Paris の NAS とは別の NAS を通してアクセス権を与える場合があるからです。その場合には、一時基本識別名は有効なので、適切な _nasname 接尾辞を持つ一時フィルタだけを作成します。

仮想ドメインの管理

仮想ドメイン (つまり、別の組織のために管理するドメイン) に属するユーザーのリモートユーザー接続を管理できます。

たとえば、ABC 社が ISP 社を使って内部のメールサービスを管理するとします。ABC 社は abc.com などのドメイン名と一連の IP アドレスを割り当てられます。ISP 社は、ユーザー情報と、ABC 社のリモートユーザー接続を管理します。ABC 社の社員がリモートアクセスを要求して接続する場合、接続パラメータはユーザーログインとユーザーパスワードです。

たとえば、John Smith が次のパラメータでログインするとします。

ISP 社の RADIUS サーバーは、ユーザー ID とドメイン情報を切り離す必要があります。USERS テーブルの最初の部分と「Dynamic」セクションに定義されている変数は次のようになっています。

Table: USERS
	Common:
		BaseDN= o=isp, c=us
	Dynamic
		userID=>$myID@$virtualDomainT || $myID
		FILTER=(&(Objectclass=remoteUser)(uid=$myID))

この構成例では、username 変数が 2 つの代替式を受け付けるため、ユーザー ID にドメイン名が付加されているリモートユーザーと付加されていないリモートユーザーを同等に扱うことができます。

認証手順でドメイン名の検査が必要なため、John Smith のディレクトリエントリには次の属性が含まれています。

RADIUS 検索パラメータの処理順序

RADIUS サーバーは、検索する際に、BaseDN と FILTER トークンを次のように処理します。RADIUS はまず通常の検索を行い、これに失敗すると一時トークンに対して検索を行います。

通常の検索は、限定的なものから一般的なものへと行われます。

通常の検索に失敗すると、一時検索が同様の順序で行われます。

辞書ファイルの指定

RADIUS サーバーは、NAS からの要求で渡されるパラメータを辞書ファイルを使って分析します。辞書ファイルには、RADIUS の属性と値の対が入っています。これらの属性の多くが『RFC 2138 Remote Authentication Dial In User Service』と『RFC 2139 RADIUS Accounting』に定義されています。しかし、NAS ベンダーも独自の属性を定義しています。

RADIUS 辞書ファイルと RADIUS マッピングファイルを混同しないでください。RADIUS マッピングファイルは、RADIUS 属性と LDAP 属性の変換を行うためのものです。RADIUS マッピングファイルについては、「RADIUS から LDAP へのマッピング」を参照してください。

Sun Directory Services には、標準的な属性と値の定義からなるデフォルト辞書があります。Sun Directory Services では、その他に次のベンダーの辞書を使用できます。

ベンダーの辞書ファイルには、標準の定義と固有の定義が含まれています。属性と値の定義は、RADIUS トランザクションで渡される実際の値である OID で識別されます。標準化されていないため、異なるベンダーが定義する一部の固有属性で同じ OID が使用されています。

RADIUS サーバーは異なるベンダーの辞書ファイルをいくつでもサポートできますが、ユーザーは特定の NAS に対しどの辞書を使用するかを指定しなければなりません。

NAS に対する辞書ファイルを指定するには

    Deja ツールを使って、dictionaryFile 属性を NAS のディレクトリエントリに追加します。

この属性に割り当てる値は、このエントリで記述された NAS と RADIUS サーバーが通信するときに使用する辞書のファイル名でなければなりません。

dictionaryFile 属性を指定しないと、デフォルトの dictionary ファイルが使用されます。このファイルは、他のすべての構成ファイルとともに /etc/opt/SUNWconn/ldap/current の下にあります。


注 -

Sun Directory Services で提供されるデフォルトの辞書の代わりに NAS ベンダーの辞書を使用する場合は、RADIUS サーバーが内部的に使用する属性をデフォルトの辞書からベンダー提供の辞書へコピーする必要があります。コピーする属性のリストを表 7-1 に示します。


表 7-1 RADIUS の内部属性

#	Non-Protocol Attributes
#	These attributes are used internally by the server
#
ATTRIBUTE	Expiration	21	date
ATTRIBUTE	Auth-Type	1000	integer
ATTRIBUTE	Menu	1001	string
ATTRIBUTE	Termination-Menu	1002	string
ATTRIBUTE	Prefix	1003	string
ATTRIBUTE	Suffix	1004	string
ATTRIBUTE	Group	1005	string
ATTRIBUTE	Crypt-Password	1006	string
ATTRIBUTE	Connect-Rate	1007	integer
#
#     New SUN-DS Attributes for LDAP Integration
#
ATTRIBUTE	Login-Profile 	2000 	integer
ATTRIBUTE	Login-Passwd 	2001 	string
ATTRIBUTE	Login-Expiration 	2002 	date
ATTRIBUTE	PPP-Profile 	2010 	integer
ATTRIBUTE	PPP-Passwd 	2011 	string
ATTRIBUTE	PPP-Expiration 	2012 	date
ATTRIBUTE	SLIP-Profile 	2020 	integer
ATTRIBUTE	SLIP-Passwd 	2021 	string
ATTRIBUTE	SLIP-Expiration 	2022 	date
ATTRIBUTE	Auth-Failed-Access 	2100 	integer
ATTRIBUTE	Dynamic-Address-Profile	2200	integer
ATTRIBUTE	Dynamic-Session-Counter	2201	integer
ATTRIBUTE	Dynamic-SessionId	2202	string
ATTRIBUTE	Dynamic-IPAddress	2203	ipaddr
ATTRIBUTE	Dynamic-IPAddr-Binding	2204	string

動的アカウントの構成

RADIUS サーバーでは、接続パラメータをリモートユーザーのディレクトリエントリに動的に記録できます。動的アカウントを使用するには、管理コンソールの「RADIUS」セクションで「動的データ (Dynamic Data)」オプションを「オン (On)」にします。

記録されるパラメータは、dynamicIPaddress、dynamicSessionId、dynamicSessionCounter、dynamicIPaddressBinding、および acctattr ファイルにリストされているすべての RADIUS 属性です。ユーザーは、acctattr ファイルにリストされているアカウントパラメータを NAS が提供できるようにする必要があります。このファイルは、他の構成ファイルとともに /etc/opt/SUNWconn/ldap/current にあります。

acctattr ファイルにリストされている動的アカウントパラメータは、RADIUS アカウントパケットの一部であることもある RADIUS 属性です。対応する LDAP 属性を表 7-2 に示します。デフォルトの acctattr ファイルでは、該当する次の RADIUS 属性の例が User-Name を除きコメント化されています。

アカウント項目をリストに追加する場合は、次の点を確認してください。

動的アカウント属性を作成するには

  1. 記録する接続パラメータの LDAP 属性を作成します。

    スキーマを変更します。詳細は 「新しい属性を作成するには」を参照してください。

  2. テキストエディタでこの属性を radius.mapping ファイルのリストに追加します。

    この属性は、必ずファイルの「Import」セクションと「Export」セクションに追加してください。この操作を行うには、スーパーユーザー (root) としてログインしていなければなりません。

  3. テキストエディタでこの属性を acctattr ファイルのリストに追加します。

    スーパーユーザー (root) としてログインしていなければなりません。

  4. dsservd デーモンを再起動します。

    新しいアカウント属性がログファイルにログされ、リモートユーザーのエントリに動的に記録されます。

  5. dsradiusd デーモンを再起動します。

    新しいマッピングファイルが有効になります。

NAS に対する acctattr ファイルを指定するには

    Deja ツールを使って、acctattrFile 属性を NAS のディレクトリエントリに追加します。

この属性に割り当てる値は、このエントリで記述された NAS からの動的アカウント情報を RADIUS サーバーが解釈するときに使用する動的アカウント属性ファイル名でなければなりません。

acctattrFile 属性を指定しないと、デフォルトの acctattr ファイルが使用されます。このファイルは、他のすべての構成ファイルとともに /etc/opt/SUNWconn/ldap/current の下にあります。

RADIUS 情報に対する ACL

LDAP ディレクトリの RADIUS 情報は、特別な ACL のセットで保護されます。これは dsserv.acl.conf ファイルの一部です。このファイルの例を次に示します。

# Radius ACLs
access to
attrs=chapPassword,radiusLoginPasswd,radiusPppPasswD,radiusSlipP
asswd
	by self write
	by * compare

access to attrs=sharedKey
	by self write
	by * compare

デフォルトで、ユーザーは、自分のエントリのパスワード属性とセキュリティ属性に対し書き込みアクセス権を、他のすべての属性に対し読み取りアクセス権を持っています。他のすべてのユーザーは、パスワード属性とセキュリティ属性に対し比較アクセス権を、他のすべての属性に対し読み取りアクセス権を持っています。