Начав эксплуатацию сервера, вы столкнетесь с многочисленными внешними атаками. Атаки с использованием SSH для брутфорса, попытки несанкционированного входа в веб-приложения, сканирование портов - это повседневные угрозы. Игнорирование этих угроз может привести к проникновению в систему. Fail2Ban - это легкое и мощное решение для предотвращения вторжений на основе Linux, которое помогает решить эти проблемы.
Fail2Ban автоматически обнаруживает и блокирует подозрительные IP-адреса. Это позволяет администраторам защищать сервер без особых усилий.
Как установить Fail2Ban
Fail2Ban доступен в виде пакета почти для всех дистрибутивов Linux, поэтому установка очень проста.
Ubuntu/Debian
sudo apt update
sudo apt install fail2ban
После завершения установки запустите службу и настройте автоматический запуск при загрузке.
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
Как настроить Fail2Ban
Fail2Ban использует файл /etc/fail2ban/jail.conf
в качестве основного конфигурационного файла, однако рекомендуется не редактировать этот файл напрямую, а создавать файл /etc/fail2ban/jail.local
для настройки.
Создание файла jail.local:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Основные параметры настройки: - bantime: период блокировки (в секундах) - findtime: диапазон времени, который считается атакой (в секундах) - maxretry: максимальное количество допустимых попыток неудачи
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
Примеры практического применения
1. Блокировка SSH брутфорса
При настройке jail [sshd]
если происходит более 5 неудачных попыток входа, этот IP будет заблокирован на 1 час.
2. Блокировка атак на вход в Apache
[apache-auth]
enabled = true
filter = apache-auth
logpath = /var/log/apache2/error.log
maxretry = 3
Если обнаруживаются 3 неудачные попытки авторизации на веб-сервере, будет осуществлена блокировка.
Как мониторить Fail2Ban
Существует несколько способов мониторинга работы Fail2Ban.
1. Проверка статуса через fail2ban-client
Вы можете проверить статус конкретного jail (например, sshd).
sudo fail2ban-client status sshd
Пример вывода:
Status for the jail: sshd
|- Filter
| |- Currently failed: 2
| |- Total failed: 15
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 1
|- Total banned: 3
`- Banned IP list: 192.168.1.100
2. Мониторинг лог-файлов
Работа Fail2Ban записывается в файл /var/log/fail2ban.log
.
tail -f /var/log/fail2ban.log
Этим способом можно в реальном времени следить за событиями блокировки и разблокировки.
Принцип работы Fail2Ban
-
Мониторинг логов: Fail2Ban постоянно отслеживает заданные лог-файлы. (например,
/var/log/auth.log
,/var/log/apache2/error.log
) -
Применение фильтров: Определенные шаблоны (неудачные входы, ошибки аутентификации и т.д.) обнаруживаются с помощью фильтров.
-
Исполнение действий: Если превышается установленный
maxretry
, блокировка IP осуществляется через iptables или выполняется команда для межсетевого экрана, такая как firewall-cmd, nftables. -
Автоматическое снятие блокировки: По истечении
bantime
блокировка автоматически снимается.
Fail2Ban имеет модульную структуру, что позволяет устанавливать независимый мониторинг и блокировку для различных служб (jail), что укрепляет безопасность для множества сервисов, выходящих за рамки простой защиты SSH.
Как установить постоянную блокировку для атак на SSH
Важно активно справляться с атаками на SSH. В Fail2Ban, установив bantime
на -1
, вы можете установить постоянную блокировку.
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
bantime = -1
findtime = 600
maxretry = 5
Таким образом, IP, у которого больше 5 неудачных попыток аутентификации SSH, будет постоянно заблокирован и не сможет получить доступ к серверу.
[Советы для продвинутых] Понимание базовой блокировки в Fail2Ban
Fail2Ban работает по умолчанию, не требуя отдельного определения action
. Это связано с тем, что в настройках по умолчанию включены команды блокировки с использованием iptables.
- Если
action
не определен отдельно, применяется настройкаaction = %(action_)s
из раздела[DEFAULT]
. %(action_)s
выполняет действия по блокировке вредоносных IP, используя внутреннюю командуiptables
.- Следовательно, IP будет заблокирован с помощью iptables, даже если вы не пишете
action
отдельно.
Пример базовой команды блокировки (см. action_.conf)
iptables -I INPUT -s <ip> -j REJECT
Таким образом, Fail2Ban автоматически управляет iptables для блокировки атакующих IP.
Внимание:
- Если вы хотите использовать другие инструменты межсетевой блокировки, такие как UFW или firewalld, вам нужно будет явно установить action
.
- Кроме того, стоит учитывать, что правила блокировки могут исчезнуть после перезагрузки сервера, поэтому рекомендуется настроить автоматический запуск службы Fail2Ban при загрузке.
Дополнительно вы можете создавать и применять различные фильтры или настраивать уведомления по электронной почте и другие продвинутые настройки.
С момента, как ваш сервер подвергся воздействию Интернета, безопасность становится обязательной, а не опциональной.
Одно мгновение беспечности может привести к катастрофическим последствиям.
Fail2Ban станет надежным щитом, который заблокирует эти угрозы заранее.
Не забывайте, что именно в данный момент кто-то может нападать на ваш сервер.
댓글이 없습니다.