防止对 MySQL 的蛮力攻击?

Kei*_*Jr. 10 mysql brute-force-attacks

我需要为 MySQLd 打开网络,但每次我这样做时,服务器都会被强行遗忘。一些恶意的密码猜测脚本开始攻击服务器,打开端口 3306 上的连接并永远尝试随机密码。

我怎样才能阻止这种情况发生?

对于SSH,我使用denyhosts,效果很好。有没有办法让拒绝主机与 MySQLd 一起工作?

我也考虑过更改运行 MySQL 的端口,但这不太理想,只是一个权宜之计(如果他们发现新端口怎么办?)

有没有人有其他想法?

如果情况不同,我将在 FreeBSD 6.x 上运行 MySQL 5.x。

Dav*_*ger 9

我不知道用于 MySQL 的任何类似 denyhosts 的软件包,但我确实有几个解决方案:

  • 限制登录到特定 IP 地址。不要使用 % 来允许所有主机连接到服务器。
  • 更安全的是,将 iptables 设置为仅允许从授权 IP 地址访问 3306。
  • 使用 ssh 将您的流量传送到盒子,然后通过 localhost 连接
  • 修改 Denyhosts 或 BFD 脚本以分析 mysql 访问日志并阻止对防火墙的任何暴力尝试

编辑

要回答您的评论,请尝试以下操作

iptables -A INPUT -p tcp -s 202.54.1.50 --sport 1024:65535 -d 202.54.1.20 --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s 202.54.1.20 --sport 3306 -d 202.54.1.50 --dport 1024
Run Code Online (Sandbox Code Playgroud)

其中 .20 是您的 MySQL,而 .50 是远程连接 IP 地址。