Introducción
Esto es una breve introducción de como configurar nuestro propio servidor
de correo basado en Postfix (
http://www.postfix.org).
Postfix es un MTA (Mail Transfer Agent) que nace como una alternativa para sustituir
al viejo y archi reconocido Sendmail (
http://www.sendmail.org).
¿Qué cual es la diferencia entonces? Sendmail ha sido un MTA (al igual que Postfix)
que ha evolucionado con el tiempo, inicialmente Sendmail fue un MTA que nació
con muchas deficiencias, incluso aquellos geeks que han leído
un poco sobre el tema, se acordarán del famoso gusano Morris (
http://en.wikipedia.org/wiki/Morris_worm)
el cual, entre otros atributos, explotaba una vulnerabilidad
de Sendmail. Incluso, durante aquella época, populaba un chiste entre los geeks
el cual decía: "¿y cual es la nueva vulnerabilidad de Sendmail para hoy?". Bien,
no es que Sendmail sea malo, por el contrario, como cualquier software, éste
ha evolucionado con el tiempo y mejorado mucho más. Si algo hay que saber sobre
Sendmail, es que es uno de los servidores de correo más utilizados en el mundo.
Pero bueno, no vinimos aquí a saber de Sendmail, como lo dije
al principio, esta vez vamos a conocer a un viejo también archi conocido Postfix.
Postfix nace como una alternativa más segura, más rápida, más simple de administrar
y lo suficientemente compatible con Sendmail. Postfix es una creación de Wietse
Zweitze Venema (
http://www.porcupine.org/wietse/).
Para este documento asumo como distribución de Linux,
las siguientes: Redhat 9, Fedora Core 3 ó Fedora Core 4 basadas en el sistema de paquetes rpm.
HOWTO
-
Descargamos el RPM de la distribución que tengamos,
para ello nos podemos apoyar en
Rpmfind.net
y buscar allí el término "postfix" para encontrar
un grande listado de recursos en donde podemos descargar esta maravilla
de servidor de correo.
- Instalamos el RPM que descargamos con los famosos comandos RPM, por ejemplo:
rpm -i postfix-1.1.12-1.i386.rpm
- Es bueno hacer las siguientes anotaciones:
- Si ya tenemos Sendmail funcionando en nuestra máquina,
es bueno que detengamos el servicio para no entrar en conflicto con nuestra
nueva adquisición. Para ello basta con que ejecuten los siguientes
comandos:
/etc/init.d/sendmail stop
chkconfig --level 345 sendmail off
- Si lo que tenemos es un Sendmail levantado por Gateways
antivirus como MailScanner,
entonces hacemos lo siguiente:
/etc/init.d/MailScanner stop
cd /etc/postfix
cp main.cf main.cf.ori
El ".ori" no es de "orines", "orinoco" ni nada por el estilo, el ".ori"
es de "original". Esto es bueno hacerlo por si no somos muy diestros al
editar archivos y por si algo va mal, pues ponemos el archivo de configuración
original y listo, "no ha pasado nada".
DEL ARCHIVO DE CONFIGURACION
El formato general del archivo de configuración (main.cf) sigue el
siguiente formato. (El siguiente texto es tomado textualmente de la documentación
ofiicial de Postfix.
http://www.postfix.org/postconf.5.html).
-
Cada línea de configuración obedece al
formato "parametro = value". Los espacios en blanco alrededor
del signo "=" son ignorados, igualmente sucede con los espacios
en blanco al final de cada línea.
-
Líneas vacías y líneas que solo
contengan espacios en blanco son ignoradas. Igualmente se ignoran todas
las líneas que cuyo primer caracter no sea el espacio en blanco sino
el caracter "#".
-
Cada línea válida de configuración
comienza con texto diferente de espacio en blanco. Sin embargo, una línea
que comience con espacio en blanco, seguirá siendo una línea
de configuración válida.
-
El valor asignado a un parámetro puede hacer referencia
a los valores de otros parámetros:
- Las expresiones"$name", "${name}" o "$(name)" son recursivamente
reemplazadas por el valor del parámetro al que están haciendo referencia.
- La expresión "${name?value}" se extiende a "value"
cuando "$name" no está vacía. Solo se soporta
en versiones de Postfix 2.2 ó superiores.
- La expresión "${name:value}" se extiende a "value"
cuiando "$name" está vacía. Solo se soporta
en versiones de Postfix 2.2 ó superiores.
-
Cuando un mismo parámetro es definido varias veces,
solo aplica a la configuración, la última instacia encontrada
del mismo.
- En cualquier otro caso, el orden de los parámetros definidos en main.cf
no es importante.
DEL RELAY
La verdad es que Postfix es tan bueno, que por defecto
sin decirle nada es capaz de hacer Relay a todo el conjunto de clientes que
se encuentren en la misma subred de cada interface de red que tengamos conectada
al sistema. Por ejemplo, suponiendo que tenemos una máquina con tres
interfaces de red así:
10.1.0.254 MASK 255.255.0.0
192.168.1.254 MASK 255.255.255.0
200.1.2.3 MASK 255.255.255.248
Suponiendo que la interface con la IP 200.1.2.3 es nuestra interface externa,
Postfix es capaz de hacerle Relay por defecto a todos los clientes que se
encuentren en la subred 10.1.0.0/255.255.0.0 y la subred 192.168.1.0/255.255.255.0.
Postfix también sabe que la interface 200.1.2.3 es la externa y que
a esa subred no se le debe hacer Relay. Sin embargo hay dos parámetros
en el archivo de configuración de Postfix, que pueden sintonizar al
gusto de ustedes el tema del Relay. Ambos parámetros son los siguientes:
mynetworks_style
mynetworks
No voy a entrar a explicarlos, son sumamente simples y como Postfix le hace
Relay por defecto a los clientes que se encuentran en la misma subred creo
que no hace falta entrar ahora en esos detalles. Si se pasan por esta página
http://www.postfix.org/BASIC_CONFIGURATION_README.html,
se van a dar cuenta lo simples que son.
Entre otras cosas, ¿qué es el Relay?. Tomen esta explicación
del concepto de Open Relay.
-
http://es.wikipedia.org/wiki/Open_Relay