Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
centos:mail_c7:spam_7 [21.11.2014 07:18. ] – [clamav-server] django | centos:mail_c7:spam_7 [15.07.2020 11:07. ] (aktuell) – [freschcalm Update] django | ||
---|---|---|---|
Zeile 266: | Zeile 266: | ||
- | ==== freschcalm | + | ==== freshclam |
# vim / | # vim / | ||
< | < | ||
Zeile 3282: | Zeile 3282: | ||
</ | </ | ||
- | Bevor wir unseren ClamAV-Daemon starten können müssen wir noch kurz die zugehörige systemd-Konfigurationsdatei // | + | Bevor wir unseren ClamAV-Daemon starten können müssen wir noch kurz die zugehörige systemd-Konfigurationsdatei // |
- | # vim / | + | <WRAP center round alert 60%> |
- | <file bash / | + | **ACHTUNG** \\ |
+ | Keinenfalls die Datei direkt im Verzeichnis **// / | ||
+ | </WRAP> | ||
+ | |||
+ | Wir kopieren also das **systemc-startscript** nach // | ||
+ | |||
+ | # cp /usr/lib/ | ||
+ | |||
+ | # vim / | ||
+ | |||
+ | <file bash /etc/ | ||
Description = clamd scanner (%i) daemon | Description = clamd scanner (%i) daemon | ||
After = syslog.target nss-lookup.target network.target | After = syslog.target nss-lookup.target network.target | ||
Zeile 3304: | Zeile 3314: | ||
==== amavisd ==== | ==== amavisd ==== | ||
+ | Die **ClamAV** spezifischen Konfigurationsoptionen befinden sich in mehreren Sectionen. So finden sich die Angaben zu den Packprogrammen in der Section **PFADANGABEN DER LOKALEN INSTALLATION** | ||
+ | |||
+ | <code perl>... | ||
+ | |||
+ | # Utilities mit denen amavis Archive auspackt | ||
+ | @decoders = ( | ||
+ | [' | ||
+ | [' | ||
+ | [' | ||
+ | [' | ||
+ | [' | ||
+ | [' | ||
+ | [' | ||
+ | [' | ||
+ | 'lzma -dc', ' | ||
+ | [' | ||
+ | [' | ||
+ | [' | ||
+ | [[' | ||
+ | [' | ||
+ | [' | ||
+ | [' | ||
+ | [' | ||
+ | [' | ||
+ | [' | ||
+ | [' | ||
+ | [[' | ||
+ | [[' | ||
+ | [' | ||
+ | [[qw(7z zip gz bz2 Z tar)], \& | ||
+ | [[qw(xz lzma jar cpio arj rar swf lha iso cab deb rpm)], \& | ||
+ | [' | ||
+ | ); | ||
+ | |||
+ | # eMails wird komplett dem Virenscanner zugestellt. Dem Inhalt von Archiven | ||
+ | # wird grundsätzlich nicht vertraut. | ||
+ | @keep_decoded_original_maps = (new_RE( | ||
+ | qr' | ||
+ | qr' | ||
+ | qr' | ||
+ | )); | ||
+ | |||
+ | ... | ||
+ | </ | ||
+ | |||
+ | In der Section **VIRUS POLICY** finden sich die Definitionen zum Virenscanner **ClamAV**. | ||
+ | <code perl>################################################################################ | ||
+ | ## VIRUS POLICY | ||
+ | # | ||
+ | |||
+ | # Check aktivieren? | ||
+ | # @bypass_virus_checks_maps = (1); | ||
+ | |||
+ | # In Quarantäne? | ||
+ | $virus_quarantine_to = undef; | ||
+ | |||
+ | # Admin benachrichtigen? | ||
+ | $virus_admin = undef; | ||
+ | |||
+ | # Empfänger benachrichtigen? | ||
+ | $warnvirusrecip = 1; | ||
+ | |||
+ | # Recipient-Adresse bei Release erweitern? | ||
+ | @addr_extension_virus_maps = (' | ||
+ | |||
+ | # eMail bei Release wrappen? | ||
+ | $defang_virus | ||
+ | |||
+ | # Wollen wir Content transportieren? | ||
+ | $final_virus_destiny = D_REJECT; | ||
+ | |||
+ | @av_scanners = ( | ||
+ | ### http:// | ||
+ | [' | ||
+ | \& | ||
+ | qr/\bOK$/m, qr/ | ||
+ | qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ], | ||
+ | ); | ||
+ | |||
+ | @av_scanners_backup = (); | ||
+ | </ | ||
+ | |||
- | FIXME | ||
===== Programmstart ===== | ===== Programmstart ===== | ||
==== freshclam ==== | ==== freshclam ==== | ||
Zeile 3554: | Zeile 3645: | ||
===== Virus-Mail ===== | ===== Virus-Mail ===== | ||
- | FIXME | + | Beim nächsten Test versuchen wir eine eMail mit einem Virus im Anhang an einen Benutzer zu schicken. Hierzu greifen wir auf ein Testsignatur-Datei der **[[http:// |
- | < | + | Als erstes laden wir uns eine Testsignaturdatei auf unseren Rechner. |
- | % Total % Received % Xferd Average Speed | + | # curl -O http:// |
+ | < | ||
| | ||
100 | 100 | ||
+ | </ | ||
+ | Wie auch schon bei unserem vorherigen Test nutzen wir auch hier **swaks** zum verschicken einer eMail mit der eicar-Testdatei im Anhang. | ||
+ | # swaks --to django@nausch.org --from michael@nausch.org --attach - --server 10.0.0.87 --suppress-data </ | ||
- | + | <code>=== Trying 10.0.0.87: | |
- | # swaks --to django@nausch.org --from michael@nausch.org --attach - --server 10.0.0.87 --suppress-data | + | |
- | === Trying 10.0.0.87: | + | |
=== Connected to 10.0.0.87. | === Connected to 10.0.0.87. | ||
<- 220 mx01.nausch.org ESMTP Postfix | <- 220 mx01.nausch.org ESMTP Postfix | ||
Zeile 3585: | Zeile 3678: | ||
<- 221 2.0.0 Bye | <- 221 2.0.0 Bye | ||
=== Connection closed with remote host. | === Connection closed with remote host. | ||
+ | </ | ||
+ | Wie wir sehen, wurde die Annahme der eMail vom Mailserver abgelehnt. Der einliefernde Client bekommt auch sofort mit der Fehlermeldung **554 5.7.0 Reject, id=03311-01 - INFECTED: Eicar-Test-Signature.** einen Hinweis, warum die Nachricht nicht angenommen wurde. | ||
+ | Im Maillog des **MTA**((**M**ail **T**ransport **A**gent)) finden wir die Einträge des Zustellungsversuch. | ||
+ | # less / | ||
- | + | < | |
- | + | ||
- | Nov 20 22:43:10 vml000087 postfix/ | + | |
Nov 20 22:43:10 vml000087 postfix/ | Nov 20 22:43:10 vml000087 postfix/ | ||
Nov 20 22:43:10 vml000087 postfix/ | Nov 20 22:43:10 vml000087 postfix/ | ||
Zeile 3597: | Zeile 3692: | ||
Nov 20 22:43:10 vml000087 postfix/ | Nov 20 22:43:10 vml000087 postfix/ | ||
Nov 20 22:43:10 vml000087 postfix/ | Nov 20 22:43:10 vml000087 postfix/ | ||
+ | </ | ||
+ | Details zum Scannvorgang und -ergebnis können wir mit der id **03311-01** im Maillog des **AS/ | ||
+ | # less / | ||
- | + | < | |
- | + | ||
- | + | ||
- | Nov 20 22:43:09 vml000067 amavis[3311]: | + | |
Nov 20 22:43:09 vml000067 amavis[3311]: | Nov 20 22:43:09 vml000067 amavis[3311]: | ||
Nov 20 22:43:09 vml000067 amavis[3311]: | Nov 20 22:43:09 vml000067 amavis[3311]: | ||
Zeile 3666: | Zeile 3761: | ||
Nov 20 22:43:10 vml000067 amavis[3311]: | Nov 20 22:43:10 vml000067 amavis[3311]: | ||
Nov 20 22:43:10 vml000067 amavis[3311]: | Nov 20 22:43:10 vml000067 amavis[3311]: | ||
+ | </ | ||
+ | |||
+ | Hier suche wir dann nach besagter ID 03311-01 und erfahren den eigentlichen Grund, warum die Annahme der Nachricht verweigert wurde. | ||
+ | Gemäß unseren Einstellungen im **[[|AMaViS]]** erhält der Empfänger eine Nachricht, dass versucht wurde ihm eine NAchricht zuzustellen, | ||
- | Return-Path: | + | < |
Delivered-To: | Delivered-To: | ||
Received: from mx01.nausch.org ([10.0.0.87]) | Received: from mx01.nausch.org ([10.0.0.87]) | ||
Zeile 3711: | Zeile 3810: | ||
</ | </ | ||
+ | |||
+ | |||
===== Optimierung / RAM-Disk für AMaViS ===== | ===== Optimierung / RAM-Disk für AMaViS ===== | ||
+ | Da sich bei entsprechenden Traffic die Zugriffe auf die Harddisk ungünstig auf die Performance auswirkt, legen wir eine RAM-Disk für den Virenscanner an. Dort kann ClamAV dann die Dateianhänge der Nachrichten entpacken, ablegen und auf Schadcode hin überprüfen. | ||
+ | |||
+ | <WRAP center round tip 60%> \\ | ||
+ | Denn wie lautet die alte Serverkonfiguration? | ||
+ | </ | ||
+ | |||
+ | Bei der Festlegung, wie groß die RAM-Disk denn sein soll, kann man folgende Formel heranziehen: | ||
+ | |||
+ | **RAM-Disk ≈ Anzahl AMaViS-Instanzen * (max. e-Mailgröße + (max. e-Mailgröße * Auspackfaktor))** | ||
+ | |||
+ | Diesen theoretischen Wert, wird man aber in den seltensten Fällen einstellen können/ | ||
+ | |||
+ | Bei einigen Installationen hat sich die Faustregel | ||
+ | **RAM-Disk ≈ Anzahl AMaViS-Instanzen * (1,25 * max. Dateigröße)** | ||
+ | bestens bewährt. Bei vier Instanzen reicht also eine 250MB große RAM-Disk dicke aus! | ||
+ | |||
+ | Damit wir die Zugriffsrechte auf die Ramdisk richtig setzen können, schließlich soll nicht jedermann die Inhalte der eMails lesen können, ermitteln wird zu erst noch die **gid** und **uid**. | ||
+ | # grep amavis /etc/passwd | ||
+ | |||
+ | | ||
+ | |||
+ | Die **UID** lautet also **996** und die **GID** **995**. | ||
+ | |||
+ | Da wir nun die Werte **RAM-Disk-Größe**, | ||
+ | # vim /etc/fstab | ||
+ | <code bash>... | ||
+ | |||
+ | # Django : 2014-11-21 | ||
+ | # RAM-Disk für ClamAV eingerichtet | ||
+ | tmpfs / | ||
+ | </ | ||
+ | |||
+ | Anschließend mounten wir unser neues Laufwerk mit dem folgenden Aufruf. | ||
+ | # mount / | ||
+ | |||
+ | Je nach Belastung werden nun in unserem Arbeitsverzeichnis die Daten abgelegt. | ||
+ | # df -h -t tmpfs | ||
+ | |||
+ | < | ||
+ | tmpfs | ||
+ | tmpfs | ||
+ | tmpfs | ||
+ | / | ||
+ | Der Scanvorgang unserer Nachrichten wird nun wesentlich schneller ablaufen, als bei den Tests ohne die RAM-Disk! | ||
====== Links ====== | ====== Links ====== | ||
* **⇐ [[centos: | * **⇐ [[centos: | ||
- | * **⇒ [[centos: | + | * **⇒ [[centos: |
* **[[centos: | * **[[centos: | ||
* **[[wiki: | * **[[wiki: | ||
* **[[http:// | * **[[http:// | ||
- | |||
- | ~~DISCUSSION~~ | ||
- | |||