¿Tienes una cuenta? identificate: Usuario Contraseña o puedes obtener una gratis.

ToRo Blog

¡Al pesebre... fieras!

06
febrero
2008

qmail+vpopmail+roaming users+dovecot (POP3/IMAP)+spamdyke

O como instalar un servidor de correo en RHEL (RedHat Enterprise Linux) 4.
Resulta que hace días cambiamos de hosting, y después de pelearme con varias cosas como la administración del sistema (al ser compartido con dos amigos) lo verdaderamente bueno fue para configurar el correo electrónico.

Lo que necesitaba

# Servidor con soporte de correo con usuarios virtuales (no del sistema).
# No recibir mucho spam… al día a una cuenta de ymipollo me llegaban unos 200 mails de correo basura.
# Que tuviera acceso vía POP3, IMAP, que no aceptara relay y tuviera webmail compatible.
# Una nieve de limón.

Requisitos previos de instalación.

  1. MySQL, server, shared-libs, devel y client
  2. Obviamente apache y php con soporte de imap (si es que se requiere acceso desde web), los pasos para compilar php fueron:


./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-force-cgi-redirect --with-config-file-path=/etc --with-zlib --enable-exif --with-gd=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf --with-gettext=/usr --enable-mbstring --with-mysql=/usr --with-mysqli=/usr/bin/mysql_config --enable-sqlite-utf8 --with-curlwrappers --with-openssl=/usr --enable-zip --with-curl=/usr --with-imap=/usr --with-imap-ssl --with-kerberos

Instalando


Así que después de mucho batallar con postfix decidí que era mejor dejarlo por la paz e instalar lo que conozco: qmail. La instalación es muy sencilla siguiendo los pasos de “Life with qmail”.


El segundo paso fue instalar vpopmail, lo cual está muy sencillo siguiendo las instrucciones del INSTALL.mysql, los datos que use para compilar fueron:


./configure --enable-logging=p --disable-passwd --enable-clear-passwd --enable-auth-module=mysql --disable-domain-quotas --enable-auth-logging --enable-roaming-users --enable-vpopuser=vpopmail --enable-vpopgroup=vchkpw --enable-relay-clear-minutes=180


Una vez probada la instalación y funcionando, instalamos spamdyke con las instrucciones del mismo paquete y modificamos la forma en que arranca el servicio de SMTP, editando /service/qmail-smtpd/run de tal forma que la línea que arranca SMTP quede más o menos así:

exec /usr/local/bin/softlimit -m 200000000 /usr/local/bin/tcpserver -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /usr/local/bin/spamdyke -f /etc/spamdyke.conf /var/qmail/bin/qmail-smtpd 2>&1

El tamaño en softlimit dependerá de la memoria que se tenga, aquí cuidado porque con los datos por defecto simplemente se muere el programa spamdyke y después de horas de buscar cambiando el tamaño pude arreglarlo.

En /etc/spamdyke.conf tengo:

log-level=3
local-domains-file=/var/qmail/control/rcpthosts
max-recipients=50
idle-timeout-secs=60
graylist-dir=/home/vpopmail/graylist
graylist-min-secs=300
graylist-max-secs=1814400
greeting-delay-secs=5
reject-missing-sender-mx
reject-empty-rdns
check-dnsrbl=zombie.dnsbl.sorbs.net
check-dnsrbl=dul.dnsbl.sorbs.net
check-dnsrbl=bogons.cymru.com

Así que tengo graylisting, dnsrbl, rdns y que tengan MX asignado. No me extenderé mas en esto pero cabe señalar que esto detiene un 95% del spam y aproximadamente 1% de correos “buenos” (generalmente que no siguen los protocolos de correo).

Ahora para que inicie el servicio de dovecot (lo compilé manual, opciones predefinidas nada en especial) hay que decirle que levante pop3 e imap, de otra forma solo levantará IMAP aunque el servicio de pop esté configurado, eso también me dio lata durante horas.
Así quedó mi configuración:

protocols = imap pop3
disable_plaintext_auth = no
ssl_disable = yes
ssl_cert_file = /etc/pki/dovecot/certs/dovecot.pem
ssl_key_file = /etc/pki/dovecot/private/dovecot.pem
mail_location = maildir:/home/vpopmail/domains/%d/%n/Maildir
first_valid_uid = 89
protocol imap {
mail_executable = /home/COMUN/scripts/updateRelay /usr/local/libexec/dovecot/imap
listen = *:143
}
protocol pop3 {
login_executable = /usr/local/libexec/dovecot/pop3-login
listen = *:110
mail_executable = /home/COMUN/scripts/updateRelay /usr/local/libexec/dovecot/pop3
pop3_uidl_format = %08Xu%08Xv
}
protocol lda { postmaster_address = postmaster example.com }
auth_cache_size = 1000
auth_cache_ttl = 3600
auth_verbose = no
auth_debug = no
auth default {
mechanisms = plain
passdb vpopmail { }
userdb vpopmail { }
}
dict { }
plugin { }


