Fail2ban — защита от брутфорса ( подбора пароля) в Ubuntu или Debian.: различия между версиями

Материал из support.qbpro.ru
imported>Vix
Нет описания правки
imported>Vix
Нет описания правки
 
(не показаны 22 промежуточные версии этого же участника)
Строка 19: Строка 19:
  # mta через что отправлять письма о банах, пишем тут тот MTA, который стоит у
  # mta через что отправлять письма о банах, пишем тут тот MTA, который стоит у
  вас на сервере Exim/sendmail/etc;
  вас на сервере Exim/sendmail/etc;
  mta = sendmail  
  mta = sendmail
 
.. ...
  # рассмотрим одну секцию
  # рассмотрим одну секцию
  [ssh]
  [ssh]
Строка 32: Строка 31:
  # количество попыток, после которых банят.
  # количество попыток, после которых банят.
  maxretry = 4
  maxretry = 4
....


Не забываем перезапускать fail2ban после изменения конфигурации командой:
Не забываем перезапускать fail2ban после изменения конфигурации командой:
Строка 38: Строка 36:


* [http://www.linuxjournal.su/?p=1998 взято тут...]
* [http://www.linuxjournal.su/?p=1998 взято тут...]
==Если Вы используете правила iptables для fail2ban, в логах будут ошибки:==
2011-11-03 15:36:18,402 fail2ban.jail  : INFO  Jail 'ssh-ddos' started
2011-11-03 15:36:18,410 fail2ban.jail  : INFO  Jail 'ssh' started
2011-11-03 15:51:41,522 fail2ban.actions.action: ERROR  iptables -D INPUT -p tcp -m multiport --dports ssh -j fail2ban-ssh-ddos
iptables -F fail2ban-ssh-ddos
iptables -X fail2ban-ssh-ddos returned 100
2011-11-03 15:51:41,523 fail2ban.jail  : INFO  Jail 'ssh-ddos' stopped
2011-11-03 15:51:42,450 fail2ban.actions.action: ERROR  iptables -D INPUT -p tcp -m multiport --dports ssh -j fail2ban-ssh
iptables -F fail2ban-ssh
iptables -X fail2ban-ssh returned 100
Фиксим эти ошибки.
Открываем /usr/bin/fail2ban-client. Находим:
beautifier.setInputCmd(c)
и выше добавляем строку:
time.sleep(0.1)
Должно выглядеть примерно так:
def __processCmd(self, cmd, showRet = True):
        beautifier = Beautifier()
        for c in cmd:
            time.sleep(0.1)
            beautifier.setInputCmd(c)
После рестарт fail2ban:
/etc/init.d/fail2ban restart
Смотрим логи теперь, в котором уже есть заблокированные IP :
2011-11-01 03:49:47,223 fail2ban.actions: WARNING [vsftpd] Ban 64.59.72.176
2011-11-01 06:40:54,290 fail2ban.actions: WARNING [ssh] Ban 58.62.173.159
2011-11-02 02:17:28,560 fail2ban.actions: WARNING [ssh] Ban 87.204.34.123
2011-11-02 06:02:45,437 fail2ban.actions: WARNING [ssh] Ban 180.139.138.178
2011-11-02 11:10:45,424 fail2ban.actions: WARNING [ssh] Ban 196.22.160.48
2011-11-02 20:20:45,118 fail2ban.actions: WARNING [ssh] Ban 184.164.158.82
2011-11-03 08:35:48,926 fail2ban.actions: WARNING [ssh] Ban 174.46.89.102
* [http://vbsupport.org/forum/showthread.php?t=42078&page=2 взято тут]
==Как удалить из fail2ban заблокированный ip==
Вывести список заблокированных ip адресов можно с помощью команды:
# iptables -L -n
Удалить, например, из таблицы fail2ban-roundcube ip можно с помощью команды:
# iptables -D fail2ban-roundcube -s xxx.xxx.xxx.xxx -j DROP
или
# iptables -D fail2ban-ssh -s 91.205.177.62 -j REJECT
* где xxx.xxx.xxx.xxx - ip адрес который надо разблокировать.
'''
Дополнительно:'''
<hr>
* [http://osticket.biz/?p=1876 fail2ban & postfix]
* [https://rusadmin.biz/zashhita-i-bezopasnost/spam-boty-postfix-i-fail2ban/ Спам-боты, postfix и fail2ban]
* [https://toster.ru/q/654760 Как подружить postfix и fail2ban?]

Текущая версия от 14:45, 2 ноября 2019

ail2ban — это инструмент, который отслеживает в log-файлах попытки обратится к сервисам, таким, как SSH, FTP, SMTP, HTTP и другим, и если находит постоянно повторяющиеся неудачные попытки авторизации с одного и того же IP-адреса или хоста, fail2ban блокирует дальнейшие попытки с этого IP-адреса/хоста, с помощью правила iptables(ipfw) или host.deny.

$ apt-get install fail2ban

По умолчанию мы уже получаем намного более защищенный ssh. После 3х попыток неправильного ввода пароля с одного ip адреса — он отправляется в бан. Тут же есть уже готовые примеры для ssh, exim, postfix, cyrus-imap, apache, lighttpd, named. Рассмотрим более детально некоторые параметры. Основная часть настроек fail2ban хранится в конфигурационном файле

/etc/fail2ban/jail.conf
$ nano /etc/fail2ban/jail.conf


# destemail - email-адрес, на который будут отсылаться уведомления о
блокировании хостов.
destemail = root@localhost
# mta через что отправлять письма о банах, пишем тут тот MTA, который стоит у
вас на сервере Exim/sendmail/etc;
mta = sendmail
# рассмотрим одну секцию
[ssh]
# включаем сервис
enabled = true
port    = ssh
filter  = sshd
# какой лог парсить, на тот случай, если вы изменяли дефолтный путь
logpath  = /var/log/auth.log
# количество попыток, после которых банят.
maxretry = 4

Не забываем перезапускать fail2ban после изменения конфигурации командой:

$ /etc/init.d/fail2ban restart

Если Вы используете правила iptables для fail2ban, в логах будут ошибки:

2011-11-03 15:36:18,402 fail2ban.jail   : INFO   Jail 'ssh-ddos' started
2011-11-03 15:36:18,410 fail2ban.jail   : INFO   Jail 'ssh' started
2011-11-03 15:51:41,522 fail2ban.actions.action: ERROR  iptables -D INPUT -p tcp -m multiport --dports ssh -j fail2ban-ssh-ddos
iptables -F fail2ban-ssh-ddos
iptables -X fail2ban-ssh-ddos returned 100
2011-11-03 15:51:41,523 fail2ban.jail   : INFO   Jail 'ssh-ddos' stopped
2011-11-03 15:51:42,450 fail2ban.actions.action: ERROR  iptables -D INPUT -p tcp -m multiport --dports ssh -j fail2ban-ssh
iptables -F fail2ban-ssh
iptables -X fail2ban-ssh returned 100

Фиксим эти ошибки. Открываем /usr/bin/fail2ban-client. Находим:

beautifier.setInputCmd(c)

и выше добавляем строку:

time.sleep(0.1)

Должно выглядеть примерно так:

def __processCmd(self, cmd, showRet = True):
       beautifier = Beautifier()
       for c in cmd:
           time.sleep(0.1)
           beautifier.setInputCmd(c)

После рестарт fail2ban:

/etc/init.d/fail2ban restart

Смотрим логи теперь, в котором уже есть заблокированные IP :

2011-11-01 03:49:47,223 fail2ban.actions: WARNING [vsftpd] Ban 64.59.72.176
2011-11-01 06:40:54,290 fail2ban.actions: WARNING [ssh] Ban 58.62.173.159
2011-11-02 02:17:28,560 fail2ban.actions: WARNING [ssh] Ban 87.204.34.123
2011-11-02 06:02:45,437 fail2ban.actions: WARNING [ssh] Ban 180.139.138.178
2011-11-02 11:10:45,424 fail2ban.actions: WARNING [ssh] Ban 196.22.160.48
2011-11-02 20:20:45,118 fail2ban.actions: WARNING [ssh] Ban 184.164.158.82
2011-11-03 08:35:48,926 fail2ban.actions: WARNING [ssh] Ban 174.46.89.102

Как удалить из fail2ban заблокированный ip

Вывести список заблокированных ip адресов можно с помощью команды:

# iptables -L -n

Удалить, например, из таблицы fail2ban-roundcube ip можно с помощью команды:

# iptables -D fail2ban-roundcube -s xxx.xxx.xxx.xxx -j DROP

или

# iptables -D fail2ban-ssh -s 91.205.177.62 -j REJECT
  • где xxx.xxx.xxx.xxx - ip адрес который надо разблокировать.

Дополнительно: