Sie sind auf Seite 1von 81

M08- Serveis de xarxa

INTRODUCCIN
Los servidores de correo nos permiten enviar mensajes de unos usuarios a otros con independencia de la red que se este utilizando. Para lograrlo se definen una serie de protocolos, cada uno con una finalidad: 1. SMTP: simple mail transport protocol este se utiliza para que se intercambien los mensajes entre servidores de correo, es basado en un modelo cliente servidor. Una de las limitaciones del SMTP original es que no facilita mtodos de autenticacin a los emisores, as que en este manual pretende superarlo a travs de PAM (`Pluggable Authentication Modules Modulo de Autenticacin Enlazable). 2. POP: post office transport protocol se utiliza para obtener / descargar los mensajes guardados en el servidor al usuario. 3. IMAP: internet message access protocol su finalidad es la misma que POP aunque funciona diferente y vimos algunas ventajas como tiempos de respuesta rpida, acceso remoto a los mensajes, accesos simultneos a mltiples clientes, vigilancia en el estado del mensaje, agilidad en las bsquedas, entre otras ventajas sobre el protocolo POP por lo cual nos basamos mas en IMAP. Entonces es por eso que decimos que un servidor de correo consta en realidad de dos servidores el SMTP encargado de enviar y recibir mensajes, y un servidor POP/IMAP que ser el que permite a los usuarios obtener sus mensajes; para esto los usuarios se sirven de clientes, es decir, programas que implementan un protocolo POP/IMAP que en algunas ocasiones el cliente se ejecuta en la mquina del usuario (como el caso de Mozilla Mail, Evolution, Outlook). Sin embargo existe otra posibilidad: que el cliente de correo no se ejecute en la mquina del usuario; es el caso de los clientes va web, como Hotmail, Open Webmail o Terra. En ellos la arquitectura del servicio es ms compleja: el cual no aplica en este manual.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 1 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

IP ESTTICA
Lo primero que debemos tener en cuenta, es que utilizaremos una direccin IP esttica para poder realizar todas las pruebas convenientes. Para evitar conflictos en la red lo que haremos es pedir una IP dinmica como siempre. Miraremos la IP que nos ha dado el servidor DHCP, y esa misma IP la pondremos esttica en nuestro sistema. De esta manera, tendremos una IP esttica y podremos descargarnos los paquetes que sean necesarios. Si alguien no se acuerda como se ponen las IP estticas, puede mirar en la prctica que hicimos de DHCP.

INSTALACIN Y CONFIGURACIN DEL BIND


Un paso previo a la instalacin del servicio de correo electrnico, ser configurar el Bind porque las direcciones de correo electrnico utilizan nombres en vez de IPs. Bind es el nombre del servicio de DNS. Se puede llamar BIND o NAMED.

Instalamos el paquete de Bind9; en el caso que no lo tengamos instalado. $ sudo apt-get install bind9 Luego configuraremos este servicio. Si ya lo tenemos configurado, haremos antes una copia de seguridad del fichero de configuracin, antes de modificarlo. $ sudo cp /etc/bind/named.conf.local /etc/bind/named.conf.local2 Ahora ya podemos modificar el fichero de configuracin. # nano /etc/bind/named.conf.local Editaremos el archivo de configuracin y definiremos nuestras zonas. En este ejemplo, nuestro dominio se llamara lucas.com, es tipo maestro y le damos la ruta donde estar el archivo de la zona directa e inversa. Nosotros, le podemos poner el nombre de dominio que queramos; no tiene porque ser lucas.com. Pero si le ponemos otro nombre diferente a lucas.com tendremos que tener en cuenta que siempre que en esta prctica se haga referencia a lucas.com, nos tendremos que acordar de cambiarlo al nombre de dominio que hayamos elegido. zone "lucas.com" { type master; file "/etc/bind/directa.db"; };

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 2 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/inversa.db"; }; Ahora crearemos los archivos donde pondremos la configuracin de las zonas. # sudo nano /etc/bind/directa.db

En este ejemplo, el servidor de correo tiene el nombre de regocorreo con la direccin IP 192.168.1.1. En nuestro caso, seguramente nuestro servidor no se llamar regocorreo; y nuestra IP no ser 192.168.1.1. Por lo tanto, tendremos que ponerle el nombre de nuestro servidor en vez de regocorreo. Para saber el nombre de nuestro servidor podemos hacer: # hostname Con esto lo que estamos haciendo es que todas las peticiones de correo electrnico sern redireccionadas al host regocorreo.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 3 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


Ahora crearemos la zona inversa: # nano /etc/bind/inversa.db

Hecho esto guardamos todos los cambios y reinicairemos nuestro servidor DNS # sudo /etc/init.d/bind9 restart Comprobamos que la sintaxis de los ficheros directa.db y inversa.db sea correcta: # named-checkzone lucas.com /etc/bind/directa.db # named-checkzone lucas.com /etc/bind/inversa.db La respuesta tiene que ser: Zone lucas.com/IN: loaded serial 10 Si la respuesta no es correcta, es posible que haya que hacer algn pequeo cambio sin importancia: @ ns IN IN NS A ns 192.168.1.1 (en vez de lucas.com.)

Luego comprobaremos la respuesta del servidor. # nslookup > set q=any > lucas.com UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 4 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

Si lo hemos hecho bien nos tiene que mostrar algo parecido a lo siguiente:

Si no lo hemos hecho bien y no sale esto, es posible que en Internet exista un lucas.com, o el dominio que nos hayamos inventado. En ese caso, pondremos nuestra IP en /etc/resolv.conf ya que nosotros ya somos un servidor DNS con reenviadotes vlidos en /etc/bind/named.conf.options. Con esto ya tenemos listo nuestro servidor DNS...si quisiramos tener ms de un servidor de correo o un servidor de correo de respaldo, slo tendramos que agregar algunas lneas ms, y que cada una de estas tenga diferente prioridad. Por ejemplo: lucas.com. lucas.com. regocorreo regocorreo2 IN IN IN IN MX 10 regocorreo MX 20 regocorreo2 A 192.168.1.1 A 192.168.1.2

En este ejemplo, regocorreo2 ser un servidor de respaldo de regocorreo.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 5 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

INSTALACIN Y CONFIGURACIN DE POSTFIX 1. Introduccin


Postfix es un servidor de correo (MTA) muy potente, programado por Wietse Venema, y cuya pgina web es http://www.postfix.org/. En este documento voy a explicar cmo instalar el MTA Postfix en un Ubuntu. Cada vez que quieras comprobar que tu servidor est funcionando de manera correcta, tanto para enviar como para recibir, puedes enviar un mensaje de correo a la siguiente direccin: echo@rediris.es. Cualquier mensaje que enves a esta direccin te ser devuelto.

2. Paquetes Ubuntu
Los paquetes ms importantes de Postfix para Ubuntu son: # apt-cache search postfix
postfix - A high-performance mail transport agent postfix-dev - Postfix loadable modules development environment postfix-doc - Postfix documentation postfix-ldap - LDAP map support for Postfix postfix-mysql - MYSQL map support for Postfix postfix-pcre - PCRE map support for Postfix postfix-snap - Postfix Mail Transport Agent - snapshot release postfix-snap-dev - Postfix-snap loadable modules development environment postfix-snap-doc - Postfix-snap documentation postfix-snap-ldap - LDAP map support for Postfix-snap postfix-snap-mysql - MYSQL map support for Postfix-snap postfix-snap-pcre - PCRE map support for Postfix-snap postfix-snap-tls - TLS and SASL support for Postfix snapshots postfix-tls - TLS and SASL support for Postfix

Voy a dar una explicacin rpida de qu es cada paquete. Los paquetes necesarios estn marcados con un asterisco (*).

postfix. Este es el paquete principal de Postfix. (*) postfix-dev. Entorno de desarrollo. postfix-doc. Documentacin. (*) postfix-ldap. Soporte LDAP. postfix-mysql. Soporte MySQL. postfix-pcre. Soporte de expresiones regulares. (*) postfix-snap-*. Versiones snapshot. Pueden ser inestables. postfix-tls. Soporte TLS y SASL (SMTP autentificado).

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 6 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

3. Instalacin
La instalacin de los paquetes Ubuntu se puede realizar de manera sencilla con el comando
sudo apt-get install postfix postfix-doc postfix-pcre

Si existen dependencias con otros paquetes, apt-get tambin las instalar. Despus de bajarse los paquetes de Internet, y antes de instalarlos, posiblemente se nos preguntarn una serie de cosas (relativas a la configuracin). Responderemos a esas preguntas, ya que son muy sencillas y nos permitirn crear una configuracin base. Luego podemos depurar ms la configuracin siguiendo esta gua. Pregunta1: Escoja el tipo de configuracin de correo que se ajusta ms a sus necesidades. Respuesta1: Sitio en Internet Pregunta2: Nombre del sistema de correo: Respuesta2: lucas.com Fijaros lo que pone al final de la instalacin: Postfix is now set up with a default configuration. If you need to make changes, edit /etc/postfix/main.cf (and others) as needed. To view Postfix configuration values, see postconf(1). After modifying main.cf, be sure to run /etc/init.d/postfix reload. El directorio donde se encuentran los ficheros de configuracin de Postfix es /etc/postfix/, y el fichero principal de configuracin se llama main.cf.

4. Comandos bsicos de Postfix


Existen varios comandos que nos pueden ser tiles mientras usemos Postfix. Una breve lista sera

postfix stop. Este comando para el servidor. postfix start. Este comando arranca el servidor. postfix reload. Este comando hace que el servidor relea la configuracin sin parar el servicio. mailq. Para ver la cola de mensajes. postfix flush. Fuerza el envo de mensajes de la cola de espera. postmap. Este comando sirve para construir los ficheros auxiliares de Postfix. postconf. Muestra toda la configuracin de Postfix. newaliases. Este comando reconstruye la base de datos de alias.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 7 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

5. Configuracin de PostFix
# sudo nano /etc/postfix/main.cf Este es el archivo principal de configuracin dnde definiremos los parmetros que este servidor tendr. Nos dirigimos a las ltimas lneas donde se encontraran las variables a modificar. Estas variables pueden tener una lista de valores, pero nos tendremos que asegurar que existan y que uno de los elementos de la lista tenga al menos estos valores: myhostname regocorreo.lucas.com

Este es el nombre del host que tiene el servidor de correo, recuerde que este nombre debe de ser el que hemos configurado en el DNS. Seguramente nuestro servidor no se llama regocorreo y lo tendremos que cambiar por el nombre de nuestro servidor. mydomain lucas.com

Dominio para el cual recibiremos correos electrnicos. mydestination lucas.com

Podremos recibir correos para la maquina local, donde realizaremos nuestras primeras pruebas.
mynetworks 192.168.1.0/24, 127.0.0.0/8

Definiremos la direccin de red, de donde queramos que puedan salir o entrar los correos. Esta direccin de red tiene que ser la nuestra propia. Si nuestro servidor no tiene la IP 192.168.1.X, tendremos que modificar este parmetro. Estas son las opciones bsicas , pero recuerde que son muchas las variables que podremos definir que en el transcurso del manual iremos agregando.

Ahora reiniciamos el servidor para comprobar que no existan errores, y para que cargue la ltima configuracin que realizamos # sudo /etc/init.d/postfix reload Con esto, tendremos nuestro MTA (Agente Transferencia Correo) Servidor de correo. Vale destacar que este servidor correr por el puerto 25. Ahora lo que haremos ser tratar de conectarnos al servidor de correo por medio de Telnet a travs del puerto 25.
# sudo telnet 127.0.0.1 25 Trying to 127.0.0.1. escape character is '^]'. 220 regocorreo.lucas.com ESMTP postfix (ubuntu)
Si al hacer telnet 127.0.0.1 25 nos da el error de Connection Refused, lo que haremos ser: Sudo apt-get update Sudo apt-get upgrade

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 8 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


Sudo apt-get remove postfix purge Sudo apt-get install postfix Probar el telnet ahora y si funciona, re-configurar de nuevo main.cf.

Al conectarse por medio del puerto 25, identifica el servidor de correo y muestra el banner de bienvenida. Ahora lo que haremos ser ver los mdulos y los tipos de autenticaciones que soporta el servidor. # sudo telnet 127.0.0.1 25 Trying to 127.0.0.1. escape character is '^]'. 220 regocorreo.lucas.com ESMTP postfix (ubutu) ehlo HOLA Escribimos ste comando, que nos indica que abrimos una seccin con este servidor a travs del puerto 25, para verificar los mdulos o soporte que tiene cargados. Si el resultado es este, significa que PostFix se est ejecutando correctamente en nuestro servidor.

Y el servidor deber de respondernos con los mdulos que este maneja. De igual manera nos damos cuenta que el servidor esta corriendo perfectamente y que no hay errores en su configuracin. Ahora ya tenemos configurado y funcionando nuestro servidor de correo.

Para salir, escribiremos el comando quit

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 9 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

6. Modos de ejecucin del servidor


Existen 2 modos de ejecucin, por as decirlo. El modo internet site y el modo internet site with smarthost

6.1 internet site


El modo internet site se caracteriza porque el propio servidor se encarga de repartir los mensajes a sus destinatarios directamente, sin pasar por otro servidor predefinido. Para usar este modo, en el fichero de configuracin /etc/postfix/main.cf NO debe estar definida la opcin relayhost
relayhost =

Esta configuracin es util para ordenadores individuales que no estn en una red local o tienen conexin permanente a Internet (como ADSL, cable, ...).

6.2 internet site with smarthost


El modo internet site with smarthost se caracteriza porque el servidor no enva los mensajes directamente a sus destinatarios, sino que los envia a otro servidor de correo, y aquel ya se encargar de enviarlo. Para usar este modo, hay que definir la opcin relayhost y ponerle como argumento la direccin IP o el nombre de host del servidor SMTP que queramos
relayhost = smtp.mi-red-local.com

Esta configuracin se suele dar en redes locales que ya tienen un servidor SMTP o en conexiones espordicas a Internet con mdem, por ejemplo (el servidor definido sera el de tu proveedor).

6.3 Nosotros elegiremos la opcin de internet site

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 10 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

PROVAR LOS MENSAJES


Ahora probaremos envindonos mensajes para comprobar que funcione nuestro servidor de correo. Primero instalamos un software con el cual podremos enviarnos correos y comprobar. $ sudo su # apt-get install mutt Ya tenemos listo el software para realizar pruebas. Abrimos el software mutt: # exit $ sudo mutt Es posible que salga la siguiente pregunta: /home/root/Mail no existe. Crearlo? ([s]/no): Nos est diciendo que el usuario root (o el usuario con el que hayamos ejecutado mutt) no tiene el directorio Mail creado y si queremos que lo cree. Le diremos que S.

En primera instancia, mutt aparecer de esta forma ya que en el buzn de entrada no hay ningn mensaje. Con la tecla M podremos enviar un nuevo correo electrnico.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 11 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

To: root@lucas.com (este ser el usuario al que queremos que llegue el mensaje). Presionamos la tecla enter, para escribir el mensaje, nos aparecer un editor de textos y all escribimos el mensaje. Si el editor de textos es el nano, ya estamos acostumbrados a utilizarlo. Si el editor de textos es el que lleva mutt incorporado, tenemos que saber que para guardar los cambios tenemos que presionar las teclas Ctrl+K+X, nos dir que si queremos guardar los cambios y presionamos la tecla Y (yes). Para ver con que opciones ms contamos, podemos hacer Ctrl+K+H para ver la ayuda de este editor de textos.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 12 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

Nos saldr un encabezado con los parmetros principales para enviar el correo electrnico.

Ahora para enviar el correo, basta con presionar la tecla Y.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 13 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


Ahora nos loguearemos como el usuario root (que es a quien le enviamos el mensaje) para comprobar si hemos recibido el mensaje o no. $ sudo su Y entraremos a mutt: # mutt

En la bandeja de entrada, veremos el correo que enviamos. Con esto podemos comprobar que nuestro servidor de correo Postfix esta funcionando correctamente. Y vemos en la bandeja de entrada que tenemos un mensaje....con las teclas direccionales podemos seleccionarlo y con enter entramos para ver el mensaje. All esta el mensaje que escribimos al usuario root... con esto nos damos cuenta de que el servidor de correo esta funcionando. Para salir del usuario root y volver al usuario toni (o el nuestro de siempre) haremos: # exit

Si resulta que no tenemos ningn mensaje, es posible que tengamos que crear a mano los ficheros para guardar los mensajes de los usuarios: sudo nano /var/mail/toni El usuario toni ser el usuario con el que entramos normalmente. UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 14 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

Y luego darle permisos de lectura y escritura: sudo chmod 777 /var/mail/toni

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 15 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

ALMACENAMIENTO Y TIPO DE CORREO


El almacenamiento de los correos, es una parte importante que debemos de tener en cuenta, ya que es la manera de como sern almacenados nuestros correos, y como ser el proceso tanto de lectura como escritura de este. Existen varios tipos de almacenamiento de correo, pero en este manual solo manejaremos 2 que sern Maildir y Mailbox. Primero de todo, debemos saber que estos tipos de almacenamiento estn ligados al servidor de Pop e Imap, que utilicemos. Dovecot es un servidor que maneja Mailbox ya que los mensajes se guardan en un nico archivo en el que se van encolando los mensajes a medida que van llegando al buzn.

Todos los correos electrnicos usando este servidor son almacenados en este directorio /var/mail/ dnde por cada usuario, se genera un fichero. La desventaja de este formato es que el proceso de lectura y escritura se hace mas lento, ya que toca buscar dentro del fichero correspondiente el correo, y en caso de que se llegase a borrar este fichero perderamos TODOS nuestros correos, siendo vulnerable a posibles ataques. Courier y Cyrus son 2 servidores de Pop e Imap que utilizan Maildir como formato de almacenamiento.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 16 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


Este formato, es muy diferente a Mailbox, ya que los correos no se almacenan en un nico fichero, sino que se genera automticamente un fichero por cada correo que sea recibido. Estos ficheros se almacenan en la ruta /var/spool/mail/ La ventaja principal de este formato, es que el proceso de lectura y escritura se realiza a gran velocidad, apto para condiciones donde el flujo tanto de lectura y escritura de correos es elevado. Tiene pocas desventajas, y una de ellas es que se necesita gran capacidad de almacenamiento en disco.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 17 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

INSTALACIN Y CONFIGURACIN DE LOS PROTOCOLOS IMAP Y POP3


Ahora lo que haremos ser instalar los protocolos de POP3 e IMAP, que son los encargados de descargar los correos, desde un cliente a travs del servidor. Cabe destacar, que POP3 lo que hace es conectarse al servidor de correo a travs del puerto 110 y descarga los correos hasta el cliente para poder visualizarlos, cosa contraria que pasa con IMAP que se conecta al servidor de correo a travs del puerto 143 y podemos visualizar los correos remotamente desde el servidor sin la necesidad de descargarlos.

A CONTINUACIN TENEMOS QUE INSTALAR LOS SERVICIOS DE POP3 i/o IMAP. HAY VARIAS OPCIONES PARA INSTALAR ESTOS SERVICIOS; LAS MS CONOCIDAS SON: A) DOVECOT B) COURIER Y TENEMOS QUE ESCOGER UNA DE LAS DOS OPCIONES!! NO LAS DOS!! SI INSTALAMOS LAS DOS TENDREMOS CONFLICTOS CON LOS PUERTOS!! ESTA PRCTICA EXPLICA LAS DOS OPCIONES, PERO SE RECOMIENDA INSTALAR COURIER PORQUE TRABAJA CON MAILDIR (EN VEZ DE MAILBOX). POR LO TANTO, PODEIS INSTALAR DIRECTAMENTE COURIER I SALTAROS LA EXPLICACIN DE DOVECOT.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 18 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

A) INSTALACIN Y CONFIGURACIN DE DOVECOT


Esto lo haremos a travs de DOVECOT, que es uno de los tantos servidores de POP3 e IMAP que existen. Lo que haremos ser buscar en la cache de los repositorios para ver si se encuentren estos paquetes y luego instalarlos. # sudo apt-cache search dovecot Buscamos que tenga Dovecot soporte para los protocolos Pop e Imap.

Muy recientemente podemos encontrar el paquete dovecot-postfix. Este paquete es equivalente a instalar los paquetes dovecot-imapd y el dovecot-pop3d. Pero como que es tan reciente ser mejor actualizar el repositorio antes. $ sudo apt-get update $ sudo apt-get install dovecot-postfix La forma en que autenticaremos nuestro servidor de correo ser a travs de un servidor como puede ser IMAP o POP3 contra PAM que es un mecanismo de autenticacin que guarda los registros en el sistema local.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 19 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


Vamos al archivo de configuracin de dovecot, que se crea por defecto en el directorio /etc/dovecot/ El archivo principal de configuracin ser dovecot.conf # sudo nano /etc/dovecot/dovecot.conf Las lneas que descomentaremos, modificaremos o agregaremos en su defecto, sern: protocols: imap imaps pop3 pop3s (Ser el protocolo o protocolos que manejar el servidor dovecot) Listen: * (Por cual puerto escuchara. Si ponemos un asterisco * es porque tomar el puerto por defecto) disable_plaintext_auth: no (Nos dice, que si queremos Deshabilitar la autenticacin en texto plano, le decimos que no, porque utilizaremos la autenticacin en texto plano) ssl: no ssl_diable yes (en el caso que est esta directiva) (Si queremos deshabilitar SSL para transporte seguro ya que los datos viajaran encriptados.) mail_location: mbox:~/mail:INBOX=/var/mail/%u (El lugar donde se alojaran los correos electrnicos, que por defecto sern en /var/mail. Y la %u quiere donde se almacenaran los correos a determinado usuario) $ sudo /etc/init.d/dovecot restart Seguramente saldr el siguiente mensaje: If you trouble with authentification failures, enable auth_debug setting. See http://wiki.dovecot.org/WhyDoesItNotWork This message goes away after the first successful login. Esto significa que si tenemos problemas con la autenticacin de los usuarios, tendremos que habilitar auth_debug. Pero esto es un warning (aviso) no un error. Si nos aparece este mensaje no significa que est funcionando mal. Pero de todas formas, haremos algo mejor: Configuraremos la autenticacin por defecto auth_default.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 20 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

AUTENTICANDO DOVECOT A TRAVS DE PAM


Ahora habilitaremos la autenticacin en texto plano. Al final del archivo dovecot.conf agregaremos unas lneas que nos permitirn autenticarnos. auth default { mechanisms = plain login passdb pam { } userdb passwd { } socket listen { client { # Assuming the default Postfix $queue_directory setting path = /var/spool/postfix/private/auth mode = 0660 # Assuming the default Postfix user and group user = postfix group = postfix } } } Para finalizar reinicamos el servicio para que guarde los cambios efectuados. $ sudo /etc/init.d/dovecot restart Mensaje de error: Error: Error in configuration file /etc/dovecot/dovecot.conf. Authentication process already exists with the same name (section changed). Fatal: Invalid configuration in /etc/dovecot/dovecot.conf Error!!!! Pero que pas?? Claro, lo que pasa es que agregamos estas lneas al final, para entender mejor la sintaxis de como autentica Dovecot contra pam, pero estas lneas se encuentran descomentadas a lo largo de todo el archivo, por ende al tratar de reiniciar el servicio nos saca un error que nos indica que existe duplicado en las lneas. Entonces lo que haremos ser comentar las lneas que se encuentran repetidas a lo largo del archivo. $ sudo nano /etc/dovecot/dovecot.conf Haremos Ctrl+W para buscar auth default dentro del fichero. Y todo lo que se encuentre entre las dos llaves de auth default deber ser comentado. Y obviamente, reiniciaremos el servicio de nuevo: UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 21 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


$ sudo /etc/init.d/dovecot restart

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 22 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

B) INSTALACIN Y CONFIGURACION DE COURIER


Courier es otro servidor de POP3 e IMAP, que nos permite acceder a los correos ya sea para visualizarlos remotamente o para descargarlos. La diferencia principal de Courier con respecto de Dovecot es el formato de almacenamiento, ya que el formato de Courier es MAILDIR almacena los correos en ficheros distintos con nombres nicos. Esto es una ventaja con respecto de Mailbox, ya que se acceder a los correos mas fcilmente y en caso de que se llegase a borrar un fichero de estos, slo se perdera este mensaje en cambio mailbox al almacenar todos los correos en un nico archivo por usuario es ms susceptible a daos y el proceso de lectura de los correos, es mas lento. Lo primero que haremos ser instalar Courier con los protocolos pop e imap. Si tenemos instalado otro servidor de protocolos de Pop e Imap, podremos tener conflictos con este, ya que los puertos por los que trabajas estos protocolos son siempre los mismos sin importar con que servidor lo estemos haciendo. Para comprobar que no este corriendo ningn protocolo, hacemos la prueba con telnet a los puertos # telnet 127.0.0.1 110 (Comprobar que Pop no este corriendo) Trying 127.0.0.1... telnet: Unable to connect to remote host: Connection refused # telnet 127.0.0.1 143 (Comprobar que Imap no est corriendo) Trying 127.0.0.1... telnet: Unable to connect to remote host: Connection refused Ahora que sabemos que ninguno de estos 2 protocolos esta funcionando, procedemos con la instalacin de Courier-imap NOTA: Si tenemos instalado algn servidor de POP e IMAP, podramos tener conflictos y producir errores al tratar de correr el servicio, lo recomendable es desinstalarlo haciendo: $ sudo /etc/init.d/dovecot stop $ sudo apt-get remove dovecot-postfix $ sudo telnet 127.0.0.1 110 Una vez ya estamos seguros que los puertos 110 y 143 no estn siendo utilizados por nadie, instalaremos el paquete de Courier-imap Pero antes buscaremos en el repositorio los paquetes que existen respecto a courier

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 23 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


$ sudo apt-cache search courier

$ sudo apt-get install courier-imap Durante la instalacin nos preguntar: Desea crear los directorios para la administracin basada en web? Le responderemos que NO porque no tenemos el apache instalado. Despus de que instalemos este paquete, vamos al archivo principal de Postfix y lo editamos de manera que pueda almacenar los correos en el formato Maildir. $ sudo nano /etc/postfix/main.cf Al final de este archivo, agregamos esta lneas: home_mailbox = Maildir/g mail_spool_directory = /var/spool/mail/ Y buscamos esta variable dentro del archivo para comentarla. #mailbox_command = procmail -a "$EXTENSION" UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 24 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

La verdad, esta variable no se encontr. Entonces lo que se hizo fue agregarla y comentarla. (omitir sino es necesario)

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 25 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


No nos olvidemos de reiniciar el servicio de Postfix $ sudo /etc/init.d/postfix restart Ahora lo que haremos ser crear un fichero con las base de datos de los usuarios del sistema, ya que la autenticacin que haremos ser contra Pam. Pero antes crearemos algunos usuarios ms para poder hacer pruebas: $ sudo adduser new $ sudo adduser new2 $ sudo adduser new3 Los passwords de los usuarios pueden ser los mismos que los nombres de los usuarios y as los recordaremos ms fcilmente. Ahora ya podemos crear el fichero con la base de datos de los usuarios. $ sudo su # cd /etc/courier # pw2userdb > userdb Esto creara un archivo donde se encuentran todos los usuarios del sistema.

Y por seguridad borramos todos los usuarios, excepto los del sistema. Tras guardar userdb, le cambiamos los permisos y generamos el fichero de contraseas # chmod 700 userdb UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 26 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


# makeuserdb Ahora editaremos unas opciones en el archivo principal de courier-imap, para que pueda funcionar el demonio. # cd /etc/courier # nano imapd IMAP_MAILBOX_SANITY_CHECK=0 (Cambiamos el 1 por un 0) Comprobamos que esta opcin si est, y que se encuentre descomentada. Luego de esto, guardamos los cambios y salimos. Ahora pondremos el mtodo de autenticacin que ser a travs de PAM # nano authdaemonrc Buscamos la siguiente lnea, y nos aseguramos que dentro de las comillas se encuentre el mtodo de autenticacin. authmodulelist="authpam" Ahora reiniciamos el servicio para que cargue los cambios efectuados, y comprobar que no existen errores. # /etc/init.d/courier-imap restart * Stopping Courier IMAP server... [OK] * Startinf Courier IMAP server... [OK] # /etc/init.d/courier-authdaemon restart * Stopping Courier IMAP server... [OK] * Startinf Courier IMAP server... [OK] # telnet 127.0.0.1 143

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 27 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

Ahora podemos probar la recepcin de correos a travs de IMAP, los correos a travs de un MUA, como puede ser Thunderbird de Linux, Evolution de Linux, Outlook Express de Windows XP o Live Mail de Windows 7. Vamos a ver como se configura Live Mail de Windows 7.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 28 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

CONFIGURACIN DEL CLIENTE: LIVE MAIL DE WINDOWS 7


Lo primero que hay que hacer es comprobar que haya PING entre el cliente y el servidor. Y luego tenemos que configurar las cuentas de correo electrnico dentro de Mail de Windows 7. Herramientas >> Cuentas

Agregar

Como que hemos migrado todos los usuarios del sistema dentro de Courier, los usuarios y las contraseas son las mismas que utilizamos para entrar en nuestro servidor. UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 29 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

Siguiente

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 30 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

Mi servidor de correo entrante es IMAP porque hemos configurado Courier con IMAP. El servidor de correo entrante es la IP de nuestro servidor dnde est instalado Courier. El servidor de correo saliente es la IP de nuestro servidor dnde est instalado PostFix. En vez de poner la IP, podramos poner el nombre FDQN; es decir: servidor.lucas.com (dnde servidor es el nombre de nuestro servidor). No nos podemos olvidar de configurar las DNS en el cliente. Debemos poner como IP de DNS, la IP de nuestro servidor.

Finalizar

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 31 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa Estos pasos los tenemos que repetir para cada uno de los usuarios que tengamos creados en nuestro servidor; para as poder probar de enviar emails de un usuario a otro.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 32 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

SEGURIDAD
Hasta aqu hemos hecho la prctica instalando el servidor de correo SIN SEGURIDAD. A continuacin vamos a configurar nuestro servidor para que sea seguro. Que nadie pueda enviar un email hacindose pasar por otro, y que el propio mensaje no pueda ser ledo, ni modificado en su viaje. Ahora que nuestro sistema de correo electrnico funciona sin seguridad, ser importante que si implementamos la seguridad, tenemos que verificar cada cambio que hagamos en el cliente; y tirar marcha atrs si el ltimo cambio no ha funcionado para ver porqu no ha funcionado. No pasar al paso siguiente, sin asegurar que el anterior funciona correctamente.

1. AUTENTICACIN
En este apartado, nos centraremos a configurar el servidor para que solo lo usen las personas que nosotros queremos, y no abusen de l para enviar spam.

1.1 Listas de bloqueo basadas en DNS


Las listas de bloqueo son unas listas de IP de servidores que supuestamente envian spam. Entre las listas ms usadas se encuentran las RBL de mail-abuse.org o las SBL de spamhaus.org. Puede ver un listado completo de listas de bloqueo en http://www.declude.com/JunkMail/Support/ip4r.htm. Al configurar Postfix para que use estas listas significa que cada vez que llegue un correo a nuestro servidor, Postfix comprobar que la IP del servidor que nos envia el mensaje no se encuentra en esas listas. Una configuracin tpica en el main.cf sera
maps_rbl_domains = relays.ordb.org list.dsbl.org blackholes.mail-abuse.org dialups.mail-abuse.org relays.mail-abuse.org smtpd_client_restrictions = permit_mynetworks reject_maps_rbl check_relay_domains

Otro ejemplo, esta vez para Postfix 2.0


smtpd_client_restrictions = permit_mynetworks reject_non_fqdn_recipient hash:/etc/postfix/access reject_rbl_client sbl.spamhaus.org reject_rbl_client relays.ordb.org reject_rbl_client opm.blitzed.org reject_unauth_destination

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 33 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


NOTA. El uso de listas RBL puede producir el rechazo de mensajes legtimos. Antes de usar una lista RBL se recomienda encarecidamente comprobar cules son los criterios de dicha lista para incluir o no un determinado IP. Algunas listas (como SBL o DSBL) utilizan unos criterios muy claros y objetivos y producen pocos o ningn efecto indeseado, mientras que otras tienen unas normas mucho ms agresivas y producen el bloqueo a veces de proveedores enteros, incluyendo un montn de usuarios legtimos.

1.2 Control de envos


El control de envos significa que se pueden definir qu direcciones de correo pueden enviar correo a travs de nuestro servidor, y qu direcciones de correo no pueden enviar correo a nuestro servidor.

Por host o redes


Mediante la directiva mynetworks definimos qu redes o hosts pueden enviar correo a travs de nuestro Postfix. Un ejemplo sera
mynetworks = 127.0.0.0/8, 192.168.2.0/24, 172.16.3.4/32

Con esta configuracin estamos definiendo:


La red 127.0.0.0 puede enviar. Esta red siempre ser nuestra propia mquina (localhost). Los 254 hosts de la red 192.168.2.0 pueden usar nuestro servidor. Solo el host 172.16.3.4 puede usar nuestro servidor, y ninguno ms de la red 172.16.3.0. Por ejemplo, el 172.16.3.14 no podra.

relay-host
Mediante el sistema relay-host definimos que direcciones de correo pueden enviar a travs de nuestro servidor. Esto es til si las personas que queremos que enven correo tienen una direccin e-mail estable, pero una IP que cambia muy a menudo. Una configuracin tpica sera esta
smtpd_recipient_restrictions = permit_mynetworks, check_sender_access hash:/etc/postfix/usuarios reject_unauth_pipelining, reject_non_fqdn_recipient, reject_non_fqdn_sender, reject_unknown_recipient_domain, reject_unknown_sender_domain, check_relay_domains

En la directiva check_sender_access vemos que hace referencia a un fichero llamado /etc/postfix/usuarios. Este fichero contiene algo parecido a esto:
usuario@dominio.com usuario2@dominio.com usuario3@dominio2.com OK OK OK

Esta lista de e-mails significa que dichas direcciones pueden enviar a travs de nuestro servidor, independientemente de la IP que tengan. Como puedes imaginar este mtodo no es muy seguro, ya que UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 34 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


si algn spammer averigua una direccin de correo vlida de tu servidor, podr usarla para enviar correo de manera indiscriminada. Cada vez que se modifique este fichero se debe ejecutar el comando
cd /etc/postfix && postmap usuarios && postfix reload

ACL
Las ACL, o listas de control de acceso, son las direcciones de e-mail que NO pueden enviar correo a nuestro servidor. Si llega un mensaje con alguna de esas direcciones, el servidor lo rechazar. La configuracin de las ACL sera
smtpd_sender_restrictions = hash:/etc/postfix/access reject_unknown_sender_domain permit_mynetworks

Y el fichero /etc/postfix/access contendra


bob645@yahoo.com METHOSYSTEM.IT techemail.com trafficmagnet.net email.com seekercenter.net icai.ie REJECT REJECT REJECT REJECT REJECT REJECT REJECT

Como vemos se pueden denegar direcciones e-mail concretas (bob645@yahoo.com), o dominios enteros (techemail.com). Cada vez que se modifique este fichero debemos ejecutar
cd /etc/postfix && postmap access && postfix reload

pop-before-smtp
Este mtodo consiste en que los clientes, antes de poder enviar correo a travs de nuestro servidor, deben recoger primero el correo mediante POP3 o IMAP. Al recoger el correo, un demonio controla los logs de los servidores POP3 o IMAP, e introduce en un fichero las IPs de los clientes. A partir de ese momento, desde esa IP se podrn enviar correos, con cualquier remitente, durante el tiempo especificado, que por defecto son 30 minutos. En la distribucin Ubuntu, existe un paquete llamado pop-before-smtp. Lo instalaremos con el comando
apt-get install pop-before-smtp

Luego editamos el fichero /etc/pop-before-smtp/pop-before-smtp.conf para elegir el patrn (expresin regular) que se ajusta a las lineas de log que genera nuestro servidor POP3 o IMAP. Reiniciamos el demonio con el comando
/etc/init.d/pop-before-smtp restart

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 35 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

y comprobamos que al recoger el correo, nuestra IP se introduce en el fichero /var/lib/pop-beforesmtp/hosts.db con el siguiente script:
#!/usr/bin/perl -w use strict; use DB_File; # # # # # # # # Written by Jonas Smedegaard <dr@jones.dk>. - but copied more or less verbatim from a mail regarding pop-before-smtp by Bennett Todd <bet@rahul.net>. If someone recovers the origin of this script please tell me, and I will add it to this file. Freely redistributable, or by same rules as those of pop-before-smtp (until the original author eventually shows up and claims differently).

die "syntax: $0 filename.db [...]\n" unless @ARGV; file: for my $file (@ARGV) { my %h; dbmopen(%h, $file, 0) || do { warn "$0: dbmopen($file): $!\n"; next file; }; print "$_ -> $h{$_}\n" for keys %h; }

Pasamos a configurar Postfix. En el fichero /etc/postfix/main.cf modificamos la siguiente linea para que incluya el fichero de IPs que genera el demonio pop-before-smtp:
mynetworks = 127.0.0.0/8, 192.168.1.0/24, hash:/var/lib/pop-before-smtp/hosts

y reiniciamos Postfix con


/etc/init.d/postfix restart

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 36 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

1.3 Autenticacin a travs de SASL


SASL Son las siglas de Simple Authentication and Security Layer que viene siendo en espaol (capa de seguridad y autenticacin simple). Es un protocolo de la capa de la capa de aplicacin que permite a un protocolo como IMAP o PO3 la autenticacin. Este mecanismo funciona ms o menos de la siguiente manera, un cliente MUA se conectara al servidor de correo, el usuario tendr que validarse a este servidor por medio de SASL antes de poder sacar un correo. Lo primero que haremos ser entrar al archivo principal de postfix: $ sudo nano /etc/postfix/main.cf Al final de este archivo ingresamos las siguientes lneas: smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions =permit_sasl_authenticated,reject smtpd_sasl_authenticated_header = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtp_sasl_auth_enable = no smtpd_sasl_security_options = smtpd_sasl_auth_enable = yes (Permitiremos la autenticacin por medio de Sasl) smtpd_recipient_restrictions =permit_sasl_authenticated,reject (Esto quiere decir que permitiremos que se enven correos, despus de que hallan sido validados a travs de SASL) smtpd_sasl_authenticated_header = yes (Si queremos agregarle una cabecera a SASL) smtpd_sasl_type = dovecot (El tipo de servidor que tenemos para la recepcin de correo, con el cual queremos que se autentica para poder enviar/recibir correos) smtpd_sasl_path = private/auth (Modo cliente ) smtp_sasl_auth_enable = no (Si soporta la auth en modo cliente, le decimos que NO, ya que dovecot no soporta esta autenticacin)

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 37 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


Nota: Dovecot solo soporta la autenticacin en modo servidor, que es la que permite que un usuario se conecte al servidor, se valide hacia este para poder descargar los correos) smtpd_sasl_security_options = (En este campo, podremos adicionar opciones para la seguridad de sasl, si dejamos este campo en blanco, sasl tomara los valores que tiene por defecto). Al terminar de ingresar estas opciones reiniciamos el servidor para que cargue los nuevos cambios efectuados. $ sudo /etc/init.d/postfix restart Ahora probaremos la validacin. Lo haremos a travs debase 64 Nota: BASE64 Es un sistema de enumeracin que utiliza un sistema de codificacin para los correos electrnicos y otras aplicaciones. $ sudo printf \0%s\0%s new 123 | base64 Dnde: printf \0%s\0%s = Es la forma para generar una clave codificada. New = usuario del sistema 123 = Es el password del usuario new base64 = Es un sistema para la codificacin de los datos.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 38 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


Con esto nos damos cuenta que el MTA (Postfix) Esta validando los usuarios de una manera codificada a travs de SASL. El mtodo de cifrado, es en texto plano, pero a medida que vayamos avanzando con este manual, le adicionaremos complementos de seguridad.

Ahora le damos clic en ENVIAR / REC IBIR Y nos deber de salir un men de Autenticacin para ENVIAR el correo.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 39 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

Nos loguearemos para poder enviar el mensaje.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 40 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

1.4 Autenticacin a travs de LDAP


LDAP (Lightweight Directory Access Protocol), (Protocolo Ligero de Acceso a Directorios) es un protocolo a nivel de aplicacin que permite el acceso a un servicio de directorio ordenado y distribuido para buscar diversa informacin en un entorno de red. LDAP tambin es considerado una base de datos (aunque su sistema de almacenamiento puede ser diferente) a la que pueden realizarse consultas. Un directorio es un conjunto de objetos con atributos organizados en una manera lgica y jerrquica. El ejemplo ms comn es el directorio telefnico, que consiste en una serie de nombres (personas u organizaciones) que estn ordenados alfabticamente, con cada nombre teniendo una direccin y un nmero de telfono adjuntos. Habitualmente, almacena la informacin de autenticacin (usuario y contrasea) y es utilizado para autenticarse aunque es posible almacenar otra informacin (datos de contacto del usuario, ubicacin de diversos recursos de la red, permisos, certificados, etc). A manera de sntesis, LDAP es un protocolo de acceso unificado a un conjunto de informacin sobre una red. La versin actual es LDAPv3, la cual se detalla en el documento RFC 4510. Es posible utilizar LDAP para autenticar los usuarios de PostFix. Esto es explicado de manera explcita y extensa en el anexo de este documento; y en absoluto es parte obligatoria de esta prctica.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 41 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

2. Cifrado del envo de mensajes mediante TLS


Los mensajes que se envan desde un servidor a otro viajan en texto claro por defecto. Esto es, cualquier persona que pueda interponerse entre ambos servidores podr leer el contenido del mensaje. Para evitar esta situacin podemos recurrir al cifrado de la conexin mediante TLS (Transport Layer Security). Para empezar debemos tener instalada la versin de Postfix con soporte TLS y las utilidades openssl. En Ubuntu los paquetes se llaman postfix-tls y openssl, y se instalan con el comando
# apt-get install postfix-tls openssl

Si ya tenias instalado el paquete postfix no te preocupes, pueden convivir ambos sin problemas. Acto seguido, crearemos un certificado que servir para cifrar la conexin, ejecutando este comando
# openssl req -new -x509 -nodes -out certificado.pem -keyout postfix.pem -days 3000

certificado.pem = Nombre que le daremos a nuestro certificado con la extensin .pem - keyout postfix.pem = integracion con postfix days = Das que tedra vigencia nuestro certificado, ponemos los das que creamos pertinentes El certificado lo tendremos en el fichero certificado.pem. Ponle los permisos adecuados para que nadie excepto el servidor Postfix pueda leerlo, y pon el fichero en un directorio seguro.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 42 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

El certificado ha sido creado. Para verificarlo vamos a la siguiente ruta, donde quedaran alojados: # cd/ etc/ ssl/ # ls certificado.pem cert openssl.cnf postfix.pemprivate Abrimos el archivo certificado.pem y veremos algo as:

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 43 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

Ahora editaremos el archivo prinicipal de configuracin de postfix para incluir el soporte con TLS. $ sudo nano /etc/postifx/main.cf En este archivo agregaremos las siguientes lneas: # TLS Parameters smtpd_tls_cert_file=/etc/ssl/certificado.pem smtpd_tls_key_file=/etc/ssl/postfix.pem smtp_use_tls = yes smtp_tls_loglevel = 0 smtp_tls_session_cache_timeout = 3600s smtp_tls_note_starttls_offer = yes smtp_starttls_timeout = 300s

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 44 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

Dnde: smtpd_tls_cert_file=/etc/ssl/certificado.pem (Ruta donde se encuentra el certificado que anteriormente creamos) Situacin de la clave publica smtpd_tls_key_file=/etc/ssl/postfix.pem (Ruta donde se encuentra las claves .pem del certificado digital) Situacin de la clave privada (en los ficheros .pem, ambas estn juntas smtp_use_tls = yes (debemos utilizar TLS siempre que se pueda, le decimos que YES) smtp_tls_loglevel = 0 nivel de log. Poner 2 hasta que todo funcione bien smtp_tls_session_cache_timeout = 3600s tiempo de validez de las claves smtp_tls_note_starttls_offer = yes aviso de conexin TLS smtp_starttls_timeout = 300s tiempo mximo del intercambio de claves (Los parmetros de los tiempos de conexin de TLS UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 45 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


$ sudo /etc/init.d/postfix restart Reiniciamos el servidor de correo Postfix, para que cargue los cambios efectuados.. Ahora podremos enviar correos con mayor seguridad, ya que el mensaje viajara encriptado con un alto nivel de seguridad, de manera que slo el destinatario podr ver el correo. Nota: En la configuracin de los MDA cmo Evolution o Thunderbird podremos seleccionar que cifre el trfico por medio de TLS. En Mail

Si instalramos un sniffer como WireShark veramos que los paquetes viajan con toda la informacin del mensaje cifrado. Para Live Mail de Windows 7 tenemos que habilitar SSL en la entrada de paquetes. Es decir, tenemos que habilitar SSL para SMTP en el puerto 25.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 46 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

3. SERVIDOR ANTIVIRUS Y ANTISPAM


Es muy importante tener un buen sistema antivirus y antispam, ya que el correo electrnico es uno de los medios (el mayor dira yo) por donde se transmiten virus y demasiado spam.

3.1 SERVIDOR ANTISPAM


Primero empezaremos configurando el servidor antispam, utilizaremos SpamAssasin ya que es uno de los mejores servidores antispam para correo, y existe muy buena documentacin y soporte para este. Lo primero que haremos ser buscar en la cache de los repositorios si existe este paquete para ser instalado, de lo contrario actualizar nuestros repositorios. $ sudo apt-cache search spamassassin A continuacin instalaremos los paquetes necesarios que necesita Spamassassin para funcionar correctamente. $ sudo apt-get install spamassassin $ sudo apt-get install spamc Luego crearemos un grupo con usuarios para la parte de administracin del servidor de spam. $ sudo groupadd spamd (Creamos un grupo llamado spamd) $ sudo useradd -g spamd -s /bin/false d /var/log/spamassassin spamd (Creamos un usuario llamado spamd que sera miembro del grupo spamd) Ahora ya que tenemos un grupo con un usuario, reiniciamos el servicio de spamassassin para que cargue la ltima configuracin que realizamos. $ sudo /etc/init.d/spamassassin restart OH!!! Que pas!!! Saco un mensaje de error: $ SpamAssassin Mail Filter Daemon: disabled, see /etc/default/spamassassin Esto quiere decir que el demonio esta deshabilitado, y por lo tanto no puede funcionar. $ sudo nano /etc/default/spamassassin Modificamos una lnea, que nos permitir activar nuestro demonio. ENABLED=0 Modificamos el 0(Desactivado) por un 1(Activado) UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 47 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


ENABLED=1 Guardamos los cambios. $ sudo /etc/init.d/spamassassin restart Restarting SpamAssassin Mail Filter Daemon: spamd. Ahora tenemos el servicio activo y corriendo. Ahora lo que haremos ser dar una configuracin para el sistema anti-spam, vamos al archivo principal de configuracin de spamassassin. $ sudo nano /etc/spamassassin/local.cf descomentamos estas lnea rewrite_header Subject*** **SPAM***** (Este ser el encabezado que llevara el mensaje) report_safe 1 (Le decimos que nos mande el correo de spam de manera adjunta) required_score 5.0 (Esta es la puntuacion apartir de la cual Spamassassin reconocera un correo como Spam o no. Por defecto viene en 5.0) Debemos de tener cuidado con la puntuacin que le demos en el required score. La puntuacin va de 0 a 10. Si la ponemos muy baja podremos tener problemas ya que correos que no son SPAM podran ser tratados como si lo fueran. Si la ponemos muy alta nos tomara como correos bueno lo que en realidad es SPAM. La puntuacin ideal ser dejarlo entre 3.5 y 5.5 Ahora agregamos unas lneas, que evitaran que las cabeceras de los ISP se tomen como spam bayes_ignore_header X-Upstream-Spamfilter bayes_ignore_header X-Upstream-SomethingElse Ahora crearemos la ruta donde se encontrara el directorio de las bayesianas, esta parte es de suma importancia bayes_path /etc/spamassassin/bayes/bayes Ahora creamos El directorio donde se encontraran las bayesianas. mkdir /etc/spamassassin/bayes Listo. Ya con esto tenemos la cofiguracion de spamassassin. UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 48 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


Ahora reiniciaremos el servicio para que cargue la nueva configuracin que hemos realizado. $ sudo /etc/init.d/spamassassin restart Restarting SpamAssassin Mail Filter Daemon: spamd. Ahora lo que haremos sera integrar SPAMASSASSIN con POSTFIX Lo que haremos ser configurar postfix para que los correos sean analizados por el filtro antispam. $ sudo nano cd /etc/postfix/master.cf Aadiremos lo siguiente en la lineas en las opciones de smtp: smtp inet n -o content_filter=spamassassin:dummy smtpd

Esto lo que nos permitir ser integrar el servidor anti-spam con postfix, de manera que los correos que entren o salgan sean analizados por este servidor.

Y al final del fichero aadiremos estas lneas: spamassassin unix - n n - - pipe user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} -- ${recipient} y ya para finalizar, reiniciamos el servidor para comprobar que no haya errores. $ sudo /etc/init.d/postfix restart

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 49 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 50 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

3.2 SERVIDOR ANTIVIRUS


Ahora instalaremos y configuraremos el servidor antivirus. ClamAV es el anti-virus de correo mas utilizado y se puede integrar fcilmente con postfix (MTA) Empezaremos entonces buscando en la cache de los repositorios si existe este paquete para ser instalado. $ sudo apt-cache search clamav

Instalaremos el servidor anti-virus clamAV. $ sudo apt-get install clamav E instalaremos unos paquetes adicionales para que pueda funcionar correctamente nuestro servidor antivirus de correo. $ sudo apt-get install clamsmtp $ sudo apt-get install clamsmtp $ sudo apt-get install clamav-freshclam $ sudo apt-get install clamav-docs (Es muy importante instalar la documentacin para clamav, ya que estos manuales nos pueden ser de mucha ayuda) Ahora vamos a configurar el sistema antivirus clamAV UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 51 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

$ sudo nano /etc/clamsmtpd.conf (Editaremos el archivo principal de configuracin) Cambiaremos la direccin para enviar los correos, por defecto viene en 10025 y la modificamos. OutAddress: 10026 El puerto en el que escucha el sistema antivirus Listen: 127.0.0.1:10025 La ruta dnde esta el archivo de clamd. ClamAddress: /var/run/clamav/clamd.ctl Pondremos un encabezado para los correos que hayan sido analizados. Header: X-AV-Checked: ClamAV using ClamSMTP. Porporcionado por LucasCorp.

Este ser la localizacin del pid PidFile: /var/run/clamsmtp/clamsmtpd.pid Lugar donde dejar los ficheros temporales TempDirectory: /var/spool/clamsmtp El usuario con el que lanzarlo User: clamsmtp Accin a realizar en caso de detectar virus. UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 52 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


VirusAction: /usr/local/bin/virusalert.sh En este fichero crearemos un script que definir lo que har el sistema. Antivirus en caso de detectar un virus. $ sudo su # touch virusalert.sh # nano virusalert.sh Le daremos permisos a este archivo. # chmod 744 virusalert.sh Entramos a este archivo y agregamos la siguiente sintaxis

#!/bin/sh FROM='Sistema antivirus <antivirus@lomu.homelinux.org>' TO=$RECIPIENTS MAILER='/usr/sbin/sendmail -it' SUBJECT=`/bin/echo "El correo contiene un virus" | /usr/bin/nkf -jMB` $MAILER <<EOM From: $FROM To: $TO Subject: =?ISO-2022-JP?B?$SUBJECT?= Se ha detectado cdigo malicioso en el adjunto que contena el correo. Pngase en contacto con el administrador de su sistema LUKASCORPORATION si est UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 53 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


seguro/a de que no es un virus, pida a la persona que le enva el fichero que por favor lo ponga en un fichero comprimido protegido por una contrasea. Disculpe las molestias. [Virus] $VIRUS [De] $SENDER [Para] $RECIPIENTS EOM exit 0 Esto lo que har ser que en caso de que clamAV detecte algn virus, notificara de inmediato con el administrador de la red, por medio de un correo electrnico, notificando que ha detectado virus, y sern almacenados en una boveda especial. La ltima configuracin ser decirle a postfix que todos los correos entrantes y salientes sean analizados por el sistema antivirus, en nuestro caso clamAV

# cd /etc/postfix/ # nano master.cf Y aadiremos al final de este archivo las siguientes lneas: ## FILTRO ANTIVIRUS ## Filtro antivirus usado por content filter Scan unix n 16 UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 54 de 81

smtp

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


-o smtp_send_xforward_command=yes -o smtp_enforce_tls=no # Para inyectar el correo a postfix una vez analizado 127.0.0.1:10026 inet n n 16 -o content_filter= -o

smtpd

receive_override_options=no_unknown_recipient_checks,no_header_body_checks -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks_style=host -o smtpd_authorized_xforward_hosts=127.0.0.0/8

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 55 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


Ahora iremos al archivo main.cf y agregaremos unas cuantas lneas del filtro y el escaneo. # nano /etc/postfix/main.cf content_filter = scan:[127.0.0.1]:10025 Reiniciamos para que carguen la ltima configuracin. # sudo /etc/init.d/clamsmtp restart # sudo /etc/init.d/postfix restart Llegado a este punto, ya tendremos configurado postfix con un sistema de seguridad completo como es con antivirus y antispam. Probaremos que los mensajes sean analizados.

Enviamos un correo desde root hacia new3... all en el encabezado nos podremos dar cuenta de que el correo ha sido previamente escaneado. Con lo que podemos darnos cuenta que nuestro Antivirus, ha analizado el correo antes de que podamos abrirlo.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 56 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

3.3 Antivirus y antispam mediante expresiones regulares


Postfix soporta bsqueda de expresiones regulares en las cabeceras de los mensajes. En estas cabeceras es donde siempre vienen definido el o los ficheros que van adjuntos al mensaje. A diferencia de otros ficheros, estos no necesitan ser procesados con postmap, simplemente con ejecutar postfix reload despus de editarlos es suficiente. Para configurar las bsquedas mediante expresiones regulares la configuracin sera esta
body_checks = regexp:/etc/postfix/anti_virus, pcre:/etc/postfix/pcre_anti_virus header_checks = pcre:/etc/postfix/cabeceras

El fichero anti-virus, filtra los ficheros adjuntos, y el cuerpo del mensaje. Este fichero contiene lo siguiente
# Virus /(filename|name)="(Happy99|Navidad|prettypark)\.exe"/ REJECT /(filename|name)="(pretty park|zipped_files|flcss)\.exe"/ REJECT /(filename|name)="(Msinit|wininit|msi216)\.exe"/ REJECT /(filename|name)="(Avp_updates|Qi_test|Anti_cih)\.exe"/ REJECT /(filename|name)="(Emanuel|kmbfejkm|NakedWife)\.exe"/ REJECT /(filename|name)="(Seicho_no_ie|JAMGCJJA|Sulfnbk|decrypt-password)\.exe"/ REJECT /(kak|day)\.(reg|hta)/ REJECT /Rem I am sorry.*/ REJECT /Te mando este archivo para que me des tu punto de vista/ REJECT /I send you this file in order to have your advice/ REJECT /Espero me puedas ayudar con el archivo que te mando/ REJECT /Espero te guste este archivo que te mando/ REJECT /Este es el archivo con la informacin que me pediste/ REJECT # ficheros extraos /(filename|name)=".*\.(asd|chm|dll|hlp|hta|js|ocx|pif)"/ REJECT /(filename|name)=".*\.(scr|shb|shs|vb|vbe|vbs|wsf|wsh)"/ REJECT # CLSID /(filename|name)=".*\.\{.*\}"/ REJECT # Iframe /(\<IFrame\ src\=\"|\<IFRAME\ src\=\"|\<IFRAME\ SRC\=\")/ REJECT

El siguiente fichero es pcre_anti_virus, que filtra los ficheros adjuntos por extensiones y tambien fichero codificados en MIME
/^begin\s+\d{3}\s+.+?\.(bat|chm|cmd|com|hta|jse?|pif|scr|shb|vb[esx]|ws[fh])\b/ REJECT /^\s+(file)?name="?.+?\.(bat|chm|cmd|com|hta|jse?|pif|scr|shb|vb[esx]|ws[fh])\b/ REJECT

Y por ltimo, el fichero cabeceras, que filtra las cabeceras de los mensajes (el from, subject,
etc.). /^From: Hahaha <hahaha@sexyfun.net>$/ REJECT

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 57 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


/^Subject: Enanito si, pero con que pedazo!$/ REJECT /^Subject: Re: Your password!$/ REJECT Estas infectado con el Frethem. Desinfectate.

Como ves, se pueden poner mensajes despus del REJECT. Estos mensajes sern recibidos por la persona que mand el mensaje. Tienes una lista muy extensa de expresiones regulares en la URL http://www.hispalinux.es/~data/postfix/

Integracin con Amavisd-New


Amavisd-New es un software que filtra todos los mensajes de correo, haciendolos pasar por un programa antivirus y/o un programa antispam. En este documento no tratar la instalacin o configuracin de amavis, sino la integracin con Postfix 2.0 Una vez instalado y configurado Amavisd-New, aadimos al final stas lineas en el fichero master.cf:
smtp-amavis unix n -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes 2 smtp

127.0.0.1:10025 inet n n - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000

y en el fichero main.cf aadimos:


content_filter = smtp-amavis:[127.0.0.1]:10024

Reiniciamos Postfix con postfix reload y ya lo tenemos listo.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 58 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


Greylisting
Greylisting es el mtodo por el cual se deniega el primer envo de un remitente desconocido, mediante un cdigo de error 450 (deferred). Muchos de los virus y spammers no siguen el protocolo SMTP correctamente, con lo que nunca volvern a enviar ese mensaje. Mediante el greylisting podemos evitar que nos lleguen mensajes de virus y proxies abiertos, pero no podemos evitar que nos lleguen de servidores de correo mal configurados que permiten relay, aunque con un poco de suerte en el siguiente reenvo ese servidor ya est en alguna lista RBL y podremos evitarlo. El funcionamiento es como sigue:

Llega un correo con remitente desconocido Se deniega con un error 450 (intentar ms tarde) Se guarda la IP, el From y el To en un fichero Si el correo era un spam o un virus, es muy raro que nos lo vuelvan a enviar Si el correo viene de un servidor SMTP, ser enviado de nuevo pasados unos minutos Cuando llega de nuevo el correo, lo dejar pasar

Veamos cmo implementar el greylisting en un servidor Ubuntu con Postfix 2.1 o superior (las versiones anteriores no soportan esta caracterstica): Instalamos el paquete postgrey
# apt-get install postgrey

Editamos el fichero /etc/postfix/main.cf y lo dejamos tal que as:


[...] smtpd_recipient_restrictions = [...] reject_unauth_destination, check_policy_service inet:127.0.0.1:60000 [...]

Con esto configuramos Postfix para que compruebe cada correo que llega mediante el demonio greylist, que est escuchando en el puerto 60000 de la IP 127.0.0.1 Reiniciamos Postfix y ya lo tendremos funcionando. Puedes obtener ms informacin sobre greylisting en http://greylisting.org

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 59 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

ANEXO: A.1 Servidores Virtuales


Los servidores virtuales son realmente todos los dominios que gestiona nuestro servidor. Es decir, que un solo servidor de correo puede recibir e-mails para muchos dominios diferentes. La configuracin de los servidores virtuales sera
mydestination = mihost.dominio.com, localhost.dominio.com, localhost, hash:/etc/postfix/virtual

Veamos lo que contiene el fichero /etc/postfix/virtual


dominiovirtual1.com usuario1@dominiovirtual1.com usuario2@dominiovirtual1.com usuario3@dominiovirtual1.com dominiovirtual2.com usuario1@dominiovirtual2.com usuario2@dominiovirtual2.com usuario3@dominiovirtual2.com cualquiercosa usuariolocal1 usuariolocal2 usuariolocal3 cualquiercosa usuariolocal4 usuariolocal5 usuariolocal6

Lo de cualquiercosa es eso, cualquier palabra, da lo mismo la que sea, pero ES OBLIGATORIO que haya una (los ficheros de hash van por pares). Cada vez que modifiques este fichero debes ejecutar el comando
cd /etc/postfix && postmap virtual && postfix reload

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 60 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

A.2 Servidores de backup


Los servidores de backup son servidores de correo que solo actan cuando el servidor principal tiene algn problema y no puede recibir correo (problemas de rutado, cada del servidor, etc.). La misin del servidor de backup es recoger todo el correo mientras el servidor principal est inaccesible, y guardarlo hasta que pueda ser entregado. Aqu entra en juego el DNS, ya que debemos configurar la zona del dominio para que especifique dos servidores de correo con distintas prioridades. Un ejemplo sera este:
# Fichero /etc/bind/midominio.es $TTL @ 86400 IN SOA root.midominio.es. 2003073101 86400 7200 2592000 172800 ) 192.168.4.1 dns1.midominio.es. dns2.midominio.es. 1 correo 2 correobackup A A A A A 192.168.4.2 192.168.4.3 192.168.4.4 192.168.4.1 192.168.4.5 hostmaster.midominio.es. ( ; Serial ; Refresh (1 dia) ; Retry (2 horas) ; Expire (30 dias) ; Default TTL (2 dias)

IN IN IN IN IN www correo correobackup dns1 dns2

A NS NS MX MX IN IN IN IN IN

Fjate en las lneas "IN MX". Hemos puesto que el servidor principal es correo y tiene una prioridad 1, y el servidor correobackup tiene una prioridad 2. Esto quiere decir que cuando alguien enve un correo a nuestro dominio, primero lo intentar enviar a la mquina correo, y en caso que no pueda enviarlo, lo enviar a la mquina correobackup. El fichero main.cf de la mquina correobackup debe llevar estas opciones:
mydestination = dominio.es transport_maps = hash:/etc/postfix/transport

y el fichero transport contiene:


midominio.es smtp:correo.midominio.es

Con esto especificamos que todo el correo que llegue para el dominio midominio.es debe ser reenviado a la mquina correo.midominio.es mediante el protocolo SMTP. El servidor de backup intentar enviar los mensajes a la mquina principal cada poco tiempo, si no lo consigue, lo intenta ms tarde. Por defecto, postfix devuelve los mensajes que no ha podido enviar en 5 das, as que si tu servidor UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 61 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


principal de correo va a estar ms de 5 das off-line, puedes aumentar el tiempo de vida de los mensajes en correobackup mediante el comando maximal_queue_lifetime en el fichero main.cf.

A.3 Medios de transporte


Los medios de transporte sirven para desviar el correo entrante a otros servidores de correo en funcin del dominio. Esto es til para servidores de ISP que manejan cantidades grandes de correo. Una configuracin tpica sera
transport_maps = hash:/etc/postfix/transport

y el fichero /etc/postfix/transport contiene


dominio1.com dominio2.com dominio3.com smtp:servidor2.dominio2.com smtp:servidor3.dominio3.com smtp:servidor4.dominio4.com:10025

En la ltima lnea hemos especificado un nmero, el 10025, que sera el puerto de destino del servidor remoto. En ese puerto debera haber un demonio escuchando las peticiones externas para redirigir el correo al servidor. El hecho de especificar un puerto distinto al 25 (SMTP) puede servir para evitar firewalls, proxies o incluso para asegurarnos que ningn sniffer interceptar nuestro correo. Al modificar este fichero, se debe ejecutar el comando
cd /etc/postfix && postmap transport && postfix reload

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 62 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

A.4 Instalacin y configuracin de LDAP


Es un protocolo a que permite el acceso a un Servicio de Directorios ordenado y distribuido para estructurar la informacin en un entorno de red.

A.4.1 OPENLDAP
Este manual, esta dedicado a OPEN LDAP, que es una implementacin libre del protocolo que soporta mltiples esquemas por lo que puede utilizarse para conectarse a cualquier otro LDAP, como lo es Mandriva Directory Server, Fedora Directory Servero Red Hat Directory Server. Ahora lo que realizaremos ser buscar en la cache de nuestros repositorios, que si se encuentren los paquetes necesarios para la instalacin de OpenLdap. $ sudo apt-cache search ldap-utils ldap-utils - OpenLDAP utilities $ sudo apt-cache search migrationtools migrationtools - Migration scripts for LDAP $ sudo apt-cache search slapd slapd - OpenLDAP server (slapd) slapd-dbg - Debugging information for the OpenLDAP server (slapd) Ahora que sabemos que todos los paquetes se encuentran en la cache de los repositorios, podremos instalarlos. $ sudo apt-get install ldap-utils $ sudo apt-get install migrationtools $ sudo apt-get install slapd Al instalar este paquete de slapd. Nos pedir una contrasea para el administrador, pero es opcional ponerla ya que mas adelante configuraremos los parmetros bsicos y en ellos se incluye la contrasea. Luego de que tenemos instalado estos paquetes, iniciaremos la configuracin. $ sudo dpkg-reconfigure slapd De inmediato iniciara el asistente para la configuracin de slapd

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 63 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

Le decimos que NO...ya que queremos configurar los parmetros bsicos de Openldap.

Escribimos el dominio para que OpenLDAP construya la base DNS.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 64 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

El nombre de nuestra organizacin puede ser nuestro dominio.

Escribiremos una contrasea momento de efectuar algn administrador.

de administrador, de manera que cambio, debemos de estar logueados

en como

el el

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 65 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

Ahora le diremos que el motor de la base de datos que utilizaremos ser de tipo BDB.

Nos pregunta que si deseamos borrar la base de datos cuando purguemos el paquete Slapd. Le respondemos que no, para permitir que la base de datos quede presente en el momento de eliminar el paquete de instalacin.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 66 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

Le decimos que si, ya que no tenemos una base de datos configurada, porque apenas la vamos a crear.

Nos preguntar que si queremos que instale LDAPV2. Le respondemos que NO, ya que no ser necesario porque todos los protocolos y servicios que tenemos instalados tienen soporte con ldapv3. Ahora realizamos la respectiva configuracin para que el Servidor use la autenticacin de LDAP.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 67 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


Instalamos los paquetes necesarios, para poder llevar a cabo esta operacin. Primero que todo, comprobamos en la cache de los repositorios, que se encuentren los paquetes. $ sudo apt-cache search auth-client-config auth-client-config - pam and NSS profile switcher $ sudo apt-cache search libnss-ldap libnss-ldap - NSS module for using LDAP as a naming service libpam-ldap - Pluggable Authentication Module allowing LDAP interfaces libnss-ldapd - NSS module for using LDAP as a naming service libpam-ccreds - Pam module to cache authentication credentials nss-updatedb - Cache name service directories in DB format $ sudo apt-cache search libpam-ldap server libpam-ldap - Pluggable Authentication Module allowing LDAP interfaces ldapscripts - Add and remove user and groups (stored in a ldap directory). libpam-ccreds - Pam module to cache authentication credentials nss-updatedb - Cache name service directories in DB format Ahora podemos instalar los paquetes. $ sudo apt-get install auth-client-config libnss-ldap $ sudo apt-get install libpam-ldap Cuando estemos instalando este ultimo paquete, nos pedir una configuracin que a continuacin explicaremos. Ldap server uniform resource identifier ldapi://127.0.0.1/ distinguised name of the search base dc=lucas,dc=com ldap version to use 3 make local root database admin si does the ldapdatabase requiere login no ldap account for root UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 68 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


cn=admin,dc=lucas,dc=com (Este ser el usuario principal de Ldap) Ldap root account password ############# Configuracion deldap. conf $ sudo nano /etc/ldap.conf Entramos al archivo principal de ldap, y modificaremos los siguientes campos. Nota: Estos campos varan de acuerdo a la configuracin de la direccin IP, y del dominio que se tenga instalado en la maquina. # host 127.0.0.1 host 192.168.1.1 base dc=lucas,dc=com uri ldapi://127.0.0.1/ rootbinddn cn=admin,dc=lucas,dc=com port 389 bind_policy_soft Ahora copiamos los archivos $ sudo cp /etc/ldap.conf a /etc/ldap/ldap.conf Luego creamos un archivo de configuracin para la autenticacin. $ sudo su # cd /etc/auth-client-config/profile.d/ # touch open_ldap E ingresamos las siguientes lneas:
[open_ldap] nss_passwd=passwd: compat ldap nss_group=group: compat ldap nss_shadow=shadow: compat ldap pam_auth=auth required pam_env.so auth sufficient pam_unix.so likeauth nullok auth sufficient pam_ldap.so use_first_pass auth required pam_deny.so pam_account=account sufficient pam_unix.so account sufficient pam_ldap.so account required pam_deny.so

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 69 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


pam_password=password sufficient pam_unix.so nullok md5 shadow use_authtok password sufficient pam_ldap.so use_first_pass password required pam_deny.so pam_session=session required pam_limits.so session required pam_mkhomedir.so skel=/etc/skel/ session required pam_unix.so session optional pam_ldap.so

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 70 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


Ahora lo que haremos, ser habilitar la autenticacin de ldap. # auth-client-config -a -p open_ldap # exit Ahora reiniciaremos el servidor, para que cargue los cambios efectuados, y comprobar que no tenemos errores. $ sudo /etc/init.d/slapd restart

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 71 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

A.4.2 Software de administracin de LDAP


LAT (Ldap Admin Tools) Es de una formidable herramienta para la administracin de LDAP. Ideal para administrar grficamente toda la unidad del directorio. descargamos este software desde: http://www.ldapsoft.com/ldapadmintool.html Ahora instalaremos el software; Buscamos la ruta donde este se encuentra $ sudo ./l dapA dmin Tool -2.4 .x- Linux -x86 -Ins tall .bin E iniciaremos la instalacin. Abrimos el software por primera vez.

Lo primero que haremos sera crear una nueva conexin, entre este software (Ldap Admin Tools) y OpenLdap.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 72 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

Connection Name = conexin LDAP (Este sera el nombre que le queremos dar a la conexin) Hostname =127 .0.0 .1 (En esta opcion podemos ingresar el nombre del equipo donde se encuentra ldap, o la direccin IP de este. Para nuestro caso utilizaremos la direccin 127.0.0.1 ya que ldap se encuentra instalado y configurado en nuestro equipo local) port =389 (El puerto por el cual se realizara la conexin. 389 viene por defecto) protocol = LDAP v3 (Este sera el protocolo que utilizara ldap... Podemos utilizar la version2 o la version3. Base DN =dc=lucas, dc=com (Esta es la base de como esta conformado nuestro dominio, ya que es lucas.com y se define como dc=lucas y el .com que sera dc=com) Por ltimo testeamos que se encuentre la conexin activa con ldap, para poder ingresar y realizar los cambios que queramos.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 73 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

Ahora definiremos los parmetros de autenticacin. Simple Authentication y los parametros seran: Bind DN =cn=a dmin ,dc= luca s,dc =com (El usuario administrador de ldap, sera admin y ponemos la base de nuestro dominio.) Password =** **** **** **** (Este ser el password que anteriormente habamos definido para el usuario admin) Y comprobamos que las credenciales sean validas.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 74 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

Estas son algunas de las opciones de la conexin que podemos modificar. Y para finalizar damos clic en Finish.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 75 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

En este momento ya tenemos una conexin establecida entre LAT y OPENLDAP.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 76 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa

A.4.3 Integracin de OPENLDAP con POSTFIX


Ahora lo que haremos sera integrar OpenLdap con Postfix. Lo primero que haremos sera instalar el paquete que nos brinda el soporte entre ldap y postfix. Buscamos que si se encuentre el paquete. $ sudo apt-cache search postfix-ldap LDAP map support for Postfix Ahora podemos instalar el paquete $ sudo apt-get install postfix-ldap Lo primero que haremos ser crear la estructura (Schema) para poder realizar usuario y grupos virtuales para el servidor de correo, validndose contra OpenLdap. # sudo nano /etc/ldap/slapd.conf

Adicionaremos un nuevo schema Include /etc/ldap/schema/postfix.schema UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 77 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


Ahora vamos a esta ruta y creamos un fichero que contendr el nuevo schema. $ cd /etc/ldap/schema $ sudo touch postfix.schema y agregaremos los siguientes esquemas # Extensions to support Postfix MTA using Openldap experimental OID's attributetype ( 1.3.6.1.4.1.15347.2.102 NAME 'transport' SUP name) attributetype ( 1.3.6.1.4.1.15347.2.101 NAME 'mailRoutingAddress' SUP mail ) attributetype ( 1.3.6.1.4.1.15347.2.110 NAME 'maildest' DESC 'Restricted to send only to local network' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} ) attributetype ( 1.3.6.1.4.1.15347.2.111 NAME 'mailaccess' DESC 'Can be mailed to restricted groups' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} ) attributetype ( 1.3.6.1.4.1.15347.2.100 NAME ( 'maildrop' ) DESC 'RFC1274: RFC822 Mailbox' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} ) attributetype ( 1.3.6.1.4.1.10018.1.1.1 NAME 'mailbox' DESC 'The absolute path to the mailbox for a mail account in a non-default location' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) objectclass ( 1.3.6.1.4.1.15347.2.1 NAME 'mailUser' DESC 'E-Mail User' SUP top AUXILIARY MUST ( uid $ mail $ maildrop ) MAY ( cn $ mailbox $ maildest $ mailaccess ) ) UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 78 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


objectclass ( 1.3.6.1.4.1.15347.2.2 NAME 'mailGroup' DESC 'E-Mail Group' SUP top STRUCTURAL MUST ( cn $ mail ) MAY ( mailRoutingAddress $ member $ description ) ) objectclass ( 1.3.6.1.4.1.15347.2.3 NAME 'transportTable' DESC 'MTA Transport Table' SUP top STRUCTURAL MUST ( cn $ transport ) ) Si comprendemos la sintaxis de este schema, podemos adicionar definiciones a esta estructura. Despus de haber creado el archivo con el esquema, vamos al archivo principal de Postfix y agregamos las siguientes lneas, que nos permitir crear usuarios virtuales con OpenLdap e integrarlos fcilmente a postfix. $ sudo nano /etc/postfix/main.cf # LDAP settings virtual_maps = ldap:ldapgroups, ldap:ldapalias ldapgroups_server_host = localhost ldapgroups_server_port = 389 ldapgroups_search_base = ou=Groups,dc=lucas,dc=com ldapgroups_bind = no ldapgroups_timeout = 30 ldapgroups_query_filter = (&(mail=%s)(objectclass=mailGroup)) ldapgroups_special_result_attribute = member ldapalias_server_host = localhost ldapalias_server_port = 389 ldapalias_search_base = ou=Users,dc=lucas,dc=com ldapalias_bind = no ldapalias_timeout = 30 ldapalias_query_filter = (&(mail=%s)(objectclass=mailUser)) ldapalias_result_attribute = maildrop transport_maps = ldap:ldaptransport

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 79 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


ldaptransport_server_host = localhost ldaptransport_server_port = 389 ldaptransport_search_base = ou=Transport,dc=lucas,dc=com ldaptransport_bind = no ldaptransport_timeout = 30 ldaptransport_query_filter = (&(cn=%s)(!(cn=server.mydomain.com)) (objectclass=transportTable)) ldaptransport_result_attribute = transport Para que se haga una bsqueda virtual del parmetro mydestination quito el dns local y dejamos el nombre de equipo una, y localhost: debajo de esta lnea adicionamos el parmetro: virtual _mailbox_domains=lucas.com virtual_mailbox_base=/vmail/correos (aqu es donde almaceno los correos ) virtual_mailbox_maps=ldap:/etc/postfix/ldap.conf (aqu es donde se hace las consultas de ldap) virtual_uid_maps= stactics:5000 virtual_gid_maps=stactics:500 0 (en estas dos ultimas lneas estamos especificando el usuario/grupo virtual admin y los buzones para estos). Es obvio que debemos tener este usuario ya creado $ sudo useradd -m -d /vmail -s /bin/false -U -u 5000 vmail (vmail es el nombre de usuario) con su respectivo directorio # sudo su # mkdir /vmail/correos chown 5000:5000 /vmail/correos # exit

Despus de haber adicionado estas lneas reiniciamos OpenLdap, para que carguen los nuevos cambios efectuados y sercionarnos de que no hallan errores Nota: Cada vez que reiniciemos algn servicio, verifiquemos en los Logs pertinentes que no existen errores.

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 80 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

M08- Serveis de xarxa


$ sudo /etc/init.d/postfix restart $ sudo /etc/init.d/slapd restart

(Slapd se demorara un poco mas para reiniciarse ya que apenas esta integrando los nuevos cambios realizados)

UF3- Servidor PostFix Prctica Linux Elaborat: Toni Soler Pg. 81 de 81

El document vlid est dipositat en el programa informtic de gesti documental. Aquest document pot esdevenir obsolet.

Das könnte Ihnen auch gefallen