ASA and Cisco TrustSec

This chapter describes how to implement Cisco TrustSec for the ASA.

About Cisco TrustSec

Traditionally, security features such as firewalls performed access control based on predefined IP addresses, subnets, and protocols. However, with enterprises transitioning to borderless networks, both the technology used to connect people and organizations and the security requirements for protecting data and networks have evolved significantly. Endpoints are becoming increasingly nomadic and users often employ a variety of endpoints (for example, laptop versus desktop, smart phone, or tablet), which means that a combination of user attributes plus endpoint attributes provide the key characteristics (in addition to existing 6-tuple based rules), that enforcement devices such as switches and routers with firewall features or dedicated firewalls can reliably use for making access control decisions.

As a result, the availability and propagation of endpoint attributes or client identity attributes have become increasingly important requirements to enable security across the customers’ networks, at the access, distribution, and core layers of the network, and in the data center.

Cisco TrustSec provides access control that builds upon an existing identity-aware infrastructure to ensure data confidentiality between network devices and integrate security access services on one platform. In the Cisco TrustSec feature, enforcement devices use a combination of user attributes and endpoint attributes to make role-based and identity-based access control decisions. The availability and propagation of this information enables security across networks at the access, distribution, and core layers of the network.

Implementing Cisco TrustSec into your environment has the following advantages:

About SGT and SXP Support in Cisco TrustSec

In the Cisco TrustSec feature, security group access transforms a topology-aware network into a role-based network, which enables end-to-end policies enforced on the basis of role-based access control (RBAC). Device and user credentials acquired during authentication are used to classify packets by security groups. Every packet entering the Cisco TrustSec cloud is tagged with a security group tag (SGT). The tagging helps trusted intermediaries identify the source identity of the packet and enforce security policies along the data path. An SGT can indicate a privilege level across the domain when the SGT is used to define a security group ACL.

An SGT is assigned to a device through IEEE 802.1X authentication, web authentication, or MAC authentication bypass (MAB), which occurs with a RADIUS vendor-specific attribute. An SGT can be assigned statically to a particular IP address or to a switch interface. An SGT is passed along dynamically to a switch or access point after successful authentication.

The Security-group eXchange Protocol (SXP) is a protocol developed for Cisco TrustSec to propagate the IP-to-SGT mapping database across network devices that do not have SGT-capable hardware support to hardware that supports SGTs and security group ACLs. SXP, a control plane protocol, passes IP-SGT mapping from authentication points (such as legacy access layer switches) to upstream devices in the network.

The SXP connections are point-to-point and use TCP as the underlying transport protocol. SXP uses TCP port 64999 to initiate a connection. Additionally, an SXP connection is uniquely identified by the source and destination IP addresses.

Roles in the Cisco TrustSec Feature

To provide identity and policy-based access enforcement, the Cisco TrustSec feature includes the following roles:

  • Access Requester (AR)—Access requesters are endpoint devices that request access to protected resources in the network. They are primary subjects of the architecture and their access privilege depends on their Identity credentials.

    Access requesters include endpoint devices such PCs, laptops, mobile phones, printers, cameras, and MACsec-capable IP phones.

  • Policy Decision Point (PDP)—A policy decision point is responsible for making access control decisions. The PDP provides features such as 802.1x, MAB, and web authentication. The PDP supports authorization and enforcement through VLAN, DACL, and security group access (SGACL/SXP/SGT).

    In the Cisco TrustSec feature, the Cisco Identity Services Engine (ISE) acts as the PDP. The Cisco ISE provides identity and access control policy functionality.

  • Policy Information Point (PIP)—A policy information point is a source that provides external information (for example, reputation, location, and LDAP attributes) to policy decision points.

    Policy information points include devices such as Session Directory, Sensor IPS, and Communication Manager.

  • Policy Administration Point (PAP)—A policy administration point defines and inserts policies into the authorization system. The PAP acts as an identity repository by providing Cisco TrustSec tag-to-user identity mapping and Cisco TrustSec tag-to-server resource mapping.

    In the Cisco TrustSec feature, the Cisco Secure Access Control System (a policy server with integrated 802.1x and SGT support) acts as the PAP.

  • Policy Enforcement Point (PEP)—A policy enforcement point is the entity that carries out the decisions (policy rules and actions) made by the PDP for each AR. PEP devices learn identity information through the primary communication path that exists across networks. PEP devices learn the identity attributes of each AR from many sources, such as endpoint agents, authorization servers, peer enforcement devices, and network flows. In turn, PEP devices use SXP to propagate IP-SGT mapping to mutually trusted peer devices across the network.

    Policy enforcement points include network devices such as Catalyst switches, routers, firewalls (specifically the ASA), servers, VPN devices, and SAN devices.

The ASA serves the PEP role in the identity architecture. Using SXP, the ASA learns identity information directly from authentication points and uses it to enforce identity-based policies.

Security Group Policy Enforcement

Security policy enforcement is based on security group name. An endpoint device attempts to access a resource in the data center. Compared to traditional IP-based policies configured on firewalls, identity-based policies are configured based on user and device identities. For example, mktg-contractor is allowed to access mktg-servers; mktg-corp-users are allowed to access mktg-server and corp-servers.

The benefits of this type of deployment include the following:

  • User group and resource are defined and enforced using single object (SGT) simplified policy management.

  • User identity and resource identity are retained throughout the Cisco TrustSec-capable switch infrastructure.

The following figure shows a deployment for security group name-based policy enforcement.

Figure 1. Security Group Name-Based Policy Enforcement Deployment

Implementing Cisco TrustSec allows you to configure security policies that support server segmentation and includes the following features:

  • A pool of servers can be assigned an SGT for simplified policy management.

  • The SGT information is retained within the infrastructure of Cisco TrustSec-capable switches.

  • The ASA can use the IP-SGT mapping for policy enforcement across the Cisco TrustSec domain.

  • Deployment simplification is possible because 802.1x authorization for servers is mandatory.

How the ASA Enforces Security Group-Based Policies


Note


User-based security policies and security-group based policies can coexist on the ASA. Any combination of network, user-based, and security-group based attributes can be configured in a security policy.


To configure the ASA to function with Cisco TrustSec, you must import a Protected Access Credential (PAC) file from the ISE.

Importing the PAC file to the ASA establishes a secure communication channel with the ISE. After the channel is established, the ASA initiates a PAC secure RADIUS transaction with the ISE and downloads Cisco TrustSec environment data (that is, the security group table). The security group table maps SGTs to security group names. Security group names are created on the ISE and provide user-friendly names for security groups.

The first time that the ASA downloads the security group table, it walks through all entries in the table and resolves all the security group names included in security policies that have been configured on it; then the ASA activates those security policies locally. If the ASA cannot resolve a security group name, it generates a syslog message for the unknown security group name.

The following figure shows how a security policy is enforced in Cisco TrustSec.

Figure 2. Security Policy Enforcement
  1. An endpoint device connects to an access layer device directly or via remote access and authenticates with Cisco TrustSec.

  2. The access layer device authenticates the endpoint device with the ISE by using authentication methods such as 802.1X or web authentication. The endpoint device passes role and group membership information to classify the device into the appropriate security group.

  3. The access layer device uses SXP to propagate the IP-SGT mapping to the upstream devices.

  4. The ASA receives the packet and looks up the SGTs for the source and destination IP addresses using the IP-SGT mapping passed by SXP.

    If the mapping is new, the ASA records it in its local IP-SGT Manager database. The IP-SGT Manager database, which runs in the control plane, tracks IP-SGT mapping for each IPv4 or IPv6 address. The database records the source from which the mapping was learned. The peer IP address of the SXP connection is used as the source of the mapping. Multiple sources can exist for each IP-SGT mapped entry.

    If the ASA is configured as a Speaker, the ASA transmits all IP-SGT mapping entries to its SXP peers.

  5. If a security policy is configured on the ASA with that SGT or security group name, the ASA enforces the policy. (You can create security policies on the ASA that include SGTs or security group names. To enforce policies based on security group names, the ASA needs the security group table to map security group names to SGTs.)

    If the ASA cannot find a security group name in the security group table and it is included in a security policy, the ASA considers the security group name to be unknown and generates a syslog message. After the ASA refreshes the security group table from the ISE and learns the security group name, the ASA generates a syslog message indicating that the security group name is known.

Effects of Changes to Security Groups on the ISE

The ASA periodically refreshes the security group table by downloading an updated table from the ISE. Security groups can change on the ISE between downloads. These changes are not reflected on the ASA until it refreshes the security group table.


Tip


We recommend that you schedule policy configuration changes on the ISE during a maintenance window, then manually refresh the security group table on the ASA to make sure the security group changes have been incorporated.


Handling policy configuration changes in this way maximizes the chances of security group name resolution and immediate activation of security policies.

The security group table is automatically refreshed when the environment data timer expires. You can also trigger a security group table refresh on demand.

If a security group changes on the ISE, the following events occur when the ASA refreshes the security group table:

  • Only security group policies that have been configured using security group names need to be resolved with the security group table. Policies that include security group tags are always active.

  • When the security group table is available for the first time, all policies with security group names are walked through, security group names are resolved, and policies are activated. All policies with tags are walked through, and syslogs are generated for unknown tags.

  • If the security group table has expired, policies continue to be enforced according to the most recently downloaded security group table until you clear it, or a new table becomes available.

  • When a resolved security group name becomes unknown on the ASA, it deactivates the security policy; however, the security policy persists in the ASA running configuration.

  • If an existing security group is deleted on the PAP, a previously known security group tag can become unknown, but no change in policy status occurs on the ASA. A previously known security group name can become unresolved, and the policy is then inactivated. If the security group name is reused, the policy is recompiled using the new tag.

  • If a new security group is added on the PAP, a previously unknown security group tag can become known, a syslog message is generated, but no change in policy status occurs. A previously unknown security group name can become resolved, and associated policies are then activated.

  • If a tag has been renamed on the PAP, policies that were configured using tags display the new name, and no change in policy status occurs. Policies that were configured with security group names are recompiled using the new tag value.

Speaker and Listener Roles on the ASA

The ASA supports SXP to send and receive IP-SGT mapping entries to and from other network devices. Using SXP allows security devices and firewalls to learn identity information from access switches without the need for hardware upgrades or changes. SXP can also be used to pass IP-SGT mapping entries from upstream devices (such as data center devices) back to downstream devices. The ASA can receive information from both upstream and downstream directions.

When configuring an SXP connection on the ASA to an SXP peer, you must designate the ASA as a Speaker or a Listener for that connection so that it can exchange Identity information:

  • Speaker mode—Configures the ASA so that it can forward all active IP-SGT mapping entries collected on the ASA to upstream devices for policy enforcement.

  • Listener mode—Configures the ASA so that it can receive IP-SGT mapping entries from downstream devices (SGT-capable switches) and use that information to create policy definitions.

If one end of an SXP connection is configured as a Speaker, then the other end must be configured as a Listener, and vice versa. If both devices on each end of an SXP connection are configured with the same role (either both as Speakers or both as Listeners), the SXP connection fails and the ASA generates a syslog message.

Multiple SXP connections can learn IP-SGT mapping entries that have been downloaded from the IP-SGT mapping database. After an SXP connection to an SXP peer is established on the ASA, the Listener downloads the entire IP-SGT mapping database from the Speaker. All changes that occur after this are sent only when a new device appears on the network. As a result, the rate of SXP information flow is proportional to the rate at which end hosts authenticate to the network.

IP-SGT mapping entries that have been learned through SXP connections are maintained in the SXP IP-SGT mapping database. The same mapping entries may be learned through different SXP connections. The mapping database maintains one copy for each mapping entry learned. Multiple mapping entries of the same IP-SGT mapping value are identified by the peer IP address of the connection from which the mapping was learned. SXP requests that the IP-SGT Manager add a mapping entry when a new mapping is learned the first time and remove a mapping entry when the last copy in the SXP database is removed.

Whenever an SXP connection is configured as a Speaker, SXP requests that the IP-SGT Manager forward all the mapping entries collected on the device to the peer. When a new mapping is learned locally, the IP-SGT Manager requests that SXP forward it through connections that are configured as Speakers.

Configuring the ASA to be both a Speaker and a Listener for an SXP connection can cause SXP looping, which means that SXP data can be received by an SXP peer that originally transmitted it.

Register the ASA with the ISE

The ASA must be configured as a recognized Cisco TrustSec network device in the ISE before the ASA can successfully import a PAC file. To register the ASA with the ISE, perform the following steps:

Procedure


Step 1

Log into the ISE.

Step 2

Choose Administration > Network Devices > Network Devices.

Step 3

Click Add.

Step 4

Enter the IP address of the ASA.

Step 5

When the ISE is being used for user authentication, enter a shared secret in the Authentication Settings area.

When you configure the AAA sever on the ASA, provide the shared secret that you create here on the ISE. The AAA server on the ASA uses this shared secret to communicate with the ISE.

Step 6

Specify a device name, device ID, password, and a download interval for the ASA. See the ISE documentation for how to perform these tasks.


Create a Security Group on the ISE

When configuring the ASA to communicate with the ISE, you specify a AAA server. When configuring the AAA server on the ASA, you must specify a server group. The security group must be configured to use the RADIUS protocol. To create a security group on the ISE, perform the following steps:

Procedure


Step 1

Log into the ISE.

Step 2

Choose Policy > Policy Elements > Results > Security Group Access > Security Group.

Step 3

Add a security group for the ASA. (Security groups are global and not ASA specific.)

The ISE creates an entry under Security Groups with a tag.

Step 4

In the Security Group Access area, configure device ID credentials and a password for the ASA.


Generate the PAC File

To generate the PAC file, perform the following steps.


Note


The PAC file includes a shared key that allows the ASA and ISE to secure the RADIUS transactions that occur between them. For this reason, make sure that you store it securely on the ASA.


Procedure


Step 1

Log into the ISE.

Step 2

Choose Administration > Network Resources > Network Devices.

Step 3

From the list of devices, choose the ASA.

Step 4

Under the Security Group Access (SGA), click Generate PAC.

Step 5

To encrypt the PAC file, enter a password.

The password (or encryption key) that you enter to encrypt the PAC file is independent of the password that was configured on the ISE as part of the device credentials.

The ISE generates the PAC file. The ASA can import the PAC file from flash or from a remote server via TFTP, FTP, HTTP, HTTPS, or SMB. (The PAC file does not have to reside on the ASA flash before you can import it.)


Guidelines for Cisco TrustSec

This section includes the guidelines and limitations that you should review before configuring Cisco TrustSec.

Failover

  • You can configure security group-based policies on the ASA in both the Active/Active and Active/Standby configurations.

  • When the ASA is part of a failover configuration, you must import the PAC file to the primary ASA device. You must also refresh the environment data on the primary device.

  • The ASA can communicate with the ISE configured for high availability (HA).

  • You can configure multiple ISE servers on the ASA and if the first server is unreachable, it continues to the next server, and so on. However, if the server list is downloaded as part of the Cisco TrustSec environment data, it is ignored.

  • If the PAC file downloaded from the ISE expires on the ASA and it cannot download an updated security group table, the ASA continues to enforce security policies based on the last downloaded security group table until the ASA downloads an updated table.

Clustering

  • When the ASA is part of a clustering configuration, you must import the PAC file to the control unit.

  • When the ASA is part of a clustering configuration, you must refresh the environment data on the control unit.

IPv6

The ASA supports SXP for IPv6 and IPv6-capable network devices. The AAA server must use an IPv4 address.

Layer 2 SGT Imposition

  • Supported only on physical interfaces, subinterfaces, and EtherChannel interfaces.

  • Not supported on logical interfaces or virtual interfaces, such as a BVI.

  • Does not support link encryption using SAP negotiation and MACsec.

  • Not supported on failover links.

  • Not supported on cluster control links.

  • The ASA does not reclassify existing flows if the SGT is changed. Any policy decisions that were made based on the previous SGT remain in force for the life of the flow. However, the ASA can immediately reflect SGT changes on egress packets, even if the packets belong to a flow whose classification was based on a previous SGT.

  • Firepower 1010 switch ports and VLAN interfaces do not support Layer 2 Security Group Tagging Imposition.

Additional Guidelines

  • The ASA supports SXP Version 3. The ASA negotiates SXP versions with different SXP-capable network devices.

  • You can configure the ASA to refresh the security group table when the SXP reconcile timer expires and you can download the security group table on demand. When the security group table on the ASA is updated from the ISE, changes are reflected in the appropriate security policies.

  • Cisco TrustSec supports the Smart Call Home feature in single context and multi-context mode, but not in the system context.

  • The ASA can only be configured to interoperate in a single Cisco TrustSec domain.

  • The ASA does not support static configuration of SGT-name mapping on the device.

  • NAT is not supported in SXP messages.

  • SXP conveys IP-SGT mapping to enforcement points in the network. If an access layer switch belongs to a different NAT domain than the enforcing point, the IP-SGT map that it uploads is invalid, and an IP-SGT mapping database lookup on the enforcement device does not yield valid results. As a result, the ASA cannot apply security group-aware security policy on the enforcement device.

  • You can configure a default password for the ASA to use for SXP connections, or you can choose not to use a password; however, connection-specific passwords are not supported for SXP peers. The configured default SXP password should be consistent across the deployment network. If you configure a connection-specific password, connections may fail and a warning message appears. If you configure the connection with the default password, but it is not configured, the result is the same as when you have configured the connection with no password.

  • The ASA can be configured as an SXP Speaker or Listener, or both. However, SXP connection loops can form when a device has bidirectional connections to a peer or is part of a unidirectionally connected chain of devices. (The ASA can learn IP-SGT mapping for resources from the access layer in the data center. The ASA might need to propagate these tags to downstream devices.) SXP connection loops can cause unexpected behavior of SXP message transport. In cases where the ASA is configured to be a Speaker and Listener, an SXP connection loop can occur, causing SXP data to be received by the peer that originally transmitted it.

  • When changing the ASA local IP address, you must ensure that all SXP peers have updated their peer list. In addition, if SXP peers changes its IP addresses, you must ensure those changes are reflected on the ASA.

  • Automatic PAC file provisioning is not supported. The ASA administrator must request the PAC file from the ISE administrative interface and import it into the ASA.

  • PAC files have expiration dates. You must import the updated PAC file before the current PAC file expires; otherwise, the ASA cannot retrieve environment data updates. If the PAC file downloaded from the ISE expires on the ASA and it cannot download an updated security group table, the ASA continues to enforce security policies based on the last downloaded security group table until the ASA downloads an updated table.

  • When a security group changes on the ISE (for example, it is renamed or deleted), the ASA does not change the status of any ASA security policies that contain an SGT or security group name associated with the changed security group; however, the ASA generates a syslog message to indicate that those security policies changed.

  • The multi-cast types are not supported in ISE 1.0.

  • An SXP connection stays in the initializing state among two SXP peers interconnected by the ASA; as shown in the following example:

    
    (SXP peer A) - - - - (ASA) - - - (SXP peer	B)
    			 
    

    Therefore, when configuring the ASA to integrate with Cisco TrustSec, you must enable the no-NAT, no-SEQ-RAND, and MD5-AUTHENTICATION TCP options on the ASA to configure SXP connections. Create a TCP state bypass policy for traffic destined to SXP port TCP 64999 among the SXP peers. Then apply the policy on the appropriate interfaces.

    For example, the following set of commands shows how to configure the ASA for a TCP state bypass policy:

    
    access-list SXP-MD5-ACL extended permit tcp host peerA host peerB eq 64999
    access-list SXP-MD5-ACL extended permit tcp host peerB host peerA eq 64999
    
    tcp-map SXP-MD5-OPTION-ALLOW
     tcp-options range 19 19 allow
    
    class-map SXP-MD5-CLASSMAP
     match access-list SXP-MD5-ACL
    
    policy-map type inspect dns preset_dns_map
     parameters
      message-length maximum 512
    policy-map global_policy
    class SXP-MD5-CLASSMAP
      set connection random-sequence-number disable
      set connection advanced-options SXP-MD5-OPTION-ALLOW
      set connection advanced-options tcp-state-bypass
    service-policy global_policy global
    
    

