Debian LAMP环境防火墙配置指南(以UFW为例)
UFW(Uncomplicated Firewall)是Debian系统默认推荐的防火墙工具,专为简化配置设计,适合LAMP(Linux+Apache+MySQL+PHP)这类常见Web环境。以下是详细配置步骤:
若系统未预装UFW,可通过以下命令安装:
sudo apt update && sudo apt install ufw
安装完成后,启用UFW服务(系统会提示确认,输入y
并按回车):
sudo ufw enable
UFW默认采用“拒绝所有传入、允许所有传出”的严格策略,符合LAMP环境的安全需求,无需额外修改。可通过以下命令验证:
sudo ufw default deny incoming # 确认默认拒绝传入
sudo ufw default allow outgoing # 确认默认允许传出
LAMP环境需开放以下端口,对应服务及用途:
127.0.0.1
,见下文“高级配置”)。开放端口命令:
sudo ufw allow 80/tcp # 允许HTTP
sudo ufw allow 443/tcp # 允许HTTPS
sudo ufw allow 22/tcp # 允许SSH(远程管理)
sudo ufw allow 3306/tcp # 允许MySQL(数据库)
通过以下命令查看当前规则及端口开放情况(verbose
模式显示更详细信息):
sudo ufw status verbose
输出示例:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
To Action From
-- ------ ----
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
22/tcp ALLOW Anywhere
3306/tcp ALLOW Anywhere
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
22/tcp (v6) ALLOW Anywhere (v6)
3306/tcp (v6) ALLOW Anywhere (v6)
为提升安全性,可限制仅信任IP访问敏感端口(如SSH、MySQL):
sudo ufw allow from <信任IP> to any port 22 # 仅允许指定IP访问SSH
sudo ufw allow from <信任IP> to any port 3306 # 仅允许指定IP访问MySQL
将<信任IP>
替换为你的实际IP地址(如192.168.1.100
)。
sudo ufw status numbered
1
):sudo ufw delete 1
allow
命令覆盖原有规则(如将MySQL端口从3306
改为3307
):sudo ufw delete 4 # 先删除旧规则
sudo ufw allow 3307/tcp # 添加新规则
修改规则后,需重新加载UFW使更改生效:
sudo ufw reload
若数据库无需远程连接,可将MySQL端口限制为127.0.0.1
,避免暴露在公网:
sudo ufw deny 3306/tcp # 先拒绝所有访问
sudo ufw allow from 127.0.0.1 to any port 3306 # 仅允许本地访问
若需更复杂的配置(如端口转发、IP段限制),可通过iptables实现:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -P INPUT DROP # 拒绝所有未明确允许的传入流量
sudo iptables-save > /etc/iptables/rules.v4 # Debian系统保存规则
(需提前安装iptables-persistent
包以自动加载规则:sudo apt install iptables-persistent
)通过以上步骤,Debian LAMP环境的防火墙可有效抵御非法访问,保障服务器及Web应用的安全。建议定期检查规则(sudo ufw status
),根据业务需求调整端口开放策略。