Na samym początku warto zapoznać się z dokumentacją:
# vi /usr/share/doc/clamav-server-*/README
Opisano w niej proces konfiguracji skanera uruchomionego w postaci demona: clamd.
Następnie można przejść do instalacji pakietów:
# yum install -y epel-release clamav clamav-scanner-systemd clamav-update
Po zainstalowaniu pakietu należy skopiować przykładowy plik konfiguracyjny demona clamAV do katalogu /etc/sysconfig, w którym przechowywane są pliki konfiguracyjne opisujące działania usług uruchamianych przez systemd:
# cp /usr/share/doc/clamav-server-0.99.2/clamd.sysconfig /etc/sysconfig/clamd.amavisd
W skopiowanym pliku w miejscu docelowym, należy odhaszować i edytować wpisy, jak w przykładzie poniżej:
CLAMD_CONFIGFILE=/etc/clamd.d/amavisd.conf
CLAMD_SOCKET=/var/run/clamd.amavisd/clamd.sock
Opis tworzenia plików tymczasowych dla demona AMaViS: /usr/lib/tmpfiles.d/amavisd-new.conf
Warto rozważyć zrobienie linku symbolicznego w /etc/ dla pliku konfiguracyjnego amavis.conf:
# cd /etc/ && ln -s /etc/clamd.d/amavisd.conf clamd.conf
Dodatkowo należy dostosować skrypt dla systemd /etc/sysconfig/clamd.amavisd:
[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 --foreground=yes
Restart = on-failure
PrivateTmp = true
[Install]
WantedBy=multi-user.target
Następnie należy odkomentować linię w pliku: /etc/clamd.d/amavisd.conf:
LocalSocket /var/run/clamd.amavisd/clamd.sock
Konfiguracja SELinuxa polega na ustawieniu polityki boolowskiej:
# setsebool -P antivirus_can_scan_system 1
oraz ustawieniu odpowiedniego kontekstu dla plików tworzonych w katalogu jak poniżej:
# semanage fcontext -a -t antivirus_var_run_t '/var/run/clamd.amavisd(/.*)?
# restorecon -vR clamd.amavisd/
Można teraz uruchomić freshclama. Warto wcześniej sprawdzić pliki konfiguracyjne (usunąć wpis: Example itd.) :
# rmp -qf `which freshclam`
# rpm -qf `which freshclam`
# vi /etc/freshclam.conf
Zakomententować wpis Example i FRESHCLAM_DELAY=disabled-warn, zgodnie z opisem w pliku konfiguracyjnym.
:x
# freshclam
Można teraz przetestować działanie clamd poleceniem:
clamd debug
I sprawdzić w logach czy wszystko działa.
Na koniec włączamy nową usługę przez systemd:
# systemctl start clamd@amavisd
# systemctl enable clamd@amavisd
W celu odwołania się do clamd z poziomu AMaViS należy w pliku: /etc/amavisd/amavisd.conf odkomentowac odpowiednie linie:
['ClamAV-clamd',
\&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.sock.sock"],
qr/\bOK$/m, qr/\bFOUND$/m,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ],
Wcześniej oczywiście należy poprawnie skonfigurować program AMaViS w: /etc/amavisd/amavisd.conf (dla systemu Centos 7).