6.14. IPsec 設定のトラブルシューティング


IPsec 設定の失敗の診断は困難な場合があります。設定の不一致、ファイアウォールルール、カーネルレベルのエラーによって問題が発生することがあるためです。以下では、IPsec VPN 接続に関する一般的な問題を解決するための体系的な方法を説明します。

6.14.1. 基本的な接続の問題

VPN 接続の問題は、エンドポイント間の設定の不一致が原因で発生することがよくあります。

IPsec 接続が確立されていることを確認するには、次のように入力します。

# ipsec trafficstatus
006 #8: "vpn.example.com"[1] 192.0.2.1, type=ESP, add_time=1595296930, inBytes=5999, outBytes=3231, id='@vpn.example.com', lease=198.51.100.1/32
Copy to Clipboard Toggle word wrap

接続が正常な場合、このコマンドで、接続の名前と詳細を含むエントリーが表示されます。出力が空の場合、トンネルが確立されていません。

6.14.3. 設定の不一致

各エンドポイントが、同じ Internet Key Exchange (IKE) バージョン、アルゴリズム、IP アドレス範囲、または事前共有鍵 (PSK) で設定されていない場合、VPN 接続は失敗します。不一致が見つかった場合は、両方のエンドポイントの設定を調整して問題を解決する必要があります。

リモートピアが IKE/IPsec を実行していない

接続が拒否された場合、次の ICMP エラーが表示されます。

# ipsec up vpn.example.com
...
000 "vpn.example.com"[1] 192.0.2.2 #16: ERROR: asynchronous network error report on wlp2s0 (192.0.2.2:500), complainant 198.51.100.1: Connection refused [errno 111, origin ICMP type 3 code 3 (not authenticated)]
Copy to Clipboard Toggle word wrap
IKE アルゴリズムの不一致

初期セットアップ中に NO_PROPOSAL_CHOSEN 通知が表示され、接続が失敗します。

# ipsec up vpn.example.com
...
003 "vpn.example.com"[1] 193.110.157.148 #3: dropping unexpected IKE_SA_INIT message containing NO_PROPOSAL_CHOSEN notification; message payloads: N; missing payloads: SA,KE,Ni
Copy to Clipboard Toggle word wrap
IPsec アルゴリズムの不一致

最初の交換後、NO_PROPOSAL_CHOSEN エラーで接続が失敗します。

# ipsec up vpn.example.com
...
182 "vpn.example.com"[1] 193.110.157.148 #5: STATE_PARENT_I2: sent v2I2, expected v2R2 {auth=IKEv2 cipher=AES_GCM_16_256 integ=n/a prf=HMAC_SHA2_256 group=MODP2048}
002 "vpn.example.com"[1] 193.110.157.148 #6: IKE_AUTH response contained the error notification NO_PROPOSAL_CHOSEN
Copy to Clipboard Toggle word wrap
IP アドレス範囲の不一致 (IKEv2)

リモートピアが TS_UNACCEPTABLE エラーで応答します。

# ipsec up vpn.example.com
...
1v2 "vpn.example.com" #1: STATE_PARENT_I2: sent v2I2, expected v2R2 {auth=IKEv2 cipher=AES_GCM_16_256 integ=n/a prf=HMAC_SHA2_512 group=MODP2048}
002 "vpn.example.com" #2: IKE_AUTH response contained the error notification TS_UNACCEPTABLE
Copy to Clipboard Toggle word wrap
IP アドレス範囲の不一致 (IKEv1)

クイックモード中に接続がタイムアウトし、ピアがプロポーザルを受け入れなかったことを示すメッセージが表示されます。

# ipsec up vpn.example.com
...
031 "vpn.example.com" #2: STATE_QUICK_I1: 60 second timeout exceeded after 0 retransmits.  No acceptable response to our first Quick Mode message: perhaps peer likes no proposal
Copy to Clipboard Toggle word wrap
PSK の不一致 (IKEv2)

ピアが接続を拒否し、AUTHENTICATION_FAILED エラーが発生します。

# ipsec up vpn.example.com
...
003 "vpn.example.com" #1: received Hash Payload does not match computed value
223 "vpn.example.com" #1: sending notification INVALID_HASH_INFORMATION to 192.0.2.23:500
Copy to Clipboard Toggle word wrap
PSK の不一致 (IKEv1)

ハッシュペイロードが一致しないため、IKE メッセージが読み取り不能になり、INVALID_HASH_INFORMATION エラーが発生します。

# ipsec up vpn.example.com
...
002 "vpn.example.com" #1: IKE SA authentication request rejected by peer: AUTHENTICATION_FAILED
Copy to Clipboard Toggle word wrap

6.14.4. MTU の問題

パケットのサイズは、暗号化およびカプセル化のプロセスにより増加します。パケットがネットワークの最大転送単位 (MTU) (通常は 1500 バイト) を超えると、パケットは断片化されます。これにより、断続的な接続障害が発生し、断片が失われ、元のパケットを再構成できなくなることがあります。一般的な症状としては、ping などの小さなパケットでは正常に動作するが、SSH セッションなどの大きなパケットではログイン後にフリーズすることなどが挙げられます。

