Configuring Cisco Easy VPN Server and Client on ASA 8.4 with Network Extension Mode and Split Tunneling

This is an example of a clean Easy VPN (EzVPN) Server configuration with Network Extension Mode (NEM) and Split Tunneling, for Cisco ASA software version 8.4. The Cisco website has some more sample configurations, but they tend to be entire device configurations, rather than just the changes that need applying from a clean or existing device configuration, and they haven’t been updated since the NAT configuration changed in ASA 8.3, which makes no nat configurations incompatible with earlier versions.

This has been tested on a pair of Cisco ASA devices running software 8.4(2), on the ASA5505 with base licence (part number ASA5505-BUN-K9, available for about £185+VAT new from reputable places).

Sections in bold are ones you will almost certainly need / want to change for your specific configuration.
Sections in italics show that the name has been chosen by myself, and could be changed in your configuration, as long as you’re consistent and change every occurrence of that name.


!=== A clean start ===
configure factory-default

!=== Generic Basic config ===
hostname easyserver
interface Vlan2
 ip address
route outside 1
!-- Optional - allow pings outbound
policy-map global_policy
  class inspection_default
   inspect icmp

!=== IPsec configuration ===
crypto ipsec ikev1 transform-set MapOutsideDynamicXform esp-aes-256 esp-sha-hmac
crypto dynamic-map MapOutsideDynamic 5 set ikev1 transform-set MapOutsideDynamicXform
crypto map MapOutside 60 ipsec-isakmp dynamic MapOutsideDynamic
crypto map MapOutside interface outside
crypto ikev1 enable outside

!=== Group / tunnel policy and logins ===
group-policy easyvpnclientpolicy internal
group-policy easyvpnclientpolicy attributes
 nem enable
username eznemuser1 password eznemuser1pass
tunnel-group eznemgroup type remote-access
tunnel-group eznemgroup general-attributes
 default-group-policy easyvpnclientpolicy
tunnel-group eznemgroup ipsec-attributes
 ikev1 pre-shared-key eznemgrouppass

!=== No NAT within our own extended network ===
!-- This is necessary otherwise the default PAT rule will cause
!-- RPF failures and easyclient network won't be able to access
!-- the easyserver network, and easyserver network access to
!-- easyclient will be subject to PAT.
object network clientnet
object network servernet
nat (inside,outside) source static servernet servernet destination static clientnet clientnet no-proxy-arp route-lookup

!=== For tunnel all clients to obtain Internet access ===
!-- If you want to tunnel everything, use this section, not the
!-- one below. This might be useful if the easyclient is on
!-- an ISP which tampers with traffic to the internet, but the
!-- easyserver is on more desirable connectivity.
object network clientnet
 nat (outside,outside) dynamic interface
same-security-traffic permit intra-interface

!=== For split tunneling ===
!-- You don't need the section above if you use this one. It
!-- causes only traffic to the networks listed below to go
!-- over the VPN, other traffic to the Internet uses the local
!-- ISP of the easyclient.
group-policy easyvpnclientpolicy attributes
 split-tunnel-policy tunnelspecified
 split-tunnel-network-list value SplitTunnelNetworks
access-list SplitTunnelNetworks standard permit
access-list SplitTunnelNetworks standard permit
access-list SplitTunnelNetworks standard permit

In contrast, the client side is much easier


!=== A clean start ===
configure factory-default

!=== Generic Basic config ===
hostname easyclient
interface Vlan2
 ip address
route outside 1

!=== Easy VPN Client ===
vpnclient server
vpnclient mode network-extension-mode
vpnclient nem-st-autoconnect
vpnclient vpngroup eznemgroup password eznemgrouppass
vpnclient username eznemuser1 password eznemuser1pass
vpnclient enable
This entry was posted in Uncategorized. Bookmark the permalink.