Wie man Postfix Mail Server mit ClamAV und SpamAssassin mit Antivirus- und Spam-Schutz ausstattet - Teil 3
In den beiden vorherigen Artikeln dieser Postfix-Serie haben Sie gelernt, wie Sie die E-Mail-Server-Datenbank über phpMyAdmin einrichten und verwalten und wie Sie Postfix und Dovecot für die Verarbeitung von ein- und ausgehenden E-Mails konfigurieren. Darüber hinaus haben wir erklärt, wie Sie einen Mail-Client wie Thunderbird für die virtuellen Konten einrichten, die wir zuvor erstellt haben.
- Postfix Mail Server und Dovecot mit MariaDB einrichten – Teil 1
- So konfigurieren Sie Postfix und Dovecot mit virtuellen Domänenbenutzern – Teil 2
- Installieren und Konfigurieren des RoundCube Webmail-Clients mit virtuellen Benutzern in Postfix – Teil 4
- Verwenden Sie Sagator, ein Antiviren-/Antispam-Gateway, um Ihren Mailserver zu schützen – Teil 5
Da keine Einrichtung eines E-Mail-Servers vollständig sein kann, ohne Vorkehrungen gegen Viren und Spam zu treffen, werden wir dieses Thema im aktuellen Artikel behandeln.
Bitte beachten Sie, dass, selbst wenn *nix-ähnliche Betriebssysteme normalerweise als virenfrei gelten, die Wahrscheinlichkeit besteht, dass Clients, die andere Betriebssysteme verwenden, auch eine Verbindung zu Ihrem E-Mail-Server herstellen.
Aus diesem Grund müssen Sie ihnen das Vertrauen geben, dass Sie die notwendigen Maßnahmen ergriffen haben, um sie so weit wie möglich vor solchen Bedrohungen zu schützen.
SpamAssassin für Postfix konfigurieren
Beim Empfangen von E-Mails steht spamassassin zwischen der Außenwelt und den E-Mail-Diensten, die auf Ihrem Server selbst ausgeführt werden. Wenn es gemäß seinen Definitionsregeln und seiner Konfiguration feststellt, dass es sich bei einer eingehenden Nachricht um Spam handelt, schreibt es die Betreffzeile um, um sie eindeutig als Spam zu identifizieren. Mal sehen, wie.
Die Hauptkonfigurationsdatei ist /etc/mail/spamassassin/local.cf, und wir sollten sicherstellen, dass die folgenden Optionen verfügbar sind (fügen Sie sie hinzu, wenn sie nicht vorhanden sind, oder kommentieren Sie sie bei Bedarf aus):
report_safe 0
required_score 8.0
rewrite_header Subject [SPAM]
- Wenn report_safe auf 0 (empfohlener Wert) gesetzt ist, wird eingehender Spam nur durch Ändern der E-Mail-Kopfzeilen gemäß rewrite_header geändert. Wenn sie auf 1 gesetzt ist, wird die Nachricht gelöscht.
- Um die Aggressivität des Spamfilters festzulegen, muss required_score von einer Ganzzahl oder Dezimalzahl gefolgt werden. Je geringer die Anzahl, desto empfindlicher wird der Filter. Das Festlegen von required_score auf einen Wert zwischen 8,0 und 10,0 wird für ein großes System empfohlen, das viele (~100e) E-Mail-Konten bedient.
Nachdem Sie diese Änderungen gespeichert haben, aktivieren und starten Sie den Spamfilterdienst, und aktualisieren Sie dann die Spamregeln:
# systemctl enable spamassassin
systemctl start spamassassin
sa-update
Für weitere Konfigurationsoptionen können Sie in der Dokumentation nachschlagen, indem Sie perldoc Mail::SpamAssassin::Conf in der Befehlszeile ausführen.
Integration von Postfix und SpamAssassin
Um Postfix und spamassassin effizient zu integrieren, müssen wir einen dedizierten Benutzer und eine Gruppe erstellen, um den Spamfilter-Daemon auszuführen:
# useradd spamd -s /bin/false -d /var/log/spamassassin
Fügen Sie als Nächstes die folgende Zeile am Ende von /etc/postfix/master.cf hinzu:
spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
Und geben Sie (oben) an, dass spamassassin als content_filter dienen wird:
-o content_filter=spamassassin
Starten Sie abschließend Postfix neu, um die Änderungen zu übernehmen:
# systemctl restart postfix
Um zu überprüfen, ob SpamAssassin ordnungsgemäß funktioniert und eingehenden Spam erkennt, wird ein Test namens GTUBE (Generic Test for Unsolicited Bulk Email) bereitgestellt.
Um diesen Test durchzuführen, senden Sie eine E-Mail von einer Domain außerhalb Ihres Netzwerks (z. B. Yahoo!, Hotmail oder Gmail) an ein Konto auf Ihrem E-Mail-Server. Legen Sie die Betreffzeile auf den gewünschten Wert fest, und fügen Sie den folgenden Text in den Nachrichtentext ein:
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
Wenn Sie beispielsweise den obigen Text in einem Nachrichtentext von meinem Gmail-Konto senden, erhalten Sie das folgende Ergebnis:
Und zeigt den entsprechenden Hinweis in den Protokollen an:
# journalctl | grep spam
Wie Sie in der Abbildung oben sehen können, hat diese E-Mail-Nachricht einen Spam-Score von 1002,3 erhalten. Zusätzlich können Sie spamassassin direkt von der Befehlszeile aus testen:
# spamassassin -D < /usr/share/doc/spamassassin-3.4.0/sample-spam.txt
Der obige Befehl erzeugt eine wirklich ausführliche Ausgabe, die Folgendes enthalten sollte:
Wenn diese Tests nicht erfolgreich sind, können Sie sich an den Leitfaden für die Integration von spamassassin halten.
Starten von ClamAV und Aktualisieren der Virendefinitionen
Um zu beginnen, müssen wir /etc/clamd.d/scan.conf bearbeiten. Heben Sie die Auskommentierung der folgenden Zeile auf:
LocalSocket /var/run/clamd.scan/clamd.sock
und kommentieren Sie die Zeile aus oder löschen Sie sie:
Example
Aktivieren und starten Sie dann den clamav scanner Daemon:
# systemctl enable [email
systemctl start [email
und vergessen Sie nicht, den booleschen Wert antivirus_can_scan_system SELinux auf 1 zu setzen:
# setsebool -P antivirus_can_scan_system 1
An dieser Stelle lohnt es sich, den Status des Dienstes zu überprüfen:
Wie Sie im Bild oben sehen können, sind unsere Virensignaturen älter als 7 Tage. Um sie zu aktualisieren, werden wir ein Tool namens freshclam verwenden, das als Teil des clamav-update-Pakets installiert wurde.
Der einfachste Weg, die Virendefinitionen zu aktualisieren, ist über einen Cron-Job, der so oft wie gewünscht ausgeführt wird (einmal am Tag, z. B. um 1 Uhr morgens, Serverzeit, wie im folgenden Beispiel gezeigt, wird als ausreichend angesehen):
00 01 * * * root /usr/share/clamav/freshclam-sleep
Sie können die Virendefinitionen auch manuell aktualisieren, aber vorher müssen Sie auch die folgende Zeile in /etc/freshclam.conf entfernen oder auskommentieren.
Example
Jetzt sollten Sie in der Lage sein, Folgendes auszuführen:
# freshclam
Dadurch werden die Virendefinitionen wie gewünscht aktualisiert:
Testen von ClamAV auf Viren in E-Mails
Um zu überprüfen, ob ClamAV ordnungsgemäß funktioniert, laden wir einen Testvirus (den wir von http://www.eicar.org/download/eicar.com erhalten können) in das Maildir von [email herunter (das sich in /home/vmail/linuxnewz.com/tecmint/Maildir befindet), um eine infizierte Datei zu simulieren, die als E-Mail-Anhang empfangen wurde:
# cd /home/vmail/linuxnewz.com/tecmint/Maildir
wget http://www.eicar.org/download/eicar.com
Und dann scannen Sie das Verzeichnis /home/vmail/linuxnewz.com rekursiv:
# clamscan --infected --remove --recursive /home/vmail/linuxnewz.com
Fühlen Sie sich frei, diesen Scan so einzurichten, dass er einen Cronjob durchläuft. Erstellen Sie eine Datei mit dem Namen /etc/cron.daily/dailyclamscan, und fügen Sie die folgenden Zeilen ein:
#!/bin/bash
SCAN_DIR="/home/vmail/linuxnewz.com"
LOG_FILE="/var/log/clamav/dailyclamscan.log"
touch $LOG_FILE
/usr/bin/clamscan --infected --remove --recursive $SCAN_DIR >> $LOG_FILE
und erteilen Sie Ausführungsberechtigungen:
# chmod +x /etc/cron.daily/dailyclamscan
Der obige Cronjob scannt das Mailserver-Verzeichnis rekursiv und hinterlässt ein Protokoll seiner Operation in /var/log/clamav/dailyclamscan.log (stellen Sie sicher, dass das Verzeichnis /var/log/clamav existiert).
Mal sehen, was passiert, wenn wir die eicar.com Datei von [email an [email senden:
Zusammenfassung
Wenn Sie die in diesem Tutorial und in den beiden vorherigen Artikeln dieser Serie beschriebenen Schritte befolgt haben, verfügen Sie jetzt über einen funktionierenden Postfix-E-Mail-Server mit Spam- und Virenschutz.
HAFTUNGSAUSSCHLUSS: Bitte beachten Sie, dass Serversicherheit ein umfangreiches Thema ist und in einer kurzen Serie wie dieser nicht angemessen behandelt werden kann.
Aus diesem Grund empfehle ich Ihnen dringend, sich mit den in dieser Serie verwendeten Tools und ihren Manpages vertraut zu machen. Obwohl ich mein Bestes getan habe, um die wesentlichen Konzepte im Zusammenhang mit diesem Thema abzudecken, gehen Sie nicht davon aus, dass Sie nach dem Durchlaufen dieser Serie vollständig qualifiziert sind, einen E-Mail-Server in einer Produktionsumgebung einzurichten und zu warten.
Diese Serie ist als Ausgangspunkt gedacht und nicht als erschöpfende Anleitung zur Verwaltung von Mailservern unter Linux.
Wahrscheinlich fallen Ihnen noch weitere Ideen ein, die diese Serie bereichern können. Wenn ja, schreiben Sie uns gerne eine Nachricht über das untenstehende Kommentarformular. Auch Fragen und andere Anregungen sind willkommen – wir freuen uns auf Sie!








