Package: logwatch
Version: 7.3.1-5
Severity: wishlist
Tags: patch
Logwatch does not undestand lines about milter filtering
For example:
Sep 5 16:55:01 ks358063 postfix/cleanup[26108]: 8A41F401B9:
milter-reject:
END-OF-MESSAGE from unknown[89.215.222.182]: 5.7.1 Blocked by
SpamAssassin;
from=<[EMAIL PROTECTED]> to=<[EMAIL PROTECTED]> proto=ESMTP
helo=<mx1.performance.bg>
Sep 4 09:13:50 ks358063 postfix/cleanup[26074]: F0D6F401B9:
milter-reject:
END-OF-MESSAGE from 147-153.2-85.cust.bluewin.ch[85.2.153.147]: 5.7.1
virus
Worm.SomeFool.P detected by ClamAV - http://www.clamav.net;
from=<[EMAIL PROTECTED]> to=<[EMAIL PROTECTED]> proto=ESMTP
helo=<example.org>
Here is a patch to count filtered message for each address.
Ideally, it should be configurable to only report highest values, and ratio
of accepted and rejected messages.
-- System Information:
Debian Release: 4.0
APT prefers stable
APT policy: (500, 'stable')
Architecture: amd64 (x86_64)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.24.5-grsec-xxxx-grs-ipv4-64
Locale: LANG=en_GB, LC_CTYPE=en_GB (charmap=ISO-8859-1)
Versions of packages logwatch depends on:
ii perl 5.8.8-7etch3 Larry Wall's Practical Extraction
ii postfix [mail-transport- 2.5.1-1~bpo40+1 High-performance mail transport ag
Versions of packages logwatch recommends:
pn libdate-manip-perl <none> (no description available)
-- no debconf information
--- /usr/share/logwatch/scripts/services/postfix 2006-12-04
23:36:08.000000000 +0100
+++ /etc/logwatch/scripts/services/postfix 2008-09-02 12:06:23.000000000
+0200
@@ -389,6 +391,8 @@
$ProcessExit{$Status}{$Process}++;
} elsif ( ($Option,$Reason) = ($ThisLine =~ /^fatal: config variable ([^
]*): (.*)$/)) {
$ConfigError{$Option}{$Reason}++;
+ } elsif ( ($Milter,$User) = ($ThisLine =~ /milter-reject: END-OF-MESSAGE
from [^ ]+\[[^ ]+\]: 5.7.1 (.+); from=<.+?> to=<(.+?)> proto=/)) {
+ $Milter{$Milter}{$User}++;
} elsif ( ($Warn) = ($ThisLine =~ /^warning: (.*)/)) {
# keep this as the next to last condition
$UnknownWarnings{$Warn}++;
@@ -911,6 +915,16 @@
}
}
+if (keys %Milter) {
+ print "\n\nMilter rejected:\n";
+ foreach $Milter (sort {$a cmp $b} keys %Milter) {
+ print " Milter: $Milter\n";
+ foreach $User (sort {$a cmp $b} keys %{$Milter{$Milter}} ) {
+ print " $User: $Milter{$Milter}{$User} Time(s)\n";
+ }
+ }
+}
+
if (keys %RejectRBL) {
print "\n\nMessages rejected using Anti-Spam site $RejectedRBL Time(s)\n";
foreach $Site (sort {$a cmp $b} keys %RejectRBL) {