この問題を解決するには、設定ファイルに mtu=1400 オプションを追加して、トンネルの MTU を下げます。

6.14.5. NAT の競合

IPsec ホストが NAT ルーターとしても機能する場合、IPsec トンネル宛のパケットに誤って NAT が適用されることがあります。たとえば、IPsec 暗号化が適用される前に、パケットの送信元 IP アドレスがマスカレードルールによって変換されると、そのパケットの送信元が IPsec ポリシーと一致しなくなり、Libreswan がそのパケットを暗号化せずにネットワーク経由で送信してしまいます。

この問題を解決するには、IPsec サブネット間のトラフィックを NAT から除外するファイアウォールルールを追加します。このルールは、一般的な NAT ルールの前に処理されるように、POSTROUTING チェーンの先頭に挿入する必要があります。

例6.1 nftables フレームワークを使用した解決策

次の例では、nftables を使用して、192.0.2.0/24 サブネットと 198.51.100.0/24 サブネット間のトラフィックをアドレス変換から除外する基本的な NAT 環境を設定します。

# nft add table ip nat
# nft add chain ip nat postrouting { type nat hook postrouting priority 100 \; }
# nft add rule ip nat postrouting ip saddr 192.0.2.0/24 ip daddr 198.51.100.0/24 return
Copy to Clipboard Toggle word wrap

6.14.6. カーネルレベルの IPsec の問題

よくある問題として、VPN トンネルが正常に確立されたように見えても、トラフィックが通過しないことがあります。このような場合は、カーネルの IPsec の状態を調べて、トンネルポリシーと暗号鍵が正しくインストールされているかどうかを確認できます。

このプロセスでは、次の 2 つのコンポーネントをチェックします。

  • Security Policy Database (SPD): 暗号化するトラフィックをカーネルに指示するルール。
  • Security Association Database (SAD): そのトラフィックを暗号化する方法をカーネルに指示する鍵。

まず、SPD に正しいポリシーが存在するかどうかを確認します。

# ip xfrm policy
src 192.0.2.1/32 dst 10.0.0.0/8
	dir out priority 666 ptype main
	tmpl src 198.51.100.13 dst 203.0.113.22
		proto esp reqid 16417 mode tunnel
Copy to Clipboard Toggle word wrap

出力に、leftsubnet および rightsubnet パラメーターに一致するポリシーが、in 方向と out 方向の両方で含まれているはずです。トラフィックのポリシーが表示されない場合は、Libreswan がカーネルルールの作成に失敗しており、トラフィックは暗号化されていません。

ポリシーが存在する場合は、SAD 内に対応する鍵セットがあるかどうかを確認します。

# ip xfrm state
src 203.0.113.22 dst 198.51.100.13
	proto esp spi 0xa78b3fdb reqid 16417 mode tunnel
	auth-trunc hmac(sha1) 0x3763cd3b... 96
	enc cbc(aes) 0xd9dba399...
Copy to Clipboard Toggle word wrap
警告

このコマンドにより、秘密の暗号鍵が表示されます。この出力を共有しないでください。攻撃者がこの出力を使用して VPN トラフィックを復号するおそれがあります。

ポリシーが存在するにもかかわらず、同じ reqid を持つ対応する状態が表示されない場合は、通常、Internet Key Exchange (IKE) ネゴシエーションが失敗しています。2 つの VPN エンドポイントが、鍵セットについて合意できなかったということです。

より詳細な診断を行うには、いずれかのコマンドで -s オプションを使用します。このオプションはトラフィックカウンターを追加します。これは、カーネルが特定のルールに従ってパケットを処理しているかどうかを確認するのに役立ちます。

6.14.7. カーネル IPsec サブシステムのバグ

まれに、カーネルの IPsec サブシステムの不具合により、Internet Key Exchange (IKE) ユーザー空間デーモンとの同期が失われる場合があります。この同期のずれにより、ネゴシエートされたセキュリティーアソシエーションと、カーネル内における IPsec ポリシーの実際の適用との間にずれが生じ、セキュアなネットワーク通信が中断される場合があります。カーネルレベルのエラーを確認するには、変換 (XFRM) の統計情報を表示します。

# cat /proc/net/xfrm_stat
Copy to Clipboard Toggle word wrap

出力内のいずれかのカウンター (XfrmInError など) がゼロ以外の値を示している場合、カーネルサブシステムに問題があります。このような場合は、サポートケース を作成し、コマンドの出力と対応する IKE ログを添付してください。

6.14.8. Libreswan ログの表示

Libreswan はイベントをジャーナルに記録します。ipsec サービスのジャーナルを表示するには、次のように入力します。

# journalctl -xeu ipsec
Copy to Clipboard Toggle word wrap

デフォルトのロギングレベルでは十分な詳細情報が得られない場合は、/etc/ipsec.conf ファイルの config setup セクションに次の設定を追加して、包括的なデバッグロギングを有効にします。

plutodebug=all
logfile=/var/log/pluto.log
Copy to Clipboard Toggle word wrap

デバッグロギングでは多数のエントリーが生成されることがあります。そのため、メッセージを専用のログファイルにリダイレクトすると、journald および systemd サービスによるメッセージのレート制限を防ぐことができます。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat