我检查了我的 apache 日志,哇哦,有很多机器人试图利用 phpmyadmin。我做的第一件事就是将目录名称更改为更隐蔽的名称。
但是,还有其他技巧可以保护 phpmyadmin 的安全吗?
(数据库本身只能从本地网络访问)
答案1
我们做了一系列的事情:
- 通过请求 HTTP 用户名/密码登录的 .htaccess 或 Apache 配置保护 phpMyAdmin。
- 通过 .htaccess 或 Apache 配置保护 phpMyAdmin,仅允许从某些受信任的 IP 地址进行访问
- 将 phpMyAdmin 放入其自己的 VirtualHost 中并在非标准端口上运行它
- 仅允许 HTTPS 连接到 phpMyAdmin,而不允许常规 HTTP
- 仅允许从 LAN 进行连接(使用 VPN 通过防火墙,并且仅允许在该 LAN/VPN 上进行连接)
- 不要将目录命名为显而易见的名称,例如 /phpMyAdmin/
您还可以使用 SSH 端口转发来使用 SSH 密钥。请参阅https://stackoverflow.com/a/3687969/193494
答案2
添加一个 .htaccess,仅允许本地 IP 访问 phpmyadmin 文件夹。
答案3
使 phpmyadmin 在只能从本地主机访问的 vhost 上可用,并要求用户使用 ssh 和端口转发来访问它。
答案4
我同意 htaccess (/w 密码) 和 https。
您可能还考虑为该服务器添加第二个 IP,并为 phpmyadmin 创建基于 IP 的 Apache 虚拟主机。这可能只是一个本地网络 IP,因此它将受到防火墙的保护(您甚至可能没有针对它的 nat 规则)。
我认为层数越多(即 htaccess + https + Virtualhost)越好。理想情况下,机器人首先就不应该能够到达它。
当然,您也可以将 phpmyadmin 放在不同的盒子上。