本文目录导读:

关闭高危端口是提升系统安全性的重要步骤,具体操作方法取决于你的操作系统,以下是针对 Windows 和 Linux 系统的详细指南。
注意:在操作前,请确认这些端口确实未被业务系统使用,否则关闭可能导致服务中断。
Windows 系统
方法1:使用 Windows 防火墙(最推荐,安全无侵入)
- 打开防火墙:按下
Win + R,输入wf.msc并回车。 - 新建入站规则:
- 在左侧栏点击 “入站规则”,然后在右侧点击 “新建规则”。
- 规则类型:选择 “端口” -> 下一步。
- 协议和端口:选择 “TCP”(高危端口通常是TCP),勾选 “特定本地端口”,输入端口号(如
3389),如果有多个,用逗号分隔(如3389, 445, 23)。 - 操作:选择 “阻止连接” -> 下一步。
- 配置文件:全选(域、专用、公用)-> 下一步。
- 名称:输入一个易识别的名称(如“关闭高危端口3389”),点击 完成。
- 同样操作:如果需要关闭UDP端口(如139、445也使用UDP),再为UDP建立一条相同的规则。
方法2:通过命令行(CMD/PowerShell 管理员模式)
- 开启/关闭端口:
- 阻止TCP 3389端口:
netsh advfirewall firewall add rule name="Block RDP" dir=in action=block protocol=TCP localport=3389
- 阻止UDP 445端口:
netsh advfirewall firewall add rule name="Block SMB" dir=in action=block protocol=UDP localport=445
- 阻止TCP 3389端口:
- 删除规则(如果误操作):
netsh advfirewall firewall delete rule name="Block RDP"
方法3:修改服务配置(针对特定服务)
某些高危端口对应特定服务,关闭服务更彻底(但需谨慎):
- 端口 3389 (RDP):在“服务”管理器(
services.msc)中,找到 Remote Desktop Services,右键 -> 属性 -> 启动类型选择 “禁用”。 - 端口 445 (SMB):可以禁用 Server 服务,但这会影响文件共享,更安全的方法是使用防火墙阻止。
Linux 系统 (如 CentOS / Ubuntu / Debian)
方法1:使用 iptables (经典防火墙)
- 阻止特定端口入站(例如拒绝TCP 22端口以外的访问):
# 阻止所有来源访问 TCP 23 (Telnet)、135 (RPC)、445 (SMB) 等 sudo iptables -A INPUT -p tcp --dport 23 -j DROP sudo iptables -A INPUT -p tcp --dport 135 -j DROP sudo iptables -A INPUT -p tcp --dport 445 -j DROP
- 保存规则(防止重启失效):
- CentOS/RHEL 7+:
sudo service iptables save或sudo /sbin/service iptables save - Ubuntu/Debian:
sudo netfilter-persistent save(确保已安装iptables-persistent)
- CentOS/RHEL 7+:
方法2:使用 firewalld (CentOS 7/8, RHEL 7+ 默认)
- 永久移除端口(例如关闭端口 3389):
sudo firewall-cmd --permanent --remove-port=3389/tcp
- 添加富规则阻止(更精确):
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="3389" protocol="tcp" reject'
- 重新加载防火墙:
sudo firewall-cmd --reload
- 验证:
sudo firewall-cmd --list-all
方法3:修改服务配置 (通用)
- SSH (22端口):编辑
/etc/ssh/sshd_config,修改或添加一行Port 22为其他端口(如Port 2222),然后重启服务:sudo systemctl restart sshd
- 禁止特定服务开机自启:
sudo systemctl disable service-name # sudo systemctl disable telnet.socket sudo systemctl stop service-name
常用高危端口速查表
| 端口 | 服务/协议 | 风险说明 | 关闭方法(Windows 防火墙规则) |
|---|---|---|---|
| 23 | Telnet | 明文传输,极易被嗅探 | 阻止 TCP 23 |
| 135 | RPC | 常被用于 DCOM 攻击 | 阻止 TCP+UDP 135 |
| 137/138/139 | NetBIOS | 文件共享、远程调用漏洞 | 阻止 UDP 137/138, TCP 139 |
| 445 | SMB | WannaCry、永恒之蓝漏洞 | 阻止 TCP+UDP 445 |
| 3389 | RDP | 远程桌面暴力破解 | 阻止 TCP 3389 |
| 5900 | VNC | 远程控制,弱口令风险 | 阻止 TCP 5900 |
| 3306 | MySQL | 数据库直连,暴露风险 | 阻止 TCP 3306 (非本地时) |
| 6379 | Redis | 未授权访问,写入木马 | 阻止 TCP 6379 (非本地时) |
重要提醒
- 先扫描后关闭:使用
netstat -ano(Windows) 或ss -tlnp(Linux) 查看当前系统正在监听的端口。不要盲目关闭业务正在使用的端口。 - 关闭不等于物理隔离:如果服务器直接暴露在公网,应优先配合云平台/硬件防火墙设置安全组策略,限制来源IP(白名单)。
- 替换而非关闭:对于必须使用的远程管理端口(如22、3389),建议:
- 改用非标准端口(如将22改为10022)。
- 启用密钥登录(Linux)或网络级别身份验证(Windows RDP)。
- 限制来源IP(仅允许公司出口IP访问)。
- 云服务器特别注意:腾讯云、阿里云、AWS 等云服务商,直接在控制台的安全组/防火墙策略中拒绝相关端口入站,比在系统内部防火墙操作更安全且便于管理。
如何检测是否已成功关闭?
- 本机验证:
- Windows:
netstat -ano | findstr :端口号(如netstat -ano | findstr :3389)——如果无监听,或防火墙规则生效。 - Linux:
ss -tlnp | grep 端口号或netstat -tlnp | grep 端口号。
- Windows:
- 外部透视:使用在线端口扫描网站(如
yougetsignal.com、whatsmyip.org/port-scanner)或者本地nmap工具扫描公网IP。- 如果能扫到,说明云安全组/物理防火墙未过滤,需从外部防御;如果显示
filtered或closed,则说明已成功封锁。
- 如果能扫到,说明云安全组/物理防火墙未过滤,需从外部防御;如果显示
最佳实践是:
- 操作系统防火墙 + 云平台安全组双重保险。
- 禁用不需要的服务(如Telnet、SMB v1、不必要的远程桌面)。
- 定期审计系统监听端口。
如果你对某个具体端口(如3389、445)的关闭或替换有疑问,可以告诉我你的系统版本和具体业务场景,我可以给出更针对性的建议。
标签: 安全配置建议
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。