Introducci´
on a Postfix
Curso de Introducci´on al Software Libre para Alumnos Administraci´on avanzada
Adri´an Santos Marrero
¿Qu´
e es?
I Es un MTA (Mail Transfer Agent)
I Transporta correo
I Implementa el protocolo SMTP (Simple Mail Transfer Protocol)
¿Qu´
e NO es?
I No es un MDA (Mail Delivery Agent)
I Ejemplos que s´ı lo son: Procmail, Maildrop, . . .
I No es un MUA (Mail User Agent)
I Ejemplos que s´ı lo son: Thunderbird, Pine, Mutt, . . .
I No es un servidor IMAP, POP, . . .
Caracter´ısticas
I Modular (al contrario que Sendmail por ejemplo)
I Seguro
I Robusto
I Escalable
I Altamente configurable
I . . . y adem´as de manera sencilla . . .
Modular
I Cada componente est´a implementada en un proceso distinto
Seguridad
I Procesos independientes en vez de uno solo monol´ıtico
I Se ejecutan con el menor nivel de privilegios posibles
I Se analiza cualquier texto que se env´ıe a una shell (escapando caracteres extra˜nos)
I No existe un ´arbol de procesos:
I Sin herencia de descriptores de archivos I Sin memoria compartida
I Sin se˜nales I . . .
Seguridad (II)
I La mayor´ıa de los procesos trabajan dentro de un chroot
I Se tienen especial cuidado en no usar buffers de memoria de tama˜no fijo (por precauci´on ante ataques de Buffer Overflow)
I Control de uso de recursos:
I Si detecta que alg´un recurso de la m´aquina (CPU, memoria, espacio en disco, . . . ) se est´a agotando no empeora el problema. Se desactiva el mismo
Robustez
I La ca´ıda de uno de los procesos no afecta al resto del sistema
Escalable
I La cadena de trabajo de Postfix se puede dividir en varias m´aquinas. Por ejemplo, se puede poner una m´aquina
realizando todo el trabajo de filtrado y otra que expanda alias, entrego el correo en los mailbox, . . .
I Se puede repartir el trabajo entre varias m´aquinas
Ejercicio 1
I apt-get install postfix I mail root
I Acabar el correo con CTRL + D
Arquitectura
I Lo mejor es leer la documentaci´on:
I En la red I O en local
Otras herramientas
I A parte de demonios, Postfix instala otros tipos de comandos
postconf: Permite consultar y modificar la configuraci´on de Postfix
postsuper: Herramienta administrativa para la gesti´on de colas y correos
qshape: Permite conocer el estado de las colas de una manera amigable
mailq y sendmail: Aplicaciones de compatibilidad con Sendmail Mailq devuelve el estado de la cola en una lista y sendmail se comporta como lo hac´ıa la versi´on original (manda correos, etc.)
Otras herramientas (II)
postcat: Imprime el contenido de un correo. Postfix los almacena en un formato que puede ocasionar problemas a los editores de texto tradicionales
newaliases, postmap, postalias, . . . : Aplicaciones necesarias a la hora de trabajar con la configuraci´on de Postix. Normalmente “compilan” archivos que hemos escrito a algo entendible por Postfix.
Clases de direcciones
I Postfix usa el concepto “Clases de direcciones”
I Las principales son:
Correo local Cuentas de usuario del propio sistema
Mailbox virtuales No son cuentas shell en la m´aquina pero eres el destinatario final del env´ıo
Alias virtuales Estas direcciones siempre se redirigen. No se entregar´a nada aunque puede que vuelva a entrar el correo en Postfix
Relay Eres un nodo de reenv´ıo de correo. Aceptas correo que no viene para ti con el objetivo de reenviarlo. Normalmente se colocan estas m´aquinas en fronteras de redes
Ejercicio 2
I Configurar Postfix para que acepte correos a dominios virtuales
Filtrado
I Las caracter´ısticas de filtrado de Postfix son muy completas
I Permite una granularidad muy fina en cuanto a los filtros
I B´asicamente hay dos grandes familias de filtros:
I Los que se ejecutan durante la comunicaci´on SMTP I Los que procesan el correo en etapas posteriores
I Los primeros notifican al cliente el resultado del comando mediante c´odigos num´ericos:
2XX Todo correcto
3XX Es necesaria informaci´on adicional
4XX Error temporal
5XX Error definitivo
lagoon@acerito:~$ telnet alt2.gmail-smtp-in.l.google.com 25 Trying 66.249.83.114...
Connected to alt2.gmail-smtp-in.l.google.com. Escape character is ’^]’.
220 mx.google.com ESMTP i15si5148504wxd
helo prueba
250 mx.google.com at your service
mail from: <[email protected]>
250 2.1.0 OK rcpt to: <[email protected]> 250 2.1.5 OK data 354 Go ahead From: <[email protected]> Subject: Prueba Prueba . 250 2.0.0 OK 1196358878 i15si5148504wxd quit
221 2.0.0 mx.google.com closing connection i15si5148504wxd
Protocolo SMTP y filtros Postfix
I Para cada uno de los comandos enviados por el cliente se puede configurar una lista de comprobaciones
Filtros externos
I A parte de estas comprobaciones en la comunicaci´on SMTP, Postfix puede invocar otros comandos que analizen/filtren el correo
I Existen varias configuraciones descritas en la ayuda de Postfix:
I Filtros que se aplican despu´es de almacenar los correos en las colas
I Filtros que se aplican antes de almacenar los correos en las colas
Conclusiones
I Si te has quedado con ganas de saber m´as:
I http://www.postfix.org/documentation.html
I Libros I Preg´untanos
¿Qu´
e se nos ha quedado en el tintero?
I Un mont´on de cosas. . .
I Ver los detalles, por supuesto
Integraci´on con otros paquetes
I SpamAssassin I Amavis-ng I ClamAV I MIMEDefang I Procmail I Mailman I . . .
I Expresiones regulares,header checks ybody checks I Archivos master.cf
I transport maps
I Diferencias entre Mbox y Maildir
I Archivo .forward I Fast flush
I TLS y SSL
I SASL