You are on page 1of 12

3 Practica Servidor de Correo en Centos Postfix

BY ADMIN 23 ABRIL 2009POSTED IN: ASAD, UNIVERSIDAD

Se va a proceder a configurar 2 sistemas en la red que tenemos asignada, el primer sistema sera el sistema principal y el 2 el sistema de reserva.

Sistema Principal 1) Obtener e instalar el servidor de correo Postfix.


Para realizar la instalacin del servidor de correo Postfix, vamos a usar la herramienta para agregar y quitar software que viene con Centos, seguimos los siguientes pasos:

Aplicaciones

Agregar/Quitar software

Servidores

Servidores de correo

Opciones adicionales

Una vez aqu seleccionamos el servidor Postfix. A continuacin aplicamos los cambios y ya tendremos el servidor instalado y el Sendmail eliminado.

2) Configurar el sistema para que se active el servicio de correo cada vez que se inicia el sistema.
Para ello vamos al men Sistema y all hacemos lo siguiente: Sistema Administracin Servicios

En la ventana que nos aparece, seleccionamos el servidor Postfix para activarlo como servicio: Ya con estos sencillos pasos, tenemos el servidor Postfix activado como servicio.

3) Configurar el servidor de correo con las siguientes caractersticas:

3-a) Se configurar una estafeta de nivel 2, siendo la estafeta de nivel 1 correspondiente la residente en la mquina neptuno.redes.dis.ulpgc.es.
Para la configuracin del servidor Postfix vamos a hacer uso de su archivo de configuracin que esta presente en /etc/postfix/main.cfg. En primer lugar se nos pide que configuremos una estafeta de nivel 2, esta sera la mquina llamada pasarela, mientras que la estafeta de nivel 1 sera la que nos indican en el enunciado. Las modificaciones que hay que realizar en el archivo de configuracin son las siguientes: $ vim /etc/postfix/main.cfg en donde introduciremos la lnea relayhost = [neptuno.redes.dis.ulpgc.es]

3-b) Debe aceptar correo para buzones de la forma usuario@red2.redes.dis.ulpgc.es.


Para que acepte los correos para los buzones de esa forma, tenemos que insertar en el archivo de configuracin /etc/postfix/main.cfg myhostname = pasarela.red2.redes.dis.ulpgc.es mydomain = red2.redes.dis.ulpgc.es myorigin = $mydomain mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain En donde:

y y y y

myhostname = Nombre de la mquina que corre Postfix. mydomain = El dominio de la estafeta de nivel 2. myorigin = El nombre de dominio del correo saliente. mydestination = Para que dominios recibe correos.

3-c) Crear al menos 3 buzones de correo.


Para crear buzones de correo, nos basta con crear usuarios nuevos, ya el sistema automticamente crea buzones para estos que estn presentes en /var/spool/mail. Para crear los usuarios vamos a usar el gestor grfico, para ello vamos al gestor de usuarios y creamos 3 usuarios nuevos:

y y y

user1 user2 user3

con lo que automticamente se nos crean 3 archivos para los buzones de correo en el sistema: /var/spool/mail/user1 /var/spool/mail/user2 /var/spool/mail/user3

3-d) Deber permitir relaying nicamente a las mquinas de su propia red o dominio.
El permitir relaying significa que los mails enviados desde el MTA local, son pasados a otro MTA, para que este enve el correo. De tal forma lo que tenemos que aadir al fichero de configuracin son la siguientes lneas: mynetworks = 172.16.2.0/8, 127.0.0.0/8 relay_domains = $mynetworks, $mydestination

3-e) El tamao mximo del buzn de correo ser de 10 Mbytes.


Para limitar el tamao del buzn de correo a una capacidad especfica, hacemos uso de la siguiente lnea que introducimos en el archivo de configuracin. mailbox_size_limit = 10000000

3-f) Debe definirse alias para los siguientes buzones:


y y y
webmaster@redx.redes.dis.ulpgc.es postmaster@redx.redes.dis.ulpgc.es ftp@redx.redes.dis.ulpgc.es

Para la creacin de alias para los buzones de correo vamos a modificar el archivo /etc/aliases y vamos a introducir al final las siguientes lneas webmaster: user1 postmaster: user2 ftp: user3

3-g) No debern aceptarse mensajes de correo provenientes de dominios no declarados.


Para limitar los correos que no son de dominios existentes introducimos la siguiente lnea unknown_local_recipient_reject_code = 55

