リモートアクセスサーバ:IKEv2
IPsecACによるIKEv2リモートアクセスサーバを提供する設定例。
始める前に
- グローバルIPv4アドレスを1個、固定で割り当てられるPPPoE型のインターネット接続サービスを契約しているものとします。ここではアクセス回線にNTT フレッツ・光ネクスト、ISPにIIJ FiberAccess/F サービス(1/256C)を使用するものとします。
- IKEv2リモートアクセスを使用するには認証局(CA)に署名されたサーバ証明書(PEM形式のX.509 証明書)を用意する必要があります。自己署名証明書は使用できません。ここでは公的な認証局に署名されたサーバ証明書を使用するものとします。
- 公的な認証局の署名を受けずに運用する場合は、プライベート認証局を用意し、プライベート認証局に署名された証明書をコンフィグに設定し、プライベート認証局の証明書を各クライアント端末のルートCAストアに登録する必要があります。プライベート認証局を利用する場合でも本装置の設定方法は同じです。
- 適合ファームウェア
- SEIL/X4, SEIL/x86 Ayame, SEIL CA10:ver.3.30以降
このタスクについて
- インターネットアクセスルータ(IPv4 PPPoE)とリモートアクセスサーバを兼ねる設定例です。リモートアクセスクライアントはVPN接続時に本装置を経由してインターネットへもアクセス可能です。
構成イメージ

