Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
centos:mail_c7:spam_7 [21.11.2014 07:12. ] – [HAM] djangocentos:mail_c7:spam_7 [15.07.2020 11:07. ] (aktuell) – [freschcalm Update] django
Zeile 266: Zeile 266:
  
  
-==== freschcalm Update ====+==== freshclam Update ====
    # vim /etc/cron.d/clamav-update    # vim /etc/cron.d/clamav-update
 <code>## Adjust this line... <code>## Adjust this line...
Zeile 3275: Zeile 3275:
 </code> </code>
  
-Beim **systemd-tmpfiles** werden für temporäre Dateien und Verzeichnisse unter anderem im Verzeichnis //**/var/run/**// angelegt. Damit für unseren Service der UNix-Dateisocket im richtigen Verzeichnis mit den zugehörigen Berechtigungen gesetzt werden kann, benötigen wir im Verzeichnis //**/etc/tmpfiles.d/**// eine zugehörige Konfigurationsdatei. Diese legen wir nun an.+Bei **[[http://www.freedesktop.org/software/systemd/man/tmpfiles.d.html|systemd-tmpfiles]]** werden für temporäre Dateien und Verzeichnisse unter anderem im Verzeichnis //**/var/run/**// angelegt. Damit für unseren Service der UNix-Dateisocket im richtigen Verzeichnis mit den zugehörigen Berechtigungen gesetzt werden kann, benötigen wir im Verzeichnis //**/etc/tmpfiles.d/**// eine zugehörige Konfigurationsdatei. Diese legen wir nun an.
    # vim /etc/tmpfiles.d/clamd.amavisd.conf    # vim /etc/tmpfiles.d/clamd.amavisd.conf
  
-<file bash/etc/tmpfiles.d/clamd.amavisd.conf ># Django : 2014-11-15 Socketverzeichnis im tmpfile based System+<file bash/etc/tmpfiles.d/clamd.amavisd.conf ># Django : 2014-11-15 Socketverzeichnis im tmpfile based System anlegen
 d /var/run/clamd.amavisd 0710 amavis amavis - d /var/run/clamd.amavisd 0710 amavis amavis -
 </file> </file>
  
-Bevor wir unseren ClamAV-Daemon starten können müssen wir noch kurz die zugehörige systemd-Konfigurationsdatei //**/usr/lib/systemd/system/clamd@.service**// +Bevor wir unseren ClamAV-Daemon starten können müssen wir noch kurz die zugehörige systemd-Konfigurationsdatei //**/usr/lib/systemd/system/clamd@.service**// anpassen. 
-   # vim /usr/lib/systemd/system/clamd@.service+<WRAP center round alert 60%>
  
-<file bash /usr/lib/systemd/system/clamd@.service>[Unit]+**ACHTUNG** \\ 
 +Keinenfalls die Datei direkt im Verzeichnis **// /usr/lib/systemd/system/ //** bearbeiten! Bei einem Update des zugehörigen Paketes wpürden die Änderungen wieder überschrieben! 
 +</WRAP> 
 + 
 +Wir kopieren also das **systemc-startscript** nach //**/etc/systemd/system/**// und bearbeiten dort eine lokale Kopie vom Original. Dadurch sind wir dann auch update-fest! 
 + 
 +   # cp /usr/lib/systemd/system/clamd@.service /etc/systemd/system/ 
 + 
 +   # vim /etc/systemd/system/clamd@.service 
 + 
 +<file bash /etc/systemd/system/clamd@.service>[Unit]
 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 = (
 +    ['mail', \&do_mime_decode],
 +    ['F',    \&do_uncompress, ['unfreeze', 'freeze -d', 'melt', 'fcat'] ],
 +    ['Z',    \&do_uncompress, ['uncompress', 'gzip -d', 'zcat'] ],
 +    ['gz',   \&do_uncompress, 'gzip -d'],
 +    ['gz',   \&do_gunzip],
 +    ['bz2',  \&do_uncompress, 'bzip2 -d'],
 +    ['xz',   \&do_uncompress, ['xzdec', 'xz -dc', 'unxz -c', 'xzcat'] ],
 +    ['lzma', \&do_uncompress, ['lzmadec', 'xz -dc --format=lzma',
 +            'lzma -dc', 'unlzma -c', 'lzcat', 'lzmadec'] ],
 +    ['lrz',  \&do_uncompress, ['lrzip -q -k -d -o -', 'lrzcat -q -k'] ],
 +    ['lzo',  \&do_uncompress, 'lzop -d'],
 +    ['rpm',  \&do_uncompress, ['rpm2cpio.pl', 'rpm2cpio'] ],
 +    [['cpio','tar'], \&do_pax_cpio, ['pax', 'gcpio', 'cpio'] ],
 +    ['deb',  \&do_ar, 'ar'],
 +    ['rar',  \&do_unrar, ['unrar', 'rar'] ],
 +    ['arj',  \&do_unarj, ['unarj', 'arj'] ],
 +    ['arc',  \&do_arc,   ['nomarch', 'arc'] ],
 +    ['zoo',  \&do_zoo,   ['zoo', 'unzoo'] ],
 +    ['cab',  \&do_cabextract, 'cabextract'],
 +    ['tnef', \&do_tnef],
 +    [['zip','kmz'], \&do_7zip,  ['7za', '7z'] ],
 +    [['zip','kmz'], \&do_unzip],
 +    ['7z',   \&do_7zip,  ['7zr', '7za', '7z'] ],
 +    [[qw(7z zip gz bz2 Z tar)], \&do_7zip,  ['7za', '7z'] ],
 +    [[qw(xz lzma jar cpio arj rar swf lha iso cab deb rpm)], \&do_7zip,  '7z' ],
 +    ['exe',  \&do_executable, ['unrar','rar'], 'lha', ['unarj','arj'] ],
 +);
 +
 +# eMails wird komplett dem Virenscanner zugestellt. Dem Inhalt von Archiven
 +# wird grundsätzlich nicht vertraut.
 +@keep_decoded_original_maps = (new_RE(
 +  qr'^MAIL$',
 +  qr'^MAIL-UNDECIPHERABLE$',
 +  qr'^(ASCII(?! cpio)|text|uuencoded|xxencoded|binhex)',
 +));
 +
 +...
 +</code>
 +
 +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 = ('virus');
 +
 +# eMail bei Release wrappen?
 +$defang_virus  = 1;
 +
 +# Wollen wir Content transportieren?
 +$final_virus_destiny = D_REJECT;
 +
 +@av_scanners = (
 +  ### http://www.clamav.net/
 +  ['ClamAV-clamd',
 +    \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamd.amavisd/clamd.sock"],
 +    qr/\bOK$/m, qr/\bFOUND$/m,
 +    qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ],
 +);
 +
 +@av_scanners_backup = ();
 +</code>
 +
  