3-h) Se llevar a cabo relaying de correo solo para los mensajes en los cuales el emisor del mensaje (mail from) pertenezca al dominio red2.redes.dis.ulpgc.es.
Introducimos la siguiente lnea smtpd_sender_restrictions = check_sender_access regexp:/exp/postfix/access Y en el fichero al que hacemos referencia en /etc/postfix/access introducimos.

/@red2\.redes\.dis\.ulpgc\.es$/ OK /.*/ 554 La direccion de correo no pertenece a nuestra red

4) Instalar y configurar el servicio imapd para el acceso cifrado (SSL) y sin cifrar de los agentes de usuario a sus buzones de correo.
Para ello haremos uso del demonio Dovecot que es un servidor de IMAP y POP3 de cdigo abierto para sistemas GNU/Linux / UNIX-like, escrito fundamentalmente pensando en seguridad. Para ello lo haremos a travs de la utilidad para agregar y quitar software en Centos, alli seleccionamos Dovecot y una vez instalado, procedemos a editar su archivo de configuracin presente en /etc/dovecot.conf. En este fichero aadimos las siguientes lneas protocols = imap imaps

Sistema de Reserva 1) Obtener e instalar el servidor de correo Postfix .


Este proceso es el mismo que cuando instalamos el servidor Postfix en la mquina pasarela.

2) Configurar el sistema para que se active el servicio de correo cada vez que se inicia el sistema.
Igual que como se hizo en la mquina pasarela.

3) Configurar el servidor de correo con las siguientes caractersticas:


3-a) Actuar exclusivamente como relayer de correo para el dominio red2.redes.dis.ulpgc.es.

Para configurar el servidor Postfix presente en la mquina estacin, editaremos el archivo de configuracin/etc/postfix/main.cfg e introduciremos la siguiente lnea relay_domains = $mydestination Con este ltimo paso damos por concluida la prctica, ahora slo nos queda configurar un cliente de correo y comprobar que todo funciona como es debido, o tambin podemos enviar un correo por telnet y luego acceder al archivo donde se guarda el correo recibido y comprobar que funciona todo correctamente.

Enviar un correo por Telnet.


Abrimos un terminal y en el tecleamos el comando telnet + servidor de correo + puerto a usar del servidor $ telnet pasarela.red2.redes.dis.ulpgc.es 25 Trying 172.16.2.1 Connected to pasarela.red2.redes.dis.ulpgc.es (172.16.2.1). Escape character is ^]. 220 pasarela.red2.redes.dis.ulpgc.es ESMTP Postfix Nos identificamos en el sistema como AaronMR por medio del comando helo helo AaronMR 250 pasarela.red2.redes.dis.ulpgc.es indicamos quien es el remitente del correo, que en este caso es aaronMR@red2.redes.dis.ulpgc.es y que se le va a enviar un correo al destinatario user3@red2.redes.dis.ulpgc.es mail from: aaronMR@red2.redes.dis.ulpgc.es 250 2.1.0 Ok rcpt to: user3@red2.redes.dis.ulpgc.es 250 2.1.5 Ok Y comenzamos a escribir el cuerpo del mensaje por medio del comando data, para terminar de escribir introducimos un . y damos a enter, a continuacion tecleamos quit para cerrar la conexin con el servidor. data 354 End data with . esto es una prueba de envio al user 3 por telnet . 250 2.0.0 Ok: queued as 8DB7817AF7 quit 221 2.0.0 Bye Connection closed by foreign host. . Gracias por vuestra atencin

Ahora salgamos de este asistente seleccionando Quit. Instalacin y configuracin de los paquetes Ahora inicie sessin como root. Elegimos trabajar como root, por tratarse de tareas administrativas. Nota: Recuerde que no debe usar root siempre, slo cuando sea estrictamente necesario.

Postfix
Instalar y configurar Postfix para CentOS es fcil. Postfix viene con una configuracin muy segura, asi que trataremos de abrirla un poco. Si no instal Postfix durante la fase de seleccin de paquetes puede instalarlo ahora mismo usando el siguiente comando: yum install postfix Ahora configuremos el archivo /etc/postfix/main.cf: nano -w /etc/postfix/main.cf Busque los siguientes parmetros y cmbielos segn dice aqui: inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain home_mailbox = mail/ Con esto decimos que Postfix responda a los pedidos en la red y ademas que use el formato Maildir que es mejor que el que viene por defecto, llamado mbox. Las lneas que empiezan con # son comentarios. Una vez hechos los cambios gurdelos con Control+X (si usa nano como su editor de textos). Reinicie el servicio Postfix: service postfix restart Y agrguelo a los servicios que se iniciarn al cargar el sistema: chkconfig --levels 345 postfix on Ahora agregue un usuario al sistema de la siguiente manera: useradd juan Ahora, no olvide de ponerle como shell /bin/false, asi Ud. no le permite conectarse al servidor por medio de SSH. Adems no olvide de asignarle una contrasea. Hgalo mediante el siguiente comando: usermod -s /bin/false juan passwd juan

