User Tools

Site Tools


de:tips_und_tricks


Teil 6 - Tips und Tricks

…And Now For Something Completely Different…

  • So, jetzt kommt mal was Anderes:
  • An dieser Stelle sollen verschiedenste Tips und Tricks - nicht nur für den Copfilter - in loser Form gesammelt werden.
  • Die bisher an dieser Stelle üblichen Sicherheitshinweise und Anmerkungen, insbesonders die aus Teil 4, entfallen ausnahmsweise, haben aber natürlich noch Gültigkeit!

Bitte beachten:

Jeder, der bis hierin durchgehalten hat, sollte wissen, was er zu tun und zu lassen hat:

V1-Logo

1. IPCop per Power-Button runterfahren

Aus: http://www.ipcop-forum.de/forum/viewtopic.php?t=11690

IPCop 1.4.x ONLY:

:!: Diese Funktion ist im neuen IPCop 1.9.x/2.x (V2) schon fest eingebaut und muss nicht “nachgerüstet” werden.

Beschreibung

Einen IPCop-Host via Power-Button sauber runterzufahren und abzuschalten ist mit Hilfe eines kleines “Hacks” möglich.

Notwendige Voraussetzungen:

  • Der Rechner / das BIOS muss ACPI-fähig sein.
  • IPCop muss mit dem ACPI Kernel gestartet sein.

Der “Power-Button-Hack”

Fügt einfach nachfolgende Zeilen an das Ende der Datei '/etc/rc.d/rc.local' an:

rc_local_power_button_mod
# power button shutdown
if grep -q '^button' /proc/modules ; then
head -1 /proc/acpi/event | grep -q 'button/power PWRF' && /usr/local/bin/ipcopreboot down &
fi

Nach einem Reboot (oder nach manuellem Ausführen von /etc/rc.d/rc.local) führt IPCop nun “auf Knopfdruck” einen sauberen Shutdown durch und schaltet den Rechner aus.

V1-Logo

2. CSS-Menue-Tuning

Beschreibung

Simple modification to the IPCOP css style menu . for a more visible menu hover color.

Info . to change the default menu hover color of a bright white to one of the colors in the IPCOP shield (a yellow-ish orange)

In the file … /home/httpd/html/include/ipcop.css … (near the bottom of the page) …
Find the following . clipped out of context.

div.ipcop_menuElementHover {
color: #FFCC33;
# DEFAULT: FFFFFF
}

div.ipcop_subMenuElementHover {
padding: 3px;
color: #FFCC33;
# DEFAULT: DEDFEF
}

Change the default color . to #FFCC33 . *(above example already modified)

Save the file … then refresh any IPCOP cgi page …
… the IPCOP menu should now be a little easier to see - n' navigate.“

Screenshot

Menü-Tuning

3. Die Optionen der 'setup_util'

Diese Datei liegt im Verzeichnis '/var/log/copfilter/default' - ihre Existenz und Funktion ist vielen Copfilter-Anwendern/innen leider nicht so richtig bekannt und bewußt.

Viele Grundfunktionen eines installierten Copfilters werden über diese Datei gesteuert:

root@Develcop:~/copfilter # ./setup_util
Fehler: unbekannte Option

Benutze: setup_util OPTION

Optionen:
-a, --addmenu           fuege Copfilter-Menue in die Oberflaeche (wird auch mit -i gemacht)
-b, --backup [DATEI]    sichere aktuelle Einstellungen und Log-Dateien (optional: Backup-Datei)
-d, --default           stelle Standardkonfiguration wieder her
-i, --install [--force] installiere (oder reinstalliere) Copfilter (benutze force, wenn schon install.)
-f, --fprot DATEI       installiere fprot, DATEI: download und kopiere fprot >GZIP-te TAR Datei< auf den IPCop
                        URL:http://www.f-prot.com/download/home_user/download_fplinux.html
                        Bsp: setup_util -f fp-linux-ws.tar.gz
-r, --restore [DATEI]   stelle Konfiguration wieder her (optional: Restore-Datei)
-U, --uninstall-icap    to restore default squid binary
-W, --with-icap         install squid with icap support
-R, --regrazor          registriere Razor
-u, --uninstall         deinstalliere Copfilter und fprot
-p, --permissions       setze die Benutzerrechte
-V, --version           Versions-Information und Ende
-x, --fixbackspace      repariere backspace-key im vi-Editor
-s, --symlinks          erstelle Symlinks für die Copfilter Logdateien neu
-y, --yes               Installiere ohne Bestaetigung

