Fail2ban запускается нормально. Он работает с моим фильтром sshd и запрещает IP-адреса как следует. Но с vsftpd он не регистрирует неудачные попытки входа при запуске:
fail2ban-client status vsftpd
Я пробовал и auth.log, и vsftpd.log. Путь к файлу изменен с того, что у меня действительно есть по соображениям безопасности, и на самом деле это не /path/to/thelog.log
vsftpd.log
:
Status for the jail: vsftpd
|- filter
| |- File list: /path/to/vsftpd.log
| |- Currently failed: 0
| `- Total failed: 0
`- action
|- Currently banned: 0
| `- IP list:
`- Total banned: 0
auth.log
:
Status for the jail: vsftpd
|- filter
| |- File list: /path/to/auth.log
| |- Currently failed: 0
| `- Total failed: 0
`- action
|- Currently banned: 0
| `- IP list:
`- Total banned: 0
Но с fail2ban-regex он ловит неудачные попытки входа.
vsftpd.log
:
Running tests
=============
Use failregex file : /etc/fail2ban/filter.d/vsftpd.conf
Use log file : /path/to/vsftpd.log
Results
=======
Failregex: 16 total
|- #) [# of hits] regular expression
| 2) [16] ^ \[pid \d+\] \[.+\] FAIL LOGIN: Client "<HOST>"\s*$
`-
Ignoreregex: 0 total
Date template hits:
|- [# of hits] date format
| [806] WEEKDAY MONTH Day Hour:Minute:Second Year
`-
Lines: 806 lines, 0 ignored, 16 matched, 790 missed
Missed line(s): too many to print. Use --print-all-missed to print all 790 lines
auth.log
:
Running tests
=============
Use failregex file : /etc/fail2ban/filter.d/vsftpd.conf
Use log file : /path/to/auth.log
Results
=======
Failregex: 16 total
|- #) [# of hits] regular expression
| 1) [16] ^\s*(<[^.]+\.[^.]+>)?\s*(?:\S+ )?(?:kernel: \[ *\d+\.\d+\])?(?:@vserver_\S+ )?(?:(?:\[\d+\])?:\s+[\[\(]?vsftpd(?:\(\S+\))?[\]\)]?:?|[\[\(]?vsftpd(?:\(\S+\))?[\]\)]?:?(?:\[\d+\])?:?)?\s(?:\[ID \d+ \S+\])?\s*\(?pam_unix(?:\(\S+\))?\)?:?\s+authentication failure; logname=\S* uid=\S* euid=\S* tty=(ftp)? ruser=\S* rhost=<HOST>(?:\s+user=.*)?\s*$
`-
Ignoreregex: 0 total
Date template hits:
|- [# of hits] date format
| [9174] MONTH Day Hour:Minute:Second
`-
Lines: 9174 lines, 0 ignored, 16 matched, 9158 missed
Missed line(s): too many to print. Use --print-all-missed to print all 9158 lines
Я проверил, что не смог войти в систему с правильным паролем (введя неправильный пароль :)) и с fail2ban-regex
число продолжает расти, но статус тюрьмы по-прежнему равен 0, и три неудачных входа в систему не вызывают бан.
jail.local
:
[vsftpd]
enable = true
filter = vsftpd
action = iptables-multiport[name=vsftpd, port="20, 21, 10204, 10205"]
logpath = /path/to/auth.log
bantime = 60
maxretry = 3
бантайм 60 сек есть только во время тестирования.
Есть идеи, почему это не работает?
vsftpd.log
журнал запрета выглядит так:
Wed Jun 29 14:57:37 2016 [pid 2517] [username] FTP response: Client "::ffff:192.168.0.100", "530 Permission denied."
и по умолчанию failregex WHICH не работает в файле конфигурации fail2ban, расположенном "/etc/fail2ban/filter.d/vsftpd.conf
" выглядит как
failregex = ^%(__prefix_line)s%(__pam_re)s\s+authentication failure; logname=\S* uid=\S* euid=\S* tty=(ftp)? ruser=\S* rhost=<HOST>(?:\s+user=.*)?\s*$
^ \[pid \d+\] \[.+\] FAIL LOGIN: Client "<HOST>"\s*$
Так вам нужно изменить failregex к следующему, чтобы заставить его работать с vsftpd
failregex = ^%(__prefix_line)s%(__pam_re)s\s+Permission denied; logname=\S* uid=\S* euid=\S* tty=(ftp)? ruser=\S* rhost=<HOST>(?:\s+user=.*)?\s*$
^ \[pid \d+\] \[.+\]\s+FTP response: Client "::ffff:<HOST>",\s*"530 Permission denied\."\s*$
Проверено на Ubuntu с vsftpd: версия 3.0.3
Я думаю, у вас есть опечатка в вашем jail.local
. Это enabled = true
не enable
.
Вы должны проверить свой fail2ban.log
который содержит строку вроде:
INFO Jail 'vsftpd' started
Где хранятся ваши файлы журналов?
Находятся ли они в /scripts/logs/vsftpd.log и /scripts/logs/auth.log? Вот где демон fail2ban ищет их в соответствии с вашим jail.local.
Потому что в ваших выходных пастах fail2ban-regex говорится, что он использует /path/to/vsftpd.log и /path/to/auth.log.
Вы только что вырезали / scripts / logs / из выходных данных fail2ban-regex и вставили в заполнители / path / to /? Или ваши журналы на самом деле находятся в / path / to /?
dual_log_enable=YES
Этот параметр включает поиск DNS и IP.