Ahora probaremos nuestra instalacin de Postfix usando telnet. El punto despus de test es un comando que debe ser escrito. Expliquemos paso a paso: [root@mail ~]# telnet localhost smtp Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 mail.bavrit.com ESMTP Postfix Ahora tipee: ehlo mail Debe salir algo como esto: 250-mail.bavrit.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN Ahora pruebe enviando un email. Debe escribir lo que dicen las lneas: ehlo mail rcpt data test . quit su-host from: su-usuario (remitente) to: su-usuario (destinatario) (el cuerpo del mensaje, el punto es para finalizar la redaccin) (cerrar sesin)

[root@mail ~]# telnet localhost smtp Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 mail.bavrit.com ESMTP Postfix ehlo mail 250-mail.bavrit.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN mail from: juan 250 2.1.0 Ok rcpt to: juan 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF>

test . 250 2.0.0 Ok: queued as D33AE10042 quit 221 2.0.0 Bye Connection closed by foreign host. Verifique si el correo lleg: [root@mail ~]# cd /home/juan/mail/new [root@mail new]# ls 1191978078.V803I277e8M857132.mail.bavrit.com [root@mail new]# cat 1191978078.V803I277e8M857132.mail.bavrit.com No se preocupe, no tiene que tipear todo el nombre del archivo, basta con que escriba los dos primeros caracteres y presionar Tab para que se complete automticamente. Return-Path: <juan@mail.bavrit.com> X-Original-To: juan Delivered-To: juan@mail.bavrit.com Received: from mail (localhost.localdomain [127.0.0.1]) by mail.bavrit.com (Postfix) with ESMTP id D33AE10042 for <juan>; Tue, 9 Oct 2007 20:00:58 -0500 (PET) Message-Id: <20071010010105.D33AE10042@mail.bavrit.com> Date: Tue, 9 Oct 2007 20:00:58 -0500 (PET) From: juan@mail.bavrit.com To: undisclosed-recipients:; test Si todo sale bien sigamos con los siguientes pasos, sino, puede verificar algun error en el archivo /var/log/maillog. Ahora procedamos con la autenticacin SMTP para esto abrimos el fichero /usr/lib/sasl2/smtpd.conf (/usr/lib64/sasl2/smtpd.conf para usuarios de 64-bits) y agregue la siguiente lnea: mech_list: PLAIN LOGIN Inicie o reinicie el servicio saslauthd: service saslauthd restart Y agrguelo a los servicios que se iniciarn al cargar el sistema: chkconfig --levels 345 saslauthd on Ahora necesitamos reconfigurar Postfix: nano -w /etc/postfix/main.cf Busque los siguientes parmetros y cmbielos como dice aqu, si no encuentra algn parmetro agreguelo al final del archivo.

mynetworks = 127.0.0.0/8 smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = reject_unauth_destination broken_sasl_auth_clients = yes

permit_mynetworks, permit_sasl_authenticated,

La primera lnea dice que slo se puede enviar desde localhost, esto es, que slo localhost puede enviar correos al exterior. La ltima lnea es para el soporte de clientes de correo antiguos como Microsoft Outlook Express 4.0 y Microsoft Exchange 5.0, slo en caso alguien los siga usando. Reinicie Postfix: service postfix restart Ahora con esto ya tenemos nuestro servidor SMTP con autenticacin funcionando. Sigamos con Dovecot nuestro servidor IMAP y POP3. Si todo sale bien sigamos con los siguientes pasos, sino, puede verificar algun error en el archivo /var/log/maillog.

Dovecot
La instalacin de Dovecot en CentOS o RHEL es fcil. Todo lo que necesitamos es decirle que protocolos necesitamos y ya, todo listo. Abrimos el archivo /etc/dovecot.conf: nano -w /etc/dovecot.conf Encuentre los siguientes parmetros y cmbielos segn diga lo siguiente: protocols = pop3 pop3s imap imaps mail_location = maildir:~/mail/ passdb pam { session=yes } imap_client_workarounds = delay-newmail outlook-idle netscape-eoh pop3_client_workarounds = outlook-no-nuls oe-ns-eoh Gurdelo. Las lneas que empiezan con # son comentarios. Las dos ltimas lneas son parmetros para no tener problemas con algunos clientes de correo, los cuales tienen algunos bugs. Reinicie o inicie Dovecot: service dovecot restart Y agrguelo a los servicios que se iniciarn al cargar el sistema: chkconfig --levels 345 dovecot on Ahora vamos a probar Dovecot uasndo telnet. Debe escribir lo que dicen las lneas:

