bicicleta anti ddos

E pentru uz personal.

while [ true ]; do 
    for i in $(tail -n 50 access.log | grep 'GET / HTTP/1.' | awk '{print $1}' | uniq -c | sort -rn | head | sed 's/\s/_/g' | sed 's/^_*//g'); do 
        n=$(echo $i | cut -d_ -f1); 
        if [ $n -ge "3" ]; then 
            dos=$(echo $i | cut -d_ -f2);
            if [ -z $(cat /tmp/dos | grep $dos | head -n 1) ]; then
                echo $dos >> /tmp/dos;
                echo $dos
                iptables -I INPUT -s $dos -j DROP; 
            fi;
        fi; 
    done; 
    sleep 10; 
done
Anunțuri

Lasă un răspuns

Completează mai jos detaliile tale sau dă clic pe un icon pentru a te autentifica:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare / Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare / Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare / Schimbă )

Fotografie Google+

Comentezi folosind contul tău Google+. Dezautentificare / Schimbă )

Conectare la %s

%d blogeri au apreciat asta: