Authenticating Firewall Sessions (Cut-Through Proxy Feature)
Cisco ASA firewall session authentication is similar to the cut-through proxy feature on the CiscoSecure 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 7-5 illustrates how firewall session authentication works.
Figure 7-5. Cut-Through Proxy Feature Example
The following are the highlights of the steps in Figure 7-5:
- The user on the outside of the Cisco ASA attempts to create an HTTP connection to the web server behind the ASA.
- The Cisco ASA prompts the user for authentication.
- The Cisco ASA receives the authentication information from the user and sends an AUTH Request to the CiscoSecure ACS server.
- The server authenticates the user and sends an AUTH Accept message to the Cisco ASA.
- The Cisco ASA allows the user to access the web server.
Cut-through proxy can be enabled with the aaa authentication command. The following is the command syntax:
aaa authentication include | exclude svc if_name l_ip l_mask [f_ip f_mask]server_tag
Table 7-5 lists all the aaa authentication command options.
Option |
Description |
---|---|
include |exclude |
Include or exclude the service, local, and foreign network, which needs to be authenticated, authorized, and accounted. |
svc |
Specifies the protocol and/or service used: telnet, ftp, http, https, tcp/port, and tcp/0. |
if_name |
The interface on the Cisco ASA that receives the connection request. |
l_ip |
The address of the local/internal host, which is the source or destination for connections requiring authentication. |
l_mask |
Network mask to apply to l_ip. |
f_ip |
The address of the foreign host, which is either the source or destination for connections requiring authentication. |
f_mask |
Network mask to apply to . |
server_tag |
For authentication and accounting, use values defined by the aaa-server command. For cut-through and "to the box" authentication and command authorization, the server tag LOCAL can also be used. Only TACACS+ is supported for "through the box" authorization. |
Using the aaa authentication match command is an alternate method of doing AAA authentication on Cisco ASA. It allows 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 match acl 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.
Figure 7-6 illustrates an example of how the aaa authentication match command works. SecureMe Company has two users in the 209.165.200.224/27 network who need to access the web server in the 192.168.10.0/24 network. The Cisco ASA is configured to authenticate all users in the 209.165.200.224 network; however, User2 is allowed to connect to the web server without being authenticated.
Figure 7-6. Firewall Session Authentication Exceptions
The following are the steps represented in Figure 7-6:
Step 1. |
User1 attempts to access the web server (192.168.10.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 is able to access the web server without being required to authenticate.
The commands to achieve this configuration are included in Example 7-14.
Example 7-14. Configuring Firewall Session Authentication Exceptions
!AAA server group called mygroup is configured for the 172.18.124.141 RADIUS server aaa-server mygroup protocol radius aaa-server mygroup host 172.18.124.141 key cisco123! !An ACL is configured to require authentication of all traffic except for User2 (172.18.124.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 mygroup
Cisco ASA is capable of excluding authentication for devices by using their MAC address. This feature is practical when bypassing authentication for devices such as printers and IP phones. You need to create a MAC address list, by using the mac-list command, to accomplish this task. Subsequently, you use the aaa mac-exempt command to bypass authentication for the specified MAC addresses on the list. Example 7-15 demonstrates how to configure the Cisco ASA to achieve this functionality.
Example 7-15. Configuring Authentication Exceptions 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 7-15, a MAC list named MACLIST is defined with two host MAC addresses and is associated with the aaa mac-except command.
Note
Only one MAC list can be associated with aaa mac-exempt.
Note
Both authentication and authorization will be bypassed if this feature is turned on.
Authentication Timeouts
Authentication timeouts can be customized using the timeout uauth command. By using this command, you can specify how long the Cisco ASA should wait before requiring the user to reauthenticate after a period of inactivity or absolute duration. The following is the command syntax:
timeout uauth hh: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 will not work, because the absolute timeout always expires sooner.
Note
It is recommended to configure the absolute timeout command value for at least 2 minutes. Never configure the timeout uauth duration to 0, particularly when using passive FTP, because the authentication session will never time out.
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 allows you to customize the authentication prompts by using the auth-prompt command. This customization is only available for Telnet, HTTP, or FTP authentication. The following is the usage and syntax of this command:
auth-prompt [prompt | accept | reject] prompt text
Table 7-6 lists all the options of the auth-prompt command.
Option |
Description |
---|---|
prompt text |
The actual text that will be printed at challenge, accept, or reject time. |
prompt |
Specifies that text following this keyword is printed as the authentication prompt. |
accept |
The text following this keyword is printed at authentication acceptance time. |
reject |
The text following this keyword is printed at authentication rejection time. |
Note
The accept and reject options apply only for Telnet connections.