分享是一种生活态度,求知,求真,分享工作,分享生活!

常用IP ACL功能配置

Cisco iqianyue 1627次浏览 0个评论 扫描二维码

IP ACL 是应用于 IP 数据包的一系列 permit 和 deny 条件的顺序集合。路由器将根据 ACL 中的条件逐个测试数据包。

第一匹配确定思科IOS软件是否接受或拒绝数据包。因为 Cisco IOS 软件将在匹配第一个条件之后停止测试,所以条件的顺序至关重要。如果没有任何条件匹配,路由器将根据一个隐式 deny all 子句拒绝数据包。

以下是可在 Cisco IOS 软件中配置的 IP ACL 示例:

  • 标准 ACL
  • 扩展 ACL
  • 动态(锁和密钥)ACL
  • IP 命名 ACL
  • 自反 ACL
  • 使用时间范围的基于时间的 ACL
  • 带有注释的 IP ACL 条目
  • 基于上下文的 ACL
  • 身份验证代理
  • Turbo ACL
  • 基于时间的分布式 ACL

    允许选定主机访问网络

    下图显示了向一台选定主机授予网络访问权限。从主机 B 发往 NetA 的所有数据流都得到允许,而其他所有从 NetB 发往 NetA 的数据流都遭到拒绝。

    /image/gif/paws/26448/ACLsamples-1.gif

    R1 表中的输出显示了网络如何向主机授予访问权限。该输出说明:

    • 此配置只允许 IP 地址为 192.168.10.1 的主机上的数据流通过 R1 上的以太网 0 接口。
    • 这台主机有权访问 NetA 的 IP 服务。
    • NetB 中的其他主机无权访问 NetA。
    • ACL 中没有配置 deny 语句。

    默认情况下,每个 ACL 末尾都有一个隐式 deny all 子句。任何没有显式允许的数据流都将遭到拒绝。

    R1

    注意: ACL 过滤了从 NetB 传输到 NetA 的 IP 数据包,从主机 B 发出的数据包则除外。仍然允许从 NetA 发往主机 B 的数据包。

    注意: ACL access-list 1 permit 192.168.10.1 0.0.0.0 是配置相同规则的另一种方法。

    拒绝选定主机访问网络

    下图显示了这种情况:从主机 B 发往 NetA 的数据流遭到拒绝,而其他所有从 NetB 发出以访问 NetA 的数据流都得到了允许。

    /image/gif/paws/26448/ACLsamples-3.gif

    此配置拒绝主机 192.168.10.1/32 上的所有数据包通过 R1 上的以太网 0 接口,但允许其他所有数据包。由于每个 ACL 都有一个隐式 deny all 子句,因此您必须使用 access list 1 permit any 命令显式允许其他所有数据包。

    R1

    注意: 语句顺序对 ACL 的操作至关重要。如果颠倒了条目顺序,如此命令所示,则第一行与每个数据包的源地址都匹配。因此,ACL 无法阻止主机 192.168.10.1/32 访问 NetA。

    允许访问一个范围内的连续 IP 地址

    下图显示了 NetB 中网络地址为 192.168.10.0/24 的所有主机都能访问 NetA 中地址为 192.168.200.0/24 的网络。

    /image/gif/paws/26448/ACLsamples-2.gif

    如果某个 IP 数据包的 IP 报头显示的源地址在网络 192.168.10.0/24 中,而目标地址在网络 192.168.200.0/24 中,此配置将允许这种数据包访问 NetA。ACL 末尾有隐式 deny all 子句,将拒绝其他所有数据流通过 R1 上的以太网 0 入站。

    R1

    注意: access-list 101 permit ip 192.168.10.0 0.0.0.255 192.168.200.0 0.0.0.255 命令中,“0.0.0.255”是掩码为 255.255.255.0 的网络 192.168.10.0 的反掩码。ACL 使用反掩码来确定网络地址中需要匹配的位数。上表中,ACL 允许源地址位于 192.168.10.0/24 网络中且目标地址位于 192.168.200.0/24 网络中的所有主机。

    要详细了解网络地址的掩码以及如何计算 ACL 所需的反掩码,请参阅配置 IP 访问列表掩码部分。

    拒绝 Telnet流量(TCP、端口 23)

    为了满足更高的安全要求,您可能需要禁止从公共网络对您的专用网络发起 Telnet 访问会话。下图显示了如何拒绝从 NetB(公共)发往 NetA(专用)的 Telnet 数据流,但同时允许其他所有 IP 数据流,也允许 NetA 发起并建立与 NetB 的 Telnet 会话。

    /image/gif/paws/26448/ACLsamples-4.gif

    Telnet 使用 TCP 端口 23。此配置显示了通过端口 23 发往 NetA 的所有 TCP 数据流都受到了阻止,但其他所有 IP 数据流都得到了允许。

    R1

    只允许内部网络发起 TCP 会话

    下图显示了允许从 NetA 发往 NetB 的 TCP 数据流,但拒绝从 NetB 发往 NetA 的 TCP 数据流。

    /image/gif/paws/26448/ACLsamples-4.gif

    本示例中 ACL 的目的是:

    • 允许 NetA 中的主机面向 NetB 中的主机发起并建立 TCP 会话。
    • 拒绝 NetB 中的主机面向 NetA 中的主机发起并建立 TCP 会话。

    当数据报具备以下条件时,此配置允许数据报通过 R1 上的以太网 0 接口入站:

    • 已设置确认 (ACK) 或重置 (RST) 位(指示一个已建立的 TCP 会话)
    • 目标端口值大于 1023
    R1

    由于 IP 服务的大多数常用端口都使用小于 1023 的值,ACL 102 将拒绝目标端口值小于 1023 或未设置 ACK/RST 位的所有数据报。因此,当 NetB 中的一台主机在未设置同步/开始数据包 (SYN) 位的情况下面向一个编号小于 1023 的端口通过发送第一个 TCP 数据包来发起 TCP 连接时,它将遭到拒绝,并且 TCP 会话将失败。从 NetA 发往 NetB 的 TCP 会话将得到允许,因为它已设置用于返回数据包的 ACK/RST 位并且使用的端口值大于 1023。

    有关端口的完整列表,请参阅 RFC 1700leavingcisco.com

    拒绝 FTP 数据流(TCP、端口 21)

    下图显示了拒绝从 NetB 发往 NetA 的 FTP(TCP,端口 21)和 FTP 数据(端口 20)流量,但允许其他所有 IP 数据流。

    /image/gif/paws/26448/ACLsamples-4.gif

    FTP 使用端口 21 和端口 20。发往端口 21 和端口 20 的 TCP 数据流遭到拒绝,但其他所有数据流得到显式允许。

    R1

    允许 FTP 数据流(主动 FTP)

    FTP 能以主动和被动两种不同模式进行操作。要了解主动和被动 FTP 的运作方式,请参阅 FTP 操作

    当 FTP 以主动模式操作时,FTP 服务器将端口 21 用于控制,将端口 20 用于数据。FTP 服务器 (192.168.1.100) 位于 NetA 中。下图显示了允许从 NetB 发往 FTP 服务器 (192.168.1.100) 的 FTP(TCP,端口 21)和 FTP 数据(端口 20)流量,但拒绝其他所有 IP 数据流。

    ACLSamples-5.gif

    R1

    允许 FTP 数据流(被动 FTP)

    FTP 能以主动和被动两种不同模式进行操作。要了解主动和被动 FTP 的运作方式,请参阅 FTP 操作

    当 FTP 以被动模式操作时,FTP 服务器将端口 21 用于控制,将编号大于或等于 1024 的动态端口用于数据。FTP 服务器 (192.168.1.100) 位于 NetA 中。下图显示了允许从 NetB 发往 FTP 服务器 (192.168.1.100) 的 FTP(TCP,端口21)和 FTP 数据(端口大于或等于 1024)流量,但拒绝其他所有 IP 数据流。

    ACLSamples-6.gif

    R1

    允许 ping (ICMP)

    下图显示了允许从 NetA 发往 NetB 的 ICMP,但拒绝从 NetB 发往 NetA 的 ping。

    /image/gif/paws/26448/ACLsamples-4.gif

    此配置仅允许从 NetB 到 NetA 的 Echo 应答(ping 响应)数据包通过以太网 0 接口入站。但是,当 ping 是从 NetB 发往 NetA 时,此配置将阻止所有的 Echo 请求 ICMP 数据包。因此,NetA 中的主机能对 NetB 中的主机执行 ping 操作,但 NetB 中的主机不能对 NetA 中的主机执行 ping 操作。

    R1

    允许 HTTP、Telnet、Mail、POP3、FTP

    下图显示了仅允许 HTTP、Telnet、Simple Mail Transfer Protocol (SMTP)、POP3 和 FTP 数据流,并拒绝其他所有从 NetB 发往 NetA 的数据流。

    /image/gif/paws/26448/ACLsamples-4.gif

    此配置允许目标端口值与 WWW(端口 80)、Telnet(端口 23)、SMTP(端口 25)、POP3(端口 110)、FTP(端口 21)或 FTP 数据(端口 20)匹配的 TCP 数据流。请注意,ACL 末尾的隐式 deny all 字句将拒绝其他所有不匹配 permit 子句的数据流。

    R1

    允许 DNS

    下图显示了仅允许域名系统 (DNS) 数据流,并拒绝其他所有从 NetB 发往 NetA 的数据流。

    /image/gif/paws/26448/ACLsamples-4.gif

    此配置允许目标端口值为 53 的 TCP 数据流。ACL 末尾的隐式 deny all 子句将拒绝其他所有不匹配 permit 子句的数据流。

    R1

    允许路由更新

    当您对接口应用入站 ACL 时,请确保路由更新没有被过滤掉。使用此列表中的相关 ACL,以便允许路由协议数据包:

    发出以下命令,以便允许 Routing Information Protocol (RIP):

    发出以下命令,以便允许 Interior Gateway Routing Protocol (IGRP):

    发出以下命令,以便允许增强型内部网关路由协议 (EIGRP):

    发出以下命令,以便允许开放最短路径优先 (OSPF) 协议:

    发出以下命令,以便允许边界网关协议 (BGP):

    根据 ACL 调试数据流

    要使用 debug 命令就需要分配系统资源(如内存和处理能力),在极少数情况下会导致系统因负载过高而停止运行。因此请慎用 debug 命令。请使用 ACL,以便有选择性地定义需要检查的数据流,从而减少 debug 命令的影响。这样的配置不会过滤任何数据包。

    此配置仅针对主机 10.1.1.1 和主机 172.16.1.1 之间的数据包启用 debug ip packet 命令。

    要了解关于 debug 命令影响的其他信息,请参阅有关 debug 命令的重要信息

    要了解关于配合使用 ACL 与 debug 命令的其他信息,请参阅了解 ping 和 traceroute 命令中的使用 debug 命令部分。

    Mac 地址过滤

    您可以过滤带有特定 MAC 层站点的源地址或目标地址的帧。可以向系统中配置任意数量的地址,而不会对性能产生影响。要按照 MAC 层地址进行过滤,请在全局配置模式下使用以下命令:

    将网桥协议和创建的访问列表应用到要过滤数据流的接口上:

    创建桥接虚拟接口,并将分配的 IP 地址应用到以太网接口上:

    使用此配置后,路由器仅允许在访问列表 700 上配置的 MAC 地址。使用该访问列表将拒绝无访问权限的 MAC 地址,然后允许其余地址。

    注意: 为每个 MAC 地址创建访问列表的每一行条目。


iqianyue , 版权所有丨如未注明 , 均为原创,转载请注明iqianyue
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论

表情 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址