ACL——访问控制列表
1.ACL:即Access Control List——访问控制列表,它是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃。访问控制列表被广泛地应用于路由器和三层交换机,借助于访问控制列表,可以有效地控制用户对网络的访问,从而最大程度地保障网络安全。
2.ACL基于三层的IP包头的IP地址、四层的TCP/UDP头部的端口号、【5层数据(该项要看设备)】
3.ACL在路由器上配置,也可以在防火墙上配置(在防火墙上一般称为策略)
4.ACL主要分为2类
1)标准ACL
2)扩展ACL
5.标准ACL:
表号:1-99
特点:只能基于源IP对包进行过滤
命令:在全局模式(config terminal)下
access-list 表号 permit/deny 源IP或源网段 反子网掩码
Tips:反子网掩码:将正子网掩码0和1倒置。
255.0.0.0——0.255.255.255
255.255.0.0——0.0.255.255
255.255.255.0——0.0.0.255
反子网掩码作用:它是用来做匹配条件的,与0对应的严格匹配,与1对应的忽略!
eg:access-list 1 deny 10.1.3.1 0.0.255.255
在这个条件中,反子网掩码有两个0,那么该条目所检查的就是来自10.1.x.x的包全部过滤,若反子网掩码为0.0.0.0,那么过滤的就是来自10.1.3.1这个IP的包
6.扩展ACL:
表号:100-199
特点:可以基于源IP、目标IP、端口号、协议等对包进行过滤
命令:access-list 101 permit/deny 协议 源IP/源网段 反子网掩码 目标IP/源网段 反子网掩码 [eq 端口号]
注释:协议有tcp/udp/icmp/ip
eg: access-list 100 permit tcp host 10.1.1.1 host 20.1.1.3 eq 80
access-list 100 deny ip host 10.1.1.1 20.1.1.0 0.0.0.255
access-list 100 permit ip any any
这三条命令是指10.1.1.1只能访问20.1.1.0网段中20.1.1.3的80端口,除10.1.1.1外的主机不受影响
7.ACL原理:
1)ACL表必须应用到接口的进或出方向才生效
2)一个接口的一个方向智能应用一个表
3)进还是出方向的应用取决于流量控制的总方向
4)ACL表是严格自上而下检查每一条,所以尽量从下往上写,即越详细的规则写在最上面
5)每一条是由条件和动作组成,当流量满足某一条时就执行(通过或丢弃),当某流量没有满足条件,就继续检查下一条
6)标准ACL尽量写在靠近目标的地方
7)扩展ACL尽量写在靠近源的地方
8)一般情况下标准和扩展ACL一旦编写好,无法修改某一条,也无法删除某一条或修改顺序,智能一直在最后添加新的条目,如想修改表只能删除表重新写
删除ACL表:在配置模式下:no access-list 表号
查看ACL表:在enable模式:show ip access-list 表号
将ACL表应用到接口:int fx/x
ip access-group 表号 in/out(表明进或出,二选一,写错接口,前面加个no再执行就行,表不会被删除)
exit
8.命名ACL
作用:可对标准或扩展ACL进行自定义命名
优点:自定义命令更容易辨认和记忆,可以任意修改某一条,或删除某一条,也能网中间插入某一条
命令:ip access-list extended/standard 表名(英文和数字) 回车进入ACL配置模式
permit tcp 10.1.0.0 0.0.255.255 host 10.1.1.1 eq 80 (根据扩展或标准ACL规则写,只是将前面的access-list隐藏了)
exit 退出
删除:在ACL配置模式下: no 条目序号
增加:在ACL配置模式下:在写的条目前面加上想插入的位置序号即可。
Tips:ACL表中的进出方向是对路由器而言的,进路由器的为进,出路由的为出