Copfilter

Aus IpcopWiki

Wechseln zu: Navigation, Suche
Copfilter
Copfilter-Logo
Copfilter-Logo
Basisdaten
Entwickler: Markus Madlener
Version: 0.84 (beta3a) 11. November 2007
0.82.1 (stable) 14. März 2006  (.)
Größe: 23,4 MB (tgz)
16,1 MB (tgz)
supported: IPCop v1.4.18
Lizenz: GPL
2005-2007 by Markus Madlener
Sonstiges: Preis: kostenlos
Sprache: englisch
Website: www.copfilter.org

Inhaltsverzeichnis

Funktionsweise

Der Copfilter ist ein Addon, mit dessen Hilfe man Webseiten und Mails auf Viren und andere Schädlinge filtern kann. Als Funktionsmerkmale gelten folgende Punkte:

  • POP3-Proxy mit Viren- und SPAM-Schutz
  • SMTP-Proxy mit Viren- und SPAM-Schutz
  • HTTP-Proxy mit Viren- und Werbe-Blocker
  • FTP-Proxy mit Virenschutz
  • Attachement Umbenenn-Tool
  • Mail-HTML-Cleaner
  • Überwachungs-Utility der Dienste mit Mail-Funktion

Voraussetzung

Es werden keine besonderen Hardware-Voraussetzungen benötigt, allerdings wird die Geschwindigkeit erheblich beeinflusst, je mehr Dienste aktiv sind. Daher lautet die Empfehlung, dass bei mehr als 10 Benutzern im Netzwerk dahinter ab 400 MHz mit 256 MB-RAM einzuplanen ist. Beim Einsatz des Copfilter sollte man die Größe des Swapfiles ändern.

technische Wege

Übersetzung

Copfilter-Website und Mailtexte

Ein Großteil der Übersetzung beruht auf den Dateien (für deutsch) de.pl und de.sh, welche sich im Verzeichnis /var/log/copfilter/default/langs befinden. Während die de.pl die Texte für die Konfiguration enthält, sind in der de.sh die Webseitentexte und (relativ weit unten) die Mailtexte enthalten, welche z.B. auf einen Virus hinweisen.

Aufgrund von Variablen-Prüfungen durch Buttons dürfen diese nicht übersetzt werden und müssen vorerst in jeder Sprache auf englisch bleiben!

Zusätzlich empfehle ich aufgrund der Zeilenumbruchproblematik folgende Vorgehensweise beim Import neuer Templates:

  • Anzeigen im Browser
  • STRG+A (alles markieren)
  • STRG+C (das markierte kopieren)
  • mit WinSCP auf dem IPCop verbinden und die jew. Template-Datei bearbeiten
  • STRG+A
  • STRG+V (das markierte überschreiben)
  • Speichern und die vorhandene Datei auf dem Cop überschreiben

HAVP-Sperrseite

Die HTML-Seiten, welche erscheinen, wenn man auf gesperrte Inhalte zugreift, befinden sich unter /var/log/copfilter/default/opt/havp/etc/templates/. Die Sprache diser Seiten wird in /var/log/copfilter/default/opt/havp/etc/havp.config definiert; zumindest wird relativ simpel das entsprechende Verzeichnis eingetragen. Danach muss Havp neugestartet werden.

TEMPLATEPATH /var/log/copfilter/default/opt/havp/etc/templates/de

Eine Angleichung der Fehlertexte an den URLFilter (für ein einheitliches Design) befindet sich hier

HAVP Ausnahmeregeln

Da HAVP keine Authentifizierung (NTLM) auf Webseiten durchführen kann, muß eine Ausnahmeregel definiert werden, das die betroffene Seite vom Scan ausschließt. Lösung: Über die Konsole bitte ein Backup anlegen!

cd /var/log/copfilter/default/opt/havp/etc/init.d
cp copfilter_havp copfilter_havp_backup

Mit einem Editor (vi oder nano ) diese Datei im gleichen Verzeichnis editieren:

nano copfilter_havp

