jathanism / acl

Network access control list and firewall policy parsing library.
Other
24 stars 23 forks source link

Add support for Arista access-lists to ACL parser #4

Open jathanism opened 11 years ago

jathanism commented 11 years ago

They are IOS-like, but differ in that you may specify CIDR prefixes for addresses, and that the "ip access-list/no ip access-list" syntax is like Cisco's "ip access-list extended", but without the extended keyword. There are likely other caveats that will require research.

Others include lines like:

! igmp
permit tcp any any eq mlag ttl eq 255
permit tcp any eq mlag any range 1024 65535
permit udp any any eq mlag ttl eq 255
permit udp any eq mlag any range 1024 65535
jathanism commented 11 years ago

Here is a sample ACL with randomly-generated IP addresses (to protect the innocent):

no ip access-list arista-cpp-inbound
ip access-list arista-cpp-inbound
remark $Revision: 1.24 $
! igmp
permit tcp any any eq mlag ttl eq 255
permit tcp any eq mlag any range 1024 65535
permit udp any any eq mlag ttl eq 255
permit udp any eq mlag any range 1024 65535
permit igmp any any
! ssh/telnet
permit tcp 186.23.161.0 0.0.0.31 any eq ssh telnet
permit tcp 217.62.19.0 0.0.0.31 any eq ssh telnet
permit tcp 176.138.10.176 0.0.0.15 any eq ssh telnet
permit tcp 195.5.108.144 0.0.0.15 any eq ssh telnet
permit tcp 164.104.95.16 0.0.0.15 any eq ssh telnet
permit tcp 188.109.49.128 0.0.0.15 any eq ssh telnet
permit tcp 138.6.64.0 0.0.0.31 any eq ssh telnet
permit tcp 17.86.86.192 0.0.0.31 any eq ssh telnet
permit tcp 32.254.208.18/32 any eq ssh telnet
permit tcp 200.139.128.76/32 any eq ssh telnet
permit tcp 181.102.241.248/32 any eq ssh telnet
permit tcp 7.162.250.51/32 any eq ssh telnet
permit tcp 22.7.242.208/32 any eq ssh telnet
permit tcp 222.166.190.152/32 any eq ssh telnet
permit tcp 178.182.42.212/32 any eq ssh telnet
permit tcp 213.73.21.0/32 any eq ssh telnet
permit tcp 153.118.234.196/32 any eq ssh telnet
permit tcp 54.154.25.164/32 any eq ssh telnet
permit tcp 218.13.234.64/32 any eq ssh telnet
permit tcp 216.64.123.93/32 any eq ssh telnet
permit tcp 4.34.253.164/32 any eq ssh telnet
permit tcp 207.21.243.168/32 any eq ssh telnet
! ssh fom Switch to Jumphosts
permit tcp 186.23.161.0 0.0.0.31 eq ssh any
permit tcp 217.62.19.0 0.0.0.31 eq ssh any
permit tcp 176.138.10.176 0.0.0.15 eq ssh any
permit tcp 195.5.108.144 0.0.0.15 eq ssh any
permit tcp 164.104.95.16 0.0.0.15 eq ssh any
permit tcp 188.109.49.128 0.0.0.15 eq ssh any
permit tcp 138.6.64.0 0.0.0.31 eq ssh any
permit tcp 17.86.86.192 0.0.0.31 eq ssh any
permit tcp 32.254.208.18/32 eq ssh any
permit tcp 200.139.128.76/32 eq ssh any
permit tcp 181.102.241.248/32 eq ssh any
permit tcp 7.162.250.51/32 eq ssh any
permit tcp 22.7.242.208/32 eq ssh any
permit tcp 222.166.190.152/32 eq ssh any
permit tcp 178.182.42.212/32 eq ssh any
permit tcp 213.73.21.0/32 eq ssh any
permit tcp 153.118.234.196/32 eq ssh any
permit tcp 54.154.25.164/32 eq ssh any
permit tcp 218.13.234.64/32 eq ssh any
permit tcp 216.64.123.93/32 eq ssh any
permit tcp 4.34.253.164/32 eq ssh any
permit tcp 207.21.243.168/32 eq ssh any
! snmp
permit udp 161.120.142.0 0.0.0.31 any eq snmp
permit udp 202.142.75.0 0.0.0.63 any eq snmp
permit udp 29.181.99.192 0.0.0.63 any eq snmp
permit udp 20.185.51.64 0.0.0.31 any eq snmp
permit udp 54.85.63.0 0.0.0.31 any eq snmp
permit udp 28.204.247.0 0.0.0.63 any eq snmp
permit udp 6.195.126.0 0.0.0.31 any eq snmp
permit udp 148.42.178.192 0.0.0.63 any eq snmp
permit udp 31.103.17.0 0.0.0.63 any eq snmp
permit udp 191.120.179.0 0.0.0.31 any eq snmp
permit udp 60.65.30.128 0.0.0.31 any eq snmp
permit udp 120.235.252.128 0.0.0.63 any eq snmp
permit udp 161.41.40.0 0.0.0.63 any eq snmp
permit udp 176.138.10.176 0.0.0.15 any eq snmp
permit udp 164.104.95.16 0.0.0.15 any eq snmp
permit udp 138.6.64.0 0.0.0.15 any eq snmp
permit udp 17.86.86.192 0.0.0.31 any eq snmp
permit udp 195.5.108.144 0.0.0.15 any eq snmp
permit udp 188.109.49.128 0.0.0.15 any eq snmp
permit udp 217.62.19.0 0.0.0.31 any eq snmp
permit udp 186.23.161.0 0.0.0.31 any eq snmp
permit udp 9.49.197.248/32 any eq snmp
permit udp 200.139.128.76/32 any eq snmp
permit udp 216.64.123.93/32 any eq snmp
permit udp 4.34.253.164/32 any eq snmp
permit udp 207.21.243.168/32 any eq snmp
! ntp
permit udp 181.36.0.0/16 any eq ntp
permit udp 206.92.128.0/22 any eq ntp
permit udp 72.52.128.0/18 any eq ntp
permit udp 152.73.192.0/19 any eq ntp
permit udp 215.18.8.0/22 any eq ntp
permit udp 180.57.8.0/22 any eq ntp
permit udp 181.156.0.0/16 any eq ntp
permit udp 97.240.0.0/19 any eq ntp
permit udp 39.160.0.0/16 any eq ntp
! icmp
permit icmp 44.0.0.0/13 any 8
permit icmp 39.160.0.0/16 any 8
permit icmp 57.32.0.0/15 any 8
permit icmp 196.162.0.0/15 any 8
permit icmp 189.0.0.0/10 any 8
permit icmp 181.156.0.0/16 any 8
permit icmp 221.140.128.0/19 any 8
permit icmp 205.198.0.0/17 any 8
permit icmp 222.69.128.0/18 any 8
permit icmp 110.99.0.0/16 any 8
permit icmp 160.32.0.0/12 any 8
permit icmp 32.40.0.0/16 any 8
permit icmp 181.36.0.0/16 any 8
permit icmp any any echo-reply
permit icmp any any unreachable
permit icmp any any time-exceeded
permit icmp any any parameter-problem
! tacacs/radius
permit tcp 36.61.242.101/32 eq 49 1812 1813 any range 1024 65535
permit tcp 9.98.17.104/32 eq 49 1812 1813 any range 1024 65535
permit tcp 81.187.119.212/32 eq 49 1812 1813 any range 1024 65535
permit tcp 9.131.59.96/32 eq 49 1812 1813 any range 1024 65535
permit tcp 38.4.62.235/32 eq 49 1812 1813 any range 1024 65535
permit tcp 191.248.46.52/32 eq 49 1812 1813 any range 1024 65535
permit tcp 171.95.63.180/32 eq 49 1812 1813 any range 1024 65535
permit udp 36.61.242.101/32 eq 49 1812 1813 any range 1024 65535
permit udp 9.98.17.104/32 eq 49 1812 1813 any range 1024 65535
permit udp 81.187.119.212/32 eq 49 1812 1813 any range 1024 65535
permit udp 9.131.59.96/32 eq 49 1812 1813 any range 1024 65535
permit udp 38.4.62.235/32 eq 49 1812 1813 any range 1024 65535
permit udp 180.77.174.238/32 eq 49 1812 1813 any range 1024 65535
permit udp 54.113.241.192/32 eq 49 1812 1813 any range 1024 65535
permit udp 75.241.114.95/32 eq 49 1812 1813 any range 1024 65535
permit udp 181.118.97.243/32 eq 49 1812 1813 any range 1024 65535
permit udp 44.128.143.234/32 eq 49 1812 1813 any range 1024 65535
permit udp 43.184.147.140/32 eq 49 1812 1813 any range 1024 65535
permit udp 201.145.157.180/32 eq 49 1812 1813 any range 1024 65535
permit udp 108.176.71.48/32 eq 49 1812 1813 any range 1024 65535
permit udp 17.169.237.124/32 eq 49 1812 1813 any range 1024 65535
permit udp 124.170.229.211/32 eq 49 1812 1813 any range 1024 65535
permit udp 11.73.228.166/32 eq 49 1812 1813 any range 1024 65535
permit udp 10.163.42.181/32 eq 49 1812 1813 any range 1024 65535
permit udp 191.248.46.52/32 eq 49 1812 1813 any range 1024 65535
permit udp 171.95.63.180/32 eq 49 1812 1813 any range 1024 65535
! dns
permit udp 17.92.254.0/26 eq 53 any range 1024 65535
permit udp 19.65.156.40/29 eq 53 any range 1024 65535
permit udp 44.28.254.96/29 eq 53 any range 1024 65535
permit udp 222.69.128.0/26 eq 53 any range 1024 65535
permit udp 138.243.184.0/26 eq 53 any range 1024 65535
! traceroute
permit udp 44.0.0.0/13 any range 33434 33523
permit udp 39.160.0.0/16 any range 33434 33523
permit udp 57.32.0.0/15 any range 33434 33523
permit udp 189.0.0.0/10 any range 33434 33523
permit udp 181.156.0.0/16 any range 33434 33523
permit udp 221.140.128.0/19 any range 33434 33523
permit udp 205.198.0.0/17 any range 33434 33523
permit udp 222.69.128.0/18 any range 33434 33523
permit udp 110.99.0.0/16 any range 33434 33523
permit udp 160.32.0.0/12 any range 33434 33523
permit udp 32.40.0.0/16 any range 33434 33523
permit udp 181.36.0.0/16 any range 33434 33523
! ntp (again)
permit udp 19.65.156.40/29 eq 123 any eq 123
permit udp 44.28.254.96/29 eq 123 any eq 123
permit udp 94.236.63.48/29 eq 123 any eq 123
permit udp 19.65.156.40/29 eq 123 any range 1023 65535
permit udp 44.28.254.96/29 eq 123 any range 1023 65535
permit udp 94.236.63.48/29 eq 123 any range 1023 65535
! tftp to jumphost
permit udp 186.23.161.0 0.0.0.31 eq 69 any range 1024 65535
permit udp 186.23.161.0 0.0.0.31 range 1024 65535 any range 1024 65535
permit udp 217.62.19.0 0.0.0.31 eq 69 any range 1024 65535
permit udp 217.62.19.0 0.0.0.31 range 1024 65535 any range 1024 65535
permit udp 176.138.10.176 0.0.0.15 eq 69 any range 1024 65535
permit udp 176.138.10.176 0.0.0.15 range 1024 65535 any range 1024 65535
permit udp 195.5.108.144 0.0.0.15 eq 69 any range 1024 65535
permit udp 195.5.108.144 0.0.0.15 range 1024 65535 any range 1024 65535
permit udp 22.7.242.208/32 eq 69 any range 1024 65535
permit udp 22.7.242.208/32 range 1024 65535 any range 1024 65535
permit udp 222.166.190.152/32 eq 69 any range 1024 65535
permit udp 222.166.190.152/32 range 1024 65535 any range 1024 65535
permit udp 178.182.42.212/32 eq 69 any range 1024 65535
permit udp 178.182.42.212/32 range 1024 65535 any range 1024 65535
permit udp 213.73.21.0/32 eq 69 any range 1024 65535
permit udp 213.73.21.0/32 range 1024 65535 any range 1024 65535
permit udp 153.118.234.196/32 eq 69 any range 1024 65535
permit udp 153.118.234.196/32 range 1024 65535 any range 1024 65535
! smtp (to allow switches to email alerts)
permit tcp 91.131.155.20/32 eq 25 any
permit tcp 194.62.124.12/32 eq 25 any
! dhcp_replies
permit udp 78.199.240.22/32 eq 67 any eq 68
permit udp 40.15.217.240/32 eq 67 any eq 68
! explicit deny
deny ip any any
end
jathanism commented 11 years ago

Arista config guide (see Section 14.2: Access Control Lists): http://www.aristanetworks.com/docs/Manuals/ConfigGuide.pdf