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 [20.11.2014 20:54. ] – [Test] 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 3302: Zeile 3312:
 Anschließend führen wir einen Reload des **systemctl**-Daemon aus. Anschließend führen wir einen Reload des **systemctl**-Daemon aus.
    # systemctl daemon-reload    # systemctl daemon-reload
 +
 +==== 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>
 +
  
 ===== Programmstart ===== ===== Programmstart =====
Zeile 3392: Zeile 3486:
  
 ===== Test ===== ===== Test =====
-Haben wir die Konfiguration unseres **[centos:mail_c7:spam_6|AMaViS]** fertiggestellt, können wir uns auch daransetzen unsere **[[centos:mail_c7:spam_6?&#programmstart|ClamAV]]**-Installation zu überprüfen.+Haben wir die Konfiguration unseres **[[centos:mail_c7:spam_6|AMaViS]]** fertiggestellt, können wir uns auch daransetzen unsere **[[centos:mail_c7:spam_6?&#programmstart|ClamAV]]**-Installation zu überprüfen.
  
 +===== HAM =====
 +Als erstes wollen wir ein beliebiges ZIP-Archiv per eMail verschicken. In diesem Beispiel nehmen wir einfach ein Lied/ZIP-Archiv der [[http://ebersberger-liedersammlung.de|Ebersberger Liedersammlung]]. Dieses laden wir erst einmal auf unseren Rechner.
 +   # curl -O http://ebersberger-liedersammlung.de/lib/exe/fetch.php/lieder/in_dulci_jubilo.zip
  
 +<code>  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
 +                                 Dload  Upload   Total   Spent    Left  Speed
 +100  717k  100  717k    0      2007k      0 --:--:-- --:--:-- --:--:-- 2004k
 +</code>
 +
 +Anschließend generieren wir mit Hilfe von **[[http://www.jetmore.org/john/code/swaks/|swaks]]** eine eMail und packen dazu das ZIP-File in den Anhang.
 +   # swaks --to django@nausch.org --from michael@nausch.org --attach - --server 10.0.0.87 --suppress-data </root/in_dulci_jubilo.zip --header "Subject: Ebersberger Liedersammlung: In dulci jubilo"
 +
 +<code>=== Trying 10.0.0.87:25...
 +=== Connected to 10.0.0.87.
 +<-  220 mx01.nausch.org ESMTP Postfix
 + -> EHLO vml000087.dmz.nausch.org
 +<-  250-mx01.nausch.org
 +<-  250-PIPELINING
 +<-  250-SIZE 52428800
 +<-  250-ETRN
 +<-  250-STARTTLS
 +<-  250-ENHANCEDSTATUSCODES
 +<-  250-8BITMIME
 +<-  250 DSN
 + -> MAIL FROM:<michael@nausch.org>
 +<-  250 2.1.0 Ok
 + -> RCPT TO:<django@nausch.org>
 +<-  250 2.1.5 Ok
 + -> DATA
 +<-  354 End data with <CR><LF>.<CR><LF>
 + -> 12914 lines sent
 +<-  250 2.0.0 Ok: queued as 20560C00088
 + -> QUIT
 +<-  221 2.0.0 Bye
 +=== Connection closed with remote host.
 +</code>
 +
 +Im Maillog des **MTA**((**M**ail **T**ransport **A**gent)) finden wir die einträge der erfolgreichen Zustellung.
 +   # less /var/log/maillog
 +
 +<code>Nov 20 22:37:43 vml000087 postfix/smtpd[12103]: connect from vml000087.dmz.nausch.org[10.0.0.87]
 +Nov 20 22:37:43 vml000087 postfix/smtpd[12103]: 20560C00088: client=vml000087.dmz.nausch.org[10.0.0.87]
 +Nov 20 22:37:43 vml000087 postfix/cleanup[12108]: 20560C00088: message-id=<20141120213743.20560C00088@mx01.nausch.org>
 +Nov 20 22:37:44 vml000087 postfix/qmgr[8701]: 20560C00088: from=<michael@nausch.org>, size=1006405, nrcpt=1 (queue active)
 +Nov 20 22:37:44 vml000087 postfix/smtpd[12103]: disconnect from vml000087.dmz.nausch.org[10.0.0.87]
 +Nov 20 22:37:44 vml000087 postfix/lmtp[12109]: 20560C00088: to=<django@nausch.org>, relay=10.0.0.77[10.0.0.77]:24, delay=1.4, delays=0.93/0.02/0.05/0.37, dsn=2.0.0, status=sent (250 2.0.0 <django@nausch.org> KmGbByhfblQOXQAArK2B9Q Saved)
 +Nov 20 22:37:44 vml000087 postfix/qmgr[8701]: 20560C00088: removed
 +</code>
 +
 +Auf Seiten unseres **AS/AV**((**A**nti**S**pam und **A**nti**V**irus))-Hosts wird die Prüfung im Maillog dokumentiert.
 +   # less /var/log/maillog
 +
 +<code>Nov 20 22:37:43 vml000067 amavis[3310]: loaded policy bank "AM.PDP-SOCK"
 +Nov 20 22:37:43 vml000067 amavis[3310]: process_request: fileno sock=13, STDIN=0, STDOUT=1
 +Nov 20 22:37:43 vml000067 amavis[3310]: policy protocol: request=AM.PDP
 +Nov 20 22:37:43 vml000067 amavis[3310]: policy protocol: queue_id=20560C00088
 +Nov 20 22:37:43 vml000067 amavis[3310]: policy protocol: sender=<michael@nausch.org>
 +Nov 20 22:37:43 vml000067 amavis[3310]: policy protocol: recipient=<django@nausch.org>
 +Nov 20 22:37:43 vml000067 amavis[3310]: policy protocol: tempdir=/var/spool/amavisd/afXXXXtVLyxI
 +Nov 20 22:37:43 vml000067 amavis[3310]: policy protocol: tempdir_removed_by=client
 +Nov 20 22:37:43 vml000067 amavis[3310]: policy protocol: mail_file=/var/spool/amavisd/afXXXXtVLyxI/email.txt
 +Nov 20 22:37:43 vml000067 amavis[3310]: policy protocol: delivery_care_of=client
 +Nov 20 22:37:43 vml000067 amavis[3310]: policy protocol: client_address=10.0.0.87
 +Nov 20 22:37:43 vml000067 amavis[3310]: policy protocol: client_name=vml000087.dmz.nausch.org
 +Nov 20 22:37:43 vml000067 amavis[3310]: policy protocol: helo_name=vml000087.dmz.nausch.org
 +Nov 20 22:37:43 vml000067 amavis[3310]: policy protocol: policy_bank=mx01.nausch.org
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) Request: AM.PDP  /var/spool/amavisd/afXXXXtVLyxI: <michael@nausch.org> -> <django@nausch.org>
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) loaded policy bank "MYNETS" over "AM.PDP-SOCK"
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) body hash: 5bf56bd1955c4a16ec95bddecda96bb7
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) ip_trace: 10.0.0.87
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) Checking: tlAv90BU3Ydw AM.PDP-SOCK/MYNETS [10.0.0.87] <michael@nausch.org> -> <django@nausch.org>
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) 2822.From: <michael@nausch.org>
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) p003 1 Content-Type: multipart/mixed
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) p001 1/1 Content-Type: text/plain, size: 22 B, name:
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) p002 1/2 Content-Type: application/octet-stream, size: 734822 B, name:
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) inspect_dsn: not a bounce
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) Checking for banned types and filenames
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) skipping banned check: all recipients bypass banned checks
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) presenting full original message to scanners as /var/spool/amavisd/afXXXXtVLyxI/parts/p008
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) run_av Using (ClamAV-clamd): (code) CONTSCAN /var/spool/amavisd/afXXXXtVLyxI/parts\n
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) ClamAV-clamd: Connecting to socket  /var/run/clamd.amavisd/clamd.sock
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) new socket by IO::Socket::UNIX to /var/run/clamd.amavisd/clamd.sock, timeout 10
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) ClamAV-clamd: Sending CONTSCAN /var/spool/amavisd/afXXXXtVLyxI/parts\n to socket /var/run/clamd.amavisd/clamd.sock
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) rw_loop read: got eof
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) run_av (ClamAV-clamd): CLEAN
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) run_av (ClamAV-clamd) result: clean
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) truncating a message passed to SA at 410151 bytes, orig 1006367
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) calling SA parse (0), SA vers 3.3.2, 3.003002, data as GLOB, recips_ind [0], user: "amavis"
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) spam_scan: score=-1.01 autolearn=ham tests=[ALL_TRUSTED=-1,T_RP_MATCHES_RCVD=-0.01] recips=0
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) do_notify_and_quar: ccat=CleanTag (1,1) ("1,1":CleanTag, "1":Clean, "0":CatchAll) ccat_block=(), qar_mth=
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) delivery method is 1, recips: django@nausch.org
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) spam-tag, <michael@nausch.org> -> <django@nausch.org>, No, score=-1.01 tagged_above=-1000 required=6.31 tests=[ALL_TRUSTED=-1, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) dkim: candidate originators: From:<michael@nausch.org>
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) dkim: not signing, empty signing domain, From: <michael@nausch.org>
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) DSN: sender is credible (orig), SA: -1.010, <michael@nausch.org>
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) status counters: InMsgsStatus{Accepted,AcceptedInternal,AcceptedOriginating}
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) Passed CLEAN {AcceptedInternal}, AM.PDP-SOCK/MYNETS LOCAL [10.0.0.87] <michael@nausch.org> -> <django@nausch.org>, Queue-ID: 20560C00088, Message-ID: <20141120213743.20560C00088@mx01.nausch.org>, mail_id: tlAv90BU3Ydw, Hits: -1.01, size: 1006367, 772 ms
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) TIMING-SA total 477 ms - parse: 19 (4.1%), extract_message_metadata: 24 (5.1%), get_uri_detail_list: 0.44 (0.1%), tests_pri_-1000: 6 (1.2%), tests_pri_-950: 1.60 (0.3%), tests_pri_-900: 1.17 (0.2%), tests_pri_-400: 0.95 (0.2%), tests_pri_0: 353 (74.0%), check_dkim_adsp: 16 (3.4%), check_spf: 0.37 (0.1%), check_razor2: 260 (54.5%), check_pyzor: 0.24 (0.1%), tests_pri_500: 3 (0.7%), learn: 53 (11.0%), get_report: 0.92 (0.2%)
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) mail checking ended: version_server=2\nlog_id=03310-01\nsetreply=250 2.5.0 Ok,%20id=03310-01,%20continue%20delivery\ninsheader=0 X-Spam-Status No,%20score=-1.01%20tagged_above=-1000%20required=6.31%0a%09tests=[ALL_TRUSTED=-1,%20T_RP_MATCHES_RCVD=-0.01]%20autolearn=ham\ninsheader=0 X-Spam-Level \ninsheader=0 X-Spam-Score -1.01\ninsheader=0 X-Spam-Flag NO\nreturn_value=continue\nexit_code=0
 +Nov 20 22:37:43 vml000067 amavis[3310]: (03310-01) size: 1006367, TIMING [total 778 ms] - got data: 0.0 (0%)0, check_init: 3.4 (0%)0, digest_hdr: 1.4 (0%)1, digest_body_dkim: 9 (1%)2, collect_info: 1.7 (0%)2, mkdir parts: 1.4 (0%)2, mime_decode: 47 (6%)8, get-file-type2: 17 (2%)10, ren4-unl0-files4: 46 (6%)16, decompose_part: 0.4 (0%)16, get-file-type4: 28 (4%)20, parts_decode: 0.3 (0%)20, check_header: 0.4 (0%)20, AV-scan-1: 124 (16%)36, spam-wb-list: 0.5 (0%)36, SA parse: 22 (3%)39, SA check: 451 (58%)97, decide_mail_destiny: 8 (1%)98, notif-quar: 0.5 (0%)98, prepare-dsn: 4.0 (1%)98, report: 1.4 (0%)99, main_log_entry: 5 (1%)99, update_snmp: 1.5 (0%)99, rundown: 4.0 (1%)100
 +Nov 20 22:37:44 vml000067 amavis[3310]: (03310-01) extra modules loaded: unicore/lib/Gc/Nd.pl
 +Nov 20 22:37:44 vml000067 amavis[3310]: (03310-01) load: 100 %, total idle 0.000 s, busy 0.804 s
 +</code>
 +
 +In der Inbox unseres **MUA**((**M**ail **U**ser **A**gent))s POP3/IMAP-Servers finden wir auch die zugestellte Nachricht.
 +
 +<code>Return-Path: <michael@nausch.org>
 +Delivered-To: django@nausch.org
 +Received: from mx01.nausch.org ([10.0.0.87])
 + by imap.nausch.org (Dovecot) with LMTP id KmGbByhfblQOXQAArK2B9Q
 + for <django@nausch.org>; Thu, 20 Nov 2014 22:37:44 +0100
 +X-Spam-Flag: NO
 +X-Spam-Score: -1.01
 +X-Spam-Level: 
 +X-Spam-Status: No, score=-1.01 tagged_above=-1000 required=6.31
 + tests=[ALL_TRUSTED=-1, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
 +Received: from vml000087.dmz.nausch.org (vml000087.dmz.nausch.org [10.0.0.87])
 + by mx01.nausch.org (Postfix) with ESMTP id 20560C00088
 + for <django@nausch.org>; Thu, 20 Nov 2014 22:37:43 +0100 (CET)
 +Date: Thu, 20 Nov 2014 22:37:43 +0100
 +To: django@nausch.org
 +From: michael@nausch.org
 +Subject: Ebersberger Liedersammlung: In dulci jubilo
 +X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
 +MIME-Version: 1.0
 +Content-Type: multipart/mixed; boundary="----=_MIME_BOUNDARY_000_12110"
 +Message-Id: <20141120213743.20560C00088@mx01.nausch.org>
 +
 +------=_MIME_BOUNDARY_000_12110
 +Content-Type: text/plain
 +
 +This is a test mailing
 +------=_MIME_BOUNDARY_000_12110
 +Content-Type: application/octet-stream
 +Content-Disposition: attachment
 +Content-Transfer-Encoding: BASE64
 +
 +UEsDBBQDAAAIAFNyDUN6/Zsb2QYAAKUSAAASAAAAaW5fZHVsY2lfanViaWxvLmx5rVdZDtMwEP0m
 +pxiCECBB2coq9lXsiFVClZCTTBKDYwfbYQdxB36R+OEMfPHXm3ASnh1CCoWwiEpNE2f8Znsz426m
 +M5IdO7pqPOtMCe/pSWcLJrbOs1KeHhtNV2ReC1Z0VXQur5PNdMloLx76w9T0b07o+GZmbEVbr5+/
 +Tm2XKZnveMjPaNfTPXsPzk8fnB/aRkmyeAxkCcx0z2z3/tmuNFnULAq29CIh8tIrpqOUXtBUdCqX
 +9KDLpDIprX+i7bR8l7GFaitLT4DpPaEn0hb0nLW3kq2nCk76535G0OG67JsaSjds2DDAPWHp2fK4
 +...
 +
 +...
 +G9kGAAClEgAAEgAAAAAAAAAAACCAtIEAAAAAaW5fZHVsY2lfanViaWxvLmx5UEsBAj8DFAMAAAgA
 +U3INQ1XNopkpAgAA7QcAABQAAAAAAAAAAAAggLSBCQcAAGluX2R1bGNpX2p1Ymlsby5taWRpUEsB
 +Aj8DFAMAAAgAU3INQzZ3dvYIwgkAgAAKABMAAAAAAAAAAAAggLSBZAkAAGluX2R1bGNpX2p1Ymls
 +by5tcDNQSwECPwMUAwAACABTcg1DPURRdX5pAQAQDgIAEwAAAAAAAAAAACCAtIGdywkAaW5fZHVs
 +Y2lfanViaWxvLnBkZlBLBQYAAAAABAAEAAQBAABMNQsAAAA=
 +
 +------=_MIME_BOUNDARY_000_12110--
 +
 +</code>
 +
 +
 +===== Virus-Mail =====
 +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.
 +Als erstes laden wir uns eine Testsignaturdatei auf unseren Rechner.
 +   # 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
 +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...
 +=== Connected to 10.0.0.87.
 +<-  220 mx01.nausch.org ESMTP Postfix
 + -> EHLO vml000087.dmz.nausch.org
 +<-  250-mx01.nausch.org
 +<-  250-PIPELINING
 +<-  250-SIZE 52428800
 +<-  250-ETRN
 +<-  250-STARTTLS
 +<-  250-ENHANCEDSTATUSCODES
 +<-  250-8BITMIME
 +<-  250 DSN
 + -> MAIL FROM:<michael@nausch.org>
 +<-  250 2.1.0 Ok
 + -> RCPT TO:<django@nausch.org>
 +<-  250 2.1.5 Ok
 + -> DATA
 +<-  354 End data with <CR><LF>.<CR><LF>
 + -> 28 lines sent
 +<** 554 5.7.0 Reject, id=03311-01 - INFECTED: Eicar-Test-Signature. Contact your postmaster/admin for technical assistance. He can achieve our postmaster via email: postmaster@nausch.org or via fax: +49 8121 883179. In any case, please provide the following information in your problem report: This error message, time (Nov 20 22:43:10), client (10.0.0.87) and server (mx01.nausch.org).
 + -> QUIT
 +<-  221 2.0.0 Bye
 +=== 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]: 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/qmgr[8701]: 44A0AC00089: from=<postmaster@nausch.org>, size=1211, nrcpt=1 (queue active)
 +Nov 20 22:43:10 vml000087 postfix/cleanup[12125]: CCB54C00088: milter-reject: END-OF-MESSAGE from vml000087.dmz.nausch.org[10.0.0.87]: 5.7.0 Reject, id=03311-01 - INFECTED: Eicar-Test-Signature; from=<michael@nausch.org> to=<django@nausch.org> proto=ESMTP helo=<vml000087.dmz.nausch.org>
 +Nov 20 22:43:10 vml000087 postfix/smtpd[12119]: disconnect from vml000087.dmz.nausch.org[10.0.0.87]
 +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
 +</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]: 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: queue_id=CCB54C00088
 +Nov 20 22:43:09 vml000067 amavis[3311]: policy protocol: sender=<michael@nausch.org>
 +Nov 20 22:43:09 vml000067 amavis[3311]: policy protocol: recipient=<django@nausch.org>
 +Nov 20 22:43:09 vml000067 amavis[3311]: policy protocol: tempdir=/var/spool/amavisd/afXXXXqKQgyd
 +Nov 20 22:43:09 vml000067 amavis[3311]: policy protocol: tempdir_removed_by=client
 +Nov 20 22:43:09 vml000067 amavis[3311]: policy protocol: mail_file=/var/spool/amavisd/afXXXXqKQgyd/email.txt
 +Nov 20 22:43:09 vml000067 amavis[3311]: policy protocol: delivery_care_of=client
 +Nov 20 22:43:09 vml000067 amavis[3311]: policy protocol: client_address=10.0.0.87
 +Nov 20 22:43:09 vml000067 amavis[3311]: policy protocol: client_name=vml000087.dmz.nausch.org
 +Nov 20 22:43:09 vml000067 amavis[3311]: policy protocol: helo_name=vml000087.dmz.nausch.org
 +Nov 20 22:43:09 vml000067 amavis[3311]: policy protocol: policy_bank=mx01.nausch.org
 +Nov 20 22:43:09 vml000067 amavis[3311]: (03311-01) Request: AM.PDP  /var/spool/amavisd/afXXXXqKQgyd: <michael@nausch.org> -> <django@nausch.org>
 +Nov 20 22:43:09 vml000067 amavis[3311]: (03311-01) loaded policy bank "MYNETS" over "AM.PDP-SOCK"
 +Nov 20 22:43:09 vml000067 amavis[3311]: (03311-01) body hash: 45e745bc84324a9251567c19e367fdfb
 +Nov 20 22:43:09 vml000067 amavis[3311]: (03311-01) ip_trace: 10.0.0.87
 +Nov 20 22:43:09 vml000067 amavis[3311]: (03311-01) Checking: AnQpYwBJBkmi AM.PDP-SOCK/MYNETS [10.0.0.87] <michael@nausch.org> -> <django@nausch.org>
 +Nov 20 22:43:09 vml000067 amavis[3311]: (03311-01) 2822.From: <michael@nausch.org>
 +Nov 20 22:43:09 vml000067 amavis[3311]: (03311-01) p003 1 Content-Type: multipart/mixed
 +Nov 20 22:43:09 vml000067 amavis[3311]: (03311-01) p001 1/1 Content-Type: text/plain, size: 22 B, name:
 +Nov 20 22:43:09 vml000067 amavis[3311]: (03311-01) p002 1/2 Content-Type: application/octet-stream, size: 308 B, name:
 +Nov 20 22:43:09 vml000067 amavis[3311]: (03311-01) inspect_dsn: not a bounce
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) Checking for banned types and filenames
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) skipping banned check: all recipients bypass banned checks
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) presenting full original message to scanners as /var/spool/amavisd/afXXXXqKQgyd/parts/p006
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) run_av Using (ClamAV-clamd): (code) CONTSCAN /var/spool/amavisd/afXXXXqKQgyd/parts\n
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) ClamAV-clamd: Connecting to socket  /var/run/clamd.amavisd/clamd.sock
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) new socket by IO::Socket::UNIX to /var/run/clamd.amavisd/clamd.sock, timeout 10
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) ClamAV-clamd: Sending CONTSCAN /var/spool/amavisd/afXXXXqKQgyd/parts\n to socket /var/run/clamd.amavisd/clamd.sock
 +Nov 20 22:43:10 vml000067 clamd[3288]: /var/spool/amavisd/afXXXXqKQgyd/parts/p005: Eicar-Test-Signature FOUND
 +Nov 20 22:43:10 vml000067 clamd[3288]: /var/spool/amavisd/afXXXXqKQgyd/parts/p006: Eicar-Test-Signature FOUND
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) rw_loop read: got eof
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) run_av (ClamAV-clamd): /var/spool/amavisd/afXXXXqKQgyd/parts INFECTED: Eicar-Test-Signature, Eicar-Test-Signature
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) virus_scan: (Eicar-Test-Signature), detected by 1 scanners: ClamAV-clamd
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) Virus Eicar-Test-Signature matches (constant:1), sender addr ignored
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) blocking contents category is (9) for django@nausch.org, final_destiny -3
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) do_notify_and_quar: ccat=Virus (9,0) ("9":Virus, "1,1":CleanTag, "1":Clean, "0":CatchAll) ccat_block=(9), qar_mth=
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) dkim: candidate originators: From:<postmaster@nausch.org>
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) dkim: not signing, empty signing domain, From: <postmaster@nausch.org>
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) smtp session: setting up a new session
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) new socket using IO::Socket::IP to [10.0.0.87]:10025, timeout 35
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) smtp greeting: 220 mx01.nausch.org ESMTP Postfix, dt: 113.3 ms
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) smtp cmd> EHLO localhost
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) smtp resp to EHLO: 250 mx01.nausch.org\nPIPELINING\nSIZE 52428800\nETRN\nSTARTTLS\nAUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 NTLM\nAUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5 NTLM\nXFORWARD NAME ADDR PROTO HELO SOURCE PORT IDENT\nENHANCEDSTATUSCODES\n8BITMIME\nDSN
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) AUTH not needed, user='', MTA offers 'PLAIN LOGIN DIGEST-MD5 CRAM-MD5 NTLM'
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) smtp cmd> MAIL FROM:<postmaster@nausch.org> ENVID=AM.2T4ZIGYMVawD.20141120T214310Z@viruswall.dmz.nausch.org
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) smtp cmd> RCPT TO:<django@nausch.org>
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) smtp cmd> DATA
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) smtp resp to MAIL (pip): 250 2.1.0 Ok
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) smtp resp to RCPT (pip) (<django@nausch.org>): 250 2.1.5 Ok
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) smtp resp to DATA: 354 End data with <CR><LF>.<CR><LF>
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) smtp resp to data-dot (<django@nausch.org>): 250 2.0.0 Ok: queued as 44A0AC00089, dt: 28.4 ms
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) Amavis::Out::SMTP::Session close, keeping connection
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) 2T4ZIGYMVawD(AnQpYwBJBkmi) SEND from <postmaster@nausch.org> -> <django@nausch.org>, ENVID=AM.2T4ZIGYMVawD.20141120T214310Z@viruswall.dmz.nausch.org 250 2.0.0 from MTA(smtp:[10.0.0.87]:10025): 250 2.0.0 Ok: queued as 44A0AC00089
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) delivery method is 1, recips: django@nausch.org
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) DSN: sender is credible (orig), SA: 0.000, <michael@nausch.org>
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) status counters: InMsgsStatus{Rejected,RejectedInternal,RejectedOriginating}
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) Blocked INFECTED (Eicar-Test-Signature) {RejectedInternal}, AM.PDP-SOCK/MYNETS LOCAL [10.0.0.87] <michael@nausch.org> -> <django@nausch.org>, Queue-ID: CCB54C00088, Message-ID: <20141120214309.CCB54C00088@mx01.nausch.org>, mail_id: AnQpYwBJBkmi, Hits: -, size: 1222, 470 ms
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) mail checking ended: version_server=2\nlog_id=03311-01\nsetreply=554 5.7.0 Reject,%20id=03311-01%20-%20INFECTED:%20Eicar-Test-Signature\nreturn_value=reject\nexit_code=69
 +Nov 20 22:43:10 vml000067 amavis[3311]: (03311-01) size: 1222, TIMING [total 541 ms] - got data: 0.0 (0%)0, check_init: 7 (1%)1, digest_hdr: 1.9 (0%)2, digest_body_dkim: 0.4 (0%)2, collect_info: 2.8 (1%)2, mkdir parts: 8 (1%)4, mime_decode: 24 (4%)8, get-file-type2: 35 (6%)14, ren1-unl0-files1: 60 (11%)25, decompose_part: 0.9 (0%)26, get-file-type1: 22 (4%)30, ren1-unl0-files1: 38 (7%)37, decompose_part: 0.3 (0%)37, get-file-type1: 13 (2%)39, parts_decode: 0.2 (0%)39, check_header: 0.5 (0%)39, AV-scan-1: 9 (2%)41, read_snmp_variables: 0.7 (0%)41, decide_mail_destiny: 1.7 (0%)41, notif-quar: 0.5 (0%)41, fwd-connect: 132 (24%)66, fwd-mail-pip: 26 (5%)71, fwd-rcpt-pip: 0.5 (0%)71, fwd-data-chkpnt: 0.1 (0%)71, write-header: 0.4 (0%)71, fwd-data-contents: 1.1 (0%)71, fwd-end-chkpnt: 30 (5%)77, prepare-dsn: 1.3 (0%)77, report: 6 (1%)78, main_log_entry: 52 (10%)87, update_snmp: 51 (9%)97, rundown: 17 (3%)100
 +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
 +</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.
 +
 +<code>Return-Path: <postmaster@nausch.org>
 +Delivered-To: django@nausch.org
 +Received: from mx01.nausch.org ([10.0.0.87])
 + by imap.nausch.org (Dovecot) with LMTP id YmGbByhfblQOXQAArK2B9Q
 + for <django@nausch.org>; Thu, 20 Nov 2014 22:43:10 +0100
 +Received: from localhost (vml000067.dmz.nausch.org [10.0.0.67])
 + by mx01.nausch.org (Postfix) with ESMTP id 44A0AC00089
 + for <django@nausch.org>; Thu, 20 Nov 2014 22:43:10 +0100 (CET)
 +MIME-Version: 1.0
 +From: Postmaster <postmaster@nausch.org>
 +Date: Thu, 20 Nov 2014 22:43:09 +0100 (CET)
 +Subject: VIRUS (Eicar-Test-Signature) in mail TO YOU from <michael@nausch.org>
 +To: django@nausch.org
 +Message-ID: <VRAnQpYwBJBkmi@viruswall.dmz.nausch.org>
 +Content-Type: text/plain; charset="UTF-8"
 +Content-Disposition: inline
 +Content-Transfer-Encoding: 7bit
 +
 +VIRUS ALERT
 +
 +Our content checker found
 +    virus: Eicar-Test-Signature
 +
 +in an email to you from probably faked sender:
 +  
 +claiming to be: <michael@nausch.org>
 +
 +Content type: Virus
 +Our internal reference code for your message is 03311-01/AnQpYwBJBkmi
 +
 +First upstream SMTP client IP address: [10.0.0.87] vml000087.dmz.nausch.org
 +Received from: 10.0.0.87
 +
 +Return-Path: <michael@nausch.org>
 +From: michael@nausch.org
 +Message-ID: <20141120214309.CCB54C00088@mx01.nausch.org>
 +X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
 +Subject: Eicar Virentestpattern
 +Not quarantined.
 +
 +Please contact your system administrator for details.
 +
 +</code>
  
  
-FIXME 
 ===== 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.1416516883.txt.gz
  • Zuletzt geändert: 20.11.2014 20:54.
  • von django