Software/AntiSpam, Webserver- und Webapplikationsmanagement von PSL   Firmen-Wikis   Content Management Systeme   Projektmanagement Tools   Sicherheit

Aus Sysdoc

Wechseln zu: Navigation, Suche

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
Persönliche Werkzeuge
Werkzeuge