LinuxForum.Fans
Тема

fail2ban настройка

Автор: smallingg 15 сообщений 7776 просмотров
#114788

Подскажите пожалуйста, установил fail2ban 0.8.2.3 на Centos 5.5, настроил для защиты по ssh. Если ввожу неправильный логин и потом неправильные пароли, то fail2ban нормально работает, если же ввожу правильный логин и неправильные пароли, то fail2ban не работает.
Вот настройка jail.conf
<code>
[ssh-iptables]

enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=you@mail.com, sender=fail2ban@mail.com]
logpath = /var/log/secure
maxretry = 3
<code>

В /var/log/secure записи пишутся
Что может быть?

#114821

Похоже, что имеют место быть разные строчки логирования на одну их который f2b как раз не реагирует, надо детально смотреть /var/log/secure.

#114826

Macumazan, может поможете? Вот строчки из /var/log/secure.

Правильный логин, неправильный пароль
<code>
Jan 8 15:05:18 mycomp sshd[8412]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.3 user=user
Jan 8 15:05:20 mycomp sshd[8412]: Failed password for user from 192.168.1.3 port 1597 ssh2
<code>


Неправильный логин и пароль
<code>
Jan 8 10:39:19 mycomp sshd[7819]: Failed password for invalid user lskjdf from 192.168.1.3 port 1265 ssh2
Jan 8 10:39:20 mycomp sshd[7819]: pam_unix(sshd:auth): check pass; user unknown
<code>

Или еще надо что-нибудь из /var/log/secure

#114928

Покажите вывод
[console]fail2ban-regex /var/log/secure '^.* Failed password for invalid user .* from <HOST> port .*$'[/console]

#114991

К сожалению, сейчас не могу показать вывод, нет компьютера под рукой, завтра покажу

#115141

Macumazan, показываю вывод выражения

<code>

Running tests
=============

Use regex line : ^.* Failed password for invalid user .* from <HOST...
Use log file : /var/log/secure


Results
=======

Failregex
|- Regular expressions:
| [1] ^.* Failed password for invalid user .* from <HOST> port .*$
|
`- Number of matches:
[1] 2 match(es)

Ignoreregex
|- Regular expressions:
|
`- Number of matches:

Summary
=======

Addresses found:
[1]
192.168.1.3 (Fri Jan 07 02:14:50 2011)
192.168.1.3 (Fri Jan 07 02:14:56 2011)

Date template hits:
87 hit(s): Month Day Hour:Minute:Second
0 hit(s): Weekday Month Day Hour:Minute:Second Year
0 hit(s): Weekday Month Day Hour:Minute:Second
0 hit(s): Year/Month/Day Hour:Minute:Second
0 hit(s): Day/Month/Year:Hour:Minute:Second
0 hit(s): Year-Month-Day Hour:Minute:Second
0 hit(s): Day-Month-Year Hour:Minute:Second[.Millisecond]
0 hit(s): TAI64N
0 hit(s): Epoch

Success, the total number of match is 2

However, look at the above section 'Running tests' which could contain important
information.
<code>

#115168

Тогда в /etc/fail2ban/filter.d/sshd.conf надо добавить

text
^.* Failed password for invalid user .* from <HOST> port .*$

к failregex и перезапустить f2b. Ну и проверить еще раз его работу.

#115230

Macumazan, спасибо, добавил строчку - работает, но очень странно: срабатывает один раз и все, дальше на работает, помогает только перезапуск f2b, потом опять один раз сработает и т.д.
Вот вывод выражений из /etc/fail2ban/filter.d/sshd.conf, вашу строчку добавил в конец. Что это может быть?

<code>
lregex = ^%(__prefix_line)s(?:error: PAM: )?Authentication failure for .* from <HOST>\s*$
^%(__prefix_line)sFailed [-/\w]+ for .* from <HOST>(?: port \d*)?(?: ssh\d*)?$
^%(__prefix_line)sROOT LOGIN REFUSED.* FROM <HOST>\s*$
^%(__prefix_line)s[iI](?:llegal|nvalid) user .* from <HOST>\s*$
^%(__prefix_line)sUser \S+ from <HOST> not allowed because not listed in AllowUsers$
^%(__prefix_line)sauthentication failure; logname=\S* uid=\S* euid=\S* tty=\S* ruser=\S* rhost=<HOST>(?:\s+user=.*)?\s*$
^%(__prefix_line)srefused connect from \S+ \(<HOST>\)\s*$
^%(__prefix_line)sAddress <HOST> .* POSSIBLE BREAK-IN ATTEMPT\s*$
^%.* Failed password for invalid user .* from <HOST> port .*$
<code>

#115250

Т.е. после правильного срабатывания ip блокируется? Просто не понятно, что именно не работает дальше: блокировка других ip или что-то ещё?

#115320

Нет под рукой нужного ПК, настроил f2b на другом ПК, добавляю строчку ^%.* Failed password for invalid user .* from <HOST> port .*$, появляется ошибка (ниже)

Starting fail2ban: Traceback (most recent call last):
File "/usr/bin/fail2ban-client", line 401, in ?
if client.start(sys.argv):
File "/usr/bin/fail2ban-client", line 370, in start
return self.__processCommand(args)
File "/usr/bin/fail2ban-client", line 180, in __processCommand
ret = self.__readConfig()
File "/usr/bin/fail2ban-client", line 375, in __readConfig
ret = self.__configurator.getOptions()
File "/usr/share/fail2ban/client/configurator.py", line 65, in getOptions
return self.__jails.getOptions(jail)
File "/usr/share/fail2ban/client/jailsreader.py", line 64, in getOptions
ret = jail.getOptions()
File "/usr/share/fail2ban/client/jailreader.py", line 77, in getOptions
self.__filter.getOptions(self.__opts)
File "/usr/share/fail2ban/client/filterreader.py", line 60, in getOptions
self.__opts = ConfigReader.getOptions(self, "Definition", opts, pOpts)
File "/usr/share/fail2ban/client/configreader.py", line 84, in getOptions
v = self.get(sec, option[1])
File "/usr/lib/python2.4/ConfigParser.py", line 525, in get
return self._interpolate(section, option, value, d)
File "/usr/lib/python2.4/ConfigParser.py", line 593, in _interpolate
self._interpolate_some(option, L, rawval, section, vars, 1)
File "/usr/lib/python2.4/ConfigParser.py", line 634, in _interpolate_some
"'%%' must be followed by '%%' or '(', found: %r" % (rest,))
ConfigParser.InterpolationSyntaxError: '%' must be followed by '%' or '(', found: '%.* Failed password for invalid user .* from <HOST> port .*$'


Если меняю % на ' или вообще убираю %, то f2b не работает. Стоит английский язык в Centos

#115323
smallingg написал:
Т.е. после правильного срабатывания ip блокируется? Просто не понятно, что именно не работает дальше: блокировка других ip или что-то ещё?

После срабатывания ip блокируется, все нормально. Проходит время бана и дальше блокировка не происходит

#115440

У меня работает без '%', но система не centos. Поэтому идей у меня пока нет.

#115509

Macumazan, a вы какую версию f2b используете и какую ОС?

#115559

0.8.4 на gentoo.

Войдите или зарегистрируйтесь, чтобы ответить.