Windows服务器安全加固:用批处理脚本一键关闭135、445、3389等常见高危端口(附完整脚本)
Windows服务器安全加固实战一键批处理脚本关闭高危端口刚部署完Windows Server的运维人员往往面临一个棘手问题——如何快速关闭那些容易被黑客利用的高危端口手动操作不仅耗时费力还容易遗漏关键步骤。本文将分享一个经过实战检验的批处理脚本解决方案帮助你在30秒内完成135、445、3389等端口的自动化关闭。1. 为什么需要关闭这些高危端口每次部署新服务器时安全加固都是首要任务。Windows系统默认开放的某些端口就像敞开的门窗给攻击者提供了可乘之机。让我们看看这些端口为何如此危险135端口RPC服务端口历史上多次成为蠕虫病毒如冲击波的攻击目标445端口SMB协议端口WannaCry勒索软件就是通过这个端口传播3389端口远程桌面协议(RDP)端口暴力破解的高频目标137-139端口NetBIOS相关端口可能泄露系统信息去年某中型企业的数据库服务器被入侵事后分析发现攻击者正是通过未关闭的445端口植入恶意软件。这种案例在中小企业中屡见不鲜而预防措施其实很简单。2. 批处理脚本 vs 图形界面效率对决手动通过Windows防火墙关闭端口需要至少15个步骤打开高级安全Windows防火墙选择入站规则点击新建规则选择端口选项指定TCP协议输入单个端口号选择阻止连接配置应用场景命名规则对每个端口重复上述操作相比之下批处理脚本只需双击运行整个过程不到30秒。更重要的是脚本可以确保配置的一致性避免人为疏忽。echo off title Windows服务器高危端口关闭工具 echo 正在创建IP安全策略... :: 创建IPSec策略 netsh ipsec static add policy namePortBlockPolicy netsh ipsec static add filterlist nameBlockedPorts :: 添加TCP端口过滤规则 for %%p in (135,136,137,138,139,445,3389,1444) do ( netsh ipsec static add filter filterlistBlockedPorts srcaddrany dstaddrme dstport%%p protocolTCP ) :: 添加UDP端口过滤规则 for %%p in (135,136,137,138,139,445,3389,1444) do ( netsh ipsec static add filter filterlistBlockedPorts srcaddrany dstaddrme dstport%%p protocolUDP ) :: 应用阻止动作 netsh ipsec static add filteraction nameBlockAction actionblock netsh ipsec static add rule nameBlockRule policyPortBlockPolicy filterlistBlockedPorts filteractionBlockAction netsh ipsec static set policy namePortBlockPolicy assigny echo 高危端口已成功关闭 echo 按任意键退出... pause nul3. 脚本深度解析与自定义指南这个脚本的核心是Windows内置的netsh ipsec命令它比单纯使用防火墙规则更底层提供了更强的控制能力。让我们拆解关键部分3.1 策略创建与分配netsh ipsec static add policy namePortBlockPolicy这行代码创建了一个名为PortBlockPolicy的IP安全策略。IPSec策略是Windows网络安全的基石可以定义复杂的通信规则。3.2 端口过滤列表netsh ipsec static add filterlist nameBlockedPorts我们创建了一个过滤器列表用于集中管理所有要阻止的端口规则。这种模块化设计使得后期维护更加方便。3.3 自定义端口列表脚本中使用了for循环来批量处理端口号这种设计使得自定义变得非常简单。如需添加或删除端口只需修改这一行for %%p in (135,136,137,138,139,445,3389,1444) do (例如要增加对23(Telnet)和21(FTP)端口的防护for %%p in (21,23,135,136,137,138,139,445,3389,1444) do (4. 高级应用场景与注意事项在实际生产环境中这个基础脚本还可以进一步优化4.1 白名单模式对于需要严格控制的服务器可以修改脚本实现默认拒绝按需允许的白名单模式:: 只允许特定IP访问3389端口 netsh ipsec static add filter filterlistAllowedRDP srcaddr192.168.1.100 dstaddrme dstport3389 protocolTCP netsh ipsec static add filteraction namePermitAction actionpermit netsh ipsec static add rule nameAllowRDP policyPortBlockPolicy filterlistAllowedRDP filteractionPermitAction4.2 日志记录增强添加日志记录功能便于事后审计:: 启用IPSec日志 netsh ipsec static set config propertyipsecdiagnostics value7 netsh ipsec static set config propertyipsecloglevel value74.3 重要注意事项执行脚本前请确保已建立其他管理通道如带外管理避免锁定自己 生产环境建议先在测试服务器验证脚本效果 定期检查策略是否生效可使用netsh ipsec static show all命令5. 自动化部署方案对于拥有多台服务器的环境可以通过以下方式批量部署方案一组策略部署将脚本保存为secure_ports.bat在组策略管理器中创建新策略配置计算机配置→策略→Windows设置→脚本(启动/关机)添加启动脚本方案二PowerShell远程执行$servers server1,server2,server3 foreach ($server in $servers) { Copy-Item .\secure_ports.bat \\$server\c$\scripts\ Invoke-Command -ComputerName $server -ScriptBlock { Start-Process cmd.exe -ArgumentList /c c:\scripts\secure_ports.bat } }方案对比表方案适用场景优点缺点组策略域环境集中管理自动应用需要域控制器PowerShell少量服务器灵活无需域需手动维护服务器列表手动运行单台服务器简单直接不适用于批量操作在最近为某客户部署的50台服务器环境中我们采用组策略方案仅用2小时就完成了全部服务器的端口加固效率是手动操作的30倍以上。