访问控制列表
利用访问控制列表可以对流过的数据包进行过滤,以防止一些可能有害的数据包通过。
访问控制列表可以配置在三层交换机或路由器上,作为简单防火墙使用。
ACL语句
访问控制列表(Access List)简称ACL,它由若干语句构成,这些语句就是过滤规则。
ACL语句的格式:
表号:同一个访问控制列表的ACL语句使用相同的表号。
处理方式:permit:允许, deny:拒绝。
条件:指定过滤数据报的条件,可包含地址、协议、端口号、访问时间等。
应用访问控制列表
定义访问控制列表后,需把它应用在设备接口上才能起作用,它会按指定的规则过滤数据报,对非法数据报进行拦截。
取值为 out 时,表示数据报在离开设备前进行过滤。
取值为 in 时,表示数据报在进入设备时进行过滤。
省略时默认为out。
删除访问控制列表:
访问控制列表只能向其末尾添加语句,如果想要修改语句,只能先删除整个访问控制列表再重新输入。
查看访问控制列表:
不带表号时会显示所有访问控制列表。
标准访问控制列表
标准访问控制列表只能构建简单的过滤条件,可用于构建基本访问控制。
表号取值范围:1~99。
处理方式:permit-允许,deny-拒绝。
条件:地址 通配符掩码,匹配数据报中的源地址。
特殊条件可简写:any - 匹配任意地址,host 地址 - 匹配单个地址。
比如:
第一句表示拒绝来自172.168.1.1的数据报通过。
第二句表示允许来自172.168.*.*的数据报通过。
配置举例:允许PC1访问服务器但不允许PC2访问
定义访问控制列表:
把访问控制列表应用在f0/1的out方向:
标准访问控制列表特性:
-
每张访问控制列表的末尾都隐含着一句 deny any,也就是“没有被允许的默认拒绝”。所以,上例中的第二句可省。
-
访问控制列表中的语句是从上到下顺序匹配的,一旦数据报与某条ACL语句匹配,则会立即处理(允许或拒绝),列表中剩余的语句会被忽略。所以,语句的书写顺序非常重要。
-
标准访问控制列表只能指定源地址条件,不检测目的地址。所以,不能指定拒绝对某某的访问。
-
一台设备中可定义多个访问控制列表,但每个接口、每个方向只能应用一张访问控制列表。所以,一个接口可以在 in 方向和 out 方向分别指定访问控制列表。
关于通配符掩码
地址条件可写作 地址 通配符掩码 的形态。
通配符掩码是一个32位二进制数,取值为0的位表示需匹配,取值为1的位表示任意值。
比如:192.168.1.0 0.0.0.255 匹配的是以“192.168.1”开头的所有地址。
比如:192.168.0.0 0.0.255.255 匹配的是以“192.168”开头的所有地址。
比如:192.0.1.0 0.255.0.255 匹配的是以“192.*.1.*”格式的所有地址。
所以,通配符掩码不是子网掩码的反码,它不要求内部的0和1是连续的。
配置举例(1)
要求:允许 192.168.2.0 网络访问服务器,其它网络都不允许访问。
根据访问控制列表特性,只需指定 permit 192.168.2.0 0.0.0.255,其它默认都是拒绝。
把访问控制列表应用在三层交换机f0/1接口的out方向。
查看配置
配置举例(2)
把上例的过滤条件改为:不允许 192.168.2.0 网络访问服务器,其它都允许访问。
可以用两句实现:
访问控制列表默认是拒绝所有,当使用拒绝规则时,后面需明确指定允许的访问,否则所有访问都会被拒绝。
注:访问控制列表的语句只能添加不能覆盖,如果想要修改它,需要先删除整个访问控制列表,再重新定义。
查看配置
扩展访问控制列表
扩展访问控制列表可以构建较复杂的过滤条件,用于对访问的精确控制。
语法:access-list 表号 permit | deny 条件
表号取值范围:100~199。
处理方式:permit-允许,deny-拒绝。
条件:协议 源地址条件 目的地址条件 [运算符 端口号]
协议:匹配网络层或传输层协议,如:IP、ICMP、TCP、UDP等。
地址条件的写法:地址 通配符掩码 - 匹配指定格式的地址,any - 匹配任意地址,host 地址 - 匹配单个地址。第一个地址条件匹配源地址,第二个匹配目的地址。
匹配端口号是可选的,只有当协议指定为TCP或UDP时可指定匹配的端口号,用于限定具体的应用。
支持的运算符:lt-小于,gt-大于,eq-等于,neq-不等于。
扩展访问控制列表语句举例
允许访问目的地址为 192.168.1.1 的应用。
当不区分应用的种类时,协议应指定为IP协议。
允许来自 192.168.*.* 的用户访问目的地址为 192.168.1.1 的应用。
这个条件同时限定了源和目的。
允许来自 192.168.*.* 的用户访问目的地址为 192.168.1.1 的Web应用。
Web应用的传输层使用TCP协议,端口号为80。这个条件限定了具体的应用。
几个常用服务:HTTP-TCP, 80,HTTPS-TCP, 443,FTP-TCP, 21,Telnet-TCP, 23,DNS-UDP, 53。
禁止对 192.168.1.1 的ping操作。
ping操作使用的是ICMP协议,这一句可禁止对目的主机的ping操作,不影响对它的应用的访问。
配置举例(3)
过滤条件:
只有192.168.2.0的用户可访问DNS和Web。
禁止对DNS、Web服务器执行ping操作。
所有用户可访问DHCP服务器。
查看配置
配置举例(4)
拓扑图同上,过滤条件改为:
只有192.168.2.0的用户可访问Web。
所有用户可访问DNS和DHCP服务器。
注:由于DNS和Web服务在一个服务器上,需要了用端口区分它们的访问。
查看配置
小结
访问控制列表是一种包过滤式防火墙,可用于对网络资源进行保护。
访问控制列表一般配置在连接服务器的三层交换机和边界路由器上。
访问控制列表语句的书写顺序会影响过滤效果。