ASA Access Control Lists (ACLs)


 


Table of Contents
Course Files
Transcript
  • 1 Introduction Closed Caption 0h 37m
    2 CCIE Security Preparation Resources Closed Caption 0h 50m
    3 ASA Overview Closed Caption 0h 37m
    4 Basic ASA Initialization Closed Caption 1h 02m
    5 ASA Routing Closed Caption 0h 37m
    6 ASA Reliable Static Routing Closed Caption 0h 20m
    7 ASA Access Control Lists (ACLs) Closed Caption 0h 41m
    8 ASA Modular Policy Framework (MPF) Overview Closed Caption 0h 53m
    9 ASA Modular Policy Framework (MPF) Configuration Closed Caption 0h 51m
    10 ASA Advanced TCP Inspection with MPF Closed Caption 0h 40m
    11 ASA Advanced Application Inspection with MPF Closed Caption 0h 36m
    12 ASA Quality of Service (QoS) Closed Caption 0h 30m
    13 ASA Network Address Translation (NAT) Part 1 Closed Caption 0h 50m
    14 ASA Network Address Translation (NAT) Part 2 Closed Caption 0h 30m
    15 ASA Transparent Firewall Overview Closed Caption 0h 25m
    16 ASA Transparent Firewall Configuration Closed Caption 0h 43m
    17 ASA ARP Inspection with Transparent Firewall Closed Caption 0h 21m
    18 ASA Multiple Context Mode Overview Closed Caption 0h 42m
    19 ASA Multiple Context Mode Configuration Closed Caption 0h 59m
    20 ASA Redundant Interfaces Closed Caption 0h 22m
    21 ASA Failover Overview Closed Caption 0h 19m
    22 ASA Active/Standby Failover Routed Firewall Configuration Closed Caption 0h 29m
    23 ASA Active/Standby Failover Transparent Firewall Configuration Closed Caption 0h 17m
    24 ASA Active/Active Failover Routed Firewall Configuration Closed Caption 0h 37m
    25 ASA Multiple Context Transparent Firewall Configuration Closed Caption 0h 29m
    26 ASA Active/Active Failover Transparent Firewall Configuration Closed Caption 0h 29m
    27 IOS Access Control Lists (ACLs) Closed Caption 0h 23m
    28 IOS Time Based ACLs Closed Caption 0h 13m
    29 IOS Lock & Key Security with Dynamic ACLs Closed Caption 0h 24m
    30 IOS Reflexive ACLs Closed Caption 0h 44m
    31 IOS TCP Intercept and Content Based Access Control (CBAC) Closed Caption 0h 39m
    32 Zone Based Policy Firewall Overview Closed Caption 0h 26m
    33 Zone Based Policy Firewall Configuration Closed Caption 0h 44m
    34 ZBPF Self Zone & ZBPF Exceptions Closed Caption 0h 48m
    35 Port to Application Mapping (PAM) Closed Caption 0h 32m
    36 ZBPF Parameter Tuning Closed Caption 0h 32m
    37 ZBPF Application Inspection Closed Caption 0h 27m
    38 IOS Transparent Firewall Closed Caption 0h 28m
    39 IPsec Overview Closed Caption 0h 37m
    40 IOS IPsec LAN-to-LAN Configuration Closed Caption 0h 58m
    41 IPsec Troubleshooting Closed Caption 0h 42m
    42 GRE over IPsec, IPsec Profiles, & VTIs Closed Caption 0h 51m
    43 ASA IPsec Overview Closed Caption 0h 24m
    44 ASA IPsec LAN-to-LAN Configuration Closed Caption 0h 20m
    45 Certificate Authority (CA) Overview Closed Caption 0h 16m
    46 IOS & ASA LAN-to-LAN IPsec with Certificates Closed Caption 0h 57m
    47 Easy VPN Overview Closed Caption 0h 12m
    48 IOS Easy VPN Server Closed Caption 1h 10m
    49 IOS Easy VPN Client Closed Caption 0h 30m
    50 IOS Easy VPN with Dynamic VTIs, ISAKMP Profiles Closed Caption 0h 49m
    51 ASA Easy VPN Server Closed Caption 0h 51m
    52 ASA Easy VPN Server & IOS Easy VPN Client Closed Caption 0h 17m
    53 ASA Clientless & AnyConnect SSL VPN Closed Caption 1h 04m
    54 DMVPN Closed Caption 1h 05m
    55 IPS Overview, Promiscuous Mode & SPAN Closed Caption 0h 43m
    56 IPS Promiscuous Mode & RSPAN Closed Caption 0h 28m
    57 IPS Blocking Devices & Custom Signatures Closed Caption 0h 50m
    58 IPS Inline Mode, VLAN Pairing Closed Caption 0h 15m
    59 IPS Virtual Sensors and Signature Engines Closed Caption 0h 16m
    60 AAA Overview, Local AAA, & Role Based CLI Closed Caption 0h 51m
    61 RADIUS, TACACS+, & Cisco Secure ACS Configuration Closed Caption 0h 51m
    62 RADIUS & TACACS+ Exec Authorization & Accounting Closed Caption 0h 39m
    63 TACACS+ Command Accounting Closed Caption 0h 30m
    64 RADIUS & TACACS+ Enable Authentication Closed Caption 0h 14m
    65 IOS Authentication Proxy Closed Caption 0h 33m
    Total Duration   39h 19m
  • 0:00:15 Its Access Control List or ACLs, how the object groups
    0:00:20 can be used for
    0:00:23 management of the access list
    0:00:26 and how this is going to be used as an exception
    0:00:28 the access list uses an exception to the Modular Policy Framework inspection
    0:00:36 Now, by default is we talked about before
    0:00:38 the ASA is going to allow traffic from higher security level
    0:00:42 to a lower security level
    0:00:45 where the inside interface is at security level 100
    0:00:48 the outside level is at security level 0
    0:00:51 so we can go from inside to out
    0:00:54 then we would go from outside to in
    0:00:57 which is lower to higher
    0:00:59 only if a state already exists
    0:01:02 from the Modular Policy Framework inspection
    0:01:06 Now, the potential problem with this
    0:01:08 is that not all types of traffic
    0:01:10 can actually be inspected by the Modular Policy Framework
    0:01:15 and this is due to a limitations of the different applications that the inspection engine support
    0:01:21 now in general
    0:01:23 the potential issue with stateful firewalls
    0:01:27 is that when traffic is moving from the inside network to the outside network
    0:01:33 the firewall is usually going to expect the return traffic
    0:01:37 to be an exact mere image
    0:01:40 of the traffic that is leaving the network
    0:01:43 now the way we could think of this
    0:01:46 is how a normal standard
    0:01:48 TCP application works
    0:01:51 So, lets say for example that we have
    0:01:52 some sort of stateful firewall
    0:01:55 in the transit path from a TCP client
    0:02:00 that is trying to send traffic to a TCP server
    0:02:05 and lets assume that this is running the web service
    0:02:08 So the web service is going run on regular port 80
    0:02:12 Now the client address will, say, has an IP address A
    0:02:16 the server has an IP address of B
    0:02:21 of the first portion of the 3-way handshake
    0:02:25 the traffic is going to from the client to the server
    0:02:29 as it enters the firewall inside interface
    0:02:33 and leaves on the firewall outside interface
    0:02:37 specifically this packet
    0:02:40 has an IP
    0:02:43 source address of A
    0:02:46 it has a destination of B
    0:02:50 it has a source port
    0:02:54 tha is a random number
    0:02:57 and it has a destination port
    0:02:59 that is port 80, which is the well known port
    0:03:03 now specifically, in a handshake, this is a TCP send
    0:03:09 Now, based on this packet, going from the inside to the outside
    0:03:13 the firewall is going to make some assumptions about what the return traffic should look like
    0:03:19 its going to assume that if this is a standard TCP application
    0:03:23 that what used to be the source address
    0:03:27 is now changed to the destination address
    0:03:31 what used to be the source port is now changed to the destination port
    0:03:38 what used to be the destination address is now the source address
    0:03:41 what used to be destination port is now the source port
    0:03:46 so this is what its looking for
    0:03:49 in the second step of the handshake, this would be our
    0:03:52 TCP syn and the acknowledgement
    0:03:57 then from that point on
    0:03:59 all the traffic going from the inside out is going to be similar to the first step
    0:04:04 except is going to be syn its going to be push
    0:04:07 and depending on the actual data transfer between the client and the server
    0:04:12 but the firewall is going to know what the traffic flow should look like
    0:04:15 because is knows the source port
    0:04:17 the destination port, the source address, the destination address
    0:04:21 and its going to know the TCP sequence numbers
    0:04:23 based on the negotiation thats going through that
    0:04:28 now where the firewall runs into trouble
    0:04:31 is where the outbound traffic flow
    0:04:34 is not the same as the inbound traffic flow
    0:04:38 and this happens in non standard applications
    0:04:42 which would be things like IP telephony
    0:04:45 or FTP transfers
    0:04:48 that are using either active or passive FTP
    0:04:53 or things like a simple traceroute
    0:04:56 now lets take FTP
    0:04:58 as an examples cases
    0:05:01 now if you look at what is the difference between
    0:05:04 FTP active versus passive
    0:05:07 there is actually two different ways
    0:05:10 that the protocol can work
    0:05:12 and what it controls is what other particular port numbers that are going to be used
    0:05:17 and who is originating the session, whether its coming from clients or whether its coming from the server
    0:05:23 now in this case we are looking at what is known as an active FTP session
    0:05:28 So this is the default mode of protocol
    0:05:31 FTP actually uses two different port numbers
    0:05:34 it uses TCP 21
    0:05:37 and it uses TCP 20
    0:05:40 I know most people think about FTP, they just think about TCP 21
    0:05:45 because thats the address that you connect to the server on
    0:05:48 but the that address is used as the command channel
    0:05:52 it is not used as the data channel
    0:05:55 with the command channel as one were sending the actual commands
    0:05:58 like list, get, put delete, etc
    0:06:03 where the data channel, thats where the actual transfer happens
    0:06:06 now you can see from the diagram here it says when the connection is actually drawn out
    0:06:11 the first thing that happens is the client
    0:06:14 sends the request to the server
    0:06:16 now they are assuming here that the client is using the source port, a random port of 1026
    0:06:22 goes to the server the destination is 21
    0:06:26 now if there was a firewall in the middle here
    0:06:29 the firewall would assume that now this
    0:06:32 transmission is going to swap
    0:06:33 that the source port, excuse me, the source address is the number
    0:06:37 the source port becomes 21
    0:06:41 the destination port is 1026, the destination address is the client
    0:06:46 Hey, thats fine, thats what happens in step 2
    0:06:49 So the client is telling the server, I want to receive some file
    0:06:53 So its sending like the
    0:06:55 the FTP retreive
    0:06:59 now when the server actually gets this command
    0:07:02 it has not send the actual
    0:07:04 file over the same communication
    0:07:07 it opens up a new channel
    0:07:10 that is from port 20
    0:07:14 going to a random high port on the client
    0:07:18 the client then replies
    0:07:20 where the client's traffic is going to port 20
    0:07:23 its coming from this new random port
    0:07:26 now this is where the firewall logic
    0:07:28 falls apart, in step 3 and step 4 here
    0:07:32 that the firewall was expecting
    0:07:34 traffic to be going between the client and server
    0:07:38 where the client is using destination port 21
    0:07:40 and the server is using source port 21
    0:07:44 but the now we have the second area, data channel is open using a different port number
    0:07:48 the firewall didn't expect this
    0:07:50 Hey, this is why when you look at the ASA specific implementation
    0:07:55 and we look at the show run policy map
    0:07:59 it needs to have a specific application level inspection for FTP
    0:08:06 because it actually needs to look at the commands
    0:08:09 to figure out what are the port numbers that are the server and clients actually negotiated
    0:08:13 for this individual transmission
    0:08:16 if we are going to support both active FTP and passive FTP
    0:08:21 if we look at the next diagram they have on this page
    0:08:25 for the passive FTP
    0:08:29 when the data channel is open
    0:08:32 its the client that is originating it in step no. 3
    0:08:36 in the previous case with the active FTP it was the server originating the traffic from port 20
    0:08:42 thats not whats happens here with the passive
    0:08:45 Hey, this would be the FTP command PA as P for passive
    0:08:51 and it tells them specifically what port
    0:08:53 that the connection is going to be used on
    0:08:57 so order to understand this
    0:09:00 the firewall needs to have application level awareness
    0:09:03 of what are the FTP commands
    0:09:06 and what do they actually do
    0:09:08 now we will get into more details of the Modular Policy Framework
    0:09:12 we will look at specifically how this application inspection work
    0:09:16 and how we can do things like
    0:09:17 prevent people from deleting files from an FTP server
    0:09:21 or may I don't want them to issue the CD command to change directory
    0:09:26 basically any arbitrary command
    0:09:29 that is part of the FTP application
    0:09:31 we can match that and perform an action
    0:09:34 because the ASA has a built in inspection engine for that individual application
    0:09:40 now the problem then
    0:09:43 is what happens when we have a non standard application
    0:09:47 that the firewall does not have an inspection engine for
    0:09:50 and this is generally where we need an access list
    0:09:54 access list is going to be used as a manual exception
    0:09:59 to traffic that cannot be inspected for some reason
    0:10:02 and we will this later specially when we get into VPNs
    0:10:06 there is cases where the firewall cannot actively inspect
    0:10:10 different types of tunnels
    0:10:12 and we need to manually allow this traffic through just based on accesss list logic
    0:10:19 now the access list itself is going to be very similar to how IOS implements it
    0:10:24 where we can match traffic based on the source address
    0:10:27 the destination address
    0:10:29 the IP protocol number
    0:10:31 so for example, is it TCP, is it UDP, is it ESP, is it OSPF, is it EIGRP etc
    0:10:40 the TCP and UDP ports
    0:10:42 would be things like is it port 23 for telnet
    0:10:45 is it port 25 for send mail
    0:10:48 is it range of 1024 to 65535
    0:10:55 hey, there is same type of logic we can do on IOS, we can do on the ASA
    0:10:59 we can also match the ICMP type codes
    0:11:02 which would be things like ICMP echo
    0:11:05 echo reply, unreachable, time exceeded
    0:11:09 mass reply, mass request, etc
    0:11:13 another nice feature that we can match time ranges
    0:11:17 if we are trying to do some time of day based security
    0:11:20 or possibly any like time of day based Quality of Service
    0:11:24 that may be during my normal work hours there is going to be different applications that I am filtering
    0:11:29 that are different than after 5 o'clock during the week, that will allow the people to do, whatever they want
    0:11:35 where with the time range we could specify
    0:11:38 if it is this day of the week or its this time of the day
    0:11:41 then the access list entry or the ace
    0:11:46 if the access list entry is going to be active or not
    0:11:49 then that controls whether its actually used in the access list or its skipped over in the access list
    0:11:56 and also just like an IOS
    0:11:59 the ASA's access lists are also going to end in an implicit deny
    0:12:04 So regardless of whether we actually say deny at the end
    0:12:08 its always going to deny everything that is not being matched
    0:12:13 Now, typically for firewall, this would be the logic that you do want
    0:12:17 you do wanted to be able to drop the traffic that you have not explicitly said that its okay to allow through
    0:12:24 where lot of times on the router you would do the opposite logic
    0:12:27 you might deny the stuff that you don't want and then permit everything else
    0:12:32 but typically the firewalls logic is that it should failed closed
    0:12:36 meaning that it is more restrictive of traffic
    0:12:40 then it is open to traffic flows being allowed through
    0:12:45 so this has the same logic as the
    0:12:47 the inspection engine has, its gets all the way down to the bottom
    0:12:50 in an inspection has not happened
    0:12:53 than the traffic is not going to be allowed back through from the
    0:12:56 the lower security interface
    0:12:59 to the higher security interface, which is like our outside to inside
    0:13:06 now likewise just like an IOS
    0:13:09 access list on the ASA can be both standard and extended
    0:13:13 where the standard ACLs are matching just on the source IP address
    0:13:18 the extending access list can match on any of the other parameters
    0:13:21 so things like the source, destination, the port number, the TCP
    0:13:26 TCP ports, UDP ports, the ICMP type codes etc
    0:13:31 Now one thing that is different
    0:13:33 is that there is no change in the naming convention
    0:13:37 between a standard access list and an extended access list in the ASA
    0:13:43 so if I say access list 1 permit
    0:13:47 I have the freedom to do it either as a standard list of as a extended list
    0:13:52 where in the of IOS, there are specific numbers that are dedicated to standard ACLs
    0:13:58 specific numbers that are dedicated to extended ACLs
    0:14:01 then when we configured a named access list
    0:14:04 we need to specify whether this is standard or extended
    0:14:08 in the case of the ASA its automatically going to know
    0:14:11 if you are not matching based on the IP protocol number
    0:14:18 the list is automatically standard
    0:14:21 now the IP protocol number
    0:14:23 is when you are saying access list, the name, permit
    0:14:27 then the keyword after that
    0:14:29 so if I say permit TCP, I am saying look for the protocol number that is TCP
    0:14:35 I say permit OSPF, I am saying look for protocol number 89
    0:14:39 thats in the IP header, I say permit GRE, I am saying look for protocol number 47
    0:14:46 now again this numbers you don't neccessarily need to memorize
    0:14:50 because you will have access to a reference for them in the documentation
    0:14:55 or if again if you go to the ASA configuration
    0:15:00 so we go to products, security
    0:15:05 firewall, appliance, 5500
    0:15:09 configuration guides
    0:15:12 8.0
    0:15:15 then under reference
    0:15:17 addresses protocols and ports
    0:15:21 so I want the protocols and applications
    0:15:23 so these numbers here
    0:15:26 these values, if we look at like
    0:15:28 51, 88, 50 etc
    0:15:31 this value is the IP protocol number
    0:15:34 that is in the IP header
    0:15:37 So its tells the network layer
    0:15:40 writes to the transport layer, tells the transport layer, what is the next the protocol that is going to come
    0:15:45 So, if its protocol number one
    0:15:48 then we now its some sort of ICMP back
    0:15:53 Now you may see on
    0:15:56 the router or the ASA that some these keywords
    0:15:59 are going to be built in
    0:16:01 to the context sensitive help
    0:16:03 so for example if we were to go to global configure
    0:16:06 on the ASA and say access list 1
    0:16:10 permit ?[question mark]
    0:16:14 we have the option to match
    0:16:16 the protocol names
    0:16:20 but it doesn't neccessarily tells us the actual numbers are
    0:16:25 now we will see as we are going to some advanced examples later
    0:16:28 I will show you some different
    0:16:29 tricks that you can use to figure out, whats the actual
    0:16:33 traffic flow thats going between the interfaces
    0:16:36 but one quick way you can do this
    0:16:39 if you need to know what is a specific
    0:16:41 protocol number
    0:16:43 is when you go to the routers command line
    0:16:46 and configure an extended access list
    0:16:50 so I will say access list 100 permit ?
    0:16:54 just like the
    0:16:57 just like the ASA, doesn't tell you what number is here
    0:17:00 but if I were to say permit 1 any any
    0:17:04 permit 2 any any
    0:17:07 all the way down the line
    0:17:09 So I could potentially, lets say, I would edit this in a notepad
    0:17:13 and just ensure all numbers, 1 through 55
    0:17:17 if we now look at the
    0:17:20 show access list
    0:17:22 or in this case do show access list
    0:17:24 we can see the line number
    0:17:27 corressponds now to the protocol number
    0:17:30 where protocol number 1 is ICMP
    0:17:34 protocol number 2 is IGMP
    0:17:37 thats for multicast, the Internet group management protocol
    0:17:41 protocol 4 is for an IP and IP tunnel
    0:17:45 number 6 is TCP
    0:17:48 these are the ones that don't have the well known keywords
    0:17:51 these are allocated
    0:17:53 but they are just non standard protocols that you won't usually use all of the time
    0:17:59 so if you want to see the full list of them
    0:18:02 its going to be located on the INA website
    0:18:06 If we say IP protocol numbers
    0:18:10 INA - The Internet Assign Numbers Authority, the are the ones in charge of actually doing this allocations
    0:18:16 and there will be separate ones for IPv4 and IPv6
    0:18:21 So like protocol number 3 is gateway to gateway
    0:18:26 which is some legacy protocol
    0:18:28 okay, TCP is number 6, thats going to be important
    0:18:32 EGP
    0:18:33 the Exterior Gateway Protocol
    0:18:35 this the precursor to BGP
    0:18:38 So lot of these .. these
    0:18:40 the small numbers, lot of thee legacy protocols are not used anymore
    0:18:50 we can see GRE as protocol number 47
    0:18:53 So this is what you are actually matching when you use the access list syntax that says permit
    0:18:59 and then the keyword permit GRE any any, permit rcp any any etc
    0:19:03 but the key point here is that the ASA is automatically going to know
    0:19:07 that if you use the protocol number in the match
    0:19:11 you are automatically creating an extended ACL
    0:19:15 you are not creating a standard ACL
    0:19:18 because only extended ACLs can match the protocol numbers
    0:19:22 standard ACL, the only thing you could do is match the address, the source address
    0:19:27 Now one of the caveats of this
    0:19:30 that you can not mix the two in the same list
    0:19:33 so in general
    0:19:35 there are not many applications on the ASA where you would want to use a standard Access List
    0:19:41 for anything that is traffic filtering related
    0:19:45 you should in general use an extended list
    0:19:48 because with the extended list
    0:19:50 that you want to match on source addresses, thats fine
    0:19:53 the only thing you need to do is say 'any' as the destination
    0:19:58 but if you start your ACL using a standard list
    0:20:01 you cannot change it to extended
    0:20:05 so the extended ACL can match anything the standard can plus more
    0:20:11 now the other potential issue with this
    0:20:13 is that unlikely IOS
    0:20:16 we do not use wild card masks, we use subnet masks
    0:20:22 so in the case of IOS
    0:20:25 If I wanted to match traffic from a particular sect
    0:20:28 lets say on router 1 we look at the show ip route connected
    0:20:33 if I wanted to match traffic that is coming from
    0:20:37 hosts on my fast ethernet 0/0
    0:20:40 my access list
    0:20:42 say access list 101
    0:20:45 would say permit ip 200.0.111.0
    0:20:50 0.0.0.255 going anywhere
    0:20:55 so with the match
    0:20:58 I am saying with the 0s, I need to check exactly
    0:21:02 these three octects, the first one, the second one
    0:21:07 and the third one, these three matches, they have to be exact
    0:21:12 the fourth octet, the 255
    0:21:14 means to ignore, what is match there
    0:21:19 the problem is when you do this on the ASA
    0:21:22 the logic would be the opposite
    0:21:24 if I were to take the same exact syntax
    0:21:27 and put it on ASA
    0:21:32 it says thats not the correct match
    0:21:35 because the subnet mask here
    0:21:38 is used instead of the wild card mask
    0:21:42 and again the same is true with the routing protocols, when are doing OSPF or EIGRP
    0:21:48 instead of using wild card master musk the address
    0:21:51 we need to use a subnet mask
    0:21:54 Now, if you make the mistake, you are going to know, because if you look at the
    0:21:58 the show run access list
    0:22:01 you will be able to quickly see, if I were to say
    0:22:06 lets say 0.0.0.0
    0:22:09 so I wanted do an exact match
    0:22:11 you will see sometimes the syntax or the parser is going to spit back this error
    0:22:16 what this say, access-list 101 permit 0.0.0.0 0.0.0.0 any
    0:22:27 permit ip
    0:22:33 then we show run access-list
    0:22:37 you can see this is the any any logic
    0:22:40 this is the opposite of what the IOS is
    0:22:43 if you were to say this on a IOS, this would say host
    0:22:46 0.0.0.0
    0:22:51 so just be aware that, watch out for that the
    0:22:54 the wild card master used for IOS
    0:22:56 and the subnet mask is used for
    0:22:59 the , for the ASA
    0:23:05 now the next feature that we have in the ASA
    0:23:08 is whats known as an object grouping or an object group
    0:23:11 and this is used to simplify the management of Access list
    0:23:15 by gouping
    0:23:16 portions of the logic that are similar
    0:23:19 to gather in a more modular configuration
    0:23:23 so for example, we could create an object group that says
    0:23:25 I am going to match all of the addresses that are my public web servers or my public servers
    0:23:31 so if I want to add new servers
    0:23:34 the only thing I will need to do is put a new entry in the object group
    0:23:39 which then in turn is going to replicate down to all of the access list that is referencing the object group
    0:23:45 so its going to allow for more modular changes
    0:23:48 because a change to the object group is going to effect all the access control entries
    0:23:53 that are referencing that group
    0:23:57 now its a pretty simple principle
    0:24:00 when it actually see it in action
    0:24:03 and there is four different ways that we can group the objects together
    0:24:07 we can group them by protocol
    0:24:10 which would be things like TCP, UDP, ESP
    0:24:13 again this IP protocol number
    0:24:17 we can match them by network addresses
    0:24:20 which would be their IP address, their subnet address etc
    0:24:24 we could match the service
    0:24:27 which is going to be the TCP or UDP port numbers
    0:24:30 and we can match the ICMP type code
    0:24:33 which would be like the echo, echo reply
    0:24:36 time exceeded etc
    0:24:40 now the place that you would want to use this
    0:24:43 is typically where you do have multiple hosts
    0:24:47 that you are trying to allow multiple services to
    0:24:51 and its going to make
    0:24:54 applying changes to the access list much easier
    0:24:58 when you group it together in a modular fashion
    0:25:00 so for example here I have a bunch of ACL statements
    0:25:04 that are saying, I am matching two different servers
    0:25:07 okay, two different servers are 100, err..
    0:25:11 10.0.0.100
    0:25:14 and 10.0.0.101
    0:25:17 I am trying to allow access to these different servers
    0:25:20 and want the traffic to come from two
    0:25:23 possible hops, from 200.0.0.1
    0:25:26 and 200.0.0.2
    0:25:28 I want them to be able to hit both servers
    0:25:31 with separate protocols with web browsing
    0:25:34 with SSL and with send mail with SMTP
    0:25:38 now the problem is
    0:25:40 lets say I want another host to be authorized
    0:25:43 to reach this destination, lets say 200.0.0.3
    0:25:47 means now I have to add an additional 6th access list entry
    0:25:52 I will have to say permit 200.0.0.2
    0:25:54 going to 10.0.0.100 at 80, at 443, at 25
    0:25:59 and then again the same for the 101
    0:26:02 likewise if I add in new server
    0:26:04 say add .102
    0:26:06 means I have rewrite the entire list to then account for that additional number
    0:26:12 so the object groups are going to break this up
    0:26:15 into the repeatitive groupings
    0:26:17 where in this case, I have 3 different groupings that are reapeated
    0:26:21 the sources of where the traffic is coming from
    0:26:26 the destinations of where the the traffic is going to
    0:26:29 and the particular port numbers
    0:26:31 that the servers are being accessible by
    0:26:34 So I am going to split this into three different groupings
    0:26:37 First one is going to say what is the source of traffic
    0:26:41 these are my outside hosts 200.0.0.1 and 200.0.0.2
    0:26:47 I then have the inside servers I am trying to allow them to reach the 10.0.0.100 and 10.0.0.101
    0:26:54 and the particular port numbers that they are going to use
    0:26:58 now whats nice about the modularity of this configuration
    0:27:02 is that the very last statement
    0:27:04 access list 2 extended permit TCP object group
    0:27:07 outside trusted host, means the source IP address
    0:27:12 object group public inside servers
    0:27:14 means the destination IP address
    0:27:17 object-group PUBLIC_INSIDE_SERVER_PORTS means the destination port now
    0:27:23 So the configuration of the actual access list
    0:27:26 only has one configuration line, the very last line
    0:27:30 when you look at the show access list
    0:27:33 each of the accesses control entries or the ACEs, the A-C-E s
    0:27:38 are going to expand
    0:27:39 to all combination of the outside trusted hosts
    0:27:43 the public inside servers and the public inside server ports
    0:27:48 so lets look at the actual syntax applied here
    0:27:54 lets go to ASA2
    0:27:58 and will configure these groupings
    0:28:01 so I have the object groupings for the sources
    0:28:04 the object goupings for the destinations and for the ports
    0:28:08 now the access list entry are only configure at once
    0:28:13 if we look at the show run access list
    0:28:15 we will see its just that one entry
    0:28:19 however if we look at the show access-list
    0:28:23 you will see that for list number 2
    0:28:26 the object group is automatically expanded
    0:28:29 to take into account, all the possible actions, all the possible variations
    0:28:34 of those three object groups as though added together
    0:28:39 so what this now means
    0:28:40 is that if I have a new sender
    0:28:42 that I want to add to the list
    0:28:45 a new destination or a new port number
    0:28:48 the only thing I need to do
    0:28:49 is to change the object group
    0:28:54 if I say, lets say I want a new port number
    0:28:58 for these particular hosts
    0:29:01 may be though, they are allowed to
    0:29:05 they are allowed to use
    0:29:09 or object is equal to
    0:29:16 hop 3 and its equal to imap
    0:29:21 so now not only are they using send mail they are also using get mail
    0:29:25 if we look at the show run object group
    0:29:30 the only thing thats changed my configuration is these two additional changes
    0:29:35 but when we look at the result of this in the show access list
    0:29:41 those additional ports of the pop3 and the imap
    0:29:46 they are account for, for every combination of sources and destinations
    0:29:51 so from the 201 to the 10100, from 201 to 10101
    0:29:56 202, 10100, 202,10101
    0:30:03 Now one thing it does not do though
    0:30:05 is increase the limitation of number of
    0:30:07 total access list entries you can have on the interface
    0:30:12 which is going to be a limitation of the individual platform
    0:30:16 so if you are doing this in production and you literally have
    0:30:18 thousands and thousands of lines in the access list
    0:30:21 then you got to need to look at the hardware release note and figure out
    0:30:24 how many total entries can I actually have
    0:30:28 but assuming that your access list are not just out of control or manageable
    0:30:32 than lot of a time the acess list
    0:30:34 of groupings with the object groups is going to
    0:30:37 help us out as kind of a shortcut
    0:30:41 Now there are some minor exceptions for when you cannot use this
    0:30:46 and one case of the top of my head would be for
    0:30:52 a proxy ACL for IPSec
    0:31:02 where a proxy access list
    0:31:04 in a LAN-to-LAN VPN config or a remote access VPN config
    0:31:09 is going to be used to say what type of traffic is going to be directed towards the tunnel
    0:31:15 so for whatever ?? limitation the object groups are not supported for that particular application
    0:31:21 in general its only going to be used for what we are doing here
    0:31:24 like if I were say
    0:31:27 access list 2 in interface outside
    0:31:33 or access group 2
    0:31:35 in interface outside
    0:31:38 so now it means that
    0:31:41 these outside hosts are able to access these
    0:31:44 particular inside ??
    0:31:49 so for any other application if you are doing like
    0:31:52 route filtering or pretty much any other time you are trying to match an access list
    0:31:56 you should not use the object grouping
    0:31:59 because you can't guarantee it a 100% support
    0:32:03 okay, what I meant by the proxy ACL is the crypto access list, so when you say
    0:32:09 match address under the crypto map
    0:32:12 thats what the, thats called the proxy ACL
    0:32:18 now as a side note here
    0:32:21 for our
    0:32:24 access list within the scope of the lab exam
    0:32:28 now in the lab exam, they are most likely not going to be very explicit
    0:32:33 as to what they want you to do, or not do
    0:32:36 in order to accomplish a particular goal
    0:32:39 so lets say for example we have a question
    0:32:42 that says I want you to telnet into router1
    0:32:46 use the user name brian with password cisco
    0:32:49 and when the user logs in
    0:32:51 talk the radius server to give them privilege level 15
    0:32:54 and I want to do a counting to figure out when they start the process and when they stop the exact process
    0:33:01 now what I not going to tell you in the particular question
    0:33:05 is to say make sure to go to ASA2
    0:33:09 and configure an access list entry
    0:33:11 so that it allows traffic to go from router1 to the ACS server
    0:33:15 then make sure that, that traffic is allowed to go back
    0:33:19 so we will see in the lab exam
    0:33:21 a lot of the requirements are going to be very implicit
    0:33:25 that if the radius server is on the inside of ASA
    0:33:30 and you are trying to configure a AAA client on the outside
    0:33:34 then the only way to do it is to allow it with an access list entry
    0:33:38 because we can not do an inspection from the outside in
    0:33:42 we can only do inside out because we are going from higher security to lower security
    0:33:49 so what I would recommend to do within the scope of the lab exam
    0:33:52 is that you need to draw a diagram
    0:33:55 and draw out a visualization of what the network flows are going to look like
    0:34:01 so on any device that is doing any type of firewall filtering
    0:34:05 whether its going to be the ASAs
    0:34:07 obviously they are doing firewall filtering
    0:34:09 or whether may be the routers doing
    0:34:11 zone based policy firewall CBAC
    0:34:14 or may be even like reflexive list, so dynamic ACLs
    0:34:18 we want to make sure that you want to visualize
    0:34:21 exactly where you need to allow the applications
    0:34:24 may be we are getting network time
    0:34:26 from the ACS server
    0:34:29 so if I want, everyone on my network to be able to synchronize time
    0:34:32 with ACS
    0:34:35 means that in on the ouside interface
    0:34:38 I would need to do what
    0:34:43 if this is my NTP server
    0:34:49 I would need to say
    0:34:51 I need UDP
    0:34:54 port 123
    0:34:57 to go to whatever that host is
    0:35:00 now there is a comment here about static NAT
    0:35:04 that could also be a possibility
    0:35:07 but the Network Address Translation is independent
    0:35:11 of the traffic filtering process
    0:35:14 so lets say if the ?? ASA2 is doing network translation
    0:35:18 because this 10 network we know that is not publicly routable
    0:35:20 lets it was translated to 200.0.122.100
    0:35:27 Now what this then means
    0:35:30 is that when the access list is applied
    0:35:33 in on the outside interface
    0:35:37 what address do I need to match
    0:35:39 do I need to match my inside
    0:35:44 local address
    0:35:47 or do I need to match my inside
    0:35:51 global address
    0:35:57 now it really depends
    0:35:59 it depends on what is the order I am trying to apply
    0:36:02 the ACL in and the order that I am trying to apply the NAT processing
    0:36:06 in the case of the static NAT translation, when we are going outside to in
    0:36:13 on outside to in translation is going to hit the ACL process first
    0:36:18 before it goes through the NAT translation
    0:36:21 so this means that I will need to say that the traffic is going through
    0:36:25 200.0.122.100 at UDP 123
    0:36:31 not going to the 10.0.0.100 which is the actual real inside address
    0:36:38 now this going to be different though if I was doing this
    0:36:40 in on the DMZ
    0:36:43 If it came in on the DMZ
    0:36:46 I would be matching the inside local address
    0:36:49 not the inside global address
    0:36:51 so we will talk about that more tommorrow when we get to NAT on ASA
    0:36:55 and then again we will get to NAT on the IOS
    0:36:58 it can be fairly complex when you get into this
    0:37:01 there is also a document I would recommend to look into
    0:37:05 which is the NAT order of opertions
    0:37:10 now this is specifically
    0:37:13 for the IOS
    0:37:14 I believe there is one for the ASA, I have to double check
    0:37:18 tonight for that
    0:37:20 but this tells you the difference, whether you are going from the inside network out
    0:37:24 or the outside network in
    0:37:27 you see that there is a different order of operations for things like
    0:37:30 when we are checking the access list
    0:37:33 does it happen before
    0:37:34 the NAT process, or does it happen after the NAT process
    0:37:38 really depends on the direction of the traffic flow
    0:37:43 but what you can't do
    0:37:46 to try to get around this
    0:37:48 because you don't want to memorise that whole list, its not feasible to figure out
    0:37:52 off the top of your head, what this order of this list is going to be
    0:37:55 what you could simply do instead
    0:37:58 is to use to login
    0:38:01 on the access-list's entries of the ASA or the routers
    0:38:05 to figure out what is actually being dropped
    0:38:09 so at the end of the ACL
    0:38:11 what I would recommend to do is to say deny ip any any log
    0:38:17 then if you are logging traffic to the buffer
    0:38:20 you can periodically look at the show log output
    0:38:23 and see actually what is getting denied on that interface
    0:38:29 so we will see when get into more details with the zone based policy firewall
    0:38:34 of the routers
    0:38:35 you can end up in this order of operations problem again when you are trying to apply an ACL on the interface
    0:38:42 versus matching it inside of a class map and doing the pass action
    0:38:48 with the zone based firewall
    0:38:50 so in order to
    0:38:52 to avoid those type of operations
    0:38:55 ususally that the easiest thing to do is
    0:38:57 is on to your class default
    0:38:59 which is normally dropping traffic anyways
    0:39:02 say, drop log
    0:39:04 so you can see what is being dropped
    0:39:07 so then if we forget
    0:39:10 that in this specific scenario I was supposed to match the inside global address
    0:39:16 not the inside local
    0:39:17 the access-list log is quickly going to tell me that
    0:39:20 that the entry is dropped as it is going to the 200 address
    0:39:23 not as it is going to the 100 address
    0:39:29 now we will keep point about this
    0:39:32 is that this last portion of accesses login, this is only for the lab purposes
    0:39:37 now you would not want to do this in production because why
    0:39:44 what happens on an access control if you do the log statement at the end of it
    0:39:51 it causes it to be process switched
    0:39:54 and thats the reason you can see the log messages
    0:39:57 so if you wanted to disable ?? for a particular protocol
    0:40:02 you can do that by logging the particular protocol with an ACL
    0:40:07 So even if you don't want to deny the traffic, you could just say permit in a log
    0:40:11 and it ?? it down to the process switching process
    0:40:15 what if you were doing zone based policy firewall in production
    0:40:18 and ended in deny log
    0:40:21 if means that all of the deny traffic is going to be process switched
    0:40:25 and its very likely that your CPU is going to be
    0:40:27 ah, too high of utilization
CCIE Security Advanced Technologies Class
Title: CCIE Security Advanced Technologies Class
Duration: 39h 19m
The CCIE Security Advanced Technologies Class is the first step in understanding CCIE level technologies and is a companion to the Advanced Technologies Lab Workbook. Each technology you need to know for the CCIE Security lab will be described in detail using an instructor led hands on demonstration. The class consists of over 40 hours of in depth explanations and examples.
Get instant access to our entire library!
$159/month Add to Cart
Download this Course
$299.00 Add to Cart


© 2003 - 2012 INE All Rights Reserved