我们一直在使用fail2ban来阻止失败的ssh尝试。 我想为phpMyAdmin设置相同的东西。
由于phpMyAdmin不loggingauthentication尝试到一个文件(我知道),我不确定如何最好的去做这件事。
是否存在一个插件/configuration使phpMyAdmin日志身份validation尝试到一个文件? 还是有其他地方我应该寻找这样的活动日志?
理想情况下,我将能够find一个只涉及修改fail2banconfiguration的解决scheme,因为我必须在多个服务器上configuration具有相同选项的fail2ban ,并且不希望修改所述服务器上的各种phpMyAdmin安装。
我认为使用phpMyAdmin的最好方法(在我看来不那么危险)是不直接在公网IP上打开phpMyAdmin,而是只侦听内部IP或环回,并使用本地端口连接到SSH隧道你想使用phpMyAdmin的机器。 通过这种方式,敏感的身份validation由SSH控制(并且已经被fail2ban阻止)。
我们通过为phpmyadmin位置添加apache htaccess ldap身份validation(或文件身份validation)来保护phpmyadmin。 您必须键入密码两次,但失败的login尝试被fail2ban识别。
我已经使用.htaccess和一个简单的php脚本的组合来提供我觉得可以接受的解决scheme:
的.htaccess
php_value auto_prepend_file /path/to/fail2ban.php
fail2ban.php
$_REQUEST['pma_{username|password'] mysqlvalidationpma_{username|password} 。 user表 日志格式
phpMyadmin login failed with username: root; ip: 192.168.1.50; url: http://somedomain.com/phpmyadmin/index.php phpMyadmin login failed with username: ; ip: 192.168.1.50; url: http://192.168.1.48/phpmyadmin/index.php
这个解决scheme适合我,因为我可以很容易地把它集成到bash脚本中,这些脚本放在了我们的服务器fail2ban平滑fail2banconfiguration。
感谢所有提供可能解决scheme的人!
作为一个后续,我已经开了一个关于创build一个自定义的fail2banfilter来观察和处理这个新的日志文件的问题。Custom fail2ban为phpMyadmin暴力破解尝试过滤 。