Notar el archivo /home/COMUN/scripts/updateRelay, no es mas que un script para loggear el ip con el que se identifican para tener identificados de donde entran, de esa forma podemos utilizando el archive /home/vpopmail/bin/clearopensmtp para regenerar y limpiar los ips que pueden hacer relay… si es una forma poco limpia de hacerlo, pero funciona y además fue tomada de un ejemplo. Aquí el contenido del script:

(
IP=`echo $IP | grep -v '^192.168.'`
TD=`date +%s`;
if [ -n "$IP" ]
then
export HOME=/root/
echo "replace into relay VALUES('$IP','$TD');" | mysql vpop -u vpopr
export HOME=/
fi
) >> /var/log/maillog 2>&1
exec "$@"

Y creo que ya… nadamás tendríamos que poner a la herramienta clearopensmtp en crontab.

Referencias

* http://www.lifewithqmail.org/
* http://www.inter7.com/
* http://www.php.net/
* http://www.mysql.com/
* http://www.apache.org/
* http://www.dovecot.org/
* http://www.spamdyke.org/

Almacenado en Correo, Tutoriales, Servidores [ Enlace | 10 comentarios ] del.icio.us del.icio.us Estrella este post *****
comparte esto
Comparte esta entrada (del.icio.us, por correo, etc) o agrega este blog a tu Google Reader.

Entradas relacionadas:
  1. Confirmado en el Siglo de Torreón
  2. Servidor de correo
  3. Novell GroupWise
  4. Moto RZRZ K1
  5. IMAP con groupwise

Han escrito 10 comentarios de «qmail+vpopmail+roaming users+dovecot (POP3/IMAP)+spamdyke»

foto Eskarabajo
Miércoles 06 de febrero, 2008 20:55.

esta es una de las pocas veces que podran leer algo de mi diciendo “Bendito Lotus Notes”

Es nuestro servidor de Correos
la administración e instalación es realmente muy sencilla.
aun que la programación en lotus Designer siga siendo de weba

foto germangv
Miércoles 06 de febrero, 2008 20:55.

Estem… muy sencillo mira… no le entiendo ni maiz jajaja!!! eso del SQL nunca se me dio :s suerte.

foto germangv
Miércoles 06 de febrero, 2008 20:55.

NOTA: Cómo chingao regreso a la pagina principal del pollo??.... ah! ya vi gracias :D

foto michelongo
Miércoles 06 de febrero, 2008 20:55.

soy administrador de correo exchange y es mas simple la configuracion todo con ventanitas y todo lo que lleva microsoft…referente a los SPAM como los detienes. por ip por direccion por dominio o simplemente se basa atraves de blacklist como exchange (claro aparte de la explicacion que ya mencionaste)...saludos..

foto ToRo
Miércoles 06 de febrero, 2008 20:56.

Si, pero cualquiera de esos sistemas cuestan aprox 150 usd por usuario… además con esta solución he implementado sistemas de correos con mas de 10 mil usuarios ;-).

foto michelongo
Miércoles 06 de febrero, 2008 22:38.

tienes razon caros y con intermitencias continuas.. excelente 10 mil guau bendito sea linux…saludos y buen administrador mis respetos

foto forever
Miércoles 06 de febrero, 2008 22:37.

Estoy verde con esto de los servidores de correo, pero me gusta picar piedra con el linux, así que con una guía como esta que pones tengo para empezar a leer, tengo el CentOS ahí, ahora necesito leer lo necesario sobre los MX records (ignoro que hacen pero sé que son importantes), y lo necesario para saber si podemos dejar de depender de Triara (telmex =/) para el correo.

Gracias!!

foto pollo666
Miércoles 06 de febrero, 2008 22:37.

y la nieve de limon??

o.O?

foto daniel
Jueves 07 de febrero, 2008 10:00.

Uhm… creo que tengo que empezar a leer un poco mas.

foto firmost
Jueves 07 de febrero, 2008 10:00.

pues como estoy hasta la madre tanto de linnux, MySQL, Apache, Java, Microsoft, tendré que ponerme a diseñar sistemas nuevos, yo no pienso usar 0 y 1 como lo hace el sistema binario, es algo realmente demasiado complicado para mentes normales como las de ustedes

Si usted tiene una cuenta en ymipollo.com, identifíquese:
Usuario: Password: (recordar identificación en este blog)
De lo contrario, escriba sus datos (todos los campos son obligatorios.):
Nombre: Correo E.:
Blog/Web: recordar datos.
[ si eres visitante puedes obtener tus comentarios con foto suscribiendote a gravatar. Tenga en cuenta que como usuario anónimo, su dirección IP será almacenada y mostrada al dueño de la entrada en cada comentario. ]
Escriba su comentario:
Por favor escriba respecto al post, procure revisar su ortografía. Si su comentario no es respecto al tema, por favor no lo haga.

Usted escribirá este mensaje como:
Es posible que su comentario no aparezca de forma inmediata (o que nunca aparezca) eso depende de la decisión del autor de este blog.

enviarme correo cuando alguien comente suscribirse a este post.