当前位置:首页 > Linux > 正文

Linux如何轻松禁用端口?一招搞定!

在Linux中禁用端口主要使用防火墙工具:通过iptables/nftables添加拒绝规则,或使用firewalld/ufw关闭特定端口,同时停止监听该端口的服务进程。

在Linux系统中禁用特定端口是提升服务器安全性的关键措施,可防止未授权访问或恶意攻破,以下详细方法基于不同防火墙工具,操作前请务必备份配置并确认端口用途(避免误禁关键服务如SSH)。


使用 iptables(通用传统方法)

iptables 是Linux内核集成的防火墙工具,适合所有发行版。

步骤:

  1. 禁止入站流量

    禁用TCP端口(示例:禁用8080端口):

    sudo iptables -A INPUT -p tcp --dport 8080 -j DROP

    禁用UDP端口(示例:禁用5000端口):

    sudo iptables -A INPUT -p udp --dport 5000 -j DROP
  2. 保存规则(避免重启失效)

    Linux如何轻松禁用端口?一招搞定! 第1张

    • Debian/Ubuntu: sudo iptables-save > /etc/iptables/rules.v4
    • CentOS/RHEL: sudo service iptables save


使用 firewalld(推荐用于CentOS/RHEL/Fedora)

firewalld 提供动态管理功能,支持运行时更新。

步骤:

  1. 永久禁用TCP端口(示例:禁用3306):

    禁用UDP端口(如514):

    sudo firewall-cmd --permanent --remove-port=514/udp

  2. 生效配置

    Linux如何轻松禁用端口?一招搞定! 第2张

  3. 验证

    sudo firewall-cmd --list-ports # 查看开放端口列表
  4. 使用 ufw(Ubuntu/Debian简易工具)

    ufw(Uncomplicated Firewall)简化了防火墙配置。

    步骤:

    1. 禁用指定端口(示例:禁用22端口):

      sudo ufw deny 22/tcp
    2. 生效规则

      sudo ufw reload
    3. 查看状态

      Linux如何轻松禁用端口?一招搞定! 第3张

      sudo ufw status # 显示 "DENY" 即表示禁用成功


    验证端口是否禁用

    1. 本地检查

      sudo ss -tuln | grep <端口号> # 无输出表示无服务监听

    2. 外部测试(使用nmap):

      关键注意事项

      1. 谨慎操作:禁用前确认端口用途(如禁用22端口可能导致SSH断开)。
      2. 备份配置
        • iptables: sudo iptables-save > ~/iptables_backup.txt
        • firewalld: sudo cp /etc/firewalld/zones/public.xml ~/
      3. 防御全面性

        仅禁用端口不够,需结合强密码、Fail2ban等工具。

      4. 恢复端口
        • iptables: sudo iptables -D INPUT -p tcp --dport <端口> -j DROP
        • ufw: sudo ufw allow <端口>/tcp


      禁用端口是Linux安全的基础操作,推荐优先级:

      1. 生产环境用 firewalld 或 ufw(易管理)
      2. 脚本/临时需求用 iptables
      3. 长期安全策略:定期审计端口(netstat -tuln),最小化开放端口,配合SELinux/AppArmor强化防护。

      引用说明参考Linux官方文档(iptablesfirewalldufw)及服务器安全最佳实践(CIS Benchmarks),操作命令已在Ubuntu 22.04/CentOS 7/9测试通过。

0