ACL
ACL:数据包过滤技术,对网络访问进行控制,保证网络的安全
ACL规则(rule)包含的信息:源MAC,目的MAC,源IP,目的IP,IP协议号,tcp端口等
ACL分类:
根据过滤信息:
ip access-list(应用于三层以上);
mac access-list(应用于二层);
mac-ip access-list(应用于二层以上)
根据信息的复杂程度:
standard:标准
extended:扩展,更加详细、细致的过滤信息
根据命名方式:
numbered:数字(标准:1-99、1300-1999;扩展:100-199、2000-2699)
named:命名
在三层交换机上配置ACL的详细命令
IP ACL
配置命名标准的IP访问控制列表
1.创建一个命名标准IP访问列表
2.指定多条permit或者deny规则
3.开启包过滤,设置默认动作
4.在端口使用访问列表
具体命令:
-ip access-list standard [name:jw] 创建一个命名标准IP访问列表
-deny|permit {<源IP网段> <源IP网段反掩码>}|any-source|{host-source <IP地址>} 指定规则
例子:允许原地址为192.168.10.0/24的数据包通过:
permit 192.168.10.0 0.0.0.255
拒绝原地址为192.168.20.1的数据包通过:
deny host-source 192.168.20.1
-firewall enable 开启包过滤
-firewall disable 关闭包过滤
-firewall default permit 设置默认动作为允许
-firewall default permit 设置默认动作为拒绝
-interface <端口号> 进入端口配置模式
-ip access-group <name> in|out 让过滤规则使用在端口的进或者出的方向
配置命名扩展IP访问列表
具体命令:
-ip acc-list extended <name:jw> 创建一个命名扩展IP访问列表
-deny|permit icmp {<源IP网段> <源IP网段反掩码>}|any-source|{host-source <源IP地址> <目的IP地址> <目的IP地址反掩码>} |any-destination | host-destination <目的IP地址> [{<icmp-type:icmp类型> <icmp-code:icmp的协议编号>}] [precedence <prec:IP优先级0-7] [tos <tos:0-15>] [time-range <时间组名称>] 定义ICMP规则
-deny|permit igmp {<源IP网段> <源IP网段反掩码>}|any-source|{host-source <源IP地址> <目的IP地址> <目的IP地址反掩码>} |any-destination | host-destination <目的IP地址> [{<igmp-type:igmp类型> <igmp-code:icmp的协议编号>}] [precedence <prec:IP优先级0-7>] [tos <tos:0-15>] [time-range <时间组名称>] 定义IGMP规则
-deny|permit tcp <源IP网段> <源IP网段反掩码> | any-source |host-source <源IP地址> [sPort <sPort:源端口号>] <目的IP地址> <目的IP地址反掩码>| any-destination |host-destination <目的IP地址> [dPort <dPort:目的端口号>] [ack+fin+psh+rst+urg+syn] [precedence <prec>] [tos <tos>] [time -range <时间组名称>] 定义TCP规则
-deny|permit eigrp|gre|igrp|ipinip|ip|<int> <源IP地址段> <源IP地址段反掩码> | any-source | host-source <源IP地址> <目的IP地址> <目的IP地址反掩码> | any-destination |host-destination <目的IP地址> [precedence <prec>] [tos <tos>] [time –range <时间组名称>] 过滤IP等规则
例子:
拒绝igmp报文通过:deny igmp any-source any-destination
允许目的地址为192.168.0.1、目的端口为32的udp包通过:permit udp any-source host-destination 192.168.0.1 dport 32
配置数字标准IP访问控制列表
1.创建一个数字标准访问列表,并定义规则
2.开启交换机包过滤,并设置默认动作
4.将规则运用到端口
具体命令:
-access-list <num:数字编号> deny|permit {<源IP网段> <源IP网段的反掩码>}|any-source|{host-source <源IP地址>}
例子:创建一个编号为1的标准IP访问控制列表,允许192.168.1.0网段的数据通过
access-list 1 permit 192.168.1.0 0.0.0.255
-intface [端口号] 进入端口
-ip access-group 1 in|out 将规则运用到端口的某个方向
配置数字扩展IP访问列表
-access-list <num> deny|peimit ... ...
此处省略号和上面命名扩展IP访问裂变的规则一样
例子:创建一个编号为101的扩展IP访问列表,允许192.168.1.0网段的主机访问ftp服务器202.10.1.2
access-list 101 permit tcp 192.168.1.0 0.0.0.255 host-destination 202.10.1.2 dport 21
-ip access-group 101 in|out 将规则运用到端口
基于时间的访问控制列表
1.时间范围命名:
time-range <名称>
2.定义具体的时间范围
absolute:绝对时间范围
absolute-periodic:定义绝对周期性时间范围
periodic:定义周期、重复使用的时间范围
3.在访问列表中引用时间范围
具体命令:
1. absolute-periodic Monday|Tuesday|Wednesday |Thursday|Friday|Saturday|Sunday <hh:mm:ss> to Monday.|Tuesday.|Wednesday.|Thursday.| Friday.|Saturday.|Sunday. <hh:mm:ss>
2. Periodic Monday+Tuesday+Wednesday+Thursday+Friday +Saturday+Sunday| daily| weekdays | weekend <hh:mm:ss> to < hh:mm:ss >
3. absolute Monday|Tuesday|Wednesday |Thursday|Friday|Saturday|Sunday <hh:mm:ss> to Monday.|Tuesday.| Wednesday.|Thursday.| Friday.|Saturday.|Sunday. <hh:mm:ss>
或absolute start <hh:mm:ss> <yyyy.mm.dd> end <hh:mm:ss> <yyyy.mm.dd>
例子:使Tuesday的9:15:30 到Saturday的12:30:00时间段内配置生效
-time-range dc-timer
-absolute-periodic Tuesday 9:15:30 to Saturday. 12:30:00
使Monday、Wednesday、Friday、Sunday四天的14:30:00到16:45:00时间段内配置生效
-periodic Monday Wednesday Friday Sunday 14:30:00 to 16:45:00
限制192.168.1.0网段的主机只能在2007年6月1日到2008年12月31日内的星期六早上7:00到星期日下午5:00进行WWW访问
-time-range allow-www
-absolute start 7:00:00 2007.6.1 end 17:00:00 2008.12.31
-periodic weekend 7:00:00 to 17:00:00
-ip acc-list extended timeacl
-permit tcp 192.168.1.0 0.0.0.255 any-destination dport 80 time-range allow-www
-firewall enable
-firewall default permit
-int f0/0
-ip access-group timeacl in
MAC ACL
数字标准MAC访问列表
1.创建数字标准MAC访问列表
2.开启交换机的包过滤,并设置默认动作
3.将规则运用到端口
-access-list <access-list-number> deny|permit any-source-mac|host-source-mac <host_smac> | <smac> <smac-mask> 定义一条数字标准MAC访问控制列表
例子:允许MAC地址为00_00_XX_XX_00_01的数据包通过,拒绝原地址00-00-00-XX-00-ab的数据包通过
-access-list 700 permit 00-00-00-00-00-01 00-00-FF-FF-00-01
-access-list 700 deny 00-00-00-00-00-ab 00-00-00-FF-00-ab
数字扩展MAC访问列表
-access-list <access-list-number:1100-1199> deny|permit {any-source-mac| host-source-mac <host_smac> | <smac> <smac-mask>} {any-destination-mac| host-destination-mac<host_dmac> | <dmac> <dmac-mask> } {untagged-eth2:未标记的以太2包格式 |tagged-eth2:标记的以太2包格式| untagged-802.3:未标记的以太802.3(无线)包格式 |tagged-802.3} [<offset1:12-51> <length1> <value1> [<offset2:12-59> <length2> <value2> [<offset3:12-55> <length3><value3> [<offset4:12-63> <length4> <value4>]]]]
解释:offset:从包头开始起的偏移量,有不同取值;length取值:1-4,对应的value的取值:0-ff,0-ffff,0-ffffff,0-ffffffff
例子:允许任意源MAC地址,任意目的MAC地址的tagged-eth2,且其第15 16个字节分别为0x08,0x00的包通过
-access-list 1100 permit any-source-mac any-destination-mac tagged-eth2 14 2 0800
命名扩展MAC访问列表
MAC-access-list extended <name> 创建一个扩展MAC访问列表
-deny|permit {any-source -mac|host-source-mac <host_smac>|<smac> <smac-mask>} {any-destination-mac|host-destination-mac<host_dmac>|<dmac> <dmac-mask>} [untagged-eth2 [ethertype<protocol> [protocol-mask]]]
-deny|permit {any-source -mac|host-source-mac <host_smac>|<smac><smac-mask>} {any-destination-mac|host-destination-mac<host_dmac>|<dmac> <dmac-mask>} [tagged-eth2 [cos <cos-val>[<cos-bitmask>]] [vlanId <vid-value> [<vid-mask>]]
-deny|permit {any-source -mac|host-source-mac <host_smac>|<smac> <smac-mask>} {any-destination-mac|host-destination-mac<host_dmac>|<dmac> <dmac-mask>} [untagged-802.3]
-deny|permit {any-source -mac|host-source-mac <host_smac>|<smac> <smac-mask>} {any-destination-mac|host-destinationmac<host_dmac>|<dmac> <dmac-mask>} [cos:0-7 <cos-val> [<cosbitmask:cos反掩码>]][vlanId <vid-value:vlan号> [<vid-mask:vlan反掩码>]] [ethertype<protocol:以太网协议号> [<protocol-mask:以太网协议号反掩码>]]
例子:拒绝交换机10号端口的网段中00-12-11-23-XX-XX的802.3数据报文的发出
-access-list 1110 deny 00-12-11-23-11-24 00-00-00-00-ff-ff any-destination-mac tagged-802.3
-access-list 1110 deny 00-12-11-23-11-25 00-00-00-00-ff-ff any-destination-mac untagged-802.3
MAC-IP访问列表
数字扩展MAC-IP访问列表
-access-list <num> {deny|permit} {any-source -mac| host-source-mac <host_smac>|<smac> <smac-mask>} {any-destination-mac|host-destination-mac <host_dmac>|<dmac> <dmac-mask>} icmp {<source> <source-wildcard>|any-source |host-source<source-host-ip>} {<destination> <destination-wildcard>|any-destination| hostdestination<destination-host-ip>} [<icmp-type> [<icmp-code>]] [precedence<precedence>] [tos <tos>] [time -range <time-range-name>]
-access-list <num> {deny|permit} {any-source -mac| host-source-mac <host_smac>|<smac> <smac-mask>} {any-destination-mac|host-destination-mac <host_dmac>|<dmac><dmac-mask>} igmp {{}|any-source|{host-source}} {{}|any-destination| {hostdestination}} [<igmp-type>] [precedence <precedence>] [tos<tos>][time -range <time-range-name>]
-access-list <num> {deny|permit} {any-source -mac|host-source-mac <host_smac>| <smac> <smac-mask>} {any-destination-mac| host-destination-mac<host_dmac> |<dmac> <dmac-mask>} tcp {{}|anysource|{host-source }}[s-port<port1>]{{}|any-destination|{host-destination}} [d-port <port3>] [ack+fin+psh+rst+urg+syn][precedence <precedence>] [tos <tos>][time -range <time-range-name>]
-access-list <num> {deny|permit}{any-source -mac| {host-source-mac<host_smac>}|{<smac><smac-mask>}}{any-destination-mac| {host-destinationmac<host_dmac>}|{<dmac><dmac-mask>}} udp {{|any-source| {host-source }}[s-port <port1>] {{}|any-destination| {host-destination }}[d-port<port3>] [precedence <precedence>] [tos <tos>][time-range <timerange-name>]
-access-list <num> {deny|permit} {any-source -mac|host-source-mac <host_smac>|<smac> <smac-mask>}{any-destination-mac|host-destination-mac<host_dmac> |<dmac> <dmac-mask>}{eigrp|gre|igrp|ip|ipinip|ospf|{<protocol-num>}}{{}|any-source|{host-source}} {{}|any-destination| {host-destination}} [precedence <precedence>][tos<tos>][time -range<time-range-name>]
例子:
允许源MAC 为00-12-34-45-XX-XX,任意目的MAC 地址,源IP 地址为:100.1.1.0 ,0.255.255.255 ,任意目的IP 地址,且源端口是100,目的端口是40000的TCP 报文通过。
-access-list 3199 permit 00-12-34-45-67-0000-00-00-00-FF-FF any-destination-mac tcp 100.1.1.00.255.255.255 s-port 100 any-destination d-port 40000
拒绝任意源MAC 地址及目的MAC 地址,任意源IP 地址及目的IP 地址,且源端口是100,目的端口是40000 的UDP 报文通过。
-access-list 3100 deny any-source-macany-destination-mac udp any-source s-port 100any-destination d-port 40000
交换机10号端口连接的网段MAC地址是00-11-11-11-xx-xx 并且IP地址是192.168.6.14/24的网段,管理员不希望使用FTP,也不允许外网PING 此网段的任何一台主机。
-access-list 3110 deny 00-11-11-11-00-00 00-00-00-00-ff-ffany-destination-mac tcp 192.168.6.14 0.0.0.255 any-destination d-port 21
-access-list 3120 deny any-source-mac 00-11-11-11-00-00 00-00-00-00-ff-ff icmp any-source 192.168.6.14 0.0.0.255
命名扩展MAC-IP访问列表
-Mac-ip-access-list extended <name>
其他命令和上面差不多