# 運用・管理 / LDAPクライアント

本製品は外部のLDAPサーバーを利用して各種の認証を行うLDAPクライアントの機能を備えています。
LDAPクライアント機能は、以下の用途に使用できます。

- ログイン認証（コンソール、Telnet、SSHパスワード認証）
- OpenVPNクライアント認証

ログイン認証では、ユーザー認証データベースとLDAPサーバーの併用が可能です（併用時はLDAPサーバーが利用できない場合のバックアップとしてユーザー認証データベースを使用）。
また、OpenVPNクライアント認証では、LDAPサーバーのみを使った認証と、LDAPサーバーとワンタイムパスワード（TOTP/HOTP）を併用する2要素認証が可能です（LDAPサーバーの代わりにRADIUSサーバーも使用可能）。
ここでは、LDAPクライアントの設定方法だけを述べます。
LDAPクライアントを利用する各機能の詳細については下記のページをご覧ください。

- ログイン認証 - 「運用・管理」の「ユーザー認証」
- OpenVPN - 「VPN」の「OpenVPN」

また、2要素認証については「運用・管理」/「2要素認証」をご覧ください。

## 基本設定

認証に利用するLDAPサーバーの登録は次の手順で行います。
以下の設定はLDAPサーバーとしてActive Directoryのドメインコントローラーを想定しています。
実際の設定内容は、ご使用になるLDAPサーバーの種類や設定、環境などに応じて適宜調整してください。

1. ldap-serverコマンドで任意の登録名を指定し、LDAPサーバーモードに移動します。
   接続先などの具体的な設定項目は、同モードの各コマンドで指定します。

       awplus(config)# ldap-server our_directory

2. LDAPサーバーのホスト名かIPv4/IPv6アドレスを指定します。これにはhostコマンドを使います。

       awplus(config-ldap-server)# host 192.168.10.3

3. LDAPサーバー上で情報の検索ができる管理者ユーザーの識別名（ルートDN）とパスワードを指定します。これにはbind authenticate root-dnコマンドを使います。

       awplus(config-ldap-server)# bind authenticate root-dn cn=Administrator,cn=Users,dc=example,dc=local password 1ih3eaToo

4. LDAPディレクトリーツリー上の検索起点となるノードの識別子（ベースDN）を指定します。これにはbase-dnコマンドを使います。

       awplus(config-ldap-server)# base-dn dc=example,dc=local

5. 認証対象ユーザーの情報をユーザー名で検索するときに使う照合用のLDAP属性はlogin-attributeコマンドで変更できます。初期設定ではuid属性を使いますが、Active Directory環境で一般的な sAMAccountName属性を使う場合は次のように設定します。

       awplus(config-ldap-server)# login-attribute sAMAccountName

基本設定は以上です。
初期状態では、LDAP標準のTCPポート389番に接続しますが、これを変更したい場合はportコマンドを使用します。

    awplus(config-ldap-server)# port 18389

LDAPサーバーとの通信に関するパラメーター（応答待ち時間、再送回数など）はtimeout、retransmitコマンドで変更できます。次の例では、応答待ち時間を10秒、再送回数を5回に設定しています。初期設定はそれぞれ5秒と3回です。

    awplus(config-ldap-server)# timeout 10
    awplus(config-ldap-server)# retransmit 5

複数のLDAPサーバーを登録する場合は、deadtimeコマンドで無応答のLDAPサーバーへの要求送信抑制期間を設定してください。

    awplus(config-ldap-server)# deadtime 1

LDAPサーバーの登録を解除するには、ldap-serverコマンドをno形式で実行します。

    awplus(config)# no ldap-server our_directory

登録されているLDAPサーバーの一覧は、show ldap server groupコマンドで確認できます。

    awplus# show ldap server group

## 登録したLDAPサーバーの使用

