• Suscríbete al Feed Espacio Linux
  • Suscríbete al Feed por Email
  • Sigue a Espacio Linux en Identi.ca
  • Espacio Linux también en Facebook
  • Sigue a Espacio Linux en Twitter
  • Sigue a Espacio Linux en Google +
          Iniciar sesión | Registrarse

Configuración de Postfix

Historico

  • 19-Sep-2002 v0.1 (Javier Cantero): Voy a configurar un Postfix
  • 20-Sep-2002 v0.2 (Jayr Al-Dyn): Bloqueo de SPAM con Postfix

Introducción
Vamos a configurar el servidor de correo Postfix,
de Vietse Wenema. Las razones para usar este mailer en vez de otro son diversas y variadas, pero no voy a tratar de convencerle. Úselo si le apetece.

Instalación
La instalación en las distribuciones actuales se limita a usar el paquete suministrado en el formato adecuado (.deb, .rpm). Asumo que usted sabe hacer
por ejemplo un apt-get install postfix en Debian 3.0. Si no es así, tal vez debería consultar la documentación de su distribución.

Configuración básica
Nota: La configuración de postfix suele residir en el directorio /etc/postfix. En este documento asumiremos dicha ubicación. Si no es así, deberá hacer usted mismo la correspondencia con el directorio adecuado.

El fichero de configuración fundamental de Postfix es un fichero de _texto plano_ llamado main.cf. En él residen los cientos de parámetros de configuración que se le pueden suministrar a este servidor de correo.
Afortunadamente, la mayoría de dichos parámetros son opcionales o vienen de serie ya configurados con unos valores adecuados. Así que para una
configuración básica sólo necesitaremos cambiar algunos valores.

A los parámetros se le asigna un valor con el simple método método:%%%

   parametro = valor

Dentro de la parte valor se puede utilizar el valor de otro parámetro
mediante de la utilización del símbolo “dolar” por delante del nombre del parametro. Ejemplo (ficticio):

miparametro = mivalor
otroparametro = $miparametro

pero esto se entiende mejor con los ejemplos que quedan por venir.

Nombrando al servidor
Los parámetros que casi cualquier configuración debe modificar son los que indican el nombre y el dominio de la máquina donde está ubicada el servidor.
Muchos otros parámetros (incluidos parámetros que vienen configurados por defecto) utilizan estos valores, así que es fundamental su correcta
configuración.

  • myhostname sirve para indicar a Postfix el nombre de la máquina donde reside. Debe ser el nombre completamente cualificado (FQDN) o podría tener problemas.
  • mydomain le indica al servidor el nombre de dominio de nuestra máquina (normalmente sufijo del parámetro anterior).

Así, si por ejemplo nuestro servidor de correo está en la máquina llamada mordor del dominio escomposlinux.org, los parámetros resultantes serían:

myhostname = mordor.escomposlinux.org
mydomain = escomposlinux.org

Correo saliente
Ahora queremos configurar el nombre con el que saldrán los correos enviados desde nuestro sistema. Esto lo hace el parámetro myorigin. Por defecto el parámetro myorigin vale $myhostname (es decir, el nombre completo de la máquina donde reside el servidor). Esto significaría que nuestros correos saldrían con origen usuario@mordor.escomposlinux.org. En la mayoría de los casos no queremos incluir el nombre de la máquina del servidor del correo en las
direcciones, sino únicamente el dominio: usuario@escomposlinux.org. Para
ello modificaremos este parámetro:

myorigin = $mydomain

(aquí vemos un ejemplo del uso de parámetros en los valores de otros parámetros).

Correo entrante
Con correo entrante nos referimos a los mensajes de correo que están dirigidos a nuestro servidor. O dicho de otro modo, aquellos que el servidor debe entender como que son locales (destinados a usuarios de nuestra
máquina). El resto de correo (el correo no local, denominado habitualmente remoto) el servidor tratará de enviárselo a su destino.

Postfix tiene el parámetro mydestination para que el usuario le indique de qué nombres de dominios debe considerar el correo como local (es decir, como “suyo”). mydestination es una lista de nombres de dominios separados por
espacios en blanco. También se pueden incluir nombres de ficheros donde exista una lista de dominios y tablas de búsqueda, pero eso lo dejaremos para una configuración avanzada.

Por defecto, Postfix sólo acepta correo dirigido a sí mismo. Esto es tanto como
decir que la variable está configurada con el siguiente valor:

mydestination = $myhostname, localhost.$mydomain

El segundo nombre es una variante del nombre local de la máquina que siempre deberemos incluir para prevenir problemas. No haga caso, y se arrepentirá. 😛

Lo mismo que ocurría en el caso del correo saliente, lo habitual no es aceptar sólo correo para la máquina en concreto (usuario@mordor.escomposlinux.org),
sino para todo el dominio (usuario@escomposlinux.org). Esto nos permitirá recoger el correo de todas nuestras máquinas en una única máquina general donde
resida nuestro servidor de correo. Debemos por lo tanto modificar el parámetro mydestination convenientemente para reflejar tal situación:

mydestination = $myhostname,
localhost.$mydomain, $mydomain

¡La configuración correcta de este parámetro es, por lo tanto, fundamental! Si se olvida de alguno de los nombres posibles de su máquina de correo, parte del
correo enviado entrará en un ciclo sin fin (correo no reconocido como local, tratado de enviar a su destino -que es otra vez nuestro servidor- y vuelve a recibirse) hasta que el mensaje sea descartado por exceso número de saltos de
correo.

