[Postfixbuch-users] und wieder Backscatter unterwegs
Uwe Driessen
driessen at fblan.de
Sa Aug 11 22:21:46 CEST 2007
Sandy Drobic schrieb:
>
> Suche also die 100 schlimmsten Bereiche aus und sperre diese Netze manuell
> komplett auf der Firewall. Auf diese Art bekommst du die Rejects zumindest
> in einen erträglichen Bereich zurück und die Verwaltung ist ebenfalls noch
> transparent.
>
Ich weis zwar nicht woher oder von wem ich das shellscript irgendwann einmal bekomme habe
aber da ist es *gg
Lass dieses Script mal ein paar tage immer wieder über deine Logs laufen dann kannst du
die Netzwerkbereiche evtl. eingrenzen die dir Probleme machen
Musst du evtl. noch anpassen
Get_rejected_isp.sh
#!/bin/bash
#
# Peter Kiem .^. | E-Mail : <zordah at zordah.net>
# Zordah IT /V\ | Mobile : +61 0414 724 766
# IT Consultancy & /( )\ | WWW : www.zordah.net
# Internet Hosting ^^-^^ | ICQ : "Zordah" 866661
#
CURRLOG=/var/log/mail.log
LASTLOG=/var/log/mail.log.0
cat $LASTLOG $CURRLOG | grep "reject: RCPT from" | cut -d "[" -f 3 | cut -d "]" -f 1 |
sort | uniq -c | awk '
BEGIN {
print("IP subnets with more than 5 mail rejections in the last 2 postfix logs");
print("");
print("# Rejects IP Address");
print("========= ==========");
lastsubnet = "";
rejects = 0;
}
{
split($2, octet, ".");
subnet = octet[1] "." octet[2] "." octet[3];
if (subnet != lastsubnet) {
if (rejects > 5) {
for (Loop = 1; Loop < ipindex; Loop++) {
printf("%9d %s\n", RejectCount[Loop], IPAddress[Loop]);
}
printf("\n");
}
lastsubnet = subnet;
rejects = 0;
ipindex = 1;
}
RejectCount[ipindex] = $1;
IPAddress[ipindex] = $2;
rejects += $1;
ipindex++;
}
END {
if (rejects > 5) {
for (Loop = 1; Loop < ipindex; Loop++) {
printf("%9d %s\n", RejectCount[Loop], IPAddress[Loop]);
}
}
}
' | mail -s "SMTP rejected IP addresses" root
exit 0
viel Spaß damit
Mit freundlichen Grüßen
Drießen
--
Software & Computer
Uwe Drießen
Lembergstraße 33
67824 Feilbingert
Tel.: 06708 / 660045 Fax: 06708 / 661397
Mehr Informationen über die Mailingliste Postfixbuch-users