如何保护 phpMyAdmin

新手上路,请多包涵

我注意到我的网站有一些奇怪的请求试图找到 phpmyadmin,比如

/phpmyadmin/
/pma/

等等

现在我已经通过 apt 在 Ubuntu 上安装了 PMA,并希望通过不同于 /phpmyadmin/ 的网址访问它。我能做些什么来改变它?

谢谢


更新

对于 Ubuntu 9.10 和 Apache2,相应的设置位于 — 文件中,该文件是 /etc/apache2/conf.d/phpmyadmin.conf /etc/phpmyadmin/apache.conf 链接。该文件包含

Alias /phpmyadmin /usr/share/phpmyadmin

如果想要避免不必要的活动,第一个 /phpmyadmin 应该更改为不同的东西,例如:

 Alias /secret /usr/share/phpmyadmin

原文由 Andrei 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 637
2 个回答

最大的威胁是攻击者可以利用以下漏洞:目录遍历,或者使用 SQL 注入调用 load_file() 来读取配置文件中的纯文本用户名/密码,然后使用 phpmyadmin 或通过 tcp 端口 3306 登录。作为一个渗透测试者,我使用这种攻击模式来破坏一个系统。

这是锁定 phpmyadmin 的好方法:

  • PhpMyAdmin 缺乏强大的暴力保护,因此您必须使用随机生成的长密码。
  • 不允许远程根登录! 相反,phpmyadmin 可以配置为使用 “Cookie Auth” 来限制哪些用户可以访问系统。如果您需要一些 root 权限,请创建一个可以添加/删除/创建但没有 grantfile_priv 的自定义帐户。
  • 从每个帐户中删除 file_priv 权限。 file_priv 是 MySQL 中最危险的特权之一,因为它允许攻击者读取文件或上传后门。
  • 将有权访问 phpmyadmin 界面的 IP 地址列入白名单。这是一个示例 .htaccess reulset:
 Order deny,allow
Deny from all
allow from 199.166.210.1

  • 没有可预测的文件位置,例如: http://127.0.0.1/phpmyadmin 。 Nessus/Nikto/Acunetix/w3af 之类的漏洞扫描程序将对此进行扫描。

  • 防火墙关闭 tcp 端口 3306,使其无法被攻击者访问。

  • 使用 HTTPS,否则数据和密码可能会泄露给攻击者。如果您不想花 30 美元购买证书,请使用自签名证书。您将接受一次,即使它因 MITM 而被更改,您也会收到通知。

原文由 rook 发布,翻译遵循 CC BY-SA 4.0 许可协议

一些提示,(虽然 ssh 隧道是最安全的)

我看过指南,他们将 phpmyadmin 放在自定义端口上。我觉得这比将 /phpmyadmin 重命名为长而随机的名称更容易理解,因为端口扫描器扫描所有端口以查找打开的网页很简单。

添加 apache 密码保护具有额外的好处(在 apache 密码本身和 phpmyadmin 密码之上),因为它可以阻止扫描仪在该 Web 端口/地址上检测到其 phpmyadmin。

fail2ban 还可以监控 apache-auth 失败以进行暴力保护。

另外我刚刚注意到fail2ban 有一个phpmyadmin 监狱配置,我没有尝试过。

原文由 Hayden Thring 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题