Ubuntu LAMP防火墙配置技巧
在Ubuntu LAMP环境中,UFW(Uncomplicated Firewall) 是新手首选的防火墙工具(基于iptables封装,语法更简洁),而iptables则适合需要高级自定义的场景。配置前需完成以下基础准备:
sudo apt update && sudo apt install ufw 安装;iptables一般默认安装,若未安装则用 sudo apt install iptables。sudo ufw default deny incoming 和 sudo ufw default allow outgoing;iptables同理,需设置 sudo iptables -P INPUT DROP(拒绝所有入站)、sudo iptables -P OUTPUT ACCEPT(允许所有出站)。LAMP(Linux+Apache+MySQL+PHP)环境需开放以下核心端口,确保Web服务、数据库及远程管理的正常访问:
sudo ufw allow 80/tcp(UFW)或 sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT(iptables);sudo ufw allow 443/tcp 或 sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT;sudo ufw allow 22/tcp 或 sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT(iptables需限制为“已建立的连接”,防止非法入侵);sudo ufw allow 3306/tcp 或 sudo iptables -A INPUT -p tcp --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT。sudo ufw allow from 192.168.1.100 to any port 22,iptables命令为 sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT。sudo ufw enable logging,日志文件位于 /var/log/ufw.log,可通过 sudo tail -f /var/log/ufw.log 实时查看;iptables需手动添加日志规则,如 sudo iptables -A INPUT -j LOG --log-prefix "IPTABLES-DROP: "。sudo apt install iptables-persistent 安装持久化工具,然后执行 sudo netfilter-persistent save),避免重启后规则丢失。sudo ufw status verbose(UFW)查看规则是否生效,或通过 telnet your_server_ip 80(从外部机器测试HTTP端口连通性)验证端口是否开放。sudo cp /etc/ufw/user.rules ~/ufw_backup.rules)和iptables规则(sudo iptables-save > ~/iptables_backup.v4),防止规则丢失或误删。