GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo integrar ClamAV (a través de mod_clamav) en ProFTPd para escanear virus en Ubuntu 10.04

Este tutorial explica cómo puede integrar ClamAV en ProFTPd para escanear virus en un sistema Ubuntu 10.04. Esto se logra a través de mod_clamav. Al final, siempre que se cargue un archivo a través de ProFTPd, ClamAV verificará el archivo y lo eliminará si es malware.

¡No emito ninguna garantía de que esto funcione para usted!

1 nota preliminar

Debería tener una configuración de ProFTPd en funcionamiento en su servidor Ubuntu 10.04.

Debido a que ejecutaremos todos los pasos de este tutorial con privilegios de root, podemos anteponer todos los comandos en este tutorial con la cadena sudo, o convertirnos en root ahora mismo escribiendo

sudo su 

2 Instalación de ClamAV

ClamAV se puede instalar de la siguiente manera:

aptitude install clamav clamav-daemon libclamav-dev

Ahora debemos reconfigurar ClamAV para que Clamd use conexiones TCP en lugar de un socket local de Unix. Se recomienda enfáticamente que se eviten las conexiones de socket Unix cuando se usa la función Chroot de ProFTPd (DefaultRoot ~). La razón es que si mod_clamav necesita conectarse a Clamd, el socket Unix no está disponible en el entorno chroot.

Ejecutar

dpkg-reconfigure clamav-base

... y responda estas preguntas de la siguiente manera (acepte los valores predeterminados para todas las demás preguntas):

Tipo de socket:<-- TCP
Puerto TCP clamd escuchará en:<-- 3310
Dirección IP clamd escuchará en:<-- 127.0.0.1

Luego reinicie Clamd y freshclam:

/etc/init.d/clamav-daemon restart
/etc/init.d/clamav-freshclam restart

Ahora corre

netstat -tap | grep clamd

... y debería ver que Clamd está escuchando en localhost a través de TCP:

[correo electrónico protegido]:~# netstat -tap | grep clamd
tcp        0      0 localhost.localdom:3310 *:*                     ESCUCHA      7911/clamd
[email protected]:~#

3 Reconstruyendo ProFTPd

Desafortunadamente, mod_clamav no es parte de ProFTPd de forma predeterminada y no hay un paquete de Ubuntu para mod_clamav, por lo que tenemos que reconstruir ProFTPd con mod_clamav. Usaré el paquete fuente de Ubuntu de ProFTPd y crearé nuevos paquetes ProFTPd .deb con soporte mod_clamav.

Primero instalamos todos los paquetes necesarios para reconstruir ProFTPd:

aptitude build-dep proftpd-dfsg

También necesitamos los siguientes paquetes:

aptitude install libpam-devdpkg-dev libmysqlclient-dev debhelper libpq-dev libldap2-dev libwrap0-dev libcap2-dev autotools-dev libncurses5-dev dpatch libacl1-dev libattr1-dev unixodbc-dev libsqlite3-dev

Ahora descargamos el paquete fuente de ProFTPd a /usr/src:

cd /usr/src
apt-get source proftpd-dfsg

A continuación descargamos mod_clamav a /usr/src y lo descomprimimos:

wget --no-check-certificate https://secure.thrallingpenguin.com/redmine/attachments/download/1/mod_clamav-0.11rc.tar.gz
tar xzvf mod_clamav-0.11rc.tar.gz

Luego copiamos los archivos mod_clamav-0.11rc/mod_clamav.* al directorio proftpd-dfsg-1.3.2c/contrib...

cp mod_clamav-0.11rc/mod_clamav.* proftpd-dfsg-1.3.2c/contrib

... y parchear las fuentes de ProFTPd:

cd proftpd-dfsg-1.3.2c
parche -p1 <../mod_clamav-0.11rc/proftpd.patch

A continuación debemos editar debian/rules:

vi debian/rules

Busque la sección CONF_ARGS y agréguele --with-modules=mod_clamav:

Ahora podemos reconstruir ProFTPd:

dpkg-buildpackage

Ahora subimos un directorio, ahí es donde se han creado los nuevos paquetes .deb:

cd .. 

El comando

ls -l 

te muestra los paquetes disponibles:

[email protected]:/usr/src# ls -l
total 7500
drwxr-xr-x 24 root root    4096 2010-04-29 14:00 linux-headers-2.6.32-21
drwxr-xr-x  7 raíz raíz    4096 2010-04-29 14:00 linux-headers-2.6.32-21-server
drwxr-xr-x  2  501  501    4096 2009-04-20 10 :22 mod_clamav-0.11rc
-rw-r--r--  1 root src     5115 2010-10-04 17:21 mod_clamav-0.11rc.tar.gz
-rw-r--r --  1 root src   930578 2010-10-04 17:38 proftpd-basic_1.3.2c-1_amd64.deb
-rw-r--r--  1 root src   630168 2010-10-04 17:38 proftpd -dev_1.3.2c-1_amd64.deb
drwxr-xr-x 14 raíz raíz    4096 2010-10-04 17:37 proftpd-dfsg-1.3.2c
-rw-r--r-- 1 root src     4522 2010-10-04 17:38 proftpd-dfsg_1.3.2c-1_amd64.changes
-rw-r--r--  1 root src    98674 2010-10-04 17:30 proftpd-dfsg_1 .3.2c-1.diff.gz
-rw-r--r--  1 root src     1138 2010-10-04 17:30 proftpd-dfsg_1.3.2c-1.dsc
-rw -r--r--  1 root src  3018899 2009-12-22 07:05 proftpd-dfsg_1.3.2c.orig.tar.gz
-rw-r--r--   1 root src  1408070 2010- 10-04 17 :38 proftpd-doc_1.3.2c-1_all.deb
-rw-r--r--  1 root src   315326 2010-10-04 17:38 proftpd-mod-ldap_1.3.2c-1_amd64.deb
-rw-r--r--  1 root src   305076 2010-10-04 17:38 proftpd-mod-mysql_1.3.2c-1_amd64.deb
-rw-r--r--  1 root src   306848 2010-10-04 17:38 proftpd-mod-odbc_1.3.2c-1_amd64.deb
-rw-r--r--  1 root src   304762 2010-10-04 17:38 proftpd- mod-pgsql_1.3.2c-1_amd64.deb
-rw-r--r--  1 root src   304634 2010-10-04 17:38 proftpd-mod-sqlite_1.3.2c-1_amd64.deb
[correo electrónico protegido]:/usr/src#

