访问控制列表

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}