> For the complete documentation index, see [llms.txt](https://trepa-technologies.gitbook.io/networking-technologies-by-johnny-bandin/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://trepa-technologies.gitbook.io/networking-technologies-by-johnny-bandin/acls/standard-acls.md).

# Standard ACLs

#### In this guide we will cover configuring and applying a standard ACL to an interface and our VTY lines. Not shown in this guide is the configuration of static routes between routers, and the configuration of SSH. Refer to our other guides for those configuration steps.

<figure><img src="/files/D9J7kCVzTkmkc4wEKq9f" alt=""><figcaption><p>Standard ACL Network Diagram</p></figcaption></figure>

## Configuration

#### Security standards we need to configure

```
1. Users in VLAN 10 should not be able to ping both servers
2. Users in VLAN 20 should not be able to SSH to R2
3. The file server should not be able to reach the ENG VLAN 20
```

#### First lets figure where to apply the ACL. Standard ACLs should be as close to the destination as possible.

<figure><img src="/files/h9ZoCaHrxOJOR9E7n5c8" alt=""><figcaption><p>Standard ACL placement</p></figcaption></figure>

## CLI Configuration

`R1(config)#access-list 10 [permit | deny] [any | host | Network] [Wildcard Mask]` # This command will configure a standard ACL and a Access Control Entry

`R1(config-if)#ip access-group [ Number | Name] [ in | out]` # This command will apply the ACL inbound or outbound on the desired interface

`R1(config-line)#ip access-class [ Number | Name ] [ in | out]` # This command will apply the ACL inbound or outbound on the VTY lines of the Cisco network device

#### Now lets conmfigure and apply the security standards listed above

#### - Security standard 1

`R1(config)#ip access-list 10 deny 10.10.10.0 0.0.0.255 log` # This command will configure a standard ACL and a Access Control Entry and also log any matches to the ACL

`R1(config)#ip access-list 10 permit any log` # This command will permit any traffic that does not match our first entry. We need this because of the **"implicit"** deny at the end of every ACL

`R1(config)#inteface eth0/0` # This command brings us into the sub-interface configuration mode

`R1(config-if)#ip access-group 10 out` # This command applies the ACL outbound on interface eth0/0

#### Full configuration below

<figure><img src="/files/OofKBUOBKVAMz0ftcXPd" alt=""><figcaption><p>Standard Numbered ACL configuration</p></figcaption></figure>

#### - Security standard 2

`R1(config)#access-list 20 deny 10.10.20.0 0.0.0.255 log` # This command will configure a standard ACL and a Access Control Entry and also log any traffic matches to the ACL

`R1(config)#ip access-list 10 permit any log` # This command will permit any traffic that does not match our first entry. We need this because of the **"implicit"** deny at the end of every ACL

`R1(config)#line vty 0 4` # This command will bring you into the VTY sub-configuration mode

`R1(config-line)#ip access-class 20 in` This command will apply the ACL inbound to the VTY lines only

#### Full configuration below

<figure><img src="/files/YOvkmMLWlJPHJAygDjoq" alt=""><figcaption><p>Standard Numbered ACL configuration</p></figcaption></figure>

#### - Security Standard 3

`R2(config)#access-list 30 deny host 10.10.10.9 log` # This command will create the ACL and only filter based on a single source IP address

`R2(config)#ip access-list 10 permit any log` # This command will permit any traffic that does not match our first entry. We need this because of the **"implicit"** deny at the end of every ACL

`R2(config)#interface eth0/0.20` # This command will bring us into the sub-interface configuration mode

`R2(config-subif)#ip access-class 30 out` # This command applies the ACL outbound on interface eth0/0.20

#### Full configuration belown

<figure><img src="/files/X0ayPVQ1IT7Mtsl6mrrC" alt=""><figcaption><p>Standard Numbered ACL configuration</p></figcaption></figure>

## Testing / Verification

#### Now lets do some testing. For this testing we will remove the ACL, check connectivity and then apply the ACL and test again. In this guide we will just demonstrate security standard 1.

<figure><img src="/files/LezO1lXz5KM3vSR21CRa" alt=""><figcaption><p>Ping Test Using a Source Interface</p></figcaption></figure>

#### - As we can see here our VLAN 10 Users can currently ping the servers. Let's apply the ACL and see if our ping test is successful.

<figure><img src="/files/ujydruKEQ5lD6A1cdhea" alt=""><figcaption><p>Applying the ACL on the interface</p></figcaption></figure>

<figure><img src="/files/cBi5VrITFaImiCiXElSz" alt=""><figcaption><p>Ping Test using a Source Interface and Receiving a "unreachable" Response</p></figcaption></figure>

<figure><img src="/files/IGjzZWeeX2XThkM4p3TO" alt=""><figcaption><p>show access-list command and output</p></figcaption></figure>

#### - As we can see now the ACL worked and our ping test responded with an **"unreachable"** message. We can also see from our show command that the ACL has 5 matches on our first Access Control Entry.

`R1#show ip access-lists [ number | name]` # This command will show all access-lists or specific access-lists that we have created on our device

<figure><img src="/files/5YGMIhTlFgJv83lLpd7q" alt=""><figcaption><p>show ip access-list command and output</p></figcaption></figure>

`R1#show access-lists [number | name]` # This command will show all access-lists or specific access-lists that we have created on our device

<figure><img src="/files/IGjzZWeeX2XThkM4p3TO" alt=""><figcaption><p>show access-list command and output</p></figcaption></figure>

`R1#show run | se access` # This command will show us in the running-configuration what access-lists configuration we currently have.

<figure><img src="/files/yAskUsWFKwbbbmgPCDDP" alt=""><figcaption><p>show run access-list with REGEX to filter the output to only show the access-list configuration</p></figcaption></figure>

## Conclusion

#### Standard ACLs are a quick and easy way to deny/filter traffic for a whole subnet or a single host. But what if we want our users in VLAN 10 to still reach the Servers, but not be able to SSH or use HTTP on the web server? Standard ACLs can not get the job done. Extended ACLs can give us more granular control over what we filter on our networks.