Copfilter 2.0.91beta2 fuer IPCop 2.x.x und neuer
von Markus Madlener <copfilter at gmx dot net>
und karesmakro <ipcop at it-connect-unix dot de>
http://www.copfilter.org

Besonders wichtig ist die 'setup_util' für die Copfilter-Update-Installation oder die Installation eines zusätzlichen Virenscanners, z.B. F-Prot.

4. 'monit' startet nicht wegen falschen Dateirechten der 'monit.rc'

Problem

In seltenen Fällen ist es vorgekommen, dass der 'monit'-Dienst nicht mehr startet.

Im Log findet sich nichts - das Ergebnis lautet ganz einfach nur:

starte monit <BR>
warte 3 Sekunde(n) <BR>
monit laeuft nicht <BR>

Und ein

/var/log/copfilter/default/opt/monit/etc/init.d/copfilter_monit debug

liefert auch nur

mo:2345:respawn:/var/log/copfilter/default/opt/monit/default/bin/monit -I -c /var/log/copfilter/default/opt/monit/etc/monitrc
monit laeuft nicht
warte 0 Sekunde(n)
/var/log/copfilter/default/opt/monit/etc/init.d/copfilter_monit: line 279: debug: command not found
monit laeuft nicht

Ursache

Falcshe Dateirechte der '/var/log/copfilter/default/opt/monit/etc/monit.rc'