LDAPサーバーは登録しただけでは使用されません。
各種機能の設定において、LDAPサーバーを使用するよう指定して初めてLDAPクライアント機能が働き、登録されているLDAPサーバーへのアクセスが発生します。
LDAPサーバーを使用する機能には次のものがあります。

- ログイン認証（コンソール、Telnet、SSH）
- OpenVPNクライアント認証

### 全方式共通のLDAPサーバーを使う

1台または複数台のLDAPサーバーをすべての認証方式で共用する場合は、使用するLDAPサーバーを使用順に登録しておき、各認証機能の設定において、デフォルトの認証サーバーグループ名「ldap」を指定するだけです。以下に例を示します。

1. 基本設定にしたがって、使用するすべてのLDAPサーバーを登録します。全方式共通の設定をする場合、ここでの追加順がサーバーの使用順序となります。

       awplus(config)# ldap-server dc1
       awplus(config-ldap-server)# host 172.16.10.5
       ...
       awplus(config)# ldap-server dc2
       awplus(config-ldap-server)# host 172.16.10.6
       ...

2. 各認証方式を有効化するときに「group ldap」を指定します。これは、「ldap-serverコマンドで登録したLDAPサーバーを登録順に使う」の意味です。

       awplus(config)# aaa authentication login default group ldap
       awplus(config)# aaa authentication openvpn default group ldap

これにより、LDAP認証をサポートするすべての機能において、LDAPサーバー「172.16.10.5」、「172.16.10.6」を使用するようになります（172.16.10.5が無応答の場合172.16.10.6を試す）。

### 各方式個別のLDAPサーバーを使う

認証方式ごとに異なるLDAPサーバーを使用する設定も可能です。これは、ユーザー定義の認証サーバーグループを複数作成することで実現します。
ここでは例として、次のように認証方式ごとに異なるLDAPサーバーを使うための設定を示します。

表 1
認証方式 | 使用するLDAPサーバー | 共有パスワード
ログイン認証 | 172.16.10.10 | himitsu10
172.16.10.20 | himitsu20
OpenVPN認証 | 172.16.10.11 | himitsu11
172.16.10.21 | himitsu21

1. 基本設定にしたがって、使用するすべてのLDAPサーバーのIPアドレスと共有パスワードを登録します。各方式個別の設定をするときは、認証サーバーグループの設定時にサーバーの使用順序を指定するので、ここでの追加順序は特に意味を持ちません。

       awplus(config)# ldap-server login1
       awplus(config-ldap-server)# host 172.16.10.10
       ...
       awplus(config)# ldap-server login2
       awplus(config-ldap-server)# host 172.16.10.20
       ...
       awplus(config)# ldap-server openvpn1
       awplus(config-ldap-server)# host 172.16.10.11
       ...
       awplus(config)# ldap-server openvpn2
       awplus(config-ldap-server)# host 172.16.10.21
       ...

2. 手順1で登録したLDAPサーバーを、機能ごとにグループ化します。
   - ログイン認証用のLDAPサーバーを「srv4login」としてグループ化します。
     aaa group server ldapコマンドでグループ名「srv4login」を指定してLDAPサーバーグループモードに入り、serverコマンドでLDAPサーバーを追加していきます。ここでの追加順がグループ内でのサーバーの使用順序となります。

         awplus(config)# aaa group server ldap srv4login
         awplus(config-ldap-group)# server login1
         awplus(config-ldap-group)# server login2
         awplus(config-ldap-group)# exit

   - OpenVPN認証用のLDAPサーバーを「srv4openvpn」としてグループ化します。
     手順はさきほど同様です。

         awplus(config)# aaa group server ldap srv4openvpn
         awplus(config-ldap-group)# server openvpn1
         awplus(config-ldap-group)# server openvpn2
         awplus(config-ldap-group)# exit

3. 各認証方式を有効化するときに「group LDAPサーバーグループ名」を指定します。これは、該当認証方式において「指定したサーバーグループ所属のLDAPサーバーを使う」の意味です。

       awplus(config)# aaa authentication login default group srv4login
       awplus(config)# aaa authentication openvpn default group srv4openvpn

