En un articulo anterior concretamente
Servidor de Correo Postfix con Courier y soporte Mysql
Instale un Servidor de correo Integrado en una Base de Datos Mysql , en este articulo quiero ampliar las funcionalidades del servidor con un filtro antispam que el mismo usuario podra controlar , y el antivirus Clamav.
Instalación de DSPAM
Para instalar dspam necesitaremos los repositorios de Volatile
# echo deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free >> /etc/apt/sources.list
Una vez instalados los sources autenticamos el repositorio.
# wget http://www.debian.org/volatile/etch-volatile.asc -O- | apt-key add -
Actualizamos los repositorios
# apt-get update
Instalando el Software
# apt-get install dspam dspam-doc libdspam7-drv-mysql
Nota:
- Cuando te pregunte por libdspam7-drv-mysql = YES
- Si te pregunta password para libdspam7-drv-mysql le das a OK
Configurando DSPAM
/etc/dspam/dspam.conf
Cambialo para que quede asÃ:
StorageDriver /usr/lib/dspam/libmysql_drv.so
DeliveryHost 127.0.0.1
DeliveryPort 10026
DeliveryIdent localhost
DeliveryProto SMTP
Preference "spamSubject=SPAM"
Opt out
TrackSources spam virus
ParseToHeaders on
ChangeModeOnParse on
ChangeUserOnParse off
ServerPID /var/run/dspam.pid
ServerMode auto
ServerPass.Relay1 "secret"
ServerParameters "--deliver=innocent"
ServerIdent "localhost.localdomain"
ServerDomainSocketPath "/var/spool/postfix/var/run/dspam.sock"
ClientHost /var/spool/postfix/var/run/dspam.sock
ClientIdent "secret@Relay1"
Activando la configuración para todos los Usuarios
/var/spool/dspam/group
Tiene de quedar asÃ:
dspam:shared:*.domain.com
Donde Pone domain.com lo remplazaremos por nuestro dominio.
Activando DSPAM
Para activar DSPAM modificaremos el fichero /etc/default/dspam
cambiando START=no por START=yes
Una vez hecha la modificación iniciamos DSPAM
# /etc/init.d/dspam start
Configurando Postfix
Ahora configuraremos Postfix de manera que integre dspam
modificamos el archivo /etc/postfix/master.cf
Antes:
smtp inet n - - - - smtpd
Despues:
smtp inet n - - - - smtpd
-o content_filter=lmtp:unix:/var/run/dspam.sock
Configurando postfix para reinjeccion a DSPAM
127.0.0.1:10026 inet n - - - - smtpd
-o content_filter=
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o smtpd_authorized_xforward_hosts=127.0.0.0/8
Una vez configurado reiniciamos postfix
# /etc/init.d/postfix restart
Comprobando si Postfix carga los modulos
# telnet localhost 25
Trying 127.0.0.1…
Connected to localhost.localdomain.
Escape character is ‘^]’.
220 debian.domain.com ESMTP Postfix (Debian/GNU)
ehlo localhost
250-debian.domain.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
Creando nuesto primer usuario.
Es mentira ya que lo creemos en el anterior articulo x’D
# mysql -u root -p
mysql>USE mail;
mysql> INSERT INTO `domains` (`domain`) VALUES (’domain.com’);
INSERT INTO `users` (`email`, `password`, `quota`) VALUES (’test@example.com’, ENCRYPT(’userpassword’), 10485760);
Probando DSPAM
Si no tienes bzip2 instalado normalmente esta en la distro pero por si acaso
# apt-get install bzip2
Descargamos train-mails:
# cd /tmp
# wget http://spamassassin.apache.org/publiccorpus/20050311_spam_2.tar.bz2
# wget http://spamassassin.apache.org/publiccorpus/20030228_easy_ham_2.tar.bz2
# tar xvfj 20050311_spam_2.tar.bz2
# tar xvfj 20030228_easy_ham_2.tar.bz2
# dspam_train test spam_2/ easy_ham_2/
Con esto probamos con una lista de spams si es efectivo dspam.
Instalando y configurando ClamAV
# apt-get install clamav-daemon
Una vez instalado pasamos ha modificar el archivo de configuración
/etc/clamav/clamd.conf
Comentamos la linia que pone
LocalSocket /var/run/clamav/clamd.ctl
quedando asà :
# LocalSocket /var/run/clamav/clamd.ctl
Una vez comentado añadimos la linia:
TCPSocket 3310Reiniciamos Clamav para que los cambios tengan efecto:
# /etc/init.d/clamav-daemon restart
Integrando ClamAV en DSPAM
Modificamos el archivo /etc/dspam/dspam.conf añadiendo la siguiente directiva:
ClamAVPort 3310
ClamAVHost 127.0.0.1
ClamAVResponse reject
Reiniciamos DSPAM
# /etc/init.d/dspam restart
Integrando DSPAM WebUI en Apache
Con el fin de que los usuarios puedan manejar el spam configuraremos un pequeño portal, que podran administrar nuestros usuarios.
Instalamos la administracion web.
# apt-get install dspam-webfrontend
También es necesario mod_auth_mysql de esta manera podran manejar los usuarios almacenados en la base de datos su propio espam.
# apt-get install mod_auth_mysql
Creamos el Fichero de accesso .htaccess con soporte para auth_mysql
# cd /var/www/dspam
Justo aqui creamos el fichero .htaccess con el siguiente contenido:
AuthName "DSPAM Authentication"
AuthType Basic
AuthBasicAuthoritative Off
Auth_MySQL_Host localhost
AuthMySQL_User usuario
AuthMySQL_Password Contraseña
AuthMySQL_DB mail
AuthMySQL_Password_Table users
AuthMySQL_Username_Field email
AuthMySQL_Password_Field password
AuthMySQL_Encrypted_Passwords on
AuthMySQL on
AuthMySQL_Authoritative On
require valid-user
Las partes que he puesto en negrita son el usuario y pass de acceso a la base de datos.
Creamos un Vhost /etc/apache2/apache2.conf
<VirtualHost>
DocumentRoot “/var/www/dspam”
ServerName dspam.domain.com
SuexecUserGroup dspam dspam
<Directory /var/www/dspam>
Options ExecCGI
Options -Indexes
Addhandler cgi-script .cgi
DirectoryIndex dspam.cgi
</Directory>
</VirtualHost>
Lógicamente modificaremos el Dominio por el nuestro.
Nota:Para activar el suexec haremos lo siguiente.
# cd /etc/apache2/mods-enabled
# ln -s ../mods-available/suexec.load
Reiniciamos Apache2
# /etc/init.d/apache2 restart
ahora ya podremos entrar en el dominio:
http://dspam.domain.com en el qual podremos administrar el spam.
Captura:Â

Espero que os haya gustado.