(siehe hierzu auch: http://www.bruhaha.de/dtjfaq/usenet.html - Wenn irgendwas falchs ist, ists halt lachsf. Sonst wär's ja falsch! 8-))

Lösung

Auf der Konsole oder mit einem geeigneten Klienten (ssh, putty, …) auf dem IPCop als 'root' einloggen und folgende Befehle initiieren:

cd /var/log/copfilter/default/opt/monit/etc
chown root.root monitrc
chmod 600 monitrc

Anschließend sollte das Problem behoben sein…

5. E-Mail-Benachrichtigungen ausschalten

Ausgelöst durch: http://www.copfilter.org/forum/viewtopic.php?p=621#p621

Bitte beachten:

  • Dieser Mod ist in den 3rd Party Signaturen ab 0.55.0 schon enthalten. Die Benachrichtigung wird dort über die Email GUI ein-/ausgeschaltet.
  • Daher diesen Mod nicht zusätzlich zum 3rd_party_sig Mod ab 0.55.0 benutzen!

Beschreibung

Wem die E-Mail-Benachrichtigungen über die Viren-Updates der diversen Virenscanner lästig sind, kann sie mit dem folgenden Patch komplett abschalten - oder auch wieder einschalten.

This script will disable the email notifying for the database updates of clamav, avg and f-prot
and the rules update of spamassassin and furthermore the email of the bayes leraning process.
To disable these mails please choose “d” in the following dialog.
To reenable these mails run this script again with the parameter “e”.
Please note that you use this script on your own risk without any warranty of the author!

d = disable email notifying e = enable email notifying

Download

2010-04-16 20:00 v 0.01.3:

no_upd_mail_notif.tar.gz 2 KB
MD5SUM:DE4A2B81D151391BE70F5C60CA5B7E1E

Installation

6. 'crontab' verhindert Copfilter-Installation

Problem

Die Copfilter-Installation auf deinem IPCop v1.4.21 bricht mit einer Fehlermeldung ab, obwohl die Systemvoraussetzungen erfüllt sind:

md5check       done
extracting ...   done
now executing /var/log/copfilter/0.84beta4/setup_util -i

This addon only works for IPCop 1.4.x and higher

Ursache

Es existiert eine Datei '/etc/crontab', ein Relikt einer vorherigen IPCop-Version, das während des Update-Vorgangs versehentlich nicht gelöscht wurde.

Lösung

rm /etc/crontab

V1-Logo

7. Copfilter und BOT

Ein dickes “Danke!” geht an 'cjmatsel' - im Copfilter-Abschnitt seines IPCopWiki wurde dieser Tip ursprünglich veröffentlich!

Die im Folgenden beschriebene Vorgehensweise gilt NUR für den IPCop V1 (1.4.xx), in der V2 (2.x) wurde das BOT-Addon fest integriert. Dort muss lediglich der administrative Zugriff auf den Monit Service Manager (Port 446) definiert werden.

Beschreibung

  • Das äußerst empfehlenswerte Addon BOT (BlockOutTraffic) sperrt in der Standardeinstellung jeden Zugriff auf den IPCop und die anderen Netze.
  • Damit der Copfilter weiterhin problemlos funktioniert, müssen daher 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 (Copfilter): ab Copfilter 0.85.x: Benutzerdefinierte Dienste (IPCop):
Name Port Protokoll Name Port Protokoll Name Port Protokoll
IPCopProxy 800 TCP IPCop Imspector 16667 TCP IPCop GUI 81 TCP
IPCopPOP3Filter 8110 TCP


IPCopGUI 445 TCP
IPCopSMTPFilter 10025 TCP
IPCopFTPFilter 2121 TCP
IPCopFTPControl 50000-50199 TCP
IPCopFTPPassive 50200-50399 TCP
IPCopFTPActive 50400-50599 TCP
Monit Service Manager 446 TCP

Außerdem kann man gleich noch folgende nützliche Dienste mit reinpacken (bei Bedarf, gehören nicht zum Copfilter):

Standard Dienste:
Name Port Protokoll
bootpc 67 TCP&UDP
bootps 68 TCP&UDP
domain (DNS) 53 TCP&UDP
ntp (Zeitserver) 123 TCP&UDP

Am geschicktesten ist es, die benötigten Dienste in Gruppen zusammenzufassen.

Hier ein Screenshot einer Beispielkonfiguration, die noch einige andere Dienste enthält:

Screenshot

BOT

Darüber hinaus gilt bei allen BOT-spezifischen Problemen die BOT FAQ No.5!

Sollte man sich nicht sicher sein, BOT FAQ No.11 anwenden.

8. sendEmail-Funktion testen

Problem

Leider kommt es immer mal wieder vor, dass die eingesetzte sendEmail-Version Probleme mit dem jeweiligen Provider hat.

Lösung

In diesem Fall soll die folgende Anleitung bei der Überprüfung der korrekten Funktion helfen:

Folgende Kommandozeilen an der Konsole eingeben - Absenderadresse, Empfängeradresse usw. usf. entsprechend ausfüllen (die eckigen Klammern weglassen!):

cd /var/log/copfilter/default/opt/tools/bin
./sendEmail -f [Absenderadresse] -u [Subject] -t [Empfängeradresse] -s [SMTP-Server-Adresse] -xu [SMTP-Username] -xp [SMTP-Paßwort]

[ENTER]

Ein erfolgreiches Ergebnis sollte in etwa so aussehen:

root@coprouter:/tmp # […hier stand die 'sendEmail'-Befehlszeile…]
Reading message body from STDIN because the '-m' option was not used.
If you are manually typing in a message:
- First line must be received within 60 seconds.
- End manual input with a CTRL-D on its own line.
testmehl nummer 3
Jan 02 21:52:59 coprouter sendemail[10044]: Message input complete.
Jan 02 21:52:59 coprouter sendemail[10044]: NOTICE ⇒ Authentication not supported by the remote SMTP server!
Jan 02 21:52:59 coprouter sendemail[10044]: Email was sent successfully!
\\

Sämtliche Ausgaben unbedingt auf Fehlermeldungen überprüfen!

Um ganz sicher zu gehen, im Copfilter GUI Test & Logs nacheinander die Buttons “Sende Test-Virus Email”, “Sende Test-SPAM Email” und “Sende Test-Email mit gef. Anhang” anklicken:

Testmails

Einen Moment warten und dann einen Blick in die /var/log/messages werfen…:

Jan 2 21:54:25 coprouter copfilter send testvirus:
Jan 2 21:54:25 coprouter copfilter send testvirus: please wait until scripts finishes
Jan 2 21:54:25 coprouter copfilter send testvirus: this script only works if you have correctly configured your email address
Jan 2 21:54:25 coprouter copfilter send testvirus: and smtp server in the copfilter webgui
Jan 2 21:54:25 coprouter copfilter send testvirus:
Jan 2 21:54:29 coprouter copfilter send testspam:
Jan 2 21:54:29 coprouter copfilter send testspam: please wait until scripts finishes
Jan 2 21:54:29 coprouter copfilter send testspam: this script only works if you have correctly configured your email address
Jan 2 21:54:29 coprouter copfilter send testspam: and smtp server in the copfilter webgui
Jan 2 21:54:29 coprouter copfilter send testspam:
Jan 2 21:54:29 coprouter copfilter send testspam: Reading message body from STDIN because the '-m' option was not used.
Jan 2 21:54:29 coprouter copfilter send testspam: If you are manually typing in a message:
Jan 2 21:54:29 coprouter copfilter send testspam: - First line must be received within 60 seconds.
Jan 2 21:54:29 coprouter copfilter send testspam: - End manual input with a CTRL-D on its own line.
Jan 2 21:54:29 coprouter copfilter send testspam:
Jan 2 21:54:29 coprouter copfilter send testspam: Jan 02 21:54:29 coprouter sendEmail[8535]: Message input complete.
Jan 2 21:54:29 coprouter copfilter send testvirus: Jan 02 21:54:29 coprouter sendEmail[8524]: Email was sent successfully!
Jan 2 21:54:30 coprouter copfilter send testspam: Jan 02 21:54:30 coprouter sendEmail[8535]: Email was sent successfully!
Jan 2 21:54:31 coprouter copfilter send exe attachment:
Jan 2 21:54:32 coprouter copfilter send exe attachment: please wait until scripts finishes
Jan 2 21:54:32 coprouter copfilter send exe attachment: this script only works if you have correctly configured your email address
Jan 2 21:54:32 coprouter copfilter send exe attachment: and smtp server in the copfilter webgui
Jan 2 21:54:32 coprouter copfilter send exe attachment:
Jan 2 21:54:32 coprouter copfilter send exe attachment: Jan 02 21:54:32 coprouter sendEmail[8546]: Email was sent successfully!

Kurz danach sollten insgesamt drei E-Mails ankommen - eine mit einem ”.EXE Attachment“, die anderen zwei - bei aktiviertem 'P3Scan' - beginnend mit in etwa folgendem Text-Body:

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Copfilter hat einen Virus in einer an Sie gesendeten Mail gefunden (POP3)!
Anstatt der verseuchten Mail erhalten Sie diesen Hinweis.

Virus-Name: Eicar-Test-Signature (gefunden durch ClamAV)
Anhang: eicar.com

Absender: [Absendeadresse von oben…!]
Empfaenger: [Empfängeradresse von oben…!]
Betreff: harmless VIRUS test mail from Copfilter
Datum: Sat, 02 Jan 2010 21:58:34 +0100
Server: [IP-Adresse…!]
Client: [IP-Adresse+Port!]
Email-Datei: p3scan.j2iBxb
gescannt auf: coprouter
Diese Mail wurde zwischengespeichert.
Bitte nehmen Sie zur Kenntnis, dass die Absende-Adresse gefaelscht sein koennte!
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Header der Original-Nachricht:

X-Filtered-With: Copfilter Version 0.84beta4 (P3Scan 2.3.2)
X-Copfilter-Virus-Scanned: ClamAV 0.95.3/10248/Sat Jan 2 21:58:50 2010
Return-Path: …[usw.usf.]

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Filtered-With-Copfilter: Version 0.84beta4 (P3Scan 2.3.2)
Copfilter-Virus-Scanned: ClamAV 0.95.3/10248/Sat Jan 2 21:58:52 2010
by Markus Madlener @ http://www.copfilter.org
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
P3Scan 2.3.2 (modified by Markus Madlener for Copfilter)
by Jack S. Lai <laitcg@cox.net>

Sollte die jeweils eingesetzte 'sendEmail'-Version Probleme machen, muss “durchgetestet” werden:

cd /var/log/copfilter/default/opt/tools/bin

Der Einfachheit halber sollte man sich verschiedene 'sendEmail'-Versionen in eben dieses Verzeichnis legen:

sendEmail-Testversionen

Die zu testende 'sendemail-1.5X'-Version muss jetzt nur noch nach 'sendEmail' kopiert werden, z.B. mit:

cp sendEmail-1.54 sendEmail

Das Überschreiben der Zieldatei bestätigen - anschließend kann sofort ein neuer Testlauf gestartet werden.

V2-Logo

9. IPCop-Installation - Partitionsgrößen manuell einstellen (V2)

Problem

Die Installationsroutine vom IPCop V2 legt eine root-Partiton von lediglich 768MB an.

Dies reicht für manche Installationen - z.B. für die Installation der Developer-Version - nicht aus.

Lösung

Es empfiehlt sich daher, die benötigten Partitionen während der Installation manuell anzulegen.

Dabei kann die Größe der Partionen den eigenen Anforderungen angepaßt werden.

Hierfür wird 'parted' benötigt, das auf der IPCop-CD enthalten ist.

Nähere Informationen zu 'parted' findet man z.B. auf http://ftp.gnu.org/old-gnu/Manuals/parted-1.6.1/html_mono/parted.html

Vorgehensweise

1. IPCop-V2-ISO-Image auf CD brennen.

2. Von dieser CD booten.

3. Am Boot-Prompt eingeben:

install parted

[ENTER]

4. Nach der Hardware-Initialisierung und der Medien-Auswahl erscheint eine Message-Box:

Do your thing with parted now!

[An dieser Stelle NICHT ENTER drücken!]



5. [ALT-F5] oder [ALT-F6] drücken

6. In dem jetzt erscheinenden Consolen-Bildschirm folgendes eingeben:

cat /proc/partitions

[ENTER]

Mit diesem Befehl werden die eventuell vorhandenen Partitionen und der Typ der Zielfestplatte (hda oder sda) angezeigt:

cat /proc/partitions

7. Jetzt (je nach angezeigtem Plattentyp) folgenden Befehl eingeben:

parted /dev/hda

(oder /dev/sda, s.o.)
[ENTER]

'parted' wird gestartet und man befindet sich auf der 'parted'-Kommandozeile:

parted /dev/sda

8. Mit dem Befehl print die Partitionstabelle anzeigen lassen.

print

[ENTER]

print

9. Falls nötig, vorhandene Partitionen mit dem Befehl rm [Zahl] entfernen. [Zahl] entspricht dabei der Partitionsnummerierung der “Number”-Spalte.

10. Falls eine Fehlermeldung erscheint (“unrecognized disk label”), muss vor dem weiteren Vorgehen mit dem Befehl mklabel msdos ein msdos-Disklabel angelegt werden:

mklabel msdos

[ENTER]

11. Mit folgendem Befehl wird eine root-Partition von 8 GB angelegt.

mkpart primary ext2 2048s 8191

[ENTER]

12. Anschließend muss noch eine zweite Partition für var angelegt werden - im folgenden Befehl wird der gesamte restliche Disk-Speicherplatz hierfür verwendet:

mkpart primary ext2 8192 100%

[ENTER]

13. Die root-Partition bootfähig machen:

set 1 boot on

[ENTER]

14. 'parted' verlassen:

quit

[ENTER]

15. Mit dem Befehl 'sync' werden noch ausstehende Schreib-Operationen auf die Festplatte geschrieben (wichtig bei SCSI-Systemen!):

sync

[ENTER]

16. Vorhandene/neu angelegte Partitionen auflisten:

parted -l

[ENTER]

17. Mit [ALT-F1] zum ersten Consolenbildschirm (oben, Punkt 4.) wechseln.

18. [ENTER] drücken, um die IPCop-V2-Installation fortzusetzen.

Download Addon-friendly

Wer sich dies nicht zutraut, kann unter der folgenden URL eine Addon-friendly-Version vom IPCop V2 herunterladen, die automatisch eine größere Root-Partition anlegt:

Download:
http://sourceforge.net/projects/copfilter/files/copfilter%20v2/IPCop-ISO/

Eine derartige Installation benötigt mindestens eine 10 GB-Festplatte und legt eine 5-GB-root-Partition sowie ein 256-MB-Swapfile an.

Hinweis

Die ISO-Dateien, die unter der obigen URL zum Download bereitstehen, sind keine offiziellen IPCop Versionen!

V1-Logo

10. HAVP-Optimierung mit RAM-Disk

Beschreibung

Um Zugriffe auf die temporären Dateien, die HAVP während der Scan-Vorgänge in /var/log/copfilter/default/opt/havp/tmp anlegt, zu beschleunigen, sind nur wenige Änderungen an verschiedenen IPCop- und Copfilter-Dateien nötig.

Die temporären HAVP-Dateien liegen anschließend in einer Ramdisk und können entsprechend schneller abgearbeitet werden.

Die Ramdisk wird in dieser Anleitung mit einer Größe von 64MB angelegt, was sich bisher für den Standardgebrauch als ausreichend erwiesen hat - größere Werte sind natürlich möglich, gehen aber auf Kosten des verfügbaren Arbeitsspeichers.

Bitte beachten:

  • Die Ramdisk muss in jedem Fall die temporären Dateien mehrerer, gleichzeitiger Downloads verwalten können.
  • Bei einem MAXSCANSIZE-Wert von z.B. 30720000 (30MB) ist eine 64MB Ramdisk mit dem gleichzeitigen Downloads von zwei entsprechend großen Dateien unter Umständen voll ausgelastet - dies kann zu Problemen führen.
  • In diesem Fall muss die Ramdisk entsprechend größer angelegt oder der MAXSCANSIZE-Wert von HAVP verkleinert werden!

  • Das ursprüngliche Verzeichnis /var/log/copfilter/default/opt/havp/tmp darf nicht gelöscht werden!
  • Ein Neustart des IPCop-Rechners ist nach einer Änderung dieser Option zwingend erforderlich.

Umgebung

Diese Optimierung wurde auf einem IPCop 1.4.21, den aktuellen HAVP-und ClamAV-Versionen und mit folgenden HAVP-Parametern problemlos getestet (Copfilter 0.84beta4, ClamAV läuft im Library-Modus):

OptionWertEinheit
SERVERNUMBER 20 Anzahl
MAXSERVERS 100 Anzahl
MAXSCANSIZE 20971520 Bytes
CLAMMAXSCANSIZE 20 MB
KEEPBACKBUFFER 400000 Bytes
TRICKLING 10 Seconds
TRICKLINGBYTES 10240 Bytes
ENABLECLAMLIB true
CLAMMAXSCANSIZE 20 MB
CLAMMAXFILES 5000 Anzahl
CLAMMAXFILESIZE 25 MB
CLAMMAXRECURSION 16 Anzahl


Bitte beachten:

IPCop 1.4.x ONLY! V1-Logo

  • In den IPCop-Versionen 1.9.x/2.x (V2) wurde das Kernel Modul für die Ramdisk entfernt.
  • Ab der Copfilter-Version 2.0.91beta3 (IPCop 1.9.x/2.x) wird daher TMPFS eingesetzt - die Option kann dort mit dem Schalter Aktiviere HAVP Scanner im Speicher im HAVP-GUI ein- und ausgeschaltet werden:

TMPFS-Schalter


Vorgehensweise

Als erstes müssen von folgenden Dateien BACKUPS gemacht werden!

  • /boot/grub/grub.conf
  • /var/log/copfilter/default/etc/global_settings
  • /var/log/copfilter/default/opt/havp/etc/init.d/copfilter_havp

1. Bearbeiten 'grub.conf':

In der '/boot/grub/grub.conf' müssen die vorhandenen “Kernel-Zeilen” um die Option ramdisk_size=64000 erweitert werden.

Beispiel:

kernel /vmlinuz root=/dev/sda4 panic=10 init=/linuxrc rw ramdisk_size=64000

2. Bearbeiten 'global_settings':

In die Datei '/var/log/copfilter/default/etc/global_settings' wird die Zeile HAVP_RAMDISK=on eingefügt.

Hier wird zwischen Groß- und Kleinschreibung unterschieden, 'on' bzw. 'off' müssen kleingeschrieben werden!)

