P3Scan und f-prot

Kurze Einleitung : P3scan ist ein transparenter POP3-Proxy, der es erlaubt Virenscanning und Spamfilter zu implementieren ohne dabei etwas an den Clients ändern zu müssen. Dazu wird P3Scan auf einem Linux-Gateway installiert und via iptables eine Umleitung auf den lokalen p3scan-Dienst erzwungen. Als Antiviren/AntiSpam-System nutzt P3scan z.B. SpamAssassin oder ClamAV.

Seit einiger Zeit habe ich nun P3Scan auch bei mir auf meinem Linux Router am Laufen und ich muss sagen, ich bin begeistert! Als AntiSpam-System habe ich SpamAssassin laufen und die Virenfilterung übernimmt bei mir F-Prot-Antivirus in der freien Linux-Workstation-Version.

Die Installation auf meinem Linux System war dabei denkbar einfach und, sollte es dennoch mal zu Problemen kommen, die FAQ und das Support Forum auf sourceforge bieten einem Hilfe und Ansätze zur Genüge.

Aber kommen wir zum wichtigsten, der Installation. User der Debian Linux Distribution haben es hier denke ich mal am einfachsten, können sie sich doch die benötigten Packete per apt-get installieren. Allen anderen bleibt nur der Weg über die Sourcen .. was aber auch kein Hexenwerk ist!
Hat man alle Sourcen installiert, muss man zunächst alle ausgehende POP3-Verbindung per iptables umzuleiten.

/sbin/iptables -t nat -A OUTPUT -p tcp --dport pop3 -m owner --uid-owner 111 -j ACCEPT
/sbin/iptables -t nat -A OUTPUT -p tcp --dport pop3 -j REDIRECT --to 8110
/sbin/iptables -t nat -A PREROUTING -p tcp -i eth1 --dport pop3 -j REDIRECT --to 8110

eth1 ist in diesem Fall die Netzwerkkarte in meinem Router die ins LAN geht. Wer (wie ich) 2 kleinere LAN-Netze und also auch insgesamt 3 Netzwerkkarten in seinem Gerät hat (kommt denke ich nur bei Home-Made mini Linux Routern in Frage), der fügt für die 2 Netzwerkkarte einfach folgendes hinzu :

/sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 --dport pop3 -j REDIRECT --to 8110

Die Einbinung des AntiViren-Scanners war leider nicht ganz so einfach wie zunächst angenommen. Zwar klappte mein 1. Versuch mit ClamAV ohne Probleme, angesichts der noch frühen Entwicklungsphase des Scanners wollte ich Ihn aber nicht (oder zumindest noch nicht) einsetzen und entschied mich für den oben schon erwähnten F-Prot AntiVirus Linux Client.

Nach ein paar kleinen Tests (wie gut das es im Netz die eine oder andere DL Möglichkeit für Viren aller Art gibt *sfg*) funktionierte aber auch letztendlich der F-Prot Client ohne Porbleme! Folgende Einstellungen waren dabei nötig :

scannertype = basic
scanner = /usr/local/bin/f-prot -archive -ai
viruscode = 3,8
virusregexp = (?=Infection\:)[[:space:]]*(.*)$

Zum Schluss mußte nun noch SpamAssassin hinzugefügt werden, was anhand der mitgelieferten p3scan.conf jedem ohne Probleme gelingen sollte. Einfach nur die entsprechenden Zeilen in der Datei auskommentieren!.

Die von vielen beschriebene Resourcenhungrigkeit des Systems konnte ich bislang nicht nachvollziehen. Bei mir verrichtet zur Zeit ein Duron 500 mit 256 MB RAM und 40 GB Festplatte seinen Dienst, der neben dem Scannen und Routen auch noch als kleiner Test / Entwicklungsserver und Bilddatenbank fungiert… und bislang konnte ich mich noch nicht beklagen!!!!

Ach ja .. das wichtigste hätte ich doch noch glatt vergessen! Was passiert eigentlich, wenn p3Scan einen Virus / Spam filtert?
Antwort : Sollte P3Scan (oder besser der Scanner) einen Virus in einer eMail finden, wird die betreffende Email durch eine harmlose Nachricht ersetzt, das ein Virus gefunden und in Quarantäne gestellt wurde. Bei Spam ist das vorgehen nicht ganz so agressiv. Hier liefert P3Scan eine eMail aus, welche die Spam-Verdächtige eMail als Anhang enthält. Neben ein paar netten Informationen, wieso SpamAssassin diese eMail als Spam klassiviziert hat, verändert er auch noch zusätzlich das Subjekt der eMail, so das sich Spam elegant per Filterregel aussortieren läßt! Und sollte dennoch mal etwas dabei sein, genügt in der Regel ein Blick in den Spam-Ordner.

P3scan Homepage

7 thoughts on “P3Scan und f-prot

  1. Gibt es weitere Fehlermeldung/Log-Einträge? Was für einen Socket Error? Was für ein System? p3scan selber compiliert oder per Paket installiert?

    So long, schau mal ob das hilft. (Mal so ins blaue geschossen *sfg*)

  2. Leider nein. Im syslog steht lediglich „p3scan started“.
    Ich habe p3scan (da ich nicht sicher wahr, ob 127.0.0.1 oder meine LAN-Adresse) auf 0.0.0.0 (any) eingestellt.

    Wenn ich nur die PREROUTING-Regel einfüge, tut sich rein gar nichts. Normalerweise müßte man doch auf dem Port 8110 irgendwelche Aktivitäten sehen, oder zumindest irgendetwas im syslog. Gar nichts.

    Ich weiß nicht, ob das wichtig ist. Ich nutze hier den ctserver (Debian Sarge).

    Inklusive der Output-Regeln erhalte ich von Fetchmail:
    „Socket Fehler (2)“
    und von p3scan im syslog:
    „p3scan: Oops, that would loop!“

    Mehr passiert dann leider nicht mehr.

    Müßten hier normalerweise nicht ankommende statt ausgehende Pakete auf Port 8110 weitergeleitet werden?

    Gruß
    Christian

  3. So sieht der genaue Fehler aus:

    fetchmail: Socket-Fehler beim Abholen von …
    fetchmail: Abfragestatus=2 (SOCKET)

    Oct 21 10:51:42 mailsrv p3scan[24287]: Oops, that would loop!

  4. Nein, ausgehend ist schon korrekt, andersrum macht es auch irgendwie keinen Sinn.

    Wenn du 0.0.0.0 als IP eingestellt hast, dann sollte zumindest der targetport egal sein, weil p3scan dann im transparent-proxy mode läuft.

    Hast du mal fetchmail abgeschaltet, p3scan gestartet und dann versucht mails abzurufen.

    Ach ja .. wieso läuft bei dir fetchmail? holst du damit deine Mails vom MailServer? Wenn ja, wäre dann nicht eine Antiviren/Spam Lösung für Fetchmail die bessere Alternative?

  5. OK, ich hab mich jetzt nochmal hingesetzt und das Ganze sogar hinbekommen.
    Das mit p3scan hat leider nicht funktioniert.

    Ich hab den Server jetzt so konfiguriert, dass fetchmail die Mails an procmail weitergibt.
    procmail scannt die Mails mit clamassassin (clamscan selbst hat nicht funktioniert) und gibt die Mails weiter an cyrdeliver.

    Jetzt gehts :-)

Comments are closed.