E-Mails auf Viren zu prüfen ist üblicherweise Sache des SMTP-Gateway oder eines Servers direkt dahinter. Magazin-Autor Charly verfrachtet heute den Schutz aber ans andere Ende, nämlich an die Verbindungen der Clients zu ihrem SMTP- und POP-Server.
|
Inhalt |
|---|
|
82 | LPI-Kompendium, Teil 11 Diesmal geht es um Logdateien, insbesondere um den Syslog-Daemon. Außerdem: Backup-Strategien und Systemzeit. 86 | Neue Features in FW-Builder Der aktuelle FW-Builder 2.1.10 bringt eine Reihe von Erleichterungen beim Verfassen von Firewall-Regelwerken. |
P3scan ist ein Mailproxy. Er baut sich frech vor den SMTP- und POP3-Daemons auf und nimmt Verbindungen von jenen Clients entgegen, die ihre Post abholen oder loswerden wollen. Deren Kommandos leitet er durch und prüft bei der Gelegenheit die E-Mails auf bösartige Inhalte, bevor er sie weiterreicht. P3scan [1] nervt den Admin erfreulicherweise nicht mit exotischen Abhängigkeiten, er benötigt lediglich die Bibliothek Pcre-devel, die die meisten Distros ohnehin an Bord haben.
Natürlich verlangt P3scan die Dienste einer Antiviren-Software. Ich habe Clam AV genommen, P3scan verträgt sich aber auch mit F-Prot, F-Secure, Kaspersky und wahrscheinlich mit noch einigen weiteren Produkten, sofern sie einen Commandline-Client mitliefern. P3scan vermag auch Spamassassin und Dspam einzubinden, womit er die Mails nicht nur von Viren, sondern auch von unerwünschter Werbung befreit.
IPtables eröffnet die Möglichkeit, P3scan als transparenten Mailproxy einzusetzen. Der Benutzer merkt von dessen Anwesenheit nichts, jedenfalls solange seine einlaufenden Mails sauber sind. Zum Beispiel lässt sich P3scan gut auf einem Linux-Router platzieren. Dort lasse ich ihn auf einem unprivilegierten Port laufen – der Default ist 8110. Per IPtables biege ich alle POP3-Verbindungen dorthin:
iptables -t nat -I PREROUTING ! -i eth0 -p tcp -s 192.168.1.0/24 --dport 110 -j REDIRECT --to-ports 8110
P3scan nimmt ab jetzt POP3-Verbindungen an, reicht Befehle wie »RETR«, »DELE« et cetera an den Zielserver weiter und holt Mails dort ab. Dabei pumpt er sie durch den Virenscanner und falls gewünscht auch durch den Spamfilter.
Konfiguration
P3Scan steht unter der Fuchtel der Datei »/etc/p3scan/p3scan.conf«. Die fünf folgenden Einträge sind zentraler Natur.
»targetip«: Wenn P3scan als transparenter Proxy arbeitet, muss hier »0.0.0.0« stehen, ansonsten die IP-Adresse des echten Servers, an die P3scan die Verbindungen der Clients weiterreicht.
»bytesfree = Bytes«: Es müssen mindestens »Bytes« Plattenplatz zur Verfügung stehen, sonst stellt P3scan seine Arbeit ein. Bedenken muss ich, dass das Programm mehrere Kindprozesse forkt (Default: 10), die im schlimmsten Fall alle gleichzeitig dicke Mailanhänge bearbeiten müssen.
»scanner = Kommando«: Hier gehört der Aufruf des Virenscanners hin. Da ich Clam AV einsetze, steht dort:
scanner = /usr/bin/clamdscan --no-summary
»viruscode =«: P3scan entscheidet anhand des Return-Code des Virenscanners, ob die Mail verseucht ist oder nicht. In der Regel gibt der Scanner eine »0« zurück, wenn die Mail sauber war, und eine »1« wenn nicht. Einige Scanner kennen noch andere Return-Codes. Damit P3scan sie auswertet, füge ich sie in der Zeile hinzu. Liefert ein Scanner die Werte 1, 5 und 13 für “Virus gefunden!”, lautet die Zeile »viruscode = 1,5,13«. Das Gleiche gibt es für Return-Codes, die neben der »0« für “Nichts gefunden” stehen. Die Zeile beginnt dann mit »goodcode =«.
»overwrite = /usr/bin/p3pmail«: Die Zeile eliminiert HTML innerhalb der Mails. Sie verhindert, dass der Client beim Betrachten der Mail selbstständig Bilder oder Ähnliches nachlädt. Das wäre erstens eine Gefahrenquelle an sich und bestätigte zweitens dem Spammer, dass seine Mail angekommen ist. (jk)
|
Infos |
|---|
|
[1] P3scan: [http://p3scan.sourceforge.net] |