ab Zeile 222 findet man folgenden Eintrag, der wichtig ist:

# COPFILTER START - havp - do not modify
acl copfilter_all src 0.0.0.0/0.0.0.0
acl Scan_HTTP proto HTTP
acl Scan_FTP proto FTP

cache_peer 127.0.0.1 parent 10080 0 no-query no-digest no-netdb-exchange default
cache_peer_access 127.0.0.1 allow copfilter_all

always_direct allow Scan_FTP
never_direct allow Scan_HTTP
# COPFILTER END - havp - do not modify

muß folgendermaßen abgeändert werden:

# COPFILTER START - havp - do not modify
acl copfilter_all src 0.0.0.0/0.0.0.0
acl Scan_HTTP proto HTTP
acl Scan_FTP proto FTP

cache_peer 127.0.0.1 parent 10080 0 no-query no-digest no-netdb-exchange default
cache_peer_access 127.0.0.1 allow copfilter_all

acl NOSCAN dstdomain www.deineseite.de
always_direct allow NOSCAN

always_direct allow Scan_FTP
never_direct allow Scan_HTTP
# COPFILTER END - havp - do not modify

Diese beiden Zeilen sind relevant:

acl NOSCAN dstdomain www.deineseite.de
always_direct allow NOSCAN

und abspeichern! Mehrere Seiten werden mit einem Leerzeichen getrennt:

acl NOSCAN dstdomain www.meineseite.de weitereseite.de

Danach einen havp-restart über die Konsole durchführen:

/usr/local/bin/copfilter_restarthavp

Renattach-Betreff in Mails

Die im Betreff angezeigten Informationen, wenn ein Anhang geblockt wurde zum Beispiel, befinden sich in der Datei /var/log/copfilter/default/opt/tools/etc/renattach.conf

Copyright im Mailtext

Die Einträge im Mail-Header und das Copyright im Mailtext (sofern aktiviert) sind unter /var/log/copfilter/default/etc2/copfilter_functions genau definiert. Der Copyright-Text lässt sich sogar um einen Firmen-Datenschutz-Disclaimer oder ähnliches erweitern. Allerdings sollte das Copyright selbst nicht modifiziert werden, ohne dass die Autoren dem zugestimmt haben...

untransparenter Modus

Der untransparente Modus stellt eine Möglichkeit dar, nur bestimmte Server zu erreichen. Die Gründe dafür können vielfältig sein: Ein Unternehmen verweigert das private Mailen am Arbeitsplatz (hier sei ein Verweis auf die Datenschutzgesetze angebracht!); die Mail-Kommunikation läuft nur eingeschränkt über die Firmendomain und zusätzlich betreibt die Firma aber keinen eigenen Mailserver, sondern nutzt den des Providers.

Um den Copfilter (bzw. den Mail-Virenscanner) im sogenannten untransparenten Modus zu betreiben, muss die Kommunikationsmöglichkeit zu dem Mailserver per Hand eingetragen werden.

POP3

Für den einkommenden Mailverkehr wird die Datei /var/log/copfilter/default/opt/p3scan/etc/p3scan.conf mit den Werten

targetip=
targetport=

bearbeitet. Im momentanen Entwicklungsstatus kann dort nur eine IP eingetragen werden! Die IP ist die, welche man durch ein ping auf den Mailserver erhält, der Port ist normalerweise 110.

SMTP

Für den ausgehenden Mailverkehr wird die Datei /var/log/copfilter/default/opt/proxsmtp/etc/proxsmtpd.conf mit der Zeile

OutAddress: smtp.1und1.de

und

TransparentProxy: off

bearbeitet.

HTTP

Damit ein Webbrowser auch Seiten im Internet erreichen kann, muss dieser einfach nur den Proxy mitgeteilt bekommen. Dazu wird unter Dienste / Proxy (alternativ AdvancedProxy) der Proxy-Port angegeben und der Proxy selbst aktiviert. Allerdings darf er dabei nicht im transparenten Modus laufen. Dem Browser wird die grüne IP-Adresse und der Proxy-Port eingetragen. Alternativ kann auch ein ProxyScript genutzt werden.