-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://www.eicar.com|EUROPEAN EXPERT GROUP FOR IT-SECURITY]]** zurück. 
-<code># curl -O http://www.eicar.org/download/eicarcom2.zip +Als erstes laden wir uns eine Testsignaturdatei auf unseren Rechner. 
-  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current+   # curl -O http://www.eicar.org/download/eicarcom2.zip 
 +<code>  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                  Dload  Upload   Total   Spent    Left  Speed                                  Dload  Upload   Total   Spent    Left  Speed
 100   308  100   308    0       1299      0 --:--:-- --:--:-- --:--:--  1305 100   308  100   308    0       1299      0 --:--:-- --:--:-- --:--:--  1305
 +</code>
 +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 </root/eicarcom2.zip --header "Subject: Eicar Virentestpattern"
  
- +<code>=== Trying 10.0.0.87:25...
-# swaks --to django@nausch.org --from michael@nausch.org --attach - --server 10.0.0.87 --suppress-data </root/eicarcom2.zip --header "Subject: Eicar Virentestpattern" +
-=== Trying 10.0.0.87:25...+
 === 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.
 +</code>
 +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 /var/log/maillog
  
- +<code>Nov 20 22:43:10 vml000087 postfix/smtpd[12126]: connect from vml000067.dmz.nausch.org[10.0.0.67]
- +
-Nov 20 22:43:10 vml000087 postfix/smtpd[12126]: connect from vml000067.dmz.nausch.org[10.0.0.67]+
 Nov 20 22:43:10 vml000087 postfix/smtpd[12126]: 44A0AC00089: client=vml000067.dmz.nausch.org[10.0.0.67] Nov 20 22:43:10 vml000087 postfix/smtpd[12126]: 44A0AC00089: client=vml000067.dmz.nausch.org[10.0.0.67]
 Nov 20 22:43:10 vml000087 postfix/cleanup[12127]: 44A0AC00089: message-id=<VRAnQpYwBJBkmi@viruswall.dmz.nausch.org> Nov 20 22:43:10 vml000087 postfix/cleanup[12127]: 44A0AC00089: message-id=<VRAnQpYwBJBkmi@viruswall.dmz.nausch.org>
Zeile 3597: Zeile 3692:
 Nov 20 22:43:10 vml000087 postfix/lmtp[12128]: 44A0AC00089: to=<django@nausch.org>, relay=10.0.0.77[10.0.0.77]:24, delay=0.62, delays=0.05/0.19/0/0.37, dsn=2.0.0, status=sent (250 2.0.0 <django@nausch.org> YmGbByhfblQOXQAArK2B9Q Saved) Nov 20 22:43:10 vml000087 postfix/lmtp[12128]: 44A0AC00089: to=<django@nausch.org>, relay=10.0.0.77[10.0.0.77]:24, delay=0.62, delays=0.05/0.19/0/0.37, dsn=2.0.0, status=sent (250 2.0.0 <django@nausch.org> YmGbByhfblQOXQAArK2B9Q Saved)
 Nov 20 22:43:10 vml000087 postfix/qmgr[8701]: 44A0AC00089: removed Nov 20 22:43:10 vml000087 postfix/qmgr[8701]: 44A0AC00089: removed
 +</code>
  
 +Details zum Scannvorgang und -ergebnis können wir mit der id **03311-01** im Maillog des **AS/AV**((**A**nti**S**pam und **A**nti**V**irus))-Host herausfinden.
 +   # less /var/log/maillog
  
