Cisco VPN Client

IOS Router : Auth-proxy Authentication Inbound with ACS for IPSec and VPN Client Configuration

Document ID: 14294

Updated: Jan 14, 2008



The authentication proxy feature allows users to log in to a network or access the Internet via HTTP, with their specific access profiles automatically retrieved and applied from a TACACS+ or RADIUS server. The user profiles are active only when there is active traffic from the authenticated users.

This configuration is designed to bring up the web browser on and aim it at Because the VPN Client is configured to go through tunnel end-point to get to the 10.17.17.x network, the IPSec tunnel is built and the PC gets the IP address out of the pool RTP-POOL (since mode-configuration is performed). Authentication is then requested by the Cisco 3640 Router. After the user enters a username and password (stored on the TACACS+ server at, the access list passed down from the server gets added to access list 118.



Before attempting this configuration, ensure that you meet these requirements:

  • Cisco VPN Client is configured to establish an IPSec tunnel with the Cisco 3640 Router.

  • The TACACS+ server is configured for authentication proxy. See the "Related Information" section for more information.

Components Used

The information in this document is based on these software and hardware versions:

  • Cisco IOS? Software Release 12.4

  • Cisco 3640 Router

  • Cisco VPN Client for Windows version 4.8 (any VPN Client 4.x and later should work)

Note: The ip auth-proxy command was introduced in Cisco IOS Software Release 12.0.5.T. This configuration was tested with Cisco IOS Software Release 12.4.

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.


For more information on document conventions, refer to the Cisco Technical Tips Conventions.


In this section, you are presented with the information to configure the features described in this document.

Note: To find additional information on the commands used in this document, use the Command Lookup Tool (registered customers only) .

Network Diagram

This document uses this network setup:



3640 Router
Current configuration:
version 12.4
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
hostname 3640

!--- The username and password is used during local authentication.

username rtpuser password 0 rtpuserpass

!--- Enable AAA.

aaa new-model

!--- Define server-group and servers for TACACS+.

aaa group server tacacs+ RTP

!--- In order to set authentication, authorization, and accounting (AAA) authentication at login, 
use the aaa authentication login command in global configuration mode

aaa authentication login default group RTP local 
aaa authentication login userauth local
aaa authorization exec default group RTP none
aaa authorization network groupauth local
aaa authorization auth-proxy default group RTP
enable secret 5 $1$CQHC$R/07uQ44E2JgVuCsOUWdG1
enable password ww
ip subnet-zero

!--- Define auth-proxy banner, timeout, and rules.

ip auth-proxy auth-proxy-banner http ^C
Please Enter Your Username and Password:
ip auth-proxy auth-cache-time 10
ip auth-proxy name list_a http
ip audit notify log
ip audit po max-events 100
cns event-service server

!--- Define ISAKMP policy.

crypto isakmp policy 10
 hash md5
 authentication pre-share
 group 2

!--- These commands define the group policy that 
!--- is enforced for the users in the group RTPUSERS.
!--- This group name and the key should match what 
!--- is configured on the VPN Client. The users from this
!--- group are assigned IP addresses from the pool RTP-POOL.

crypto isakmp client configuration group RTPUSERS 
 key cisco123
 pool RTP-POOL

!--- Define IPSec transform set and apply it to the dynamic crypto map.

crypto ipsec transform-set RTP-TRANSFORM esp-des esp-md5-hmac 
crypto dynamic-map RTP-DYNAMIC 10
 set transform-set RTP-TRANSFORM 

!--- Define extended authentication (X-Auth) using the local database. 
!--- This is to authenticate the users before they can 
!--- use the IPSec tunnel to access the resources.

crypto map RTPCLIENT client authentication list userauth

!--- Define authorization using the local database. 
!--- This is required to push the 'mode configurations' to the VPN Client.

crypto map RTPCLIENT isakmp authorization list groupauth
crypto map RTPCLIENT client configuration address initiate
crypto map RTPCLIENT client configuration address respond
crypto map RTPCLIENT 10 ipsec-isakmp dynamic RTP-DYNAMIC 
interface FastEthernet0/0
 ip address
 ip access-group 118 in
 no ip directed-broadcast

!--- Apply the authentication-proxy rule to the interface.

ip auth-proxy list_a
 no ip route-cache
 no ip mroute-cache
 speed auto

!--- Apply the crypto-map to the interface.

 crypto map RTPCLIENT
interface FastEthernet1/0
 ip address
 no ip directed-broadcast
 speed auto

!--- Define the range of addresses in the pool. 
!--- VPN Clients will have thier 'internal addresses' assigned 
!--- from this pool.

ip local pool RTP-POOL
ip classless
ip route
ip route

!--- Turn on the HTTP server and authentication. 
!--- This is required for http auth-proxy to work.

ip http server
ip http authentication aaa

!--- The access-list 118 permits ISAKMP and IPSec packets 
!--- to enable the Cisco VPN Client to establish the IPSec tunnel.
!--- The last line of the access-list 118 permits communication 
!--- between the TACACS+ server and the 3640 router to enable
!--- authentication and authorization. All other traffic is denied.

access-list 118 permit esp host
access-list 118 permit udp host eq isakmp
access-list 118 permit tcp host host

!--- Define the IP address and the key for the TACACS+ server.

tacacs-server host key cisco
line con 0
 transport input none
line aux 0
line vty 0 4
 password ww

VPN Client 4.8 Configuration

Complete these steps in order to configure the VPN Client 4.8:

  1. Choose Start > Programs > Cisco Systems VPN Client > VPN Client.

  2. Click New to launch the Create New VPN Connection Entry window.


  3. Enter the name of the Connection Entry along with a description. Enter the outside IP address of the router in the Host box. Then enter the VPN Group name and password, and click Save.


  4. Click on the connection you would like to use and click Connect from the VPN Client main window.


  5. When prompted, enter the Username and Password information for xauth and click OK to connect to the remote network.


    The VPN Client gets connected with the router at the central site.


Configure the TACACS+ Server Using Cisco Secure ACS

Complete these steps in order to configure TACACS+ in a Cisco Secure ACS:

  1. You must configure the router to locate the Cisco Secure ACS in order to check the user credentials.

    For example:

    aaa group server tacacs+ RTP
    tacacs-server host key cisco
  2. Choose Network Configuration on the left and click Add Entry to add an entry for the router in either the TACACS+ server database. Choose the server database according to the router configuration.


  3. The key is used to authenticate between the 3640 Router and Cisco Secure ACS server. If you want to select the TACACS+ protocol for authentication, then choose TACACS+ (Cisco IOS) in the Authenticate Using drop down menu.


  4. Enter the username in the User field in the Cisco Secure database, then click Add/Edit.

    In this example, the username is rtpuser.


  5. In the next window, enter the password for rtpuser.

    In this example, the password is rtpuserpass. You can map the user account to a group if you wish. When you have finished, click Submit.


Configure the Fallback Feature

When the primary RADIUS server becomes unavailable, the router will failover to the next active backup RADIUS server. The router will continue to use the secondary RADIUS server forever even if the primary server is available. Usually the primary server is high performance and the preferred server. If the secondary server is not available the local database can be used for authentication using the aaa authentication login default group RTP local command.


This section provides information you can use to confirm your configuration is working properly.

Establish an IPSec tunnel between the PC and the Cisco 3640 Router.

Open a browser on the PC and point it to The Cisco 3640 Router intercepts this HTTP traffic, triggers authentication proxy, and prompts you for a username and password. The Cisco 3640 sends the username/password to the TACACS+ server for authentication. If the authentication is successful, you should be able to see the web pages on the Web server at

Certain show commands are supported by the Output Interpreter Tool (registered customers only) , which allows you to view an analysis of show command output.

  • show ip access-lists —Displays the standard and extended ACLs configured on the firewall router (includes dynamic ACL entries). The dynamic ACL entries are added and removed periodically based on whether the user authenticates or not.

    This output shows acess-list 118 before auth-proxy was triggered:

    3640#show ip access-lists 118
       Extended IP access list 118
       10 permit esp host (321 matches)
       20 permit udp host eq isakmp (276 matches)
       30 permit tcp host host (174 matches)

    This output shows access-list 118 after auth-proxy was triggered and the user successfully authenticates:

    3640#show ip access-lists 118
       Extended IP access list 118
       permit tcp host any (7 matches)
       permit udp host any (14 matches)
       permit icmp host any
       10 permit esp host (379 matches)
       20 permit udp host eq isakmp (316 matches)
       30 permit tcp host host (234 matches) 

    The first three lines of the access-list are the entries defined for this user and downloaded from the TACACS+ server.

  • show ip auth-proxy cache —Displays either the authentication proxy entries or the running authentication proxy configuration. The cache keyword to list the host IP address, the source port number, the timeout value for the authentication proxy, and the state for connections that use authentication proxy. If the authentication proxy state is ESTAB, the user authentication is a success.

    3640#show ip auth-proxy cache
       Authentication Proxy Cache
       Client IP Port 1705, timeout 5, state ESTAB


For the verification and debugging commands, along with other troubleshooting information, refer to Troubleshooting Authentication Proxy.

Note: Before issuing debug commands, refer to Important Information on Debug Commands.

Related Information

Updated: Jan 14, 2008
Document ID: 14294