Configure the ASA to Integrate with Cisco Trustsec

To configure the ASA to integrate with Cisco TrustSec, perform the following tasks.

Before you begin

Before configuring the ASA to integrate with Cisco TrustSec, you must complete the following tasks in ISE:

Procedure


Step 1

Configure the AAA Server for Cisco TrustSec Integration

Step 2

Import a PAC File

Step 3

Configure the Security Exchange Protocol

This task enables and sets the default values for SXP.

Step 4

Add an SXP Connection Peer

Step 5

Refresh Environment Data

Do this as needed.

Step 6

Configure the Security Policy

Step 7

Configure Layer 2 Security Group Tagging Imposition


Configure the AAA Server for Cisco TrustSec Integration

This section describes how to integrate the AAA server for Cisco TrustSec. To configure the AAA server group to communicate with the ISE on the ASA, perform the following steps.

Before you begin

  • The referenced server group must be configured to use the RADIUS protocol. If you add a non-RADIUS server group to the ASA, the configuration fails.

  • If the ISE is also used for user authentication, obtain the shared secret that was entered on the ISE when you registered the ASA with the ISE. Contact your ISE administrator to obtain this information.

Procedure


Step 1

Create the AAA server group and configure the AAA server parameters for the ASA to communicate with the ISE server.

aaa-server server-tag protocol radius

Example:


ciscoasa(config)# aaa-server ISEserver protocol radius

The server-tag argument specifies the server group name.

Step 2

Exit from the aaa server group configuration mode.

exit

Example:


ciscoasa(config-aaa-server-group)# exit

Step 3

Configure a AAA server as part of a AAA server group and set host-specific connection data.


ciscoasa(config)# aaa-server server-tag(interface-name) host server-ip

Example:


ciscoasa(config)# aaa-server ISEserver (inside) host 192.0.2.1

The interface-name argument specifies the network interface where the ISE server resides. The parentheses are required in this parameter. The server-tag argument is the name of the AAA server group. The server-ip argument specifies the IP address of the ISE server.

Step 4

Specify the server secret value used to authenticate the ASA with the ISE server.

key key

Example:


ciscoasa(config-aaa-server-host)# key myexclusivekey

The key argument is an alphanumeric keyword up to 127 characters long.

If the ISE is also used for user authentication, enter the shared secret that was entered on the ISE when you registered the ASA with the ISE.

Step 5

Exit from the aaa server host configuration mode.

exit

Example:


ciscoasa(config-aaa-server-host)# exit

Step 6

Identify the AAA server group that is used by Cisco TrustSec for environment data retrieval.

cts server-group AAA-server-group-name

Example:


ciscoasa(config)# cts server-group ISEserver

The AAA-server-group-name argument is the name of the AAA server group that you specified in Step 1 in the server-tag argument.

Note

 

You may configure only one instance of the server group on the ASA for Cisco TrustSec.

The following example shows how to configure the ASA to communicate with the ISE server for Cisco TrustSec integration:


ciscoasa(config)#aaa-server ISEserver protocol radius 
ciscoasa(config-aaa-server-group)# exit
ciscoasa(config)# aaa-server ISEserver (inside) host 192.0.2.1   
ciscoasa(config-aaa-server-host)# key myexclusivemumblekey
ciscoasa(config-aaa-server-host)# exit
ciscoasa(config)# cts server-group ISEserver


Import a PAC File

This section describes how to import a PAC file.

Before you begin

  • The ASA must be configured as a recognized Cisco TrustSec network device in the ISE before the ASA can generate a PAC file.

  • Obtain the password used to encrypt the PAC file when generating it on the ISE. The ASA requires this password to import and decrypt the PAC file.

  • When imported, the PAC file resides in NVRAM. When operating in HA mode, if you configure the failover and stateful links correctly, importing the PAC file into the active unit will result in replication to the secondary. Because the imported file resides in NVRAM, you must import the file again whenever the device reboots, for example, after a software upgrade.

  • The device uses a single PAC file. If you import more than one, each imported PAC file replaces the previously imported file.

  • The ASA requires access to the PAC file generated by the ISE. The ASA can import the PAC file from flash or from a remote server via TFTP, FTP, HTTP, HTTPS, or SMB. (The PAC file does not need to reside on the ASA flash before you can import it.)

  • The server group has been configured for the ASA.

Procedure


Import a Cisco TrustSec PAC file.

cts import-pac filepath password value

Example:


