温馨提示×

iptables怎样设置以防御MySQL攻击

小樊
82
2024-10-02 16:29:17
栏目: 云计算

使用iptables设置防御MySQL攻击,可以采取以下步骤:

  1. 禁止外部访问3306端口:MySQL的默认端口是3306,这是外部攻击者最可能尝试连接的端口。你可以通过以下命令禁止外部访问此端口:
sudo iptables -A INPUT -p tcp --dport 3306 -j DROP

这条命令会阻止所有尝试通过TCP协议访问3306端口的流量。

  1. 限制本地访问速率:你可以限制来自本地机器的访问速率,以防止暴力破解密码等攻击。以下命令将限制每分钟最多5个新的连接尝试:
sudo iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -m recent --set
sudo iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -m recent --update --seconds 60 --hitcount 5 -j DROP

第一条命令会创建一个新的规则,记录所有尝试连接到3306端口的流量。第二条命令则会根据记录的流量信息,如果某个IP地址在60秒内尝试连接超过5次,就将其加入黑名单并阻止其后续的连接尝试。

  1. 允许特定IP地址访问:如果你知道哪些IP地址是可信的,可以允许这些IP地址访问MySQL。例如,以下命令将允许IP地址192.168.1.100访问3306端口:
sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 3306 -j ACCEPT
  1. 启用防火墙:确保你的系统防火墙已启用并正确配置。在Debian/Ubuntu系统上,你可以使用以下命令启用并配置ufw防火墙:
sudo ufw enable
sudo ufw allow 3306/tcp

在CentOS/RHEL系统上,你可以使用以下命令启用并配置firewalld防火墙:

sudo systemctl enable firewalld
sudo firewall-cmd --permanent --add-service=mysql
sudo firewall-cmd --reload

请注意,以上命令仅供参考,具体配置可能因系统版本和需求而有所不同。建议在进行任何更改之前备份重要数据,并仔细阅读相关文档或咨询专业人士的意见。

0