当前位置:首页 > 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. 保存规则(避免重启失效)

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

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

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

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

步骤:

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

    sudo firewall-cmd --permanent --remove-port=3306/tcp

    禁用UDP端口(如514):

    sudo firewall-cmd --permanent --remove-port=514/udp
  2. 生效配置

    sudo firewall-cmd --reload
  3. 验证

    sudo firewall-cmd --list-ports  # 查看开放端口列表

使用 ufw(Ubuntu/Debian简易工具)

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

步骤:

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

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

    sudo ufw reload
  3. 查看状态

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

验证端口是否禁用

  1. 本地检查

    sudo ss -tuln | grep <端口号>  # 无输出表示无服务监听
  2. 外部测试(使用nmap):

    nmap -p <端口号> <服务器IP>  # 显示 "filtered" 或 "closed"

关键注意事项

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

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

0