3. Bearbeiten 'copfilter_havp':

In der Datei '/var/log/copfilter/default/opt/havp/etc/init.d/copfilter_havp' wird in der Subroutine start () der Abschnitt:

        /bin/mount | grep -v grep |grep man >/dev/null 2>&1
        RESULT=$?
        if [ "x${RESULT}" = "x1" ]; then 
          echo $CP_havp_mount $APPEND
          /bin/mount -o remount,mand  /var/log
        fi

durch diesen Abschnitt ersetzt:

copfilter_havp_ramdisk_mod_01
# Creating Ramdisk
        /bin/mount | grep -v grep |grep man >/dev/null 2>&1
        RESULT=$?
        if [ "x${RESULT}" = "x1" ]; then 
            if [ "x${HAVP_RAMDISK}" = "xon" ]; then
                echo "$CP_havp_mount Ramdisk $APPEND"
                if [ ! -d /var/log/copfilter/default/opt/havp/tmp ]; then
                    mkdir /var/log/copfilter/default/opt/havp/tmp
                fi
                /sbin/mkfs.ext3 /dev/ram1
                /bin/mount -o mand  /dev/ram1 /var/log/copfilter/default/opt/havp/tmp
                chown -R havp.havp /var/log/copfilter/default/opt/havp/tmp
            else
                echo $CP_havp_mount $APPEND
                /bin/mount -o remount,mand  /var/log
            fi
        fi

