1. Skip to Menu
  2. Skip to Content
  3. Skip to Footer>

Interesante

  • Trucos para Debian
    “¡Olvidé la contraseña de superusuario!” (1)

    Es posible arrancar el sistema y acceder a la cuenta de superusuario sin conocer la contraseña siempre y cuando se tenga acceso al teclado de la consola (esto supone que ni la BIOS ni un cargador de arranque como lilo solicitan una contraseña para evitar el arranque del sistema) Este es un procedimiento que no requiere de discos de arranque externos ni cambios en los parámetros de arranque de la BIOS. Aquí, “Linux” hace referencia al kernel de Linux de la instalación predeterminada de Debian.
  • Cómo configurar Postfix Courier y MySQL Postfix Courier y MySQL

    1. ¿Por que este documento?

    Me he decidido a escribir este documento ya que los que busqué al intentar hacer la instalación de este trío no llegaron a gustarme.

  • Cómo instalar Mutt con IMAP

    En esta guía voy a explicar un poco el uso del cliente de correo mutt con el protocolo IMAP.
    mutt es un cliente de correo que soporta muchos formatos de almacenamiento de emails como mbox, Maildir, o MH. Adems de esto, mutt es capaz de conectarse a servidores POP3 e IMAP4. En esta guía tratar el soporte de IMAP en mutt.
    Lo primero de todo es instalar mutt. Dado que es posible que tengais diferentes distribuciones intentaré tratar las más posible:

  • Antivirus Clamav y Spamassassin integrados en Exim4

    Estuve pensando varias semanas cómo integrar un antivirus en mis servidores de correo. Como expliqué anterioremente, uso Exim4 y Spamassassin, así que buscaba la solución que pudiera complementarse. Obviamemte la solución anti-virus desde el primer momento era el Clam AV, pero no tenía nada claro cómo integrarlo con el el Exim y el Spamassassin.
    Empecé a buscar la documentación y las opciones posibles. Hay mucha variedad, podéis comprobarlo con Google, pero no encontraba una que me convenza del todo. Finalmente me quedé con integrar el clamav y el spamassassin usando esa especies de "integradores" como son el MailScanner y el Amavis. Antes me aseguré que el clamav y spamassassin funcionase con ambos.

  • Cómo autentificar Squid contra OpenLDAP
    Autenticando Squid contra OpenLDAP

    Dado que últimamente se esta poniendo de moda hacer uso de un Servidor de Directorios LDAP, para unificar la autenticación de varios servicios en un sistema Linux, vamos a ver una manera (no es la única, pero si la que a mi me ha funcionado) de autenticar el proxy Squid, contra OpenLDAP. Evidentemente, antes de nada, instalaremos nuestro Servicio de Directorios y migraremos los usuarios de nuestro sistema.



  • 15 mitos sobre linux
    15 mitos sobre linux

    Si uno busca en la red, puede encontrar muchos documentos en los cuales gente conocedora hace una comparación objetiva entre Linux y Windows (tanto en servidores como en estaciones de trabajo). En muchos de los documentos se exponen puntos válidos y vigentes en contra de Linux, pero en muchos otros sólo se perpetúan algunos mitos acerca de este sistema operativo. Algunas personas conocieron a Linux en los tiempos del viejo Red-Hat 6.0 y debido a esto todavía creen en ellos. Algunos de estos mitos son:

09
Nov

Antivirus Clamav y Spamassassin integrados en Exim4

Escrito por J. Llorente

PDFImprimir E-mail

Estuve pensando varias semanas cómo integrar un antivirus en mis servidores de correo. Como expliqué anterioremente, uso Exim4 y Spamassassin, así que buscaba la solución que pudiera complementarse. Obviamemte la solución anti-virus desde el primer momento era el Clam AV, pero no tenía nada claro cómo integrarlo con el el Exim y el Spamassassin.
Empecé a buscar la documentación y las opciones posibles. Hay mucha variedad, podéis comprobarlo con Google, pero no encontraba una que me convenza del todo. Finalmente me quedé con integrar el clamav y el spamassassin usando esa especies de "integradores" como son el MailScanner y el Amavis. Antes me aseguré que el clamav y spamassassin funcionase con ambos.

Luego de dar vueltas y leer una y otra vez la documentación (si, soy muy perezoso a la hora de instalar software "de pruebas" sin tener idea ni cómo se instala, hay que hacer demasiadas pruebas y seguir un guión, pero soy muy desordenado), y otra vez, y volver a Google y leerme decenas de mensajes en listas de correos. Al final me decidí por usar el Amavis.

Pero... oh sorpresa! nuevamente. No hay una versión del Amavis, ni dos, hay tres:

  1. Amavis original
  2. Amavisd-ng (next generation)
  3. Amavisd-new

La verdad es que no entiendo todavía si hay diferencia entre la primera y la segunda, en todo caso los competidores finales eran el amavisd-ng y el amavisd-new. Finalmente la decisión fue fácil: me decidí por el amavisd-new.

Instalación y configuración del Clamav

Para los que os preguntéis, sí, el clamav es totalmente libre y mantienen la base de datos actualizada. Por lo que he podido ver hasta ahora, no sólo es fiable sino que muy rápido y eficiente.

apt-get install clamav

Eso es todo lo que tuve que hacer, instala los paquetes adicionales clamav-base clamav-freshclam y libclamav1. También os recomiendo otros descompresores que suelen ser usados en algunos virus y también por el amavis para descomprimirlos. Los que yo he puesto son:

apt-get install unrar arj lha zoo lzop

Si esos paquetes están instalados, serán detectados automáticamente por el clamav y el amavis.

El clamav tiene dos paquetes importantes, el clamav-daemon que incluye lo que el título dice, o sea el demonio ;-), y el freshclam, que es otro demonio que se encarga de mantener la base de datos de "firmas" de virus actualizada. Ambos demonios deben estar siempre en marcha:

ponti:~# ps ax | grep clam

2866 ? S 0:06 /usr/bin/freshclam --daemon --checks 5

--quiet --log /var/log/clamav-freshclam.log

--datadir /var/lib/clamav/

11323 ? S 0:00 /usr/sbin/clamd

De lo anterior ya se ha encargado el proceso de instalación y configuración de Debian. No recuerdo haber hecho nada en especial, salvo dar a todo "OK" y "Yes".

Instalación y configuración del amavisd-new

La instalación es directa, como todo en Debian. Se instalan muchos paquetes de Perl adicionales necesarios (el amavisd-new está programado en Perl, pero es muy eficiente). El amavisd-new ya tiene integrado las funciones de Perl para llamar al spamassassin, por lo que ya no hace falta ejecutar el spamd si es que pasan todos por el amavis (i.e. no se llama al spamassassin desde el Exim).

Para acabar de configurar al amavis sólo hay que hacer dos cosas: editar el fichero de configuración del amavis y luego configurar el exim para que se llame el amavis con los parámetros correctos.

Configurar el amavis

vi /etc/amavis/amavisd.conf

Ahora os mostraré las líneas que he cambiado y para que sirve cada una de ellas.

$mydomain = 'gallimedina.net'; # (no useful default)

Defino el nombre del dominio, no es importante para lo funcional, simplemente que los mensajes y cabeceras de correo adicionales llevarán este nombre. Por ejemplo:
X-Virus-Scanned: by amavisd-new-20030616-p5 (Debian) at gallimedina.net

$forward_method = 'smtp:127.0.0.1:10025'; # where to forward checked mail
$notify_method = $forward_method; # where to submit notifications

Las dos líneas de arriba indican la forma de comunicación que habrá entre el amavis y el exim. En mi caso es a través del loopback de red local en el puerto 10025. Ya veremos luego como se indica eso mismo en la configuración del Exim.

$DO_SYSLOG = 1; # (defaults to false)

Quiero hacer el log a través del syslogd (en mi caso, el defecto, irá a /var/log/syslog).

$log_level = 2;

Puse este nivel para que me salgan las estadísticas de tiempo. Ahora os mostraré una, esos datos son de mi viejo portátil, un Pentium 200, que me hace de servidor hogareño de wireless, cups, DNS, smtp, dhcp, etc.

Feb 6 01:59:12 ponti amavis[11217]: (11217-01) Checking: <gallir@origen> -> <gallir@destino>
Feb 6 01:59:16 ponti amavis[11217]: (11217-01) spam_scan: hits=-4.25 tests=BAYES_00,PLING_PLING
Feb 6 01:59:16 ponti amavis[11217]: (11217-01) FWD via SMTP: [127.0.0.1:10025] <gallir@origen> -> <gallir@destino>
Feb 6 01:59:16 ponti amavis[11217]: (11217-01) Passed, <gallir@origen> -> <gallir@destino>, Message-ID: <200402060019.44177.switch;-)@tiscali.es>, Hits: -4.25
Feb 6 01:59:16 ponti amavis[11217]: (11217-01) TIMING [total 5126 ms] - SMTP EHLO: 30 (1%), SMTP pre-MAIL: 4 (0%), mkdir tempdir: 26 (1%), create email.txt: 6 (0%), SMTP pre-DATA-flush: 40 (1%), SMTP DATA: 30 (1%), body hash: 14 (0%), mkdir parts: 11 (0%), mime_decode: 274 (5%), get-file-type: 203 (4%), decompose_part: 11 (0%), parts: 0 (0%), AV-scan-1: 23 (0%), SA msg read: 25 (0%), SA parse: 49 (1%), SA check: 3705 (72%), fwd-connect: 113 (2%), fwd-mail-from: 7 (0%), fwd-rcpt-to: 304 (6%), write-header: 111 (2%), fwd-data: 6 (0%), fwd-data-end: 71 (1%), fwd-rundown: 12 (0%), unlink-1-files: 45 (1%), rundown: 4 (0%)

