ACL(access control list)访问控制列表概述

  • 访问控制列表是应用在路由器接口的指令列表,这些指令列表用来告诉路由器哪些数据包可以接收、哪些数据包需要拒绝。

  • 访问控制是网络安全防范和保护的主要策略,它的主要任务是保证网络资源不被非法使用和访问。它是保证网络安全最重要的核心策略之一。访问控制涉及的技术也比较广,包括入网访问控制、网络权限控制、目录级控制以及属性控制等多种手段。

常用的TCP端口号及其功能

   端口        协议    说明
21 FTP FTP服务器所开放的控制端口,20端口是ftp的数据连接,21端口是ftp的控制连接
23 TELNET 用于远程登录,可以远程控制管理目标计算机
25 SMTP SMTP服务器开放的端口,用于发送邮件
80 HTTP 超文本传输协议,https 443安全
110 POP3 用于邮件的接受
143 IAMP 用于发送邮件
22 SSH 密文远程登录
68,67 DHCP IP地址自动分配,客户端请求用的67,服务器回应用的68
53 DNS 域名解析
3389 RDP 远程桌面

常用的UDP端口号及其功能

   端口       协议    说明
69 TFTP 简单文件传输协议
111 RPC 远程过程调用
123 NTP 网络时间协议

访问控制列表基于三层(IP)和四层(端口,协议)进行过滤(应用防火墙,七层过滤)

  • 读取第三层,第四层包头信息
  • 根据预先定义好的规则对包进行过滤

访问控制列表在接口应用的方向(与数据方向有关)

  • 出:已经过路由器的处理,正离开路由器接口的数据包
  • 入:已经到达路由器接口的数据包,将被路由器处理

访问控制列表的处理过程

访问控制列表的处理流程(自上而下,逐条匹配,默认隐含拒绝所有)

白名单 允许 1.2 允许 1.3 拒绝所有(可以不写)

黑名单 拒绝 1.2 拒绝 1.3 允许所有(必须写)

标准访问控制列表

  • 基于源IP地址过滤数据包
  • 标准访问控制列表的访问控制列表号1~99

扩展访问控制列表

  • 基于源IP地址,目的IP地址,指定协议,端口和标志来过滤数据包
  • 扩展访问控制列表的访问控制列表号是100~199

命名访问控制列表

  • 命名访问控制列表允许在标准和扩展访问控制列表中使用名称代替表号

ACL配置命令

1,创建ACL
access-list access-list-number { permit | deny} source [source-wildcard ] 
//permit表示允许数据包通过 ,deny表示拒绝数据包通过 ,source [ source-wildcard ]只对源IP进行控制+(反子网掩码)
示例
Router(config)# access-list 1 permit 192.168.1.0 0.0.0.255
Router(config)# access-list 1 permit 192.168.2.2 0.0.0.0
//允许192.168.1.0/24和主机192.168.2.2的流量通过
2,删除ACL
no access-list access-list-number  //直接删除ACL列表号
3,隐含的拒绝语句
access-list 1 deny 0.0.0.0 255.255.255.255  //拒绝所有ip
4,关键字
host  //host后面可跟ip地址,免去子网掩码的输入
any   //等同于拒绝所有ip
5,将ACL应用于接口
ip access-group access-list-number {in | out} 
//控制方最近的端口,in是进入out是输出
6,在接口上取消ACL的应用
no ip access-group access-list-number {in | out}

ACL标准配置示例

需求

禁止192.168.10.2访问pc3

双击配置sw交换机
sw#conf t    ##进入全局模式
sw(config)#no ip routing  ##关闭路由功能
sw(config)#int f1/0   ##进入接口f1/0
sw(config-if)#speed 100  ##因为和路由相连所以要配置双工模式和速率
sw(config-if)#duplex full
双击配置R1路由
R1#conf t    ##全局模式
R1(config-if)#int f0/1                         
R1(config-if)#ip add 192.168.10.1 255.255.255.0  ##配置网关
R1(config-if)#no shut  ##开启
R1(config-if)#int f0/0
R1(config-if)#ip add 192.168.20.1 255.255.255.0  ##配置网关
R1(config-if)#no shut  ##开启
配置三台pc机的ip地址及网关,测试能否相互ping通
PC1> ip 192.168.10.2 192.168.10.1 
PC2> ip 192.168.10.3 192.168.10.1
PC3> ip 192.168.20.2 192.168.20.1

打开R1配置访问控制列表
R1#conf t    ##全局模式
R1(config)#access-list 1 deny host 192.168.10.2     ##禁止10.2访问
R1(config)#access-list 1 permit any         ##允许所有(必须写)   
R1(config)#do show access-list     ##查看访问控制列表
Standard IP access list 1
    10 deny   192.168.10.2
    20 permit any
R1(config)#int f0/1
R1(config-if)#ip access-group 1 in  ##应用于接口f0/1
测试10.2的机器能不能访问pc3

谢谢阅读!!!