Achtung:

Ab der Copfilter Version 0.85.3 muss die Zeile

chown -R havp.havp /var/log/copfilter/default/opt/havp/tmp

ersetzt werden durch

chown -R havp.copfilter /var/log/copfilter/default/opt/havp/tmp

4. Bearbeiten 'copfilter_havp':

Ebenfalls in der Datei '/var/log/copfilter/default/opt/havp/etc/init.d/copfilter_havp' wird die komplette Subroutine stop () durch den folgenden Abschnitt ersetzt:

copfilter_havp_ramdisk_mod_02
stop () {
        PRG_PID=`pidof $PRG`
        if [ $? != 0 ]; then 
          PRG_PID=""
        fi

        if [ "x$PRG_PID" = "x" ]; then
          echo $PRG $CP_not_running $APPEND
        else
          $MONIT unmonitor $PRG
          if kill $PRG_PID 2>/dev/null; then
            progress_msg="<BR>Waiting ."
            cnt=0
            while kill $PRG_PID 2>/dev/null; do
              cnt=`expr "$cnt" + 1`
                if [ "$cnt" -gt 15 ]; then
                    kill -9 -$PRG_PID
                    break
                fi
                sleep 1
                echo -n $progress_msg
                progress_msg=" ."
            done
          fi
        fi
        # echo $CP_waiting $WAIT $CP_seconds $APPEND
        if [ "x${HAVP_RAMDISK}" = "xon" ]; then
            echo "$CP_havp_umount Ramdisk $APPEND"
            /bin/umount /dev/ram1
        fi
}

