Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung |
tachtler:amavis_centos_7_-_clamav_installieren [2015/10/09 17:24] – [/etc/systemd/system/clamd@.service] klaus | tachtler:amavis_centos_7_-_clamav_installieren [2019/05/27 12:02] (aktuell) – [Ignore/Whitelist: /var/lib/clamav/whitelist.ign2] klaus |
---|
[[http://www.ijs.si/software/amavisd/|AMaViS]] (//A MAil Virus Scanner//) ist ein Prüfprogramm, welches e-Mails auf //SPAM// und //Viren// untersucht und sich dabei externer Programme wie dem sehr bekannten [[http://spamassassin.apache.org/|SpamAssassin]] und z.B. [[http://www.clamav.net/|ClamAV]] bedient und diese in sich selbst einbindet. | [[http://www.ijs.si/software/amavisd/|AMaViS]] (//A MAil Virus Scanner//) ist ein Prüfprogramm, welches e-Mails auf //SPAM// und //Viren// untersucht und sich dabei externer Programme wie dem sehr bekannten [[http://spamassassin.apache.org/|SpamAssassin]] und z.B. [[http://www.clamav.net/|ClamAV]] bedient und diese in sich selbst einbindet. |
| |
[[http://www.clamav.net/|ClamAV]] ist ein Antivirus Toolkit für Unix das unter der GPL Lizenz steht. Es wurde speziell für das scannen von e-Mails auf Mailgateways designt. [[http://www.clamav.net/|ClamAV]] kann ebenfalls zum Prüfen von HTTP-Datenströmen, sowie auch zum Scannen von Dateisystemen eingesetzt werden und stellt dazu eine Reihe von Hilfsmittel zur Verfügung: einen flexiblen und skalierbaren Multi-Threaded Daemon, einen Kommandozeilen Scanner und ein komplexes Programm zur automatischen Aktualisierung über das Internet. Das Herzstück des Paketes ist ein Antivirus-Einheit in Form einer gemeinsam genutzten Bibliothek. | [[http://www.clamav.net/|{{:tachtler:index:clamav_new-48x48.png }}]] [[http://www.clamav.net/|ClamAV]] ist ein Antivirus Toolkit für Unix das unter der GPL Lizenz steht. Es wurde speziell für das scannen von e-Mails auf Mailgateways designt. [[http://www.clamav.net/|ClamAV]] kann ebenfalls zum Prüfen von HTTP-Datenströmen, sowie auch zum Scannen von Dateisystemen eingesetzt werden und stellt dazu eine Reihe von Hilfsmittel zur Verfügung: einen flexiblen und skalierbaren Multi-Threaded Daemon, einen Kommandozeilen Scanner und ein komplexes Programm zur automatischen Aktualisierung über das Internet. Das Herzstück des Paketes ist ein Antivirus-Einheit in Form einer gemeinsam genutzten Bibliothek. |
| |
^ Beschreibung ^ Externer Link ^ | ^ Beschreibung ^ Externer Link ^ |
| |
Da die Konfigurationsdatei ''/etc/clamd.d/amavisd.conf'' aufgrund von Kommentar- und Leerzeichen sehr schnell unübersichtlich ist, kann mit nachfolgendem Befehl, eine Ausgabe **ohne** Kommentar- und Leerzeilen erzeugt werden, welche dann nach dem kopieren wie folgt aussehen sollte: | Da die Konfigurationsdatei ''/etc/clamd.d/amavisd.conf'' aufgrund von Kommentar- und Leerzeichen sehr schnell unübersichtlich ist, kann mit nachfolgendem Befehl, eine Ausgabe **ohne** Kommentar- und Leerzeilen erzeugt werden, welche dann nach dem kopieren wie folgt aussehen sollte: |
<code ini> | <code bash> |
# egrep -v '(^#|^$)' /etc/clamd.d/amavisd.conf | # egrep -v '(^#|^$)' /etc/clamd.d/amavisd.conf |
</code> | </code> |
Die Konfigurationsdatei ''/etc/clamd.d/amavisd.conf'' **__ohne__** Kommentar- und Leerzeichen: | Die Konfigurationsdatei ''/etc/clamd.d/amavisd.conf'' **__ohne__** Kommentar- und Leerzeichen: |
<code ini> | <code bash> |
# egrep -v '(^#|^$)' /etc/clamd.d/amavisd.conf | # egrep -v '(^#|^$)' /etc/clamd.d/amavisd.conf |
Example | Example |
**__Nachfolgende Änderungen sollten vorgenommen werden:__** | **__Nachfolgende Änderungen sollten vorgenommen werden:__** |
| |
* <code ini># Example</code> | * <code bash># Example</code> |
| |
Auskommentieren des Parameters ''Example'', um die Konfigurationsdatei zu aktivieren. | Auskommentieren des Parameters ''Example'', um die Konfigurationsdatei zu aktivieren. |
| |
* <code ini>LogFacility LOG_DAEMON</code> | * <code bash>LogFacility LOG_DAEMON</code> |
| |
Die Schreibung des ''syslog'' soll mit der "Facility" - ''LOG-DAEMON'' durchgeführt werden, effektiv mit der "Facility" - ''clamd''. | Die Schreibung des ''syslog'' soll mit der "Facility" - ''LOG-DAEMON'' durchgeführt werden, effektiv mit der "Facility" - ''clamd''. |
| |
* <code ini>PidFile /var/run/clamd.amavisd/clamd.pid</code> | * <code bash>PidFile /var/run/clamd.amavisd/clamd.pid</code> |
| |
Setzen des Namens und des Speicherorts der ''PID''-Datei (Process ID), im Laufzeitverzeichnis des **Partner**-Dienstes. | Setzen des Namens und des Speicherorts der ''PID''-Datei (Process ID), im Laufzeitverzeichnis des **Partner**-Dienstes. |
| |
* <code ini>LocalSocket /var/run/clamd.amavisd/clamd.sock</code> | * <code bash>LocalSocket /var/run/clamd.amavisd/clamd.sock</code> |
| |
Setzen des Namens und des Speicherorts der lokalen ''SOCKET''-Datei (Kommunikationsdatei), im Laufzeitverzeichnis des **Partner**-Dienstes. | Setzen des Namens und des Speicherorts der lokalen ''SOCKET''-Datei (Kommunikationsdatei), im Laufzeitverzeichnis des **Partner**-Dienstes. |
| |
* <code ini>FixStaleSocket yes</code> | * <code bash>FixStaleSocket yes</code> |
| |
Setzen des Parameters, damit die lokale ''SOCKET''-Datei (Kommunikationsdatei), im Falle eines unvorhergesehen oder unsauberen Beenden des [[http://www.clamav.net/|ClamAV]]-Daemons, automatisch entfernt wird. | Setzen des Parameters, damit die lokale ''SOCKET''-Datei (Kommunikationsdatei), im Falle eines unvorhergesehen oder unsauberen Beenden des [[http://www.clamav.net/|ClamAV]]-Daemons, automatisch entfernt wird. |
| |
* <code ini>User amavis</code> | * <code bash>User amavis</code> |
| |
Setzen des Benutzers, unter dem der **Partner**-Dienst ausgeführt wird und über den die Kommunikation statt finden kann. | Setzen des Benutzers, unter dem der **Partner**-Dienst ausgeführt wird und über den die Kommunikation statt finden kann. |
| |
Die Konfigurationsdatei ''/etc/clamd.d/amavisd.conf'' **__ohne__** Kommentar- und Leerzeichen **inklusive der Änderungen**: | Die Konfigurationsdatei ''/etc/clamd.d/amavisd.conf'' **__ohne__** Kommentar- und Leerzeichen **inklusive der Änderungen**: |
<code ini> | <code bash> |
# egrep -v '(^#|^$)' /etc/clamd.d/amavisd.conf | # egrep -v '(^#|^$)' /etc/clamd.d/amavisd.conf |
LogSyslog yes | LogSyslog yes |
| |
Die Konfigurationsdatei ''/etc/sysconfig/clamd.amavisd'' nach dem **kopieren** mit Standardangaben: | Die Konfigurationsdatei ''/etc/sysconfig/clamd.amavisd'' nach dem **kopieren** mit Standardangaben: |
<code ini> | <code bash> |
#CLAMD_CONFIGFILE=/etc/clamd.d/<SERVICE>.conf | #CLAMD_CONFIGFILE=/etc/clamd.d/<SERVICE>.conf |
#CLAMD_SOCKET=/var/run/clamd.<SERVICE>/clamd.sock | #CLAMD_SOCKET=/var/run/clamd.<SERVICE>/clamd.sock |
**__Nachfolgende Änderungen sollten vorgenommen werden:__** | **__Nachfolgende Änderungen sollten vorgenommen werden:__** |
| |
* <code ini>CLAMD_CONFIGFILE=/etc/clamd.d/amavisd.conf</code> | * <code bash>CLAMD_CONFIGFILE=/etc/clamd.d/amavisd.conf</code> |
| |
Setzen des Namens und des Speicherorts der Konfigurationsdatei des **Partner**-Dienstes. | Setzen des Namens und des Speicherorts der Konfigurationsdatei des **Partner**-Dienstes. |
| |
* <code ini>CLAMD_SOCKET=/var/run/clamd.amavisd/clamd.sock</code> | * <code bash>CLAMD_SOCKET=/var/run/clamd.amavisd/clamd.sock</code> |
| |
Setzen des Namens und des Speicherorts der lokalen ''SOCKET''-Datei (Kommunikationsdatei), im Laufzeitverzeichnis des **Partner**-Dienstes. | Setzen des Namens und des Speicherorts der lokalen ''SOCKET''-Datei (Kommunikationsdatei), im Laufzeitverzeichnis des **Partner**-Dienstes. |
| |
* <code ini>CLAMD_OPTIONS=</code> | * <code bash>CLAMD_OPTIONS=</code> |
| |
Optionen für die Ausführung (:!: **HINWEIS** - **Es ist nicht notwendig, hier Optionen zu setzen!**). | Optionen für die Ausführung (:!: **HINWEIS** - **Es ist nicht notwendig, hier Optionen zu setzen!**). |
| |
Die Konfigurationsdatei ''/etc/sysconfig/clamd.amavisd'' **inklusive der Änderungen**: | Die Konfigurationsdatei ''/etc/sysconfig/clamd.amavisd'' **inklusive der Änderungen**: |
<code ini> | <code bash> |
CLAMD_CONFIGFILE=/etc/clamd.d/amavisd.conf | CLAMD_CONFIGFILE=/etc/clamd.d/amavisd.conf |
CLAMD_SOCKET=/var/run/clamd.amavisd/clamd.sock | CLAMD_SOCKET=/var/run/clamd.amavisd/clamd.sock |
CLAMD_OPTIONS= | CLAMD_OPTIONS= |
</code> | |
| |
==== /etc/tmpfiles.d/clamd.amavisd.conf ==== | |
| |
Im Verzeichnis ''/etc/tmpfiles.d'' / [[http://www.freedesktop.org/software/systemd/man/tmpfiles.d.html|systemd-tmpfiles.d]] können temporäre Dateien und Verzeichnisse unter anderem im Verzeichnis ''/var/run/'' angelegt werden. | |
| |
Nachfolgende Konfiguration erzeugt den temporären UNIX-Dateisocket im Verzeichnis ''/var/run/clamd.amavisd/clamd.sock'' mit den zugehörigen Berechtigungen. | |
| |
Dazu wird im nachfolgendem Verzeichnis eine Konfigurationsdatei mit ebenfalls nachfolgendem Namen | |
* ''/etc/tmpfiles.d/clamd.amavisd.conf'' | |
erstellt, welche nachfolgenden Inhalt aufweist: | |
<code ini> | |
d /var/run/clamd.amavisd 0750 amavis amavis - | |
</code> | </code> |
| |
| |
Standard UNIX-Processstart. Siehe auch den externen Link [[http://www.freedesktop.org/software/systemd/man/systemd.service.html|systemd.service — Service unit configuration]] | Standard UNIX-Processstart. Siehe auch den externen Link [[http://www.freedesktop.org/software/systemd/man/systemd.service.html|systemd.service — Service unit configuration]] |
| |
* <code ini>ExecStart = /usr/sbin/clamd -c /etc/clamd.d/%id.conf</code> | |
| |
Ergänzung im Bereich ''/etc/clamd.d/%i.conf'' nach ''/etc/clamd.d/%i''**''d''**''.conf'', da sonst der Start durch ''systemd'' nicht durchgeführt werden kann, da alle **Konfigurationen** auf ''amavis''**''d''** lauten! | |
Zusätzlich wurde ''--nofork=yes'' entfernt, da zum einen dann eine doppelte LOG-Schreibung erfolgt. | |
| |
* <code ini>[Install] | * <code ini>[Install] |
# Tachtler | # Tachtler |
# default: ExecStart = /usr/sbin/clamd -c /etc/clamd.d/%i.conf --nofork=yes | # default: ExecStart = /usr/sbin/clamd -c /etc/clamd.d/%i.conf --nofork=yes |
ExecStart = /usr/sbin/clamd -c /etc/clamd.d/%id.conf | ExecStart = /usr/sbin/clamd -c /etc/clamd.d/%i.conf |
Restart = on-failure | Restart = on-failure |
PrivateTmp = true | PrivateTmp = true |
</code> | </code> |
| |
==== ClamAV Dienst/Deamon-Start einrichten ==== | ==== ClamAV Dienst/Daemon-Start einrichten ==== |
| |
Um den Virenscanner [[http://www.clamav.net/|ClamAV]] mit dem [[http://www.ijs.si/software/amavisd/|AMaViS]], welcher ebenfalls als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server mit gestartet werden, was mit nachfolgendem Befehl realisiert werden kann: | Um den Virenscanner [[http://www.clamav.net/|ClamAV]] mit dem [[http://www.ijs.si/software/amavisd/|AMaViS]], welcher ebenfalls als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server mit gestartet werden, was mit nachfolgendem Befehl realisiert werden kann: |
</code> | </code> |
| |
==== /etc/rsyslog.comf ==== | ==== /etc/rsyslog.conf ==== |
| |
Durch nachfolgende Anpassung, können die LOG-Meldungen des [[http://www.clamav.net/|ClamAV]], bzw. des ''clamd''-Daemons/Dienstes an den Syslog-Server ''rsyslog'' mit nachfolgender Ergänzung der Konfigurationsdatei | Durch nachfolgende Anpassung, können die LOG-Meldungen des [[http://www.clamav.net/|ClamAV]], bzw. des ''clamd''-Daemons/Dienstes an den Syslog-Server ''rsyslog'' mit nachfolgender Ergänzung der Konfigurationsdatei |
(**Nur relevanter Ausschnitt**): | (**Nur relevanter Ausschnitt**): |
| |
<code ini> | <code bash> |
... | ... |
#### RULES #### | #### RULES #### |
Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: HTML support enabled. | Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: HTML support enabled. |
Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: Self checking every 600 | Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: Self checking every 600 |
| </code> |
| |
| ==== Ignore/Whitelist erstellen: /var/lib/clamav/whitelist.ign2 ==== |
| |
| Um z.B. bei dem Verdacht auf ein **"false-positive"** eine Erkennung eines bestimmten Treffers aus dem **"pattern"** von [[http://www.clamav.net/|ClamAV]] **ignorieren bzw. "whitelisten"** zu können, ist nachfolgendes Vorgehen notwendig. |
| |
| Mit nachfolgendem Befehl ist im Verzeichnis |
| * **''/var/lib/clamav''** |
| eine Datei mit dem Namen |
| * **''whitelist.ign2''** |
| zu erzeugen. |
| <code> |
| # touch /var/lib/clamav/whitelist.ign2 |
| </code> |
| |
| Der Inhalt ist dann mit dem **Namen** des zu **ignorierenden bzw. "whitelistenden"** Treffers aus dem **"pattern"** von [[http://www.clamav.net/|ClamAV]] als einfacher Eintrag zu erstellen, wie nachfolgendes Beispiel zeigt: |
| <code> |
| Win.Exploit.CVE_2019_0903-6966169-0 |
| </code> |
| |
| Anschliessend ist, wenn der [[http://www.clamav.net/|ClamAV]] bereits gestartet wurde, ein **Neustart** mit nachfolgendem Befehl durchzuführen: |
| <code> |
| # systemctl restart clamd@amavisd.service |
</code> | </code> |
| |
(**Komplette Konfigurationsdatei**) | (**Komplette Konfigurationsdatei**) |
| |
<code ini> | <code bash> |
## When changing the periodicity of freshclam runs in the crontab, | ## When changing the periodicity of freshclam runs in the crontab, |
## this value must be adjusted also. Its value is the timespan between | ## this value must be adjusted also. Its value is the timespan between |
</code> | </code> |
Die Konfigurationsdatei ''/etc/freshclam.conf'' **__ohne__** Kommentar- und Leerzeichen: | Die Konfigurationsdatei ''/etc/freshclam.conf'' **__ohne__** Kommentar- und Leerzeichen: |
<code ini> | <code bash> |
# egrep -v '(^#|^$)' /etc/freshclam.conf | # egrep -v '(^#|^$)' /etc/freshclam.conf |
Example | Example |
(**Nur relevanter Ausschnitt**) | (**Nur relevanter Ausschnitt**) |
| |
<code ini> | <code bash> |
## | ## |
## Example config file for freshclam | ## Example config file for freshclam |
**__Nachfolgende Änderungen wurden beispielhaft vorgenommen:__** | **__Nachfolgende Änderungen wurden beispielhaft vorgenommen:__** |
| |
Verringerung der Update-Zeit von alle 3 Stunden auf alle 30 Minuten (Maximalwert): | * <code bash>Checks 48</code> |
* **Checks** 48 | |
| |
Benachrichtigung des [[http://www.clamav.net/|ClamAV]] ermöglichen: | Verringerung der Update-Zeit von alle 3 Stunden auf alle 30 Minuten (Maximalwert). |
* **NotifyClamd** /etc/clamd.d/amavisd.conf | |
| * <code bash>NotifyClamd /etc/clamd.d/amavisd.conf</code> |
| |
| Benachrichtigung des [[http://www.clamav.net/|ClamAV]] ermöglichen. |
| |
Die Konfigurationsdatei ''/etc/freshclam.conf'' **__ohne__** Kommentar- und Leerzeichen **inklusive der Änderungen**, könnte dann wie folgt aussehen: | Die Konfigurationsdatei ''/etc/freshclam.conf'' **__ohne__** Kommentar- und Leerzeichen **inklusive der Änderungen**, könnte dann wie folgt aussehen: |
<code ini> | <code bash> |
# egrep -v '(^#|^$)' /etc/freshclam.conf | # egrep -v '(^#|^$)' /etc/freshclam.conf |
LogSyslog yes | LogSyslog yes |