TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #110 748
Мониторинг перебора паролей и блокировка учетных записей

Безопасность серверов - задача номер один для системного администратора. Перебор паролей (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
  • 👍 6
More from @bash_tex
  1. Oct 13, 2026openat2(): как Linux защищает от выхода за пределы каталога Допустим, приложение должно чи…
  2. Oct 12, 2026xargs против while read: где быстрее и безопаснее Обе конструкции позволяют обработать спи…
  3. Oct 9, 2026BashTex 📱 #мем
  4. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  5. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  6. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →