Servicio de correo basado en qmail: SMTP - AÑADIENDO SOPORTE ANTIVIRUS
Artículo creado por FreeBSD. Extraido de: http://max.bandaancha.st/files/docs/servicio-smtp.html
14 de Noviembre de 2005
Servidores de correo
7 - AÑADIENDO SOPORTE ANTIVIRUS
El siguiente paso es opcional, ya que añadiremos soporte antivirus a nuestro servidor. Si alguien considera que no necesita esta carácterística, puede saltarse este apartado.
En este momento vamos a realizar una pequeña aclaración para evitar disgustos posteriores. Un sistema de escaneo de emails es algo que no se recomienda tener instalado en la misma máquina de entrada de mensajes o donde se realicen otros servicios. Simplemente porque el gasto de CPU y memoria puede llegar a ser muy alto. Esto puede acarrear una disminución de rendimiento considerable en los servicios. De hecho, en cualquier sistema de correo real que incluya esta característica y haya sido diseñado con un mínimo de delicadeza, estas tareas se realizan en máquinas de dedicación exclusiva.
Como viene siendo común en este documento, sólo se trata la instalación del sistema sin entrar tanto en detalle en la administración y ciertas partes de la configuración del mismo. De nuevo recae sobre el lector aprender a configurar y administrar aquellas partes del sistema que crea oportunas.
Podemos escanear los emails que circulen a través de nuestro servidor con una herramienta antivirus y con él contribuir a que éstos no se extiendan por la Internet. Una opción gratuita es Clam Antivirus (http://www.clamav.org∞). Si utilizamos este antivirus con alguna herramienta que permita interceptar los emails en el servidor y escanearlos, podríamos sanear los mensajes que circulen. Para ello hemos instalado el parche qmailqueue, que junto con la herramienta qmail-scanner va a hacer realidad este hecho.
Más tarde nos ocuparemos de todo esos asuntos, de momento sólo vamos a centrarnos en la instalación del antivirus Clam. Obtemos el programa desde http://www.clamav.org/stable/clamav-0.60.tar.gz∞ y lo colocamos en algún lugar de nuestro árbol de directorios (por ejemplo, /usr/local/src). Primero debemos crear un usuario y un grupo que llamaremos clamav. Introducimos las siguientes órdenes:
LINUX
shell#> groupadd clamav
shell#> useradd -g clamav clamav -d /nonexistent -s /sbin/nologin
FREEBSD
shell#> pw groupadd -n clamav
shell#> pw useradd -n clamav -g clamav -d /nonexistent -s /sbin/nologin
shell#> tar zxfv clamav-0.60.tar.gz
shell#> cd clamav-0.60
shell#> ./configure
shell#> make
shell#> make install
A continuación vamos a realizar una prueba escaneando las fuentes de clamav para ver si encontramos algún virus. Para ello nos colocamos en el directorio /usr/local/src (el supuesto directorio donde estamos descargando todas las fuentes de los programas) y tecleamos:
shell#> clamscan -r -l scan.txt clamav-0.60
Hemos creado un archivo (scan.txt) donde se registrará la salida del escaneo y podemos verficar que se han encontrado 4 ficheros infectados.
Es importante mantener el antivirus al día. Podemos actualizar el antivirus vía Internet mediante el programa freshclam. Sería interesante crear una tarea cron para que el antivirus se actualice automáticamente diariamente. Decir por último que el archivo de configuración se encuentra en /usr/local/etc/clamav.conf
El siguiente paso es instalar el soporte necesario para que los mensajes de correo puedan ser escaneados antes de ser introducidos en la cola de qmail. Es necesario tener soporte Perl en nuestro sistema , bajo la responsabilidad de cada uno queda dotar al sistema de esta funcionalidad si no la tiene. Muchas sistemas consideran que es raro necesitar correr script Perl con soporte suid. Para poder correr en nuestro sistema el controlador de spam y virus necesitamos dicha opción. Existen paquetes precompilados para algunos sistemas con esta opción activada, en caso contrario necesitariamos instalar desde los fuentes activando dicha opción. Podemos comprobar si nuestra distribución de Perl tiene este soporte verificando la existencia del archivo /usr/bin/suidperl. En el caso de Debian 3.0 r0 (a modo de ejemplo) esta opción no viene activada por defecto, para conseguirlo bastaría con introducir la siguiente orden:
shell#> apt-get install perl-5.6-suid
Además, es posible que necesitemos modificar los permisos del ejecutable (piensa en las posibles consecuencias de seguridad que pueden tener las siguientes órdenes):
shell#> chown root /usr/bin/suidperl
shell#> chmod 4711 /usr/bin/suidperl
El motor de nuestro sistema antivirus y antispam será qmail-scanner, el cual necesita que se instalen ciertos componentes previos a su instalación:
shell#> perl -MCPAN -e 'install Time::HiRes'
shell#> perl -MCPAN -e 'install DB_File' (suele venir instalado)
shell#> perl -MCPAN -e 'install Sys::Syslog' (suele venir instalado)
A continuación debemos obtener Maildrop desde http://prdownloads.sourceforge.net/courier/maildrop-1.5.3.tar.bz2∞
shell#> bzunzip2 maildrop-1.5.3.tar.bz2
shell#> tar xfv maildrop-1.5.3.tar
shell#> cd maildrop-1.5.3
shell#> ./configure
shell#> make
shell#> make install-strip
shell#> make install-man (si queremos instalar las páginas de manual)
Opcionalmente podemos instalar TNEF unpacker con el fin de decodificar ciertos attachments propios de Microsoft y así detectar ciertos virus. Este software lo podemos obtener desde http://prdownloads.sourceforge.net/tnef/tnef-1.2.1.tar.gz∞
shell#> tar zxfv tnef-1.2.1.tar.gz
shell#> cd tnef-1.2.1
shell#> ./configure
shell#> make
shell#> make check
shell#> make install
Nuestro antivirus va a escanear archivos comprimidos, por lo que en nuestro sistema es recomendable que tengamos instalado unzip, uno de los sistemas de compresión más usado en los sistemas Windows.
FREEBSD
shell#> cd /usr/ports/archiver/unzip
shell#> make clean install clean
LINUX
Primero se debe descargar el binario apropiado para nuestro sistema desde http://www.info-zip.org∞. Descomprimir y colocar en nuestro árbol de directorios.
shell#> wget http://sunsite.cnlab-switch.ch/ftp/mirror/infozip/UNIX/LINUX/unz550x-glibc.tar.gz--- ∞ shell#> tar zxfv unz550x-glibc.tar.gz
shell#> cd unzip-5.50
shell#> mv funzip unzip unzipsfx zipgrep zipinfo /usr/local/bin
shell#> mv funzip.1 unzip.1 unzipsfx.1 zipgrep.1 zipinfo.1 /usr/local/man/man1
Suele venir en los CDs de las distribuciones, por lo que suele ser más sencillo instalarlo mediantes los sistemas de gestión de paquetes propios de la distribución. Dada la diversidad de distribuciones, se dejará bajo la responsabilidad y habilidad de cada uno la instalación de este paquete.
Ahora ya estamos preparados para instalar qmail-scanner en nuestro sistema. Lo podemos obtener desde http://prdownloads.sourceforge.net/qmail-scanner/qmail-scanner-1.16.tgz∞. Lo colocamos en algún lugar de nuestro árbol de directorios y escribimos:
shell#> tar zxfv qmail-scanner-1.16.tgz
shell#> cd qmail-scanner-1.16
shell#> ./configure --admin root --domain nombreDeMiMaquina.miDominio.com \
--local-domains “nombreDeMiMaquina.miDominio.com,miDominio.com” --lang es_ES --install
NOTA 1: Si tuvieramos más dominios locales, deberían nombrarse en la opción --local-domains
Ya está todo preparado en nuestro sistema, sin embargo debemos decirle a qmail que utilice nuestro soporte antivirus. Para esto fue por lo que instalamos el parche qmailqueue. Este parche provoca que qmail verifique la existencia de la variable de entorno QMAILQUEUE. Si esta existe, cada mensaje en lugar de ser introducido en la cola, se le pasa al programa que especifique la variable de entorno.
Por ello debemos crear dos variables de entorno a cargar por nuestros servicios qmail-send y qmail-smtp. Para ello hacemos lo siguiente:
shell#> echo '/var/qmail/bin/qmail-scanner-queue.pl' > /usr/local/service/qmail-send/env/QMAILQUEUE
shell#> echo '/var/qmail/bin/qmail-scanner-queue.pl' > /usr/local/service/qmail-smtp/env/QMAILQUEUE
shell#> svc -h /service/qmail-send
shell#> svc -h /service/qmail-smtp
Ahora podemos comprobar si nuestro sistema de verdad tiene protección antivirus. Para ello realizaremos el test que se incluye con qmail-scanner. Este test envía cuatro mensajes: el primero no está infectado, el segundo y tercero portan virus, y el cuarto es claro mensaje de spam. El cuarto mensaje se realiza por si tenemos instalado en nuestro sistema un programa que chequee los contenidos de los mensajes en busca de posibles correo basura, como por ejemplo spamassassin. Esta funcionalidad no será cubierta en este documento. Para realizar el test tecleamos los siguiente:
shell#> cd contrib
shell#> ./test_instalation.sh -doit
El test ha introducido en nuestro sistema de correo los cuatro mensajes que se comentaba antes. Ahora debemos comprobar que estos mensajes han sido detectados por el sistema. Para ello nos dirigimos a /usr/local/vpopmail/domains/miDominio.com/postmaster/Maildir/new. Allí podemos leer el contenido de los mensajes mediante las herramientas more o less. El primer de los mensajes está completamente limpio; el segundo y tercero contienen un virus que será detectado por el sistema; el último es un ejemplo de correo basura.
Esta entrega se realiza de manera local. Si cuando probemos entregas a través de SMTP obtenemos un error de falta de memoria para el proceso, debemos aumentar el valor de memoria asignada por softlimit en el script de arranque del servicio (que pusimos a 8000000).
Tu sistema ya está dotado de un servicio SMTP completo. En los siguientes documentos de esta serie se añadirán nuevos servicios y funcionalidades que pueden ser interesantes.
Los pasos seguidos en este documento han sido probados sobre Debian GNU/Linux 3.0r0 y Unix FreeBSD 4.8 Release. El documento debería ser válido para cualquier distribución Linux o cualquier versión o rama de FreeBSD.
Agradecería que todo el mundo que haya leído o seguido el documento y haya encontrado algún fallo en su contenido o alguna parte que no considere afortunada ponga un comentarío debajo del mismo.
En este momento vamos a realizar una pequeña aclaración para evitar disgustos posteriores. Un sistema de escaneo de emails es algo que no se recomienda tener instalado en la misma máquina de entrada de mensajes o donde se realicen otros servicios. Simplemente porque el gasto de CPU y memoria puede llegar a ser muy alto. Esto puede acarrear una disminución de rendimiento considerable en los servicios. De hecho, en cualquier sistema de correo real que incluya esta característica y haya sido diseñado con un mínimo de delicadeza, estas tareas se realizan en máquinas de dedicación exclusiva.
Como viene siendo común en este documento, sólo se trata la instalación del sistema sin entrar tanto en detalle en la administración y ciertas partes de la configuración del mismo. De nuevo recae sobre el lector aprender a configurar y administrar aquellas partes del sistema que crea oportunas.
Podemos escanear los emails que circulen a través de nuestro servidor con una herramienta antivirus y con él contribuir a que éstos no se extiendan por la Internet. Una opción gratuita es Clam Antivirus (http://www.clamav.org∞). Si utilizamos este antivirus con alguna herramienta que permita interceptar los emails en el servidor y escanearlos, podríamos sanear los mensajes que circulen. Para ello hemos instalado el parche qmailqueue, que junto con la herramienta qmail-scanner va a hacer realidad este hecho.
Más tarde nos ocuparemos de todo esos asuntos, de momento sólo vamos a centrarnos en la instalación del antivirus Clam. Obtemos el programa desde http://www.clamav.org/stable/clamav-0.60.tar.gz∞ y lo colocamos en algún lugar de nuestro árbol de directorios (por ejemplo, /usr/local/src). Primero debemos crear un usuario y un grupo que llamaremos clamav. Introducimos las siguientes órdenes:
LINUX
shell#> groupadd clamav
shell#> useradd -g clamav clamav -d /nonexistent -s /sbin/nologin
FREEBSD
shell#> pw groupadd -n clamav
shell#> pw useradd -n clamav -g clamav -d /nonexistent -s /sbin/nologin
shell#> tar zxfv clamav-0.60.tar.gz
shell#> cd clamav-0.60
shell#> ./configure
shell#> make
shell#> make install
A continuación vamos a realizar una prueba escaneando las fuentes de clamav para ver si encontramos algún virus. Para ello nos colocamos en el directorio /usr/local/src (el supuesto directorio donde estamos descargando todas las fuentes de los programas) y tecleamos:
shell#> clamscan -r -l scan.txt clamav-0.60
Hemos creado un archivo (scan.txt) donde se registrará la salida del escaneo y podemos verficar que se han encontrado 4 ficheros infectados.
Es importante mantener el antivirus al día. Podemos actualizar el antivirus vía Internet mediante el programa freshclam. Sería interesante crear una tarea cron para que el antivirus se actualice automáticamente diariamente. Decir por último que el archivo de configuración se encuentra en /usr/local/etc/clamav.conf
El siguiente paso es instalar el soporte necesario para que los mensajes de correo puedan ser escaneados antes de ser introducidos en la cola de qmail. Es necesario tener soporte Perl en nuestro sistema , bajo la responsabilidad de cada uno queda dotar al sistema de esta funcionalidad si no la tiene. Muchas sistemas consideran que es raro necesitar correr script Perl con soporte suid. Para poder correr en nuestro sistema el controlador de spam y virus necesitamos dicha opción. Existen paquetes precompilados para algunos sistemas con esta opción activada, en caso contrario necesitariamos instalar desde los fuentes activando dicha opción. Podemos comprobar si nuestra distribución de Perl tiene este soporte verificando la existencia del archivo /usr/bin/suidperl. En el caso de Debian 3.0 r0 (a modo de ejemplo) esta opción no viene activada por defecto, para conseguirlo bastaría con introducir la siguiente orden:
shell#> apt-get install perl-5.6-suid
Además, es posible que necesitemos modificar los permisos del ejecutable (piensa en las posibles consecuencias de seguridad que pueden tener las siguientes órdenes):
shell#> chown root /usr/bin/suidperl
shell#> chmod 4711 /usr/bin/suidperl
El motor de nuestro sistema antivirus y antispam será qmail-scanner, el cual necesita que se instalen ciertos componentes previos a su instalación:
shell#> perl -MCPAN -e 'install Time::HiRes'
shell#> perl -MCPAN -e 'install DB_File' (suele venir instalado)
shell#> perl -MCPAN -e 'install Sys::Syslog' (suele venir instalado)
A continuación debemos obtener Maildrop desde http://prdownloads.sourceforge.net/courier/maildrop-1.5.3.tar.bz2∞
shell#> bzunzip2 maildrop-1.5.3.tar.bz2
shell#> tar xfv maildrop-1.5.3.tar
shell#> cd maildrop-1.5.3
shell#> ./configure
shell#> make
shell#> make install-strip
shell#> make install-man (si queremos instalar las páginas de manual)
Opcionalmente podemos instalar TNEF unpacker con el fin de decodificar ciertos attachments propios de Microsoft y así detectar ciertos virus. Este software lo podemos obtener desde http://prdownloads.sourceforge.net/tnef/tnef-1.2.1.tar.gz∞
shell#> tar zxfv tnef-1.2.1.tar.gz
shell#> cd tnef-1.2.1
shell#> ./configure
shell#> make
shell#> make check
shell#> make install
Nuestro antivirus va a escanear archivos comprimidos, por lo que en nuestro sistema es recomendable que tengamos instalado unzip, uno de los sistemas de compresión más usado en los sistemas Windows.
FREEBSD
shell#> cd /usr/ports/archiver/unzip
shell#> make clean install clean
LINUX
Primero se debe descargar el binario apropiado para nuestro sistema desde http://www.info-zip.org∞. Descomprimir y colocar en nuestro árbol de directorios.
shell#> wget http://sunsite.cnlab-switch.ch/ftp/mirror/infozip/UNIX/LINUX/unz550x-glibc.tar.gz--- ∞ shell#> tar zxfv unz550x-glibc.tar.gz
shell#> cd unzip-5.50
shell#> mv funzip unzip unzipsfx zipgrep zipinfo /usr/local/bin
shell#> mv funzip.1 unzip.1 unzipsfx.1 zipgrep.1 zipinfo.1 /usr/local/man/man1
Suele venir en los CDs de las distribuciones, por lo que suele ser más sencillo instalarlo mediantes los sistemas de gestión de paquetes propios de la distribución. Dada la diversidad de distribuciones, se dejará bajo la responsabilidad y habilidad de cada uno la instalación de este paquete.
Ahora ya estamos preparados para instalar qmail-scanner en nuestro sistema. Lo podemos obtener desde http://prdownloads.sourceforge.net/qmail-scanner/qmail-scanner-1.16.tgz∞. Lo colocamos en algún lugar de nuestro árbol de directorios y escribimos:
shell#> tar zxfv qmail-scanner-1.16.tgz
shell#> cd qmail-scanner-1.16
shell#> ./configure --admin root --domain nombreDeMiMaquina.miDominio.com \
--local-domains “nombreDeMiMaquina.miDominio.com,miDominio.com” --lang es_ES --install
NOTA 1: Si tuvieramos más dominios locales, deberían nombrarse en la opción --local-domains
Ya está todo preparado en nuestro sistema, sin embargo debemos decirle a qmail que utilice nuestro soporte antivirus. Para esto fue por lo que instalamos el parche qmailqueue. Este parche provoca que qmail verifique la existencia de la variable de entorno QMAILQUEUE. Si esta existe, cada mensaje en lugar de ser introducido en la cola, se le pasa al programa que especifique la variable de entorno.
Por ello debemos crear dos variables de entorno a cargar por nuestros servicios qmail-send y qmail-smtp. Para ello hacemos lo siguiente:
shell#> echo '/var/qmail/bin/qmail-scanner-queue.pl' > /usr/local/service/qmail-send/env/QMAILQUEUE
shell#> echo '/var/qmail/bin/qmail-scanner-queue.pl' > /usr/local/service/qmail-smtp/env/QMAILQUEUE
shell#> svc -h /service/qmail-send
shell#> svc -h /service/qmail-smtp
Ahora podemos comprobar si nuestro sistema de verdad tiene protección antivirus. Para ello realizaremos el test que se incluye con qmail-scanner. Este test envía cuatro mensajes: el primero no está infectado, el segundo y tercero portan virus, y el cuarto es claro mensaje de spam. El cuarto mensaje se realiza por si tenemos instalado en nuestro sistema un programa que chequee los contenidos de los mensajes en busca de posibles correo basura, como por ejemplo spamassassin. Esta funcionalidad no será cubierta en este documento. Para realizar el test tecleamos los siguiente:
shell#> cd contrib
shell#> ./test_instalation.sh -doit
El test ha introducido en nuestro sistema de correo los cuatro mensajes que se comentaba antes. Ahora debemos comprobar que estos mensajes han sido detectados por el sistema. Para ello nos dirigimos a /usr/local/vpopmail/domains/miDominio.com/postmaster/Maildir/new. Allí podemos leer el contenido de los mensajes mediante las herramientas more o less. El primer de los mensajes está completamente limpio; el segundo y tercero contienen un virus que será detectado por el sistema; el último es un ejemplo de correo basura.
Esta entrega se realiza de manera local. Si cuando probemos entregas a través de SMTP obtenemos un error de falta de memoria para el proceso, debemos aumentar el valor de memoria asignada por softlimit en el script de arranque del servicio (que pusimos a 8000000).
Tu sistema ya está dotado de un servicio SMTP completo. En los siguientes documentos de esta serie se añadirán nuevos servicios y funcionalidades que pueden ser interesantes.
Los pasos seguidos en este documento han sido probados sobre Debian GNU/Linux 3.0r0 y Unix FreeBSD 4.8 Release. El documento debería ser válido para cualquier distribución Linux o cualquier versión o rama de FreeBSD.
Agradecería que todo el mundo que haya leído o seguido el documento y haya encontrado algún fallo en su contenido o alguna parte que no considere afortunada ponga un comentarío debajo del mismo.
Valora este capítulo:
Autor y licencia de 'Servicio de correo basado en qmail: SMTP - AÑADIENDO SOPORTE ANTIVIRUS'
|
Opiniona sobre 'Servicio de correo basado en qmail: SMTP - AÑADIENDO SOPORTE ANTIVIRUS' (1)
Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.
Opina sobre este artículo |
Wikis relacionados con 'Servicio de correo basado en qmail: SMTP - AÑADIENDO SOPORTE ANTIVIRUS'
Hasta ahora sólo hemos configurado el servicio SMTP por el cual podemos enviar y recibir...
Más »
Acorde con los cambios y modernización que se han venido realizando en las Empresa a...
Más »
Partiendo del cine mudo como documento histórico y subrayando el valor artístico de la música...
Más »
Desde que existe la publicidad, los mercadologos hemos tratado de identificar a nuestros clientes reales...
Más »
Kerio mailserver es un servidor de correo que soporta los protocolos imap, pop3 y smtp....
Más »