ciscoasa(config)# cts import-pac disk0:/xyz.pac password IDFW-pac99

The value argument specifies the password used to encrypt the PAC file. The password is independent of the password that was configured on the ISE as part of the device credentials. The filepath argument is entered as one of the following options:

Single Mode
  • disk0: Path and filename on disk0

  • disk1: Path and filename on disk1

  • flash: Path and filename on flash

  • ftp: Path and filename on FTP

  • http: Path and filename on HTTP

  • https: Path and filename on HTTPS

  • smb: Path and filename on SMB

  • tftp: Path and filename on TFTP

Multi-mode
  • http: Path and filename on HTTP

  • https: Path and filename on HTTPS

  • smb: Path and filename on SMB

  • tftp: Path and filename on TFTP

The following example shows how to import a PAC file into the ASA:


ciscoasa(config)# cts import pac disk0:/pac123.pac password hideme
PAC file successfully imported


Configure the Security Exchange Protocol

You need to enable and configure the Security Exchange Protocol (SXP) to use Cisco Trustsec.

Before you begin

At least one interface must be in the UP/UP state. If you enable SXP with all interfaces down, the ASA does not display a message indicating that SXP is not working or it could not be enabled. If you check the configuration by entering the show running-config command, the command output displays the following message:

 
 “WARNING: SXP configuration in process, please wait for a few moments and try again.”

Procedure


Step 1

Enable SXP on the ASA. By default, SXP is disabled.

cts sxp enable

Example:


ciscoasa(config)# cts sxp enable 

Step 2

(Optional; not recommended.) Configure the default source IP address for SXP connections.

cts sxp default source-ip ipaddress

Example:


ciscoasa(config)# cts sxp default source-ip 192.168.1.100

The ipaddress argument is an IPv4 or IPv6 address.

When you configure a default source IP address for SXP connections, you must specify the same address as the ASA outbound interface. If the source IP address does not match the address of the outbound interface, SXP connections fail.

When a source IP address for an SXP connection is not configured, the ASA performs a route/ARP lookup to determine the outbound interface for the SXP connection. We recommend that you do not configure a default source IP address for SXP connections and allow the ASA to perform a route/ARP lookup to determine the source IP address for an SXP connection.

Step 3

(Optional.) Configure the default password for TCP MD5 authentication with SXP peers. By default, SXP connections do not have a password.

cts sxp default password [0 | 8] password

Example:


ciscoasa(config)# cts sxp default password 8 IDFW-TrustSec-99

Configure a default password if and only if you configure the SXP connection peers to use the default password.

The length of the password depends on the decryption level, which defaults to 0 if you do not specify it:

  • 0 —Unencrypted cleartext. The password can be up to 80 characters.

  • 8 —Encrypted text. The password can be up to 162 characters.

Step 4

(Optional.) Specify the time interval between ASA attempts to set up new SXP connections between SXP peers.

cts sxp retry period timervalue

Example:


ciscoasa(config)# cts sxp retry period 60

The ASA continues to make connection attempts until a successful connection is made, waiting the retry interval before trying again after a failed attempt. You can specify a retry period from 0 to 64000 seconds. The default is 120 seconds. If you specify 0 seconds, the ASA does not try to connect to SXP peers.

We recommend that you configure the retry timer to a different value from its SXP peer devices.

Step 5

(Optional.) Specify the value of the reconciliation timer.

cts sxp reconciliation period timervalue

Example:


ciscoasa(config)# cts sxp reconciliation period 60

After an SXP peer terminates its SXP connection, the ASA starts a hold down timer. If an SXP peer connects while the hold down timer is running, the ASA starts the reconciliation timer; then, the ASA updates the SXP mapping database to learn the latest mappings.

When the reconciliation timer expires, the ASA scans the SXP mapping database to identify stale mapping entries (which were learned in a previous connection session). The ASA marks these connections as obsolete. When the reconciliation timer expires, the ASA removes the obsolete entries from the SXP mapping database.

You can specify a reconciliation period from 1 to 64000 seconds. The default is 120 seconds.

Step 6

(Optional.) Configure the delete-hold-down timer for the IP-SGT mappings learned from a peer after an SXP peer terminates its SXP connection.

cts sxp delete-hold-down period timervalue

The timer value specifies the number of seconds, 120-64000, that IP-SGT mappings learned from a torn-down SXP connection are held before being deleted.

Example:


ciscoasa(config)# cts sxp delete-hold-down period 240

Each SXP connection is associated with a delete hold down timer. This timer is triggered when an SXP connection on the listener side is torn down. The IP-SGT mappings learned from this SXP connection are not deleted immediately. Instead, they are held until the delete hold down timer expires. The mappings are deleted upon the expiry of this timer.

Step 7

(Optional.) Configure the depth of IPv4 subnet expansion when acting as a speaker to peers that use SXPv2 or lower.

cts sxp mapping network-map maximum_hosts

If a peer uses SXPv2 or lower, the peer cannot understand SGT to subnet bindings. The ASA can expand the IPv4 subnet bindings to individual host bindings (IPv6 bindings are not expanded). This command specifies the maximum number of host bindings that can be generated from a subnet binding.

You can specify the maximum number to be from 0 to 65535. The default is 0, which means that subnet bindings are not expanded to host bindings.


Add an SXP Connection Peer

To add an SXP connection peer, perform the following steps:

Procedure


Set up an SXP connection to an SXP peer.

cts sxp connection peer peer_ip_address [source source_ip_address ] password {default | none } [mode {local | peer }] {speaker | listener }

Example:


ciscoasa(config)# cts sxp connection peer 192.168.1.100 password default mode peer speaker

SXP connections are set per IP address; a single device pair can service multiple SXP connections.

The peer_ip_address argument is the IPv4 or IPv6 address of the SXP peer. The peer IP address must be reachable from the ASA outgoing interface.

The source_ip_address argument is the local IPv4 or IPv6 address of the SXP connection. The source IP address must be the same as the ASA outbound interface or the connection fails.

We recommend that you do not configure a source IP address for an SXP connection and allow the ASA to perform a route/ARP lookup to determine the source IP address for the SXP connection.

Indicate whether or not to use the authentication key for the SXP connection:

  • default—Use the default password configured for SXP connections.

  • none—Do not use a password for the SXP connection.

