💥 Автоматическая блокировка IP при большом количестве запросов 🛡️👮♂️ Если на сервере замечена подозрительная активность (например, слишком много запр…
Если на сервере замечена подозрительная активность (например, слишком много запросов от одного IP), можно автоматически блокировать таких «шумных» клиентов с помощью iptables и awk:
#!/bin/bash
# автор: https://t.me/bash_srv
# Лимит запросов за минуту
LIMIT=100
# Лог файл nginx или apache
LOG_FILE="/var/log/nginx/access.log"
# Найдём IP, превысившие лимит
awk '{print $1}' "$LOG_FILE" | sort | uniq -c | sort -nr | awk -v limit="$LIMIT" '$1 > limit {print $2}' | while read ip; do
# Проверим, не заблокирован ли уже
if ! iptables -L INPUT -v -n | grep -q "$ip"; then
iptables -A INPUT -s "$ip" -j DROP
echo "$(date): Заблокирован IP $ip" >> /var/log/ip_block.log
fi
done
📌 Что делает скрипт:
- Анализирует access.log
- Находит IP с количеством запросов > LIMIT
- Блокирует их через iptables
🧠 Советы:
- Запускай раз в 5 минут через cron
- Убедись, что iptables доступен и ты не блокируешь свой IP
👉 @bash_srv