これにより、認証方式ごとに異なるLDAPサーバーが使用されるようになります。

## 各機能が使用するLDAPユーザー属性

LDAP認証に対応した各機能では、以下のLDAPユーザー属性を使用します。
LDAPサーバーには、ユーザーごとに各機能で必要な属性を定義してください。

使用する機能 | LDAP属性名 | データ型 | 複数存在可？ | 説明
ログイン | msRADIUSServiceType | 整数 | 不可 | CLIにログインするユーザーは本属性の値として以下のいずれかが必須。 ユーザーが本属性を持たない場合や、下記以外の値がセットされていた場合は認証に失敗する。 6 - Administrative（権限レベル15に相当） 7 - NAS Prompt（権限レベル1に相当） 本属性はRADIUS属性 Service-Type (6) に対応
OpenVPN | msRADIUSFramedIPAddress | 整数 | 不可 | クライアントに設定するIPv4アドレス。 「192.168.1.3」＝「-1062731517」のように4バイトの符号付き整数としてあらわす（表外注を参照）。 RADIUS属性 Framed-IP-Address (8) に対応 Windows管理ツール「Active Directory ユーザーとコンピューター」の「ダイヤルイン」タブで「静的IPアドレスを割り当てる」にチェックを入れ、「静的IPアドレス」ボタンを押して、「静的IPv4アドレスを割り当てる」欄に10進ドット形式のIPv4アドレスを入力することで設定可能
OpenVPN | msRADIUSFramedRoute | 文字列 | 可 | クライアントに設定するIPv4スタティック経路情報。 RFC2865にしたがい「10.1.1.0/24 192.168.1.1 1」または「10.1.1.0 255.255.255.0 192.168.1.1 1」のような形式で指定する。 RADIUS属性 Framed-Route (22) に対応 Windows管理ツール「Active Directory ユーザーとコンピューター」の「ダイヤルイン」タブ「静的ルートを適用」にチェックを入れ、「静的ルート」ダイアログの「ルートの追加」ボタンを押して、「IPv4ルートを割り当てる」＞「宛先」、「ネットワークマスク」、「コストメトリック」欄に入力することで設定可能
OpenVPN | msRADIUS-FramedIpv6Prefix | 文字列 | 不可 | クライアントに設定するIPv6プレフィックス。 RFC3162にしたがい「2001:1::/64」のような形式で指定する（インターフェースIDは自動設定される）。 RADIUS属性 Framed-IPv6-Prefix (97) に対応 Windows管理ツール「Active Directory ユーザーとコンピューター」の「ダイヤルイン」タブ「静的IPアドレスを割り当てる」にチェックを入れ、「静的IPアドレス」ボタンを押して、「静的IPv6アドレスを割り当てる」＞「プレフィックス」欄に入力することで設定可能
OpenVPN | msRADIUS-FramedIpv6Route | 文字列 | 可 | クライアントに設定するIPv6スタティック経路情報。 RFC3162にしたがい「2001:db8:1:2::/64 2001:db8:1:1::1 1」のような形式で指定する。 RADIUS属性 Framed-IPv6-Route (99) に対応 Windows管理ツール「Active Directory ユーザーとコンピューター」の「ダイヤルイン」タブ「静的ルートを適用」にチェックを入れ、「静的ルート」ダイアログの「ルートの追加」ボタンを押して、「IPv6ルートを割り当てる」＞「アドレス」、「プレフィックス」、「コストメトリック」欄に入力することで設定可能

Note

msRADIUSFramedIPAddress属性に設定する整数値の求め方は次のとおり。
IPv4アドレスを「A.B.C.D」とした場合、

- Aが127以下の時

  `設定値 = A × 16777216 + B × 65536 + C × 256 + D
  `
- Aが128以上の時

  `設定値 = A × 16777216 + B × 65536 + C × 256 + D - 4294967296
  `