首页主机资讯Ubuntu如何配置LNMP防火墙

Ubuntu如何配置LNMP防火墙

时间2026-01-18 12:42:04发布访客分类主机资讯浏览1055
导读:Ubuntu 上配置 LNMP 防火墙的实用步骤 一、方案总览与原则 在 Ubuntu 上,LNMP 常用防火墙工具有:ufw(默认简化工具)、firewalld(动态管理)、iptables(底层规则)。原则是:只开放必要端口(如 80...

Ubuntu 上配置 LNMP 防火墙的实用步骤

一、方案总览与原则

  • 在 Ubuntu 上,LNMP 常用防火墙工具有:ufw(默认简化工具)、firewalld(动态管理)、iptables(底层规则)。原则是:只开放必要端口(如 80/443/SSH),数据库端口 3306 默认仅本地,必要时按来源 IP 白名单开放,变更前先备份并避免误封 SSH。为降低风险,建议同时部署 Fail2Ban 做暴力破解防护。

二、使用 UFW 配置(Ubuntu 默认推荐)

  • 安装与启用
    • 安装:sudo apt update & & sudo apt install ufw
    • 设置默认策略:sudo ufw default deny incomingsudo ufw default allow outgoing
    • 启用:sudo ufw enable
  • 放行 LNMP 必要端口
    • Web:sudo ufw allow 80/tcpsudo ufw allow 443/tcp
    • SSH(推荐限制来源 IP):sudo ufw allow from < 你的IP> to any port 22
  • 可选:放行数据库端口(不建议对公网开放)
    • sudo ufw allow 3306/tcp(更安全的做法是仅对受信网段开放)
  • 查看与维护
    • 状态:sudo ufw status verbose
    • 重载:sudo ufw reload;临时关闭:sudo ufw disable
  • 提示:若通过云厂商安全组对外暴露服务,请与安全组策略保持一致,避免遗漏。

三、使用 firewalld 配置(可选)

  • 安装与启动
    • 安装:sudo apt install -y firewalld
    • 启动与开机自启:sudo systemctl start firewalld & & sudo systemctl enable firewalld
  • 放行 LNMP 必要端口
    • 服务方式:sudo firewall-cmd --permanent --add-service=http--add-service=https--add-service=ssh
    • 或端口方式:sudo firewall-cmd --permanent --add-port=80/tcp--add-port=443/tcp--add-port=22/tcp
    • 生效:sudo firewall-cmd --reload
  • 验证:sudo firewall-cmd --list-all
  • 说明:firewalld 在 Ubuntu 上可用,但 ufw 更贴合 Ubuntu 的使用习惯。

四、使用 iptables 配置(进阶)

  • 备份与默认策略
    • 备份:sudo iptables-save > /etc/iptables/rules.v4.bak
    • 默认策略:sudo iptables -P INPUT DROPsudo iptables -P FORWARD DROPsudo iptables -P OUTPUT ACCEPT
  • 放行基础与业务端口
    • 回环与已建立连接:sudo iptables -A INPUT -i lo -j ACCEPT
    • 已建立/相关连接:sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    • 业务端口:sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT--dport 80 -j ACCEPT--dport 443 -j ACCEPT
    • 可选 ICMP(便于排障):sudo iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
  • 持久化(Debian/Ubuntu)
    • 安装持久化工具:sudo apt install iptables-persistent -y
    • 保存:sudo netfilter-persistent save(或 /etc/init.d/netfilter-persistent save
  • 验证:sudo iptables -L -n --line-numbers
  • 警告:在远程 SSH 会话中设置默认 DROP 前,务必先放行 22 端口,避免被立即断开。

五、安全加固与验证

  • 数据库访问最小化
    • 防火墙侧:不建议对公网开放 3306;如确需远程管理,仅允许受信 IP:sudo ufw allow from < 可信IP> to any port 3306
    • 服务侧:在 MySQL 配置中绑定本地 bind-address = 127.0.0.1,并通过专用账户与最小权限进行远程授权(如仅授予应用库所需权限)。
  • 组件层加固
    • Nginx:隐藏版本号 server_tokens off; ,全站跳转 HTTPS,添加安全响应头(如 X-Frame-Options、X-Content-Type-Options、Referrer-Policy、Permissions-Policy、Content-Security-Policy、Strict-Transport-Security)。
    • PHP:关闭暴露 expose_php = Off,限制危险函数 disable_functions = exec,passthru,shell_exec,system,proc_open,popen,...,开启错误日志。
    • 访问控制:部署 Fail2Ban 保护 SSH 与 Nginx 登录端点,降低暴力破解风险。
  • 变更验证与回滚
    • 每次变更后用 sudo ufw statussudo firewall-cmd --list-allsudo iptables -L -n 核对规则;保留备份,必要时回滚。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu如何配置LNMP防火墙
本文地址: https://pptw.com/jishu/784272.html
Linux PHP-FPM超时设置怎么办 LNMP环境Ubuntu下如何配置SSL

游客 回复需填写必要信息