Anschließend muss der IPCop-Rechner neu gestartet werden, damit die Änderungen wirksam werden.

Beachten:

Ob die Änderungen erfolgreich waren, läßt sich leicht per GUI überprüfen.

  • Im IPCop-SYSTEM-STATUS muss die neue Ramdisk unter 'Festplattenbelegung:' und 'Inodes Belegung' sichtbar sein:

IPCop HDD- und Inodes Belegung

Überprüfung anhand der Log-Dateien:

  • In der /var/log/messages dokumentiert folgender Eintrag die Initialisierung der Ramdisk:
coprouter kernel: RAMDISK driver initialized: 16 RAM disks of 5120K size 1024 blocksize

Überprüfung im Filesystem:

  • Unter dem Verzeichnis /var/log/copfilter/default/opt/havp/tmp findet man ein neues Verzeichnis: lost+found

Besonderheiten

  • Bei einem “Neustart aller [Copfilter]Dienste” bwz. beim HAVP-Start wird das Unmounten/Mounten der Ramdisk “etwas ~ausführlicher” angezeigt - keinen Schreck bekommen, die folgende Ausgabe ist normal:

HAVP Neustart

V2-Logo

11. P3Scan und Mails werden stark verzögert (V2)

Problem

Mails werden nur mit extremer Verzögerung geholt und abgearbeitet.

  • Es sind SpamAssassin und die Razor-, DCC- und DNSBL-Listen aktiviert.
  • Außerdem werden die Mails mit ClamAV gecheckt.

