温馨提示×

ubuntu lamp防火墙如何配置

小樊
32
2025-12-20 05:15:04
栏目: 智能运维

Ubuntu LAMP 防火墙配置指南

一、快速配置 UFW(推荐)

  • 查看与启用防火墙
    • 查看状态:sudo ufw status verbose
    • 启用防火墙:sudo ufw enable(远程操作前务必先放行 SSH,见下条)
  • 放行 Web 与 SSH
    • 一键放行 Web(HTTP/HTTPS):sudo ufw allow ‘Apache Full’
    • 仅放行 HTTP:sudo ufw allow ‘Apache’
    • 放行 SSH(端口 22/TCP):sudo ufw allow 22/tcp
  • 验证规则
    • 查看规则与方向:sudo ufw status numbered
    • 示例输出应含:Apache Full ALLOW Anywhere(以及 v6 条目)
  • 说明
    • UFW 的 Apache Full 配置文件内置了 80/tcp、443/tcp 两条规则,适合大多数 LAMP 场景。

二、按需开放或限制端口

  • 仅放通 HTTP/HTTPS(不启用 UFW 的 Apache 应用配置时)
    • sudo ufw allow 80/tcp
    • sudo ufw allow 443/tcp
  • 限制到指定来源 IP(提高安全性)
    • 例:仅允许 203.0.113.10 访问 Web
      • sudo ufw allow from 203.0.113.10 to any port 80
      • sudo ufw allow from 203.0.113.10 to any port 443
  • 如需远程管理 MySQL(不建议对公网开放)
    • 放通端口:sudo ufw allow 3306/tcp
    • 更安全的做法:保持 3306 仅监听 127.0.0.1,通过 SSH 隧道或内网访问数据库。

三、使用 iptables 的进阶配置(可选)

  • 基本放行(示例)
    • sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    • sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    • sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  • 仅本地访问 MySQL(推荐)
    • 不添加 3306 的 INPUT 规则,或明确限制来源:
      • sudo iptables -A INPUT -p tcp -s 127.0.0.1 --dport 3306 -j ACCEPT
  • 默认策略与持久化
    • 默认拒绝入站:sudo iptables -P INPUT DROP
    • 保存规则:sudo iptables-save > /etc/iptables/rules.v4
    • 开机恢复:iptables-restore < /etc/iptables/rules.v4(可放入网络接口启动脚本以持久化)

四、验证与常见问题

  • 验证 Web 访问
    • 本机:curl -I http://127.0.0.1
    • 远程:浏览器访问 http://服务器IP/https://服务器IP/
  • 验证防火墙状态
    • UFW:sudo ufw status numbered
    • iptables:sudo iptables -L -n -v
  • 远程连接被断开
    • 原因:启用 UFW 前未放行 22/TCP
    • 处理:在本地控制台或带外管理放行 22/TCP 后再启用 UFW,或临时执行 sudo ufw disable 恢复访问。
  • 端口与服务对应
    • 80/TCP:HTTP(Apache)
    • 443/TCP:HTTPS(Apache + TLS/SSL)
    • 22/TCP:SSH(远程管理)
    • 3306/TCP:MySQL(仅在确有远程需求时开放,且建议限定来源)

0