Damit kein Mitarbeiter im Netzwerk die Proxies umgehen kann, sollten entsprechende Firewall-Regeln zusätzlich definiert werden. Hierfür empfiehlt sich BOT

Virenscan für Webseiten ausschließen

Unter gewissen Umständen blockt HAVP den Zugriff auf spezielle URLs. In der momentanen Version (0.78) sind das die [Windows-Updates] und teilweise die Updates für den Virenscanner [FreeAV]


Diese URLs kann man vom Scanning durch havp mithilfe einer Whitelist ausschließen. Man editiert die Datei /var/log/copfilter/default/opt/havp/etc/whitelist und ergänzt diese um folgende Einträge:

windowsupdate.microsoft.com/* 
*.windowsupdate.microsoft.com/* 
update.microsoft.com/* 
*.update.microsoft.com/* 
windowsupdate.com/* 
*.windowsupdate.com/*

Falls das immer noch nicht klappt, kann man zusätzlich ACL-Regeln dafür definieren. Dazu wird die Datei /var/log/copfilter/default/opt/havp/etc/init.d/copfilter_havp (ungefähr in Zeile 220) um folgende Zeilen erweitert:

acl windowsupdate dstdomain .microsoft.com .windowsupdate.com 
always_direct allow windowsupdate
acl freeavupdate dstdomain .avgate.net
always direct allow freeavupdate

Danach muss der HAVP-Dienst neugestartet werden. Dank an [querschlaeger] für diese Informationen.

Rar-Dateien downloaden

Da RAR-Dateien keine Unterstützung im HAVP finden, müssen diese Dateitypen in die Whitelist eingetragen werden. Das erledigt man in der /var/log/copfilter/default/opt/havp/etc/whitelist durch hinzufügen des Eintrags

*/*.rar

Spam-Mails mit Anhang aus dem Spam-Filter bekommen

In der aktuellen Copfilter-Version gibt es ein Problem mit Mails, welche im Spam-Filter landen und einen Anhang besitzen. Möchte man diese Mails noch einmal aus dem Spam-Filter zustellen, kommen sie ohne Anhang an. Workaround für das Problem: Die Mail im Spam-Filter selbst aufrufen und über die Tastenkombination STRG+C und STRG+V in eine lokale msg-Datei als Text einfügen. Diese msg-Datei dann in das jeweilige Mailprogramm importieren oder in eine Mail als Anhang einfügen. Die meisten Mailclients unter Windows können msg-Dateien problemlos lesen.

Copfilter und BOT

Das Addon BOT (BlockOutTraffic) sperrt in der Standardeinstellung jeden Zugriff auf den IPCop und die anderen Netze. Damit der Copfilter weiterhin problemlos funktioniert, müssen außer den "normalen" Freigaben folgende Ports (oder eine Untermenge, je nach den benutzten Diensten) für den Zugriff auf den IPCop für die betreffenden Clients freigegeben werden:

benutzerdefinierte Dienste:
- IPCopProxy Port 800 TCP
- IPCopPOP3Filter Port 8110 TCP
- IPCopSMTPFilter Port 10025 TCP
- IPCopFTPFilter Port 2121 TCP ( & UDP ? )
- IPCopFTPControl Port 50000-50199 TCP ( & UDP ? )
- IPCopFTPPassive Port 50200-50399 TCP ( & UDP ? )
- IPCopFTPActive Port 50400-50599  TCP ( & UDP ? )

Dann kann man gleich noch folgende nützlich Dienste mit reinpacken (bei Bedarf, gehört nicht zum Copfilter):

benutzerdefinierte Dienste:
- IPCopGUI Port 81 TCP, IPCopGUIs Port 445 TCP
Standard Dienste:
- bootpc, bootps (DHCP Port 67, 68, TCP & UDP )
- domain (DNS Port 53, TCP & UDP )
- ntp (Zeitserver Port 123, TCP & UDP )

