news 2026/4/21 14:32:53

一键加固——BAT脚本批量封堵Windows高危端口实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一键加固——BAT脚本批量封堵Windows高危端口实战

1. 为什么需要批量关闭Windows高危端口

每次看到新闻里报道某公司因为系统漏洞被黑客入侵,数据泄露造成重大损失,我都会下意识检查自己电脑的端口开放情况。你可能不知道,Windows系统默认开放的一些端口,比如135、139、445这些,简直就是给黑客开的"后门"。去年有个朋友的公司内网中了勒索病毒,溯源发现就是通过445端口进来的。

手动关闭这些端口也不是不行,但操作起来特别麻烦。首先得记住一长串命令,然后逐个执行,稍不留神就可能输错参数。更头疼的是,每次重装系统或者换电脑,又得重新来一遍。这就是为什么我们需要一个一键加固的解决方案——把复杂的操作打包成BAT脚本,点一下就能自动完成所有高危端口的封堵。

2. BAT脚本工作原理详解

2.1 认识netsh ipsec命令

这个脚本的核心是Windows自带的netsh ipsec命令组,它就像系统的网络保镖。我刚开始接触时也觉得这些命令很神秘,后来拆解后发现其实逻辑很清晰:

  • add policy创建安全策略(相当于建立一个新的安保方案)
  • add filterlist创建过滤列表(相当于列出需要检查的证件类型)
  • add filter添加具体规则(相当于说"持XX证件的一律不放行")
  • add filteraction定义处理动作(抓到可疑分子后是"劝返"还是"拘留")
  • add rule把所有设置打包成一条完整规则

2.2 脚本逐行解析

让我们拆解原始脚本的关键部分:

netsh ipsec static add policy name=qianye

这行创建了一个名为"qianye"的安全策略,相当于新建了一个安保方案。名字可以自定义,我习惯用"PortBlocker"这样见名知意的标识。

netsh ipsec static add filterlist name=Filter1

建立名为Filter1的过滤列表,后续所有端口规则都会放在这个列表里。就像安检时先把所有禁止携带的物品清单列出来。

netsh ipsec static add filter filterlist=Filter1 srcaddr=any dstaddr=me dstport=135 protocol=TCP

这是最核心的过滤规则,意思是:对任何来源IP(srcaddr=any),访问本机(dstaddr=me)135端口的TCP请求,全部拦截。dstport参数就是我们要封堵的端口号。

3. 增强版脚本实战

3.1 基础脚本优化

原始脚本已经能用,但经过多次实践我做了这些改进:

  1. 增加状态提示:在每个端口关闭操作前添加echo提示,执行过程一目了然
  2. 错误处理:用if errorlevel检查命令是否执行成功
  3. 日志记录:关键操作结果重定向到日志文件

改进后的脚本片段:

echo [%time%] 开始执行端口加固 >> port_block.log netsh ipsec static add policy name=SecurePorts if %errorlevel% neq 0 ( echo 策略创建失败!请检查权限 >> port_block.log exit /b 1 )

3.2 支持自定义端口列表

不同环境需要关闭的端口可能不同,我增加了从配置文件读取的功能:

  1. 新建ports.txt配置文件:
# 需要关闭的端口列表 135,TCP 135,UDP 445,TCP 3389,TCP
  1. 脚本自动读取并处理:
for /f "tokens=1,2 delims=," %%i in (ports.txt) do ( if not "%%i"=="#" ( echo 正在关闭 %%i/%%j 端口... netsh ipsec static add filter filterlist=Filter1 dstport=%%i protocol=%%j ) )

4. 部署与验证指南

4.1 脚本执行方法

很多新手第一次运行BAT脚本时会遇到问题,这里强调几个关键点:

  1. 管理员权限:右键选择"以管理员身份运行"
  2. 执行目录:脚本和ports.txt要放在同一目录
  3. 防病毒软件:部分安全软件会拦截,需要临时禁用

实测发现,在Windows 10/11和Server 2016+上运行最稳定。有次在Server 2008上执行时报错,后来发现需要先安装IPSec服务。

4.2 效果验证技巧

执行完脚本别急着关窗口,我教你几种验证方法:

  1. 本地测试
telnet 127.0.0.1 445

