访问控制列表
TCP和UDP协议
- TCP协议
- UDP协议
访问控制列表概述
- 访问控制列表的工作原理
- 访问控制列表的类型
TCP和UDP协议
TCP
- 传输控制协议
- TCP是面向连接的、可靠的进程到进程的协议
- TCP提供全双工服务,即数据可在同一时间双向传输
- TCP报文段
- TCP将若干个字节构成一个分组,叫报文段
- TCP报文段封装在IP数据报文中
TCP连接
- 常用的TCP端口号及其功能
端口 | 协议 | 说明 |
---|---|---|
21 | FTP | FTP服务器所开放的控制端口 |
23 | TELNET | 用于远程登录,可以远程控制管理目标计算机 |
25 | SMTP | SMTP服务开端的端口,用于发送邮件 |
80 | HTTP | 超文本传输协议 |
110 | POP3 | 用于邮件的接收 |
UDP
-
用户数据协议
-
无连接、不可靠的传输协议
-
花费开销小
-
报文的首部格式
源端口号(16) 目标端口号(16) UDP长度(16) UDP校验和(16) -
UDP长度:用来指出UDP的总长度,为首部加上数据
-
效验和:用来完成对UDP数据的差错检验,它是UDP协议提供的唯一可靠机制
UDP连接
-
常用的UDP端口号及其功能
端口 协议 说明 69 TFTP 简单的文本传输协议 111 RPC 远程过程调用 123 NTP 网络时间协议
访问控制列表(ACL)
- 读取第三层、第四层包头信息
- 根据预先定义好的规则对包进行过滤
- 访问控制列表的4个元素
- 源地址、目的地址、源端口、目的端口
- 访问控制列表利用这4个元素定义的规则
访问控制列表在接口应用的方向
-
出:已经过里路由器的处理,正离开路由器接口的数据包
-
入:已到达路由器接口的数据包,将被路由器处理
- 列表应用到接口的方向与数据方向有关
访问控制列表的处理过程
- 自上而下,逐条匹配,默认隐含拒绝所有
访问控制列表的类型
-
标准访问控制列表
- 基于源IP地址过滤的数据包
- 标准访问控制列表的访问控制列表号是1~99
-
扩展访问控制列表
- 基于源IP地址、目的IP地址、指定协议、端口和标志来过滤数据包
- 扩展访问控制列表的访问控制列表号是100~199
-
命名访问控制列表
- 命名访问控制列表允许在标准和扩展访问控制列表中使用名称代替表号
标准访问控制列表的配置
创建ACL
Router(config)#access-list access-list-number
{ permit I. deny } source [ source-wildcard ] //permit:允许数据包通过 deny:拒接数据包通过
删除ACL
Router(config)# no access-list access-list-number
应用实例
- 允许192.168.1.0/24和主机192.168.2.2的流量通过
Router(config)# access-list 1 permit 192.168.1.0 0.0.0.255 //注意子网掩码写反码
Router(config)# access-list 1 permit192.168.2.2 0.0.0.0
//固定的主机地址可以不写子网掩码,在IP地址前加上关键字host即可
Router(config)# access-list 1 permit host 192.168.2.2
隐含的拒绝语句
Router(config)# access-list 1 deny 0.0.0.0 255.255.255.255
//可以将IP地址使用关键字any代替
Router(config)# access-list 1 deny any
将ACL应用于接口
Router(config-i)# ip access-group access-list-number {in lout}
在接口上取消ACL的应用
Router(config-if)# no ip access-group access-list-number {in lout}
扩展访问控制列表的配置
创建ACL
Router(config)# access-list access-list-number { permit | deny }
protocol { source source-wildcard destination destination-wildcard }
[ operator operan ]
删除ACL
Router(config)# no access-list access-list-number
将ACL应用于接口
Router(config-if)# ip access-group access-list-number {in |out}
在接口上取消ACL的应用
Router(config-if)# no ip access-group access-list-number {in lout}
应用实例
Router(config)# access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.2.00.0.0.255
Router(config)# access-list 101 deny ip any any
命名访问控制列表的配置
创建ACL
Router(config)# ip access-list { standard | extended } access-list-name
//standard:标准命名ACL extended:扩展命名ACL
配置标准命名ACL
Router(config-std-nacl)# [ Sequence-Number ] { permit | deny } source [ source-wildcard ]、
//Sequence-Number决定ACL语句在ACL列表中的位置
配置扩展命名ACL
Router(config-ext-nacl)# [ Sequence-Number] { permit | deny } protocol { source source-wildcard destination destination-wildcard } [ operator operan ]
//Sequence-Number决定ACL语句在ACL列表中的位置
标准命名ACL应用实例
- 只允许来自主机192.168.1.1/24的流量通过
Router(config)# ip access-list standard cisco
Rcuter(config-std-nacl)# permit host 192.168.1.1
Router(config-std-nacl)# deny any
- 查看ACL配置信息
Router#show access-lists
Standard IP access list cisco
10 permit 192.168.1.1
20 deny any
- 更改ACL,又允许来自主机192.168.2.1/24的流量通过
Router(config)# ip access-list standard cisco
Router(config-std-nacl)#15 permit host 192.168.2.1 //添加序列号为15的ACL语句
- 查看ACL配置信息
Router#show access-lists
Standard IP access list cisco
10 permit 192.168.1.1
15 permit 192.168.2.1 //ACL语句添加到了指定的ACL列表位置
20 deny any
扩展命名ACL应用实例
Router(config)# ip access-list extended cisco
Router(config-ext-nacl)# deny tcp 192.168.1.0 0.0.0.255 host 192.168.2.2 eq 21
Router(config-ext-nacl)# permit ip any any
创建ACL
Router(config)# ip access-list standard cisco
Router(config-std-nacl)# permit host 192.168.1.1
Router(config-std-nacl)#end
Router#show access-lists
Standard IP access list cisco
10 permit 192.168.1.1
删除组中单- - ACL语句
Router(config-std-nacl)# no 10
或
Router(config-std-nacl)#no permit host 192.168.1.1
删除整组ACL
Router(config)# no ip access-list { standard | extended } access-list-name
将ACL应用于接口
Router(config-if)# ip access-group access-list-name {in |out}
在接口.上取消ACL的应用
Router(config-if)# no ip access-group access-list-name {in |out}