Instalar como demonio Clamav en centos 7

Vimos una forma de tener la última versión de clamav compilada pero más bien pensada para gestionarla a mano o para escanear algún que otro archivo o directorio (lo mismo tú no viste ese post, tampoco es necesario que lo veas, es solo por mantener una referencia por si a alguien le interesa).

En esta ocasión vamos a ver como disponer de clamav en Centos 7 ya que digamos que requiere de un poco de toqueteo de archivos.
El motivo de este post es servir de apoyo a otro futuro en el que hablaremos de como usar clamav para escanear determinados archivos nuevos que son subidos vía ftp/sftp/http/https a algún directorio. Digamos que es necesario primero instalar clamav para luego poder ya crear un escaneo de nuevos archivos que entran en el sistema y poder ponerlos en cuarentena o eliminarlos. Eso servirá para wordpress/nextcloud/drupal/… y poder eliminar archivos sospechosos subidos por los/las usuarios/as o apartarlos.

Instalamos repo epel y el tinglado:

# yum install epel-release
# yum update
# yum install clamav clamd htop -y
# yum install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd -y

Copiamos una configuración para el demonio clamd (quitando Example para que chute):

# cp /usr/share/clamav/template/clamd.conf /etc/clamd.d/clamd.conf
# sed -i '/^Example/d' /etc/clamd.d/clamd.conf

Tocamos la configuración para indicar:

User clamscan

y descomentar cambiando:

LocalSocket /var/run/clamd.scan/clamd.sock

Ahora creamos una copia de /etc/freshclam.conf (freshclam se encargará de mantener al día la base de datos de bichos):

# cp /etc/freshclam.conf /etc/freshclam.conf.bak
# sed -i '/^Example/d' /etc/freshclam.conf

Seguimos creando archivos y metiendo contenido. Para poder levantar esto como demonio y que se actualice la base de datos de bichos.

# touch /usr/lib/systemd/system/clam-freshclam.service

con este contenido:

[Unit]
Description = freshclam scanner
After = network.target

[Service]
Type = forking
ExecStart = /usr/bin/freshclam -d -c 4
Restart = on-failure
PrivateTmp = true

[Install]
WantedBy=multi-user.target

Habilitamos el servicio clam-freshclam :

# systemctl enable clam-freshclam.service
# systemctl start clam-freshclam.service
# systemctl status clam-freshclam.service

Ahora apañamos el servicio de scaneo demonio:

# mv /usr/lib/systemd/system/clamd@.service /usr/lib/systemd/system/clamd.service

Quitamos la @ de la primera línea:

# nano /usr/lib/systemd/system/clamd@scan.service              

Estará así:
.include /lib/systemd/system/clamd@.service

Y queda así:
.include /lib/systemd/system/clamd.service

Ahora sustituimos lo que tenga el archivo /usr/lib/systemd/system/clamd.service

# nano /usr/lib/systemd/system/clamd.service

Por esto:

[Unit]
Description = clamd scanner daemon
After = syslog.target nss-lookup.target network.target

[Service]
Type = simple
ExecStart = /usr/sbin/clamd -c /etc/clamd.d/clamd.conf --foreground=yes
Restart = on-failure
PrivateTmp = true

[Install]
WantedBy=multi-user.target

Si todo va bien finalizamos así:

# systemctl enable clamd.service
# systemctl disaable clamd@scan.service
# systemctl start clamd.service
# systemctl stop clamd@scan.service
# reboot

Con un reboot para comprobar luego al iniciarse la maquina que todo se levanta como ha de ser (con “ps aux” por ejemplo).

# tail -f /var/log/messages

Deja un comentario