Fail2ban: Difference between revisions
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
= fail2ban - программа для предотврашения атак типа bruteforce = |
|||
Adam Alidibirov |
|||
Открывая сервер для интернета нужно быть уверенным что ваш сервер надежно защищен, должны стоять последние обновления безопасности и безопасные пароли, все лишние порты закрыты. Однако почти всегда для подключения к серверу остается доступ по SSH с паролем, что небезопасно, даже если вы установили сложные и длинный пароль. Если вы откроете логи на своем сервере, по пути <code>/var/logs/access-log*</code>, то обнаружите много неизвестных вам IP-адресов пытающихся получить доступ к серверу. Это боты, которые ищут в сети сервера и пытаются методом Bruteforce угадать пароль от сервера. В случае если нет защиты от этой атаки то угадать пароль удастся довольно быстро, ведь пароль подбирает не человек а программа которая за минуту может сгенерировать больше 10000 паролей. Для борьбы с этим был создан fail2ban, принцип работы которого прост. Программа читает логи и если видит что кто-то пытается пробовать вводить разные пароли, отправляет этого клиента в черный список или делает еще какие-то действия. |
|||
== Установка == |
|||
Установка максимально простая. Не требует никаких настроек, ведь из коробки приложение уже справляется с поставленной задачей. |
|||
<code>sudo apt-get install fail2ban</code> |
|||
после чего нужно сделать так чтобы приложение запускалось автоматически |
|||
<code>sudo systemctl start fail2ban</code> <code>sudo systemctl enable fail2ban</code> |
|||
== Настройка == |
|||
Все конфигурационные файлы находятся по пути <code>etc/fail2ban</code>. Все файлы в формате <code>.conf</code>, в случае необходимости можно создать файл с тем же именем но в указав формат <code>.local</code>. Таким образом вы можете менять настройки. В файлах есть хорошая документация, так что всегда можно открыть любой файл и прочитать что он делает. Мы же попробуем настроить fail2ban так чтобы он добавлял клиента в черный список если человек ввел пароль неправильно 3 раза.(по умолчанию: 5 попыток) |
|||
<code>cd /etc/fail2ban/</code> |
|||
далее открываем конфигурационный файл удобным редактором. Я использую Vim |
|||
<code>sudo vim jail.conf</code> |
|||
после чего нахожу такие данные |
|||
<pre>bantime = 10m |
|||
findtime = 10m |
|||
maxretry = 5</pre> |
|||
<code>bantime</code> - время на которое блокируется клиент <code>findtime</code> - в случае если клиент ввел <code>maxretry</code> кол-во раз неверный пароль в течении этого <code>findtime</code> времени, то приложение его отправляет в черный список <code>maxretry</code> - кол-во попыток входа после которого пользователь отправляется в черный список |
|||
Я также рекомендую увеличить время на которое блокируется клиент. После введенных изменений сохраните файл. В vim это делается командой |
|||
<code>:wq</code> |
|||
После чего вам необходимо убедиться в корректности конфигурационного файла введя |
|||
<code>sudo fail2ban-client reload</code> |
|||
В случае если ошибок нет вы увидите: |
|||
<code>OK</code> |
|||
[[File:C08246_fail2ban01.png|600px]] |
|||
Latest revision as of 22:21, 8 December 2022
fail2ban - программа для предотврашения атак типа bruteforce
Открывая сервер для интернета нужно быть уверенным что ваш сервер надежно защищен, должны стоять последние обновления безопасности и безопасные пароли, все лишние порты закрыты. Однако почти всегда для подключения к серверу остается доступ по SSH с паролем, что небезопасно, даже если вы установили сложные и длинный пароль. Если вы откроете логи на своем сервере, по пути /var/logs/access-log*, то обнаружите много неизвестных вам IP-адресов пытающихся получить доступ к серверу. Это боты, которые ищут в сети сервера и пытаются методом Bruteforce угадать пароль от сервера. В случае если нет защиты от этой атаки то угадать пароль удастся довольно быстро, ведь пароль подбирает не человек а программа которая за минуту может сгенерировать больше 10000 паролей. Для борьбы с этим был создан fail2ban, принцип работы которого прост. Программа читает логи и если видит что кто-то пытается пробовать вводить разные пароли, отправляет этого клиента в черный список или делает еще какие-то действия.
Установка
Установка максимально простая. Не требует никаких настроек, ведь из коробки приложение уже справляется с поставленной задачей.
sudo apt-get install fail2ban
после чего нужно сделать так чтобы приложение запускалось автоматически
sudo systemctl start fail2ban sudo systemctl enable fail2ban
Настройка
Все конфигурационные файлы находятся по пути etc/fail2ban. Все файлы в формате .conf, в случае необходимости можно создать файл с тем же именем но в указав формат .local. Таким образом вы можете менять настройки. В файлах есть хорошая документация, так что всегда можно открыть любой файл и прочитать что он делает. Мы же попробуем настроить fail2ban так чтобы он добавлял клиента в черный список если человек ввел пароль неправильно 3 раза.(по умолчанию: 5 попыток)
cd /etc/fail2ban/
далее открываем конфигурационный файл удобным редактором. Я использую Vim
sudo vim jail.conf
после чего нахожу такие данные
bantime = 10m findtime = 10m maxretry = 5
bantime - время на которое блокируется клиент findtime - в случае если клиент ввел maxretry кол-во раз неверный пароль в течении этого findtime времени, то приложение его отправляет в черный список maxretry - кол-во попыток входа после которого пользователь отправляется в черный список
Я также рекомендую увеличить время на которое блокируется клиент. После введенных изменений сохраните файл. В vim это делается командой
:wq
После чего вам необходимо убедиться в корректности конфигурационного файла введя
sudo fail2ban-client reload
В случае если ошибок нет вы увидите:
OK