Este tutorial explica cómo puede integrar ClamAV en ProFTPd para escanear virus en un sistema Debian Lenny. Esto se logra a través de mod_clamav. Al final, siempre que se cargue un archivo a través de ProFTPd, ClamAV lo revisará 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 Debian Lenny.
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 Unix local. Se recomienda encarecidamente que se eviten las conexiones de socket Unix cuando se utiliza 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:
server1:~# netstat -tap | grep clamd
tcp 0 0 localhost.localdom:3310 *:* LISTEN 29430/clamd
server1:~#
3 Reconstruyendo ProFTPd
Desafortunadamente, mod_clamav no es parte de ProFTPd por defecto, y no hay un paquete Debian para mod_clamav, así que tenemos que reconstruir ProFTPd con mod_clamav. Usaré el paquete fuente de Debian 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
También necesitamos el siguiente paquete (que no se instala con el comando anterior por alguna razón...):
aptitude install libpam-dev
Ahora descargamos el paquete fuente de ProFTPd a /usr/src:
cd /usr/src
apt-get source proftpd
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.1/contrib...
cp mod_clamav-0.11rc/mod_clamav.* proftpd-dfsg-1.3.1/contrib
... y parchear las fuentes de ProFTPd:
cd proftpd-dfsg-1.3.1
patch -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:
[...] 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 [...] |
[...] <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 [...] |