ACL2
ACL2
ACL2
Overview
Network administrators must figure out how to deny unwanted access
to the network while allowing internal users appropriate access to necessary services. Although security tools, such as passwords, callback equipment, and physical security devices are helpful, they often lack the flexibility of basic traffic filtering and the specific controls most administrators prefer. For example, a network administrator may want to allow users access to the Internet, but not permit external users telnet access into the LAN. Routers provide basic traffic filtering capabilities, such as blocking Internet traffic, with access control lists (ACLs). An ACL is a sequential list of permit or deny statements that apply to addresses or upper-layer protocols. This module will introduce standard and extended ACLs as a means to control network traffic, and how ACLs are used as part of a security solution.
2
Overview
In addition, this chapter includes:
Tips, considerations, recommendations, and general guidelines on how to use ACLs, Commands and configurations needed to create ACLs. Examples of standard and extended ACLs How to apply ACLs to router interfaces. Doyle: Access Lists have become powerful tools for controlling the behavior of packets and frames. Their uses fall into three categories. 1. Security Filters protect the integrity of the router and the networks to which it is passing traffic. (CCNA) 2. Traffic Filters prevent unnecessary packets from passing onto limited-bandwidth links. (CCNP) 3. Other Filters such as dialer lists, route filters, route maps, and queuing lists, must be able to identify certain packets to function properly. (CCNP)
3
forward or drop it, based on the conditions specified in the ACL. Some ACL decision points are: IP source address IP destination addresses UDP or TCP protocols upper-layer (TCP/UDP) port numbers
5
If a condition match is true, the packet is permitted or denied. There can be only one access list per protocol per interface. There is an implicit deny any at the end of every access list. ACLs do not block packets that originate within the router. (ie. pings, telnets, etc.)
8
10
(Standard IP)
11
Learn by example!
172.16.20.0/24 s0 RouterA .1 e0 .1 s0 .2 RouterB .1 e0 172.16.40.0/24 s1 .1 s0 .2 RouterC .1 e0
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
Task: Permit only the host 172.16.30.2 from exiting the Sales network. Deny all other hosts on the Sales network from leaving the 172.16.30.0/24 network.
12
Learn by example!
172.16.20.0/24 s0 RouterA .1 e0 .1 s0 .2 RouterB .1 e0 172.16.40.0/24 s1 .1 s0 .2 RouterC .1 e0
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
RouterB(config)#access-list 10 permit 172.16.30.2 Implicit deny any -do not need to add this, discussed later RouterB(config)#access-list 10 deny 0.0.0.0 255.255.255.255
(Standard IP)
13
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
Applying ACLs You can define ACLs without applying them. However, the ACLs will have no effect until they are applied to the router's interface. It is a good practice to apply the Standard ACLs on the interface closest to the destination of the traffic and Extended ACLs on the interface closest to the source. (coming later) Defining In, Out, Source, and Destination Out - Traffic that has already been routed by the router and is leaving the interface In - Traffic that is arriving on the interface and which will be routed router.
14
Learn by example!
172.16.20.0/24 s0 RouterA .1 e0 .1 s0 .2 RouterB .1 e0 172.16.40.0/24 s1 .1 s0 .2 RouterC .1 e0
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
Step 2 Apply to an interface(s) RouterB(config)#access-list 10 permit 172.16.30.2 Implicit deny any -do not need to add this, discussed later RouterB(config)#access-list 10 deny 0.0.0.0 255.255.255.255 RouterB(config)# interface e 0 RouterB(config-if)# ip access-group 10 in
15
Learn by example!
172.16.20.0/24 s0 RouterA .1 e0 .1 s0 .2 RouterB .1 e0 172.16.40.0/24 s1 .1 s0 .2 RouterC .1 e0
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
Step 2 Or the outgoing interfaces Which is preferable and why? RouterB(config)#access-list 10 permit 172.16.30.2 Implicit deny any -do not need to add this, discussed later RouterB(config)#access-list 10 deny 0.0.0.0 255.255.255.255 RouterB(config)# interface s 0 RouterB(config-if)# ip access-group 10 out RouterB(config)# interface s 1 RouterB(config-if)# ip access-group 10 out
16
Learn by example!
172.16.20.0/24 s0 RouterA .1 e0 .1 s0 .2 RouterB .1 e0 172.16.40.0/24 s1 .1 s0 .2 RouterC .1 e0
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
Because of the implicit deny any, this has an adverse affect of also denying packets from Administration from reaching Engineering, and denying packets from Engineering from reaching Administration. RouterB(config)#access-list 10 permit 172.16.30.2 Implicit deny any -do not need to add this, discussed later RouterB(config)#access-list 10 deny 0.0.0.0 255.255.255.255 RouterB(config)# interface s 0 RouterB(config-if)# ip access-group 10 out RouterB(config)# interface s 1 RouterB(config-if)# ip access-group 10 out
17
Learn by example!
172.16.20.0/24 s0 RouterA .1 e0 .1 s0 .2 RouterB .1 e0 172.16.40.0/24 s1 .1 s0 .2 RouterC .1 e0
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
Preferred, this access list will work to all existing and new interfaces on RouterB. RouterB(config)#access-list 10 permit 172.16.30.2 Implicit deny any -do not need to add this, discussed later RouterB(config)#access-list 10 deny 0.0.0.0 255.255.255.255 RouterB(config)# interface e 0 RouterB(config-if)# ip access-group 10 in
18
Example 2
172.16.20.0/24 s0 RouterA .1 e0 .1 s0 .2 RouterB .1 e0 172.16.40.0/24 s1 .1 s0 .2 RouterC .1 e0
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
Task: Permit only the hosts 172.16.30.2, 172.16.30.3, 172.16.30.4, 172.16.30.5 from exiting the Sales network. Deny all other hosts on the Sales network from leaving the 172.16.30.0/24 network.
19
Example 2
172.16.20.0/24 s0 RouterA .1 e0 .1 s0 .2 RouterB .1 e0 172.16.40.0/24 s1 .1 s0 .2 RouterC .1 e0
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
Once a condition is met, all other statements are ignored, so the implicit deny any only applies to not-matched packets.
RouterB(config)#access-list RouterB(config)#access-list RouterB(config)#access-list RouterB(config)#access-list Implicit deny any -do not RouterB(config)#access-list 10 permit 172.16.30.2 10 permit 172.16.30.3 10 permit 172.16.30.4 10 permit 172.16.30.5 need to add this, discussed later 10 deny 0.0.0.0 255.255.255.255
Example 2
172.16.20.0/24 s0 RouterA .1 e0 .1 s0 .2 RouterB .1 e0 172.16.40.0/24 s1 .1 s0 .2 RouterC .1 e0
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
To remove an Access List, use the no access-list command. Removing the access-group only from from the interface leaves the access list, but they are not currently being applied. Usually, best to remove it from both. RouterB(config)#no access-list 10
21
Example 3
172.16.20.0/24 s0 RouterA .1 e0 .1 s0 .2 RouterB .1 e0 172.16.40.0/24 s1 .1 s0 .2 RouterC .1 e0
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
Task: Deny only the host 172.16.30.2 from exiting the Sales network. Permit all other hosts on the Sales network to leave the 172.16.30.0/24 network. Keyword any can be used to represent all IP Addresses.
22
Example 3
172.16.20.0/24 s0 RouterA .1 e0 .1 s0 .2 RouterB .1 e0 172.16.40.0/24 s1 .1 s0 .2 RouterC .1 e0
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
Order matters! What if these two statements were reversed? Does the implicit deny any ever get a match? No, the permit any will cover all other packets. RouterB(config)#access-list 10 deny 172.16.30.2 RouterB(config)#access-list 10 permit any Implicit deny any -do not need to add this, discussed later RouterB(config)#access-list 10 deny 0.0.0.0 255.255.255.255 RouterB(config)# interface e 0 RouterB(config-if)# ip access-group 10 in
23
Example 3
172.16.20.0/24 s0 RouterA .1 e0 .1 s0 .2 RouterB .1 e0 172.16.40.0/24 s1 .1 s0 .2 RouterC .1 e0
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
Order matters! In this case all packets would be permitted, because all packets would match the first access list statement. Once a condition is met, all other statements are ignored. The second access list statement and the implicit deny any would never be used. This would not do what we want.
RouterB(config)#access-list RouterB(config)#access-list Implicit deny any -do not RouterB(config)#access-list 10 permit any 10 deny 172.16.30.2 need to add this, discussed later 10 deny 0.0.0.0 255.255.255.255
25
A wildcard mask address: Tells how much of the packets source IP address (or destination IP address) needs to match for this condition to be true.
27
A wildcard mask is a 32-bit quantity that is divided into four octets. A wildcard mask is paired with an IP address. The numbers one and zero in the mask are used to identify how to
treat the corresponding IP address bits. The term wildcard masking is a nickname for the ACL mask-bit matching process and comes from of an analogy of a wildcard that matches any other card in the game of poker. Wildcard masks have no functional relationship with subnet masks. They are used for different purposes and follow different rules. Subnet masks start from the left side of an IP address and work towards the right to extend the network field by borrowing bits from the host field. Wildcard masks are designed to filter individual or groups of IP addresses permitting or denying access to resources based on the address.
28
Wildcard Masks!
Trying to figure out how wildcard masks work by relating them to subnet masking will only confuse the entire matter. The only similarity between a wildcard mask and a subnet mask is that they are both thirty-two bits long and use ones and zeros for the mask. This is not entirely true. Although it is very important that you understand how a wildcard mask works, it can also be thought as an inverse subnet mask. We will see examples in a moment
29
Wildcard Masks!
Test Condition
Test Conditon
The packet
Wildcard Masks!
Test Condition
Test Conditon
0 - check the corresponding bit value. 1 - do not check (ignore) that corresponding bit value.
31
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
Task: Want RouterA to permit entire sales network and just the 172.16.50.2 station. Deny all other traffic from entering Administrative network.
32
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
33
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
RouterA(config)#access-list 11 permit 172.16.30.0 0.0.0.255 0 = check, we want this to match, 1 = dont check (dont care) 172.16.30.0 0.0.0.255 172.16.30.0 172.16.30.1 172.16.30.255 10101100 . 00010000 . 00011110 . 00000000 Test 00000000 . 00000000 . 00000000 . 11111111 Conditon ----------------------------------------10101100 . 00010000 . 00011110 . 00000000 The 10101100 . 00010000 . 00011110 . 00000001 packet(s) ... (through) 10101100 . 00010000 . 00011110 . 11111111
34
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
RouterA(config)#access-list 11 permit 172.16.50.2 0.0.0.0 0 = check, we want this to match, 1 = dont check (dont care) 172.16.50.2 0.0.0.0 172.16.50.2 10101100 . 00010000 . 00110010 . 00000010 00000000 . 00000000 . 00000000 . 00000000 ----------------------------------------10101100 . 00010000 . 00110010 . 00000010
Test Conditon
The packet(s)
35
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
Dont forget to apply the access-list to an interface. RouterA(config)#access-list 11 permit 172.16.30.0 0.0.0.255 RouterA(config)#access-list 11 permit 172.16.50.2 0.0.0.0
36
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
Remember that implicit deny any? Its a good idea for beginners to include the deny any statement just as a reminder. RouterA(config)#access-list 11 permit 172.16.30.0 0.0.0.255 RouterA(config)#access-list 11 permit 172.16.50.2 0.0.0.0 RouterA(config)#access-list 11 deny 0.0.0.0 255.255.255.255 RouterA(config)# interface e 0 RouterA(config-if)#ip access-group 11 out
37
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
RouterA(config)#access-list 11 deny 0.0.0.0 255.255.255.255 0 = check, we want this to match, 1 = dont check (dont care)
0.0.0.0 00000000 . 00000000 . 00000000 . 00000000 255.255.255.255 11111111 . 11111111 . 11111111 . 11111111 ----------------------------------------0.0.0.0 00000000 . 00000000 . 00000000 . 00000000 0.0.0.1 00000000 . 00000000 . 00000000 . 00000001 ... (through) 255.255.255.255 11111111 . 11111111 . 11111111 . 11111111
Test Conditon
The packet(s)
38
any keyword
172.16.20.0/24 s0 RouterA .1 e0 .1 s0 .2 RouterB .1 e0 172.16.40.0/24 s1 .1 s0 .2 RouterC .1 e0
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
Simply put, the any option substitutes 0.0.0.0 for the IP address and 255.255.255.255 for the wildcard mask. This option will match any address that it is compared against.
39
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
RouterB(config)#access-list 10 deny 172.16.30.2 RouterB(config)#access-list 10 permit any or RouterB(config)#access-list 10 permit 0.0.0.0 255.255.255.255
Previous example: Deny only the host 172.16.30.2 from exiting the Sales network. Permit all other hosts on the Sales network to leave the 172.16.30.0/24 network. Keyword any can be used to represent all IP Addresses.
40
s0 RouterA .1 e0 .1
s0 .2
Administration
Denied
172.16.10.3/24
Sales
Engineering
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
Denied
172.16.10.2/24
RouterA(config)#access-list 11 permit 172.16.30.0 0.0.0.255 RouterA(config)#access-list 11 permit 172.16.50.2 0.0.0.0 RouterA(config)#access-list 11 deny 0.0.0.0 255.255.255.255 RouterA(config)# interface e 0 RouterA(config-if)#ip access-group 11 out
This will deny packets from 172.16.30.0/24 from reaching all devices in the 172.16.10.0/24 Administration LAN, except RouterAs Ethernet 0 interface, of 172.16.10.1. The access list will need to be applied on Router As Serial 0 interface for it to be denied on RouterAs Ethernet 0 interface. A better soluton is to use an Extended Access list. (coming)
41
Practice
RouterB(config)#access-list 10 permit __________ ___________ Permit the following networks: Network/Subnet Mask
Address/Wildcard Mask
A. B. C. D. E.
172.16.0.0 255.255.0.0 172.16.1.0 255.255.255.0 192.168.1.0 255.255.255.0 172.16.16.0 255.255.240.0 (hmmm . . .?) 172.16.128.0 255.255.192.0 (hmmm . . .?)
Address/Wildcard Mask
A. B. C.
172.16.10.100 192.168.1.100
All hosts
42
Address/Wildcard Mask
A. B. C. D. E.
172.16.0.0 255.255.0.0 172.16.1.0 255.255.255.0 192.168.1.0 255.255.255.0 172.16.32.0 255.255.240.0 172.16.128.0 255.255.192.0
172.16.0.0 0.0.255.255 172.16.1.0 0.0.0.255 192.168.1.0 0.0.0.255 172.16.32.0 0.0.15.255 172.16.128 0.0.63.255
Address/Wildcard Mask
A. B. C.
172.16.10.100 192.168.1.100
All hosts
43
Answers Explained
A.
172.16.0.0 0.0.255.255 RouterB(config)#access-list 10 permit 172.16.0.0 0.0.255.255
0 = check, we want this to match 1 = dont check, this can be any value, does not need to match
Test Conditon
172.16.0.0 0.0.255.255
10101100 . 00010000 . 00000000 . 00000000 00000000 . 00000000 . 11111111 . 11111111 ----------------------------------------172.16.0.0 10101100 . 00010000 . 00000000 . 00000000 172.16.0.1 10101100 . 00010000 . 00000000 . 00000001 172.16.0.2 10101100 . 00010000 . 00000000 . 00000010 ... (through) 172.16.255.255 10101100 . 00010000 . 11111111 . 11111111 Matching packets will look like this.
The packet(s)
44
Answers Explained
D. 172.16.32.0 255.255.240.0 RouterB(config)#access-list 10 permit 172.16.32.0 0.0.15.255 0 = check, we want this to match 1 = dont check, this can be any value, does not need to match
Test Conditon
172.16.16.0 0.0.15.255
10101100 . 00010000 . 00100000 . 00000000 00000000 . 00000000 . 00001111 . 11111111 ----------------------------------------172.16.16.0 10101100 . 00010000 . 00100000 . 00000000 172.16.16.1 10101100 . 00010000 . 00100000 . 00000001 172.16.16.2 10101100 . 00010000 . 00100000 . 00000010 ... (through) The packet(s) 172.16.16.255 10101100 . 00010000 . 00101111 . 11111111
Packets belonging to the 172.16.32.0/20 network will match this condition because they have the same 20 bits in common.
45
So, we could calculate the Wildcard Mask by: 255 . 255 . 255 . 255 Subnet Mask: - 255 . 255 . 240 . 0 --------------------Wildcard Mask: 0 . 0 . 15 . 255
46
Wildcard Mask
A. B. C. D. E.
= = = = =
Permit the following hosts: (host routes have a /32 mask) 255.255.255.255. - /32 Mask =
Wildcard Mask
A. B.
0.0.0.0 0.0.0.0
47
Address/Wildcard Mask
A. B. C. D. E.
172.16.0.0 255.255.0.0 172.16.1.0 255.255.255.0 192.168.1.0 255.255.255.0 172.16.32.0 255.255.240.0 172.16.128.0 255.255.192.0
172.16.0.0 0.0.255.255 172.16.1.0 0.0.0.255 192.168.1.0 0.0.0.255 172.16.32.0 0.0.15.255 172.16.128 0.0.63.255
Address/Wildcard Mask
A. B. C.
48
host option
RouterB(config)#access-list 10 permit 192.168.1.100 0.0.0.0 RouterB(config)#access-list 10 permit host 192.168.1.100 Permit the following hosts: Network/Subnet Mask A. 172.16.10.100 B. 192.168.1.100
The host option substitutes for the 0.0.0.0 mask. This mask requires that all bits of the ACL address and the packet address match. The host keyword precedes the IP address. This option will match just one address. replaced by replaced by host 172.16.10.100 host 192.168.1.100
49
50
51
172.30.16.0 0.0.15.255
10101100 . 00011110 . 00010000 . 00000000 00000000 . 00000000 . 00001111 . 11111111 ----------------------------------------172.30.16.0 10101100 . 00011110 . 00010000 . 00000000 172.30.16.1 10101100 . 00011110 . 00010000 . 00000001 through . . . 172.30.31.254 10101100 . 00011110 . 00011111 . 11111110 172.30.31.255 10101100 . 00011110 . 00011111 . 11111115
52
53
54
Any Value
10101100 . 00011110 . 00010000 . 00000000 00000000 . 00000000 . 00001111 . 11111111 ----------------------------------------172.30.16.0 10101100 . 00011110 . 00010000 . 00000000 172.30.16.1 10101100 . 00011110 . 00010000 . 00000001 through . . . 172.30.31.254 10101100 . 00011110 . 00011111 . 11111110 172.30.31.255 10101100 . 00011110 . 00011111 . 11111111
55
Any Value
10101100 . 00011110 . 00010000 . 00000000 00000000 . 00000000 . 00001111 . 11111111 ----------------------------------------10101100 . 00011110 . 00010000 . 00000000
The subnets 172.30.16.0 through 172.30.31.0 have the subnet mask 255.255.240.0 in common. This gives us the wildcard mask: 0.0.15.255 (255.255.255.255 255.255.240.). Using the first permitted subnet, 172.30.16.0, gives us the address for our test condition. This will not work for all ranges but does in some cases like this one.
56
57
58
Note: More than one interface can use the same accesslist.
59
With inbound Access Lists the IOS checks the packets before it is sent to the Routing Table Process. With outbound Access Lists, the IOS checks the packets after it is sent to the Routing Table Process, except destined for the routers own interface. This is because the output interface is not known until the forwarding decision is made.
61
Standard ACL
The full syntax of the standard ACL command is: Router(config)#access-list access-list-number {deny | permit} source [source-wildcard ] [log] The no form of this command is used to remove a standard ACL. This is the syntax: (Deletes entire ACL!) Router(config)#no access-list access-list-number
62
63
Extended ACLs are used more often than standard ACLs because they
provide a greater range of control. Extended ACLs check the source and destination packet addresses as well as being able to check for protocols and port numbers. This gives greater flexibility to describe what the ACL will check. Packets can be permitted or denied access based on where the packet originated and its destination as well as protocol type and port addresses.
64
Operator and operand can also refer to ICMP Types and Codes or whatever the protocol is being checked. If the operator and operand follow the source address it refers to the source port If the operator and operand follow the destination address it refers to the destination port.
65
Example 1
172.16.20.0/24 s0 RouterA .1 e0 .1 s0 .2 RouterB .1 e0 172.16.40.0/24 s1 .1 s0 .2 RouterC .1 e0
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
Port 80
Task What if we wanted Router A to permit only the Engineering workstation 172.16.50.2 to be able to access the web server in Administrative network with the IP address 172.16.10.2 and port address 80. All other traffic is denied.
67
Example 1
172.16.20.0/24 s0 RouterA .1 e0 .1 s0 .2 RouterB .1 e0 172.16.40.0/24 s1 .1 s0 .2 RouterC .1 e0
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
Port 80
RouterA(config)#access-list 110 permit tcp host 172.16.50.2 host 172.16.10.2 eq 80 RouterA(config)#inter e 0 RouterA(config-if)#ip access-group 110 out
Why is better to place the ACL on RouterA instead of RouterC? Why is the e0 interface used instead of s0 on RouterA? Well see in a moment!
68
Example 2
172.16.20.0/24 s0 RouterA .1 e0 .1 s0 .2 RouterB .1 e0 172.16.40.0/24 s1 .1 s0 .2 RouterC .1 e0
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
Port 80
Task What if we wanted Router A to permit any workstation on the Sales network be able to access the web server in Administrative network with the IP address 172.16.10.2 and port address 80. All other traffic is denied.
69
Example 2
172.16.20.0/24 s0 RouterA .1 e0 .1 s0 .2 RouterB .1 e0 172.16.40.0/24 s1 .1 s0 .2 RouterC .1 e0
Administration
Sales
Engineering
172.16.10.3/24 172.16.10.2/24
172.16.30.3/24 172.16.30.2/24
172.16.50.3/24 172.16.50.2/24
Port 80
RouterA(config)#access-list 110 permit tcp 172.16.30.0 0.0.0.255 host 172.16.10.2 eq 80 RouterA(config)#inter e 0 RouterA(config-if)#ip access-group 110 out
With inbound Access Lists the IOS checks the packets before it is
sent to the Routing Table Process. With outbound Access Lists, the IOS checks the packets after it is sent to the Routing Table Process. This is because the output interface is not known until the forwarding decision is made.
71
permit tcp host 10.1.1.2 host 172.16.1.1 permit udp host 10.1.1.2 host 172.16.1.1 permit ip 10.1.1.0 0.0.0.255 172.16.1.0
72
Named ACLs
IP named ACLs were introduced in Cisco IOS Software Release 11.2. Allows standard and extended ACLs to be given names instead of
numbers. The advantages that a named access list provides are: Intuitively identify an ACL using an alphanumeric name. Eliminate the limit of 798 simple and 799 extended ACLs Named ACLs provide the ability to modify ACLs without deleting and then reconfiguring them. It is important to note that a named access list will allow the deletion of statements but will only allow for statements to be inserted at the end of a list. Even with named ACLs it is a good idea to use a text editor to create them.
73
Named ACLs
A named ACL is created with the ip access-list command. This places the user in the ACL configuration mode.
74
Named ACLs
75
Named ACLs
76
Placing ACLs
Source 10.0.0.0/8
Destination 172.16.0.0/16
The general rule: Standard ACLs do not specify destination addresses, so they should be placed as close to the destination as possible. Put the extended ACLs as close as possible to the source of the traffic denied.
77
Placing ACLs
Source 10.0.0.0/8
Destination 172.16.0.0/16
If the ACLs are placed in the proper location, not only can traffic be
filtered, but it can make the whole network more efficient. If traffic is going to be filtered, the ACL should be placed where it has the greatest impact on increasing efficiency.
78
Source 10.0.0.0/8
Destination 172.16.0.0/16
Policy is to deny telnet or FTP Router A LAN to Router D LAN. All other traffic must be permitted. Several approaches can accomplish this policy. The recommended approach uses an extended ACL specifying both source and destination addresses.
79
Source 10.0.0.0/8
RouterA
Destination 172.16.0.0/16
interface fastethernet 0/1 access-group 101 in access-list 101 deny tcp any 172.16.0.0 0.0.255.255 eq telnet access-list 101 deny tcp any 172.16.0.0 0.0.255.255 eq ftp access-list 101 permit ip any any
Place this extended ACL in Router A. Then, packets do not cross Router A's Ethernet, do not cross the serial interfaces of Routers B and C, and do not enter Router D. Traffic with different source and destination addresses will still be permitted.
80
Source 10.0.0.0/8
RouterA
Destination 172.16.0.0/16
interface fastethernet 0/1 access-group 101 in access-list 101 deny tcp any 172.16.0.0 0.0.255.255 eq telnet access-list 101 deny tcp any 172.16.0.0 0.0.255.255 eq ftp access-list 101 permit ip any any
If the permit ip any any is not used, then no traffic is permitted. Be sure to permit ip and not just tcp or all udp traffic will be denied.
81
Source 10.0.0.0/8
Destination 172.16.0.0/16
RouterD
interface fastethernet 0/0 access-group 10 in access-list 10 deny 10.0.0.0 0.255.255.255 access-list 10 permit any
Source 10.0.0.0
Destination 172.16.0.0/16
RouterD
interface fastethernet 0/0 access-group 10 in access-list 10 deny 10.0.0.0 0.255.255.255 access-list 10 permit any
Better to use extended access lists, and place them close to the
source, as this traffic will travel all the way to RouterD before being denied.
83
Firewalls
Firewalls
ISPs use ACLs to deny RFC 1918 addresses into their networks as
these are non-routable Internet addresses. IP packets coming into your network should never have a source addresses that belong to your network. (This should be applied on all network entrance routers.) There are several other simple access lists which should be added to network entrance routers. See Cisco IP Essentials White Paper for more information.
85
Rt1(config-line)#
The purpose of restricted vty access is increased network security. Access to vty is also accomplished using the Telnet protocol to make a
nonphysical connection to the router. As a result, there is only one type of vty access list. Identical restrictions should be placed on all vty lines as it is not possible to control which line a user will connect on.
86
Rt1(config-line)#