Am geschicktesten ist es, diese Dienste in einer Gruppe zusammenzufassen.

ClamAV-Version updaten

Damit die Clamav-Version geändert werden kann, muss sie vorher übersetzt bzw. kompiliert werden. Das wird hier beschrieben:

Falls jemand eine kompilierte Version auf einem Webserver zur Verfügung stellt, kann man sich diesen Schritt sparen...

Nachdem ClamAV in einer aktuellen Version zur Verfügung steht, sollte man seine Firewalls möglichst schnell auf den aktuellsten Stand bringen. Gerade wenn man mehrere Maschinen hat, ist es sinnvoll, dies automatisiert zu erledigen. Dafür habe ich die von rkaehler zur Verfügung gestellte ClamAV-Version auf meinen Webserver gelegt und eine Textdatei unter Windows mit folgendem Inhalt erzeugt:

wget http://www.computerjockey.de/clamav_0.88.6_copfilter.tar.gz
tar xvzf clamav_0.88.6_copfilter.tar.gz
cd clamav_0.88.6_copfilter
./install
cd ..
rm -R clamav_0*
/usr/local/bin/copfilter_restarthavp
exit

Wichtig bei der Datei ist der Zeilenumbruch hinter dem Wort "exit"! Den kompletten Text kopiere ich jetzt in die Zwischenablage meines Windows-Clients, verbinde mich mit PuTTY auf die Firewalls (inkl. Anmeldung) und klicke einmal auf die rechte Maustaste. Somit werden alle Befehle direkt ausgeführt und hinterher findet gleich ein Logout statt. Überprüfen lässt sich das Ganze bei den Rücksende-Mails im Copfilter, wenn ClamAV nach maximal 4 Stunden (Standardeinstellung) Updates zieht oder wenn sich Monit mit der neuen HAVP-PID zurückmeldet.

Spam-Filterregeln verändern

Es gibt viele Möglichkeiten, wie man den Spam-Filter verbessern bzw. manipulieren kann. Eine davon soll hier kurz vorgestellt werden und kommt aus dem Forum: http://copfilter.endlich-mail.de/viewtopic.php?t=1129

Das Prinzip des Spam-Filters beruht auf Filter-Regeln, welche erst unter bestimmten Voraussetzungen die Mail auf Spam prüfen. Sehen kann man diese Regeln, wenn man sich den Header einer Spam-Mail anschaut. Der Text könnte wie folgt aussehen:

X-Spam-Status: No, score=2.4_ required=3.0 tests=EXTRA_MPART_TYPE,HTML_IMAGE_ONLY_28,HTML_MESSAGE,J_CHICKENPOX_44 autolearn=no 
version=3.1.4 
X-Spam-Report: 
* 0.8 EXTRA_MPART_TYPE Header has extraneous Content-type:...type= entry 
* 0.6 J_CHICKENPOX_44 BODY: 4alpha-pock-4alpha 
* 1.0 HTML_IMAGE_ONLY_28 BODY: HTML: images with 2400-2800 bytes of words 
* 0.0 HTML_MESSAGE BODY: HTML included in message

Hier greifen also 4 Filterregeln. Da die Mail Spam enthält, aber nicht als Spam erkannt wurde, kann man den Score der einzelnen Module erhöhen. In diesem Beispiel wurde empfohlen, den Score für HTML_IMAGE_ONLY_28 BODY von 1.0 auf 2.0 oder sogar 2.5 zu setzen. Das geschieht in der Datei /var/log/copfilter/0.82.1/opt/mail-spamassassin/3.0.4/share/spamassassin/20_html_tests.cf

Hängendes Virenupdate

Achtung: In der aktuellen Beta wurde der Update-Mechanismus verändert. Daher hat diese Lösung dort keine Auswirkung.

Manchmal kann es vorkommen, dass der Updateprozess für ClamAV, genannt freshclam einfach hängenbleibt. In diesem Fall findet kein weiteres Update mehr statt, bis der Prozess gelöst bzw. gekillt wurde. Um den Prozess zu killen, führt man folgenden Befehl aus:

kill -9 `pidof freshclam`

Bitte beim Ausführen auf die "Backticks" ( ` ) achten oder am Besten den Befehl von hier kopieren!

Näheres und weitere Tips sind u.A. hier beschrieben: http://www.endlich-mail.de/forum/viewtopic.php?t=1161

malformed database

Manchmal kommt es auch vor, ClamAV nicht mehr startet und meldet "malformed database", trotz erfolgreichem freshclam. Das kann an einer beschädigten Phishing-Datenbank liegen (phish.ndb). In diesem Fall muß diese Datei gelöscht werden.

Ansicht in der SPAM-Quarantaene sortiert

Unter http://copfilter.endlich-mail.de/viewtopic.php?t=1307 ist beschrieben, wie man die Ansicht der SPAM-Quarantäne sortiert anzeigen lassen kann. Die dafür notwendige Datei ist unter http://rapidshare.com/files/4262486/copfilter_status.cgi.html zu finden.

Bayes-Learning ohne IMAP

Unter http://copfilter.endlich-mail.de/viewtopic.php?t=1306 ist von dem Benutzer Taurus beschrieben, wie man das Bayes-Learning aktivieren kann, obwohl man kein IMAP-Postfach dafür hat.

automatisches Update

Anleitung: Den Inhalt der folgenden Datei ins /root-Verzeichnis legen und mit chmod 750 copfilterupdate.sh ausführbar gestalten. Danach einfach mit ./copfilterupdate.sh ausführen.

copfilterupdate.sh:

echo Copfilter-Update Ver: 0.2d
echo by computerjockey.de

echo this Script must in /root
echo the Copfilter-Update must in /root too

COPFILE=copfilter-0.84beta2.gz
FPFILE=fp-linux-ws.tar.gz
CURRENTDIR=`pwd`

cd ~
if [ "$CURRENTDIR" = "/root" ]; then
 echo "Update begins..."
else
 echo "Im not in /root-Directory, Exiting"
 exit 1
fi

if [ -f $COPFILE ]; then
 echo "Copfilterupdate exist..."
else
 echo "Copfilterupdate not exist, Exiting"
 exit 1
fi

echo old Backups removed...
rm /var/ipcop/copfilter/*

echo making new Copfilter-Backup...
cd copfilter
./setup_util -b
cd ~

echo Backup of other config-files...
cp /var/log/copfilter/default/opt/havp/etc/havp.config /var/ipcop/copfilter
cp /var/log/copfilter/default/opt/proxsmtp/etc/proxsmtpd.conf /var/ipcop/copfilter
cp /var/log/copfilter/default/opt/p3scan/etc/p3scan.conf /var/ipcop/copfilter

echo Backup of HAVP-Errormessages...
cp -R /var/log/copfilter/default/opt/havp/etc/templates/de /var/ipcop/copfilter/havp-error

echo unpacking copfilter...
tar xvzf copfilter-*

echo deinstall old Copfilter...
cd copfilter
echo y | ./setup_util -u
cd ~

echo install new Copfilter...
cd copfilter-*
./install -y
cd ~

echo install F-Prot, if exist...
if [ -f ~/$FPFILE ]; then
 cd copfilter
 echo y | ./setup_util -f ~/$FPFILE
else
 echo "F-Prot does not exist"
fi

echo restoring config...
echo y | ./setup_util -r
cd ~

echo starting Copfilter-Daemons...
/usr/local/bin/copfilter_restartp3scan
/usr/local/bin/copfilter_restartproxsmtpd
/usr/local/bin/copfilter_restarthavp
/usr/local/bin/copfilter_restartprivoxy
/usr/local/bin/copfilter_restartspamd
/usr/local/bin/copfilter_restartclamd
/usr/local/bin/copfilter_restartf-protd
/usr/local/bin/copfilter_restartfrox
/usr/local/bin/copfilter_restartmonit

echo cleaning up...
rm -R ~/copfilter-*
rm /var/ipcop/copfilter/etc*

copfilterupdate.sh für die neue Version mit avg:

echo Copfilter-Update Ver: 0.4
echo by computerjockey.de

echo this Script must in /root
echo the Copfilter-Update must in /root too

COPFILE=copfilter-0.84beta2.gz
FPFILE=fp-linux-ws.tar.gz
AVGFILE=avg71flr-r28-a0757.i386.rpm
CURRENTDIR=`pwd`

cd ~
if [ "$CURRENTDIR" = "/root" ]; then
 echo "Update begins..."
else
 echo "Im not in /root-Directory, Exiting"
 exit 1
fi

if [ -f $COPFILE ]; then
 echo "Copfilterupdate exist..."
else
 echo "Copfilterupdate not exist, Exiting"
 exit 1
fi

echo old Backups removed...
rm /var/ipcop/copfilter/*

echo making new Copfilter-Backup...
cd copfilter
./setup_util -b
cd ~

echo Backup of other config-files...
cp /var/log/copfilter/default/opt/havp/etc/havp.config /var/ipcop/copfilter
cp /var/log/copfilter/default/opt/proxsmtp/etc/proxsmtpd.conf /var/ipcop/copfilter
cp /var/log/copfilter/default/opt/p3scan/etc/p3scan.conf /var/ipcop/copfilter

echo Backup of HAVP-Errormessages...
cp -R /var/log/copfilter/default/opt/havp/etc/templates/de /var/ipcop/copfilter/havp-error

echo unpacking copfilter...
tar xvzf copfilter-*

echo deinstall old Copfilter...
cd copfilter
echo y | ./setup_util -u
cd ~

echo install new Copfilter...
cd copfilter-*
./install -y
cd ~

echo install F-Prot, if exist...
if [ -f ~/$FPFILE ]; then
 cd copfilter
 echo y | ./setup_util -f ~/$FPFILE
else
 echo "F-Prot does not exist"
fi
cd ~

echo install AVG, if exist...
if [ -f ~/$AVGFILE ]; then
 cp $AVGFILE ~/copfilter
 cd copfilter
 echo Y | ./setup_util -avg $AVGFILE
 rm $AVGFILE
else
 echo "AVG does not exist"
fi
cd ~

echo restoring config...
cd copfilter
echo y | ./setup_util -r
cd ~

echo starting Copfilter-Daemons...
/usr/local/bin/copfilter_restartp3scan
/usr/local/bin/copfilter_restartproxsmtpd
/usr/local/bin/copfilter_restarthavp
/usr/local/bin/copfilter_restartprivoxy
/usr/local/bin/copfilter_restartspamd
/usr/local/bin/copfilter_restartclamd
/usr/local/bin/copfilter_restartf-protd
/usr/local/bin/copfilter_restartfrox
/usr/local/bin/copfilter_restartmonit

echo cleaning up...
rm -R ~/copfilter-*
rm /var/ipcop/copfilter/etc*

Spam-Whitelist sichern

Die Spam-Whitelist findet sich so und kann manuell bei Bedarf einfach kopiert werden:

/var/log/copfilter/default/etc/cp_spam_whitelist/local_webgui.cf

Versionen

<= 1.0.0
Version Datum
0.0.95.1 20. Dezember 2004
0.80 15. September 2005
0.81 16. September 2005
0.81.2 17. September 2005
0.81.3 17. September 2005
0.81.4 24. September 2005
0.81.5 25. September 2005
0.81.6 26. September 2005
0.81.7 02. November 2005
0.81.8 08. November 2005
0.81.9 18. November 2005
0.82 15. Januar 2006
0.82.1 14. März 2006
0.83 (beta1a) 27. Juni 2006
0.83 (beta2) 11. Juli 2006
0.83 (beta3) 15. August 2006
0.84 (beta1) 03. April 2007
0.84 (beta2) 21. April 2007
0.84 (beta3) 09. November 2007
0.84 (beta3a) 11. November 2007

Download

Weblinks

Persönliche Werkzeuge