Authenticating Firewall Sessions (Cut-Through Proxy Feature)
Cisco ASA firewall session authentication is similar to the cut-through proxy feature on the Cisco Secure PIX Firewall. The firewall cut-through proxy requires the user to authenticate before passing any traffic through the Cisco ASA. A common deployment is to authenticate users before accessing a web server behind the Cisco ASA. Figure 6-7 illustrates how firewall session authentication works.
Figure 6-7 Cut-Through Proxy Feature Example
The following are the steps represented in Figure 6-7:
- step 1. The user on the outside of the Cisco ASA attempts to create an HTTP connection to the web server behind the ASA.
- step 2. The Cisco ASA prompts the user for authentication.
- step 3. The Cisco ASA receives the authentication information from the user and sends an AUTH Request to the CiscoSecure ACS server.
- step 4. The server authenticates the user and sends an AUTH Accept message to the Cisco ASA.
- step 5. The Cisco ASA allows the user to access the web server.
Complete the following steps to enable network access authentication via the cut-through proxy feature, using ASDM.
- step 1. Log in to ASDM and navigate to Configuration > Firewall > AAA Rules.
- step 2. Click on Add and select Add Authentication Rule. The dialog box illustrated in Figure 6-8 is displayed.
Figure 6-8 Adding an Authentication Rule via ASDM
- step 3. Select the interface where the authentication rule will be applied from the Interface pull-down menu. The inside interface is selected in this example.
- step 4. Select Authenticate in the Action field to require user authentication.
- step 5. Select the AAA server group (my-radius-group) from the AAA Server Group pull-down menu.
- step 6. You must specify a source and a destination for traffic that will require authentication. Enter the source IP address, network address, or the any keyword in the Source field. Alternatively, you can click the ellipsis (...) to select an address that has already been configured in ASDM. In this example, the any keyword is entered to require authentication for any source from the inside interface.
- step 7. Enter the destination IP address, network address, or the any keyword in the Destination field. Alternatively, you can click the ellipsis (...) to select an address that has already being configured in ASDM. In this example, the any keyword is entered to require authentication when a host tries to reach any destination.
- step 8. Enter an IP service name for the destination service in the Service field. Alternatively, click the ellipsis (...) button to open a separate dialog box where you can select from a list of available services. In this example, authentication is required for any host trying to access any TCP-based applications.
- step 9. You can optionally enter a description for the authentication rule in the Description field.
- step 10. Click OK.
- step 11. Click Apply to apply the configuration changes.
- step 12. Click Save to save the configuration in the Cisco ASA.
Cut-through proxy can also be enabled with the aaa authentication match CLI command. It enables you to configure an access control list (ACL) to classify what traffic is authenticated. Using the aaa authentication match command replaces the use of the include and exclude options and it is now the preferred method to configure authentication through the Cisco ASA appliance. The following is the command syntax:
aaa authentication matchacl interface server-tag
The acl keyword refers to the name or number of the ACL configured to define what traffic is authenticated. The interface keyword defines the interface that receives the connection request. The server-tag is the AAA server group defined by the aaa-server command.
Example 6-10 shows the commands sent by ASDM to the Cisco ASA to enable cut-through proxy.
Example 6-10. Configuring Cut-Through Proxy Using the CLI
access-list inside_authentication extended permit tcp any any aaa authentication match inside_authentication inside my-radius-group
In Example 6-10, an ACL named inside_authentication is configured to permit (or match) TCP traffic from any source to any destination. This ACL is then applied to the aaa authentication match command. The inside keyword specifies that this rule is applied to the inside interface. The AAA server group named my-radius-group is associated to the end of the command.
You can also add exceptions to not authenticate certain users based on IP address. Figure 6-9 illustrates an example of how the aaa authentication match command works. SecureMe, Inc., has two users in the 10.10.1.0/24 network who need to access the web server in the 10.10.2.0/24 network. The Cisco ASA is configured to authenticate all users in the 10.10.1.0 network; however, User2 is allowed to connect to the web server without being authenticated.
Figure 6-9 Firewall Session Authentication Exceptions
The following are the steps represented in Figure 6-9:
- step 1. User1 attempts to access the web server (10.10.2.88).
- step 2. The Cisco ASA prompts the user to authenticate.
- step 3. User1 replies with his credentials.
- step 4. The Cisco ASA sends the authentication request (Access-Request) to the CiscoSecure ACS RADIUS server (172.18.124.141).
- step 5. The CiscoSecure ACS server sends back its reply (Access-Accept) to the Cisco ASA.
- step 6. User1 is able to access the web server.
User2 can access the web server without being required to authenticate.
The commands to achieve this configuration are included in Example 6-11.
Example 6-11. Configuring Firewall Session Authentication Exceptions
!An ACL is configured to require authentication of all traffic except for User2
(10.10.1.20)access-list 150 extended permit ip any any access-list 150 extended deny ip host 172.18.124.20 any !
!The aaa authentication match command is configured with the corresponding ACL.aaa authentication match 150 inside my-radius-group
Cisco ASA is capable of excluding authentication for devices by using their MAC addresses. This feature is practical when bypassing authentication for devices such as printers and IP phones. Create a MAC address list by using the mac-list command. Subsequently, use the aaa mac-exempt command to bypass authentication for the specified MAC addresses on the list. Example 6-12 demonstrates how to configure the Cisco ASA to achieve this functionality.
Example 6-12. Configuring Authentication Exceptions by Using MAC Address Lists
mac-list MACLIST permit 0003.470d.61aa ffff.ffff.ffff mac-list MACLIST permit 0003.470d.61bb ffff.ffff.ffff aaa mac-exempt match MAC
In Example 6-12, a MAC list named MACLIST is defined with two host MAC addresses and is associated with the aaa mac-except command.
Authentication timeouts specify how long the Cisco ASA should wait before requiring the user to reauthenticate after a period of inactivity or absolute duration. Customize authentication timeouts in ASDM by navigating to Configuration > Firewall > Advanced > Global Timeouts and editing the Authentication inactivity timeout field. Alternatively, you can configure authentication timeouts via the CLI by using the timeout uauth command. The following is the command syntax:
timeout uauthhh:mm:ss [absolute | inactivity]
The inactivity timer begins after a user connection becomes idle. The absolute timer runs continuously. If you use the inactivity and absolute timeouts at the same time, the absolute timeout duration should be longer than the inactivity timeout. If you set the timeouts the opposite way, the inactivity timeout does not work because the absolute timeout always expires sooner.
Additionally, you can use the clear uauth command to delete all cached credentials and make all users reauthenticate when attempting to create a new connection through the Cisco ASA. You can append a username at the end of the command to make a specific user reauthenticate. For example, use clear uauth joe to force a user called "joe" to reauthenticate.
Customizing Authentication Prompts
Cisco ASA enables you to customize the authentication prompts by navigating to the Configuration > Device Management > Users/AAA > Authentication Prompt in ASDM and entering an authentication prompt under the Prompt section. Similarly, the auth-prompt command can be used in the CLI to customize the authentication prompt. This customization is available only for Telnet, HTTP, or FTP authentication. The following is the usage and syntax of this command:
auth-prompt [prompt | accept | reject] prompt text
Table 6-5 lists all the options of the auth-prompt command.
Table 6-5. auth-prompt Command Options
The actual text that will be printed at challenge, accept, or reject time.
Specifies that text following this keyword is printed as the authentication prompt.
The text following this keyword is printed at authentication acceptance time.
The text following this keyword is printed at authentication rejection time.