Fail2ban не запрещает IP адресов с vsftpd

Fail2ban запускает okey. Это работает с моим фильтром 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

секунда bantime 60 только во время тестирования.

Какие-либо идеи, почему это не работает?

1
задан 2 November 2014 в 20:20
4 ответа

Где хранятся ваши файлы журналов?

Находятся ли они в /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 /?

0
ответ дан 4 December 2019 в 08:26

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*$

Проверьте изображение для точного редактирования, так как в строке выше отсутствуют некоторые символы . https://s31.postimg.org/pdv5m5he3/fail2ban_vsftpd2.png

Проверено на Ubuntu с vsftpd: версия 3.0.3

1
ответ дан 4 December 2019 в 08:26
dual_log_enable=YES

Этот параметр включает поиск DNS и IP

-1
ответ дан 4 December 2019 в 08:26

Я думаю, у вас есть опечатка в вашем jail.local . Это включено = истина не разрешено .

Вы должны проверить свой fail2ban.log , который содержит такую ​​строку:

INFO    Jail 'vsftpd' started
1
ответ дан 30 March 2020 в 13:15

Теги

Похожие вопросы