Cisco 端口 ACL 规则阻止端口 80 似乎阻止所有流量

网络工程 思科 ACL
2021-07-08 11:40:14

我在 2911 ISR、IOS 15.4 的 EHWIC 卡上配置了一个 ACL,如下所示。

如果我在那里设置了阻止端口 80 的规则,那么该端口的所有流量似乎都被阻止了(SSH、telnet、RDP 等)

如果我删除规则 300 和 400,它似乎按预期工作,阻止 telnet 访问,但允许我做其他所有事情。

我需要 ACL 的主要目的是阻止访问我无法禁用的网络上的网页!

ip access-list 扩展 PORT-ACL

100 拒绝 tcp 任何任何 eq 23
200 拒绝 tcp 任何 eq 23 任何
300 拒绝 tcp 任何任何 eq 80
400 拒绝 tcp 任何 eq 80 任何
500 拒绝 icmp 任何任何时间戳回复
600 拒绝 tcp 任何任何 eq 8080
700任何拒绝80 eq 任何
1000 permit ip any any

interface GigabitEthernet1/0/1
描述 SERVER-DEVICE
ip access-group PORT-ACL in

2个回答

您的访问列表应如下所示:

ip access-list extended PORT-ACL

100 deny tcp any any eq 23
300 deny tcp any any eq 80
500 deny icmp any any timestamp-reply
1000 permit ip any any

interface GigabitEthernet1/0/1
description SERVER-DEVICE
ip access-group PORT-ACL OUT  <-- note change

访问列表的方向是参考路由器的,所以OUT的意思是从路由器到服务器。在这种情况下,当 TCP 目标端口为 23 或 80 时,您将阻止从其他设备到服务器的流量。

ACL 只能对数据包中直到 TCP/UDP/ICMP 标头的数据进行操作。如果 TCP 目标端口号是 80,则即使 TCP 有效负载是 SSH 或其他任何内容,规则号 300 也会丢弃它。ACL 实现不知道生成数据包的应用程序,也看不到 TCP 标头之外的数据负载,因此如果 dest 端口值为 80,则无法区分“web”流量和“ssh”流量.

如果您需要禁用访问的网页位于特定的 Web 服务器上,您可以尝试提供该服务器的 IP 地址而不是“任何”。