Cisco ACL-如何在允许内部系统使用公共 Web 的同时阻止公众进行内部访问?

网络工程 思科 路由器 acl
2022-02-05 22:54:58

在拒绝对我的内部系统进行任何公共访问后,我无法允许我的内部系统(管理)公共 Web 访问。到目前为止,这是我路由器上的 ACL:

  Extended IP access list Public
        10 deny tcp 17.35.32.64 0.0.0.31 any 
        20 deny udp 17.35.32.64 0.0.0.31 any
        30 deny ip 17.35.32.64 0.0.0.31 any 
        40 deny icmp 17.35.32.64 0.0.0.31 any
        50 permit tcp 17.35.32.32 0.0.0.31 host 17.35.32.80
  • 17.35.32.64 - 公共子网
  • 17.35.32.32 - 管理子网
  • 17.35.32.80 - 公共网络

如何同时阻止公共主机访问我的内部网络,但允许我的内部主机访问公共 Internet?

2个回答

听起来您只想允许内部地址建立 TCP 连接。如果您使用从私有寻址网络到公共 Internet 的 NAT,它是有状态的,并且它以您想要的方式工作。

如果你的路由器两边都有公共地址,你可以做这样的事情(这可以有多种方式,具体取决于你想要做什么)

interface GigabitEthernet0/0
 description WAN connection
 ip address 17.35.32.66 255.255.255.224
 ip access-group OUTBOUND_ONLY in

ip access-list extended OUTBOUND_ONLY
 permit tcp any any established

这将允许内部主机发起到外部主机的 TCP 连接,并允许外部主机响应已建立的连接,但它将阻止来自外部的任何其他流量。

思科为这样的事情维护了许多文档(只需搜索)。例如,配置常用 IP ACL

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

此图显示从 NetA 发往 NetB 的 TCP 流量被允许,而从 NetB 发往 NetA 的 TCP 流量被拒绝。

在此处输入图像描述

此示例中 ACL 的目的是:

  • 允许 NetA 中的主机启动并建立与 NetB 中的主机的 TCP 会话。
  • 拒绝 NetB 中的主机发起和建立以 NetA 中的主机为目的地的 TCP 会话。

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

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

R1

hostname R1  
!  
interface ethernet0  
 ip access-group 102 in  
!  
access-list 102 permit tcp any any gt 1023 established

由于大多数 IP 服务的知名端口使用小于 1023 的值,因此任何目标端口小于 1023 或未设置 ACK/RST 位的数据报都会被 ACL 102 拒绝。因此,当来自 NetB 的主机启动 TCP通过为小于 1023 的端口号发送第一个 TCP 数据包(未设置同步/启动数据包 (SYN/RST) 位)连接,它被拒绝并且 TCP 会话失败。从 NetA 发起的发往 NetB 的 TCP 会话是允许的,因为它们为返回数据包设置了 ACK/RST 位并使用大于 1023 的端口值。

我想我了解您要实现的目标,但是到目前为止您遇到的问题和设置/配置有点令人困惑。

首先,您是否有 IP 地址范围(IP 地址/子网掩码)?

其次,您是否考虑过使用两个访问列表。一个在“外部”界面阻止公共访问您的内部服务器/服务,一个在“内部”界面允许所有或特定机器访问 Internet?

第三,您在拒绝语句中混合了 ip、tcp 和 udp。如果你想阻止所有,那么只需使用 ip。

Web -> 外部接口 -> ACL -> 路由器 -> ACL <- 内部接口

出于兴趣,您使用的是什么思科路由器?