访问控制列表

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个元素定义的规则

访问控制列表在接口应用的方向

  • 出:已经过里路由器的处理,正离开路由器接口的数据包

  • 入:已到达路由器接口的数据包,将被路由器处理

ACL访问控制列表_第1张图片

  • 列表应用到接口的方向与数据方向有关

访问控制列表的处理过程

ACL访问控制列表_第2张图片

  • 自上而下,逐条匹配,默认隐含拒绝所有

访问控制列表的类型

  • 标准访问控制列表

    • 基于源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