Ursache

Die IPCop Skripte für die Traffic-Erfassung verbrauchen um so mehr Systemressourcen, je höher der Detaillierungsgrad eingestellt ist.
Je nach CPU und RAM laufen diese Skripte mehrere Minuten.

Getestete Laufzeit der '/usr/local/bin/aggregatetraffic.pl':

  • Detaillierungsgrad “Niedrig”: ca. 9 Sekunden
  • Detaillierungsgrad “Hoch”: ca. 130 Sekunden und mehr

Eine Scanzeit von bis zu 30 Sekunden pro Mail kann dabei, je nach der Anzahl der aktivierten Copfilter-Komponenten, normal sein.

Fällt ein Mailabruf allerdings z.B. genau auf den Zeitraum der Traffic-Erfassung, steigen die Scanzeiten vom SpamAssassin etc., extrem an!

Bei Problemen mit P3Scan/ProxSMTP und SpamAssassin müssen zudem die Timeout-Einstellungen der einzelnen Komponenten berücksichtigt werden.

Dazu gehören - neben dem Client, der die Mails abruft:

  • P3Scan (Default-Wert 120 Sekunden: /var/log/copfilter/default/opt/p3scan/etc/p3scan.conftimeout=120)
  • ProxSMTP (Default-Wert 180 Sekunden: /var/log/copfilter/default/opt/proxsmtp/etc/proxsmtpd.confTimeout: 180)

