启用 PHPMYADMIN 日志记录和 Fail2ban 默认过滤器

启用 PHPMYADMIN 日志记录和 Fail2ban 默认过滤器

我在带有 ISPConfig 的 Debian 10.5 LAMP 上运行 PHPMYADMIN 4.9.0.1。

我按照以下方法安装了 phpmyadmin本教程我只能猜测 ISPConfig 可能以某种方式中断了某些事情。

无论如何,我正在尝试为 fail2ban 设置默认的 phpmyadmin-syslog.conf 过滤器来保护 phpmyadmin。

问题:
根据文档,pma 日志记录似乎不起作用。

我尝试了三种方法来启用日志记录:

在我的/usr/share/phpmyadmin/config.inc.php我已经添加:

$cfg['AuthLog'] = 'auto';

哪个应该输出失败的登录尝试syslogphp根据文档
https://docs.phpmyadmin.net/en/latest/config.html

我试过
当前设置
$cfg['AuthLog'] = 'syslog';

但是,/var/log/auth.log/var/log/syslog均未记录失败的登录尝试。

我也尝试过:
$cfg['AuthLog'] = '/var/log/phpmyadmin-auth.log';

并向 www-data 用户授予日志权限(注意:不确定这是否正确,pma 是控制用户)

#chown www-data:www-data /var/log/phpmyadmin-auth.log
#chmod 755 /var/log/phpmyadmin-auth.log

我的/etc/fail2ban/jail.local文件包含:

[phpmyadmin-auth]
enabled = true
port = https,https
filter = phpmyadmin-syslog
logpath = /var/log/syslog
maxretry = 3

默认/etc/fail2ban/filter.d/phpmyadmin-syslog.conf包含:

# Fail2Ban fitler for the phpMyAdmin-syslog
#
[INCLUDES]
before = common.conf

[Definition]
_daemon = phpMyAdmin
failregex = ^%(__prefix_line)suser denied: (?:\S+|.*?) \(mysql-denied\) from <HOST>\s*$
ignoreregex =
# Author: Pavel Mihadyuk
# Regex fixes: Serg G. Brester

(没有关于启用 phpyadmin 日志记录的有用提示)

有人知道我错过了什么吗?

答案1

我在使用 Ubuntu 20.04。

我没有以任何方式修改 phpmyadmin 配置文件(安装时默认)。在我的 config.inc.php 中,我有...

$cfg['AuthLog'] = 'auto';

...并且我的所有身份验证错误都进入了 /var/log/auth.log。所以我猜想手册对于我的情况是错误的。

每当我尝试使用空白密码登录时,我都会得到:

Feb 13 23:42:42 hostname phpMyAdmin[516146]: user denied: sdasdas (empty-denied) from xxx.xxx.xxx.xxx

每当我尝试使用错误的用户名/密码登录时,我都会得到:

Feb 13 23:42:42 hostname phpMyAdmin[516146]: user denied: sdasdas (mysql-denied) from xxx.xxx.xxx.xxx

我的过滤器当然和你的一样。现在你可以看到为什么过滤器是正确的,并且只会识别上面的第二种情况。它不会关心空密码。

^%(__prefix_line)suser denied: (?:\S+|.*?) \(mysql-denied\) from <HOST>\s*$

另外,您的 jail.local 条目似乎正确。我的是:

[phpmyadmin-syslog]
enabled  = true
filter   = phpmyadmin-syslog
maxretry = 1
findtime = 30d
bantime = 600
bantime.rndtime = 100
bantime.increment = true
bantime.factor = 24
bantime.maxtime = 6w

您会注意到,我甚至没有提到 jail 中的日志文件。Fail2ban 显然知道在哪里查找(我曾经查找过logpath = /var/log/auth.log,但我删除了它,它仍然有效)。只要我输入一对错误的凭据,我就可以看到 fail2ban 使用以下命令检测到它:

 sudo tail -f /var/log/fail2ban.log

请记住,如果您更改了 fail2ban 配置,则不必重新启动 fail2ban。您只需使用以下命令重新加载配置即可:

sudo service fail2ban reload

相关内容