PermitANY

Cisco ASA AnyConnect SSL VPN

Cisco ASAIntermediate

Configure Cisco AnyConnect SSL VPN on an ASA for remote user access — the most common remote access VPN solution in enterprise environments.

↓ example.txt

What is it?

Cisco AnyConnect is the industry-standard SSL VPN client for remote access. Users install the AnyConnect client on their laptop/phone, connect to the ASA's public IP, authenticate, and get a virtual IP from the VPN pool — giving them access to internal corporate resources as if they were physically in the office. AnyConnect uses SSL/TLS (port 443), which means it works through almost any firewall or hotel/airport network without needing special UDP ports open.

✓ When to use

  • ·Employees working from home or traveling who need access to internal resources
  • ·Contractors or vendors who need temporary, controlled access to specific systems
  • ·When you need per-user authentication with LDAP/AD integration
  • ·When users are behind restrictive firewalls that block IPsec — AnyConnect uses HTTPS (443)

✗ When NOT to use

  • ·Office-to-office connectivity — use site-to-site IPsec instead
  • ·When all users are already on premises — unnecessary overhead
  • ·Large scale (500+ users) on older ASA hardware — check the platform's connection limit

How it compares

vs Site-to-Site IPsecSite-to-site connects entire networks permanently. AnyConnect connects individual users on demand. Use both: site-to-site for branch offices, AnyConnect for remote workers.
vs Full tunnel vs Split tunnelFull tunnel: all user internet traffic goes through the ASA (you can inspect and filter it, but it increases ASA load). Split tunnel: only corporate traffic uses VPN, internet goes direct (better performance, less ASA load, but you lose visibility on user internet traffic).
vs IKEv2 IPsec (native client)Windows/Mac have built-in IKEv2 clients — no software to install. AnyConnect requires client software but provides better features (DART diagnostics, posture checking, split DNS). Most enterprises use AnyConnect for its manageability.

Prerequisites

  • AnyConnect license on the ASA (Essentials or Premium — check 'show version')
  • AnyConnect image (.pkg file) uploaded to the ASA flash: 'show flash' to verify
  • SSL certificate on the outside interface — self-signed works but users will see a certificate warning; use a trusted cert in production
  • NAT exemption configured so VPN client traffic is not NATted when going to internal resources
  • Authentication server ready (LDAP/AD for production, local users for testing)

Config Generator

Full tunnel: all user traffic goes through VPN. Split tunnel: only corporate traffic uses VPN.

Corporate networks to tunnel — only needed if split tunnel is enabled

Local user for testing — in production use LDAP/RADIUS

Verification commands

show vpn-sessiondb anyconnect

Show all active AnyConnect sessions with user, IP, bytes transferred

Expected: Lists connected users with their assigned VPN IP, duration, and data stats

show webvpn anyconnect

Verify AnyConnect is enabled and the correct image is loaded

Expected: Shows enabled interfaces and the AnyConnect package version

show ip local pool

Verify the IP pool and how many addresses are in use

Expected: Shows pool range, available addresses, and how many are currently assigned

Debug commands

debug webvpn anyconnect 255

Debug AnyConnect connection attempts — shows authentication and tunnel setup

Verbose. Use only briefly and run 'no debug all' immediately after.

Common mistakes & fixes

AnyConnect client cannot connect — 'Unable to contact server'

Cause: SSL VPN not enabled on outside interface, certificate error, or port 443 blocked by ISP

Fix: Verify 'webvpn enable outside' is configured. Check the SSL certificate. Try connecting to the ASA IP directly in a browser — you should see the AnyConnect web page.

Authentication fails

Cause: Wrong tunnel group selected, AAA server unreachable, or local user doesn't have VPN attributes

Fix: Verify the tunnel group name matches what the client is using. Check 'show aaa-server' if using LDAP. For local users, verify 'service-type remote-access' is set.

Connected but cannot reach internal resources

Cause: NAT exemption missing, split tunnel ACL too narrow, or routing issue on internal servers

Fix: Check 'show nat' — VPN pool should have a NAT exemption. Verify the VPN client's assigned IP can reach the destination. Check internal routing to the VPN pool subnet.

VPN connects but internet doesn't work (full tunnel mode)

Cause: ASA is not NATting VPN client traffic going to the internet, or DNS not resolving

Fix: Add a PAT rule for VPN clients: 'nat (inside,outside) after-auto source dynamic VPN_POOL interface'. Verify DNS servers are reachable from the VPN client.

Related configs