Unter Umständen kann die Scanzeit dann mehr als 90 Sekunden (und mehr) pro Mail betragen!

Lösung

1. Den Detaillierungsgrad der Traffic-Erfassung auf niedrig stellen:

Konfiguration Traffic-Erfassung

2. Mit dem folgenden Patch können in den Copfilter-Versionen 2.0.90 und 2.0.91beta1 in der Antispam GUI die RBL-Checks deaktiviert werden, wenn Razor, DNSBL und DCC aktiviert sind:

AntiSpam-Patch

Download

Für Copfilter 2.0.90:

V1:cp-spamd_v2-2.0.90-speedup.tgz 2 KB
MD5SUM: A5CA5BBABC2E69BA0286778EEA3A0DBE

Für Copfilter 2.0.91beta1:

V2:cp-spamd_v2-2.0.91beta-speedup.tgz 2 KB
MD5SUM: F0D3E48EF0E1B2137626C699602EB4E8

Installation

12. HAVP - Authentifizierungs-Problem

Kursive Zitate stammen aus dem leider nicht mehr rekonstruierbaren Original-Posting.

Problem

Da dieses Problem schon mehrfach aufgetaucht ist und von verschiedenen Usern angefragt wurde, möchte ich hier einen Workaround posten, der evtl. Probleme mit der Authentifizierung über HAVP löst.

Da HAVP keine Authentifizierung auf Webseiten durchführen kann, muß eine Ausnahmeregel definiert werden, die die betroffene Seite vom Scan ausschließt.

Antwort des Entwicklers auf dieses Problem:


Zitat:
Hi,
This site uses M$ NTLM authentication. It is impossible to get working with
current HAVP as it requires special features and architecture from a proxy
(connection pinning etc). Only Squid 2.6/2.7 are capable, even 3.0 doesn't
seem to have support for it.

Such sites are most likely to be internal and should require no scanning.
Your workaround with Squid is the correct way - also you can add such sites
as no-proxy in browser.

Lösung

Auf der Konsole oder mit einem geeigneten Klienten (ssh, putty, …) auf dem IPCop als 'root' einloggen und folgende Befehle initiieren:
(Die Code-Abschnitte bedeuten immer eine Befehlszeile, in eckige Klammern gefasste Wörter sind Tastendrücke)

cd /tmp 

[ENTER]

Zunächst 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

Oder:

vi copfilter_havp

Ab Zeile ~222 findet man folgende Einträge…:

# 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

Dieser Teil muß geändert werden:

copfilter_havp_acl
# 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!
Damit wird diese Einstellung dauerhaft hinterlegt und am IPCop und Copfilter lassen sich trotzdem die Einstellungen über die GUI ändern, ohne daß diese Einträge überschrieben werden.

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

/usr/local/bin/copfilter_restarthavp

bzw. HAVP über die GUI neu starten.

Wenn man noch weitere Seiten von HAVP ausschließen möchte, werden weitere Einträge mit einem Leerzeichen getrennt, z.B.:

acl NOSCAN dstdomain www.meineseite.de weitereseite.de

Bitte beachten:

  • Diese etwas komplizierte Vorgehensweise über das Editieren der 'copfilter_havp' ist nötig, damit diese Änderungen bei einem Copfilter- oder Squid-Neustart nicht überschrieben werden - letztendlich werden sie in der '/var/ipcop/proxy/squid.conf' platziert.

Anmerkung

Die gewünschten Ausnahmen können darüber hinaus sehr flexibel - auch durch Einfügen in die '/var/ipcop/proxy/acls/include.acl' - erweitert werden:

Ausnahmeregel für einen Client-Rechner:

acl NOSCANIP src <deine IP-Adresse>/32 <weitere IP>/32
always_direct allow NOSCANIP

Ausnahmeregel für bestimmte Dateitypen (hier 'mpq'):

acl site url_regex -i mpq
always_direct allow site

Zugriffe auf bestimmte IP-Adressen blockieren:

acl BANNED dst ip1 ip2 ip3 ip4 ip5
http_access deny BANNED

Sämtliche IP-basierten Zugriffe blockieren:

acl ipacl dstdom_regex ^[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*
http_access deny ipacl


Eine Übersicht über die Access-List-Optionen vom Squid (Version beachten!) findet man ansonsten z.B. hier:
http://wiki.squid-cache.org/SquidFaq/SquidAcl

de/tips_und_tricks.txt · Last modified: 2016/12/04 12:49 by fischerm