Ubuntu 上配置 LNMP 防火墙的实用步骤
一、方案总览与原则
二、使用 UFW 配置(Ubuntu 默认推荐)
sudo apt update && sudo apt install ufwsudo ufw default deny incoming;sudo ufw default allow outgoingsudo ufw enablesudo ufw allow 80/tcp;sudo ufw allow 443/tcpsudo ufw allow from <你的IP> to any port 22sudo ufw allow 3306/tcp(更安全的做法是仅对受信网段开放)sudo ufw status verbosesudo ufw reload;临时关闭:sudo ufw disable三、使用 firewalld 配置(可选)
sudo apt install -y firewalldsudo systemctl start firewalld && sudo systemctl enable firewalldsudo firewall-cmd --permanent --add-service=http;--add-service=https;--add-service=sshsudo firewall-cmd --permanent --add-port=80/tcp;--add-port=443/tcp;--add-port=22/tcpsudo firewall-cmd --reloadsudo firewall-cmd --list-all四、使用 iptables 配置(进阶)
sudo iptables-save > /etc/iptables/rules.v4.baksudo iptables -P INPUT DROP;sudo iptables -P FORWARD DROP;sudo iptables -P OUTPUT ACCEPTsudo iptables -A INPUT -i lo -j ACCEPTsudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPTsudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT;--dport 80 -j ACCEPT;--dport 443 -j ACCEPTsudo iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPTsudo apt install iptables-persistent -ysudo netfilter-persistent save(或 /etc/init.d/netfilter-persistent save)sudo iptables -L -n --line-numbers五、安全加固与验证
sudo ufw allow from <可信IP> to any port 3306bind-address = 127.0.0.1,并通过专用账户与最小权限进行远程授权(如仅授予应用库所需权限)。server_tokens off;,全站跳转 HTTPS,添加安全响应头(如 X-Frame-Options、X-Content-Type-Options、Referrer-Policy、Permissions-Policy、Content-Security-Policy、Strict-Transport-Security)。expose_php = Off,限制危险函数 disable_functions = exec,passthru,shell_exec,system,proc_open,popen,...,开启错误日志。sudo ufw status 或 sudo firewall-cmd --list-all 或 sudo iptables -L -n 核对规则;保留备份,必要时回滚。