本文目录导读:

高危端口(如135、137、138、139、445、3389等)是黑客和恶意软件常用的攻击入口,禁用这些端口可以有效提升系统安全性,减少被远程攻击或勒索病毒入侵的风险。
以下是针对 Windows 和 Linux 系统的详细关闭高危端口的方法。
Windows 系统关闭高危端口
Windows 7/8/10/11/Server 系列均可通过“防火墙”或“高级安全”功能来阻止端口。
方法 1:使用 Windows 防火墙(推荐,最安全、最灵活)
- 打开防火墙:
- 按下
Win + R键,输入wf.msc并回车(或直接点击“控制面板” -> “Windows Defender 防火墙” -> “高级设置”)。
- 按下
- 新建入站规则:
- 在左侧点击 入站规则,然后在右侧点击 新建规则。
- 选择规则类型:
- 选择 端口,然后点击“下一步”。
- 指定端口:
- 选择 TCP(大部分高危端口都是 TCP,如 445,RDP 3389)。
- 选择 特定本地端口,输入需要关闭的端口号(
445,多个端口用逗号隔开,如135,137,138,139,445,3389)。 - 点击“下一步”。
- 选择操作:
- 选择 阻止连接,点击“下一步”。
- 选择配置文件:
- 勾选 域、专用、公用(一般全选),确保在任何网络环境下都生效。
- 点击“下一步”。
- 命名规则:
- 输入一个容易记住的名称,
关闭高危端口445。 - 点击“完成”。
- 输入一个容易记住的名称,
方法 2:直接关闭对应服务(例如关闭 445 端口,针对 SMB v1 漏洞)
某些端口由特定系统服务自动开启,以最常见的 445 端口为例:
- 打开服务管理器: 按
Win + R,输入services.msc回车。 - 找到对应服务:
- 关闭 445 端口: 找
Server服务。 - 关闭 135 端口: 找
Remote Procedure Call (RPC)服务(注意:RPC 是系统核心服务,直接禁用可能影响大量正常功能,一般不推荐直接禁用,建议用防火墙阻止)。 - 关闭 3389 端口: 找
Remote Desktop Services服务。
- 关闭 445 端口: 找
- 修改状态:
- 右键点击该服务 -> 属性。
- 将“启动类型”改为 禁用。
- 点击“停止”按钮(如果正在运行),然后点击“确定”。
- 警告: 如果误禁用系统关键服务(如 RPC),可能导致系统异常。强烈建议:仅禁用
Server和Remote Desktop服务来关闭 445 和 3389,其他端口用防火墙处理。
需要重点关注的高危端口列表
| 端口号 | 对应服务/用途 | 关闭原因 |
|---|---|---|
| 135 | RPC 服务 | EternalBlue 等漏洞常利用此端口。 |
| 137/138/139 | NetBIOS | 常用于局域网文件共享和远程攻击。 |
| 445 | SMB | WannaCry、勒索病毒等最喜欢的目标。 |
| 3389 | 远程桌面 (RDP) | 常被暴力破解或蓝屏漏洞利用。 |
| 23 | Telnet | 明文传输,极易被窃听。 |
| 21 | FTP | 明文传输,建议用 SFTP 替代,或限制 IP。 |
| 53 | DNS | 主要关闭对外部的 UDP 53 递归查询,容易遭 DNS 放大攻击。 |
Linux 系统关闭高危端口(以 CentOS / Ubuntu 为例)
Linux 下最常使用的防火墙工具是 iptables 或 firewalld,这里主要讲 iptables 和 firewalld。
方法 1:使用 firewalld(推荐,CentOS 7+ / RHEL 7+ 默认)
- 查看防火墙状态:
sudo systemctl status firewalld
- 永久阻止端口(445):
# 语法:sudo firewall-cmd --permanent --zone=public --remove-port=端口号/tcp sudo firewall-cmd --permanent --zone=public --remove-port=445/tcp
- 重新加载配置生效:
sudo firewall-cmd --reload
- 验证端口是否关闭:
sudo firewall-cmd --zone=public --list-ports
方法 2:使用 iptables(通用,Ubuntu / CentOS 均可)
-
阻止入站流量(以 445 为例):
# 语法:sudo iptables -A INPUT -p tcp --dport 端口号 -j DROP sudo iptables -A INPUT -p tcp --dport 445 -j DROP
-
阻止 UDP 端口(如 137,138,用于 NetBIOS):
sudo iptables -A INPUT -p udp --dport 137 -j DROP sudo iptables -A INPUT -p udp --dport 138 -j DROP
-
保存规则(否则重启后失效):
- CentOS / RHEL:
sudo service iptables save - Ubuntu: 先安装
iptables-persistent:sudo apt install iptables-persistent,然后用sudo netfilter-persistent save保存。
- CentOS / RHEL:
方法 3:使用 ufw(Uncomplicated Firewall,Ubuntu 默认)
- 启用防火墙:
sudo ufw enable
- 拒绝端口:
sudo ufw deny 445 sudo ufw deny 135
为何不建议直接“禁用”某些高危服务?
虽然理论上直接禁用 Remote Procedure Call (RPC) 或 Server 服务可以关掉端口,但存在两个问题:
- 依赖性问题: Windows 的打印机共享、网络发现、DHCP 客户端、DNS 客户端等大量核心功能依赖 RPC 和 SMB,一旦禁用,可能导致:
- 无法安装某些软件。
- 系统开机缓慢或报错。
- 无法正常使用域环境或网络驱动映射。
- 风险转移: 禁用系统服务有时会让系统进入不稳定状态,甚至更容易被绕过。相比之下,用防火墙针对特定端口进行拦截,是更标准、副作用最小的做法。
验证端口是否已成功关闭
无论使用哪种方法,关闭后建议用工具扫描测试:
-
本地测试(Windows): 打开命令提示符(CMD),输入:
netstat -ano | findstr :445
如果端口已关闭,这里应该 看不到任何 LISTENING 状态的记录。
-
远程测试(推荐): 使用 Nmap 或在线端口扫描工具(如
yougetsignal.com或whatsmyip.org的端口扫描器)扫描你的公网IP或内网IP。- 内网扫描命令:
nmap -p 445 192.168.1.XXX(替换为目标IP)。 - 如果返回
filtered或closed,代表成功。
- 内网扫描命令:
总结建议(重要)
- 优先用防火墙:
Windows 防火墙(入站规则 -> 阻止所有端口)>关闭服务。 - 重点关注:135, 137, 138, 139, 445 这 5 个端口必须关闭(对公网而言);对局域网内部,如果无打印机和文件夹共享需求,也建议关闭。
- 谨慎操作 3389:如果需要远程桌面,请勿直接关闭端口。建议:
- 更改监听端口(非标准端口,如 12345)。
- 设置 网络级别身份验证(NLA)。
- 使用 白名单 IP 过滤(仅允许公司IP连接)。
- 定期检查:部分软件(如某些打印机驱动、游戏)更新后可能会自动开启旧端口,建议每月用
netstat -ano检查一次。