Indicate the mode of the SXP connection:

  • local—Use the local SXP device.

  • peer—Use the peer SXP device.

Indicate whether the ASA functions as a Speaker or Listener for the SXP connection.

  • speaker— The ASA can forward IP-SGT mapping to upstream devices.

  • listener—The ASA can receive IP-SGT mapping from downstream devices.

The following example shows how to configure SXP peers on the ASA:

 
ciscoasa(config)# cts sxp connection peer 192.168.1.100 password default 
mode peer speaker
ciscoasa(config)# cts sxp connection peer 192.168.1.101 password default 
mode peer speaker


Refresh Environment Data

The ASA downloads environment data from the ISE, which includes the Security Group Tag (SGT) name table. The ASA automatically refreshes its environment data that is obtained from the ISE when you complete the following tasks on the ASA:

  • Configure a AAA server to communicate with the ISE.

  • Import a PAC file from the ISE.

  • Identify the AAA server group that the ASA will use to retrieve Cisco TrustSec environment data.

Normally, you do not need to manually refresh the environment data from the ISE; however, security groups can change on the ISE. These changes are not reflected on the ASA until you refresh the data in the ASA security group table, so refresh the data on the ASA to make sure that any security group changes made on the ISE are reflected on the ASA.


Note


We recommend that you schedule policy configuration changes on the ISE and the manual data refresh on the ASA during a maintenance window. Handling policy configuration changes in this way maximizes the chances of security group names getting resolved and security policies becoming active immediately on the ASA.


To refresh the environment data, perform the following steps:

Procedure


Refresh the environment data from the ISE and reset the reconcile timer to the configured default value.


cts refresh environment-data

Example:


ciscoasa(config)# cts refresh environment-data

Configure the Security Policy

You can incorporate Cisco TrustSec policy in many ASA features. Any feature that uses extended ACLs (unless listed in this chapter as unsupported) can take advantage of Cisco TrustSec. You can add security group arguments to extended ACLs, as well as traditional network-based parameters.

For example, an access rule permits or denies traffic on an interface using network information. With Cisco TrustSec, you can control access based on security group. For example, you could create an access rule for sample_securitygroup1 10.0.0.0 255.0.0.0, meaning the security group could have any IP address on subnet 10.0.0.0/8.

You can configure security policies based on combinations of security group names (servers, users, unmanaged devices, and so on), user-based attributes, and traditional IP-address-based objects (IP address, Active Directory object, and FQDN). Security group membership can extend beyond roles to include device and location attributes and is independent of user group membership.

The following example shows how to create an ACL that uses a locally defined security object group:


object-group security objgrp-it-admin
   security-group name it-admin-sg-name
   security-group tag 1
object-group security objgrp-hr-admin
   security-group name hr-admin-sg-name  // single sg_name
   group-object it-admin     // locally defined object-group as nested object
object-group security objgrp-hr-servers
security-group name hr-servers-sg-name
object-group security objgrp-hr-network
security-group tag 2
access-list hr-acl permit ip object-group-security objgrp-hr-admin any 
object-group-security objgrp-hr-servers

The ACL configured in the previous example can be activated by configuring an access group or the Modular Policy Framework.

Additional examples:


!match src hr-admin-sg-name from any network to dst host 172.23.59.53
access-list idw-acl permit ip security-group name hr-admin-sg-name any host 172.23.59.53

!match src hr-admin-sg-name from host 10.1.1.1 to dst any
access-list idfw-acl permit ip security-group name hr-admin-sg-name host 10.1.1.1 any

!match src tag 22 from any network to dst hr-servers-sg-name any network
access-list idfw-acl permit ip security-group tag 22 any security-group 
name hr-servers-sg-name any

!match src user mary from any host to dst hr-servers-sg-name any network
access-list idfw-acl permit ip user CSCO\mary any security-group 
name hr-servers-sg-name any

!match src objgrp-hr-admin from any network to dst objgrp-hr-servers any network
access-list idfw-acl permit ip object-group-security objgrp-hr-admin any 
object-group-security objgrp-hr-servers any

!match src user Jack from objgrp-hr-network and ip subnet 10.1.1.0/24 
! to dst objgrp-hr-servers any network
access-list idfw-acl permit ip user CSCO\Jack object-group-security 
objgrp-hr-network 10.1.1.0 255.255.255.0 object-group-security objgrp-hr-servers any

!match src user Tom from security-group mktg any google.com
object network net-google
fqdn google.com
access-list sgacl permit ip sec name mktg any object net-google

! If user Tom or object_group security objgrp-hr-admin needs to be matched, 
! multiple ACEs can be defined as follows:
access-list idfw-acl2 permit ip user CSCO\Tom 10.1.1.0 255.255.255.0 
    object-group-security objgrp-hr-servers any
access-list idfw-acl2 permit ip object-group-security objgrp-hr-admin 
    10.1.1.0 255.255.255.0 object-group-security objgrp-hr-servers any

Configure Layer 2 Security Group Tagging Imposition

Cisco TrustSec identifies and authenticates each network user and resource and assigns a 16-bit number called a Security Group Tag (SGT). This identifier is in turn propagated between network hops, which allows any intermediary devices such as ASAs, switches, and routers to enforce polices based on this identity tag.

SGT plus Ethernet Tagging, also called Layer 2 SGT Imposition, enables the ASA to send and receive security group tags on Ethernet interfaces using Cisco proprietary Ethernet framing (EtherType 0x8909), which allows the insertion of source security group tags into plain-text Ethernet frames. The ASA inserts security group tags on the outgoing packet and processes security group tags on the incoming packet, based on a manual per-interface configuration. This feature allows inline hop-by-hop propagation of endpoint identity across network devices and provides seamless Layer 2 SGT Imposition between each hop.

The following figure shows a typical example of Layer 2 SGT Imposition.

Figure 3. Layer 2 SGT Imposition

Usage Scenarios

The following table describes the expected behavior for ingress traffic when configuring this feature.

Table 1. Ingress Traffic

Interface Configuration

Tagged Packet Received

Untagged Packet Received

No command is issued.

Packet is dropped.

SGT value is from the IP-SGT Manager.

The cts manual command is issued.

SGT value is from the IP-SGT Manager.

SGT value is from the IP-SGT Manager.

