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:
[...] 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 [...] |