Windows服务器上线后,很多管理员习惯直接装好应用就开跑,完全忽略了默认配置下那扇虚掩的大门。默认开放的135、139、445等端口,加上本地Administrator账户无限制的暴力破解尝试,是导致服务器被勒索病毒加密或被植入挖矿木马最直接的两大元凶。安全加固不是玄学,核心动作就是两点:把不需要的端口全部关上,把账户的登录门槛拉到最高。
明确哪些端口必须第一时间关闭
在Windows服务器环境中,网络通信依赖TCP和UDP端口。高危端口通常指那些默认开启且历史上漏洞频发的服务端口。如果你的服务器仅用于提供Web服务,那么除了80(HTTP)和443(HTTPS)以及远程管理的必要端口外,其他所有端口都应视为冗余风险。以下是必须重点排查和关闭的端口清单:135(RPC服务)、137/138(NetBIOS)、139(NetBIOS Session)、445(SMB文件共享)、3389(默认远程桌面,强烈建议修改)、1433(SQL Server数据库)、3306(MySQL数据库)。特别是445端口,臭名昭著的“永恒之蓝”漏洞就是通过它进行攻击的。关闭这些端口,相当于直接切断了蠕虫病毒传播的物理路径。
实战操作:通过本地安全策略封堵端口
很多教程会教你在防火墙入站规则里一条一条建阻止规则,但最高效、最彻底的方式是直接使用“IP安全策略”。这种方法工作在系统内核层,优先级极高,且不依赖Windows防火墙服务的运行状态。具体操作步骤如下:首先,按Win+R键,输入secpol.msc打开“本地安全策略”。接着,右键点击“IP安全策略”,选择“创建IP安全策略”,点击下一步,命名为“封锁高危端口”,取消勾选“激活默认响应规则”。完成后,在属性窗口中取消“使用添加向导”,点击“添加”,在弹出的新规则属性中,点击“IP筛选器列表”旁的“添加”,取消“使用添加向导”。在筛选器属性中,源地址选“任何IP地址”,目标地址选“我的IP地址”,协议选择“TCP”,并在“到此端口”中输入你需要关闭的端口号,比如135。依次为445、139等端口建立独立的筛选器。最后,在“筛选器操作”中,选择“阻止”,并指派该策略。策略一旦指派,这些端口将在网络层被彻底丢弃,连本机都无法通过这些端口进行通信。
修改远程桌面端口,让扫描器找不到入口
3389端口是Windows远程桌面的默认端口,全世界的恶意扫描器都在24小时不间断地扫描这个端口。一旦发现开放,攻击者就会开始尝试弱口令爆破。修改远程桌面端口虽然不能替代强密码,但能有效过滤掉99%的自动化扫描噪音。修改方法是通过注册表。按Win+R输入regedit,定位到路径:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp。找到PortNumber项,点击修改,选择“十进制”,将数值数据从3389改为一个高位端口,例如40089或56321。修改后需要重启服务器或重启Remote Desktop Services服务才能生效。同时,务必在防火墙入站规则中将你新设置的端口号添加允许,否则重启后你将无法远程连接。
账户策略:锁死暴力破解的唯一途径
端口关得再好,如果管理员账户密码是123456,那安全等于零。Windows服务器的账户策略核心在于两点:密码复杂度和账户锁定。在“本地安全策略”中,展开“账户策略”,首先配置“密码策略”。启用“密码必须符合复杂性要求”,设置“最短密码长度”为12位以上。对于生产环境,建议使用16位以上的高熵密码。接着配置“账户锁定策略”,这是防爆破的关键。设置“账户锁定阈值”为5次无效登录,“账户锁定时间”为30分钟,“重置账户锁定计数器”为30分钟。这意味着任何试图通过反复尝试密码登录的攻击者,在5次失败后,账户会被直接锁定半小时。这种机制让离线破解和在线暴力破解的成本变得无限高,攻击者通常会直接放弃这个目标。
禁用默认管理员账户与创建陷阱账户
Administrator是Windows系统中权限最高且无法被锁定的内置账户(默认情况下)。攻击者最喜欢针对这个账户进行密码喷洒攻击。最佳实践是禁用默认的Administrator账户,并创建一个名称无规律的新管理员账户。例如,创建一个名为“svc_backup”或“adm_cloudupdate”的账户,并赋予其管理员权限。这样,攻击者连用户名都需要猜测,大大增加了攻击难度。更进一步,可以创建一个名为“Administrator”的普通用户,并设置极其复杂的随机密码,同时开启对该账户的详细登录审核。一旦监控到有人尝试登录这个假Administrator账户,系统报警,你就能立刻发现入侵行为。
利用防火墙做好最后的出站控制
绝大多数管理员只防入站,不防出站。这是一个致命的思维盲区。假设攻击者通过Web应用漏洞上传了Webshell,这个Webshell要想下载挖矿程序或反弹Shell,必须发起出站连接。如果你严格限制了出站规则,攻击者的恶意载荷就无法落地。在高级安全Windows防火墙中,默认的出站行为是允许。你需要将出站行为改为“阻止”,然后按需添加白名单。例如,仅允许核心服务进程如svchost.exe、dns.exe、以及你的Web服务进程(如w3wp.exe)进行出站连接。对于服务器而言,通常不需要主动向外网发起HTTP请求,除非是去调用特定的API接口。这种白名单机制能有效阻断C2(命令与控制)服务器的通信。
最小权限原则与日志审计
安全不是一次性工作,而是持续的对抗。在完成上述配置后,务必开启审核策略。在“本地安全策略”的“审核策略”中,开启“审核登录事件”和“审核账户管理”的成功与失败记录。这样,所有的登录行为都会被记录在安全日志中。定期查看事件查看器中的安全日志,重点关注事件ID 4625(登录失败)和4740(账户被锁定)。如果短时间内出现大量4625事件,说明有人在爆破你的服务器。结合任务计划程序,可以编写简单的PowerShell脚本,一旦检测到高频登录失败,自动在防火墙中拉黑源IP。此外,对于文件服务器或数据库服务器,严格遵循最小权限原则,Web应用使用的数据库账户只给予增删改查权限,绝对禁止给予sa或root级别的系统管理权限。
服务器的安全防护本质上是一场不对等的战争,防守方要堵住所有漏洞,而攻击者只需要找到一个突破口。通过关闭高危端口切断横向移动的路径,通过强密码和锁定策略守住身份认证的大门,再辅以出站控制和日志监控,你的Windows服务器就已经具备了抵御绝大多数自动化攻击和脚本小子的能力。安全无小事,今天的偷懒就是明天的头条事故。