Podemos instalar los nuevos paquetes ProFTPd .deb de la siguiente manera:

dpkg -i proftpd*.deb 

4 Configuración de ProFTPd

Ahora debemos configurar ProFTPd para usar mod_clamav siempre que se cargue un archivo. Abra /etc/proftpd/proftpd.conf...

vi /etc/proftpd/proftpd.conf

... y agrega la estrofa


   ClamAV en
   ClamServer 127.0.0.1
   ClamPort 3310

en algún lugar, por ej. debajo de


AdminControlsEngine apagado

sección:

[...]
CONF_ARGS := --prefix=/usr \
             --with-includes=$(shell pg_config --includedir):$(shell mysql_config --include|sed -e 's/-I//') \
             --mandir=/usr/share/man --sysconfdir=/etc/$(NAME) --localstatedir=/var/run --libexecdir=/usr/lib/$(NAME) \
             --enable-sendfile --enable-facl --enable-dso --enable-autoshadow --enable-ctrls --with-modules=mod_readme \
             --enable-ipv6 --enable-nls --with-modules=mod_clamav
[...]

Reiniciar ProFTPd:

/etc/init.d/proftpd restart

Ahora comprueba si mod_clamav está cargado ejecutando:

proftpd -vv

mod_clamav debe aparecer en la salida:

[email protected]:~# proftpd -vv
Versión de ProFTPD: 1.3.2c (mantenimiento)
  Versión del marcador: 01040002
  Construido: Lunes 4 de octubre 17:34:10 CEST 2010

Módulos cargados:
  mod_ifsession/1.0
  mod_dynmasq/0.2.1
  mod_wrap2_file/1.2
  mod_wrap2/2.0.6
  mod_ban/0.5.3
  mod_load/1.0.1
  mod_rewrite/0.7
  mod_wrap.c
  mod_quotatab_radius.c
  mod_quotatab_file.c
  mod_quotatab/1.3.0
  mod_radius /0.9
  mod_tls/2.2.2
  mod_ctrls_admin/0.9.5
  mod_lang/0.9
  mod_ctrls/0.9.4
  mod_cap/1.0
  mod_clamav.c
  mod_auth_pam/1.1
  mod_ident/1.0
  mod_dso/0.4
  mod_facts/0.1
  mod_delay/0.6
  mod_site.c
  mod_log.c
  mod_ls.c
  mod_auth.c
  mod_auth_file/0.8.3
  mod_auth_unix.c
  mod_xfer.c
  mod_core.c
[email protected ]:~#

¡Eso es todo! Ahora, cada vez que alguien intente cargar malware en su servidor a través de ProFTPd, se eliminarán los archivos "malos". Puede probarlo descargando el virus de prueba Eicar desde http://www.eicar.org/anti_virus_test_file.htm; intente cargarlo en su servidor ProFTPd y, si todo va bien, debe eliminarlo:

5 Enlaces

  • ProFTPd:http://www.proftpd.org/
  • mod_clamav:http://www.thrallingpenguin.com/resources/mod_clamav.htm
  • ClamAV:http://www.clamav.net/
  • Ubuntu:http://www.ubuntu.com/

Ubuntu
  1. Cómo integrar ClamAV en PureFTPd para escanear virus en Ubuntu 12.10

  2. Cómo integrar ClamAV en PureFTPd para escanear virus en Debian Squeeze

  3. Cómo integrar ClamAV en PureFTPd para escanear virus en CentOS 6.2

  4. Cómo integrar ClamAV en PureFTPd para escanear virus en CentOS 7

  5. Cómo integrar ClamAV en PureFTPd para escanear virus en Fedora 18

Cómo instalar software a través de Flatpak en Ubuntu

Cómo instalar CMake en Ubuntu 20.04 LTS

Cómo instalar ProFTPD en Ubuntu 20.04

Cómo instalar ClamTk:una interfaz para ClamAV (Clam Antivirus) en Ubuntu 20.04

Cómo instalar ClamAV en Ubuntu 18.04 LTS

Cómo instalar ClamAV en Ubuntu 20.04 LTS

    [...]
    <IfModule mod_ctrls_admin.c>
    AdminControlsEngine off
    </IfModule>
    
    <IfModule mod_clamav.c>
       ClamAV on
       ClamServer 127.0.0.1
       ClamPort 3310
    </IfModule>
    
    #
    # Alternative authentication frameworks
    #
    #Include /etc/proftpd/ldap.conf
    #Include /etc/proftpd/sql.conf
    [...]