我在带有 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';
哪个应该输出失败的登录尝试syslog
或php
根据文档
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