93 Days to CCIE SEC v6.1 Lab
AnyConnect Remote Access VPN on ASA1v / ASA11v
ISE + Active Directory Authentication, ASA DHCP Pool, and ISE DACL-Based Authorization
Cisco Remote Access VPN
A Remote Access VPN extends a private corporate network across a public infrastructure (the Internet). Unlike a Site-to-Site VPN, which connects two fixed locations, a Remote Access VPN allows individual users to establish a secure, encrypted “tunnel” from any location using a software client like Cisco AnyConnect Secure Mobility Client.
The VPN client (for example, Cisco AnyConnect) establishes an encrypted tunnel to a VPN headend (ASA, Firepower, or Secure Firewall), ensuring confidentiality, integrity, and user authentication.
How Remote Access VPN Works (High-Level Flow)
- User launches the VPN client (AnyConnect)
- Client establishes a secure tunnel to the VPN gateway
- User authenticates (credentials, certificates, or MFA)
- VPN gateway assigns:
- IP address
- DNS settings
- Security policies
- User traffic is encrypted and forwarded into the enterprise network
From a networking perspective, the remote user becomes a logical extension of the internal network, subject to routing, NAT, and firewall policies.
VPN Tunnel Types Used in Remote Access
Cisco AnyConnect supports multiple tunnel mechanisms:
SSL/TLS VPN
- Uses TCP/443
- Works through most firewalls
- Ideal for Internet-based access
IKEv2/IPsec
- Strong cryptography
- Efficient control plane
- Often combined with SSL for fallback
Modern deployments typically use: SSL + IKEv2 with DTLS for performance
Control Plane vs Data Plane
A Remote Access VPN consists of two logical planes:
Control Plane
- User authentication
- Authorization decisions
- Tunnel establishment
Data Plane
- Encrypted user traffic
- Policy enforcement (ACLs, DACLs)
- NAT and routing decisions
In advanced designs (like the one in this blog), authentication and authorisation are offloaded to Cisco ISE, while enforcement remains on the ASA.
Cisco AnyConnect Remote Access VPN remains a cornerstone technology in enterprise remote access designs. While modern Zero Trust solutions are evolving rapidly, ASA + AnyConnect + ISE + AD is still widely deployed and extremely relevant for CCIE Security–level understanding of:
- Authentication vs Authorization separation
- AAA control-plane design
- Dynamic access enforcement using Downloadable ACLs (DACLs)
- Real-world VPN policy enforcement
This blog walks through a complete deployment using:
- ASA1v / ASA11v (enforcement)
- Cisco ISE for authentication and authorisation (policy brain)
- Microsoft Active Directory as the identity store
- DHCP address assignment from the ASA
- ISE DACLs to allow access to only specific internal sites
- ASA Base Configuration
interface GigabitEthernet0/0
nameif outside
security-level 0
ip address 192.168.100.2 255.255.255.0
interface GigabitEthernet0/1
nameif inside
security-level 100
ip address 10.10.10.1 255.255.255.0
2. Routing
route outside 0.0.0.0 0.0.0.0 192.168.100.1
3. AnyConnect WebVPN Configuration
webvpn
enable outside
anyconnect image disk0:/anyconnect-win-4.x.x-k9.pkg 1
anyconnect enable
4. DHCP Pool on ASA (VPN Clients)
The ASA acts as a DHCP server for VPN clients.
ip local pool AC_POOL 10.20.20.10-10.20.20.100 mask 255.255.255.0
5. Group Policy (Minimal – DACL Will Enforce Access)
No split tunnel ACL — access will be controlled via ISE DACL
group-policy GP_ANYCONNECT internal
group-policy GP_ANYCONNECT attributes
vpn-tunnel-protocol ssl-client ikev2
6. Tunnel Group Configuration
tunnel-group AC_VPN type remote-access
tunnel-group AC_VPN general-attributes
address-pool AC_POOL
default-group-policy GP_ANYCONNECT
authentication-server-group ISE
tunnel-group AC_VPN webvpn-attributes
group-alias AnyConnect enable
ASA–ISE Integration
aaa-server ISE protocol radius
aaa-server ISE (inside) host 10.10.10.50
key radius123
Join ISE to Active Directory
- Administration → Identity Management → External Identity Sources → AD
- Join domain (e.g.
lab.local) - Verify successful join
Add ASA as Network Device
- Administration → Network Devices
- Add ASA IP
- Enable RADIUS Authentication Settings
- Configure shared secret
ISE Downloadable ACL (DACL)
Example Requirement
Allow VPN users to access only:
- Internal Web Server:
10.10.10.100 - Internal DNS:
10.10.10.10
DACL Configuration
Policy → Policy Elements → Results → Authorization → Downloadable ACLs
permit tcp any host 10.10.10.100 eq 443
permit udp any host 10.10.10.10 eq 53
permit tcp any host 10.10.10.10 eq 53
deny ip any any
ISE Authorization Policy
IF
AD-Group = VPN_Users_Limited
THEN
PermitAccess
Apply DACL = VPN_LIMITED_DACL
💡 Authentication still succeeds, but access is restricted dynamically.
NAT Configuration (Critical)
NAT Exemption (Inside ↔ VPN Pool)
object network INSIDE_NET
subnet 10.10.10.0 255.255.255.0
object network VPN_POOL
subnet 10.20.20.0 255.255.255.0
nat (inside,outside) source static INSIDE_NET INSIDE_NET destination static VPN_POOL VPN_POOL
Outside Interface ACL
access-list OUTSIDE_IN permit tcp any host 203.0.113.10 eq 443
access-group OUTSIDE_IN in interface outside
End-to-End Connection Flow (Deep Dive)
AnyConnect client connects to ASA
ASA forwards credentials to ISE
ISE authenticates user against AD
ISE returns:
Access-Accept
DACL name
ASA:
Assigns IP from DHCP pool
Applies DACL dynamically
Traffic is filtered per-user
Validation & Testing
On ASA
show vpn-sessiondb anyconnect
show aaa-server ISE
show access-list
Look for:
- DACL applied to session
- Correct IP assignment
On ISE
- Operations → RADIUS → Live Logs
- Confirm:
- Authentication = AD
- Authorization Profile = DACL
Troubleshooting
ASA Debugs
debug webvpn 255
debug radius 255
debug aaa authentication
Happy Labinggggggggggggggggggggggg !