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

Linux防火墙开放端口设置

在Linux服务器开放端口需配置防火墙:使用 iptables添加规则或 firewalld执行 firewall-cmd --add-port=端口/协议 --permanent,随后重启防火墙服务生效。

开放端口前的准备工作

  1. 确认端口监听状态
    运行以下命令检查应用程序是否已在目标端口监听:

    sudo netstat -tuln | grep <端口号>  # 如 sudo netstat -tuln | grep 80

    若输出为空,需先配置应用程序(如Nginx/MySQL)绑定到该端口。

  2. 查看防火墙状态

    sudo systemctl status firewalld   # 检查firewalld状态(CentOS/RHEL)
    sudo ufw status                   # 检查UFW状态(Ubuntu/Debian)

通过防火墙开放端口(分工具操作)

方法1:使用 firewalld(CentOS/RHEL/Fedora)

  1. 添加端口到防火墙规则

    sudo firewall-cmd --zone=public --add-port=<端口号>/tcp --permanent  # 开放TCP端口
    sudo firewall-cmd --zone=public --add-port=<端口号>/udp --permanent  # 开放UDP端口

    示例:开放TCP端口8080

    sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
  2. 重载防火墙生效

    sudo firewall-cmd --reload
  3. 验证规则

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

方法2:使用 UFW(Ubuntu/Debian)

  1. 允许端口访问

    Linux防火墙开放端口设置  第1张

    sudo ufw allow <端口号>/tcp  # 开放TCP端口
    sudo ufw allow <端口号>/udp  # 开放UDP端口

    示例:开放TCP端口3306(MySQL)

    sudo ufw allow 3306/tcp
  2. 启用并验证规则

    sudo ufw enable          # 启用UFW(若未启用)
    sudo ufw status verbose  # 查看规则状态

方法3:使用 iptables(通用,但需谨慎操作)

  1. 临时开放端口

    sudo iptables -A INPUT -p tcp --dport <端口号> -j ACCEPT
  2. 永久保存规则(需安装持久化工具)

    sudo apt-get install iptables-persistent  # Debian/Ubuntu
    sudo netfilter-persistent save            # 保存规则

    注意:iptables规则重启后失效,必须通过工具保存。


验证端口是否开放成功

  1. 本地检查

    sudo ss -tuln | grep <端口号>  # 确认端口处于LISTEN状态
  2. 外部测试(从另一台机器执行)

    telnet <服务器IP> <端口号>      # 若连接成功,说明端口开放
    nmap -p <端口号> <服务器IP>     # 使用nmap扫描端口状态

安全注意事项(必读!)

  1. 最小化开放原则

    仅开放必要端口(如HTTP/80、HTTPS/443),避免暴露敏感服务(如SSH默认22端口可改为非标准端口)。

  2. 限制访问来源

    • 使用防火墙限制IP范围(例如仅允许办公网络访问SSH):
      sudo ufw allow from 192.168.1.0/24 to any port 22  # UFW限制IP段
      sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port=22 protocol="tcp" accept' --permanent  # firewalld限制IP段
  3. 启用加密协议

    对数据传输端口(如数据库、FTP)强制使用SSL/TLS加密。

  4. 定期审计规则

    • 每月检查一次防火墙规则,关闭无用端口:
      sudo firewall-cmd --remove-port=8080/tcp --permanent  # firewalld删除端口
      sudo ufw delete allow 3306/tcp                       # UFW删除规则

常见问题排查

  • 问题1:端口开放但无法访问
    检查服务器安全组(阿里云/ AWS等云平台需在控制台单独放行端口)。
  • 问题2:应用程序未监听
    确保服务已启动(如 sudo systemctl restart nginx)。
  • 问题3:防火墙冲突
    避免同时启用多个防火墙工具(如firewalld和ufw),会导致规则冲突。

开放Linux服务器端口的核心步骤:配置应用监听 → 防火墙放行 → 安全限制 → 持续监控,根据发行版选择合适工具(firewalld/UFW/iptables),并严格遵守最小权限原则,定期更新系统和防火墙规则是抵御网络威胁的关键。

引用说明:本文操作基于Linux主流发行版(CentOS 7+、Ubuntu 20.04+),防火墙工具参考Red Hat官方文档及Ubuntu UFW手册,安全建议遵循NIST SP 800-123指南。

0