Easy VPN (EzVPN)
As you saw in Chapter 2, "IPSec Overview," for an IPSec tunnel to be established between two peers, there is a significant amount of configuration required on both peers. This includes IPSec policies, Diffie-Hellman parameters, encryption algorithms, and so on. In a large corporate environment with hundreds of sites, managing the IPSec configuration can get quite tedious. The Cisco Easy VPN feature, also known as EzVPN, eases IPSec configuration by allowing an almost no-touch configuration of the IPSec client.
EzVPN uses the Unity client protocol, which allows most IPSec VPN parameters to be defined at an IPSec gateway, which is also the EzVPN server. When an EzVPN client initiates an IPSec tunnel connection, the EzVPN server pushes the IPSec policies and other attributes required to form the IPSec tunnel to the EzVPN client and creates the corresponding IPSec tunnel connection. The tunnel on the EzVPN client can be initiated automatically or manually, or it could be traffic triggered, depending on the configuration or type of EzVPN client used. Minimal configuration is required at the EzVPN client. EzVPN provides the following general functions in order to simplify the configuration process:
- Negotiating tunnel parameters— This is done with encryption algorithms, SA lifetimes, and so on.
- User authentication— This entails validating user credentials by way of XAUTH.
- Automatic configuration— Performed by pushing attributes such as IP address, DNS, WINs, and so on, using MODECFG.
The Cisco Easy VPN feature supports two modes of operation:
- Client Mode
- Network Extension Mode
You will examine each of these modes in detail in the following sections.
EzVPN Client Mode
Figure 4-2 shows an IPSec Unity client configured for Client Mode in order to establish an IPSec VPN tunnel to the gateway.
Figure 4-2 EzVPN IPSec Client Mode Connection
EzVPN Client Mode is also known as Network/Port Address Translation (NAT/PAT) Mode. In this mode, all traffic from the client side uses a single IP address for all hosts on the private network. In Figure 4-2, all traffic from the hosts on the FastEthernet interface on the EzVPN client is translated by NAT to a source IP address of 10.0.68.5, which is assigned by the EzVPN server as an attribute using MODECFG. The client keeps track of the mappings so that it can be forwarded to the correct host on the private network.
The configuration of the EzVPN hardware client is shown in Example 4-3.
Example 4-3. EzVPN Client Mode Configuration
spoke-ezvpn1-east# ! hostname spoke-ezvpn1-east ! crypto ipsec client ezvpn vpn connect auto group vpngroup key ciscoezvpn local-address Ethernet0 mode client peer 9.1.1.35 username ezvpn1@vpngroup password ezvpn1east ! ! interface Ethernet0 ip address dhcp load-interval 30 half-duplex crypto ipsec client ezvpn vpn outside ! interface FastEthernet0 ip address 1.1.1.1 255.255.255.0 load-interval 30 speed 100 full-duplex no keepalive crypto ipsec client ezvpn vpn inside ! ip route 0.0.0.0 0.0.0.0 Ethernet0 ! end
Notice that in the EzVPN client configuration, none of the IPSec policies, encryption algorithms, and so forth are configured. Example 4-4 shows how to monitor an EzVPN client configuration.
Example 4-4. Verification of EzVPN Client Mode Configuration
spoke-ezvpn1-east#show crypto isakmp sa dst src state conn-id slot 9.1.1.35 9.1.1.146 QM_IDLE 4 0 spoke-ezvpn1-east#show crypto ipsec client ezvpn Easy VPN Remote Phase: 2 Tunnel name : vpn Inside interface list: FastEthernet0, Outside interface: Ethernet0 Current State: IPSEC_ACTIVE Last Event: SOCKET_UP Address: 10.0.68.56 Mask: 255.255.255.255 DNS Primary: 10.1.1.10 NBMS/WINS Primary: 10.1.1.11
The configuration of the EzVPN server is shown in Example 4-5.
Example 4-5. EzVPN Server-side Configuration
vpn-gw1-east# ! hostname vpn-gw1-east ! username ezvpn password 0 east username ezvpn1@vpngroup password 0 ezvpn1east username ezvpn2@vpngroup password 0 ezvpn2east aaa new-model ! aaa authentication login vpn local aaa authorization network vpn local aaa session-id common ip subnet-zero ! crypto isakmp policy 1 encr 3des authentication pre-share group 2 crypto isakmp keepalive 10 10 ! crypto isakmp client configuration group vpngroup key ciscoezvpn dns 10.1.1.10 wins 10.1.1.11 pool vpnpool include-local-lan backup-gateway 9.1.1.36 ! ! crypto ipsec transform-set vpn esp-3des esp-sha-hmac ! crypto dynamic-map dynamic 1 set transform-set vpn reverse-route remote-peer 9.1.1.33 ! ! crypto map vpn client authentication list vpn crypto map vpn isakmp authorization list vpn crypto map vpn client configuration address respond crypto map vpn 3 ipsec-isakmp dynamic dynamic ! ! interface Loopback0 ip address 9.2.1.100 255.255.255.255 ! interface FastEthernet0/0 ip address 9.1.1.35 255.255.255.248 duplex full crypto map vpn ! interface FastEthernet2/0 ip address 100.1.1.147 255.255.255.0 duplex full ! interface FastEthernet4/0 ip address 10.1.1.1 255.255.255.0 duplex full ! router ospf 1 log-adjacency-changes redistribute static subnets network 10.1.1.0 0.0.0.255 area 0 ! ip local pool vpnpool 10.0.68.1 10.0.68.100 ip classless ip route 0.0.0.0 0.0.0.0 9.1.1.33 ! radius-server host 100.1.1.4 auth-port 1645 acct-port 1646 radius-server key cisco end
The IOS command crypto isakmp client configuration group vpngroup defines the attributes for the VPN group that was assigned to the EzVPN client.
Network Extension Mode
Figure 4-3 shows an EzVPN client in Network Extension Mode. This mode allows the EzVPN client to present a full, routable network to the tunneled network.
Figure 4-3 EzVPN IPSec Network Extension Mode Connection
IPSec encapsulates all traffic from the EzVPN client's private network, which is marked as 'inside' to networks behind the IPSec gateway. Therefore, devices behind the gateway have direct access to devices on the EzVPN client's private network via the tunnel and vice versa without the need for NAT or PAT. As there is no reason for NAT or PAT, the EzVPN server does not push down an IP address for tunneled traffic, but all other attributes like ACLs, DNS, and WINS, can be pushed down. Example 4-6 shows the configuration of Network Extension Mode on the EzVPN client shown in Figure 4-3.
Example 4-6. EzVPN Client Configuration for Network Extension Mode
spoke-ezvpn1-east# ! hostname spoke-ezvpn1-east ! crypto ipsec client ezvpn vpn connect auto group vpngroup key ciscoezvpn local-address Ethernet0 mode network-extension acl 100 peer 9.1.1.35 username ezvpn1@vpngroup password ezvpn1east ! interface Ethernet0 ip address dhcp load-interval 30 half-duplex crypto ipsec client ezvpn vpn outside ! interface FastEthernet0 ip address 1.1.1.1 255.255.255.0 load-interval 30 speed 100 full-duplex no keepalive crypto ipsec client ezvpn vpn inside ! access-list 100 permit 11.1.1.0 0.0.0.255 any ip route 0.0.0.0 0.0.0.0 dhcp
Note the ACL 100 under the mode network-extension in the configuration. The ACL 100 permits networks behind the "inside" network (11.1.1.0/24) and allows traffic to and from these subnets to be encrypted. Without the access list, only traffic to and from the "inside" subnet (1.1.1.0/24) is encrypted.
Redundancy is always an integral part of any IPSec design and, in the case of EzVPN dead peer detection along with backup peer list, makes such a design possible. Example 4-7 shows the client configuration with multiple EzVPN server peer addresses manually configured on the client. An alternate mechanism to provide EzVPN server redundancy is to push the backup server's address list down to the client as an attribute. Dead peer detection is on by default on the EzVPN clients.
Example 4-7. EzVPN Server Redundancy
spoke-ezvpn1-east# ! hostname spoke-ezvpn1-east ! crypto ipsec client ezvpn vpn connect auto group vpngroup key ciscoezvpn local-address Ethernet0 mode network-extension peer 9.1.1.35 peer 9.1.1.45 username ezvpn1@vpngroup password ezvpn1east
EzVPN can be combined with XAUTH and MODECFG to provide extended authentication and thereby push all MODECFG attributes to the client. The attributes to be pushed can be defined locally on the EzVPN server or defined on a AAA server and defined either on a per-group or per-user basis. Example 4-8 shows the policies configured on a AAA server on a group basis.
Example 4-8. Per-Group–based Policy Configuration on a AAA Server
vpngroup Password = "cisco", Service-Type = Outbound cisco-avpair = "ipsec:tunnel-type=ESP" cisco-avpair = "ipsec:key-exchange=ike" cisco-avpair = "ipsec:tunnel-password=ciscoezvpn" cisco-avpair = "ipsec:addr-pool=vpnpool" cisco-avpair = "ipsec:default-domain=cisco" cisco-avpair = "ipsec:inacl=101" cisco-avpair = "ipsec:access-restrict=fastethernet 0/0" cisco-avpair = "ipsec:group-lock=1" cisco-avpair = "ipsec:backup-server=9.1.1.35" cisco-avpair = "ipsec:dns-servers=10.1.1.10" cisco-avpair = "ipsec:firewall=1" cisco-avpair = "ipsec:include-local-lan=1" cisco-avpair = "ipsec:save-password=1" cisco-avpair = "ipsec:wins-servers=10.1.1.11" cisco-avpair = "ipsec:max-users = 100" cisco-avpair = "ipsec:max-logins = 2"
Example 4-9 shows the configuration of the policy attributes locally on the EzVPN server on a per-group basis.
Example 4-9. Per-Group EzVPN Policy Attributes Configured Locally on an EzVPN Server
crypto isakmp client configuration group vpngroup key ciscoezvpn dns 10.1.1.10 wins 10.1.1.11 domain cisco.com pool vpnpool group-lock save-password include-local-lan pfs backup-gateway 9.1.1.36 max-users 100 max-logins 2 access-restrict fastEthernet 0/0
You've already seen described some attributes such as IP address, WINS, DNS, and backup server in the previous section. For a complete list of attributes and their description, refer to Cisco IOS EzVPN documentation. A couple of very useful attributes for telecommuter scenarios are max-logins and include-local-lan. The max-logins attribute allows the administrator to restrict the number of simultaneous IPSec connections from the same user to the gateway. The include-local-lan attribute is very useful in scenarios in which the telecommuter's LAN has resources, such as printers, attached to the LAN and access to these resources is required when the VPN tunnel is up.
The attributes may also be applied on a per-user basis. A user attribute overrides a group attribute value. These attributes are retrieved at the time user authentication occurs using XAUTH, and are then combined with group attributes and applied during Mode-Configuration. User-based attributes are available only if RADIUS is used as the database. Example 4-10 shows the RADIUS attributes that must be configured on a per-user basis.
Example 4-10. User-Based Policy Control Using AAA
ezvpn1@vpngroup Password = "ezvpn1east" framed-Ip-Address=10.0.68.1 ipsec:user-save-password=1 ipsec:user-include-local-lan=1 ipsec:user-vpn-group=cisco
Note that EzVPN using the Cisco Unity protocol is not an IETF standard. The Cisco proprietary Unity protocol is supported by Cisco IOS devices, VPN 3000, and PIX devices for interoperability across Cisco devices.