Fail2ban: Difference between revisions

From TÜ Narva Kolledži Wiki
Jump to navigation Jump to search
Content deleted Content added
Adam00 (talk | contribs)
No edit summary
Adam00 (talk | contribs)
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