• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Angrifer Blockscript

ich hab mir mal mein http Errorlog angeschaut und mehrere Script-Angriffe auf mein Visas festgestellt.

nun ich bin keiner der sowas gerne zulässt ;)

nach enigem hin und her bin hab ich mich für entschieden den tcpwrapper zu verwenden und alle die ich nicht mag in die /etc/hosts.deny zu verbannen.

Für die "Angriffe" hab lese ich der einachheit halber die /var/log/apache/error.log aus und zähle einfach mal wer da alles versucht auf nicht vorhandene Seiten zuzugreifen.

Wenn der Schwellenwert von 10 Überschritten wird, wird die IP in die hosts.deny hinzugefügt,

Herausgekommen ist:

Code:
# !/bin/bash
# 
# Script von GMastaP für den http://www.linux-club.de 
# 

#Festlagen der Variabelen
APA_EIN=/var/log/apache2/error_log
HOS_AIN=/etc/hosts.deny
DATE=`date`

# anlegen der Kopfzeile der 
echo -e "# /etc/hosts.deny \n# See 'man tcpd' and 'man 5 hosts_access' as well as /etc/hosts.allow \n# for a detailed description.\n" > $HOS_AIN
echo -e "rsh : ALL \nhttp-rman : ALL EXCEPT LOCAL\n" >> $HOS_AIN

# Urzeit der letzten aktualisierung
echo -e "#"$DATE"\n" >> $HOS_AIN

# herausfiltern der Einträge und eintag in die hosts.deny
cat $APA_EIN | awk '{print $8}' | sed 's/]//' | sort | uniq -c | sort -n | awk '{if ( $1 > 10){print $2}}' | grep "^[0-9]" | awk '{printf "ALL : %s\n",$1}' | sort -d >> $HOS_AIN

da ich nicht die *.gz dateien nach dem logrotate einlese fliegen die einträge acuh nach und nach wieder raus.

allerdings sind es immernoch mehr als genug ips die in der hosts.deny stehen:

# cat /etc/hosts.deny
# /etc/hosts.deny
# See 'man tcpd' and 'man 5 hosts_access' as well as /etc/hosts.allow
# for a detailed description.

rsh : ALL
http-rman : ALL EXCEPT LOCAL

#Wed Dec 20 10:30:01 CET 2006

ALL : 128.39.35.125
ALL : 128.39.35.128
ALL : 139.18.53.175
ALL : 147.156.150.74
ALL : 172.173.5.161
*
*
*
ALL : 87.233.136.19
ALL : 88.117.173.194

es ist nicht die ultimative Lösung aber funktioniert ganz gut ;)
Hab mich auch schon selber rausgeworfen :D

Das Script wird dann alle 15 Minuten per cron ausgeführt.

Ja nach bedarf kann das Script natürlich erwitert werden, um z.B. ssh-Script Attaken zu filtern und zu Blocken.
 
139.18.53.175 = hlp45.exphysik.uni-leipzig.de.
Sicher, dass du den blocken willst? Sieht nach einem NAT-Router aus, d.h. du schmeißt mehr Leute raus als nur 1.
 
für ne quick 'n dirty Lösung reichts mir :)

fliegen ja eh beim nächsten logrotate raus

kommen nicht eh die meisten Angriffe aus UNIs ?
 
Oben