在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规则,以防万一需要恢复它们。