user pass list retr quit

su-usuario su-contrasea (listar los mensajes recibidos) 1 (ver el primer mensaje) (salir)

[root@mail ~]# telnet localhost pop3 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. +OK Dovecot ready. user juan +OK pass contrasea +OK Logged in. list +OK 1 messages: 1 427 . retr 1 +OK 427 octets Return-Path: <juan@mail.bavrit.com> X-Original-To: juan Delivered-To: juan@mail.bavrit.com Received: from mail (localhost.localdomain [127.0.0.1]) by mail.bavrit.com (Postfix) with ESMTP id D33AE10042 for <juan>; Tue, 9 Oct 2007 20:00:58 -0500 (PET) Message-Id: <20071010010105.D33AE10042@mail.bavrit.com> Date: Tue, 9 Oct 2007 20:00:58 -0500 (PET) From: juan@mail.bavrit.com To: undisclosed-recipients:; test . quit +OK Logging out. Connection closed by foreign host. Si todo sale bien sigamos con los siguientes pasos, sino, puede verificar algun error en el archivo /var/log/maillog. Implementacin de SSL/TLS Ahora un punto muy importante es la seguridad. Ahora les mostraremos como lograrlo. Configuraremos nuestro servidor de correo para que utilice SSL/TLS para obtener conexiones seguras.

Obtener un certificado digital


Lo primero que se debe hacer es obtener un certificado digital ya sea gratuito, firmado por nosotros mismo o por alguna entidad comercial. En esta ocacin usaremos CAcert.org para que firme nuestro certificado digital, primero debemos hacer una peticin:

cd ~ mkdir ssl cd ssl openssl genrsa -out mail.key 1024 openssl req -new -key mail.key -out mail.csr Ahora regstrese en www.cacert.org e ingrese el contenido del archivo mail.csr y en unos segundos tendr ya su certificado firmado y listo para usarse. Nota: Para Postfix debe bajarse el certificado raz que se encuentra aqu. Para descargar haga click derecho en el link y gurdelo como cacert.crt. Guarde el texto que sale al pedir un certificado en un archivo llamado mail.cert.

Postfix + TLS
Ahora procedamos a configurar Postfix para que haga uso de nuestro certificado digital. mkdir /etc/postfix/ssl cd ~/ssl cp mail.crt mail.key cacert.crt /etc/postfix/ssl Adjunte estas lneas al final del archivo /etc/postfix/main.cf: smtpd_use_tls = yes smtpd_tls_auth_only = yes smtpd_tls_key_file = /etc/postfix/ssl/mail.key smtpd_tls_cert_file = /etc/postfix/ssl/mail.crt smtpd_tls_CAfile = /etc/postfix/ssl/cacert.crt smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom Finalmente reinicie Postfix: service postfix restart Para comprobar si est bien su configuracin ejecute: telnet localhost smtp La lnea relevante es: 250-STARTTLS Si sali esto, entonces quiere decir que todo anda bien. Nota: Al configurar nuestro cliente de correo, use el mtodo TLS, de lo contrario el servidor no enviar ningn correo, ya que se le especific que si no se usa TLS que no se envie nada. Si no se quiere esto puede cambiar la variable smtpd_tls_auth_only a "no".

Dovecot + SSL
Ahora nos toca configurar Dovecot para que haga uso de nuestros certificados digitales. cd ~/ssl cp mail.crt /etc/pki/dovecot/certs/dovecot.pem cp mail.key /etc/pki/dovecot/private/dovecot.pem Ahora editamos el archivo /etc/dovecot.conf y quitamos el smbolo de comentario (#) a las siguientes variables: ssl_cert_file = /etc/pki/dovecot/certs/dovecot.pem ssl_key_file = /etc/pki/dovecot/private/dovecot.pem Finalmente reinicie Dovecot: service dovecot restart Y listo, configure su cliente de correo especificando que se quiere una conexin de tipo SSL. Conclusin Con esto terminamos la configuracin de nuestro servidor de correos usando CentOS o RHEL. Si tiene alguna duda o comentario, por favor use los foros o envie un comentario, gracias. Nota: Al momento de configurar los clientes de correos use usuario en lugar deusuario@dominio.com.

You might also like