Fail2ban — защита от брутфорса ( подбора пароля) в Ubuntu или Debian.: различия между версиями
imported>Vix Нет описания правки |
imported>Vix Нет описания правки |
||
Строка 90: | Строка 90: | ||
* где xxx.xxx.xxx.xxx - ip адрес который надо разблокировать. | * где xxx.xxx.xxx.xxx - ip адрес который надо разблокировать. | ||
''' | |||
Дополнительно:''' | |||
<hr> | |||
* [http://osticket.biz/?p=1876 fail2ban & postfix] |
Версия от 14:44, 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 адрес который надо разблокировать.
Дополнительно: