Всем доброго времени суток!
Пытаюсь настроить fail2ban для блокировки подключений по xrdp
Проблема в том что фильтр нужно написать, который отловит нужный адрес а в строке лога адреса нет.
Там имеется только такая строка в которой указывается что попытка подключения неудачна:
| июл 16 12:09:32 vpc-a11-04.company.lan xrdp[4334]: [INFO ] xrdp_wm_log_msg: User does not exist, or could not be authenticatedСам же fail2ban в фильтре проверяет на сколько я понимаю только одну строку, а одной строки с адресом и указанием неудачной попытки подключения нет, даже если XRDP логи перевести в режим DEBUG
Адрес есть выше в логе и по ходу мне несколько этих строк не собрать в одном фильтре:
| июл 16 10:46:01 vpc-a11-04.company.lan xrdp[3257]: [INFO ] Module "company.lan" specified by alexey from 192.168.1.20:39724 is not configured. Using "Xorg" instead.
| июл 16 10:46:01 vpc-a11-04.company.lan xrdp[3257]: [INFO ] xrdp_wm_log_msg: Performing login request for alexey
| июл 16 12:09:32 vpc-a11-04.company.lan xrdp[4334]: [INFO ] xrdp_wm_log_msg: User does not exist, or could not be authenticated
Подскажите, как быть? fail2ban в репозитории на гитхабе имеет написанный фильтр:
#
# Fail2Ban filter for XRDP
#
# Detects login attempts with invalid credentials
#
# Requirements:
# - xrdp >= 0.9.19
# - The log level in sesman.ini should be set to `INFO` or higher
# to emit the log messages needed for this filter.
#
# Author: Evan Linde
#
[INCLUDES]
# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf
[DEFAULT]
_daemon = xrdp-sesman
[Definition]
authfail_re = \[INFO \] AUTHFAIL: user=<F-USER>(?:\S+|.+)</F-USER> ip=<ADDR> time=\d+
failregex = ^%(__prefix_line)s%(authfail_re)s$
ignoreregex =
datepattern = ^\[?%%ExY%%Exm%%Exd-%%ExH:%%ExM:%%ExS\]?
^{DATE}Ну этот фильтр не отлавливает ничего.
fail2ban-regex "$(journalctl -u xrdp -n 200 --no-pager)" /etc/fail2ban/filter.d/xrdp-auth.conf
Running tests
=============
Use filter file : xrdp-auth, basedir: /etc/fail2ban
Use datepattern : ^\[?%ExY%Exm%Exd-%ExH:%ExM:%ExS\]?
^{DATE} : Default Detectors
Use multi line : 200 line(s)
| 1: июл 16 10:46:01 vpc-a11-04.company.lan xrdp[32...
| 2: июл 16 10:46:01 vpc-a11-04.company.lan xrdp[32...
| 3: июл 16 10:46:01 vpc-a11-04.companyr.lan xrdp[32...
| 4: июл 16 10:46:01 vpc-a11-04.company.lan xrdp[32...
| 5: июл 16 10:46:01 vpc-a11-04.company.lan xrdp[32...
| ...
`-
Results
=======
Failregex: 0 total
Ignoreregex: 0 total
Date template hits:
Lines: 200 lines, 0 ignored, 0 matched, 200 missed
[processed in 0.01 sec]