$Date: 2011/09/28 07:46:00 $
これまでの IPsec の実装は、拠点間を常時接続する使い方に最適化されており、例えば出張先や自宅からインターネット経由で会社の VPN に接続するような、IPsec クライアントからのリモートアクセスには向いていませんでした。
具体的には、
これらの問題を解決するために、IPsec の実装を拡張することで、以下の4つの機能を追加します。
ヤマハ RT シリーズでは、以下の機種およびファームウェアで、IPsec XAUTH 認証機能をサポートしています。
| 機種 | ファームウェア |
|---|---|
RTX810 |
Rev.11.01.04 以降 |
RTX1200 |
Rev.10.01.07 以降 |
SRT100 |
Rev.10.00.08以降 |
RTX3000 |
Rev.9.00.15 以降 |
RTX1500 |
Rev.8.03.46 以降 |
RTX1100 |
|
RT107e |
VPN クライアントソフトウェア YMS-VPN1 および YMS-VPN1-LP10 では、Ver.2.2.1.03 以降でIPsec XAUTH 認証機能をサポートしています。
[書式]
auth user USERID USERNAME PASSWORD
no auth user USERID [USERNAME ...]
[設定値]
USERID ... ユーザ識別番号(RTX1500/RTX1100/RT107e Rev.8.03.92 以降、RTX810 Rev.11.01.06 以降 は 1..1000、それ以外のリビジョンは 1..500)
USERNAME ... ユーザ名(32 文字以内) (* 3文字以上に設定してください。)
PASSWORD ... パスワード(32 文字以内)(* 同上 )
[説明]
IPsec の XAUTH 認証に使用するユーザ ID を設定する。
[書式]
auth user attribute USERID ATTRIBUTE=VALUE [ATTRIBUTE=VALUE ...]
no auth user attribute USERID [ATTRIBUTE=VALUE ...]
[設定値]
USERID ... ユーザ識別番号(RTX1500/RTX1100/RT107e Rev.8.03.92 以降、RTX810 Rev.11.01.06 以降 は 1..1000、それ以外のリビジョンは 1..500)
ATTRIBUTE=VALUE ... ユーザ属性
[説明]
IPsec の XAUTH 認証に使用するユーザ ID の属性を設定する。
設定できる属性は以下のとおり。
+---------------+----------------------+-------------------------------------------+
| ATTRIBUTE | VALUE | 説明 |
+---------------+----------------------+-------------------------------------------+
| xauth | on | IPsec の XAUTH 認証にこの ID を使用する |
| | off | IPsec の XAUTH 認証にこの ID を使用しない |
+---------------+----------------------+-------------------------------------------+
| xauth-address | IP address[/netmask] | IPsec の接続時に、このアドレスを |
| | (IPv6 アドレス可) | 内部 IP アドレスとして通知する |
+---------------+----------------------+-------------------------------------------+
| xauth-dns | IP address | IPsec の接続時に、このアドレスを |
| | (IPv6 アドレス可) | DNS サーバアドレスとして通知する |
+---------------+----------------------+-------------------------------------------+
| xauth-wins | IP address | IPsec の接続時に、このアドレスを |
| | (IPv6 アドレス可) | WINS サーバアドレスとして通知する |
+---------------+----------------------+-------------------------------------------+
| xauth-filter | フィルタセットの | IPsec の接続時に、このフィルタを適用する |
| | 名前を表す文字列 | |
+---------------+----------------------+-------------------------------------------+
[ノート]
本コマンドにて明示的に設定した属性値は、
該当のユーザ ID が属しているユーザグループに対して、
# auth user group attribute
コマンドによって設定された属性値に優先して適用される。
[初期値]
xauth : off
xauth-address: 設定なし
xauth-dns : 設定なし
xauth-wins : 設定なし
xauth-filter : 設定なし
[書式]
auth user group GROUPID USERID [USERID ...]
no auth user group GROUPID
[設定値]
GROUPID ... ユーザグループ識別番号(RTX1500/RTX1100/RT107e Rev.8.03.92 以降、RTX810 Rev.11.01.06 以降 は 1..1000、それ以外のリビジョンは 1..500)
USERID ... ユーザ識別番号もしくはユーザ識別番号の範囲
(複数指定することが可能)
[説明]
IPsec の XAUTH 認証に使用するユーザグループを設定する。
[設定例]
# auth user group 1 100 101 102
# auth user group 1 200-300
# auth user group 1 100 103 105 107-110 113
[書式]
auth user group attribute GROUPID ATTRIBUTE=VALUE [ATTRIBUTE=VALUE ...]
no auth user group attribute GROUPID [ATTRIBUTE=VALUE ...]
[設定値]
GROUPID ... ユーザグループ識別番号(RTX1500/RTX1100/RT107e Rev.8.03.92 以降、RTX810 Rev.11.01.06 以降 は 1..1000、それ以外のリビジョンは 1..500)
ATTRIBUTE=VALUE ... ユーザグループ属性
[説明]
IPsec の XAUTH 認証に使用するユーザグループの属性を設定する。
設定できる属性は以下のとおり。
+--------------------+-------------------+------------------------------------------+
| ATTRIBUTE | VALUE | 説明 |
+--------------------+-------------------+------------------------------------------+
| xauth | on | IPsec の XAUTH 認証にこのグループに含ま |
| | | れるユーザ ID を使用する |
| | off | IPsec の XAUTH 認証にこのグループに含ま |
| | | れるユーザ ID を使用しない |
+--------------------+-------------------+------------------------------------------+
| xauth-address-pool | IP アドレスの範囲 | IPsec の接続時に、このアドレスプールから |
| | (IPv6 アドレス可) | アドレスを選択し、内部 IP アドレスとして |
| | | 通知する |
+--------------------+-------------------+------------------------------------------+
| xauth-dns | IP address | IPsec の接続時に、このアドレスを |
| | (IPv6 アドレス可) | DNS サーバアドレスとして通知する |
+--------------------+-------------------+------------------------------------------+
| xauth-wins | IP address | IPsec の接続時に、このアドレスを |
| | (IPv6 アドレス可) | WINS サーバアドレスとして通知する |
+--------------------+-------------------+------------------------------------------+
| xauth-filter | フィルタセットの | IPsec の接続時に、このフィルタを適用する |
| | 名前を表す文字列 | |
+--------------------+-------------------+------------------------------------------+
xauth-address-pool の属性値である IP アドレスの範囲は、以下のいずれかの書式にて記述する。
o IP address[/netmask]
o IP address-IP address[/netmask]
[ノート]
本コマンドで設定した属性値は、該当のユーザグループに含まれるすべての
ユーザに対して有効となる。
[初期値]
xauth : off
xauth-address-pool: 設定なし
xauth-dns : 設定なし
xauth-wins : 設定なし
xauth-filter : 設定なし
[書式]
ipsec ike xauth request GATEWAY_ID AUTH [GROUP_ID]
no ipsec ike xauth request GATEWAY_ID [AUTH ...]
[設定値]
GATEWAY_ID ... セキュリティゲートウェイの識別子
GROUP_ID ... 認証に使用するユーザグループの識別番号
AUTH
on ... 要求する
off ... 要求しない
[説明]
IPsec の認証を行なう際、Phase1 終了後に XAUTH によるユーザ認証
をクライアントに要求するか否かを設定する。
GROUP_ID を指定した場合には、該当のユーザグループに含まれるユーザを
認証の対象とする。
GROUP_ID の指定がない場合や、指定したユーザグループに含まれる
ユーザ情報では認証できなかった場合、RADIUS サーバの設定があれば
RADIUS サーバを用いた認証を追加で試みる。
本コマンドによる設定はルータが受動側として動作する時にのみ有効であり、
始動側のセキュリティゲートウェイから送信された isakmp SA パラメータ
の提案に、認証方式として XAUTHInitPreShared(65001)が含まれていた場合に、
この提案を受け入れ、XAUTH によるユーザ認証を行なう。
[初期値]
off
[書式]
ipsec ike mode-cfg address pool POOL_ID IP_ADDRESS[/MASK]
ipsec ike mode-cfg address pool POOL_ID IP_ADDRESS-IP_ADDRESS[/MASK]
no ipsec ike mode-cfg address pool POOL_ID [IP_ADDRESS ...]
[設定値]
POOL_ID ... アドレスプールID(1..65535)
IP_ADDRESS ... IP アドレス(IPv6 アドレス可)
IP_ADDRESS-IP_ADDRESS ... IP アドレスの範囲(IPv6 アドレス可)
MASK ... ネットマスク(IPv6 アドレスの時はプレフィックス長)
[説明]
IPsec クライアントに割り当てる内部 IP アドレスのアドレスプールを
設定する。
本コマンドにて設定したアドレスプールは、
# ipsec ike mode-cfg address GATEWAY_ID ...
コマンドにて用いられる。
[書式]
ipsec ike mode-cfg address GATEWAY_ID POOL_ID
no ipsec ike mode-cfg address GATEWAY_ID [POOL_ID]
[設定値]
GATEWAY_ID ... セキュリティゲートウェイの識別子
POOL_ID ... アドレスプールID
[説明]
IPsec クライアントに内部 IP アドレスを割り当てる際に参照する、
内部 IP アドレスプールを設定する。
内部 IP アドレスの IPsec クライアントへの通知は、XAUTH 認証に使用する
Config-Mode にて行なわれるため、XAUTH 認証を行なわない場合には通知は
行なわれない。
以下のいずれかの方法にて、認証ユーザ毎に割り当てる内部 IP アドレスが
設定されている場合には、アドレスプールからではなく、個別に設定されて
いるアドレスを通知する。
o RADIUS サーバに登録されている場合
o 以下のコマンドを用いて設定されている場合
# auth user attribute USERID xauth-address=ADDRESS[/MASK]
# auth user group attribute GROUPID xauth-address-pool=ADDRESS-ADDRESS[/MASK]
アドレスプールに登録されているアドレスが枯渇した場合には、アドレスの
割当を行なわない。
[ノート]
VPN クライアントとして YMS-VPN1 を用いる場合、XAUTH 認証を行なうためには
必ず内部 IP アドレスの通知を行なう設定にしなければならない。
[書式]
tunnel template TUNNEL_NUM [TUNNEL_NUM ...]
no tunnel template
[設定値]
TUNNEL_NUM ... 適用するトンネルインタフェース番号もしくは
適用するトンネルインタフェース番号の範囲
(複数指定することが可能)
[説明]
選択されているトンネルインタフェースの設定を、テンプレートとして他の
トンネルインタフェースにも適用するかどうかを設定する。
選択されているトンネルインタフェースに対して設定したコマンドは、
以下のパラメータがトンネルインタフェース番号に等しい場合、これらの
パラメータを適用先のトンネルインタフェース番号に置換した上で、適用
先のトンネルインタフェースにも設定する。
o ipsec sa policy コマンドにて設定される、ポリシーID
o ipsec で始まるコマンドにて設定される、セキュリティ・ゲートウェイの識別番号
なお、ipsec ike remote name コマンドに関しては、コマンド適用の際、相手側
セキュリティゲートウェイの名前の末尾に、トンネルインタフェース番号を付加
する。
選択されているトンネルインタフェース対して設定されているコマンドと同じ
コマンドが、適用先のトンネルインタフェースに既に設定されている場合、
適用先のトンネルインタフェースに設定されているコマンドを優先して適用する。
テンプレートとなるトンネルインタフェースに設定することで、他のトンネル
インタフェースにも展開して適用されるコマンドの一覧は以下のとおりである。
o ipsec ike で始まるコマンドのうち、
パラメータに「セキュリティ・ゲートウェイの識別子」をとるもの
o ipsec auto refresh コマンド
(引数の「セキュリティ・ゲートウェイの識別子」を省略しない場合のみ)
o ipsec tunnel コマンド
o ipsec sa policy コマンド
o tunnel enable コマンド
テンプレートの設定が、実際の設定にどのように反映されているかは、以下の
コマンドを用いることで確認できる。
# show config tunnel TUNNEL_NUM expand
[ノート]
本コマンドはトンネルインタフェースが選択されている時にのみ使用可能である。
[初期値]
トンネルテンプレートは設定されていない
[設定例]
o ipsec sa policy コマンドについて
tunnel select 1
tunnel template 2-3
ipsec sa policy 1 1 esp aes-cbc sha-hmac
上記のコマンドが設定されている時、以下のコマンドが自動的に有効となる。
ipsec sa policy 2 2 esp aes-cbc sha-hmac
ipsec sa policy 3 3 esp aes-cbc sha-hmac
o ipsec ike ... コマンドについて
tunnel select 1
tunnel template 2-3
ipsec ike local address 1 192.168.0.1
上記のコマンドが設定されている時、以下のコマンドが自動的に有効となる。
ipsec ike local address 2 192.168.0.1
ipsec ike local address 3 192.168.0.1
o ipsec ike remote name コマンドについて
tunnel select 1
tunnel template 2-3
ipsec ike remote name 1 pc
上記のコマンドが設定されている時、以下のコマンドが自動的に有効となる。
ipsec ike remote name 2 pc2
ipsec ike remote name 3 pc3
o トンネルインタフェース番号の指定について
適用するトンネルインタフェース番号は、番号の指定と範囲の指定を同時に記述
することが可能である。
# tunnel template 2 4-100
# tunnel template 100 200-300 400
o 以下の2つの設定例は同じ内容を示している。
(設定例1)
tunnel select 1
ipsec tunnel 1
ipsec sa policy 1 1 esp aes-cbc sha-hmac
ipsec ike encryption 1 aes-cbc
ipsec ike group 1 modp1024
ipsec ike local address 1 192.168.0.1
ipsec ike pre-shared-key 1 text himitsu1
ipsec ike remote address 1 any
ipsec ike remote name 1 pc
tunnel enable 1
tunnel select 2
ipsec tunnel 2
ipsec sa policy 2 2 esp aes-cbc sha-hmac
ipsec ike encryption 2 aes-cbc
ipsec ike group 2 modp1024
ipsec ike local address 2 192.168.0.1
ipsec ike pre-shared-key 2 text himitsu2
ipsec ike remote address 2 any
ipsec ike remote name 2 pc2
tunnel enable 2
(設定例2)
tunnel select 1
tunnel template 2
ipsec tunnel 1
ipsec sa policy 1 1 esp aes-cbc sha-hmac
ipsec ike encryption 1 aes-cbc
ipsec ike group 1 modp1024
ipsec ike local address 1 192.168.0.1
ipsec ike pre-shared-key 1 text himitsu1
ipsec ike remote address 1 any
ipsec ike remote name 1 pc
tunnel enable 1
tunnel select 2
ipsec ike pre-shared-key 2 text himitsu2
[書式]
show ipsec sa [ID]
show ipsec sa gateway [GATEWAY_ID] [detail]
[設定値]
ID ... SA の識別子
省略時は全ての SA について表示する
GATEWAY_ID ... セキュリティ・ゲートウェイの識別子
省略時は全てのセキュリティ・ゲートウェイの SA のサマリを表示する
detail ... SA の詳細な情報を表示する
[説明]
IPsec の SA の状態を表示する。
ID で与えられた識別子を持つ SA の情報を表示する。
[ノート]
該当の SA の生成時に XAUTH 認証を行なった場合、
o 認証に使用したユーザ名
o RADIUS 認証を行なったか否か
o 通知した内部 IP アドレス
o 追加した経路情報
o 適用したフィルタの情報
を同時に表示する。
[書式]
show config tunnel [TUNNEL_NUM] [expand]
less config tunnel [TUNNEL_NUM] [expand]
[設定値]
TUNNEL_NUM ... トンネル番号
省略時は、選択されているトンネルについて表示する
[説明]
show config、less config コマンドの表示の中から、
指定したトンネル番号に関するものだけを表示する。
expand キーワードを指定すると、tunnel template コマンドにて指定した
トンネルテンプレートが適用された後の、実際にルータの動作時に参照される
設定を表示する。
-------------------+--------------- 10.1.1.0/24
| .1
+---+-----+
| RTX1500 |
+---+-----+
| .150
----+-------+--------------- 192.168.0.0/24
| .253
+---+----+
| RT300i |
+---+----+
| .254
-------+------+----+----------- 192.168.20.0/24
| |
pc pc2
|
ip route 192.168.20.0/24 gateway 192.168.0.253 ip lan1 address 10.1.1.1/24 ip lan1 proxyarp on ip lan2 address 192.168.0.150/24 tunnel select 1 ipsec tunnel 1 ipsec sa policy 1 1 esp aes-cbc sha-hmac ipsec ike encryption 1 aes-cbc ipsec ike group 1 modp1024 ipsec ike local address 1 192.168.0.150 ipsec ike pre-shared-key 1 text PSKEY1 ipsec ike remote address 1 any ipsec ike remote name 1 pc ipsec ike xauth request 1 on 11 ipsec ike mode-cfg address 1 1 tunnel enable 1 tunnel select 2 ipsec tunnel 2 ipsec sa policy 2 2 esp aes-cbc sha-hmac ipsec ike encryption 2 aes-cbc ipsec ike group 2 modp1024 ipsec ike local address 2 192.168.0.150 ipsec ike pre-shared-key 2 text PSKEY2 ipsec ike remote address 2 any ipsec ike remote name 2 pc2 ipsec ike xauth request 2 on 12 ipsec ike mode-cfg address 2 1 tunnel enable 2 ipsec ike mode-cfg address pool 1 10.1.1.100-10.1.1.101/32 auth user 1 USERNAME1 PASSWORD1 auth user 2 USERNAME2 PASSWORD2 auth user 3 USERNAME3 PASSWORD3 auth user 4 USERNAME4 PASSWORD4 auth user group 11 1 2 auth user group attribute 11 xauth=on auth user group 12 3 4 auth user group attribute 12 xauth=on |
事前共有鍵: PSKEY1 このクライアントの名前: pc 接続先ゲートウェイ: 192.168.0.150 認証アルゴリズム: HMAC-SHA 暗号アルゴリズム: AES-CBC 接続先ネットワーク: 10.1.1.0/24 このクライアントの内部 IP アドレス: IKE 設定モードで指定 |
事前共有鍵: PSKEY2 このクライアントの名前: pc2 |
ip route 192.168.20.0/24 gateway 192.168.0.253 ip lan1 address 10.1.1.1/24 ip lan1 proxyarp on ip lan2 address 192.168.0.150/24 tunnel select 1 tunnel template 2 ipsec tunnel 1 ipsec sa policy 1 1 esp aes-cbc sha-hmac ipsec ike encryption 1 aes-cbc ipsec ike group 1 modp1024 ipsec ike local address 1 192.168.0.150 ipsec ike pre-shared-key 1 text PSKEY1 ipsec ike remote address 1 any ipsec ike remote name 1 pc ipsec ike xauth request 1 on 11 ipsec ike mode-cfg address 1 1 tunnel enable 1 tunnel select 2 ipsec ike pre-shared-key 2 text PSKEY2 ipsec ike xauth request 2 on 12 ipsec ike mode-cfg address pool 1 10.1.1.100-10.1.1.101/32 auth user 1 USERNAME1 PASSWORD1 auth user 2 USERNAME2 PASSWORD2 auth user 3 USERNAME3 PASSWORD3 auth user 4 USERNAME4 PASSWORD4 auth user group 11 1 2 auth user group attribute 11 xauth=on auth user group 12 3 4 auth user group attribute 12 xauth=on |
+---------------+
| RADIUS サーバ |
+-------+-------+
| .2
------------+------+--------------- 10.1.1.0/24
| .1
+---+-----+
| RTX1500 |
+---+-----+
| .150
----+-------+--------------- 192.168.0.0/24
| .253
+---+----+
| RT300i |
+---+----+
| .254
-------+------+---+---+------+- 192.168.20.0/24
| | | |
pc pc2 pc3 .. pc100
|
ip route 192.168.20.0/24 gateway 192.168.0.253 ip lan1 address 10.1.1.1/24 ip lan1 proxyarp on ip lan2 address 192.168.0.150/24 radius auth on radius auth server 10.1.1.2 radius auth port 1812 radius secret SECRET tunnel select 1 tunnel template 2-100 ipsec tunnel 1 ipsec sa policy 1 1 esp aes-cbc sha-hmac ipsec ike encryption 1 aes-cbc ipsec ike group 1 modp1024 ipsec ike local address 1 192.168.0.150 ipsec ike remote address 1 any ipsec ike remote name 1 pc ipsec ike xauth request 1 on tunnel enable 1 tunnel select 3 ipsec sa policy 3 3 esp 3des-cbc md5-hmac |
"pc" Auth-Type := Local, User-Password == "yamaha"
Tunnel-Password = "PSKEY1"
"pc2" Auth-Type := Local, User-Password == "yamaha"
Tunnel-Password = "PSKEY2"
"pc3" Auth-Type := Local, User-Password == "yamaha"
Tunnel-Password = "PSKEY3"
:
"pc100" Auth-Type := Local, User-Password == "yamaha"
Tunnel-Password = "PSKEY100"
|
"USERNAME1" Auth-Type := Local, User-Password == "PASSWORD1"
Reply-Message = "Hello, %u",
Service-Type = Framed-User,
Framed-Protocol = PPP,
Tunnel-Client-Endpoint = "10.1.1.100"
"USERNAME2" Auth-Type := Local, User-Password == "PASSWORD2"
Reply-Message = "Hello, %u",
Service-Type = Framed-User,
Framed-Protocol = PPP,
Tunnel-Client-Endpoint = "10.1.1.101"
:
"USERNAME100" Auth-Type := Local, User-Password == "PASSWORD100"
Reply-Message = "Hello, %u",
Service-Type = Framed-User,
Framed-Protocol = PPP,
Tunnel-Client-Endpoint = "10.1.1.199"
|