B
Bash Ready | Linux
@bash_ready4.4K подп.
378просмотров
8.6%от подписчиков
25 марта 2026 г.
Score: 416
Bash-совет: анализ неудачных SSH-логинов и бан «горячих» IP 🔒🐚 Хотите быстро узнать, какие IP вызывают максимум неудачных попыток входа в SSH, и оперативно заблокировать самых настырных? Ниже скрипт: #!/usr/bin/env bash # ssh_fail_analyzer.sh # Анализ неудачных SSH-попыток и вывод TOP-10 IP LOG_FILE="/var/log/auth.log" # путь к логам (для CentOS: /var/log/secure) TOPN=10 # сколько IP показывать echo "Топ &#036;TOPN IP с неудачными SSH-входами:" grep -E "Failed password for" "&#036;LOG_FILE" &#092; | grep -oP '(?<=from )[&#092;d&#092;.]+' &#092; | sort &#092; | uniq -c &#092; | sort -rn &#092; | head -n "&#036;TOPN" Как это работает 1. grep -E "Failed password for" Ищем все строки с неудачными попытками. 2. grep -oP '(?<=from )&#092;[&#092;d.]+' С помощью PCRE-регулярки достаём только IP-адреса после слова "from". 3. sort | uniq -c | sort -rn Сортируем, считаем вхождения и выводим в порядке убывания. 4. head -n "&#092;&#036;TOPN" Ограничиваем результат топ-10. 🛠 Можно добавить в crontab ежедневный запуск и автоматическую отправку отчёта на почту или сразу бан «горячих» IP через iptables: # в crontab: каждый день в 00:10 10 0 * /path/to/ssh_fail_analyzer.sh | mail -s "SSH Fail Report" admin@example.com Или сразу блокировать подозрительные IP, если они превысили порог: THRESHOLD=50 for ip in &#036;(grep -E "Failed password for" "&#036;LOG_FILE" &#092; | grep -oP '(?<=from )[&#092;d&#092;.]+' &#092; | sort | uniq -c &#092; | awk -v t="&#036;THRESHOLD" '&#036;1 > t {print &#036;2}'); do iptables -I INPUT -s "&#036;ip" -j DROP echo "&#036;(date): Заблокирован &#036;ip за превышение &#036;THRESHOLD неудачных попыток" >> /var/log/ssh_ban.log done 🚪 Bash Ready | #практика
378
просмотров
1846
символов
Да
эмодзи
Нет
медиа

Другие посты @bash_ready

Все посты канала →
Bash-совет: анализ неудачных SSH-логинов и бан «горячих» IP — @bash_ready | PostSniper