The cts manual command and the policy static sgt sgt_number command are both issued.

SGT value is from the policy static sgt sgt_number command.

SGT value is from the policy static sgt sgt_number command.

The cts manual command and the policy static sgt sgt_number trusted command are both issued.

SGT value is from the inline SGT in the packet.

SGT value is from the policy static sgt sgt_number command.


Note


If there is no matched IP-SGT mapping from the IP-SGT Manager, then a reserved SGT value of “0x0” for “Unknown” is used.


The following table describes the expected behavior for egress traffic when configuring this feature.

Table 2. Egress Traffic

Interface Configuration

Tagged or Untagged Packet Sent

No command is issued.

Untagged

The cts manual command is issued.

Tagged

The cts manual command and the propagate sgt command are both issued.

Tagged

The cts manual command and the no propagate sgt command are both issued.

Untagged

The following table describes the expected behavior for to-the-box and from-the-box traffic when configuring this feature.

Table 3. To-the-box and From-the-box Traffic

Interface Configuration

Tagged or Untagged Packet Received

No command is issued on the ingress interface for to-the-box traffic.

Packet is dropped.

The cts manual command is issued on the ingress interface for to-the-box traffic.

Packet is accepted, but there is no policy enforcement or SGT propagation.

The cts manual command is not issued or the cts manual command and no propagate sgt command are both issued on the egress interface for from-the-box traffic.

Untagged packet is sent, but there is no policy enforcement. The SGT number is from the IP-SGT Manager.

The cts manual command is issued or the cts manual command and the propagate sgt command are both issued on the egress interface for from-the-box traffic.

Tagged packet is sent. The SGT number is from the IP-SGT Manager.


Note


If there is no matched IP-SGT mapping from the IP-SGT Manager, then a reserved SGT value of “0x0” for “Unknown” is used.


Configure a Security Group Tag on an Interface

To configure a security group tag on an interface, perform the following steps:

Procedure

Step 1

Specify an interface and enter interface configuration mode.

interface id

Example:

ciscoasa(config)# interface gigabitethernet 0/0

Step 2

Enable Layer 2 SGT Imposition and enter cts manual interface configuration mode.

cts manual
Example:

ciscoasa(config-if)# cts manual

Step 3

Enable propagation of a security group tag on an interface. Propagation is enabled by default.

propagate sgt
Example:

ciscoasa(config-if-cts-manual)# propagate sgt

Step 4

Apply a policy to a manually configured CTS link.

policy static sgt sgt_number [trusted]

Example:

ciscoasa(config-if-cts-manual)# policy static sgt 50 trusted

The static keyword specifies an SGT policy to incoming traffic on the link.

The sgt sgt_number keyword-argument pair specifies the SGT number to apply to incoming traffic from the peer. Valid values are from 2-65519.

The trusted keyword indicates that ingress traffic on the interface with the SGT specified in the command should not have its SGT overwritten. Untrusted is the default.

The following example enables an interface for Layer 2 SGT imposition and defines whether or not the interface is trusted:


ciscoasa(config)# interface gi0/0
ciscoasa(config-if)# cts manual
ciscoasa(config-if-cts-manual)# propagate sgt
ciscoasa(config-if-cts-manual)# policy static sgt 50 trusted


Configure IP-SGT Bindings Manually

To configure IP-SGT bindings manually, perform the following steps:

Procedure

Configure IP-SGT bindings manually.

cts role-based sgt-map {IPv4_addr[/mask] | IPv6_addr[/prefix]} sgt sgt_value

Example:

ciscoasa(config)# cts role-based sgt-map 10.2.1.2 sgt 50

You can specify an IPv4 or IPv6 host address. You can also specify network addresses by including a subnet mask or prefix value (for IPv6), such as 10.100.10.0/24. The sgt_value is the SGT number, from 2 to 65519.


Troubleshooting Tips

Use the packet-tracer command to determine why a particular session was allowed or denied, which SGT value is being used (from the SGT in the packet, from the IP-SGT manager, or from the policy static sgt command configured on the interface), and which security group-based security policies were applied.

The following example displays output from the packet-tracer command to show security group tag mapping to an IP address:


ciscoasa# packet-tracer input inside tcp inline-tag 100 
security-group name alpha 30 security-group tag 31 300
Mapping security-group 30:alpha to IP address 10.1.1.2.
Mapping security-group 31:bravo to IP address 192.168.1.2.

Phase: 1
Type: ROUTE-LOOKUP
Subtype: input
Result: ALLOW
Config:
Additional Information:
in 192.168.1.0 255.255.255.0 outside....
----------------More---------------------

Use the capture capture-name type inline-tag tag command to capture only the Cisco CMD packets (EtherType 0x8909) with or without a specific SGT value.

The following example displays output from the show capture command for a specified SGT value:


ciscoasa# show capture my-inside-capture
1: 11:34:42.931012 INLINE-TAG 36 10.0.101.22 > 10.0.101.100: icmp: echo request
2: 11:34:42.931470 INLINE-TAG 48 10.0.101.100 > 10.0.101.22: icmp: echo reply
3: 11:34:43.932553 INLINE-TAG 36 10.0.101.22 > 10.0.101.100: icmp: echo request
4: 11.34.43.933164 INLINE-TAG 48 10.0.101.100 > 10.0.101.22: icmp: echo reply

Example for Cisco TrustSec

The following example shows how to configure the ASA to use Cisco TrustSec:


// Import an encrypted CTS PAC file
cts import-pac asa.pac password Cisco
// Configure ISE for environment data download
aaa-server cts-server-list protocol radius
aaa-server cts-server-list host 10.1.1.100 cisco123
cts server-group cts-server-list
// Configure SXP peers
cts sxp enable
cts sxp connection peer 192.168.1.100 password default mode peer speaker
//Configure security-group based policies
object-group security objgrp-it-admin
  security-group name it-admin-sg-name
  security-group tag 1
object-group security objgrp-hr-admin
security-group name hr-admin-sg-name
group-object it-admin	
object-group security objgrp-hr-servers
security-group name hr-servers-sg-name
access-list hr-acl permit ip object-group-security objgrp-hr-admin any 
object-group-security objgrp-hr-servers
//Configure security group tagging plus Ethernet tagging
   interface gi0/1
   cts manual
   propagate sgt
   policy static sgt 100 trusted
   cts role-based sgt-map 10.1.1.100 sgt 50

Secure Client VPN Support for Cisco TrustSec

ASA supports security group tagging of VPN sessions. You can assign a Security Group Tag (SGT) to a VPN session using an external AAA server, or by configuring a security group tag for a local user or for a VPN group policy. This tag can then be propagated through the Cisco TrustSec system over Layer 2 Ethernet. Security group tags are useful on group policies and for local users when the AAA server cannot provide an SGT.

Following is the typical process for assigning an SGT to a VPN user:

  1. A user connects to a remote access VPN that uses a AAA server group containing ISE servers.

  2. The ASA requests AAA information from ISE, which might include an SGT.  The ASA also assigns an IP address for the user’s tunneled traffic.

  3. The ASA uses AAA information to authenticate the user and creates a tunnel.

  4. The ASA uses the SGT from AAA information and the assigned IP address to add an SGT in the Layer 2 header.

  5. Packets that include the SGT are passed to the next peer device in the Cisco TrustSec network.

If there is no SGT in the attributes from the AAA server to assign to a VPN user, then the ASA uses the SGT in the group policy. If there is no SGT in the group policy, then tag 0x0 is assigned.


Note


You can also use ISE for policy enforcement using ISE Change of Authorization (CoA). For information on how to configure policy enforcement, see the VPN configuration guide.


Add an SGT to Remote Access VPN Group Policies and Local Users

To configure an SGT attribute on remote access VPN group policies, or on the VPN policy for a user defined in the LOCAL user database, perform the following steps.

There is no default SGT for group policies or local users.

Procedure


Step 1

To configure an SGT on a remote access VPN group policy:

  1. Enter group-policy configuration mode:

    group-policy name

    Example:

    
    ciscoasa(config)# group policy Grpolicy1
    
    
  2. Configure the SGT for the group policy.

    security-group-tag {none | value sgt}

    If you set a tag using value , the tag can be from 2 to 65519. Specify none to set no SGT.

    Example:

    
    ciscoasa(config-group-policy# security-group-tag value 101
    
    

Step 2

To configure an SGT on for a user in the LOCAL database:

  1. If necessary, create the user.

    username name {nopassword | password password [encrypted]} [privilege priv_level]}

    Example:

    
    ciscoasa(config)# username newuser password changeme encrypted privilege 15
    
    
  2. Enter username configuration mode.

    username name attributes

    Example:

    
    asa3(config)# username newuser attributes 
    asa3(config-username)# 
    
    
  3. Configure the SGT for the user.

    security-group-tag {none | value sgt}

    If you set a tag using value , the tag can be from 2 to 65519. Specify none to set no SGT.

    Example:

    
    ciscoasa(config-username)# security-group-tag value 101
    
    

Monitoring Cisco TrustSec

See the following commands for monitoring Cisco TrustSec:

  • show running-config cts

  • show running-config [all] cts role-based [sgt-map]

    This command shows the user-defined IP-SGT binding table entries.

  • show cts sxp connections

    This command shows the SXP connections on the ASA for a particular user context when multiple context mode is used.

  • show conn security-group

    Shows data for all SXP connections.

  • show cts environment-data

    Shows the Cisco TrustSec environment information contained in the security group table on the ASA.

  • show cts sgt-map

    Shows the IP address-security group table manager entries in the control path.

  • show asp table cts sgt-map

    This command shows the IP address-security group table mapping entries from the IP address-security group table mapping database maintained in the datapath.

  • show cts pac

    Shows information about the PAC file imported into the ASA from the ISE and includes a warning message when the PAC file has expired or is within 30 days of expiration.

History for Cisco TrustSec

Table 4. History for Cisco TrustSec

Feature Name

Platform Releases

Description

Cisco TrustSec

9.0(1)

Cisco TrustSec provides access control that builds on an existing identity-aware infrastructure to ensure data confidentiality between network devices and integrate security access services on one platform. In the Cisco TrustSec feature, enforcement devices use a combination of user attributes and endpoint attributes to make role-based and identity-based access control decisions.

In this release, the ASA integrates with Cisco TrustSec to provide security group-based policy enforcement. Access policies within the Cisco TrustSec domain are topology-independent, based on the roles of source and destination devices rather than on network IP addresses.

The ASA can use Cisco TrustSec for other types of security group-based policies, such as application inspection; for example, you can configure a class map that includes an access policy based on a security group.

We introduced or modified the following commands: access-list extended , cts sxp enable , cts server-group , cts sxp default , cts sxp retry period , cts sxp reconciliation period , cts sxp connection peer , cts import-pac , cts refresh environment-data , object-group security, security-group , show running-config cts , show running-config object-group , clear configure cts , clear configure object-group , show cts pac, show cts environment-data, show cts environment-data sg-table, show cts sxp connections, show object-group , show configure security-group , clear cts environment-data , debug cts, and packet-tracer .

Layer 2 Security Group Tag Imposition

9.3(1)

You can now use security group tagging combined with Ethernet tagging to enforce policies. SGT plus Ethernet Tagging, also called Layer 2 SGT Imposition, enables the ASA to send and receive security group tags on Ethernet interfaces using Cisco proprietary Ethernet framing (EtherType 0x8909), which allows the insertion of source security group tags into plain-text Ethernet frames.

We introduced or modified the following commands: cts manual, policy static sgt, propagate sgt, cts role-based sgt-map, show cts sgt-map, packet-tracer, capture, show capture, show asp drop, show asp table classify, show running-config all, clear configure all, and write memory.

Cisco Trustsec support for Security Exchange Protocol (SXP) version 3.

9.6(1)

Cisco Trustsec on ASA now implements SXPv3, which enables SGT-to-subnet bindings, which are more efficient than host bindings.

We introduced or modified the following commands: cts sxp mapping network-map , cts role-based sgt-map , show cts sgt-map , show cts sxp sgt-map , show asp table cts sgt-map .

Trustsec SXP connection configurable delete hold down timer

9.8(3)

The default SXP connection hold down timer is 120 seconds. You can now configure this timer, between 120 to 64000 seconds.

New/Modified commands: cts sxp delete-hold-down period , show cts sxp connection brief , show cts sxp connections