Copfilter
Aus IpcopWiki
| Copfilter | |
|---|---|
![]() 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 |
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
|
Download
Weblinks
- www.copfilter.org
- Copfilter Forum, englisch und deutsch
- Englische Dokumentation zum Copfilter auf dem IPCop

