hoo adlı üyeden alıntı: mesajı görüntüle
Bash scriptten fazla anlamıyorum,Google'dan bulduğum bir kaç şeyi düzenledim.

Bu script Nginx logunu kontrol ediyor, son 5 bin satırında 10 taneden fazla 404 verdirmiş ipleri Cloudflare api ile blokluyor, denedim bende çalıştı.
Cronla dakikada 1 falan çalıştırırsan işini görür. Unblock için ayrı script gerekecek.

APIMAIL=
APIAUTH=

Cloudflare'den alınacak.


#!/bin/bash

APIMAIL=
APIAUTH=
LIMIT=10
SONSATIR=5000
LOG=/var/log/nginx/access.log
IPBANLOG=/var/log/cloudflareipban.log

for IP in `tail -n $SONSATIR $LOG| grep "" 404 " | awk "{print \$1}" | sort | uniq -c | sort -rn | awk "{if (\$1 > $LIMIT) print \$2}"`

do

      if ! cat $IPBANLOG -n | grep -q $IP
    then
    
     curl -sSX POST "https://api.cloudflare.com/client/v4/user/firewall/access_rules/rules" 
     -H "X-Auth-Email: $APIMAIL" 
     -H "X-Auth-Key: $APIAUTH" 
     -H "Content-Type: application/json" 
     --data "{"mode":"block","configuration":{"target":"ip","value":"$IP"},"notes":"SCRIPTBAN"}"
    
     echo "$IP">>$IPBANLOG
    
    fi
done
İlginiz için teşekkürler. Bu script gayet güzel çalışıyor. Dediğiniz gibi Unblock için script lazım bir de. Bununla ilgili bilgi bulamadım. Siz bulursanız ve bilgilendirirseniz çok sevinirim.