IPsec XAUTH 認証機能

$Date: 2025/07/18 15:32:42 $


概要

これまでの IPsec の実装は、拠点間を常時接続する使い方に最適化されており、例えば出張先や自宅からインターネット経由で会社の VPN に接続するような、IPsec クライアントからのリモートアクセスには向いていませんでした。
具体的には、

といった問題が発生します。

これらの問題を解決するために、IPsec の実装を拡張することで、以下の4つの機能を追加します。

(1) XAUTH によるユーザ認証
IKE の Phase1 認証が完了した後、XAUTH によるユーザ認証を行ないます。
XAUTH によるユーザ認証は、IPsec クライアントにおいてユーザに入力させたユーザ ID とパスワードを、ISAKMP SA 上で XAUTH メッセージとして交換することで行ないます。
セキュリティゲートウェイとして動作するルータに届いたユーザ ID とパスワードは、あらかじめルータに登録設定されたユーザ ID ・パスワードと照合され、IPsec クライアントの接続を許可するかどうかが決定されます。
(2) RADIUS サーバによる、ユーザ情報と事前共有鍵の管理
XAUTH によるユーザ認証を行なう際、ユーザ情報の管理方法として、ルータに直接ユーザ ID とパスワードを設定する方法に加えて、RADIUS サーバに設定された認証情報を参照して認証を行なう方法をサポートします。
また、同じくルータに設定しておく必要のあった事前共有鍵についても、IPsec クライアント名をキーして、各 IPsec クライアントに対応する事前共有鍵を RADIUS サーバから取得できるようになります。
これらにより、繁雑なユーザ情報の管理を、RADIUS サーバを用いて一括管理することができます。
(3) tunnel template の新規追加
これまでは、生成する全てのトンネルについて、各トンネルに必要な設定を全て個別に記述する必要がありましたが、複数のトンネル設定の共通部分を抜き出し、テンプレートとして記述できるようにすることで、設定作業を簡単に行なうことができるようになります。
(4) ISAKMP Configuration Method(mode-cfg) を用いた IPsec クライアントへのアドレス付与
現在の IPsec の実装では、IPsec クライアントの使用する内部 IP アドレスは、あらかじめクライアント側で静的に設定しておく必要がありました。
mode-cfg を用いて、セキュリティゲートウェイ側から IPsec クライアントの使用する内部 IP アドレスを割りあてることができるようになります。

注意事項・関連文書


対応機種とファームウェアリビジョン

ヤマハ RT シリーズでは、以下の機種およびファームウェアで、IPsec XAUTH 認証機能をサポートしています。

機種 ファームウェア
vRXシリーズ
すべてのリビジョン
RTX840
RTX3510
RTX1300
RTX1220
RTX830
NVR700W
RTX1210
RTX5000
RTX3500
FWX120
RTX810
RTX1200
SRT100
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 認証機能をサポートしています。


動作確認済みRADIUSサーバ

以下のRADIUSサーバでの動作を確認しています。なお、これらとの接続動作を保証するものではありません。

共通概念と用語定義

用語定義

内部 IP アドレス
VPN の外側にいる IPsec クライアントがインターネット経由で VPN に参加する場合、まずインターネット接続に使用する外部の IP アドレスを用いてセキュリティゲートウェイにアクセスし、IPsec トンネルを生成します。
こうして生成した IPsec トンネルを用いて VPN にアクセスする場合、VPN 内部の IP アドレスを IPsec クライアントに仮想的に割り当てる必要があります。このアドレスのことを本仕様書では「内部 IP アドレス」と呼びます。
IPsec XAUTH 認証機能においては、内部 IP アドレスを、ISAKMP Configuration Method の仕組みを用いて IPsec クライアントに通知します。通知する内部 IP アドレスは、ルータ内部に設定することもできますし、RADIUS サーバを用いて管理することもできます。

詳細

XAUTH 認証について

ISAKMP Configuration Method(mode-cfg)について

RADIUS 認証について


コマンド仕様


設定例

[YMS-VPN1 を用いた VPN 接続(1-1)] - 2つのクライアントをルータ単体で管理

[概要]

[構成図]

  -------------------+--------------- 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

[YMS-VPN1 の設定]

pc の設定
事前共有鍵: PSKEY1
このクライアントの名前: pc
接続先ゲートウェイ: 192.168.0.150
認証アルゴリズム: HMAC-SHA
暗号アルゴリズム: AES-CBC
接続先ネットワーク: 10.1.1.0/24
このクライアントの内部 IP アドレス: IKE 設定モードで指定
pc2 の設定(上記 pc の設定から、以下を変更する。)
事前共有鍵: PSKEY2
このクライアントの名前: pc2

