Spam-Schutz · 5 min read · Sep 28, 2025
Die perfekte SpamSnake - Ubuntu Jaunty Jackalope - Seite 5
17.11 Berechtigungen setzen, um alles zusammenzubringen
chown -R postfix:www-data /var/spool/MailScanner
chown -R postfix:www-data /var/lib/MailScanner
chown -R postfix:www-data /var/spool/postfix/hold
chmod -R ug+rwx /var/spool/postfix/hold
chmod -R u+rwx,g+rx /var/spool/MailScanner/quarantineStellen Sie schließlich sicher, dass Sie MailScanner neu starten:
killall mailscannercheck_mailscannerTesten Sie die Einrichtung:
spamassassin -x -D -p /opt/MailScanner/etc/spam.assassin.prefs.conf --lintÜberprüfen Sie auf Zeilen wie:
debug: bayes: Datenbankverbindung hergestellt
debug: bayes: bayes db Version 3 gefunden
debug: bayes: Benutzer-ID: 2Sie sollten Zeilen mit DCC, Pyzor und Razor sehen, die sagen, dass das Plugin geladen wird, und hoffentlich keine Fehler.
Um diesen Teil abzuschließen, müssen wir Cron-Jobs hinzufügen, die bereinigen/aktualisieren. Sie haben wahrscheinlich die Nachricht darüber gesehen, nachdem das Installationsskript von MailScanner abgeschlossen war.
Zuerst bearbeiten Sie conf.php und setzen ‘QUARANTINE_DAYS_TO_KEEP’ in conf.php und ändern die folgende Zeile in /usr/src/mailwatch-1.0.4/tools/db_clean zu:
#!/usr/bin/php -q
require('/var/www/mailscanner/functions.php');Installieren Sie das Skript zur Bereinigung der Quarantäne:
cp /usr/src/mailwatch-1.0.4/tools/quarantine_maint.php /usr/bin/quarantine_maint.php
cp /usr/src/mailwatch-1.0.4/tools/db_clean.php /usr/bin/db_clean.php
chmod +x /usr/bin/quarantine_maint.php
chmod +x /usr/bin/db_clean.phpFühren Sie aus
crontab -eund fügen Sie Folgendes hinzu:
15 10 * * 2 /usr/bin/quarantine_maint.php --clean &> /dev/null
58 23 * * * /usr/bin/db_clean.php &> /dev/nullDeaktivieren Sie das von MailScanner installierte Cron-Skript /etc/cron.daily/clean.quarantine (Hinweis: tun Sie dies nur, wenn das Skript clean.quarantine existiert).
$disabled = 1; 17.12 System neu starten
rebootÜberprüfen Sie Ihre mail.log (tail –f /var/log/mail.log) und Sie sollten Folgendes sehen:
Jun 13 12:18:23 hoshi MailScanner[26388]: MailScanner E-Mail-Virenscanner Version 4.20-3 startet...
Jun 13 12:18:24 hoshi MailScanner[26388]: Konfiguration: benutzerdefinierte Initialisierungsfunktion MailWatchLogging aufrufen
Jun 13 12:18:24 hoshi MailScanner[26388]: Datenbankverbindung wird initialisiert
Jun 13 12:18:24 hoshi MailScanner[26388]: Initialisierung der Datenbankverbindung abgeschlossenHerzlichen Glückwunsch - Sie haben jetzt MailScanner, das in MySQL protokolliert.
17.13 Testen Sie die MailWatch-Oberfläche
Richten Sie Ihren Browser auf http://
Wenn Sie die Mails nicht sehen können, müssen Sie möglicherweise die folgenden Berechtigungen setzen:
chgrp -R www-data /var/spool/MailScannerMöglicherweise müssen Sie Folgendes erstellen, um einen Fehler in einem Lint-Test zu verhindern:
mkdir /var/www/.spamassassin17.14 Aktualisieren Sie die SpamAssassin-Regeln-Tabelle
MailWatch führt eine Liste aller SpamAssassin-Regeln und Beschreibungen, die auf der Seite ‘Nachrichtendetails’ angezeigt werden - um die Beschreibungen anzuzeigen, müssen Sie den Aktualisierer jedes Mal ausführen, wenn Sie neue Regeln hinzufügen oder SpamAssassin aktualisieren. Klicken Sie im Menü ‘Tools/Links’ auf ‘SpamAssassin-Regelbeschreibungen aktualisieren’ und klicken Sie auf ‘Jetzt ausführen’.
17.15 Aktualisieren Sie die GeoIP-Datenbank
Ändern Sie diese Zeile in /var/www/mailscanner/geoip_update.php, damit sie wie folgt aussieht:
dbquery("LOAD DATA LOCAL INFILE *Hinweis: Stellen Sie sicher, dass allow_url_fopen = On in Ihrer php.ini gesetzt ist.
Klicken Sie im Menü ‘Tools/Links’ auf ‘GeoIP-Datenbank aktualisieren’ und klicken Sie auf ‘Jetzt ausführen’.
17.16 Fix, um Wildcards in Whitelist/Blacklist zuzulassen
Fügen Sie Folgendes am Ende des return 1-Abschnitts in Ihrer /opt/MailScanner/lib/MailScanner/CustomFunctions/SQLBlackWhiteList.pm hinzu:
return 1 if $BlackWhite->{$to}{'*@'.$fromdomain};
return 1 if $BlackWhite->{$to}{'*@*.'.$fromdomain};
return 1 if $BlackWhite->{$todomain}{'*@'.$fromdomain};
return 1 if $BlackWhite->{$todomain}{'*@*.'.$fromdomain};
return 1 if $BlackWhite->{'default'}{'*@'.$fromdomain};
return 1 if $BlackWhite->{'default'}{'*@*.'.$fromdomain};17.17 Fix für Nachrichtenoperationen, die Nachrichten nicht finden
Ändern Sie Folgendes in der Datei /var/www/mailscanner/do_message_ops.php:
$id = $Regs[1]; zu
$id = str_replace("_", ".",$Regs[1]); 17.18 Spam-Nachrichten freigeben
Um MailWatch zu ermöglichen, Spam-Nachrichten freizugeben, ohne dass sie erneut verarbeitet werden, fügen Sie 127.0.0.1 als Whitelist-Element in der MailWatch/List-Oberfläche hinzu. Stellen Sie sicher, dass Sie MailScanner nach der Konfiguration dieser Optionen neu starten. Unten sehen Sie, wie mein Eintrag aussieht.
| 127.0.0.1 | standard | Löschen |
17.19 Fix, um mehrere Freigaben von Nachrichten in Nachrichtenoperationen zuzulassen
Bearbeiten Sie /var/www/mailscanner/do_message_ops.php und nehmen Sie die folgenden Änderungen vor:
case 'F':
$type='forget';
break;
case 'R':
$type='release';
break;
default:
continue;
break;Suchen Sie dann den folgenden Abschnitt und ändern Sie ihn wie folgt:
$itemnum = array($num);
if ($type == 'release'){
if($quarantined = quarantine_list_items($id,RPC_ONLY)) {
$to = $quarantined[0]['to'];
}
echo "$id $type " . quarantine_release($quarantined, $itemnum, $to, RPC_ONLY) . " \n";
} else {
echo "$id $type " . quarantine_learn($items, $itemnum, $type, RPC_ONLY) . " \n";
}
}
echo "\n";
}
}
}
}
echo " \n";Als nächstes bearbeiten wir die Datei /var/www/mailscanner/functions.php und ändern:
$fieldname[$f] = "Ops
S H F"; zu
$fieldname[$f] = "Ops
S H F R"; Ändern Sie dann:
array_unshift($row, " "); Zu:
array_unshift($row, " "); Suchen Sie dann den Block mit der Javascript-Funktion zur Handhabung von Radiobuttons. Fügen Sie einen dritten Wert wie folgt hinzu:
echo "function SetRadios(p) {\n";
echo " var val;\n";
echo " if (p == 'S') {\n";
echo " val = 0;\n";
echo " } else if (p == 'H') {\n";
echo " val = 1;\n";
echo " } else if (p == 'F') {\n";
echo " val = 2;\n";
echo " } else if (p == 'R') {\n";
echo " val = 3;\n";
echo " } else if (p == 'C') {\n";
echo " ClearRadios();\n";Fügen Sie nun den Text für die Radiobuttons hinzu:
Ändern Sie schließlich:
echo "S = Spam H = Ham F = Vergessen\n";
zu:
echo "S = Spam H = Ham F = Vergessen R = Freigeben\n";
17.20 Patch zur Behebung des Autocommit-Fehlers beim Stoppen von MailScanner
Bearbeiten Sie die Zeile 80 von MailWatch.pm, damit sie wie folgt aussieht:
$dbh = DBI->connect("DBI:mysql:database=$db_name;host=$db_host", $db_user, $db_pass, {PrintError => 0, AutoCommit => 0}); *Hinweis: Dies schaltet das Autocommit aus, wenn es sich verbindet, sodass die Commit-Zeile beim Schließen keinen Fehler auslöst.
18. Installieren und Konfigurieren von SPF
Das Paket postfix-policyd-spf-perl hängt von den Perl-Modulen Mail::SPF und NetAddr::IP ab.
Wir müssen postfix-policyd-spf-perl von http://www.openspf.org/Software in das Verzeichnis /usr/src/ herunterladen und es in das Verzeichnis /usr/lib/postfix/ installieren:
cd /usr/src
wget http://www.openspf.org/blobs/postfix-policyd-spf-perl-2.005.tar.gz
tar xvfz postfix-policyd-spf-perl-2.005.tar.gz
cd postfix-policyd-spf-perl-2.005
cp postfix-policyd-spf-perl /usr/lib/postfix/policyd-spf-perlDann bearbeiten wir /etc/postfix/master.cf und fügen am Ende den folgenden Abschnitt hinzu:
policy unix - n n - - spawn
user=nobody argv=/usr/bin/perl /usr/lib/postfix/policyd-spf-perl(Die führenden Leerzeichen vor user=nobody sind wichtig, damit Postfix weiß, dass diese Zeile zur vorherigen gehört!)
Öffnen Sie dann /etc/postfix/main.cf und suchen Sie nach der Direktive smtpd_recipient_restrictions. Sie sollten reject_unauth_destination in dieser Direktive haben, und direkt nach reject_unauth_destination fügen Sie check_policy_service unix:private/policy hinzu, wie folgt:
[...]
smtpd_recipient_restrictions =
[...]
reject_unauth_destination
check_policy_service unix:private/policy
[...]Es ist wichtig, dass Sie check_policy_service NACH reject_unauth_destination angeben, da Ihr System sonst zu einem offenen Relay werden kann!
Starten Sie dann Postfix neu:
/etc/init.d/postfix restartDas war’s schon.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.