上周帮朋友排查服务器,何关发现他的闭高数据库被勒索病毒加密了。日志显示攻击者从445端口进来的危漏,用的洞端正是永恒之蓝漏洞。这让我想起一个老生常谈却总被忽视的何关问题——高危端口不关,等于把家门钥匙挂在门框上。闭高
先说说哪些端口最危险。危漏445端口专供SMB文件共享,洞端Windows系统默认开放,何关勒索软件最爱钻这个空子。闭高3389是危漏远程桌面端口,黑客拿到弱口令就能直接登录你的洞端电脑。还有23端口的何关Telnet,明文传输密码,闭高抓包工具一抓一个准。危漏这三个端口,能关就关,能改就改。
关闭445端口,最彻底的办法是在防火墙里加规则。Windows系统打开"高级安全Windows Defender防火墙",新建入站规则,选择"端口",协议选TCP,特定本地端口填445,操作选"阻止连接"。规则命名别偷懒,写清楚"Block SMB 445",不然三个月后你看着一堆规则根本分不清哪个是哪个。Linux服务器更简单,iptables一行命令:iptables -A INPUT -p tcp --dport 445 -j DROP,保存规则后重启防火墙服务就生效。
3389端口的情况有点特殊。如果你确实需要远程桌面,直接关闭会影响工作。我的建议是改端口号。打开注册表编辑器,定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp,找到PortNumber,改成十进制,填个五位数比如23389。改完重启系统,以后连接时在IP后面加上:23389。这招能避开绝大多数扫描器的自动探测,因为黑客脚本默认只扫3389。
23端口的Telnet基本可以退役了。现在SSH这么成熟,加密传输还支持密钥认证,实在想不通为什么还有人用Telnet。关闭方法看设备类型,Windows在"服务"里找到Telnet服务,禁用即可;Linux执行systemctl stop telnet.socket,然后永久禁用。如果网络设备必须用Telnet,至少限制管理IP,用ACL只允许公司出口IP访问。
关完端口别急着收工。用Netstat命令检查一下监听状态:netstat -ano | findstr 445,没输出说明端口确实关了。再找个外网端口扫描工具验证一遍,推荐用Nmap,从另一台机器扫你服务器的端口,看是否显示closed或filtered。这一步很多人偷懒跳过,结果防火墙规则写错,端口照样暴露在外。
还有个容易被忽略的点——Windows的SMB服务本身。就算防火墙关了445端口,如果SMB服务还在运行,某些情况下协议栈仍会响应。保险起见,在"启用或关闭Windows功能"里取消勾选"SMB 1.0/CIFS文件共享支持"。SMB 2.0以上版本相对安全,但SMB 1.0是古董协议,漏洞一堆,必须彻底禁用。
关端口这事,治标不治本。真正的安全是多层次的——补丁打全、账号密码复杂化、网络分段、入侵检测,每样都得做到位。但关闭高危端口是成本最低、见效最快的第一步。你不需要是安全专家,照着操作十分钟就能完成,却能挡住绝大多数自动化攻击。
这次朋友丢的数据,花了两万块找专业公司恢复,还不一定全找回来。他要是早点关掉445,这钱能省下来买台新服务器。安全这件事,永远是预防比补救便宜。









