Введение
Любые службы, открытые для сети, могут стать потенциальной целью. Мы можем легко заметить многочисленные незапланированные попытки подключения, читая файлы журнала нашего сервера.
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 завершена.