本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^
異機種間のIPSec設定はしんどい
同じメーカでのIPSec設定は、事例集も充実しており、比較的簡単に設定する事ができますが、これが他メーカ製品でIPSec通信設定を行おうと思うと、それぞれの作法が少しちがったりするので大変骨が折れます。
今回は、YAMAHA RTX830と、アライド AT-AR1050V の間でIPSec通信設定がうまくいきましたので、設定時のコツを書いていきたいと思います。
どちらかというとYAMAHAルータでコンフィグを変えながら設定に成功した方法をメモします。以下のログや設定はYAMAHA RTX830の設定です。
遭遇したエラーログ
私が遭遇したエラーログです。
2024/10/22 17:35:38: [IKE] no SPI is specified.
2024/10/22 17:35:38: [IKE] no proposal chosen : no message
一方の機器が送信した提案が、他方の機器で受理されない場合です。 始動側と応答側はともに提案を送信するので、 両方の機器が相互に提案を受理しなければ、鍵交換は成立しません。 提案を拒否した機器のログには、 「提案(proposal)が選ばれなかった」 というような意味のメッセージが出力されます。 なお、提案を拒否された側の機器には、何のログも表示されないことがあるので、 注意が必要です。この場合には、単に再送を繰り返していることが多いと思われます。
この場合には、まず、パラメータの整合性を確認します。 3.で説明したパラメータについては、再確認が必要になります。 あるいは、他の値に変更することで解決できる可能性もあります。 例えば、IDとしてタイプ1を設定していたら、 これをタイプ4に変更したり、 IDの送信を止めてみます。 また、寿命の値や、PFSの値などを変更してみる価値もあります。 パラメータを変更するときには、両方の機器で同じように変更します。
[IKE2] SA:1/IKE iWindow retransmit request[msgID:0 cnt:0]
[IKE2] GW:*/SA:2/INIT no NAT box detected at remote side
[IKE2] cannot find or create IKE SA
ログを詳しく出す方法
上記エラーログを吐いてもらうためには、以下のコマンドにて、ログ詳細が出力されるように設定しておきます。ログの中身が多少わからくても、コマンドを変えていく中で、IPSecの接続段階が変わっていくので、とても参考になります。
syslog debug on
syslog notice on
相手先と正常に接続できたときのログ
2024/10/23 11:04:27: [IKE2] GW:1/SA:1/INFO exchange started
2024/10/23 11:04:27: [IKE2] GW:1/SA:1/INFO exchange terminated
2024/10/23 11:04:27: [IKE2] SA:1/IKE deleted
2024/10/23 11:04:27: [IKE2] SA:1/IKE temporarily assigned
2024/10/23 11:04:27: [IKE2] SA:1/IKE assigned gateway GW:1
2024/10/23 11:04:27: [IKE2] GW:1/SA:1/INIT exchange started
2024/10/23 11:04:27: [IKE2] GW:1/SA:1/INIT no NAT box detected at remote side
2024/10/23 11:04:27: [IKE2] GW:1/SA:1/INIT no NAT box detected at local side
2024/10/23 11:04:27: [IKE2] SA:1/IKE established
2024/10/23 11:04:27: [IKE2] SA:2/CHLD_SEND temporarily assigned
2024/10/23 11:04:27: [IKE2] SA:3/CHLD_RECV temporarily assigned
2024/10/23 11:04:27: [IKE2] SA:2/CHLD_SEND bound on SA:1/IKE
2024/10/23 11:04:27: [IKE2] SA:3/CHLD_RECV bound on SA:1/IKE
2024/10/23 11:04:27: [IKE2] SA:2/CHLD_SEND assigned policy TN:1/PY:1
2024/10/23 11:04:27: [IKE2] SA:3/CHLD_RECV assigned policy TN:1/PY:1
2024/10/23 11:04:27: [IKE2] GW:1/SA:1/AUTH exchange started
2024/10/23 11:04:27: [IKE2] SA:2/CHLD_SEND established
2024/10/23 11:04:27: [IKE2] SA:3/CHLD_RECV established
2024/10/23 11:04:27: IP Tunnel[1] Up
ipsecがうまくいっているかを試すコマンド
show ipsec sa
正常時のログ
# show ipsec sa
Total: isakmp:1 send:1 recv:1
sa sgw isakmp connection dir life[s] remote-id
----------------------------------------------------------------------------
1 1 - ike - 27014 相手先IP
2 1 1 tun[0001]esp send 25214 相手先IP
3 1 1 tun[0001]esp recv 25214 相手先IP
show ipsec sa gateway 1 detail
正常時のログ
# show ipsec sa gateway 1 detail
SA[1] 状態: 確立済 寿命: 26913秒
プロトコル: IKEv2
ローカルホスト: 自分元IP:62465
リモートホスト: 相手先IP:62465
内部アドレス: 未定義
暗号アルゴリズム: AES128_CBC PRF : HMAC_SHA2_256
認証アルゴリズム: HMAC_SHA2_256_128 DHグループ: MODP_1024
SPI: af 48 11 4e b3 eb cf a2 9e 64 df 83 be bd 89 67
鍵 : ** ** ** ** ** (confidential) ** ** ** ** **
----------------------------------------------------
SA[2] 状態: 確立済 寿命: 25113秒 1999980キロバイト
送受信方向: 送信
プロトコル: ESP (モード: tunnel)
ローカルID: 自分元IP (IPv4_ADDR)
リモートID: 相手先IP (IPv4_ADDR)
暗号アルゴリズム: AES128_CBC
認証アルゴリズム: HMAC_SHA2_256_128 ESN: DISABLE
始点トラフィック セレクタ (タイプ / プロトコル / ポート / アドレス)
IPv4-range / any / 0-65535 / 0.0.0.0-255.255.255.255
終点トラフィック セレクタ (タイプ / プロトコル / ポート / アドレス)
IPv4-range / any / 0-65535 / 0.0.0.0-255.255.255.255
SPI: cc db 84 ca
鍵 : ** ** ** ** ** (confidential) ** ** ** ** **
----------------------------------------------------
SA[3] 状態: 確立済 寿命: 25113秒 1999980キロバイト
送受信方向: 受信
プロトコル: ESP (モード: tunnel)
ローカルID: 自分元IP (IPv4_ADDR)
リモートID: 相手先IP (IPv4_ADDR)
暗号アルゴリズム: AES128_CBC
認証アルゴリズム: HMAC_SHA2_256_128 ESN: DISABLE
SPI: 75 14 8f 39
鍵 : ** ** ** ** ** (confidential) ** ** ** ** **
----------------------------------------------------
YAMAHA RTX830の設定
今回のIPSec通信は相手先も、自分元も固定IPで行いました。固定IPにするとフィルタでそれ以外のIPアドレスを拒否する設定ができるので、それだけセキュリティを高める事が可能です。
PPPoEにて接続
pp select 1
description pp Interrink-TakeoBijutsukan
pp keepalive interval 30 retry-interval=30 count=12
pp always-on on
pppoe use lan2
pppoe auto disconnect off
pp auth accept pap chap
pp auth myname インターリンク パスワード
ppp lcp mru on 1454
ppp ipcp msext on
ppp ccp type none
ip pp address 固定IP/32
ip pp secure filter in 200200 200201 200202
ip pp nat descriptor 1000
pp enable 1
tunnel select 1
固定IPは、インターリンクで取得しています。2か月間無料で利用できるのでテストで利用するのにも適していますし、月額料金もリーズナブルです。
IPSecの設定
tunnel select 1
description tunnel IPSec
ipsec tunnel 1
ipsec sa policy 1 1 esp aes-cbc sha256-hmac
ipsec ike version 1 2
ipsec ike duration child-sa 1 27000
ipsec ike duration ike-sa 1 28800
ipsec ike encryption 1 aes-cbc
ipsec ike group 1 modp1024
ipsec ike hash 1 sha256
ipsec ike keepalive log 1 off
ipsec ike keepalive use 1 on dpd
ipsec ike local address 1 自分元IP
ipsec ike local name 1 自分元IP ipv4-addr
ipsec ike nat-traversal 1 on type=2
ipsec ike pre-shared-key 1 text シークレット共有キー
ipsec ike remote address 1 相手先IP
ipsec ike remote name 1 相手先IP ipv4-addr
ip tunnel tcp mss limit auto
tunnel enable 1
フィルター設定
ip filter 200200 pass 相手先IP 自分元IP udp * 500
ip filter 200201 pass 相手先IP 自分元IP esp
ip filter 200202 pass 相手先IP 自分元IP udp * 4500
NATディスクリプター
nat descriptor address outer 1000 自分元IP
nat descriptor masquerade static 1000 1 自分元IP udp 500
nat descriptor masquerade static 1000 2 自分元IP esp
nat descriptor masquerade static 1000 3 自分元IP udp 4500
アライド AT-AR1050Vの設定
プライベートゾーンの設定
zone private
network lan
ip subnet 173.19.0.0/30
ip subnet 192.168.100.0/24 interface tunnel3
フィルタを書くためのアプリケーション設定
application esp
protocol 50
!
application isakmp
protocol udp
sport 500
dport 500
フィルタ設定
firewall
rule 10 permit any from private to private
rule 20 permit any from private to public
rule 30 permit isakmp from public.wan.ppp0 to public.wan
rule 40 permit isakmp from public.wan to public.wan.ppp0
rule 50 permit esp from public.wan.ppp0 to public.wan
rule 60 permit esp from public.wan to public.wan.ppp0
rule 70 permit ping from public to public
rule 80 permit ntp from public to public
protect
nat設定
nat
rule 10 masq any from private to public
enable
IPSec設定
crypto ipsec profile ipsec1
lifetime seconds 27000
transform 1 protocol esp integrity SHA256 encryption AES128
!
crypto isakmp profile isakmp1
version 2
lifetime 28800
transform 1 integrity SHA256 encryption AES128 group 2
シークレット共有キーの設定
crypto isakmp key シークレット共有キー address 相手先IP
プロファイルの指定
crypto isakmp peer address 相手先IP profile isakmp1
IPSec Tunnel設定
※ip address 173.19.0.1/30 この設定曲者だと思います。実際に利用するIPではないのですが、IPSec通信するためには必要で、この設定しておかないと通信ができません。メーカーにも問い合わせたのですが、なぜ必要なのかは理解できませんでした。
interface tunnel3
mtu 1300
tunnel source 自分元IP
tunnel destination 相手先IP
tunnel protection ipsec profile ipsec1
tunnel mode ipsec ipv4
ip address 173.19.0.1/30
ip tcp adjust-mss 1260
PPPoE設定
固定IPは、インターリンクで取得しています。2か月間無料で利用できるのでテストで利用するのにも適していますし、月額料金もリーズナブルです。
interface ppp0
ppp ipcp dns request
keepalive
ppp username インターリンクユーザ名
ppp password パスワード
ip address 固定IP/32
ip tcp adjust-mss pmtu
ルーティング
ip route 192.168.100.0/24 null 254
ip route 192.168.100.0/24 tunnel3