Inhaltsverzeichnis
AMaViS CentOS 7 - ClamAV installieren
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 SpamAssassin und z.B. ClamAV bedient und diese in sich selbst einbindet.
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. 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 |
---|---|
Homepage | http://www.clamav.net |
Ab hier werden zur Ausführung nachfolgender Befehle root
-Rechte benötigt. Um der Benutzer root
zu werden, melden Sie sich bitte als root
-Benutzer am System an, oder wechseln mit nachfolgendem Befehl zum Benutzer root
:
$ su - Password:
Abhängigkeiten
Zuerst muss das Drittanbieter-Repository von EPEL, wie unter nachfolgendem internen Link dargestellt, eingebunden werden:
Installation
Nachfolgende rpm
-Pakete sind zur Installation erforderlich:
Die Installation kann durch ausführen des nachfolgenden Befehls durchgeführt werden:
# yum install clamav clamav-data clamav-filesystem clamav-lib clamav-server clamav-server-systemd clamav-update Loaded plugins: changelog, priorities base | 3.6 kB 00:00 epel | 4.3 kB 00:00 extras | 3.4 kB 00:00 updates | 3.4 kB 00:00 66 packages excluded due to repository priority protections Resolving Dependencies --> Running transaction check ---> Package clamav.x86_64 0:0.98.7-1.el7 will be installed ---> Package clamav-data.noarch 0:0.98.7-1.el7 will be installed ---> Package clamav-filesystem.noarch 0:0.98.7-1.el7 will be installed ---> Package clamav-lib.x86_64 0:0.98.7-1.el7 will be installed ---> Package clamav-server.x86_64 0:0.98.7-1.el7 will be installed --> Processing Dependency: nc for package: clamav-server-0.98.7-1.el7.x86_64 ---> Package clamav-server-systemd.noarch 0:0.98.7-1.el7 will be installed ---> Package clamav-update.x86_64 0:0.98.7-1.el7 will be installed --> Running transaction check ---> Package nmap-ncat.x86_64 2:6.40-4.el7 will be installed --> Processing Dependency: libpcap.so.1()(64bit) for package: 2:nmap-ncat-6.40-4.el7.x86_64 --> Running transaction check ---> Package libpcap.x86_64 14:1.5.3-4.el7_1.2 will be installed --> Finished Dependency Resolution Changes in packages about to be updated: Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: clamav x86_64 0.98.7-1.el7 epel 806 k clamav-data noarch 0.98.7-1.el7 epel 95 M clamav-filesystem noarch 0.98.7-1.el7 epel 19 k clamav-lib x86_64 0.98.7-1.el7 epel 3.7 M clamav-server x86_64 0.98.7-1.el7 epel 93 k clamav-server-systemd noarch 0.98.7-1.el7 epel 19 k clamav-update x86_64 0.98.7-1.el7 epel 89 k Installing for dependencies: libpcap x86_64 14:1.5.3-4.el7_1.2 updates 137 k nmap-ncat x86_64 2:6.40-4.el7 base 200 k Transaction Summary ================================================================================ Install 6 Packages (+2 Dependent packages) Total download size: 100 M Installed size: 109 M Is this ok [y/d/N]: y Downloading packages: (1/9): clamav-0.98.7-1.el7.x86_64.rpm | 806 kB 00:00 (2/9): clamav-filesystem-0.98.7-1.el7.noarch.rpm | 19 kB 00:00 (3/9): clamav-lib-0.98.7-1.el7.x86_64.rpm | 3.7 MB 00:00 (4/9): clamav-server-0.98.7-1.el7.x86_64.rpm | 93 kB 00:00 (5/9): clamav-server-systemd-0.98.7-1.el7.noarch.rpm | 19 kB 00:00 (6/9): clamav-update-0.98.7-1.el7.x86_64.rpm | 89 kB 00:00 (7/9): libpcap-1.5.3-4.el7_1.2.x86_64.rpm | 137 kB 00:00 (8/9): nmap-ncat-6.40-4.el7.x86_64.rpm | 200 kB 00:00 (9/9): clamav-data-0.98.7-1.el7.noarch.rpm | 95 MB 00:02 -------------------------------------------------------------------------------- Total 35 MB/s | 100 MB 00:02 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : clamav-filesystem-0.98.7-1.el7.noarch 1/9 Installing : clamav-data-0.98.7-1.el7.noarch 2/9 Installing : clamav-lib-0.98.7-1.el7.x86_64 3/9 Installing : 14:libpcap-1.5.3-4.el7_1.2.x86_64 4/9 Installing : clamav-server-systemd-0.98.7-1.el7.noarch 5/9 Installing : 2:nmap-ncat-6.40-4.el7.x86_64 6/9 Installing : clamav-server-0.98.7-1.el7.x86_64 7/9 Installing : clamav-update-0.98.7-1.el7.x86_64 8/9 Installing : clamav-0.98.7-1.el7.x86_64 9/9 Verifying : 2:nmap-ncat-6.40-4.el7.x86_64 1/9 Verifying : clamav-filesystem-0.98.7-1.el7.noarch 2/9 Verifying : clamav-server-0.98.7-1.el7.x86_64 3/9 Verifying : clamav-data-0.98.7-1.el7.noarch 4/9 Verifying : clamav-server-systemd-0.98.7-1.el7.noarch 5/9 Verifying : 14:libpcap-1.5.3-4.el7_1.2.x86_64 6/9 Verifying : clamav-lib-0.98.7-1.el7.x86_64 7/9 Verifying : clamav-update-0.98.7-1.el7.x86_64 8/9 Verifying : clamav-0.98.7-1.el7.x86_64 9/9 Installed: clamav.x86_64 0:0.98.7-1.el7 clamav-data.noarch 0:0.98.7-1.el7 clamav-filesystem.noarch 0:0.98.7-1.el7 clamav-lib.x86_64 0:0.98.7-1.el7 clamav-server.x86_64 0:0.98.7-1.el7 clamav-update.x86_64 0:0.98.7-1.el7 clamav-server-systemd.noarch 0:0.98.7-1.el7 Dependency Installed: libpcap.x86_64 14:1.5.3-4.el7_1.2 nmap-ncat.x86_64 2:6.40-4.el7 Complete!
clamav
Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket clamav
installiert wurden.
# rpm -qil clamav Name : clamav Version : 0.98.7 Release : 1.el7 Architecture: x86_64 Install Date: Fri 09 Oct 2015 10:10:43 AM CEST Group : Applications/File Size : 2247528 License : GPLv2 Signature : RSA/SHA256, Thu 30 Apr 2015 03:54:50 PM CEST, Key ID 6a2faea2352c64e5 Source RPM : clamav-0.98.7-1.el7.src.rpm Build Date : Wed 29 Apr 2015 08:47:04 PM CEST Build Host : buildvm-20.phx2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : http://www.clamav.net Summary : End-user tools for the Clam Antivirus scanner Description : Clam AntiVirus is an anti-virus toolkit for UNIX. The main purpose of this software is the integration with mail servers (attachment scanning). The package provides a flexible and scalable multi-threaded daemon, a command line scanner, and a tool for automatic updating via Internet. The programs are based on a shared library distributed with the Clam AntiVirus package, which you can use with your own software. The virus database is based on the virus database from OpenAntiVirus, but contains additional signatures (including signatures for popular polymorphic viruses, too) and is KEPT UP TO DATE. /usr/bin/clambc /usr/bin/clamconf /usr/bin/clamdscan /usr/bin/clamdtop /usr/bin/clamscan /usr/bin/clamsubmit /usr/bin/sigtool /usr/share/doc/clamav-0.98.7 /usr/share/doc/clamav-0.98.7/AUTHORS /usr/share/doc/clamav-0.98.7/BUGS /usr/share/doc/clamav-0.98.7/COPYING /usr/share/doc/clamav-0.98.7/ChangeLog /usr/share/doc/clamav-0.98.7/FAQ /usr/share/doc/clamav-0.98.7/NEWS /usr/share/doc/clamav-0.98.7/README /usr/share/doc/clamav-0.98.7/UPGRADE /usr/share/doc/clamav-0.98.7/clamdoc.pdf /usr/share/doc/clamav-0.98.7/phishsigs_howto.pdf /usr/share/doc/clamav-0.98.7/signatures.pdf /usr/share/man/man1/clambc.1.gz /usr/share/man/man1/clamconf.1.gz /usr/share/man/man1/clamdscan.1.gz /usr/share/man/man1/clamdtop.1.gz /usr/share/man/man1/clamscan.1.gz /usr/share/man/man1/clamsubmit.1.gz /usr/share/man/man1/sigtool.1.gz /usr/share/man/man5/clamav-milter.conf.5.gz /usr/share/man/man5/clamd.conf.5.gz
clamav-data
Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket clamav-data
installiert wurden.
# rpm -qil clamav-data Name : clamav-data Version : 0.98.7 Release : 1.el7 Architecture: noarch Install Date: Fri 09 Oct 2015 10:10:38 AM CEST Group : Applications/File Size : 99269481 License : GPLv2 Signature : RSA/SHA256, Thu 30 Apr 2015 03:56:37 PM CEST, Key ID 6a2faea2352c64e5 Source RPM : clamav-0.98.7-1.el7.src.rpm Build Date : Wed 29 Apr 2015 08:47:04 PM CEST Build Host : buildvm-20.phx2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : http://www.clamav.net Summary : Virus signature data for the Clam Antivirus scanner Description : This package contains the virus-database needed by clamav. This database should be updated regularly; the 'clamav-update' package ships a corresponding cron-job. This package and the 'clamav-data-empty' package are mutually exclusive. Use -data when you want a working (but perhaps outdated) virus scanner immediately after package installation. Use -data-empty when you are updating the virus database regulary and do not want to download a >5MB sized rpm-package with outdated virus definitions. /var/lib/clamav/daily.cvd /var/lib/clamav/main.cvd
clamav-filesystem
Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket clamav-filesystem
installiert wurden.
# rpm -qil clamav-filesystem Name : clamav-filesystem Version : 0.98.7 Release : 1.el7 Architecture: noarch Install Date: Fri 09 Oct 2015 10:10:34 AM CEST Group : Applications/File Size : 0 License : GPLv2 Signature : RSA/SHA256, Thu 30 Apr 2015 04:00:11 PM CEST, Key ID 6a2faea2352c64e5 Source RPM : clamav-0.98.7-1.el7.src.rpm Build Date : Wed 29 Apr 2015 08:47:04 PM CEST Build Host : buildvm-20.phx2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : http://www.clamav.net Summary : Filesystem structure for clamav Description : This package provides the filesystem structure and contains the user-creation scripts required by clamav. /usr/share/clamav /var/lib/clamav
clamav-lib
Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket clamav-lib
installiert wurden.
# rpm -qil clamav-lib Name : clamav-lib Version : 0.98.7 Release : 1.el7 Architecture: x86_64 Install Date: Fri 09 Oct 2015 10:10:39 AM CEST Group : System Environment/Libraries Size : 11544232 License : GPLv2 Signature : RSA/SHA256, Thu 30 Apr 2015 03:56:51 PM CEST, Key ID 6a2faea2352c64e5 Source RPM : clamav-0.98.7-1.el7.src.rpm Build Date : Wed 29 Apr 2015 08:47:04 PM CEST Build Host : buildvm-20.phx2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : http://www.clamav.net Summary : Dynamic libraries for the Clam Antivirus scanner Description : This package contains dynamic libraries shared between applications using the Clam Antivirus scanner. /usr/lib64/libclamav.so.6 /usr/lib64/libclamav.so.6.1.26
clamav-server
Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket clamav-server
installiert wurden.
# rpm -qil clamav-server Name : clamav-server Version : 0.98.7 Release : 1.el7 Architecture: x86_64 Install Date: Fri 09 Oct 2015 10:10:40 AM CEST Group : System Environment/Daemons Size : 193846 License : GPLv2 Signature : RSA/SHA256, Thu 30 Apr 2015 03:58:19 PM CEST, Key ID 6a2faea2352c64e5 Source RPM : clamav-0.98.7-1.el7.src.rpm Build Date : Wed 29 Apr 2015 08:47:04 PM CEST Build Host : buildvm-20.phx2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : http://www.clamav.net Summary : Clam Antivirus scanner server Description : ATTENTION: most users do not need this package; the main package has everything (or depends on it) which is needed to scan for virii on workstations. This package contains files which are needed to execute the clamd-daemon. This daemon does not provide a system-wide service. Instead of, an instance of this daemon should be started for each service requiring it. See the README file how this can be done with a minimum of effort. /etc/clamd.d /usr/sbin/clamav-notify-servers /usr/sbin/clamd /usr/share/doc/clamav-server-0.98.7 /usr/share/doc/clamav-server-0.98.7/README /usr/share/doc/clamav-server-0.98.7/clamd.conf /usr/share/doc/clamav-server-0.98.7/clamd.init /usr/share/doc/clamav-server-0.98.7/clamd.logrotate /usr/share/doc/clamav-server-0.98.7/clamd.sysconfig /usr/share/man/man5/clamd.conf.5.gz /usr/share/man/man8/clamd.8.gz
clamav-update
Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket clamav-update
installiert wurden.
# rpm -qil clamav-update Name : clamav-update Version : 0.98.7 Release : 1.el7 Architecture: x86_64 Install Date: Fri 09 Oct 2015 10:10:41 AM CEST Group : Applications/File Size : 182427 License : GPLv2 Signature : RSA/SHA256, Thu 30 Apr 2015 03:57:27 PM CEST, Key ID 6a2faea2352c64e5 Source RPM : clamav-0.98.7-1.el7.src.rpm Build Date : Wed 29 Apr 2015 08:47:04 PM CEST Build Host : buildvm-20.phx2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : http://www.clamav.net Summary : Auto-updater for the Clam Antivirus scanner data-files Description : This package contains programs which can be used to update the clamav anti-virus database automatically. It uses the freshclam(1) utility for this task. To activate it, uncomment the entry in /etc/cron.d/clamav-update. /etc/cron.d/clamav-update /etc/freshclam.conf /etc/logrotate.d/clamav-update /etc/sysconfig/freshclam /usr/bin/freshclam /usr/share/clamav/freshclam-sleep /usr/share/man/man1/freshclam.1.gz /usr/share/man/man5/freshclam.conf.5.gz /var/lib/clamav/daily.cld /var/lib/clamav/main.cld /var/log/freshclam.log
Konfiguration: clamav-server
Um den ClamAV einsetzen zu können, muss dieser konfiguriert werden. Da zum Installationszeitpunkt nicht bekannt ist, für welchen Partner-Dienst (hier: AMaViS) dieser zum Einsatz kommen soll, sind keine Konfigurationsdateien vorbereitet!
Es befinden sich jedoch im Verzeichnis
/usr/share/doc/clamav-server-0.98.7
vorbereitete Template-Konfigurationsdateien welche entsprechend kopiert und angepasst werden können.
/etc/clamd.d/amavisd.conf
Um aus den vorbereiteten Template-Konfigurationsdateien im Verzeichnis /usr/share/doc/clamav-server-0.98.7
eine Konfigurationsdatei für den ClamAV und dessen Partner-Dienst AMaViS zu erstellen, kann nachfolgender Befehl zum kopieren der vorbereiteten Template-Konfigurationsdatei /usr/share/doc/clamav-server-0.98.7/clamd.conf
genutzt werden:
# cp -a /usr/share/doc/clamav-server-0.98.7/clamd.conf /etc/clamd.d/amavisd.conf
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:
# egrep -v '(^#|^$)' /etc/clamd.d/amavisd.conf
Die Konfigurationsdatei /etc/clamd.d/amavisd.conf
ohne Kommentar- und Leerzeichen:
# egrep -v '(^#|^$)' /etc/clamd.d/amavisd.conf Example LogSyslog yes User <USER> AllowSupplementaryGroups yes
Nachfolgende Änderungen sollten vorgenommen werden:
# Example
Auskommentieren des Parameters Example
, um die Konfigurationsdatei zu aktivieren.
LogFacility LOG_DAEMON
Die Schreibung des syslog
soll mit der „Facility“ - LOG-DAEMON
durchgeführt werden, effektiv mit der „Facility“ - clamd
.
PidFile /var/run/clamd.amavisd/clamd.pid
Setzen des Namens und des Speicherorts der PID
-Datei (Process ID), im Laufzeitverzeichnis des Partner-Dienstes.
LocalSocket /var/run/clamd.amavisd/clamd.sock
Setzen des Namens und des Speicherorts der lokalen SOCKET
-Datei (Kommunikationsdatei), im Laufzeitverzeichnis des Partner-Dienstes.
FixStaleSocket yes
Setzen des Parameters, damit die lokale SOCKET
-Datei (Kommunikationsdatei), im Falle eines unvorhergesehen oder unsauberen Beenden des ClamAV-Daemons, automatisch entfernt wird.
User amavis
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:
# egrep -v '(^#|^$)' /etc/clamd.d/amavisd.conf LogSyslog yes LogFacility LOG_DAEMON PidFile /var/run/clamd.amavisd/clamd.pid LocalSocket /var/run/clamd.amavisd/clamd.sock FixStaleSocket yes User amavis AllowSupplementaryGroups yes
/etc/sysconfig/clamd.amavisd
Um aus den vorbereiteten Template-Konfigurationsdateien im Verzeichnis /usr/share/doc/clamav-server-0.98.7
eine Konfigurationsdatei für den ClamAV und dessen Partner-Dienst AMaViS zu erstellen, kann nachfolgender Befehl zum kopieren der vorbereiteten Template-Konfigurationsdatei /usr/share/doc/clamav-server-0.98.7/clamd.sysconfig
genutzt werden:
# cp -a /usr/share/doc/clamav-server-0.98.7/clamd.sysconfig /etc/sysconfig/clamd.amavisd
Die Konfigurationsdatei /etc/sysconfig/clamd.amavisd
nach dem kopieren mit Standardangaben:
#CLAMD_CONFIGFILE=/etc/clamd.d/<SERVICE>.conf #CLAMD_SOCKET=/var/run/clamd.<SERVICE>/clamd.sock #CLAMD_OPTIONS=
Nachfolgende Änderungen sollten vorgenommen werden:
CLAMD_CONFIGFILE=/etc/clamd.d/amavisd.conf
Setzen des Namens und des Speicherorts der Konfigurationsdatei des Partner-Dienstes.
CLAMD_SOCKET=/var/run/clamd.amavisd/clamd.sock
Setzen des Namens und des Speicherorts der lokalen SOCKET
-Datei (Kommunikationsdatei), im Laufzeitverzeichnis des Partner-Dienstes.
CLAMD_OPTIONS=
Optionen für die Ausführung ( HINWEIS - Es ist nicht notwendig, hier Optionen zu setzen!).
Die Konfigurationsdatei /etc/sysconfig/clamd.amavisd
inklusive der Änderungen:
CLAMD_CONFIGFILE=/etc/clamd.d/amavisd.conf CLAMD_SOCKET=/var/run/clamd.amavisd/clamd.sock CLAMD_OPTIONS=
/etc/systemd/system/clamd@.service
Nachfolgende Konfigurationsdatei /usr/lib/systemd/system/clamd@.service
stellt den systemd
-Dienst zum Systemstart des ClamAV zur Verfügung.
Um den Start via systemd
durchführen zu können, kann nachfolgende Konfigurationsdatei kopiert werden und für den Start entsprechend angepasst werden:
# cp -a /usr/lib/systemd/system/clamd\@.service /etc/systemd/system/clamd\@.service
Die Konfigurationsdatei /etc/systemd/system/clamd@.service
nach dem kopieren mit Standardangaben:
[Unit] Description = clamd scanner (%i) daemon After = syslog.target nss-lookup.target network.target [Service] Type = simple ExecStart = /usr/sbin/clamd -c /etc/clamd.d/%i.conf --nofork=yes Restart = on-failure PrivateTmp = true
Nachfolgende Änderungen sollten vorgenommen werden:
Type = forking
Standard UNIX-Processstart. Siehe auch den externen Link systemd.service — Service unit configuration
[Install] WantedBy=multi-user.target
Aktivieren des Ladens durch dne systemd
im Startbereich (runlevel
) - multi-user.target
.
Die Konfigurationsdatei /etc/systemd/system/clamd@.service
inklusive der Änderungen:
[Unit] Description = clamd scanner (%i) daemon After = syslog.target nss-lookup.target network.target [Service] # Tachtler # default: Type = simple Type = forking # Tachtler # default: ExecStart = /usr/sbin/clamd -c /etc/clamd.d/%i.conf --nofork=yes ExecStart = /usr/sbin/clamd -c /etc/clamd.d/%i.conf Restart = on-failure PrivateTmp = true # Tachtler [Install] WantedBy=multi-user.target
Um die Änderungen wirksam werden zu lassen, muss nachfolgender Befehl ausgeführt werden:
# systemctl daemon-reload
Ob die Änderungen erfolgreich durchgeführt wurden, kann mit nachfolgendem Befehl überprüft werden und sollte eine Ausgabe wie nachfolgende erzeugen:
# systemctl list-unit-files -t service | grep clamd clamd@.service disabled
ClamAV Dienst/Daemon-Start einrichten
Um den Virenscanner ClamAV mit dem 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:
# systemctl enable clamd@amavis ln -s '/etc/systemd/system/clamd@.service' '/etc/systemd/system/multi-user.target.wants/clamd@amavis.service'
Eine Überprüfung, ob beim Neustart des Server der clamd@amavis
-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:
# systemctl list-unit-files --type=service | grep -e clamd clamd@.service enabled
bzw.
# systemctl is-enabled clamd@amavis enabled
/etc/logrotate.d/clamd
Um aus den vorbereiteten Template-Konfigurationsdateien im Verzeichnis /usr/share/doc/clamav-server-0.98.7
eine Konfigurationsdatei für den ClamAV und dessen Partner-Dienst AMaViS zu erstellen, kann nachfolgender Befehl zum kopieren der vorbereiteten Template-Konfigurationsdatei /usr/share/doc/clamav-server-0.98.7/clamd.logrotate
genutzt werden:
# cp -a /usr/share/doc/clamav-server-0.98.7/clamd.logrotate /etc/logrotate.d/clamd
Die Konfigurationsdatei /etc/logrotate.d/clamd
nach dem kopieren mit Standardangaben:
/var/log/clamd.<SERVICE> { monthly notifempty missingok postrotate killall -HUP clamd.<SERVICE> 2>/dev/null || : endscript }
Nachfolgende Änderungen sollten vorgenommen werden:
/var/log/clamd.log {
Angabe der LOG-Datei, welche rotiert werden soll.
HINWEIS - Hier wird nicht der Service angegeben, sonder die Endung <.log>
killall -HUP clamd@amavis 2>/dev/null || :
Ausführen des Neustart des systemd
-Daemons - clamd@amavis
, damit die neu rotierte LOG-Datei wieder beschrieben werden kann.
Die Konfigurationsdatei /etc/logrotate.d/clamd
inklusive der Änderungen:
/var/log/clamd.log { monthly notifempty missingok postrotate killall -HUP clamd@amavis 2>/dev/null || : endscript }
/etc/rsyslog.conf
Durch nachfolgende Anpassung, können die LOG-Meldungen des ClamAV, bzw. des clamd
-Daemons/Dienstes an den Syslog-Server rsyslog
mit nachfolgender Ergänzung der Konfigurationsdatei
/etc/rsyslog.conf
und einem Neustart des Syslog-Dienstes, in eine eigene Log-Datei
/var/log/clamd.log
geschrieben werden.
Änderungen und persönliche Anpassungen sind mit einem voranstehenden Kommentar, welche wie nachfolgend dargestellt aussieht
# Tachtler
gekennzeichnet.
Hier die Ergänzungen für den Syslog-Dienst rsyslog
(Nur relevanter Ausschnitt):
... #### RULES #### # Log all kernel messages to the console. # Logging much else clutters up the screen. #kern.* /dev/console # Tachtler # Log "clamd" messages to separate log file. :programname, isequal, "clamd" /var/log/clamd.log # Log anything (except mail) of level info or higher. # Don't log private authentication messages! # Tachtler # default: *.info;mail.none;authpriv.none;cron.none /var/log/messages # Don't log clamd messages! :programname, isequal, "clamd" stop *.info;mail.none;authpriv.none;cron.none /var/log/messages ...
HINWEIS - Diese Anpassungen des Syslog-Dienst rsyslog
, haben folgende Auswirkungen:
- Log-Schreibung erfolgt nicht nach
/var/log/messages
, sondern - ausschließlich nach
/var/log/clamd.log
Der Neustart des Syslog-Dienstes rsyslog
wird mit nachfolgendem Befehl durchgeführt:
# systemctl restart rsyslog.service
Erster Start clamd@amavis
WICHTIG - Ein erfolgreicher Start kann NUR durchgeführt werden, wenn AMaViS bereits installiert ist!
Um den ClamAV des AMaViS zu starten kann nachfolgender Befehl angewandt werden:
# systemctl start clamd@amavis
Eine Überprüfung ob der Start des ClamAV des AMaViS erfolgreich war kann mit nachfolgendem Befehl durchgeführt werden, welcher eine Ausgabe in etwa wie nachfolgende erzeugen sollte:
# systemctl status clamd@amavis clamd@amavis.service - clamd scanner (amavis) daemon Loaded: loaded (/etc/systemd/system/clamd@.service; enabled) Active: active (running) since Fri 2015-10-09 13:49:47 CEST; 8s ago Main PID: 2307 (clamd) CGroup: /system.slice/system-clamd.slice/clamd@amavis.service └─2307 /usr/sbin/clamd -c /etc/clamd.d/amavisd.conf --nofork=yes Oct 09 13:49:47 server70.idmz.tachtler.net clamd[2307]: clamd daemon 0.98.7 (... Oct 09 13:49:47 server70.idmz.tachtler.net clamd[2307]: Running as user amavi... Oct 09 13:49:47 server70.idmz.tachtler.net clamd[2307]: Log file size limited... Oct 09 13:49:47 server70.idmz.tachtler.net clamd[2307]: Reading databases fro... Oct 09 13:49:47 server70.idmz.tachtler.net clamd[2307]: Not loading PUA signa... Oct 09 13:49:47 server70.idmz.tachtler.net clamd[2307]: Bytecode: Security mo... Oct 09 13:49:48 server70.idmz.tachtler.net clamd[2307]: LibClamAV Warning: **... Oct 09 13:49:48 server70.idmz.tachtler.net clamd[2307]: LibClamAV Warning: **... Oct 09 13:49:48 server70.idmz.tachtler.net clamd[2307]: LibClamAV Warning: **... Oct 09 13:49:48 server70.idmz.tachtler.net clamd[2307]: LibClamAV Warning: **... Hint: Some lines were ellipsized, use -l to show in full.
bzw. mit nachfolgendem Befehl, ob der Dienst/Daemon in der Prozessliste erscheint:
# ps aux | grep clamd amavis 2307 24.0 14.8 452984 304080 ? Ssl 13:49 0:13 /usr/sbin/clamd -c /etc/clamd.d/amavisd.conf --nofork=yes root 2311 0.0 0.0 112640 928 pts/0 S+ 13:50 0:00 grep --color=auto clamd
Eine weitere Möglichkeit ist die Überprüfung des journal
, was mit nachfolgendem Befehl durchgeführt werden kann:
# journalctl -x Oct 09 13:49:47 server70.idmz.tachtler.net systemd[1]: Starting clamd scanner (a -- Subject: Unit clamd@amavis.service has begun with start-up -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit clamd@amavis.service has begun starting up. Oct 09 13:49:47 server70.idmz.tachtler.net systemd[1]: Started clamd scanner (am -- Subject: Unit clamd@amavis.service has finished start-up -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit clamd@amavis.service has finished starting up. -- -- The start-up result is done. Oct 09 13:49:47 server70.idmz.tachtler.net clamd[2307]: clamd daemon 0.98.7 (OS: Oct 09 13:49:47 server70.idmz.tachtler.net clamd[2307]: Running as user amavis ( Oct 09 13:49:47 server70.idmz.tachtler.net clamd[2307]: Log file size limited to Oct 09 13:49:47 server70.idmz.tachtler.net clamd[2307]: Reading databases from / Oct 09 13:49:47 server70.idmz.tachtler.net clamd[2307]: Not loading PUA signatur Oct 09 13:49:47 server70.idmz.tachtler.net clamd[2307]: Bytecode: Security mode Oct 09 13:49:48 server70.idmz.tachtler.net clamd[2307]: LibClamAV Warning: ***** Oct 09 13:49:48 server70.idmz.tachtler.net clamd[2307]: LibClamAV Warning: *** Oct 09 13:49:48 server70.idmz.tachtler.net clamd[2307]: LibClamAV Warning: *** Oct 09 13:49:48 server70.idmz.tachtler.net clamd[2307]: LibClamAV Warning: ***** Oct 09 13:50:00 server70.idmz.tachtler.net clamd[2307]: Loaded 3798335 signature Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: LOCAL: Unix socket file Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: LOCAL: Setting connectio Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: Limits: Global size limi Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: Limits: File size limit Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: Limits: Recursion level Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: Limits: Files limit set Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: Limits: MaxEmbeddedPE li Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: Limits: MaxHTMLNormalize Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: Limits: MaxHTMLNoTags li Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: Limits: MaxScriptNormali Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: Limits: MaxZipTypeRcg li Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: Limits: MaxPartitions li Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: Limits: MaxIconsPE limit Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: Archive support enabled. Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: Algorithmic detection en Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: Portable Executable supp Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: ELF support enabled. Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: Mail files support enabl Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: OLE2 support enabled. Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: PDF support enabled. Oct 09 13:50:01 server70.idmz.tachtler.net clamd[2307]: SWF 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
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 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.
# touch /var/lib/clamav/whitelist.ign2
Der Inhalt ist dann mit dem Namen des zu ignorierenden bzw. „whitelistenden“ Treffers aus dem „pattern“ von ClamAV als einfacher Eintrag zu erstellen, wie nachfolgendes Beispiel zeigt:
Win.Exploit.CVE_2019_0903-6966169-0
Anschliessend ist, wenn der ClamAV bereits gestartet wurde, ein Neustart mit nachfolgendem Befehl durchzuführen:
# systemctl restart clamd@amavisd.service
Konfiguration: clamav-update
Die Einbindung des Virenscanners ClamAV in den AMaViS ist leider noch nicht ausreichend, da der Virenscanner ohne frische Viren-Pattern (Viren-Update-Dateien) nur bedingt erfolgreich agieren kann, was z.B ggf. auch im journal
zu sehen ist:
(Nur relevanter Ausschnitt)
Oct 09 14:00:02 server70.idmz.tachtler.net clamd[2307]: LibClamAV Warning: ************************************************** Oct 09 14:00:02 server70.idmz.tachtler.net clamd[2307]: LibClamAV Warning: *** The virus database is older than 7 days! *** Oct 09 14:00:02 server70.idmz.tachtler.net clamd[2307]: LibClamAV Warning: *** Please update it as soon as possible. *** Oct 09 14:00:02 server70.idmz.tachtler.net clamd[2307]: LibClamAV Warning: **************************************************
Um den ClamAV welcher in den AMaViS eingebunden ist „Up-To-Date“ zu halten ist nachfolgende Konfiguration erforderlich.
/etc/sysconfig/freshclam
Nachfolgende Konfigurationsdatei /etc/sysconfig/freshclam
regelt, ob der Dienst überhaupt aktiv ist und muss entsprechend angepasst werden, damit dieser aktiv ist.
Nachfolgende Anpassungen müssen am Ende der Konfigurationsdatei durchgeführt werden:
(Komplette Konfigurationsdatei)
## When changing the periodicity of freshclam runs in the crontab, ## this value must be adjusted also. Its value is the timespan between ## two subsequent freshclam runs in minutes. E.g. for the default ## ## | 0 */3 * * * ... ## ## crontab line, the value is 180 (minutes). # FRESHCLAM_MOD= ## A predefined value for the delay in seconds. By default, the value is ## calculated by the 'hostid' program. This predefined value guarantees ## constant timespans of 3 hours between two subsequent freshclam runs. ## ## This option accepts two special values: ## 'disabled-warn' ... disables the automatic freshclam update and ## gives out a warning ## 'disabled' ... disables the automatic freshclam silently # FRESHCLAM_DELAY= ### !!!!! REMOVE ME !!!!!! ### REMOVE ME: By default, the freshclam update is disabled to avoid ### REMOVE ME: network access without prior activation # Tachtler # default: FRESHCLAM_DELAY=disabled-warn # REMOVE ME # FRESHCLAM_DELAY=disabled-warn # REMOVE ME
/etc/freshclam.conf
Nachfolgende Konfigurationsdatei /etc/freshclam.conf
ist die Steuerungsdatei für den ClamAV-Update-Mechanismus.
Da die Konfigurationsdatei /etc/freshclam.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 der Grundinstallation des ClamAV-Update-Mechanismus wie folgt aussehen sollte:
# egrep -v '(^#|^$)' /etc/freshclam.conf
Die Konfigurationsdatei /etc/freshclam.conf
ohne Kommentar- und Leerzeichen:
# egrep -v '(^#|^$)' /etc/freshclam.conf Example LogSyslog yes DatabaseMirror database.clamav.net
Nachfolgende Anpassungen müssen am Anfang der Konfigurationsdatei durchgeführt werden:
(Nur relevanter Ausschnitt)
## ## Example config file for freshclam ## Please read the freshclam.conf(5) manual before editing this file. ## # Comment or remove the line below. # Tachtler # default: Example # Example ...
Nachfolgende Änderungen wurden beispielhaft vorgenommen:
Checks 48
Verringerung der Update-Zeit von alle 3 Stunden auf alle 30 Minuten (Maximalwert).
NotifyClamd /etc/clamd.d/amavisd.conf
Benachrichtigung des ClamAV ermöglichen.
Die Konfigurationsdatei /etc/freshclam.conf
ohne Kommentar- und Leerzeichen inklusive der Änderungen, könnte dann wie folgt aussehen:
# egrep -v '(^#|^$)' /etc/freshclam.conf LogSyslog yes DatabaseMirror database.clamav.net Checks 48 NotifyClamd /etc/clamd.d/amavisd.conf
Variante 1: /etc/cron.d/clamav-update
Nachfolgender cron
-Job wird standardmäßig: alle 3-Stunden ausgeführt und liefert so Updates für den Virenscanner ClamAV.
Dies kann ebenfalls auf den (Maximalwert = 30 Minuten) abgeändert werden, wie nachfolgende Anpassungen zeigen:
(Komplette Konfigurationsdatei)
## Adjust this line... MAILTO=root ## It is ok to execute it as root; freshclam drops privileges and becomes ## user 'clamupdate' as soon as possible # Tachtler # default: 0 */3 * * * root /usr/share/clamav/freshclam-sleep */30 * * * * root /usr/share/clamav/freshclam-sleep
Variante 2: /etc/systemd/system/clamd.freshclam.service
Alternativ kann auch der „freshclam“ als Daemon im Hintergrund gestartet werden, was durch erstellen einer systemd
Start-Datei für den „freshclam“ wie nachfolgend gezeigt, durchgeführt werden kann:
# Run the freshclam as daemon [Unit] Description = freshclam update scanner daemon After = network.target [Service] Type = forking ExecStart = /usr/bin/freshclam -d Restart = on-failure PrivateTmp = true [Install] WantedBy=multi-user.target
Um die Änderungen wirksam werden zu lassen, muss nachfolgender Befehl ausgeführt werden:
# systemctl daemon-reload
Freshclam Dienst/Deamon-Start einrichten
Um den Virenscanner ClamAV-Update-Dienst/Daemon, 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:
# systemctl enable clamd.freshclam.service ln -s '/etc/systemd/system/clamd.freshclam.service' '/etc/systemd/system/multi-user.target.wants/clamd.freshclam.service'
Eine Überprüfung, ob beim Neustart des Server der clamd.freshclam.
-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:
# systemctl list-unit-files --type=service | grep -e clamd.freshclam clamd.freshclam.service enabled
bzw.
# systemctl is-enabled clamd.freshclam.service enabled
Erster Start clamd.freshclam
Um den ClamAV-Update-Mechanismus des E2guardian zu starten kann nachfolgender Befehl angewandt werden:
# systemctl start clamd.freshclam.service
Eine Überprüfung ob der Start des ClamAV-Update-Mechanismus des E2guardian erfolgreich war kann mit nachfolgendem Befehl durchgeführt werden, welcher eine Ausgabe in etwa wie nachfolgende erzeugen sollte:
# systemctl status clamd.freshclam.service clamd.freshclam.service - freshclam update scanner daemon Loaded: loaded (/etc/systemd/system/clamd.freshclam.service; enabled) Active: active (running) since Fri 2015-10-09 14:29:11 CEST; 5s ago Process: 2439 ExecStart=/usr/bin/freshclam -d (code=exited, status=0/SUCCESS) Main PID: 2440 (freshclam) CGroup: /system.slice/clamd.freshclam.service └─2440 /usr/bin/freshclam -d Oct 09 14:29:10 server70.idmz.tachtler.net freshclam[2440]: ClamAV update pro... Oct 09 14:29:10 server70.idmz.tachtler.net freshclam[2440]: main.cvd is up to... Oct 09 14:29:11 server70.idmz.tachtler.net systemd[1]: Started freshclam upda... Oct 09 14:29:12 server70.idmz.tachtler.net freshclam[2440]: getfile: daily-20... Oct 09 14:29:12 server70.idmz.tachtler.net freshclam[2440]: getpatch: Can't d... Oct 09 14:29:12 server70.idmz.tachtler.net freshclam[2440]: getfile: daily-20... Oct 09 14:29:12 server70.idmz.tachtler.net freshclam[2440]: getpatch: Can't d... Oct 09 14:29:12 server70.idmz.tachtler.net freshclam[2440]: getfile: daily-20... Oct 09 14:29:12 server70.idmz.tachtler.net freshclam[2440]: getpatch: Can't d... Oct 09 14:29:12 server70.idmz.tachtler.net freshclam[2440]: Incremental updat... Hint: Some lines were ellipsized, use -l to show in full.
bzw. mit nachfolgendem Befehl, ob der Dienst/Daemon in der Prozessliste erscheint:
# ps aux | grep freshclam clamupd+ 2440 5.5 0.1 71468 2692 ? Ss 14:29 0:02 /usr/bin/freshclam -d root 2443 0.0 0.0 112640 928 pts/0 S+ 14:30 0:00 grep --color=auto freshclam
Ebenfalls kann anhand der LOG-Datei des „freshclam“ nachvollzogen werden, wie das Update der Viren-Pattern (Virus-Update-Informationen) verlaufen ist. Es sollte eine Ausgabe in etwa wie nachfolgende erscheinen:
Oct 9 14:29:10 server70 freshclam[2440]: freshclam daemon 0.98.7 (OS: linux-gnu, ARCH: x86_64, CPU: x86_64) Oct 9 14:29:10 server70 freshclam[2440]: ClamAV update process started at Fri Oct 9 14:29:10 2015 Oct 9 14:29:11 server70 freshclam[2440]: main.cvd is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo) Oct 9 14:29:12 server70 freshclam[2440]: getfile: daily-20395.cdiff not found on remote server (IP: 178.63.73.246) Oct 9 14:29:12 server70 freshclam[2440]: getpatch: Can't download daily-20395.cdiff from database.clamav.net Oct 9 14:29:12 server70 freshclam[2440]: getfile: daily-20395.cdiff not found on remote server (IP: 130.133.110.67) Oct 9 14:29:12 server70 freshclam[2440]: getpatch: Can't download daily-20395.cdiff from database.clamav.net Oct 9 14:29:12 server70 freshclam[2440]: getfile: daily-20395.cdiff not found on remote server (IP: 62.27.56.14) Oct 9 14:29:12 server70 freshclam[2440]: getpatch: Can't download daily-20395.cdiff from database.clamav.net Oct 9 14:29:12 server70 freshclam[2440]: Incremental update failed, trying to download daily.cvd Oct 9 14:30:30 server70 freshclam[2440]: Downloading daily.cvd [100%] Oct 9 14:30:38 server70 freshclam[2440]: daily.cvd updated (version: 20958, sigs: 1600995, f-level: 63, builder: shurley) Oct 9 14:30:38 server70 freshclam[2440]: Downloading bytecode.cvd [100%] Oct 9 14:30:38 server70 freshclam[2440]: bytecode.cvd updated (version: 268, sigs: 47, f-level: 63, builder: anvilleg) Oct 9 14:30:43 server70 freshclam[2440]: Database updated (4025267 signatures) from database.clamav.net (IP: 193.27.49.165) Oct 9 14:30:43 server70 freshclam[2440]: Clamd successfully notified about the update. Oct 9 14:30:43 server70 freshclam[2440]: --------------------------------------
Vor allem nachfolgende Zeile sollte erscheinen:
Oct 9 14:30:43 server70 freshclam[2440]: Clamd successfully notified about the update.