管理コンソールでは、RADIUS サービスの次のパラメータを構成できます。
RADIUS サーバーがユーザー情報と NAS 情報の検索に使用する名前付きコンテキスト。これらの名前付きコンテキストは、ディレクトリサーバーが管理するツリーの一部でなければなりません。
ブロック・モード。渡されたパスワードに基づいてユーザーの認証を行うときに連続して許可される失敗の回数。この回数を超えると、接続パラメータが正しくても、システムで認証は拒否されます。認証が成功すると、このカウントはリセットされます。ブロックモードを使用しない場合は、「ブロックモード (Blocking Mode)」フィールドにゼロを指定します。
リモートユーザーのディレクトリエントリに動的アカウントデータを記録するかどうか (「動的アカウントの構成」を参照)。
RADIUS サーバーが作成するスレッドの最大数
RADIUS プロセスが認証要求とアカウントレポートの到着を待つのに使用するポート
アカウント情報を格納するディレクトリ
クライアントが RADIUS サーバーからの応答を待つ最長時間
RADIUS サーバーが照会するディレクトリサーバーは常にローカルホストです。
これらのパラメータの構成は、管理コンソールの「RADIUS」セクションで行います。この構成はマッピングファイル /etc/opt/SUNWconn/ldap/current/mapping/radius.mapping に保存されます。
RADIUS 検索が照会サーバーに対して行われるときには、ブロックモードと動的アカウントの設定は考慮されません。
管理コンソールを使用すると、RADIUS サーバーがユーザーとネットワークアクセスサーバー (NAS) の情報を検索するときに使用する名前付きコンテキストの基本構成を実行できます。radius.mapping ファイルを手作業で編集すると、次の操作を実行できます。
ユーザーの検索に通常使用される名前付きコンテキストにユーザーのエントリがない場合に、そのリモートユーザーに一時アクセスを与える
リモートユーザーを特定の NAS に関連付け、その NAS だけからアクセス権を与える
上記のオプションをすべて選択して、特定の NAS から一時アクセス権を与える
仮想ドメインから接続するリモートユーザーを管理する
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 であるエントリから検索します。
基本構成を変更しなくても、エントリが別の名前付きコンテキストにあるリモートユーザーに一時アクセス権を与えることができます。
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 であるすべてのエントリにアクセス権が与えられることはありません。
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 に接続できます。
USERS テーブルの「Dynamic」セクションにおいて、次の書式で BaseDN と FILTER トークンを接尾辞 _nasname の構成に追加し、一時的な値を割り当てます。
BASEDN_nasname= search_baseFilter_ nasname= (&(Objectclass=remoteUser)(uid=$UserID))
nasname は NAS 名です (この NAS に対するディレクトリエントリの cn 属性値)。
search_base は、NAS からアクセス権を与えるリモートユーザーのディレクトリエントリを持つ名前付きコンテキストです。
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 へのアクセス制限とを結合するには、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 が次のパラメータでログインするとします。
Login: jsmith@abc.com
Password: secret
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 のディレクトリエントリには次の属性が含まれています。
uid: jsmith
userPassword: * (保護されています)
authSuffixName: @abc.com
grpCheckInfo: userPassword, authSuffixName
RADIUS サーバーは、検索する際に、BaseDN と FILTER トークンを次のように処理します。RADIUS はまず通常の検索を行い、これに失敗すると一時トークンに対して検索を行います。
通常の検索は、限定的なものから一般的なものへと行われます。
FILTER_nasname
FILTER
BaseDN_nasname
BaseDN
通常の検索に失敗すると、一時検索が同様の順序で行われます。
TMP_FILTER_nasname
TMP_FILTER
TMP_BaseDN_nasname
TMP_BaseDN
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 では、その他に次のベンダーの辞書を使用できます。
Livingston
Ascend
Cisco
Shiva
Bay Networks
ベンダーの辞書ファイルには、標準の定義と固有の定義が含まれています。属性と値の定義は、RADIUS トランザクションで渡される実際の値である OID で識別されます。標準化されていないため、異なるベンダーが定義する一部の固有属性で同じ OID が使用されています。
RADIUS サーバーは異なるベンダーの辞書ファイルをいくつでもサポートできますが、ユーザーは特定の NAS に対しどの辞書を使用するかを指定しなければなりません。
この属性に割り当てる値は、このエントリで記述された NAS と RADIUS サーバーが通信するときに使用する辞書のファイル名でなければなりません。
dictionaryFile 属性を指定しないと、デフォルトの dictionary ファイルが使用されます。このファイルは、他のすべての構成ファイルとともに /etc/opt/SUNWconn/ldap/current の下にあります。
Sun Directory Services で提供されるデフォルトの辞書の代わりに NAS ベンダーの辞書を使用する場合は、RADIUS サーバーが内部的に使用する属性をデフォルトの辞書からベンダー提供の辞書へコピーする必要があります。コピーする属性のリストを表 7-1 に示します。
# 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 を除きコメント化されています。
Framed-IP-Address
User-Name
Acct-Session-Id
NAS-Port
NAS-Port-Type
NAS-IP-Address
アカウント項目をリストに追加する場合は、次の点を確認してください。
少なくとも 1 つの NAS がこれらの項目をアカウントパケットで提供できる。
記録しようとする RADIUS パラメータごとに LDAP 属性がある。この属性がない場合は、対応する LDAP 属性を作成しなければならない。さらに、RADIUS 属性と LDAP 属性のマッピングを定義するエントリをマッピングファイルに作成する必要がある。
スキーマを変更します。詳細は 「新しい属性を作成するには」を参照してください。
テキストエディタでこの属性を radius.mapping ファイルのリストに追加します。
この属性は、必ずファイルの「Import」セクションと「Export」セクションに追加してください。この操作を行うには、スーパーユーザー (root) としてログインしていなければなりません。
テキストエディタでこの属性を acctattr ファイルのリストに追加します。
スーパーユーザー (root) としてログインしていなければなりません。
dsservd デーモンを再起動します。
新しいアカウント属性がログファイルにログされ、リモートユーザーのエントリに動的に記録されます。
dsradiusd デーモンを再起動します。
新しいマッピングファイルが有効になります。
この属性に割り当てる値は、このエントリで記述された NAS からの動的アカウント情報を RADIUS サーバーが解釈するときに使用する動的アカウント属性ファイル名でなければなりません。
acctattrFile 属性を指定しないと、デフォルトの acctattr ファイルが使用されます。このファイルは、他のすべての構成ファイルとともに /etc/opt/SUNWconn/ldap/current の下にあります。
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
デフォルトで、ユーザーは、自分のエントリのパスワード属性とセキュリティ属性に対し書き込みアクセス権を、他のすべての属性に対し読み取りアクセス権を持っています。他のすべてのユーザーは、パスワード属性とセキュリティ属性に対し比較アクセス権を、他のすべての属性に対し読み取りアクセス権を持っています。