Software/AntiSpam, Webserver- und Webapplikationsmanagement von PSL Firmen-Wikis Content Management Systeme Projektmanagement Tools Sicherheit
Aus Sysdoc
2.2.7 Anti-Spam-Dienste
Im Folgenden wird die Inbetriebnahme einer geeigneten, häufig verwendeten Sicherheitsinfrastruktur für den E-Mail-Verkehr des Webservers protokolliert und erläutert. Wir stützen uns hierbei auf die frei verfügbaren und allgemein anerkannten Komponenten: SpamAssassin , ClamAV, Ripmime, qsheff.
SpamAssassin einbinden:
# Installation des Dienstes: # Zunächst schauen ob der Dienst nicht schon installiert ist: ps aux | grep spamd # Im Negativ-Fall fahrenm wir wie folgt fort: yast -i spamassassin
Die "default-Konfiguration" kann hier entweder beibehalten, oder aber z.B. mithilfe des SpamAssassin Configuration Generator neu erstellt werden.
# Starten des Dienstes: /etc/init.d/spamd start # alternativ bei vorinstalliertem "psa-SpamAssasin": /etc/init.d/psa-spamassassin start
ClamAV intallieren und in Betrieb nehmen:
yast -i clamav # Dienste konfigurieren: insserv clamd insserv freshclam editieren/auskommentieren in /etc/clamd.conf: # LogFile /var/log/clamd editieren/auskommentieren in /etc/freshclam.conf: # UpdateLogFile /var/log/freshclam.log # Logfiles anlegen und Rechte setzen: touch /var/log/clamd touch /var/log/freshclam.log chown vscan /var/log/clamd chown vscan /var/log/freshclam.log chown -R vscan /var/lib/clamav/ # Freshclam initial starten: freshclam -v # Starten der Dienste: /etc/init.d/clamd start /etc/init.d/freshclam start
Bemerkung: Beim Start von freshclam wird per Meldung auf der Konsole darauf aufmerksam gemacht, dass die installierte ClamAV-Version veraltet ist und ein update der gesamten Applikation stattfinden müsse. Da ein Update im Kontext der in Einvernahme, momentan verwendeten Suse-Distrubition nicht mehr möglich ist (eingestellter Update-Service von Novell), wurde hier zunächst auf ClamAV verzichtet. Das oben beschriebene Starten der Dienste sollte also erst nach Behebung dieses Umstandes (Suse-und ClamAV-Update) geschehen.
Ripmime einbinden:
# In entsprechendes Verzeichnis wechseln: cd /usr/local/src # Download beziehen und auspacken: wget http://www.pldaniels.com/ripmime/ripmime-1.4.0.10.tar.gz tar zxvf ripmime-1.4.0.10.tar.gz cd ripmime-1.4.0.10 # Installieren: make make install # Symlink anfertigen: ln -s /usr/local/bin/ripmime /usr/bin/
qsheff installieren (verlangt installiertes Ripmime):
What is qSheff qSheff is a wrapper for the qmail queue that scans email for viruses and spam. Infected messages are rejected before they reach the queue, so the server doesn't perform any job for them. After checking the message, it will wake the qmail queue.
# In entsprechendes Verzeichnis wechseln: cd /usr/local/src # Paket abholen und entpacken: # wget http://www.enderunix.org/qsheff/qsheff-1.0-r5.tar.gz # Version r5 scheint Probleme zu haben deshalb: wget http://www.huschi.net/download/qsheff-1.0-r4.tar.gz tar -xzvf qsheff-1.0-r4.tar.gz # Kompilieren cd qsheff-1.0-r4 ./configure make # qmail temporär anhalten und Backup der queue anfertigen: /etc/init.d/qmail stop # Backup der zu überschreibenenden qmail-queue: cp -p /var/qmail/bin/qmail-queue /var/qmail/bin/qmail-queue.bak # 1. Installlationsschritt: make install # Konfiguration anpassen: edit /usr/local/etc/qsheff/qsheff.conf # Enable/disable virus program (wenn ein Virus-Programm benutzt wird): enable_virus_prog = 1 # VIRUS_PROG- Pfad anpassen (wenn ein Virus-Programm benutzt wird): VIRUS_PROG = "/usr/bin/clamdscan –-quiet" # 2. Installlationsschritt: /usr/local/etc/qsheff/install-wrapper.sh # Spamassassin in die qmail-queue einbinden: rm -f /var/qmail/bin/qmail-queue echo '#!/bin/sh' >/var/qmail/bin/qmail-queue echo '/usr/bin/spamc | /var/qmail/bin/qmail-qsheff' >>/var/qmail/bin/qmail-queue ***HINWEIS chmod 4755 /var/qmail/bin/qmail-queue # qmail starten: /etc/init.d/qmail start
- HINWEIS:
Falls ein ggf. schon vorher installierter spamd auf einem Socket sitzt anstatt auf einer IP, (zu erfahren mit "/usr/local/psa/bin/psa-spamc und anschliessend ps aux | grep spamd") kann die Datei "/var/log/mail.err" mit Folgendem aufwarten:
Jun 3 19:41:04 foxtrot519 spamc[31332]: connect to spamd on 127.0.0.1 failed, retrying (#1 of 3): Connection refused
...hier ist ggf. der Befehl zum Einbinden in die queue zu ändern:
#echo '/usr/bin/spamc | /var/qmail/bin/qmail-qsheff' >>/var/qmail/bin/qmail-queue echo '/usr/bin/spamc -s 256000 -u root@ -U /tmp/spamd_full.sock -E | /var/qmail/bin/qmail-qsheff' >>/var/qmail/bin/qmail-queue
Bei vorinstalliertem "psa-SpamAssasin" ist dieser Service so auch mit folgenden Befehlen zu managen:
/etc/init.d/psa-spamassassin start /etc/init.d/psa-spamassassin stop ...etc.
qsheff-rules können bei Bedarf hier editiert werden (Schritt war im aktuellen Kontext nicht nötig):
/usr/local/etc/qsheff/
Abschliessende Bemerkungen:
Bei der obigen Lösung werden sowohl eingehende als auch ausgehende E-Mail-Nachrichten gescannt. Wenn nur eingehende Emails untersucht werden sollen, kann die /var/qmail/bin/qmail-queue wie folgt modifiziert werden:
#!/bin/bash if [ -z $USER ] ; then /usr/bin/spamc | /var/qmail/bin/qmail-qsheff else /var/qmail/bin/qmail-qsheff fi
Eine weitere Alternative:
#!/bin/bash if [ "$SMTPRCPTHOSTSOK" = "1" ] ; then /usr/bin/spamc | /var/qmail/bin/qmail-qsheff else /var/qmail/bin/qmail-qsheff fi
Im Anschluss sollte nun der Mailversand in alle Richtungen ausgiebig getestet, und vorsichthalber einmal you auf der Konsole gestartet werden- um die aktuellen Programmversionen von SpamAssassin und ClamAV zu laden ggf. "upzudaten".
Um die Installation rückgängig zu machen ist das entsprechende Backup von qmail-queue von Nöten:
/usr/local/etc/qsheff/uninstall-wrapper.sh mv /var/qmail/bin/qmail-queue.bak /var/qmail/bin/qmail-queue
Ist die Lage vor diesen Maßnahmen einmal akut (überfüllte qmail-queue durch spam) kann mittels der Plesk-Adaption von qmHandle...
/usr/local/psa/admin/bin/mailqueuemng
...die queue mit folgedem Befehl gelöscht werden:
/usr/local/psa/admin/bin/mailqueuemng -D
Protokollierte Ergebnisse
Der aktuelle Anlass dieser Massnahmen war eine vermeindlich willkürlich auftretende, signifikante Zeit-Differenz in der Übermitllung von Nutzer-Benachrichtigungen in den angeschlossene Streber PM - Installationen. Eine sofortige Analyse per qmHandle ergab letzendlich Handlungsbedarf im Sinne der oben beschriebenen zielführenden Schritte.
Nach erfolgreicher Installation weisen die header der ausgehenden Mails die Signatur der Komponenten qSheff sowie SpamAssassin auf.
X-Mail-Scanner: Scanned by qSheff 1.0-r4 (http://www.enderunix.org/qsheff/) X-Spam-Checker-Version: SpamAssassin 3.2.3 (2007-08-08) on xxx.server4you.de X-Spam-Level: *** X-Spam-Status: No, score=3.4 required=7.0 tests=FH_DATE_PAST_20XX,NO_RECEIVED, NO_RELAYS autolearn=no version=3.2.3
Ausgabe der Queue
Vorher:
/PSL_ADD_ONS/qmhandle-1.3.2 # ./qmHandle -s Total messages: 47722 Messages with local recipients: 0 Messages with remote recipients: 47722 Messages with bounces: 0 Messages in preprocess: 0
Nachher:
/PSL_ADD_ONS/qmhandle-1.3.2 # ./qmHandle -s Total messages: 0 Messages with local recipients: 0 Messages with remote recipients: 0 Messages with bounces: 0 Messages in preprocess: 0