- +<code>Nov 20 22:43:09 vml000067 amavis[3311]: loaded policy bank "AM.PDP-SOCK"
- +
- +
-Nov 20 22:43:09 vml000067 amavis[3311]: loaded policy bank "AM.PDP-SOCK"+
 Nov 20 22:43:09 vml000067 amavis[3311]: process_request: fileno sock=13, STDIN=0, STDOUT=1 Nov 20 22:43:09 vml000067 amavis[3311]: process_request: fileno sock=13, STDIN=0, STDOUT=1
 Nov 20 22:43:09 vml000067 amavis[3311]: policy protocol: request=AM.PDP Nov 20 22:43:09 vml000067 amavis[3311]: policy protocol: request=AM.PDP
Zeile 3666: Zeile 3761:
 Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) extra modules loaded: unicore/lib/Gc/Nd.pl Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) extra modules loaded: unicore/lib/Gc/Nd.pl
 Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) load: 100 %, total idle 0.000 s, busy 0.635 s Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) load: 100 %, total idle 0.000 s, busy 0.635 s
 +</code>
 +
 +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, deren Annahme aber verweigert wurde, da ein Virus erkannt wurde.
  
-Return-Path: <postmaster@nausch.org>+<code>Return-Path: <postmaster@nausch.org>
 Delivered-To: django@nausch.org Delivered-To: django@nausch.org
 Received: from mx01.nausch.org ([10.0.0.87]) Received: from mx01.nausch.org ([10.0.0.87])
Zeile 3711: Zeile 3810:
  
 </code> </code>
 +
 +
 ===== 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? //**Was ist besser als viel RAM?  Ganz einfach: Noch mehr RAM!**// ;)
 +</WRAP>
 +
 +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/dürfen. Zum einen gibt es Budgetgrenzen bei der Anschaffung und natürlich andere limitierende Faktoren, wie z.B. den Netzwerkkartendurchsatz und Wahrscheinlichkeit, wie häufig Nachrichten mit Anhängen zugleich bearbeitet werden müssen.
 +
 +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
 +
 +   amavis:x:996:995:User for amavisd-new:/var/spool/amavisd:/sbin/nologin
 +
 +Die **UID** lautet also **996** und die **GID** **995**. 
 +
 +Da wir nun die Werte **RAM-Disk-Größe**, **GID** und **UID** haben können wir nun in der Konfigurationsdatei //**/etc/fstab**// unsere RAM-Disk definieren.
 +   # vim /etc/fstab
 +<code bash>...
 +
 +# Django : 2014-11-21
 +# RAM-Disk für ClamAV eingerichtet
 +tmpfs      /var/spool/amavisd/tmp/ tmpfs   defaults,size=250m,mode=750,uid=996,gid=995     0 0
 +</code>
 +
 +Anschließend mounten wir unser neues Laufwerk mit dem folgenden Aufruf.
 +   # mount /var/spool/amavisd/tmp
 +
 +Je nach Belastung werden nun in unserem Arbeitsverzeichnis die Daten abgelegt.
 +   # df -h -t tmpfs
 +
 +<code>Filesystem      Size  Used Avail Use% Mounted on
 +tmpfs           921M      921M   0% /dev/shm
 +tmpfs           921M  8.4M  913M   1% /run
 +tmpfs           921M      921M   0% /sys/fs/cgroup
 +/dev/shm        250M  168M  250M  67% /var/spool/amavisd/tmp</code>
  
 +Der Scanvorgang unserer Nachrichten wird nun wesentlich schneller ablaufen, als bei den Tests ohne die RAM-Disk!
 ====== Links ====== ====== Links ======
   * **⇐ [[centos:mail_c7:spam_6|Zurück zum Kapitel "Grundinstallation von AMaViS unter CentOS 7.x"]]**   * **⇐ [[centos:mail_c7:spam_6|Zurück zum Kapitel "Grundinstallation von AMaViS unter CentOS 7.x"]]**
-  * **⇒ [[centos:mail_c7:spam_8|Zurück zum Kapitel "Spamassassin für AMaViS unter CentOS 7.x"]]**+  * **⇒ [[centos:mail_c7:spam_8|Weiter zum Kapitel "Spamassassin für AMaViS unter CentOS 7.x"]]**
   * **[[centos:mail_c7:start|Zurück zum Kapitel >>Mailserverinstallation unter CentOS 7<<]]**   * **[[centos:mail_c7:start|Zurück zum Kapitel >>Mailserverinstallation unter CentOS 7<<]]**
   * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]**   * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]**
   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
- 
-~~DISCUSSION~~ 
- 
  
  
  
  
  • centos/mail_c7/spam_7.1416553933.txt.gz
  • Zuletzt geändert: 21.11.2014 07:12.
  • von django