我目前有一个 CISCO 路由器,我想配置一个 ACL,该 ACL 只允许 Google DNS 服务器,并阻止所有其他在客户端上配置的服务器。
我有以下 ACL,但它无法正确应用,并且允许使用其他 DNS 服务器而不是 Google。
高级生命支持系统
access-list 101 permit udp any host 8.8.8.8 eq 53
access-list 101 permit udp any host 8.8.4.4 eq 53
access-list 101 deny udp any any eq 53
access-list 101 permit ip any any
我是否遗漏了什么?
提前致谢 :)
答案1
您定义了 ACL,但是没有显示将其应用于哪些接口。未将其应用于接口的 ACL 无效。请参阅
基本上你想
interface ethernet 0
ip access-group 101 out
将以太网 0 替换为您的接口类型和编号。
答案2
您的访问列表应在 LAN 接口上应用入站。它是一个扩展 ACL,应尽可能靠近源应用。它应该看起来像:
interface GigabitEthernet0/0
description LAN interface
ip access-group 101 in
您还遇到一个问题,即您仅阻止通过 UDP 的 DNS,而 DNS 还必须支持 TCP。RFC 5966,TCP 上的 DNS 传输 - 实施要求明确DNS必须支持TCP的事实:
因此,本文档更新了核心 DNS 协议规范,使得对 TCP 的支持从此成为完整 DNS 协议实现的必需部分。
你可能想要这样的东西:
access-list 101 permit udp any host 8.8.8.8 eq 53
access-list 101 permit udp any host 8.8.4.4 eq 53
access-list 101 deny udp any any eq 53
access-list 101 permit tcp any host 8.8.8.8 eq 53
access-list 101 permit tcp any host 8.8.4.4 eq 53
access-list 101 deny tcp any any eq 53
access-list 101 permit ip any any
将上述 ACL 从 LAN 放入路由器将会阻止任何 DNS 请求进入路由器,除非它们的目的地是8.8.8.8
或8.8.4.4
。