如果显示"无法打开连接"说明端口已关闭

  1. 网络扫描: 使用Advanced Port Scanner等工具从另一台电脑扫描

  2. 策略检查

netsh ipsec static show all

这个命令会列出所有IPSec策略,确认我们的规则已生效

5. 常见问题排查

5.1 脚本执行报错处理

有读者反馈执行时报"参数错误",通常是这些原因:

  1. 策略已存在:先用delete policy删除旧策略
  2. 端口格式错误:检查ports.txt中是否有空行或错误协议类型
  3. 特殊端口限制:如80端口需要先停止IIS服务

我的调试建议是:

  • 在脚本开头加@echo on显示详细执行过程
  • 每步操作后添加timeout /t 2给系统处理时间

5.2 与其他防火墙的冲突

如果同时使用第三方防火墙(如360、火绒),可能会遇到:

  1. 规则被覆盖:在防火墙设置中将我们的策略设为最高优先级
  2. 端口仍可访问:暂时关闭其他防火墙测试是否是冲突导致
  3. 网络异常:某些VPN软件会修改IPSec规则,需要调整配置

遇到最棘手的情况是某次在域控服务器上执行后,域认证出现问题。后来发现是封堵了Kerberos用的88端口,所以提醒大家修改前一定要确认端口用途。

6. 进阶应用场景

6.1 域环境批量部署

在企业环境中,可以通过组策略批量下发这个脚本。具体步骤:

  1. 将脚本保存到网络共享目录
  2. 创建GPO策略,在"计算机配置→策略→Windows设置→脚本"中添加启动脚本
  3. 设置适当的权限和网络访问控制

注意要先在测试环境验证,有次我直接在生产环境部署导致大量打印机连接中断,就是因为没考虑打印机服务器使用的端口。

6.2 定期自动更新

安全不是一劳永逸的,我建立了这样的维护机制:

  1. 每周自动从内网服务器下载最新的ports.txt
  2. 通过任务计划程序设置每月1号凌晨执行更新
  3. 脚本开头先删除旧策略再创建新的

对应的任务计划创建命令:

schtasks /create /tn "PortUpdate" /tr "C:\Scripts\port_block.bat" /sc monthly /d 1 /st 03:00

7. 安全注意事项

虽然这个脚本很实用,但也要注意:

  1. 不要盲目关闭所有端口:先确认业务需求,比如远程办公可能需要保留3389
  2. 备份原始配置:执行前运行netsh ipsec static exportpolicy C:\bak.ipsec
  3. 网络设备配合:在路由器/防火墙上也做相应限制,实现纵深防御

有次我关闭了某台服务器的135-139端口后,文件共享功能完全失效。后来才知道这些端口是NetBIOS必需的,所以现在执行前都会先用netstat -ano查看实际使用的端口。

8. 脚本优化方向

经过多个项目的实践,我总结出这些优化思路:

  1. 图形化界面:用PowerShell封装成带进度条的窗口程序
  2. 端口例外机制:支持白名单配置,如允许特定IP访问3389
  3. 状态监控:实时显示被封端口的访问尝试记录
  4. 邮件通知:当检测到异常访问时自动发送告警

一个典型的白名单添加示例:

netsh ipsec static add filter filterlist=Filter1 srcaddr=192.168.1.100 dstaddr=me dstport=3389 protocol=TCP mirrored=yes

这样192.168.1.100这台管理机就能正常使用远程桌面了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 14:26:20

互联网大厂 Java 面试中的微服务与 AI 应用探索

# 面试大厂 Java 开发:燕双非的幽默与科技的严肃 ## 文章简述 在这一篇幽默而又充满技术干货的文章中,我们跟随程序员燕双非的足迹,深入探讨在一家互联网大厂的 Java 面试过程。面试官的严肃提问与燕双非形象的幽默回答形成鲜明对比&#…

作者头像 李华
网站建设 2026/4/21 14:24:17

解密WeChatPad:如何通过设备伪装技术实现微信多设备协同

解密WeChatPad:如何通过设备伪装技术实现微信多设备协同 【免费下载链接】WeChatPad 强制使用微信平板模式 项目地址: https://gitcode.com/gh_mirrors/we/WeChatPad 在移动办公和家庭设备共享日益普及的今天,微信的单设备登录限制成为了许多用户…

作者头像 李华