Уже через несколько дней после установки сервера с смотрящим наружу ssh обычно начинаются попытки взлома. Самый распространенный способ борьбы с подбором паролей – установка на сервер fail2ban.

1. Установка Fail2ban

Fail2ban базируется на простой и понятной концепции. Она включает в себя три стадии:
1. Просмотр логов по определенным в шаблоне параметрам;
2. Проверка на основе таких критериев, как ограничение числа попыток ввода пароля;
3. Создание правила в iptables для блокировки соответствующего ip в течении периода времени

Установка:

sudo apt-get install fail2ban

Fail2ban начинает работать сразу после установки, но необходимо произвести минимальную настройку.

2. Создание файла конфигурации

Создатели программы рекомендуют не редактировать файл конфигурации, который ставится по умолчанию, а сделать его копию:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Все правки конфигурации мы будем производить в файле /etc/fail2ban/jail.local, этот файл будет подключен автоматически и его настройки имеют наивысший приоритет.

3. Глобальные настройки

Правила блокировки хранятся в одном файле под названием jail.conf в каталоге /etc/fail2ban

sudo nano /etc/fail2ban/jail.local

Рассмотрим, что в этом файле

[DEFAULT]

ignoreip = 127.0.0.1/8
bantime  = 600
findtime = 600
maxretry = 3

banaction = iptables-multiport
action = %(action_)s

Ignoreip указывает на IP – адрес , которые Fail2ban следует игнорировать.  Например, Вам необходимо заходить на сервер из дома.   Вы можете просто добавить свой IP или диапазон адресов, разделенные пробелом:

ignoreip = 127.0.0.1/8 192.168.0.1/24

Bantime определяет а какой срок вы хотите блокировать атакующего. По умолчанию это 10 минут.

findtime – интервал времени в секундах, в течение которого программой будет определяться подозрительная активность.

maxretry – число попыток ввода пароля в течение findtime секунд до попадания IP-адреса в черный список.

После редактирования настроек необходимо перезапустить сервис:

sudo service fail2ban restart

 

Защита SSH

Файл конфигурации fail2ban имеет по умолчанию подготовленные секции для различных сервисов, поэтому защита какого-либо из них требует минимальных усилий и знаний. Итак, откроем снова файл конфигурации /etc/fail2ban/jail.local и найдём в нём секцию [sshd] (в вашей системе это может быть [ssh] или [ssh-iptables], если это так, то используйте ту секцию, которая у вас есть). Пробежимся по параметрам (в большинстве своём они не являются обязательными, и если не будут указаны, то применяются настройки по умолчанию):

  • enabled – состояние (true/false) фильтра, показывающее, включен он или выключен.
  • filter – какой фильтр применяется (со списком фильтров можно ознакомиться в /etc/fail2ban/filter.d/).
  • action – действия, выполняемые при бане IP-адреса.
  • logfile – файл с логами, которые будет отслеживать fail2ban.

Исходя из этого, конфиг, банящий IP на 12 часов, если с него в течение 10 минут было произведено 3 неудачных попытки авторизоваться, выглядит так:

[sshd]
enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
logpath  = /var/log/auth.log
findtime    = 600
maxretry    = 3
bantime     = 43200

Сохраните изменения (в nano это Ctrl+O) и перезапустите fail2ban для применения настроек:

sudo service fail2ban restart

5. Проверка настроек

Этот шаг не является обязательным, но всё же имеет смысл проверить, что всё работает как было задумано. Посмотреть полный список правил, которыми руководствуется программа при мониторинге активности можно с помощью команды

sudo iptables -L

Также для выполнения проверки достаточно несколько раз ввести неправильный пароль при авторизации и убедиться, что дальнейшие запросы от вас не обрабатываются. Следует обратить внимание на следующее:

  • желательно проверку производить не с того же IP, с которого осуществляете настройку (чтобы иметь возможность разбанить себя и отредактировать конфиг).
  • для проверки время бана лучше выставить поменьше.
  • необходимо убедиться, что IP, с которого производится проверка, не был указан в ignoreip.

Важно знать, как удалить IP-адрес из чёрного списка.

Заключение

Мы рассмотрели использование fail2ban для защиты от перебора паролей по ssh. Точно также можно защитить FTP, web-сервер, почтовый сервер и т.п. Это спасет от многих проблем.

 

Установка и настройка Fail2ban
Метки:            

Установка и настройка Fail2ban: 1 комментарий

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *