高危端口如何禁用关闭

wen 开源项目 30

本文目录导读:

高危端口如何禁用关闭

  1. Windows 系统关闭高危端口
  2. Linux 系统关闭高危端口(以 CentOS / Ubuntu 为例)
  3. 为何不建议直接“禁用”某些高危服务?
  4. 验证端口是否已成功关闭
  5. 总结建议(重要)

高危端口(如135、137、138、139、445、3389等)是黑客和恶意软件常用的攻击入口,禁用这些端口可以有效提升系统安全性,减少被远程攻击或勒索病毒入侵的风险。

以下是针对 WindowsLinux 系统的详细关闭高危端口的方法。


Windows 系统关闭高危端口

Windows 7/8/10/11/Server 系列均可通过“防火墙”或“高级安全”功能来阻止端口。

方法 1:使用 Windows 防火墙(推荐,最安全、最灵活)

  1. 打开防火墙:
    • 按下 Win + R 键,输入 wf.msc 并回车(或直接点击“控制面板” -> “Windows Defender 防火墙” -> “高级设置”)。
  2. 新建入站规则:
    • 在左侧点击 入站规则,然后在右侧点击 新建规则
  3. 选择规则类型:
    • 选择 端口,然后点击“下一步”。
  4. 指定端口:
    • 选择 TCP(大部分高危端口都是 TCP,如 445,RDP 3389)。
    • 选择 特定本地端口,输入需要关闭的端口号(445,多个端口用逗号隔开,如 135,137,138,139,445,3389)。
    • 点击“下一步”。
  5. 选择操作:
    • 选择 阻止连接,点击“下一步”。
  6. 选择配置文件:
    • 勾选 专用公用(一般全选),确保在任何网络环境下都生效。
    • 点击“下一步”。
  7. 命名规则:
    • 输入一个容易记住的名称,关闭高危端口445
    • 点击“完成”。

方法 2:直接关闭对应服务(例如关闭 445 端口,针对 SMB v1 漏洞)

某些端口由特定系统服务自动开启,以最常见的 445 端口为例:

  1. 打开服务管理器:Win + R,输入 services.msc 回车。
  2. 找到对应服务:
    • 关闭 445 端口:Server 服务。
    • 关闭 135 端口:Remote Procedure Call (RPC) 服务(注意:RPC 是系统核心服务,直接禁用可能影响大量正常功能,一般不推荐直接禁用,建议用防火墙阻止)。
    • 关闭 3389 端口:Remote Desktop Services 服务。
  3. 修改状态:
    • 右键点击该服务 -> 属性
    • 将“启动类型”改为 禁用
    • 点击“停止”按钮(如果正在运行),然后点击“确定”。
    • 警告: 如果误禁用系统关键服务(如 RPC),可能导致系统异常。强烈建议:仅禁用 ServerRemote 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 下最常使用的防火墙工具是 iptablesfirewalld,这里主要讲 iptablesfirewalld

方法 1:使用 firewalld(推荐,CentOS 7+ / RHEL 7+ 默认)

  1. 查看防火墙状态:
    sudo systemctl status firewalld
  2. 永久阻止端口(445):
    # 语法:sudo firewall-cmd --permanent --zone=public --remove-port=端口号/tcp
    sudo firewall-cmd --permanent --zone=public --remove-port=445/tcp
  3. 重新加载配置生效:
    sudo firewall-cmd --reload
  4. 验证端口是否关闭:
    sudo firewall-cmd --zone=public --list-ports

方法 2:使用 iptables(通用,Ubuntu / CentOS 均可)

  1. 阻止入站流量(以 445 为例):

    # 语法:sudo iptables -A INPUT -p tcp --dport 端口号 -j DROP
    sudo iptables -A INPUT -p tcp --dport 445 -j DROP
  2. 阻止 UDP 端口(如 137,138,用于 NetBIOS):

    sudo iptables -A INPUT -p udp --dport 137 -j DROP
    sudo iptables -A INPUT -p udp --dport 138 -j DROP
  3. 保存规则(否则重启后失效):

    • CentOS / RHEL: sudo service iptables save
    • Ubuntu: 先安装 iptables-persistentsudo apt install iptables-persistent,然后用 sudo netfilter-persistent save 保存。

方法 3:使用 ufw(Uncomplicated Firewall,Ubuntu 默认)

  1. 启用防火墙:
    sudo ufw enable
  2. 拒绝端口:
    sudo ufw deny 445
    sudo ufw deny 135

为何不建议直接“禁用”某些高危服务?

虽然理论上直接禁用 Remote Procedure Call (RPC)Server 服务可以关掉端口,但存在两个问题:

  1. 依赖性问题: Windows 的打印机共享、网络发现、DHCP 客户端、DNS 客户端等大量核心功能依赖 RPC 和 SMB,一旦禁用,可能导致:
    • 无法安装某些软件。
    • 系统开机缓慢或报错。
    • 无法正常使用域环境或网络驱动映射。
  2. 风险转移: 禁用系统服务有时会让系统进入不稳定状态,甚至更容易被绕过。相比之下,用防火墙针对特定端口进行拦截,是更标准、副作用最小的做法。

验证端口是否已成功关闭

无论使用哪种方法,关闭后建议用工具扫描测试:

  1. 本地测试(Windows): 打开命令提示符(CMD),输入:

    netstat -ano | findstr :445

    如果端口已关闭,这里应该 看不到任何 LISTENING 状态的记录。

  2. 远程测试(推荐): 使用 Nmap 或在线端口扫描工具(如 yougetsignal.comwhatsmyip.org 的端口扫描器)扫描你的公网IP或内网IP。

    • 内网扫描命令:nmap -p 445 192.168.1.XXX(替换为目标IP)。
    • 如果返回 filteredclosed,代表成功。

总结建议(重要)

  1. 优先用防火墙Windows 防火墙(入站规则 -> 阻止所有端口) > 关闭服务
  2. 重点关注135, 137, 138, 139, 445 这 5 个端口必须关闭(对公网而言);对局域网内部,如果无打印机和文件夹共享需求,也建议关闭。
  3. 谨慎操作 3389:如果需要远程桌面,请勿直接关闭端口。建议
    • 更改监听端口(非标准端口,如 12345)。
    • 设置 网络级别身份验证(NLA)
    • 使用 白名单 IP 过滤(仅允许公司IP连接)。
  4. 定期检查:部分软件(如某些打印机驱动、游戏)更新后可能会自动开启旧端口,建议每月用 netstat -ano 检查一次。

抱歉,评论功能暂时关闭!