The Department of Defense (DoD) has implemented the Common Access Card (CAC) for all user authentications. Beginning in the summer of 2006, the CAC is mandatory for user authentication. Most DoD installations have converted their Active Directories to accept the CAC for user logons.
This paper details the steps necessary to enable ASA 5500 support for the DoD Common Access Card (CAC) when it is integrated with Active Directory (AD) to provide Smart Card Logon. When Smart Card Logon is enabled, several challenges are presented as the typical authentication and authorization credentials are eliminated. In its place, only certificate-based authentication can be used to allow the Adaptive Security Appliance (ASA) to permit users to remotely access Virtual Private Network (VPN). This white paper focuses on implementing all of the functionality natively on the ASA 5500 with the Cisco VPN Client. Other solutions exist or may be possible using Layer 2 Tunneling Protocol/IP Security (L2TP/IPSec) with the Microsoft Client, or by introducing Remote Authentication Dial-In User Service (RADIUS) to provide the authorization functions.
This document focuses on the basic configuration settings for enabling CAC Authentication on the ASA 5500. The ASA 5500 provides a multitude of additional features that should be explored to further enhance the end-user experience and to help secure the DoD Enterprise. For more information on the advanced configuration settings on the ASA 5500, visit http://www.cisco.com/en/US/products/ps6120/products_configuration_guide_book09186a00806a61b0.html.
DoD Public Key Infrastructure and Common Access Cards
Public Key Infrastructure Overview
Public Key Infrastructure (PKI) offers a scalable method of securing networks, reducing management overhead, and simplifying the deployment of network infrastructures by deploying security protocols including IPSec, Secure Shell (SSH), and Secure Socket Layer (SSL).
PKI is a system that manages encryption keys and identity information for the human and mechanical components of a network that participates in secured communications.
For a person or a piece of equipment to enroll in a PKI, the software on a user's computer generates a pair of encryption keys that will be used in secured communications: a public and a private key. In the case of the Common Access Card, the keys and certificates are stored on the CAC Smart Card.
The private key is never distributed or revealed. Conversely, the public key is freely distributed to any party that negotiates a secure communication. During the enrollment process (as shown in Figure 1), the user's public key is sent in the certificate request to the Certificate Authority (CA), which is responsible for the portion of the organization to which that entity belongs. The user sends the public key to the registration component of the CAs. Subsequently, the administrator approves the request and the CA generates the user's certificate. After the user receives a certificate and installs it on the computer, he or she can participate in the secured network. For CACs, this entire process is handled when the CAC is provisioned.
Figure 1. Public Key Infrastructure Enrollment
PKI is used most frequently for encrypted e-mail communications and IPSec tunnel negotiation, both of which use the identity and security features of the certificate. The identity components determine the identity of the user, their level of access to the particular type of communication under negotiation, and the encryption information that protects the communication from other parties who are not allowed access. Communicating parties will exchange certificates and inspect the presented information. The certificates are checked to see if they are within their validity period and if the certificate was generated by a trusted PKI. If all the identity information is appropriate, the public key is extracted from the certificate and used to establish an encrypted session.
Detailed documentation on PKI is readily available on the Internet or in numerous publications.
X.509 Certificate Fields
X.509 is the ubiquitous and well-known standard that defines basic PKI formats such as certificate and Certificate Revocation List (CRL) format and enables basic interoperability. The standard has been widely used for years with many Internet applications such as SSL or IPSec. The most important pieces of information contained in the certificate are the:
• Subject
• Public key
• Signature of the CA
• Certificate serial number
• Certificate expiration data
• Algorithms used to generate the signature
• Key usage.
The CAC certificates include each of these attributes, plus additional attributes that are needed for authentication such as Subject Alternative Name (SAN) and Enhanced Key Usage (EKU).
Subject
The Subject consists of the Distinguished Name (DN), which is the certificate owner's full name and X.509 structure. For the CAC, this is in the format:
Note: The CONTRACTOR designation only appears on the CACs of DoD Contractors.
There is little information to identify where the user belongs. It would be very desirable for the X.509 structure to include some type of information defining the user's organization.
Subject Alternative Name
On the CAC, the SAN field contains two fields. The first field is the email address of the user and the second is called the Principal Name (PN). The PN is an important field. This is the field that is used when the CAC is integrated into the Active Directory. The data in this field is in the format EDI/PI@mil.
The SAN field exists on two certificates on the CAC, the Signature Certificate and the Encryption Certificate. However, only the Signature Certificate contains the Principal Name field. CAC certificates are detailed in the CAC Certificate Section.
Enhanced Key Usage
The EKU field contains additional uses for a digital certificate. On the CAC, the certificate that is used for Active Directory Smart Card Logon contains this attribute with the Object Identifier (OID) for Smart Card Logon (1.3.6.1.4.1.311.20.2.2). This field is different from the Key Usage (KU) field, which defines the primary purposes of the certificate and is backwards compatible with earlier versions of X.509.
CAC Components
The CAC provides two-factor authentication. To unlock the certificates on the CAC, the user must place the physical CAC in a reader and enter a Personal Identification Number (PIN). This unlocks the private keys stored on CAC. The private keys are never exported or placed on the workstation.
CAC Reader
The CAC Reader is an International Standards Organization (ISO) 7816 standard Smart Card Reader. The user must place the CAC into the reader in order for the information on the card to be read. Drivers must be installed on the PC in order for the CAC to be read by another piece of software called Middleware.
Middleware
The user interface to the CAC is the Middleware installed on the workstation. The Middleware prompts the user for the PIN, unlocks the CAC, and provides all communications between the Operating System and the CAC Reader. Typical Middleware is ActivCard Gold for CAC, Datakey Middleware for CAC, Netsign CAC, etc.
The communications between the CAC Middleware and the Windows Operating System (OS) occur through the Microsoft Certificate Application Programming Interface (CAPI). Using CAPI, the Middleware presents the certificates to the OS. Any applications that use the CAPI can access the certificates. Applications that do not use CAPI must interface directly with the Middleware Application Programming Interface (API). The Cisco VPN Client has the ability to use the CAPI.
CAC Certificates
Among other information, the CAC also contains the certificates needed to perform PKI functions. Three certificates are present on the CAC; each certificate provides separate functionality. Among the certificates, the only common identifier is the Subject field. This field contains an identical Distinguished Name on all three certificates.
ID Certificate
The ID Certificate contains the Key Usage fields that indicate that this certificate is to be used for Digital Signature and Non-Repudiation. This is the only certificate that does not contain either a SAN or EKU. This is also the only certificate signed by a CA designated as an email CA.
Signature Certificate
The Signature Certificate contains both the SAN and EKU. The SAN contains the email address of the user and the PN. This certificate EKU also has the Smart Card Logon purpose. This is the certificate that is used by Active Directory for Smart Card Logon. This is the only certificate that can be used when implementing the ASA using the methods outlined in this document.
Encryption Certificate
The Encryption Certificate contains a SAN, but the SAN contains only the email address and no PN. This certificate does not contain an EKU.
CAC and Active Directory Integration
This basic overview of the integration of CAC and Active Directory will provide simple background information on the processes involved when Active Directory is CAC-enabled.
Smart Card Logon Overview
When the Active Directory is CAC-enabled, the user must insert a CAC into the workstation reader and enter a PIN. The workstation then sends the PKI Credentials to the Active Directory using the Kerberos protocol. Refer to Microsoft's Smart Card Logon White Paper available from http://www.microsoft.com/windows2000/docs/sclogonwp.doc for details.
Once the user's certificate is validated, the AD server uses the Principal Name taken from the SAN of the Signature Certificate to search for the user in the Active Directory and gain or deny access based on the settings found.
Implementing Windows NT Server Smart Card Logon
The basic steps in integrating CACs with Windows Active Directory are discussed in this section. Users wishing to implement CACs with Active Directory should refer to the official documentation.
Integrate DoD PKI CAs into MS Enterprise Root
To enable the AD to recognize and validate CAC certificates, all of the DoD PKI Root and Intermediate CAs must be imported into the Enterprise Root CA and the NT Authorized CA.
Note: While this integration requires an MS CA to be installed into the AD, the MS CA will not be used for issuing certificates.
Enable @mil
For the user credentials, the CAC-enabled AD will use the Principal Name field in the SAN to authenticate users. Since the Principal Name is in the form EDI/PI@mil, an alternative User Principal Name (UPN) suffix of "@mil" must be added. This will enable all of the user names to be changed to match the Principal Name field in the SAN of the Signature Certificate.
Individual User Settings
As discussed earlier, the AD User Principal Name must match the Principal Name field in the SAN. This can be accomplished by changing the Logon Name of the user in the Accounts tab. To force users to use Smart Cards, the "Smart card is required for interactive logon" check box is checked. (See Figure 2.) This removes all capabilities for the user to use a user name or password for any type of Active Directory authentication. Once this box is checked, the existing password is destroyed. If the Smart Card requirement is later removed, the user's password must be reset.
Figure 2. CAC-Enabled Active Directory User Entry
CAC Integration Issues
Because the CAC provides X.509-compliant PKI Certificates, it is desirable for them to be used for all authentication efforts. While the certificates rely on solid industry standards, the architecture of the DoD PKI and AD integration introduce several challenges.
The Authorization Problem
Authentication is easy. Authentication is simply validating that an entity is actually who they claim to be. In the case of PKI, we can guarantee that the entity that presents a certificate is who they say they are because they present their signed public certificate. Since the public certificate is signed by a trusted CA, the certificate is valid and the entity is verified.
Authorization is another story. Just because an entity presents a valid certificate does not mean that entity should have access to a network device. If we were only to authenticate users presenting CACs, then every one of millions of CAC holders would have identical access to network resources. Authorization allows the supplied credentials during Authentication to be used to determine the entity rights to access a system.
Unfortunately, the CAC certificates do not have very much identifying information. The only common user identity field among all of the certificates is the Subject Name. Unfortunately, the Subject Name consists of only the Common Name, and the various Organizational Unit (OU) fields. These fields do not provide any type of hierarchy to identify which organization the user belongs to.
Active Directory Integration Challenges
Subject Name or Subject Alternative Name
Prior to version 7.2.1.4, the ASA can only use fields from the Subject Name of the certificate for authorization.
With version 7.2.1.4 of ASA, the Principal Name field can be extracted from the Subject Alternative Name field on the certificate, allowing the CAC to be used for authorization.
Smart Card Login Required
Because the Smart card is required for interactive logon setting is selected, it effectively eliminates the password from the user account. Kerberos authentication and authorization is impossible. Fortunately, Active Directory allows for Lightweight Directory Access Protocol (LDAP) queries against the database. The LDAP structure for a typical AD user record is illustrated in Figure 3.
With the use of LDAP Authorization, the problem of all CAC users having access to the ASA VPN is eliminated. Only users that are in the Active Directory will have access to the ASA.
Figure 3. Active Directory LDAP User Entry
Recommendations
Active Directory Modification
In most cases, the Active Directory can be used with little or no modification. However, setting a few optional components can greatly enhance the customizability of the solution.
Allow Dial-In
One method to control access to Remote Access VPN on the ASA is to use the Dial-in Access controls available in Active Directory. The ASA can interpret this value and make the appropriate authorization decision based on this value. There are three possible combinations for this checkbox. By setting the checkbox to Allow access or Control access through Remote Access Policy, access will be granted. Setting the checkbox to Deny access will deny access.
ASA External or Internal Group Policy
Another option is to leverage the Active Directory to define the ASA Group Policy to which the user settings will be assigned. This is possible by using a powerful feature in the ASA's LDAP settings called the LDAP Attribute Map. Using the Attribute Map, any field in AD can be remapped to an LDAP attribute that the ASA understands.
When the ASA encounters a user with a value defining an ASA Group Policy, it will do another LDAP query for a username that corresponds to that Group Policy. The settings in that account will be used to define VPN attributes. This functionality does require additional "Dummy" users to be configured in Active Directory.
Note: These "Dummy" users should be configured in Active Directory so that a rogue user will not have access to these accounts.
The ASA configuration examples contained below will use the Adaptive Security Device Manager (ASDM) Graphical User Interface (GUI) for configuration. Appendix A contains details on the CLI configuration of ASA to support the AD and CAC integration.
PKI Certificates
At minimum, five certificates need to be installed on the ASA. The DoD PKI now has two root CAs that need to be installed. The ASA will also need a certificate for itself and the certificate of the subordinate CA that signs the ASA's certificate. The final certificate is used to authenticate the Online Certificate Status Protocol (OCSP) server.
Note: Although it is possible to install the DOD PKI certificates in any order, best results are achieved by authenticating the root certificates before the ASA and Intermediate CA certificates are installed. Also, the ASA needs connectivity to DISA to validate any certificates after the roots are installed. If there are any errors encountered during installation of the ASA or Intermediate CA certificates, disable revocation checking until the OCSP configuration is completed and connectivity to DISA is achieved.
Trustpoint Creation
To create the root trustpoints, choose Properties > Certificate > Trustpoint > Configuration and hit Add. Give the Root trustpoints a name that identifies them as the root. (See Figure 4.) The Key Pair and Enrollment parameters are not as important as the ASA and will not be requesting a certificate from this Certificate Authority.
Figure 4. Root Trustpoint
For revocation, choose OCSP. Be sure to uncheck the option to validate certificates on error.
(See Figure 5.)
Figure 5. Root Trustpoint Revocation Method
The CRL tabs can be left blank, as OCSP will be used for revocation checking. OCSP rules will be added later, if necessary.
On the Advanced tab, add the OCSP Uniform Resource Location (URL) (check the box if nonce is not required) and check the following three boxes. (See Figure 6.) The boxes control how certificate chaining and revocation will function. By checking all three boxes, the root CA Trustpoint configuration will determine how revocation checking will be done for all subordinate CAs.
Figure 6. Root Trustpoint Advanced Tab
The next trustpoint to configure is the trustpoint that the ASA will be enrolling. For the subordinate CA Trustpoint, be sure to include a Rivest, Shamir, and Adelman (RSA) key pair, choose manual enrollment, and modify the Certificate Parameters by clicking the Certificate Parameters button (Figure 7).
Figure 7. Subordinate CA Enrollment Settings
For enrollment CA, choose Use none for FQDN, and leave the email address, IP address, and serial number fields blank (Figure 8). Click the Edit button to alter the Subject Distinguished Name field.
Figure 8. Certificate Parameters
In the Distinguished Name parameters (Figure 9), enter the proper attributes as directed by the DoD PKI Program Management Organization (PMO). Typically, these are CN=<FQDN of device>,OU=PKI,
OU=DoD,O=U.S. Government,C=US.
Figure 9. Distinguished Name
The CRL, Revocation Checking, and Advanced Tabs should be configured the same as the Root.
Trustpoint Authentication
The next step is to install (or Authenticate) the CA certificates for the trustpoints. The Root Certificates, intermediate CA Certificate and any OCSP self-signed certificates must be installed. These certificates can be obtained from the DoD PKI PMO and should be saved locally as Base64 encoded files. (See Figure 10.)
Figure 10. CA Certificate as Base64 File
To authenticate a trustpoint, choose Properties > Certificate > Authentication. Choose each trustpoint from the drop down box and paste the Base64 encoded certificate text into the dialog box. (See Figure 11.) Click Authenticate to validate the certificate.
Figure 11. Trustpoint Authentication
The ASA will provide notification on successful authentication. (See Figure 12.) The Authentication needs to be repeated for each trustpoint.
Figure 12. Successful Trustpoint Authentication
Certificate Enrollment
In order to support two-way certificate authentication, the ASA will need a certificate installed. To obtain a certificate, the ASA must enroll with a subordinate CA. (See Figure 13.) The process for obtaining device certificates can be obtained from the DoD PKI PMO. When requesting a certificate, a request for an SSL server certificate is acceptable for use on the ASA.
Figure 13. Certificate Enrollment
To request a certificate, a PKCS10 request must be made by the ASA. Choose Properties > Certificate > Enrollment, select the correct CA, and click Enroll to generate an enrollment request. Copy the text from the enrollment request window (Figure 14) and paste it into the CA's Certificate Request Form (Figure 15).
Figure 14. Certificate Enrollment Request
Figure 15. Certificate Request Form
Once the certificate request is submitted, follow the documented process to ensure that the certificate is generated. Once the certificate is generated, it must be retrieved from the CA and installed on the ASA.
Copy the Base64 encoded certificate from the CA Web page (Figure 16) to the ASA's Import Certificate page (Figure 17). Click Import to import the certificate into the ASA.
Figure 16. Certificate Retrieval
Figure 17. Import Certificate
OCSP Configuration
To support the DoD implementation of OCSP, it is necessary to create a different Trustpoint for the OCSP responders and to configure OCSP rules under the DoD Root Trustpoint. The OCSP Responder Trustpoint allows the DoD PKI certificates to be validated against the DoD's self-signed OCSP responders. The OCSP rules instruct the ASA to search in a nonstandard location for the OCSP responder.
Group Matching
To choose the correct certificates for the OCSP overrides, certificate group matching rules must be created. To create the rule, first browse to VPN > IKE > Certificate Group Matching > Rules. Click Add and choose a name as in Figure 18. There is no need to select a Group under the Mapped to Group dialog.
Figure 18. Certificate Matching Rule Name
Next, click on the newly highlighted Add Button to define the Rule. Create the rule so that it reads Field = "Subject," Component = "Whole Field," Operator = "Contains" and Value = "DOD" as in Figure 19.
Figure 19. Certificate Matching Rule Definition
Trustpoint Configuration
Create a Trustpoint for the OCSP responder's certificate (Figure 20). Use the same process used earlier for creating a new Trustpoint. Be sure to choose no revocation checking, as the self-signed certificate will not provide a CRL for itself (Figure 21).
Figure 20. OCSP Trustpoint
Figure 21. OCSP Trustpoint Revocation Checking
After the OCSP Responder's certificate is installed, return to the DoD Root Trustpoint configuration screens and add a new OCSP Rule (Figure 22). The Rule will need to match the DoD PKI certificates (using the Certificate Map created earlier) and point to the OCSP URL for OCSP response checking. Be sure to use the OCSP Trustpoint as the Trustpoint for the OCSP Rule (Figure 23). Also, be sure to repeat the OCSP configuration for both DoD Root Trustpoints.
Figure 22. New OSCP Rule
Figure 23. OCSP Rules
AAA Configuration
AAA consists of Authentication, Authorization, and Accounting. Since the Authentication is being done with PKI certificates, only the Authorization and Accounting require additional configurations. This implementation guide does not include accounting configuration. For Authorization, we will use the LDAP protocol to connect to the Active Directory to check the UPN.
LDAP Groups
The first step is to choose the Configuration Tab in ASDM, and choose Properties > AAA Setup (see Figure 24) and add a new AAA Server Group. Choose LDAP, accept the defaults, and hit OK to add the LDAP Group (see Figure 25). Once the LDAP group is configured, add a new server entry for each Domain Controller (DC) that should be queried. It is advisable to add multiple DCs in case one is not available.
Figure 24. AAA Server Groups
Figure 25. LDAP Server Group
The LDAP server settings include the IP address of the server, TCP port, server types, the BaseDN for searching, and other fields. These fields will correspond to the fields in Active Directory. To determine the best entries for the field, use an LDAP browser to browse Active Directory as shown in Figure 3. The descriptions for these fields are outlined in Table 1.
Table 1. LDAP Fields
Field
Value
Description
Interface
Interface Name
Indicates the ASA interface that should be used to contact the server.
Server Name or IP Address
DNS or IP Address
Address of an AD Server.
Timeout
Seconds
Amount of time for the ASA to wait for a response from the server.
Server Port
TCP Port
TCP port used to connect to server.
Server Type
Microsoft
Indicates that this is an MS LDAP server.
BaseDN
LDAP DN
This is the search base for the LDAP query. The ASA will use this as the base of the search for the attribute. This is where all of the users should be located. If users are in multiple AD OUs, then this should be the top-level OU. Use an LDAP browser to determine the best entry.
Scope
Number of Levels to Search
This setting indicates whether the ASA should search one level below the BaseDN or scan the whole tree below the BaseDN. If all users are in the same AD OU, then one level should be chosen. If users are in multiple OUs, then choose subtree. Searching one level will be much quicker than searching the subtree.
LoginDN
User Name for ASA to Use to Scan LDAP
This user ID must be defined in AD with a username and password. It must have rights to read all OUs in the AD that need to be scanned for user data. It should be denied login access, etc., as necessary to ensure it is not used maliciously. Also, be sure to use the entire LDAP Distinguished Name in this field instead of the AD UPN or SAN.
Login Password
Password for ASA AD Account
Password used to access AD. It is currently stored using reversible encryption. This is the primary reason that the user ID for ASA should have minimal rights in the AD.
Attribute Map
Map Name
The LDAP Attribute Map function allows proprietary Cisco LDAP values to be mapped to Microsoft values in AD (or standard LDAP values). It is a powerful feature that will allow the use of AD to define Group Policy and access rights to ASA VPN users. It is discussed in the next section.
Security Checkboxes
Various Security Parameters
Check with the AD administrators to determine which security settings are required to securely access the AD via LDAP.
The AAA Server Entry for the Active Directory LDAP access is illustrated in Figure 26.
Figure 26. LDAP Server Entry
LDAP Attribute Map
As stated earlier, the LDAP Attribute Map allows for the ASA to pull proprietary or standard LDAP attributes from an Active Directory and convert them to proprietary Cisco LDAP attributes. Prior to version 7.2, the ASA used legacy, proprietary LDAP attributes from the Cisco VPN 3000. In order to use LDAP with the VPN3000, customers were required to extend their LDAP schema to accommodate these attributes. The LDAP attribute map eliminates this dependency. For a complete list of legacy VPN3000 LDAP attributes, refer to http://www.cisco.com/en/US/products/ps6120/products_configuration_guide_chapter09186a008063b318.html#wp1546973.
Allow Dial-In
To configure the ASA to check the dial-in attribute assigned in Active Directory, create a new LDAP Attribute Map and map the Cisco Name cVPN3000-Tunneling-Protocols to the Customer Name msNPAllowDialin as in Figure 27. Next, map the values returned by msNPAllowDialin (TRUE or FALSE) to the values required by cVPN3000-Tunneling-Protocols (20 or 1) as in Figure 28.
Figure 27. LDAP Attribute Map Name
Figure 28. LDAP Attribute Map Values
Access to the ASA VPN will now be controlled by this AD parameter and is summarized in Table 2.
Any values in Active Directory can be remapped via LDAP Attribute Mapping. ASA External Group Policies can also be defined in AD and mapped to ASA settings. The ASA obtains the value for the External Group that should be used for the user from the user record. ASA then performs a separate LDAP query for a Username corresponding to the External Group. This requires configuring a User ID in Active Directory that is used as a template for the External Group settings.
Note: These accounts should be configured in Active Directory so that a rogue user will not have access to these accounts.
The advantage is that changes to the External Group policy only need to happen once. Internal Groups can also be defined in the ASA and individual values set in AD for each user to override the Internal Group settings (as shown in the Allow Dial-In example). With External Groups, all changes can be made in AD and the user record only needs to reflect which template user to query for the settings.
In this example, we are defining an External Group Policy and mapping it to settings in the Active Directory. The chosen AD fields are not mandatory. Any fields could be used to define the values. The settings pulled from AD are the IPSec Banner (cVPN3000-IPSec-Banner1) and the Idle Timeout (cVPN3000-IETF-RADIUS-Session-Timeout).
First, create a template user in AD that will contain the settings (see Figure 29). We chose the UPN VPNUserGroup and decided to use Description for the IPSec Banner and Office for the Idle Timer.
Figure 29. External Group Template User
Any other AD values (telephone number, email, etc.) could also be used on the Template User. They do not have to correspond in any way to the values normally used in the AD environment. To determine what the values are, use an LDAP browser to scan the Template User.
Next, alter the individual user records to indicate which External Group Policy will be used. This will need to match exactly the Template User UPN. We chose Department, as it seemed like a good indicator of which group the user may belong to (see Figure 30).
Figure 30. User Record Referencing Template User
The ASA configuration involves creating an LDAP Attribute Map to map the values. The LDAP values that need to be mapped are illustrated in Figure 31. No Map Values need to be assigned, as the user will use the values as they appear in the Active Directory. Browsing the LDAP structure will reveal what each attribute is called in AD. The list of Cisco proprietary attribute names can be found at http://www.cisco.com/en/US/products/ps6120/products_configuration_guide_chapter09186a008063b318.html#wp1546973.
Figure 31. External Group Policy LDAP Attribute Map
Assign the LDAP Attribute Map to the LDAP entry shown in Figure 26. Any entries not defined in the Active Directory will be pulled from the Default Group Policy.
Remote Access VPN Configuration
ASA Configuration
Tunnel Group
The parameters for Remote Access Connections are configured in Tunnel Groups. To create a Tunnel Group to support CAC authentication, choose VPN > General > Tunnel Group and add a new Tunnel Group. The Basic settings can use the Default Group Policy or another Group Policy as needed.
On the General > Advanced Tab, choose anything for authentication (see Figure 32). This controls which AAA group will be used for Extended Authentication (Xauth). This configuration cannot use Xauth, so the settings do not matter.
Figure 32. Tunnel Group Authentication
For Authorization, choose the Active Directory LDAP Group and specify UPN as the Primary DN Field as shown in Figure 33.
Note: UPN is not supported in this release of ASDM but is available at the command line. See Appendix A for the command line syntax.
Figure 33. Tunnel Group Authorization
Next, browse to the IPSec tab and choose the Trustpoint name that contains the ASA certificate (see Figure 34). Choose none from the Authentication mode drop-down list to disable Xauth. IKE Peer ID Validation must be required as that enables certificate authentication. The ASA must be configured to send the certificate chain, or the VPN Client may fail the connection. The remaining parameters are optional.
Figure 34. Tunnel Group Authorization IPSec Tab
Group Policies
Minimal changes need to be made to the Default Group Policy. (See Figure 35.) The Default Group Policy will apply to all Tunnel Groups and subsequent Group Policies. The values configured can be overridden in the individual polices. Examples of items that may be desirable to enter are Domain Name Servers (DNS), Split Tunneling Polices, Address Pools, etc. (See Figure 36.)
Figure 35. Default Group Policy General Settings
Figure 36. Default Group Policy Client Tab
Internet Key Exchange
Next, define the Internet Key Exchange (IKE) settings.
Global Parameters
The IKE Policy (see Figure 37) defines how to set up Phase 1 of IPSec. To add a new IKE Policy, choose VPN > IKE > Policies and click Add. Define the desired parameters for encryption, hash, Diffie-Hellman Exchange, and key lifetime. For certificate exchange, rsa-sig authentication is required.
Figure 37. IKE Policy
Once an IKE policy is defined, it must be enabled on an interface. Choose IKE > Global Parameters and enable IKE on each desired interface. (See Figure 38.) Additional parameters include enabling NAT-T and setting several options for security and client notification. Use Automatic Identity for CAC integration.
Figure 38. Globally Enabling Internet Key Exchange
Certificate Group Matching
When a certificate is presented, the ASA must know which Tunnel Group to associate with the certificate. By default, the ASA will try to match any field in the OU Field in the Certificate with a Tunnel Group. For best results, this can be overridden by browsing to IKE > Certificate Group Matching > Policy. Uncheck all of the options except the Default. From the drop down choose the Tunnel Group created earlier (see Figure 39).
Figure 39. Tunnel Group Association
IPSec Configuration
IPSec rules define which traffic should be encrypted. To define "interesting" traffic for IPSec, create an IPSec rule by browsing to VPN > IPSec > IPSec Rules and hitting Add. Choose the Interface, users will be connecting. For remote access, the Policy Type should be dynamic. Priority is configurable. If multiple IPSec rules exist, they are processed based on priority. If this is the first IPSec Rule, it is desirable to choose a priority higher than 1 so that other IPSec rules can be inserted later. (See Figure 40.)
Next, choose one or more Transform Sets to be added. The priority of the transport set can be moved up or down as needed. Additional transform sets can also be defined, but the default sets are typically satisfactory for most installations. Peer Settings should be blank for Remote Access. Perfect Forward Secrecy provides higher security for the IPSec tunnel but is very costly in performance.
Figure 40. IPSec Rule Creation
The Advanced tab contains options for Security Association Lifetime, NAT-T, and Reverse Route Injection, which are optional components.
The Traffic Selection tab defines that the traffic should be encrypted by the tunnel and is required. (See Figure 41.)
Figure 41. IPSec Traffic Assignment
Cisco VPN Client Configuration
The VPN Client contains minimal user configuration options (see Figure 42). The majority of the options are configured on the ASA and pushed down to the client. All that is required on the client is choosing which destination to initiate a tunnel and which credentials to use. The client also has the ability to choose which TCP or UDP ports should be used, backup servers, or whether to initiate a dial-up session.
Graphical User Interface Configuration
First, click new to create a new connection for the ASA. Fill out a name for the entry, description, and IP Address or DNS of the outside interface of the ASA. If using DNS, ensure it is resolvable externally. For CAC, choose Certificate Authentication and select the check box for Send CA Certificate Chain. The Certificate Name can be left blank. The user will need to choose a certificate the first time the client is launched. The Transport, Backup Servers, and Dial-Up tabs should be configured as needed.
Figure 42. Cisco VPN Client Configuration
When CACs are inserted in a reader, the Middleware presents the certificates to the system via the Microsoft CAPI. The VPN client queries CAPI when launched and presents all of the certificates available in the User Store. The Certificates Tab will display all of the certificates available to the user (Figure 43).
Figure 43. Cisco VPN Client Certificate View
Using Profile Files
All of the information for the connection is stored in the \Program Files\Cisco Systems\VPN Client\Profiles directory on the workstation. Each connection profile is stored in a .pcf text file with various elements. Template profiles can be created and deployed to pre-configure workstations. Details on deployment options for the VPN Client can be found at http://www.cisco.com/en/US/products/sw/secursw/ps2308/products_administration_guide_book09186a00802d5d97.html.
One limitation of the Cisco VPN Client is that it does not display the Friendly Name field on the certificate. This problem can prevent the user from knowing which of the three certificates to choose. Fortunately, there are a couple of options in the profile that allow for automatic selection of the proper certificate. The fields are CertMatchKU and CertMatchDN. By setting them to the values shown in the following configuration, the VPN Client will choose the signature certificate when sending authentication information to the ASA. The user does not need to select a certificate at any point during authentication. For best results, the .PCF files should be pre-installed on workstations before the user attempts to log on. There is also a field available called CertMatchEKU, but use of this field has provided inconsistent results.
To enable WebVPN CAC integration, the outside (or VPN facing) interface needs to require certificates for user Hypertext Transfer Protocol/Hypertext Transfer Protocol Secure (HTTP/HTTPS) connections. To enable this requirement, choose Properties > HTTP/HTTPS and edit the proper interfaces as in Figure 44.
Figure 44. Required Certificates for HTTPS
Group Policies
The Default Group Policy has already been configured and does not need to be changed to accommodate basic CAC Authentication. However, there are optional settings that should be configured to enhance the end-user experience.
Tunnel Group
Using the Default WebVPN Tunnel Group, click the Authorization Tab. Choose the Active Directory LDAP AAA Group and choose UPN as the primary Authorization field as shown in Figure 45.
Note: UPN is not supported in this release of ASDM but is available at the command line. UPN is supported in ASDM version 5.2.1.54 or later. See Appendix A for the command line syntax.
Figure 45. WebVPN Authorization Settings
Next, browse to the WebVPN > Basic tab and choose Certificate Authentication (see Figure 46).
banner value Use of this DoD computer system, authorized or unauthorized, constitutes consent to monitoring of this system. Unauthorized use may subject you to criminal prosecution. Evidence of unauthorized use collected during monitoring may be used for administrative, criminal, or other adverse action. Use of this system constitutes consent to monitoring for these purposes.
wins-server none
dns-server value 10.10.100.2
dhcp-network-scope 10.10.200.0
vpn-access-hours none
vpn-simultaneous-logins 3
vpn-idle-timeout 30
vpn-session-timeout none
vpn-filter none
vpn-tunnel-protocol IPSec l2tp-ipsec webvpn
password-storage disable
ip-comp disable
re-xauth disable
group-lock none
pfs disable
ipsec-udp enable
ipsec-udp-port 10000
split-tunnel-policy tunnelall
split-tunnel-network-list none
default-domain value cisco.dod.mil
split-dns none
intercept-dhcp 255.255.255.255 disable
secure-unit-authentication disable
user-authentication disable
user-authentication-idle-timeout 30
ip-phone-bypass disable
leap-bypass disable
nem disable
backup-servers keep-client-config
msie-proxy server none
msie-proxy method no-modify
msie-proxy except-list none
msie-proxy local-bypass disable
nac disable
nac-sq-period 300
nac-reval-period 36000
nac-default-acl none
address-pools none
client-firewall none
client-access-rule none
webvpn
functions url-entry
html-content-filter none
homepage none
keep-alive-ignore 4
http-comp gzip
filter none
url-list none
customization value DfltCustomization
port-forward none
port-forward-name value Application Access
sso-server none
deny-message value Login was successful, but because certain criteria have not been met or due to some specific group policy, you do not have permission to use any of the VPN features. Contact your IT administrator for more information