本文目录导读:

抵御网络扫描探测是一项系统性的工作,需要从网络架构、主机防护、安全配置、主动监控等多个维度入手,没有单一方法能一劳永逸,需要构建纵深防御体系。
以下是具体且可操作的防御策略:
核心原则:减少暴露面与增加探测成本
网络扫描的本质是攻击者通过发送数据包,探测你网络上存活的主机、开放的服务端口、以及运行的操作系统和版本。
你的目标不是让扫描完全消失(这几乎不可能),而是:
- 让扫描不容易发现有效信息。
- 增加扫描的难度和时间成本。
- 在扫描发生时能及时发现并阻断。
具体防御措施(从外部到内部)
网络边界防御:第一道防线
-
严格管理防火墙规则(最关键)
- 默认拒绝策略: 防火墙策略应遵循“默认拒绝所有入站流量,只放行明确需要的规则”,不要使用“默认允许,再拒绝一些”的宽松策略。
- 最小化开放端口: 仅开放业务必须的端口(如Web服务器的80/443,邮件服务器的25/110/143/587/993/995等),关闭所有无关端口(如SSH 22、RDP 3389、MySQL 3306、Telnet 23等),除非绝对必要,且应限制源IP。
- 基于源IP的访问控制: 对于管理端口(如SSH、RDP、数据库),务必仅允许特定的、受信任的IP地址或IP段访问,使用公司VPN、堡垒机或安全访问服务边缘(SASE)进行管理,而不是直接暴露在公网。
- 地理限制: 如果你的业务只在一个国家或地区,可以在防火墙上配置规则,拒绝来自其他无关国家IP的访问,这能有效过滤大量来自全球的自动化扫描。
-
使用入侵防御系统(IPS)
部署IPS设备或云WAF(Web应用防火墙)的IPS模块,它们能识别恶意扫描流量(如端口扫描、漏洞扫描特征),并实时丢弃或阻断这些数据包。
-
部署DDoS防护与CDN(内容分发网络)
- CDN: 将Web服务放在CDN后面,用户的请求先到CDN节点,CDN通过反向代理转发给真实源站,这使得攻击者很难直接探测到你源服务器的真实IP和端口。
- DDoS防护: 高防IP或Anti-DDoS服务能清洗掉扫描器和大规模探测流量。
主机与系统加固:第二道防线
-
禁用非必要服务
在每个服务器上,只运行业务所需的守护进程,关闭像FTP、Telnet、SNMP(除非必要且安全配置)、RPC等服务。
-
修改默认端口与配置
- SSH: 将默认的22端口改为一个高位端口(如2222、10022),增加攻击者的扫描时间,同时禁用root直接登录,使用密钥认证。
- 数据库: 修改数据库默认端口,并绑定到内网IP(127.0.0.1或内网地址),禁止公网访问。
- Web应用: 隐藏或修改Web服务器默认的响应头信息(如Apache、Nginx版本号)。
-
及时打补丁
系统漏洞和应用的已知漏洞是扫描器的主要目标,建立严格的漏洞管理流程,及时安装安全更新。
主动混淆与干扰:增加扫描代价
-
主动响应伪装/错误信息(误导探测)
- 端口无效化: 可以使用工具(如
knockd,端口敲门)对端口进行“动态”保护,用户必须先发起特定序列的连接,才能触发防火墙临时打开某个端口,扫描器无法完成敲门序列,看到的都是关闭状态。 - 伪服务 / 蜜罐: 在服务器上部署一个假的、看起来像真实服务的“蜜罐”服务,扫描器会花时间探测这个假服务,触发告警,并可能拖慢其扫描速度。
honeyd或faker等轻量蜜罐。 - 返回虚假SYN/ACK: 某些防御方案(如端口扰动技术)会针对来自可疑IP的探测,主动返回错误或虚假的端口状态信息,混淆攻击者的扫描结果。
- 端口无效化: 可以使用工具(如
-
限制连接速率(流量整形)
- 在防火墙或IPS上配置速率限制,限制单个源IP在单位时间内允许的连接数和包数,超过阈值则暂时丢弃或延迟响应,这会使端口扫描变得非常缓慢,甚至导致扫描工具超时。
-
使用端口敲门(Port Knocking)
如前述,用户必须按正确顺序、从多个端口连续“敲门”,才能触发防火墙临时开放目标端口,这在管理后台的场景下非常有效。
安全检测与监控:及时发现与响应
-
日志监控与分析
收集防火墙、IPS、服务器日志,配置SIEM(安全信息与事件管理)系统,关联分析异常流量模式(如短时间内大量来自同一IP的连接尝试),设定告警规则,“在5分钟内,来自同一IP的连接失败超过100次”。
-
部署入侵检测系统(IDS)
在内部网络监控流量,通过签名匹配和行为分析,检测扫描行为(如Nmap、Nessus的常见特征),一旦发现扫描,自动触发告警并纳入调查。
-
实施威胁情报
- 定期更新已知恶意IP地址、僵尸网络IP、扫描器IP等威胁情报库,在防火墙上直接阻断这些IP的访问。
一个典型的防御配置示例(针对中小型公司)
假设你有一个Web服务器(80/443端口)和一个SSH管理端口(22端口,改为2222)。
推荐配置:
- 前端: Web服务使用CDN(如Cloudflare、腾讯CDN),隐藏源IP。
- 防火墙(云上安全组或硬件):
- 入站规则:
- 允许用于CDN的IP段通过80/443到Web服务器。
- 允许你自己公司的办公出口IP(而不是任何IP)通过2222端口到SSH服务器。(注意:办公IP可能变化,也建议通过VPN接入管理)
- 拒绝所有其他入站流量(包括ICMP(Ping))。
- 入站规则:
- 主机(云服务器):
- 禁用防火墙。
- 在系统层面启用iptables或ufw(简单防火墙),放行来自CDNIP和办公IP,拒绝其他一切。
- 使用密钥+口令双重认证登录SSH。
- 安装并启用
fail2ban(失败登录阻断),监控SSH和Web服务的失败登录/扫描,并自动临时封禁IP。 - 安装并配置轻量级IDS,如
ossec或snort(简易版)。
- 监控:
使用云平台的云监控或自建ELK(Elasticsearch, Logstash, Kibana,Elastic公司旗下产品) / Grafana LOKI(一种日志聚合系统) 分析防火墙/服务器日志,设置一个告警:当尝试SSH爆破或同步连接(SYN Flood)次数超过10次/分钟时,发送警报。
常见误区与建议
-
❌ 误区:认为使用动态DNS或隐藏IP就安全了。
隐蔽性只能延缓,但持续且有针对性的扫描依旧能发现你。
-
❌ 误区:认为更新了所有软件就万无一失。
更新补丁能解决已知漏洞,但0-day漏洞或配置漏洞、逻辑漏洞依然存在。
-
✅ 核心建议:
- 持续学习与改进: 安全是动态过程,定期进行内部渗透测试(或模拟扫描),验证防御措施的有效性。
- 关注应用层安全: 扫描主要针对网络层,更严重的安全问题往往来自应用层(如SQL注入、XSS跨站脚本攻击、SSRF服务端请求伪造),它们可能绕过网络扫描防御,务必对Web应用进行严格的安全编码和代码审计。
- 利用云原生能力: 如果你使用云服务(如AWS、阿里云、腾讯云、华为云),充分利用其提供的安全组(相当于软件防火墙)、WAF、DDoS高防、云安全中心等原生服务,通常集成度较高,配置相对简单。
理想的抵御策略应该是防御前移(CDN、WAF)、强边界控制(防火墙、最小权限)、主机加固(补丁、配置)、主动混淆(诱饵、速率限制)、实时监控(日志、告警) 的组合,这样做之后,大部分自动化扫描都会被过滤掉,少数有目的的扫描也会因为成本太高或难以获取有效信息而放弃。