问题: 出口路由器MSR3600进行了如下配置,但是该路由器上的公网ipv4、ipv6地址的SNMP161端口都被公网扫描设备扫描到了。
acl basic 2800
description SNMP-ACL
rule 10 permit vpn-instance mgmt source 10.10.10.10 0
snmp-agent community read abcd.2026 acl 2800
请问配置:snmp-agent acl 2800 能避免此路由器的公网IP被公网设备扫描到SNMP161端口吗,谢谢
(0)
(0)
暂无评论
snmp-agent acl 2800 能不能防公网扫描 161?snmp-agent acl 2800 是全局 SNMP 访问控制,所有 SNMP 请求匹配 ACLopen/filtered扫描器能看到端口开着,只是发包过去无应答、拿不到 SNMP 信息acl number 3000
rule permit udp source 10.10.10.10 0 destination-port eq 161
rule deny udp destination-port eq 161
interface GigabitEthernet x/x/x
packet-filter 3000 inbound
snmp-agent bind vpn-instance mgmt
snmp-agent community acl 或再加 snmp-agent acl 2800:✅ 能阻止公网设备读取 SNMP 数据❌ 不能防止公网扫描器扫到 161 端口开放(0)
暂无评论
不能。 您当前的 ACL 配置只能限制谁可以访问SNMP 服务(访问控制),但无法隐藏 UDP 161 端口。公网扫描设备依然能发现端口开放状态。
ACL 的工作机制是“先听后拒”:snmp-agent community ... acl 2800 只控制“谁有权限读取数据”。当扫描设备发送请求时,路由器必须先响应(端口是开放的),然后才检查 ACL。对扫描器来说,收到响应就意味着“端口存在”,即使后续因为 ACL 被拒绝,它也已经确认了这个 IP 的 161 端口是开着的。
ACL 配置本身也有隐患:您的 ACL 规则 rule 10 permit vpn-instance mgmt source 10.10.10.10 0 绑定了 vpn-instance mgmt,但实际公网流量不属于该 VPN,因此这条规则实际上没有匹配任何公网源 IP,相当于 ACL 没有生效,任何公网 IP 都能尝试访问。
要彻底隐藏 161 端口,必须从“访问控制”升级为“流量过滤”——在端口响应之前就丢弃探测包。
在连接公网的接口(如 GigabitEthernet0/0)的入方向应用 ACL,明确禁止目的端口为 161 的 UDP 报文。
配置示例:
这样配置后,探测包在进入路由器协议栈之前就会被丢弃,端口对于公网来说就是“彻底消失”的状态。
如果当前不需要通过 SNMP 接收告警,建议关闭 Trap 发送,减少暴露面和日志干扰。
配置完成后,从公网执行以下命令验证:
端口扫描:nmap -p 161 -sU <您的公网IP>,应该显示 closed 或 filtered。
SNMP 查询:snmpwalk -v 2c -c abcd.2026 <公网IP> system,应该超时无响应(而不是返回权限错误)。
立即修改 ACL:建议将 ACL 规则中的 vpn-instance mgmt 去掉,改为 rule 10 permit source 10.10.10.10 0,仅允许内网管理机访问。
整体安全策略:公网设备应遵循最小暴露原则,所有远程管理协议(HTTP/HTTPS/SSH/Telnet)都应通过 ACL 或包过滤限制,避免直接暴露在公网。
(0)
暂无评论
结论:仅配置 snmp-agent acl 2800 无法避免公网扫描到SNMP 161端口,它只起到访问控制作用,扫描器依然能探测到端口开放。想从根源上解决,需要采用接口包过滤(Packet Filter) 方案。
你目前的ACL可能还存在问题:
规则源地址匹配为0:rule 10 permit vpn-instance mgmt source 10.10.10.10 0 匹配的是 10.10.10.10 这一个IP,但这可能是管理网段而非公网,导致规则未生效。根据H3C设计逻辑:引用的ACL下没有规则时,会默认允许所有NMS访问。
缺少IPv6 ACL:snmp-agent community 命令需要同时应用IPv4和IPv6 ACL来分别控制。若未配置,IPv6地址的SNMP端口同样不受保护。
公网接口上未配置入向包过滤:这是最根本的原因。
| 方案 | 原理 | 优缺点 | 推荐度 |
|---|---|---|---|
| 方案一:接口包过滤 | 在公网接口入方向直接丢弃UDP 161的探测包,彻底隐藏端口 | 最彻底,扫描器无法探测;但需在接口上应用ACL,可能略微影响转发性能 | 高(推荐) |
| 方案二:优化SNMP ACL | 只允许授权的管理IP访问SNMP服务 | 不影响接口性能;但无法隐藏端口,扫描器仍会探测到 | 中(备选) |
| 方案三:升级版本+包过滤 | 部分新版本优化了ACL处理机制,结合包过滤效果更佳 | 效果最好,但涉及版本升级 | 低(复杂场景) |
它直接在数据包进入SNMP模块前就进行阻断,扫描器连端口是否存在都无法探测。
创建IPv4 ACL:
创建IPv6 ACL:
应用到公网接口:
修改IPv4 ACL:
创建IPv6 ACL并应用:
(0)
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论