IOS TCP Intercept and Content Based Access Co...


 


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:13 In our next section here we are going to look at two other security features for the IOS firewall
    0:00:18 which are the TCP intercept
    0:00:20 and the Content Based Access Control or CBAC
    0:00:24 which is the successor to the reflexive access list
    0:00:27 but the precursor to the zone based firewall
    0:00:33 Now TCP intercept is
    0:00:35 similar to the other features that we saw on the asa firewall
    0:00:38 thats used for the TCP normalization
    0:00:41 which is mainly designed to prevent
    0:00:43 TCP syn flood attacks or denial of Service attacks
    0:00:46 that are based on the three way handshake of TCP
    0:00:51 Now as we talked about before
    0:00:53 specifically the three portions of the handshake are the client
    0:00:56 sending the syn
    0:00:58 the server replying with the syn and the acknowledgement
    0:01:02 then the client not fully opening the session by sending the final acknowledgement
    0:01:07 or the end of this is the half open connection or the embryonic session
    0:01:13 the problem with this is that the server's TCP stack itself
    0:01:17 is only going to support a finite number of connections
    0:01:20 depending on the individual implementation
    0:01:23 So of its server supports, even lets say a 100,000 connections
    0:01:27 its doesn't takes that long for a host to generate thousand different syn packets
    0:01:32 in order to try to keep all them half open
    0:01:35 So TCP intercept is designed to prevent this
    0:01:39 in two different possible ways
    0:01:41 one is called the intercept mode
    0:01:43 in which the router in between
    0:01:45 the client and the server is going to proxy for all of the connections
    0:01:49 and then only send the TCP session to the server
    0:01:52 after the client has completed the three way handshake
    0:01:57 Now the other mode which is
    0:01:59 more commonly implemented is the watch mode
    0:02:02 in which the router is just going to passively monitor the session between the client and the server
    0:02:08 and if it does not fully get to the establish state
    0:02:10 its going to send a TCP reset to the server
    0:02:14 in order to allow to delete the half open session
    0:02:19 Now the configuration of this feature is very straight forward
    0:02:22 the only thing that we need to do is define
    0:02:25 what are the particular host that the router is going to protect
    0:02:29 and we do this by defining an access list
    0:02:31 and applying it as an ip TCP intercept list
    0:02:36 so if we have a web server at the address 10.0.0.100
    0:02:40 we simply need a standard access list
    0:02:42 or an extended access list that could be matching a particular port value
    0:02:46 than which is applied as the TCP intercept list
    0:02:51 we would then define the mode
    0:02:53 whether we are running in intercept or watch mode
    0:02:57 where typically watch mode is better
    0:02:59 because the router doesn't have to maintain the state
    0:03:02 of all of the TCP sessions
    0:03:05 So on a real design, typically you would not want to run in a intercept mode
    0:03:10 because then you are taking your denial of service attack
    0:03:12 that was going against the server
    0:03:14 and you are basically moving it down to the router CPU
    0:03:18 with the watch mode the router doesn't necessarily need to maintain all of the states
    0:03:22 it just watching for the half open sessions
    0:03:25 then after the particular time expires, it sends the reset back to the server
    0:03:30 and this is going to be based on the
    0:03:32 TCP intercept watch timeout
    0:03:36 so this particular option
    0:03:38 as the name implies, this is only going to be used when
    0:03:42 we are in the watch mode as opposed to the intercept mode
    0:03:48 Now once we are watching the traffic
    0:03:51 or if we are proxing forward and doing the actual intercept
    0:03:54 there is three different thresholds, or excuse me
    0:03:57 two different types of thresholds that the router can use
    0:04:00 which are the maximum number of incomplete sessions
    0:04:04 or the one minute connection raid for the sessions
    0:04:09 So once we go above these thresholds, either a total number or
    0:04:14 a number for the pass minute
    0:04:16 once we go above the high threshold
    0:04:18 then we start deleting the old sessions
    0:04:22 so this is when we start to go into what is called the aggressive mode of the intercept
    0:04:27 then finally once we go back to below the low threshold
    0:04:30 thats when we start to
    0:04:32 to allow the connections back in
    0:04:37 Now the documentation for this
    0:04:40 is going to be similar to the other ones, its under the 12.4T command reference
    0:04:44 the 12.4T configuration guide
    0:04:49 then down to securing the data plane
    0:04:55 and configuring TCP intercept to prevent denial of service attack
    0:05:00 So you will see here, when you look at the configuration example
    0:05:03 there is really not much that you would do with this feature
    0:05:06 So there is example of just two lines of syntax, just the access list
    0:05:10 and then the application of the intercept list
    0:05:16 Now typically where we will see the supplied instead
    0:05:20 is with the Content Based Access Control feature or CBAC
    0:05:25 where CBAC is similar to the reflex of access list
    0:05:30 but it adds true state-full inspection
    0:05:32 to the IOS firewall
    0:05:34 because like the Modular Policy Framework on the asa
    0:05:37 it does an application level inspection
    0:05:41 now as this relates to the TCP intercept
    0:05:44 we will see that these intercept thresholds the
    0:05:47 maximum incomplete
    0:05:49 the one minute high the one minute lows
    0:05:52 these are going to be applied additionally to content based access control
    0:05:59 now we will see that we are going to be performing protocol specifically inspection
    0:06:06 for the application level protocols
    0:06:09 which is going to be based on the protocol specific port number
    0:06:13 so by default for example we are going to be looking at HTTP sessions that are going to port 80
    0:06:18 now for some reasons we are running these protocols on nonstandard ports
    0:06:23 we will need to define in the port mapping table
    0:06:26 specifically what port value we want the firewall to listen for
    0:06:31 so we are running our server on port 81
    0:06:34 for HTTP
    0:06:36 we are going to need to tell it to listen for port 81 in addition to port 80
    0:06:45 next thing we are going to do do is define inspection rule
    0:06:48 this is going to watch the traffic as it leaves the network
    0:06:53 then like the reflexive accesses we can apply this either on the interface
    0:06:58 or out on the interface
    0:07:01 now we are going to switch to direction that we use it in
    0:07:04 its automatically going to open up a hole in an access list in the opposite direction
    0:07:10 so similar to our
    0:07:12 previous example if we look back at our topology
    0:07:16 if we were to configure CBAC on router 1
    0:07:21 we could inspect the traffic as it comes in on the inside interface
    0:07:27 or as it goes out on the outside interface
    0:07:32 but regard this which case CBAC is going to
    0:07:36 watch the traffic as it comes back in
    0:07:40 so essentially outside in
    0:07:43 then determine whether the traffic should be permitted or denied
    0:07:49 so we do still need a specific access list thats going to be applied on the reverse direction
    0:07:54 that is going to deny the traffic
    0:07:57 that is not matched by the CBAC rule
    0:08:04 so lets take a look at a basic example of this
    0:08:07 we are going to take the similar logic that we had configured on router 1 before
    0:08:11 with the reflexive access list
    0:08:13 but now we are going to apply this with the
    0:08:17 with the CBAC
    0:08:18 so we are going to be watching traffic as it leaves
    0:08:22 the frame in the interface thats connected to router 2
    0:08:26 then as it comes back in
    0:08:27 we are either going to permit or deny it
    0:08:29 depending on whether the traffic was inspected
    0:08:32 by the state table
    0:08:35 now if we look at the show ip port map
    0:08:39 this is going to show us the default mappings
    0:08:42 that the inspection engine is usyng for these individual protocols
    0:08:47 so if we look at for example HTTP here
    0:08:51 its going to say that this is using TCP port 80 by default
    0:08:56 and we could see that a lot of these are application level inspections
    0:08:59 that its not just generic TCP
    0:09:02 or just generic UDP
    0:09:05 its specific application level ports
    0:09:15 if we do want to change these
    0:09:18 this is going to be again with the ip port map command in global config
    0:09:23 so if a HTTP inspection
    0:09:27 is not using TCP port 80 I could say its
    0:09:30 on port 80
    0:09:32 but then its also may be port 81
    0:09:35 so now when I say ip inspect HTTP
    0:09:38 its going to look now only for the TCP port 80 but its going to look at the port 81
    0:09:44 now for the actual rule
    0:09:47 the ip inspect we give it a name we say that this is CBAC rule
    0:09:52 this is similar to defining
    0:09:55 the reflexive access list so ip inspect the actual keyword name
    0:09:59 per byte name
    0:10:00 then we want to list whats the particular application we want to inspect
    0:10:05 now we could do generic ones we could just say TCP
    0:10:09 UDP
    0:10:11 UDP and ICMP
    0:10:14 or we could do application level inspections
    0:10:17 like HTTP
    0:10:20 and depending on the version you will see that
    0:10:23 it has some
    0:10:24 the higher the version and higher the platform here the more
    0:10:27 random the matters are going to be like for in this
    0:10:30 particular example you could do bittorent inspection
    0:10:36 so once we have the particular rule to find
    0:10:39 we show run include inspect
    0:10:46 then we are going to watch the traffic as it leaves the network
    0:10:49 so in this case this is on serial 0/0.12
    0:10:53 ip inspect
    0:10:56 the rules name is CBAC_rule
    0:11:04 and I want to apply this
    0:11:06 as it goes out
    0:11:07 that interface so ip inspect CBAC rule out
    0:11:11 now on the reverse path
    0:11:13 for the traffic coming back in
    0:11:16 right now there is no access list that is denying traffic
    0:11:19 so really the inspection rule is not going to do anything
    0:11:22 I would still need
    0:11:23 ip access list extended that is outside in
    0:11:28 outside in
    0:11:31 that says
    0:11:34 deny ip any any
    0:11:37 and we will log this traffic
    0:11:40 so now I am going to know if there is particular flows that I am dropping that I do not want to drop
    0:11:45 the log message is going to tell me
    0:11:48 where do I need make an exception for either at the CBAC rules
    0:11:51 or for the traffic coming back in with the access list
    0:11:57 so then if the interface level here not only do we have the inspection rule applied out
    0:12:02 with the ip inspect CBAC rule out
    0:12:05 I also want ip access group
    0:12:08 outside in
    0:12:12 is applied inbound
    0:12:17 now again if we look at our routing design
    0:12:22 router 1 is using ospf
    0:12:25 as its igp on this interface
    0:12:28 and we can see from the log message immediately we start to drop this control plane packet as it comes in
    0:12:35 so just like the reflexive list we do need to account for this
    0:12:39 I would then need to go to my
    0:12:41 ip access list extended
    0:12:44 and say for outside in
    0:12:48 I need to permit ospf
    0:12:53 now you will see that some of the protocols do support inspection already
    0:12:58 if we say ip inspect name
    0:13:03 so ip inspect name
    0:13:06 is CBAC_rule
    0:13:11 ospf does not have an inspection
    0:13:13 eigrp does not
    0:13:18 router does ably this is the rip process
    0:13:22 because this is the UDP
    0:13:24 bgp does
    0:13:26 because it is using TCP
    0:13:29 but for the protocols that are using their own transport
    0:13:32 much of the time the inspection engine does not
    0:13:35 support that
    0:13:38 ok another one that does not support would be esp
    0:13:45 so we would have to maintain an account for that if there was
    0:13:49 an ipsec vpn that is going through
    0:13:51 the firewall
    0:13:55 so documentation wise if you look under that
    0:13:58 configuration guide that is the securing the data plane
    0:14:03 under the context based access control
    0:14:07 it will show you what are the specific application level inspections
    0:14:13 so for example the HTTP inspection engine
    0:14:17 this is similar to what we saw on the asa
    0:14:22 that we could do like url inspection with this
    0:14:26 but its assuming that we have the application level gateway and order to do this
    0:14:31 so its supportive for everything
    0:14:33 anything that its not supportive for we would have to do a manual
    0:14:36 exception with the access list
    0:14:41 so now if we look at the show access list
    0:14:44 we see on the outside in list I manually allow the ospf
    0:14:51 for the other flows
    0:14:53 but say now we go the pc on the inside
    0:14:58 and we do web browsing out to
    0:15:01 router 2
    0:15:07 we should now see when we look at the
    0:15:10 show ip inspect sessions
    0:15:14 that router is going to know about this particular
    0:15:17 session well HTTP session
    0:15:20 now as I mentioned before
    0:15:23 every time the
    0:15:25 the server or the client issues a request
    0:15:28 the HTTP get
    0:15:30 thats a new TCP session from the client to the server
    0:15:34 its not a constant session that is open
    0:15:37 similar to like a telnet session
    0:15:40 so as these are open and closed
    0:15:43 the inspection engine just like the modular policy framework or the asa
    0:15:47 knows how is the web session supposed to start with a 3 way handshake
    0:15:52 then if it ends with the TCP fin
    0:15:55 or the TCP reset
    0:15:57 it knows to delete the session from the session table
    0:16:03 if we were to go to the windows
    0:16:07 box here lets do a telnet lets say after router 2
    0:16:12 and lets generate a bunch of traffic will say show tech support
    0:16:18 when we look at router 1
    0:16:20 and look at the sessions
    0:16:25 we see we know about the telnet sessions thats coming from
    0:16:28 the host on the inside
    0:16:30 and its going out to router 2
    0:16:33 if we look at the show access list
    0:16:36 notice that we are not
    0:16:38 putting temporary entries
    0:16:40 in the acl
    0:16:43 this is more similar to the modular policy framework or the asa
    0:16:46 where we have this separate session table
    0:16:51 now once this session ends
    0:16:56 if I were to go to
    0:16:58 the windows box and type exit
    0:17:01 so right now if we look at the sessions we see that its still on the open
    0:17:05 if I exit here
    0:17:08 this is going to send the TCP fin
    0:17:11 to say that the session is done
    0:17:12 now its gonna leave the table
    0:17:15 the same would be true
    0:17:17 if I were to do a ping
    0:17:19 if we ping out to router 2
    0:17:24 when we look at the sessions this is only going to exist in the session table temporarily
    0:17:30 as we hear the ICMP echo go out
    0:17:33 and then have the reply come back in
    0:17:38 so the different applications inspections are going to be a little bit different
    0:17:42 we can see that the ICMP was not as exact as the TCP
    0:17:45 because it is not a connection oriented protocol
    0:17:49 there is nothing specifically in there that says my icp session is done with you
    0:17:52 or my voice over ip phone call for UDP is done with you
    0:17:56 for TCP since it is connection oriented it is explicit
    0:18:00 we are saying I want to open the session
    0:18:02 the server says either yes you can open it or no you cannot
    0:18:06 then when we are done the server either says I am done with your session or the client says I am done with the session
    0:18:12 now there is question here how does the CBAC application
    0:18:15 CBAC inspection engine know where the return traffic will arrive
    0:18:20 if there were multiple interfaces with
    0:18:23 multiple access lists
    0:18:26 now the key is that the inspection occurs
    0:18:29 on the reverse path input
    0:18:32 its going to occur before the access list is checked
    0:18:37 so if we were to look at our design lets say for example that we are going to do this
    0:18:42 type of inspection
    0:18:44 on
    0:18:47 we are going to do this inspection on router 2
    0:18:49 where we will say that we have multiple outside interfaces this is outside interface 1
    0:18:54 and this is outside interface 2
    0:18:58 here this is the inside
    0:19:00 now from the acs server when I browse out
    0:19:05 lets say hit the web-server servers on router 3
    0:19:08 then I hit the web-server servers on router 1
    0:19:10 when the return traffic comes back in
    0:19:14 we are not putting temporary entries in the acl
    0:19:17 we are looking at the session table
    0:19:22 so the session table is global to the router its not bound to an individual interface
    0:19:27 this is why its more flexible as to the direction of the inspection
    0:19:31 because with the reflexive list
    0:19:33 we have to apply the
    0:19:35 the inspection out and then the access list to allow it back in the reverse direction
    0:19:40 let CBAC deals with multiple interfaces or multiple security zones a little bit better
    0:19:47 so lets try to same on out ???/
    0:19:49 this out
    0:19:51 on router 2 with these multiple interfaces
    0:19:53 so lets say that we have
    0:19:56 an ip inspect rule
    0:19:59 we will say rule 1
    0:20:07 rule 1 says just TCP
    0:20:09 UDP and ICMP
    0:20:15 now router 2 is going to do the inspection
    0:20:18 a little bit differently than we did on router 1
    0:20:20 instead of doing it out
    0:20:23 instead of doing it out the outside interfaces
    0:20:25 we are going to do it in on the inside
    0:20:32 so this is router 2 fa0/0 will say ip inspect
    0:20:37 rule 1 in
    0:20:40 then we will have 2 separate access list ip access list
    0:20:44 extended outside
    0:20:47 1 in
    0:20:50 that says permit ospf
    0:20:53 any any
    0:20:56 and outside 2 in
    0:21:00 where we will say that this is outside 1 this is outside 2
    0:21:19 so on router 2 is linked to router 1 we Will say ip access group
    0:21:22 outside 1 in in
    0:21:26 on the link to router 3
    0:21:34 outside 2
    0:21:36 in
    0:21:45 now on router 1 I am going to remove its
    0:21:48 filtering configuration
    0:21:50 so I want to be able to test this in multiple direction
    0:21:53 so on router 1 I will say no
    0:21:56 access group and no ip inspect
    0:22:00 on both router 1 and router 3
    0:22:03 I am going to run the web-service
    0:22:05 so we will say it is ip HTTP server
    0:22:10 on router 1 and on router 3
    0:22:16 so what I now want to see on router 2
    0:22:19 and lets look at the debug list lets say debug ip inspect
    0:22:26 lets say inspection advance
    0:22:30 so now from the
    0:22:32 the aaa server
    0:22:37 that is on the inside
    0:22:41 inside on the network so from router 2's perspective this host is on the inside
    0:22:46 lets browse out
    0:22:52 lets browse out to-wards router 1 and router 2
    0:23:04 lets go to 200.0.01
    0:23:15 and on router 2 lets look at the show log
    0:23:20 says we are debugging to the console
    0:23:24 and the show debug we are debugging
    0:23:27 inspect special events thats when I say lets say debug ip inspect
    0:23:38 protocol TCP
    0:23:44 so lets connect to router 3
    0:23:56 so we can see the actual
    0:23:58 protocol communication between them
    0:24:01 where
    0:24:04 first we are at the TCP syn
    0:24:07 that came from
    0:24:09 came from the inside 10.0.0.100 going to router 3
    0:24:14 router 3 then replies back with the syn ack
    0:24:18 so this is what
    0:24:20 this is what the inspection engine was expecting
    0:24:24 then the windows machine replies back with the ack now the session is open
    0:24:29 hey notice you look at the keyword here it says that
    0:24:32 right now the session is closed
    0:24:34 hey we are starting to open it we are starting to open it we get past the 3 way handshake now lets open
    0:24:40 so the push
    0:24:41 and the acknowledgement this is where they are actually exchanging data
    0:24:45 we get to the fin
    0:24:47 now they know to close the session
    0:24:50 and eventually its going to get deleted from the session table
    0:24:53 so if we show ip inspect
    0:24:56 sessions right now its not going to show there
    0:24:59 because the session open and closed
    0:25:01 but regard this which direction we go if we go to router 1
    0:25:07 or we go to router 3
    0:25:11 neither of those access lists are going to get hit
    0:25:17 so actually I should have another list that says deny any any and then log
    0:25:22 but it doesn't matter which direction is the outside interface
    0:25:27 because it already knows that the state engine should be processed first before the access list
    0:25:34 so its an issue of the order of operations
    0:25:36 with the reflexive list
    0:25:38 normally the way it works is that
    0:25:41 when the traffic goes out
    0:25:45 we have to use the same
    0:25:48 reflexive list on that individual link
    0:25:52 but the CBAC session table is global to the router so we are saying
    0:25:56 the traffic left that direction
    0:25:58 send it to the state table
    0:26:01 it is so the state table has whatever the entries lets keep in track of the stuff
    0:26:05 so when traffic returns
    0:26:08 we are always checking the state table first
    0:26:11 if its not already there then we would check the input access list on the link
    0:26:18 now where this becomes a problem though
    0:26:20 is that we have different type of security levels or different security zones on the interfaces
    0:26:27 because just like on the asa
    0:26:30 the inspection is not really a relationship between 2 different interfaces or 2 between 2 different zones
    0:26:36 its simply a direction of traffic flow on the link
    0:26:40 so what this means
    0:26:42 is that if I had the router
    0:26:44 that had the inside interface
    0:26:48 so this is connected to my normal inside host
    0:26:51 it has some sort of outside interface so may be this is my t1 linked to the service provider
    0:26:56 and then I have another LAN thats on the inside this is my DMZ
    0:27:01 so may be this is where my public web-servers are
    0:27:04 may be my mail servers are here
    0:27:06 so I want a policy
    0:27:09 thats going to allow my inside host to get to the outside
    0:27:13 and also for them to get to the DMZ
    0:27:16 but only with web and mail
    0:27:18 then likewise I am going to want my
    0:27:21 outside host to build a gate to the DMZ
    0:27:24 but only with the web and the mail
    0:27:30 so the problem that we get into
    0:27:33 is that if I apply an inspection
    0:27:36 that is
    0:27:38 in on the inside interface
    0:27:42 this is going to affect traffic that goes from inside to out
    0:27:47 and its going to affect traffic that goes from inside to DMZ
    0:27:52 now if I were to apply inspection
    0:27:55 outside out
    0:27:57 this is going to catch my inside out traffic
    0:28:00 its going to catch my DMZ outside traffic
    0:28:03 but its not going to catch my inside DMZ
    0:28:08 now its not that impossible to engineer this
    0:28:12 its just that the logic of the syntax and the logic of the relationship between the interfaces
    0:28:16 gets more complex with CBAC when you have 3 or more security zones
    0:28:21 and this is really the problem that the zone based policy firewall was introduced to fix
    0:28:27 because behind the scenes when we are doing these application inspections
    0:28:32 with the CBAC engine
    0:28:34 so this inspection here
    0:28:35 this is the same exact thing that zone based policy firewall works or uses
    0:28:40 so the inspection code behind the scenes is the same processes that were running
    0:28:45 zone based firewalls just a different syntax engine
    0:28:49 that allows us to do separate
    0:28:52 associations of the different security zones
    0:28:56 well with designs like this
    0:28:59 where there is multiple outside or there is multiple inside
    0:29:03 or there is 3 or more interfaces that are of different security levels
    0:29:07 then it gets fairly complex to try to implement this with the CBAC syntax
    0:29:13 now for other advanced options
    0:29:16 in the feature
    0:29:18 we can control the port mappings
    0:29:21 that the applications are matching when we say inspect HTTP or inspect sip
    0:29:27 we can remap these not only on a protocol basis
    0:29:31 but also on a per host basis
    0:29:35 so if I have one server thats running lets say java tomcat thats listening at port 80/80
    0:29:41 I could say for this specific server for HTTP I want you to use port 8080
    0:29:46 but then for my other servers
    0:29:49 I am going to use this standard port now
    0:29:54 we can also do session logging
    0:29:56 through its known as the auto trail
    0:29:59 thats going to show us when was this session open when was the session closed
    0:30:04 so more so than like a syslog log message we do on the access list
    0:30:09 it also allows us to do a lot of learning
    0:30:13 for any type of protocol violation
    0:30:17 so if here if anyone is trying to do some sort of like malformed TCP attack
    0:30:22 then its going to log that automatically
    0:30:27 now one other thing thats different from CBAC versus the reflexive list
    0:30:32 is that we can configure it
    0:30:34 to watch some of the routers locally generate traffic by default
    0:30:40 where with the reflexive list
    0:30:42 any of the locally generated traffic whether it is the routing protocol
    0:30:46 if it was a ping if it was a telnet
    0:30:48 we would always have to manually allow that back
    0:30:51 in on the outside interface
    0:30:55 but in the case of CBAC we can tell it for certain types of traffic
    0:30:59 like for ICMP for example
    0:31:01 we could say
    0:31:03 ip inspect rule 2
    0:31:06 is going to ip inspect name rule 2
    0:31:11 is going to inspect ICMP
    0:31:15 but also look at the routers locally originated traffic
    0:31:20 so this would be traffic from the router or traffic to the router
    0:31:24 that we could do the same thing for TCP router traffic
    0:31:27 which would be like our bgp peerings
    0:31:30 or may be in the case of multicast and mstp peering
    0:31:34 which is the multicast source distribution protocol
    0:31:39 we can have UDP router traffic
    0:31:41 so in the case of like mkls this would be a labelled distribution protocol
    0:31:46 for both UDP and TCP
    0:31:49 but again this is not going to catch everything
    0:31:52 so any type of control plane protocol that uses its own transport
    0:31:56 like eigrp ospf pim
    0:31:59 those type of messages are not going to be inspected by the CBAC rules
    0:32:04 but some of these we can when we say router traffic at the end of them
    0:32:10 ok there is a question here the access list you can apply to the inspect name
    0:32:14 firewall acl is that to ignore
    0:32:18 or not inspect the traffic is this when you say
    0:32:34 whats the specific syntax you are talking about
    0:32:53 some of these will be different depending on the individual application
    0:32:58 just like in the case of the asa
    0:33:00 like you could see here there is a different inspection engine here for HTTP
    0:33:03 where we can call a url filter list
    0:33:06 we can call a
    0:33:08 a java list
    0:33:10 which just does the basic
    0:33:12 filtering based on the web payload
    0:33:15 and looks for the
    0:33:18 and looks for the HTML tag
    0:33:21 that is related to java
    0:33:27 so if I say ip inspect name
    0:33:30 firewall then add an access list on the same command line say right here
    0:34:09 lets take a look at the command reference for this
    0:34:16 so lets turn to the main documentation page
    0:34:20 lets go down to
    0:34:23 to products to IOS
    0:34:25 regular IOS
    0:34:27 12.4 12.4t
    0:34:30 then reference guides
    0:34:34 command references this would be under security
    0:34:41 then ip inspect
    0:34:54 so if you look at the ip inspect name command
    0:34:57 you'll see some more detail on
    0:35:01 what the particular inspections are
    0:35:03 like you can see here for web filtering there is the java list
    0:35:15 unless you are talking about the ip port mapping
    0:35:19 which is
    0:35:22 this syntax here is that what you were asking about
    0:35:24 ip port map for the list
    0:35:29 or its for ips we will come back to that later when we get to prevention
    0:35:34 we will look a bit on the router
    0:35:36 oh yes that would be used for
    0:35:38 an exception
    0:35:39 of who you would not want to run the ips for
    0:35:42 so in the case of the ips sensor
    0:35:45 that would be like your
    0:35:48 in which they call up there its like an exemption where you
    0:35:53 its you will never block hosts
    0:35:55 where if someone tries to trigger signature against them
    0:35:59 it would be like your management station that you actually use for the icm in order to
    0:36:03 to manage the device
    0:36:07 now as I mentioned before the CBAC does
    0:36:10 integrate TCP intercept as well
    0:36:12 but it only supports the watch mode
    0:36:16 so when you look at the ip inspect sub command these things like the maximum incomplete sessions
    0:36:21 the 1 minute maximums
    0:36:23 the total number of per hosts
    0:36:25 and then the TCP syn way time
    0:36:28 this would be the timer that the router is going to wait for
    0:36:31 the session to get completely open
    0:36:33 before it sends the reset to the server
    0:36:38 so this is always going to be on you cannot
    0:36:40 disable unless you really set like the maximum incomplete to the maximum value
    0:36:45 typically this is what you would want
    0:36:48 that you are protecting the host that you are also doing the inspection for
    0:36:53 now there is a couple of different ways that you can actually apply this design
    0:36:57 where the way that we looked at it
    0:36:59 was your protecting the users on the inside
    0:37:02 that are sending those traffic out
    0:37:04 where
    0:37:05 the traffic is inspected as it leaves
    0:37:08 or may be they are only allowing certain types of protocols like
    0:37:11 clear text web dns
    0:37:14 they are making sure that it actually can forms that individual
    0:37:18 application inspection is supposed to be
    0:37:21 so for the returning traffic inbound
    0:37:24 its going to be blocked and thus we are checking the
    0:37:27 the state table
    0:37:29 now the other way that we could do this
    0:37:32 is to protect to the servers on the public segment
    0:37:35 so like in that 3 zone design i was mentioning
    0:37:39 we could have the
    0:37:41 the host and the DMZ
    0:37:43 and as traffic is going towards them
    0:37:46 doing inspection
    0:37:48 that is going to match only in the specific ports
    0:37:53 if the webservers are listening at port 80
    0:37:55 not only what I have the inspection rule
    0:37:58 in that direction
    0:38:00 but also I would have an access list that is permitting port 80
    0:38:03 deny the other traffic
    0:38:04 and then I could combine this with the
    0:38:07 the TCP intercept behaviour
    0:38:09 and then the protocol enforcement which is going to be like
    0:38:12 that you are not using invalid HTTP headers
    0:38:15 or that for
    0:38:17 dns you are not doing some sort of malformed formed type packet attack
    0:38:21 so the same type of logic that we can use with the zone firewall
    0:38:25 is used with the CBAC
    0:38:27 is just a different logic for the
    0:38:30 the syntax
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