[解説]

  1. ip route 192.168.20.0/24 gateway 192.168.0.253
    経路の設定を行います。
  2. ip lan1 address 10.1.1.1/24
    ip lan2 address 192.168.0.150/24
    lan1・lan2のアドレスを設定します。
  3. tunnel select 1
    1番のトンネルインタフェースを選択します。
  4. ipsec tunnel 1
    1番のトンネルインタフェースは、1番のSAポリシーを使用します。
  5. ipsec sa policy 1 1 esp aes-cbc sha-hmac
    1番のSAポリシーを設定します。
  6. ipsec ike encryption 1 aes-cbc
    ipsec ike group 1 modp1024
    ipsec ike pre-shared-key 1 text PSKEY1
    ipsec ike remote address 1 any
    ipsec ike remote name 1 pc
    IKEのパラメータを設定します。
  7. ipsec ike xauth request 1 on 11
    XAUTHによるユーザ認証をクライアントに要求します。
    11番のユーザグループに含まれるユーザを XAUTH 認証の対象にします。
  8. ipsec ike mode-cfg address 1 1
    1番のアドレスプールから、内部 IP アドレスを割り当て、クライアントに通知します。
  9. tunnel enable 1
    1番のトンネルインタフェースを有効にします。
  10. tunnel select 2 以下は省略
  11. ipsec ike mode-cfg address pool 1 10.1.1.100-10.1.1.101/32
    1番のアドレスプールを定義します。
  12. 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
    XAUTH 認証に使用するユーザとユーザグループを設定します。
    ユーザグループ 11 には USERNAME1 と USERNAME2 の2人のユーザが含まれます。

[YMS-VPN1 を用いた VPN 接続(1-2)] - tunnel template

[概要]

[構成図]

(1-1)と同じ

[設定手順]

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

[YMS-VPN1 の設定]

(1-1)と同じ

[解説]

  1. ip route 192.168.20.0/24 gateway 192.168.0.253
    ip lan1 address 10.1.1.1/24
    ip lan2 address 192.168.0.150/24
    経路とIPアドレスを設定します。
  2. tunnel select 1
    1番のトンネルインタフェースを選択します。
  3. tunnel tepmlate 2
    1番のトンネルインタフェースの設定を、テンプレートとして2番のトンネルインタフェースにも適用します。
  4. 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 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
    1番のトンネルインタフェースの設定を行ないます。
    ポリシー番号(1)とセキュリティ・ゲートウェイの識別子(1)は、テンプレートとして2番のトンネルインタフェースに適用される際に、トンネルインタフェース番号(2)に置換されます。
  5. tunnel select 2
    ipsec ike pre-shared-key 2 text PSKEY2
    ipsec ike xauth request 2 on 12
    2番のトンネルインタフェースに固有の設定を記述します。
  6. ipsec ike mode-cfg address pool 1 10.1.1.100-10.1.1.101/32
    1番のアドレスプールを定義します。
  7. 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
    XAUTH 認証に使用するユーザとユーザグループを設定します。

[YMS-VPN1 を用いた VPN 接続(2)] - 複数のクライアントを RADIUS で認証

[概要]

[構成図]

      +---------------+
      | 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

[YMS-VPN1 の設定]

(1-1)と同じ
事前共有鍵の設定は、RADIUS サーバの設定に合わせる

[RADIUS サーバの設定]

事前共有鍵の設定(FreeRADIUS の users ファイルに以下を記述する)
"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"
ユーザの設定(FreeRADIUS の users ファイルに以下を記述する)
"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"

[解説]

  1. ip route 192.168.20.0/24 gateway 192.168.0.253
    ip lan1 address 10.1.1.1/24
    ip lan2 address 192.168.0.150/24
    経路とIPアドレスを設定します。
  2. radius auth on
    RADIUS によるユーザ認証を有効にします。
  3. radius auth server 10.1.1.2
    radius auth port 1812
    RADIUSサーバのIPアドレスとポート番号を設定します。
  4. radius secret SECRET
    RADIUSシークレットを設定します。
  5. tunnel select 1
    tunnel template 2-100
    ipsec tunnel 101
    ipsec sa policy 1 1 esp aes-cbc sha-hmac
    ipsec ike encryption 1 aes-cbc
    ipsec ike group 1 modp1024
    ipsec ike remote address 1 any
    ipsec ike remote name 1 pc
    ipsec ike xauth request 1 on
    tunnel enable 1
    1番のトンネルインタフェースを設定します。
    このトンネルインタフェースは、2-100番のトンネルインタフェースにもテンプレートとして適用されます。
    テンプレートとして適用される際、 101 が書かれているところは全て適用先のトンネルインタフェース番号に置換されます。
  6. tunnel select 3
    ipsec sa policy 3 3 esp 3des-cbc md5-hmac
    3番のトンネルインタフェース固有の設定を記述します。
    pc3 だけ異なる SA ポリシーを定義するのに使用しています。

[EOF]