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),防止規則丟失或誤刪。