サンプルコンフィグ
hostname : ${hostname}
interface.pppoe0.id : ${pppoe0_id}
interface.pppoe0.password : ${pppoe0_password}
interface.ge1.ipv4.address : ${lan_address}${lan_prefixlen}
interface.ipsecac0.ike.v2.authentication.0.type : local
interface.ipsecac0.ike.v2.authentication.0.realm.suffix : @${hostname}
interface.ipsecac0.ike.v2.authentication.0.user.1.name : ${user1_name}
interface.ipsecac0.ike.v2.authentication.0.user.1.password : ${user1_password}
interface.ipsecac0.ike.v2.authentication.0.user.2.name : ${user2_name}
interface.ipsecac0.ike.v2.authentication.0.user.2.password : ${user2_password}
interface.ipsecac0.ike.v2.config.pool.ipv4.0.type : dynamic
interface.ipsecac0.ike.v2.config.pool.ipv4.0.address : ${ipsecac0_pool_address}
interface.ipsecac0.ike.v2.config.dns-server.ipv4.0.address : ${ipsecac0_address}
interface.ipsecac0.ipv4.address : ${ipsecac0_address}
interface.ipsecac0.ike.v2.my-identifier.type: ${ipsecac0_id_type}
interface.ipsecac0.ike.v2.my-identifier.fqdn: ${ipsecac0_id_fqdn}
interface.ipsecac0.ipv4.source : ${ipsecac0_id_address}
interface.ipsecac0.ike.v2.certificate : ${ipsecac0_certificate}
ike.v2.private-key : ${ipsecac0_private-key}
route.ipv4.0.destination : default
route.ipv4.0.gateway : pppoe0
nat.ipv4.napt.0.private : ${napt_private}
nat.ipv4.napt.0.interface : pppoe0
dns-forwarder.service : enable
dns-forwarder.0.address : ipcp
dns-forwarder.listen.ipv4.0.interface : ge1
dns-forwarder.listen.ipv4.1.interface : ipsecac0
dhcp.server.service : enable
dhcp.server.0.interface : ge1
dhcp.server.0.pool.address : ${pool_address}${lan_prefixlen}
dhcp.server.0.pool.count : ${pool_count}
dhcp.server.0.dns.0.address : ${lan_address}
ntp.service : enable
ntp.client.0.address : ${ntp_address}
resolver.service : enable
resolver.0.address : ipcp
filter.ipv4.0.action : pass
filter.ipv4.0.interface : any
filter.ipv4.0.direction : in
filter.ipv4.0.source.address : 202.221.49.0/24
filter.ipv4.0.destination.address : self
filter.ipv4.0.logging : off
filter.ipv4.2.action : pass
filter.ipv4.2.interface : any
filter.ipv4.2.direction : in
filter.ipv4.2.source.address : 202.221.50.0/23
filter.ipv4.2.destination.address : self
filter.ipv4.2.logging : off
route.ipv4.10001.destination : 202.221.49.0/24
route.ipv4.10001.gateway : pppoe0
route.ipv4.10001.distance : 1
route.ipv4.10002.destination : 202.221.49.0/24
route.ipv4.10002.gateway : discard
route.ipv4.10002.distance : 100
route.ipv4.10003.destination : 202.221.50.0/23
route.ipv4.10003.gateway : pppoe0
route.ipv4.10003.distance : 1
route.ipv4.10004.destination : 202.221.50.0/23
route.ipv4.10004.gateway : discard
route.ipv4.10004.distance : 100
用意するパラメータ
項目 | 設定箇所 | サンプル拠点 | 備考 |
---|---|---|---|
ホスト名 | ${hostname} | sa01 | |
リモートアクセスユーザ1のユーザ名 | ${user1_name} | user01 | |
リモートアクセスユーザ1のパスワード | ${user1_password} | user01password | |
リモートアクセスユーザ2のユーザ名 | ${user2_name} | user02 | |
リモートアクセスユーザ2のパスワード | ${user2_password} | user02password | |
トンネル終端アドレス | ${ipsecac0_address} | 192.168.2.1 | |
リモートアクセスクライアント用アドレスプール(サブネット) | ${ipsecac0_pool_address} | 192.168.2.0/24 | 192.168.2.2-192.168.2.254の範囲 |
IKEv2自己識別子の種類(リモートアクセスサーバアドレスの種類) | ${ipsecac0_id_type} | fqdn(またはaddress) | 証明書のCommonNameに合わせる |
IKEv2自己識別子のFQDN(種類がfqdnの場合) | ${ipsecac0_id_fqdn} | example.seil.jp | 証明書のCommonNameに合わせる |
IKEv2自己識別子のIPアドレス(種類がaddressの場合) | ${ipsecac0_id_address} | 203.0.113.1 | 証明書のCommonNameに合わせる |
サーバ証明書 | ${ipsecac0_certificate} | "(証明書の文字列)" | |
サーバ証明書の秘密鍵 | ${ipsecac0_private-key} | "(秘密鍵の文字列)" | |
PPPoE接続サービスから指定されたID | ${pppoe0_id} | s1user@s1.example.jp | 置換必須 |
PPPoE接続サービスから指定されたパスワード | ${pppoe0_password} | s1passowrd | 置換必須 |
SAのLAN側アドレス | ${lan_address} | 192.168.1.1 | |
LANのサブネットマスク | ${lan_prefixlen} | /24 | |
NAPT適用範囲 | ${napt_private} | 192.168.1.0-192.168.2.255 | |
DHCPのアドレスプールの先頭 | ${pool_address} | 192.168.1.2 | |
DHCPのアドレスプールの個数 | ${pool_count} | 253 | 192.168.1.2-192.168.1.254の範囲 |
NTPサーバアドレス | ${ntp_address} | 192.0.2.123 | 置換必須/無指定時はNTPが動作しない |
- サンプルCSV(SACMテンプレートセット向け)
- 【ダウンロード】
テンプレート用サンプルCSV
[name],[sa_label],hostname,user1_name,user1_password,user2_name,user2_password,ipsecac0_address,ipsecac0_pool_address,ipsecac0_id_type,ipsecac0_id_fqdn,ipsecac0_id_address,ipsecac0_certificate,ipsecac0_private-key,pppoe0_id,pppoe0_password,lan_address,lan_prefixlen,napt_private,pool_address,pool_count,ntp_address
[default],,,,,,,,,,,,,,,,,,,,,
<sa-Code>,サンプル拠点,SA01,user01,user01password,user02,user02password,192.168.2.1,192.168.2.0/24,fqdn(またはaddress),example.seil.jp,203.0.113.1,"(証明書の文字列)","(秘密鍵の文字列)",s1user@s1.example.jp,s1passowrd,192.168.1.1,/24,192.168.1.0-192.168.2.255,192.168.1.2,253,192.0.2.123
注:
<SA-Code>
を実在するSAコードに書き換える必要があります。
警告:
- CSV操作に関する注意
- インポート操作は取り消せません。
コンフィグの説明
- 認証レルム
-
interface.ipsecac0.ike.v2.authentication.0.type : local interface.ipsecac0.ike.v2.authentication.0.realm.suffix : @${hostname} interface.ipsecac0.ike.v2.authentication.0.user.1.name : ${user1_name} interface.ipsecac0.ike.v2.authentication.0.user.1.password : ${user1_password}
- リモートアクセス用アドレスプール
-
interface.ipsecac0.ike.v2.config.pool.ipv4.0.type : dynamic interface.ipsecac0.ike.v2.config.pool.ipv4.0.address : ${ipsecac0_pool_address}
- IPsecACインタフェースのIPアドレス (interface.ipsecac0.ipv4.address)
- VPNトンネルのトンネル終端アドレスを指定します。一般的に他のネットワークと重複しないプライベートアドレスを使用します。
- クライアントに通知するDNS(interface.ipsecac0.ike.v2.config.dns-server.ipv4.0.address)
- ここではDNS中継機能を使用するため、トンネル終端アドレスを指定しています。
- 証明書証明書と秘密鍵
- サーバ証明書と秘密鍵は、PEM形式のテキストの改行を
\\n
に置き換えて、1行で記述します。 - IKEv2の折衝
-
interface.ipsecac0.ike.v2.my-identifier.type: ${ipsecac0_id_type} interface.ipsecac0.ike.v2.my-identifier.fqdn: ${ipsecac0_id_fqdn} interface.ipsecac0.ipv4.source : ${ipsecac0_id_address}
IPsecACに関する設定項目は以上です。以下の項目は基本的なインターネット接続やLANに関する設定です。
- PPPoE (interface.pppoe0...)
- IDとパスワードを設定するのみで接続可能です。設定が反映され次第接続を開始し、接続状態を維持します。
- 静的経路 (route.ipv4...)
- デフォルト経路を設定し、ゲートウェイにPPPoEインタフェースを指定します。
- LANインタフェース (interface.ge1...)
- LANのプライベートアドレスを設定します。
- NAPT (nat.ipv4.napt...)
- 指定範囲に一致するプライベートアドレスを送信元とするパケットをPPPoEインタフェースから送信するときNAPTが適用されます。
- DNS中継 (dns-forwarder...)
- LAN内のホストからDNSクエリを受信し中継することができます。キャッシュ機能は持ちません。
- DHCPサーバ (dhcp.server...)
- LAN内のホストがアドレス設定を自動構成するための情報を提供します。
- NTPクライアント (ntp...)
- システムの時刻合わせによりログ等の確認がしやすくなります。
- リゾルバ (resolver)
- 本装置自身が名前解決に使用します。
- IPフィルタ (filter.ipv4...)
- サンプルではSMFv2サービスの通信要件に当たるネットワークを明示的にパスしていますが、これを含む範囲をブロックするフィルタを設定しない場合は省略できます。