VPNが貼れない原因


1. クライアント側の原因(AnyConnect / Secure Client)

① ユーザー名・パスワード / 証明書が不正

  • RADIUS / LDAP 認証失敗
  • ローカルユーザー未作成
  • 証明書期限切れ、CA証明書未インポート

② DNS で VPN サーバの名前が引けない

  • vpn.example.com が解決できない
  • hosts ファイルの誤記

③ クライアントのバージョンが古い

  • Firepower が IKEv2 only設定なのに、クライアントの古いバージョンが IKEv2 を使えない
  • Windows 更新で互換性問題

④ Windowsのネットワーク保護系の干渉

  • Windows Defender / Firewall のブロック
  • 会社PCでファイアウォールルールが強すぎる
  • 他のVPNソフト(FortiClient、GlobalProtect など)と競合

2. ネットワーク側の原因

① UDP/443 が閉じている(AnyConnect 必須ポート)

AnyConnect(Secure Client)は基本的に:

  • TCP/443
  • UDP/443(DTLS)
  • UDP/500 / UDP/4500(IPsec)

のどれかを使用。
企業ネットワークではUDP/443が塞がれていることが多い。

② NAT / PAT 周りの問題

  • NAT-T が使えず、IPsec が通らない
  • FW が ESP(IP Protocol 50)をブロック

③ パブリックIP が装置まで届かない

  • WAN ルーターで hairpin NAT が発生
  • グローバルIP が ASA/Firepower までルーティングされていない
  • ISP 側の CGN(Carrier NAT)環境

3. VPN 装置(ASA / Firepower)側の典型的な原因

① AnyConnect を格納していない(ASA 特有)

webvpn
 enable outside
 anyconnect image disk0:/anyconnect-win.msi 1
 anyconnect enable

が無いと接続できない。

② トンネルグループ(tunnel-group)の設定漏れ

特にこれが多い。

tunnel-group MYGROUP type remote-access
tunnel-group MYGROUP general-attributes
 address-pool VPNPOOL
 default-group-policy DFLT-GROUP-POLICY

default-group-policy が無い → 認証成功でも接続できない。

③ IP プール設定漏れ

ip local pool VPNPOOL 192.168.100.1-192.168.100.50

の未設定 or 重複。

※ プールと内部ネットワークが重なると非常に不安定になります。

④ ACL のスプリットトンネリング設定ミス

  • 企業LANがトンネル外ルートに出てしまう
  • 必要な宛先がスプリットACLに入っていない

例:

access-list SPLIT standard permit 192.168.10.0 255.255.255.0

⑤ NAT exemption(NAT除外)の漏れ(ASAで最重要)

ASA では VPN→内部ネットワーク の通信を NAT から除外しないと到達しません。

nat (inside,outside) source static inside inside destination static VPNPOOL VPNPOOL no-proxy-arp route-lookup

これが無いと VPN接続は成功するが_ping通らない_ という典型症状。

⑥ IKE / IPsec パラメータ不一致

  • 暗号方式
  • DH group
  • Lifetime
  • ハッシュ方式
    ASA と クライアント設定が一致していないと Phase1 / Phase2 で失敗。

⑦ AnyConnect ライセンス不足

Firepower / ASA で同時接続数以上 → 新規接続拒否。

4. 動作確認の順番(最短で原因を特定する方法)

① ping で到達性確認

ping <ASA/FWの外側IP>

② ASA のログ確認

show log | i WebVPN
show log | i SSL
show log | i IKE

③ セッション状況

show vpn-sessiondb anyconnect
show vpn-sessiondb detail

④ NATテーブル確認

show nat detail

⑤ AnyConnectのログ

クライアント画面 → “Message History”
ここに理由がほぼ必ず出ています。