Как установить и настроить Fail2ban в Ubuntu 20.04 LTS

12 set 2022 3 min di lettura
Как установить и настроить Fail2ban в Ubuntu 20.04 LTS
Indice dei contenuti

Введение

Любые службы, открытые для сети, могут стать потенциальной целью. Мы можем легко заметить многочисленные незапланированные попытки подключения, читая файлы журнала нашего сервера.

Fail2ban — это инструмент, который может помочь нам отслеживать и блокировать все несанкционированные подключения к нашему серверу.

Fail2ban при необходимости автоматически изменяет конфигурацию брандмауэра IPtables, чтобы блокировать неавторизованные IP-адреса.

В этом руководстве мы покажем вам, как установить и использовать Fail2ban на сервере Ubuntu 20.04 LTS Focal Fossa.

Если вы хотите установить Fail2ban на удаленный сервер, продолжайте читать, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh root@IP_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

Если вы не используете пользователя root, вы можете войти в систему с другим именем пользователя, используя ту же команду, а затем изменить root на свое имя пользователя:

ssh nome_utente@IP_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Установить Fail2ban

Fail2ban доступен в стандартных репозиториях Ubuntu, поэтому его можно легко установить через apt:

sudo apt update
sudo apt install fail2ban

Мы можем найти файлы конфигурации Fail2ban в каталоге /etc/fail2ban. Основной файл для изменения — jail.conf.

jail.conf может быть перезаписан обновлениями пакета, поэтому я рекомендую сделать копию этого файла, которую мы назовем jail.local, это перезапишет исходный файл. Таким образом, у нас не будет проблем даже после обновления пакета Fail2ban.

Основной раздел jail.conf (jail.local, наша копия) называется [DEFAULT]. Затем мы находим различные разделы отдельных служб, таких как [sshd].

Давайте создадим наш файл jail.local из терминала:

sudo nano /etc/fail2ban/jail.local

Вставляем следующий текст:

[DEFAULT]
 # Ban hosts for one hour:
 bantime = 3600

 # Override /etc/fail2ban/jail.d/00-firewalld.conf:
 banaction = iptables-multiport

 [sshd]
 enabled = true

Мы установили новый час бана по умолчанию для всех служб. bantime — это время, на которое IP-адрес блокируется. Когда суффикс не указан, по умолчанию используются секунды. По умолчанию время bantime установлено на 10 минут. Как правило, большинство пользователей захотят установить более длительный период блокировки. Измените значение на свое усмотрение:

bantime = 1d

Если вы хотите установить постоянный бан, измените значение параметра bantime на -1:

bantime = -1

Сохраните и закройте файл.

Теперь мы можем перезапустить службу Fail2ban с помощью systemctl:

sudo systemctl restart fail2ban

Чтобы проверить статус Fail2ban:

sudo fail2ban-client status

Для получения более подробной информации, такой как список запрещенных IP-адресов, введите следующую команду:

sudo fail2ban-client status sshd

Чтобы отслеживать последние действия Fail2ban:

sudo tail -F /var/log/fail2ban.log

Настроить Fail2Ban

Вот несколько советов по настройке Fail2ban.

Давайте снова откроем файл jail.local:

sudo nano /etc/fail2ban/jail.local

В разделе [ПО УМОЛЧАНИЮ], если мы хотим получать уведомления по электронной почте от Fail2ban, добавьте следующие элементы:

destemail = [email protected]
 action = %(action_mwl)s

Вы можете добавить IP-адреса, диапазоны IP-адресов или хосты, которые вы хотите исключить из бана, в директиву ignoreip. Здесь вы должны добавить IP-адрес вашего локального ПК и любых других машин, которые вы хотите добавить в белый список.

Раскомментируйте строку, начинающуюся с ignoreip и добавьте свои IP-адреса через пробел:

ignoreip = 127.0.0.1/8::1 123.123.123.123 192.168.1.0/24

По умолчанию для ssh -соединений используется порт 22. Если вы используете другой порт, вам необходимо изменить конфигурацию:

В секции [sshd] под enabled=true добавляем порт:

port = LA_TUA_PORTA

Давайте добавим путь к файлу журнала, который мы собираемся использовать:

logpath = /var/log/auth.log

Мы можем изменить количество попыток входа до бана:

maxretry = 3

Резюме:


[DEFAULT]
 # Ban hosts for one hour:
 bantime = 3600
 destemail = [email protected]
 action = %(action_mwl)s
 ignoreip = TUO_IP

 # Override /etc/fail2ban/jail.d/00-firewalld.conf:
 banaction = iptables-multiport

 [sshd]
 enabled = true
 port = LA_TUA_PORTA
 logpath = /var/log/auth.log
 maxretry = 3

Сохраните и закройте файл.

Перезапустите Fail2ban:

sudo service fail2ban restart

Чтобы проверить статус Fail2ban:

sudo fail2ban-client status

Блокировка IP-адреса

Чтобы разблокировать IP-адрес вручную, введите в терминале следующую команду:

fail2ban-client set sshd unbanip INDIRIZZO_IP

Fail2ban тюрьмы

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

Fail2ban поставляется с несколькими джейлами для разных сервисов. Вы также можете создавать свои собственные конфигурации тюрьмы.

По умолчанию включена только тюрьма ssh. Чтобы включить джейл, вам нужно добавить enable enabled = true после названия джейла. В следующем примере показано, как включить джейл proftpd:

[proftpd]

 port = ftp,ftp-data,ftps,ftps-data
 logpath = %(proftpd_log)s
 backend = %(proftpd_backend)s

Настройки, которые мы обсуждали в предыдущем разделе, могут быть установлены для каждой тюрьмы. Вот пример:

[sshd]
 enabled = true
 maxretry = 3
 findtime = 1d
 bantime = 4w
 ignoreip = 127.0.0.1/8 23.34.44.55

Фильтры находятся в каталоге /etc/fail2ban/filter.d, хранящемся в файле с тем же именем, что и джейл. Если у вас есть специальные настройки и опыт работы с регулярными выражениями, вы можете точно настроить фильтры.

Всякий раз, когда файл конфигурации изменяется, служба Fail2ban должна быть перезапущена, чтобы изменения вступили в силу:

sudo systemctl restart fail2ban

Вывод

Установка и настройка Fail2ban на Ubuntu 20.04 LTS Focal Fossa завершена.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.