- Despues instalaremos tres programas más: SendMail que nos permite enviar correos
(SMTP), Dovecot nos permite recibir correos con los protocolos POP3 o IMAP y
SquirrelMail cliente de correos web para verificar el envío. Todo esto lo haremos con
el siguiente comando
- # hostname nombredelservidor.com
- Configurando Devecot
- Editamos el archivo de configuración:
- # vi /etc/dovecot/dovecot.conf
- # vi /etc/dovecot/conf.d/10-mail.conf
- mail_location = mbox:~/mail:INBOX=/var/mail/%u
- Por ultimo para terminar de configurar Dovecot editamos el archivo 10-auth.cof que
se encuentra en la misma locación que el anterior archivo quedando el comando:
- # vi /etc/dovecot/conf.d/10-auth.conf
- disable_plaintext_auth = no
- Configuración de SendMail
- # vi /etc/mail/sendmail.mc
- Con el comando m4 cambiamos el formato del archivo SendMail de .mc a .cf para
que se generen los cambios:
- Configuracion SquirrelMail
- Solo nos queda configurar SquirrelMail. Modificamos el archivo squirrelmail.conf de
la siguiente forma
- # vi /etc/httpd.conf.d/squirrelmail.conf
- Dentro del archivo de configuración cambiamos el parámetro Require a granted
quedando algo asi:
- # RewriteEngine on
- # RewriteCond %{HTTPS} !=on
- # RewriteRule (.*) https://%{HTTP_HOST}%{REQUESY_URI}
- # vi /etc/mail/local-host-names
- midominio.com
- Connect:midominio.com RELAY
- Procederemos hacer una prueba para asegurarnos que todo esta configurado
correctamento por el momento detendremos en firewall y SELinux
- # touch /home/usuario_creado/mail/.imap/INBOX
- # cd /home/usuario_creado/
- # chown usuario_creado:mail mail -R
- # ll
- total 0
- dwrx------. 3 usuario_creado mail
wget -N http://www.alcancelibre.org/al/server/AL-Server.repo \
-O /etc/yum.repos.d/AL-Server.repo
- Asumiendo que tiene configurados los almacenes YUM de Alcance Libre, instale
los paquetes spamassassin, clamav y clamav-update.
- Procedimientos
- Políticas de Selinux.
setsebool -P antivirus_use_jit 1
setsebool -P antivirus_can_scan_system 1
setsebool -P spamassassin_can_network 1
setsebool -P spamd_enable_home_dirs 1
sa-update -v
touch /etc/procmailrc
vim /etc/procmailrc
SHELL=/bin/sh
# Si desea almacenar toda la información de actividad
# de Procmail en una bitácora, descomente lo siguiente.
#LOGFILE=/var/log/procmail.log
chkconfig clamd.scan on
chkconfig spamassassin on
- En caso de que éste fuese inexistente, utilice el mandato touch para crear el
archivo /etc/procmailrc:
touch /etc/procmailrc
vim /etc/procmailrc
- Con lo anterior, tendrá una solución aceptable, barata, confiable, rápida y sencilla,
para servidores de correo electrónico con mucha carga de trabajo.
- Si, además, necesita que todos los mensajes de Spam y los mensajes infectados con
virus sean movidos automáticamente a la carpeta de correo ~/mail/Junk.
- Descargue la plantilla del archivo /etc/procmailrc desde AlcanceLibre.org, con el
contenido anterior.
wget http://www.alcancelibre.org/linux/secrets/procmailrc \
-O /etc/procmailrc
vim /etc/procmailrc
- Verifique que esté presente la siguiente configuración y realice los cambios que
considere pertinentes:
SHELL=/bin/sh
# Si desea almacenar toda la información de actividad
# de Procmail en una bitácora, descomente lo siguiente.
#LOGFILE=/var/log/procmail.log
touch /etc/skel/mail/Junk
for user in *
do
touch $user/mail/Junk
done
cd -
Configuración avanzada
Usuarios Virtuales.
touch /etc/mail/virtusertable
touch /etc/mail/genericstable
touch /etc/mail/generics-domains
vim /etc/mail/virtusertable
juan@dominio1.net juan
jose@dominio1.net jose
hugo@dominio1.net hugo
paco@dominio1.net paco
luis@dominio1.net luis
juan@dominio2.com juan
jose@dominio2.com jose
hugo@dominio2.com hugo
paco@dominio2.com paco
luis@dominio2.com luis
Para hacer que Sendmail rechace correctamente con un error 553 5.3.0 el correo
electrónico dirigido hacia cualquier cuenta ausente en el archivo /etc/mail/virtusertables,
añada lo siguiente:
Para hacer que el correo electrónico del usuario mengano salga del servidor
como webmaster@dominio1.net y que el del usuario perengano salga
como webmaster@dominio2.com, es necesario definir en el
archivo /etc/mail/genericstable, el contenido contrario del archivo /etc/mail/virtusertable.
Genere el archivo /etc/mail/genericstable:
touch /etc/mail/genericstable
mengano webmaster@dominio1.net
perengano webmaster@dominio2.com
Para efectos prácticos y salvo que se requiera que haya más de una cuenta virtual de
correo electrónico para un mismo usuario o bien, que dos o más usuarios emitan
mensajes con la misma cuenta de correo electrónico, se puede mantener sincronizados
ambos archivos, trabajando directamente con /etc/mail/virtusertable, ejecutando el
siguiente guión, el cual se encargará de pasar el texto desde el
archivo /etc/mail/virtusertable, con el orden invertido de las columnas, hacia el
archivo /etc/mail/genericstable.
do
dominio.com
dominio1.net
dominio2.com
Invariablemente los
archivos /etc/mail/virtusertable.db y /etc/mail/genericstable.db, deben actualizarse con
el contenido de /etc/mail/virtusertable y /etc/mail/genericstable, respectivamente, cada
vez que se realicen cualquier tipo de cambio, como actualizar, añadir o eliminar, cuentas de
correo virtuales.
for f in virtusertable genericstable
do
done
Encaminamiento de dominios.
Cuando se tiene un dominio de correo electrónico que recibe mucho tráfico, es conveniente
establecer redundancia en el servicio para garantizar que el correo siempre será recibido y
llegará a los buzones de correo hacia los que está destinado.
Se requieren dos servidores de correo. Uno deberá estar registrado en la zona del dominio
en el DNS como servidor de correo primario (mail.dominio.com) y otro deberá estar
registrado en la zona del dominio en el DNS como servidor de correo
secundario (mail2.dominio.com) a fin de contar con redundancia.
1. Defina en la zona de DNS de dominio.com un servidor de correo
primario (mail.dominio.com) y un servidor de correo secundario
(mail2.dominio.com)
dominio.com smtp:mail.dominio.com
dominio.com smtp:[172.16.1.50]
6. Reinicie Sendmail
Sendmail puede servir de intermediario de correo electrónico ya sea para filtrado de correo
con un antivirus, equipamiento lógico para filtrado de correo chatarra o bien como
intermediario entre una red pública y un servidor en red local. Se requieren dos servidores
de correo. Uno que será el servidor de correo intermediario (proxy.dominio.com), que de
forma obligatoria deberá estar definido en la zona de DNS del dominio como servidor de
correo primario (un registro MX) y otro que servirá como servidor de correo de destino
(mail.dominio.com).
1. El servidor de correo que funcionará como intermediario
(proxy.dominio.com) se configura normalmente, pero no añada
dominio.com en el archivo /etc/mail/local-host-names ya que de otro
modo el correo será tratado como local y jamas podrá ser entregado en el
servidor de correo de destino (mail.dominio.com).
dominio.com smtp:mail.dominio.com
dominio.com smtp:[172.16.1.50]
define(`SMART_HOST',`proxy.dominio.com')
$ nc 192.168.0.254 25
Trying 172.16.1.50...
Connected to nombre.dominio (172.16.1.50).
Escape character is '^]'.
220 nombre.dominio ESMTP Sendmail 8.13.1/8.13.1; Sun, 5 Mar 2006
21:45:51 -0600
HELO nombre.dominio
EHLO nombre.dominio
Obtendrá una salida similar a ésta y que mostrará las funciones del servidor:
QUIT
La salida completa de todo el procedimiento anterior debe lucir similar a esto (mandatos
utilizados resaltados en negrita):
[fulano@nombre ~]$ nc 172.16.1.50 25
Trying 172.16.1.50...
Connected to nombre.dominio (172.16.1.50).
Escape character is '^]'.
220 nombre.dominio ESMTP Sendmail 8.13.1/8.13.1; Sun, 5 Mar 2006
21:45:51 -0600
HELO nombre.dominio
250 nombre.dominio Hello nombre.dominio [172.16.1.50], pleased to meet
you
EHLO nombre.dominio
250-nombre.dominio Hello nombre.dominio [172.16.1.50], pleased to meet
you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5
250-DELIVERBY
250 HELP
QUIT
221 2.0.0 nombre.dominio closing connection
Connection closed by foreign host.
Pruebas de envío de correo.
Utilizando nc.
nc 172.16.1.50 25
Salude al sistema con el mandato HELO seguido del nombre del anfitrión.
HELO nombre.dominio
El servidor de correo deberá contestarle lo siguiente, a menos que especifique una cuenta
de correo con un dominio distinto a los especificados en el archivo /etc/mail/relay-
domains:
250 2.1.0 <fulano@nombre.dominio>... Sender ok
QUIT
La salida completa de todo el procedimiento anterior debe lucir similar a esto (mandatos
utilizados resaltados en negrita):
[fulano@nombre ~]$ nc 172.16.1.50 25
Trying 172.16.1.50...
Connected to nombre.dominio (172.16.1.50).
Escape character is '^]'.
220 nombre.dominio ESMTP Sendmail 8.13.1/8.13.1; Sun, 5 Mar 2006
21:58:14 -0600
HELO nombre.dominio
250 nombre.dominio Hello nombre.dominio [172.16.1.50], pleased to meet
you
MAIL FROM: <fulano@nombre.dominio>
250 2.1.0 <fulano@nombre.dominio>... Sender ok
RCPT TO: <root@nombre.dominio>
250 2.1.5 <root@nombre.dominio>... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
Hola, este es un mensaje de prueba.
.
250 2.0.0 k263wEKK006209 Message accepted for delivery
QUIT
221 2.0.0 nombre.dominio closing connection
Connection closed by foreign host.
Utilizando mutt.
Mutt, término utilizado en la lengua inglesa para referirse a perros mestizos, es un cliente
de correo electrónico (MUA o Mail User Agent) para modo texto. Incluye soporte para
color, hilos, MIME, PGP/GPG, protocolos POP3, IMAP y NNTP y para los formatos de
correo Maildir y mbox.
Basta ejecutar mutt y pulsar las teclas indicadas la interfaz de texto para realizar diversas
tareas. Para enviar un mensaje de correo electrónico siga este procedimiento:
3. Una vez iniciada la interfaz de texto de mutt, pulse la tecla «m» para
crear un nuevo mensaje.
7. Tras terminar con el editor de texto simple vi, mutt presentará una vista
previa del mensaje. Confirme que los datos son los correctos y pulse la
tecla «y» para enviar el mensaje. Si necesita cambiar alguno de éstos,
pulse «t» para cambiar el destinatario o bien pulse la tecla «s», para
cambiar el campo de asunto del mensaje.
echo -e \
| mutt \
fulano@maquina.dominio
Saludos.
COMO SE COMUNICAN LOS SERVIDORES DE CORREO
El procesamiento local que se presenta puede ser realizado en una sola máquina o partido
entre varias aplicaciones; en este segundo caso, los procesos implicados pueden compartir
archivos; aquí SMTP es usado para la transferencia de mensajes internamente, con cada uno
de los hosts configurados para usar la siguiente aplicación como un anfitrión elegante. Para
lograr la localización del servidor objetivo, el MTA divisorio tiene que usar el sistema de
nombre de dominio (DNS) para lograr la búsqueda del registro interno de cambiado de correo
conocido como registro MX para la esfera del recipiente (la parte de la dirección a la
derecha). Es en ese instante cuando el registro de MX devuelto contiene el nombre del
anfitrión objetivo.
Luego el MTA se une al servidor de cambio como un cliente SMTP. Una vez que MX acepta
el mensaje entrante, este a su vez se lo da a un agente de entrega de correo (MDA) para luego
ser llevado a la entrega de correo local. El MDA, además de entregar mensajes es también
capaz de salvar mensajes en un buzón de formato, y la recepción de correo puede ser realizada
usando muchas computadoras. Hay dos formas en que un MDA puede entregar mensajes: ya
sea enviándolos directamente al almacenamiento, o expedirlos sobre una red usando SMTP.
Una vez entregado al servidor de correo local, dicho correo es almacenado para la
recuperación de la hornada. Su recuperación se logra por medio de las aplicaciones de usuario
final, conocidas como clientes de correo electrónico, usando el Protocolo de Acceso de
Mensaje de Internet (IMAP), este protocolo que facilita tanto el acceso para enviar, como el
manejo de correo almacenado.