Безопасность серверов - задача номер один для системного администратора. Перебор паролей (brute force) — одна из самых популярных атак на учетные записи. Чтобы защитить систему, нужно не только обнаруживать такие попытки, но и автоматически блокировать злоумышленников.
Где искать попытки перебора паролей? В Linux информация о входах и попытках авторизации хранится в следующих файлах:
/var/log/auth.log (Debian/Ubuntu).
/var/log/secure (CentOS/RHEL).
Пример попытки перебора паролей в логе:
Oct 28 14:23:45 server sshd[1234]: Failed password for root from 192.168.1.100 port 44567 ssh2
Oct 28 14:23:47 server sshd[1234]: Failed password for root from 192.168.1.100 port 44568 ssh2
Автоматическая блокировка с помощью pam_tally2
pam_tally2 - модуль PAM, позволяющий подсчитывать неудачные попытки входа и блокировать учетные записи.
Настройка блокировки: Откройте файл /etc/pam.d/common-auth (Debian/Ubuntu) или /etc/pam.d/system-auth (CentOS/RHEL).
Добавьте строку:
auth required pam_tally2.so onerr=fail deny=5 unlock_time=300
deny=5: блокировать учетную запись после 5 неудачных попыток.
unlock_time=300: автоматически разблокировать через 5 минут.
Для блокировки учетной записи добавьте строку в тот же файл:
account required pam_tally2.so
Проверка работы:
Посмотрите текущие неудачные попытки:
pam_tally2
Пример вывода:
Login Failures Latest failure
root 3 10/28/24 14:23:45
user1 5 10/28/24 14:25:01
Сбросьте счетчик неудач для пользователя:
pam_tally2 --user=user1 --reset
Дополнительная защита с Fail2Ban
Fail2Ban - мощный инструмент, который анализирует логи и автоматически блокирует IP-адреса злоумышленников через iptables.
Установка:
sudo apt install fail2ban # Для Debian/Ubuntu
sudo yum install epel-release && sudo yum install fail2ban # Для CentOS/RHEL
Настройка для SSH:
Откройте файл /etc/fail2ban/jail.local и добавьте:
[sshd]
enabled = true
maxretry = 5
bantime = 3600
findtime = 600
maxretry=5: количество неудачных попыток.
bantime=3600: блокировка IP на 1 час.
findtime=600: анализировать попытки за последние 10 минут.
Перезапустите Fail2Ban:
sudo systemctl restart fail2ban
Проверка работы:
Просмотр заблокированных IP:
sudo fail2ban-client status sshd
Разблокировка IP:
sudo fail2ban-client unban IP_ADDRESS
---
Рекомендации для повышения безопасности
Используйте ключи SSH: Полностью отключите вход по паролю, включив аутентификацию по ключам SSH.
Ограничьте доступ по IP: Настройте файлы hosts.allow и hosts.deny или используйте брандмауэр.
Перенесите SSH на нестандартный порт: Это затруднит автоматизированные атаки.
Регулярно проверяйте логи: Используйте скрипты для автоматического анализа логов на наличие подозрительных активностей.
BashTex 📱 #linux #utils