$final_spam_destiny = D_PASS; # (defaults to D_REJECT)

Dejo pasar los spams, ya que tengo definidas reglas en mi .procmailrc. Alerta, si vuestros correos pasan antes por otro MX "cercano" o local (por ejemplo lo bajáis con el fetchmail) no hagáis un REJECT, que estaréis tirando piedras a vuestro propio tejado. Dejadlo pasad y luego lo descaráis.

#$virus_admin = "gallir\@$mydomain";

La línea está comentada, porque no quiero que avise a ningún "administrador" que se ha detectado un virus.

#$virus_quarantine_to = 'virus-quarantine';

También está comentada, no quiero dejar los mensajes con virus en cuarentena (sino los deja en /var/lib/amavis/virusmails).

#$spam_quarantine_to = 'spam-quarantine';

Idem a la anterior.

$sa_tag_level_deflt = 4.0; # add spam info headers if at, or above that level
$sa_tag2_level_deflt = 5.0; # add 'spam detected' headers at that level

El amavis usa funciones internas para el spamassassin. Si lo habilitáis, como en mi caso, tenéis que especificar esos dos parámetros indicados (no usa el local.conf el SA). La primera indica el puntaje mínimo que debe tener un mensaje para incluir las cabeceras de "tests" del spamassasin en el mensaje. La segunda es el puntaje mínimo para que sea considerado un spam (por defecto es 6.3).

#$sa_spam_subject_tag = '***SPAM*** ';

La línea de arriba está comentada porque no quiero que agregue esas palabras el subject, uso directamente las cabeceras para filtarlas.

Ya está

Ahora lo podéis para y volver a arrancar y deberéis[*] ver líneas como las siguientes:

[*] La versión actual en Debian tiene un bug, ya lo reporté, en el restart que hace que falle. Haced primero un stop y luego el start.

amavis[11210]: starting.

amavisd-new at ponti amavisd-new-20030616-p5, Unicode aware

amavis[11210]: Perl version 5.008003

amavis[11210]: Module Amavis::Conf 1.15

amavis[11210]: Module Archive::Tar 1.03

amavis[11210]: Module Archive::Zip 1.05

amavis[11210]: Module Compress::Zlib 1.16

amavis[11210]: Module Convert::TNEF 0.17

amavis[11210]: Module Convert::UUlib 1.0

amavis[11210]: Module MIME::Entity 5.404

amavis[11210]: Module MIME::Parser 5.406

amavis[11210]: Module MIME::Tools 5.411

amavis[11210]: Module Mail::Header 1.59

amavis[11210]: Module Mail::Internet 1.59

amavis[11210]: Module Mail::SpamAssassin 2.63

amavis[11210]: Module Net::Cmd 2.24

amavis[11210]: Module Net::SMTP 2.26

amavis[11210]: Module Net::Server 0.85

amavis[11210]: Module Time::HiRes 1.52

amavis[11210]: Module Unix::Syslog 0.100

amavis[11210]: Found myself: /usr/sbin/amavisd-new -c /etc/amavis/amavisd.conf

amavis[11210]: Lookup::SQL code NOT loaded

amavis[11210]: Lookup::LDAP code NOT loaded

amavis[11210]: AMCL-in protocol code NOT loaded

amavis[11210]: SMTP-in protocol code loaded

amavis[11210]: ANTI-VIRUS code loaded

amavis[11210]: ANTI-SPAM code loaded

amavis[11211]: Net::Server: Process Backgrounded

amavis[11211]: Net::Server: 2004/02/06-01:39:23 Amavis

(type Net::Server::PreForkSimple) starting! pid(11211)

amavis[11211]: Net::Server: Binding to TCP port 10024 on host 127.0.0.1

amavis[11211]: Net::Server: Setting gid to "107 107"

amavis[11211]: Net::Server: Setting uid to "104"

amavis[11211]: Net::Server: Couldn't POSIX::setuid to "104" []

amavis[11211]: Found $file at /usr/bin/file

amavis[11211]: No $arc, not using it

amavis[11211]: Found $gzip at /bin/gzip

amavis[11211]: Found $bzip2 at /usr/bin/bzip2

amavis[11211]: Found $lzop at /bin/lzop

amavis[11211]: Found $lha at /usr/bin/lha

amavis[11211]: Found $unarj at /usr/bin/arj

amavis[11211]: Found $uncompress at /bin/uncompress

amavis[11211]: No $unfreeze, not using it

amavis[11211]: Found $unrar at /usr/bin/unrar

amavis[11211]: Found $zoo at /usr/bin/zoo

amavis[11211]: Found $cpio at /bin/cpio

amavis[11211]: Using internal av scanner code for (primary) Clam Antivirus-clamd

amavis[11211]: Found secondary av scanner Clam Antivirus - clamscan at /usr/bin/

clamscan

amavis[11211]: SpamControl: initializing Mail::SpamAssassin

Si lo anterios os sale correctamente, ya podemos pasar a lo siguiente, configurar el Exim

Configurar el Exim

Los ficheros de configuración para el exim son similares al explicado para el Spamassassin. Sólo que en vez de llamar al spamassassin, llamaremos al amavis que ya debería estar bien configurado. Las pistas para la configuración las obtuve, como no, de /usr/share/doc/amavisd-new/README.exim_v4.

ALERTA: Recordad de quitar esos ficheros de configuración si llamáis al spamassassin desde el amavis. No es cuestión de estar haciendo dos veces el mismo trabajo [ineficiente].

Tampoco hace falta el exim4 "heavy", con el "light" es suficiente. Si os funcionaba el spamassassin "corporativo", seguro que funcionará éste.

Los pasos que haremos serán, casi similares al del spamassassin:

  1. Agregar la interfaz con el puerto 10025,
  2. agregar un "router" y
  3. agregar un transport.

Agregar el puerto 10025

En Debian es fácil, hay que agregar o modificar la variable dc_local_interfaces en /etc/exim4/update-exim4.conf.conf

dc_local_interfaces='0.0.0.0.25 : 127.0.0.1.10025'

En caso que tu distro no sea Debian, en el fichero de configuración debes agregar la siguiente línea:

local_interfaces = 0.0.0.0.25 : 127.0.0.1.10025

Agregar el router

# Fichero /etc/exim4/conf.d/router/199_amavis

amavis:

driver = manualroute

# No ejecutar si se recibe desde el 10025/tcp

# o ya está analizado

condition = "${if or {{eq {$interface_port}{10025}} \

{eq {$received_protocol}{spam-scanned}} \

{eq {$sender_address}{}} \

}{0}{1}}"

# Sólo escanea los entrantes para el local

# y para los MX que se hace de relay

# Si no haceis relay, podéis quitar +relay_to_domains

domains = +local_domains : +relay_to_domains

transport = amavis

route_list = "* localhost byname"

self = send

# Fin /etc/exim4/conf.d/router/199_amavis

Si tu distro no es Debian, puedes copiar y pegar las líneas anterires en el fichero de configuración del Exim4 justo después de la línea "begin routers". El orden es importante.

Agregar el transport

# Fichero /etc/exim4/conf.d/transport/199_amavis

amavis:

driver = smtp

port = 10024

allow_localhost

# Fin /etc/exim4/conf.d/transport/199_amavis

Si tu distro no es Debian, puedes copiar y pegar las líneas anterires en el fichero de configuración del Exim4 después de la línea "begin transports". El orden no es importante.

Re-arrancar el exim

En Debian hay que ejecutar antes el comando update-exim4.conf para que genere el fichero definitivo (/var/lib/exim4/config.autogenerated) y ya podéis arrancarlo. Por supuesto tenéis que verificar que se arranque y luego enviaros un mensaje. Tenéis que ver en los logs las estadísticas tal como mostré antes y también la línea
X-Virus-Scanned: by amavisd-new-20030616-p5 (Debian) at gallimedina.net
en la cabecera del mensaje.

Nota final: los ficheros de base de datos Bayesianos del SA y otros ficheros adicionales se crean en el $HOME del usuario amavis (que lo crea el instalador en Debian). En otras distros, mirad en el $HOME del usuario del daemons del amavis.

Nada, ya está, son como las tres y media de la madrugada. A pesar que lo sabía casi de memoria me llevó dos horas y media escribir el artículo... y quién sabe los errores tipográficos horribles que tendrá, aunque he tenido mucho cuidado con los "tecnicos", de hecho hice la instalación completa un par de veces para verificar. De todas formas ya me enviaréis los parches seguramente :-).

Por Ricardo Galli Granada
gallir (http://mnm.uib.es/gallir/)

Technorati Tags:
>>

Agregue su comentario

Tu Nombre:
Asunto:
Comentario:

Últimos contenidos

Facebook conecta

Total visitas

3641345
38.107.179.233
UNITED STATES
US

Quien está en linea

Tenemos 47 invitados conectado(s)

Conectan

Locations of visitors to this page

Nos visitan desde

Últimos comentarios

Vitales Servidor