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:12. ] – [HAM] django | centos:mail_c7:spam_7 [15.07.2020 11:07. ] (aktuell) – [freschcalm Update] django | ||
|---|---|---|---|
| Zeile 266: | Zeile 266: | ||
| - | ==== freschcalm | + | ==== freshclam |
| # vim / | # vim / | ||
| < | < | ||
| Zeile 3275: | Zeile 3275: | ||
| </ | </ | ||
| - | Beim **systemd-tmpfiles** werden für temporäre Dateien und Verzeichnisse unter anderem im Verzeichnis // | + | Bei **[[http:// |
| # vim / | # vim / | ||
| - | <file bash/ | + | <file bash/ |
| d / | d / | ||
| </ | </ | ||
| - | 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~~ | ||
| - | |||