在Debian系統上,使用iptables防止SQL注入攻擊主要涉及到配置防火墻規則以限制對數據庫服務器的訪問。以下是一些基本的步驟和策略:
sudo apt-get update
sudo apt-get install iptables
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
# 允許來自本地回環接口的流量
sudo iptables -A INPUT -i lo -j ACCEPT
# 允許SSH連接(假設SSH端口是22)
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
# 允許已建立的連接
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 允許MySQL連接(假設MySQL監聽在3306端口)
sudo iptables -A INPUT -p tcp --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
# 允許來自特定IP地址的MySQL連接
sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables-persistent包來保存和恢復規則:sudo apt-get install iptables-persistent
在安裝過程中,它會詢問你是否要保存當前的iptables規則。選擇“是”以保存它們。
sudo iptables -A INPUT -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
請注意,這些步驟提供了基本的保護,但防止SQL注入攻擊還需要采取其他措施,如使用參數化查詢、限制數據庫用戶權限、定期更新和修補系統等。
最后,請確保在執行這些命令之前備份你的iptables規則,以防萬一需要恢復它們。