Fail2ban — это программное обеспечение для защиты серверов от атак на основе перебора паролей и других видов злоупотребления. Основной задачей Fail2ban является мониторинг логов различных служб, таких как SSH, Apache, Nginx, и других, и блокировка IP-адресов, с которых происходит подозрительная активность.
Функционал Fail2ban
- Мониторинг логов: Fail2ban анализирует журналы событий различных служб на сервере. Эти журналы содержат информацию о попытках входа, запросах и другой активности, происходящей на сервере.
- Поиск неудачных попыток: Fail2ban ищет неудачные попытки входа или другие события, которые могли бы указывать на злоумышленную активность. Это может включать в себя, например, неудачные попытки входа в SSH с использованием неправильных паролей.
- Блокировка IP-адресов: Когда Fail2ban обнаруживает несколько неудачных попыток входа с одного IP-адреса (или другую подозрительную активность), он автоматически добавляет этот IP-адрес в список блокированных. Обычно это делается путем настройки правил брандмауэра для блокировки доступа с этого IP-адреса.
- Временное блокирование: Fail2ban может настраиваться так, чтобы блокировка была временной. Это означает, что IP-адрес будет заблокирован только на определенное время, что позволяет избежать блокировки легитимных пользователей навсегда.
Установка Fail2ban на VPS
Для установки и настройки Fail2ban на сервере Linux, вы можете выполнить следующие шаги. Приведенная инструкция применима для большинства дистрибутивов Linux, таких как Ubuntu, CentOS, Debian и других. Вам потребуются права администратора (root) или sudo-права для выполнения этих команд.
Шаг 1: Установка Fail2ban
Откройте терминал на сервере.
Убедитесь, что пакеты на вашем сервере обновлены:
sudo apt update
# или для CentOS
sudo yum update
Установите Fail2ban:
Для Ubuntu/Debian:
sudo apt install fail2ban
Для CentOS/RHEL:
sudo yum install epel-release # Для активации репозитория EPEL (требуется один раз)
sudo yum install fail2ban
Шаг 2: Настройка Fail2ban
Скопируйте файл настройки по умолчанию в файл с расширением .local
(это позволит вам вносить изменения безопасно, не переписывая файл по умолчанию):
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Отредактируйте файл /etc/fail2ban/jail.local
в соответствии с вашими потребностями. Например, вы можете настроить правила для конкретных служб и определить интервал блокировки, максимальное количество неудачных попыток и другие параметры. Отредактируйте секции [sshd]
и [DEFAULT]
:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
findtime = 600
bantime = 3600
[DEFAULT]
ignoreip = 127.0.0.1/8
bantime = 3600
В приведенном примере настройки Fail2ban будут следить за SSH-логами (/var/log/auth.log
), и если происходит более 3 неудачных попыток входа в течение 10 минут, то IP-адрес будет заблокирован на 1 час (bantime = 3600
).
Шаг 3: Запуск и активация Fail2ban
Запустите Fail2ban:
sudo systemctl start fail2ban
Включите Fail2ban, чтобы он автоматически запускался при загрузке системы:
sudo systemctl enable fail2ban
Шаг 4: Проверка статуса Fail2ban
Вы можете проверить статус Fail2ban, чтобы убедиться, что он работает:
sudo systemctl status fail2ban
Вы должны увидеть вывод, который сообщает, что служба работает и активна.
Теперь Fail2ban будет мониторить журналы и блокировать IP-адреса, которые слишком много раз пытаются войти в систему с неверными учетными данными. Вы можете настроить его для мониторинга других служб и настраивать параметры блокировки в соответствии с вашими потребностями.
Помните, что это базовая настройка, и в зависимости от вашей конфигурации сервера и потребностей безопасности, вам могут потребоваться дополнительные шаги для более точной настройки Fail2ban.