Por ello, no está de más añadir a mydestination cualquier posible nombre de dominio adicional de la máquina donde reside el servidor. Pongamos un ejemplo donde aceptamos también el correo enviado a un alias de mordor que es smtp y también a www por si alguien se le ocurre mandar correo al servidor web que está en la misma máquina:

mydestination = $myhostname, localhost.$mydomain, $mydomain,
smtp.$mydomain, www.$mydomain

Es bastante probable que en sistemas reales esta lista sea todavía mayor, teniendo en cuenta que la lista de servicios o alias puede ser mayor.

Bloqueo de SPAM mediante postfix
Si estás en la larga lista de las víctimas de SPAM (correo no deseado), puedes seguir varias técnicas para bloquearlo, o bien una combinación de todas
ellas.

  • Bloqueo de mensajes según remitente.
  • Bloqueo de mensajes según listas negras de dominios.
  • Bloqueo de mensajes según el contenido de las cabeceras.

En mi caso (un caso grave, hay que decirlo), decidí usar los tres al mismo
tiempo. Os explico cómo.
Bloqueo de mensajes según remitente
Para bloquear los mensajes bien por un remitente concreto o bien por el dominio o parte del dominio, es necesario crear un fichero llamado access en el directorio del postfix (en mi caso, /etc/postfix), como por ejemplo:

kornet.net 517 Delivery not authorized, message refused
kr 517 Delivery not authorized, message refused
goodlook@korea.net 517 Delivery not authorized, message refused

Tras lo cual es necesario crear el fichero con extensión db
correspondiente, mediante el comando postfix access en el directorio del
postfix.

Por último, hay que añadir la siguiente línea en el fichero /etc/postfix/main.cf:

smtpd_sender_restrictions = hash:/etc/postfix/access

Bloqueo de mensajes según listas negras de dominios
Otro de los sistemas para bloquear SPAM es el de no aceptar correo si viene de
un “relay” abierto. Para ello, existen iniciativas en Internet tales como
www.ordb.org, que contienen una base de datos de IP’s desde las cuales es
posible enviar SPAM ya que permiten hacer “relay” sin control del
remitente.

Para activar esta opción, basta editar el fichero /etc/postfix/main.cf para
que contenga las siguientes líneas:

maps_rbl_domains = relays.ordb.org
smtpd_recipient_restrictions =
permit_mynetworks, check_relay_domains

Bloqueo mediante checkeo de cabeceras
Cuando todo falla, siempre se puede bloquer correo mediante una regla que lee la cabecera del mensaje y lo rechaza o acepta en caso de que encuentre un
patrón. En mi caso, lo uso para rechazar el correo coreano, para lo que me limito a comprobar la codificación de caracteres del mensaje.

Esto se consigue teniendo en el fichero /etc/postfix/main.cf una línea como
la que sigue:

header_checks = regexp:/etc/postfix/header_checks

Y creando un fichero header_checks en la misma localización. En mi caso, el fichero tiene esta pinta:

/Content-[[Tt]]ype:.*charset=”big5″/ REJECT
/Content-[[Tt]]ype:.*charset=”ks_c_.*”/ REJECT
/Content-[[Tt]]ype:.*CHARSET=”KS_C_.*”/ REJECT
/Content-[[Tt]]ype:.*CHARSET=KS_C_.*/ REJECT
/Content-[[Tt]]ype:.*charset=”[[Ii]][[Ss]][[Oo]]-2022.*”/ REJECT
/Content-[[Tt]]ype:.*charset=”euc-kr*”/ REJECT
/Content-[[Tt]]ype:.*charset=euc-kr*/ REJECT

Espero que esto os ayude a paliar el problema del SPAM. Por cierto, no olvideis ejecutar un postfix reload cada vez que querais que se cargue la
configuración.


Temas:
Documentación, Redes y Servidores


Etiquetas:
, , ,

Feed Espacio LinuxSi este artículo ha sido de tu interés, considera hacer un comentario o suscribirte al feed para que te enteres de nuevos artículos a través de tu lector de noticias o email.

Acerca del autor

3 Comentarios para “Configuración de Postfix”

  1. ¿Como puedo configurar postfix?

  2. ¿Alguien me puede ayuda a hacer esto?

    * Captura de sesión SMTP entre MUA y MTA

    Capturar con wireshark una trasferencia de correo desde un agente de usuario de correo (MUA) [thunderbird, por ejemplo] hacia un agente de transporte de correo (MTA) [servidor SMTP].

    Para ello:

    * Activar la captura wireshark, puerto 25 (smtp).
    * Ejecutar el MUA.
    * Redactar un pequeño mensaje de correo (cabecera y una linea de texto). Adjuntarle un fichero pequeño (1 k aprox.): por ejemplo, un pequeño texto, o firmarlo digitalmente (equivale a adjuntar la firma).
    * Enviar el mensaje a tu propia cuenta.
    * Filtar la captura smtp y enviarla al profesor (fichero con extensión “.pcap”).

    antonio441@hotmail.es

  3. muchas gracias por la ayuda ya tengo configurado puedo enviar y recibir correos en mi LAN pero no puedo recibir correos desde afuera (hotmail, gmail,etc) me podrias ayudar por favor, muchas gracias

Publica un comentario

Puedes usar estas etiquetas XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <em> <strong>