Como configurar Postfix en Elastix/CentOS con Google Apps

Este pequeño manual, les indicara como configurar POSTFIX sobre Elastix/ Centos 5 con un dominio configurado con Google Apps (www.google.com/a)
Vamos a establecer los siguientes supuestos:
Dominio: www.christancho.com
Nombre del servidor: elastix

Configurando el servidor
La configuración principal del postfix se encuentra en el archivo /etc/postfix/main.cf por tanto:


cd /etc/postfix
nano main.cf

Luego cambiamos las siguientes líneas:

#myhostname = host.domain.tld
#myhostname = virtual.domain.tld

Por:

myhostname = elastix.christancho.com
#myhostname = virtual.domain.tld

Luego cambiamos:

#mydomain = domain.tld
Por:
mydomain = christancho.com

Luego establecemos el servidor SMTP por el cual se enviara el correo, recuerda que gmail utiliza SSL:

#relayhost = $mydomain
#relayhost = [gateway.my.domain]
#relayhost = [mailserver.isp.tld]
#relayhost = uucphost
#relayhost = [an.ip.add.ress]

Por:
#relayhost = $mydomain
#relayhost = [gateway.my.domain]
relayhost = smtp.gmail.com:587
#relayhost = uucphost
#relayhost = [an.ip.add.ress]

Guardamos los cambios realizados a main.cf, luego recargamos la configuración de POSTFIX.


postfix reload

Luego necesitas modificar otra vez el archivo main.cf con los siguientes cambios, estos estan al final del archivo.

################################
#Ingresado por yb-webadmin
mydomain =christancho.com
myhostname = elastix.christancho.local

Configurando la cuenta de correo
Creamos el archivo sasl_passwd (sin extension)

nano /etc/postfix/sasl_passwd

Dentro del archivo registramos la cuenta de correo (existente) y su respectiva clave, esta es la cuenta desde la cual se enviaran los correos.
smtp.gmail.com:587 usuario@christancho.com:miclave
Grabamos el archive sasl_passwd.

Luego lo ciframos:


postmap hash:/etc/postfix/sasl_passwd

Luego editamos el archive main.cf

nano /etc/postfix/main.cf

Agregamos las siguientes lineas al final

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =

grabamos el archive y recargamos la configuracion del POSTFIX.


postfix reload

Habilitando el TLS
Recuerda que gmail usa SSL, por tanto, necesitamos un certificado SSL, no necesariamente establecido por una empresa, así que creamos uno propio, el cual será usado por el TLS


mkdir /etc/postfix/tls
cd /etc/postfix/tls
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024


Dejar el 'challenge password' vacio:

openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

Agregar las siguientes lineas en el archivo /etc/postfix/main.cf:

smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/tls/smtpd.key
smtpd_tls_cert_file = /etc/postfix/tls/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/tls/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
tls_daemon_random_source = dev:/dev/urandom

Reiniciamos los servicios:


service saslauthd restart
service postfix restart

Para que inicien en el boot:

chkconfig postfix on
chkconfig saslauthd on

Casi listo, hagamos una prueba:
1. Revisemos el log del correo:
tail -f /var/log/maillog

2. Abre otra consola y envia un correo (recuerda que con el punto y enter termina el correo):

mail destinatario@dominio.com
Subject: test
hello
.
Cc:

3. Luego de esto en el log debe salir algo parecido a esto y lo que importa es la palabra SENT:

elastix postfix/smtp[3257]: 08EAE21566: to=, relay=smtp.gmail.com[74.125.45.109]:587, delay=9.2, delays=0.21/0.06/6.8/2.1, dsn=2.0.0, status=sent (250 2.0.0 OK 1227557334 34sm10144335yxl.8) Nov 4 12:50:26 elastix postfix/qmgr[3250]: 08EAE21566: removed

Espero les sirva.

Conversamos luego,
Christancho

Ps. Esto es tomado desde el libro 'Elastix without tears' y la parte de TLS desde un blog, solo uni todo y lo puse en contexto.

Comentarios

error con postfix en elastix

:O Segui paso por paso la configuracion de postfix en elastix del post del amigo cristancho.
Pero a la ora del cifrado me aparece el siguiente error:

error opening private key smtpd.key
3748:error:02001002:system library:fopen
No such file or directory:bss file.c:352:fopen('smtpd.key','r')
3748:error:20074002:B10 routines:FILE_CTRL:system lib:bss_file.c:354: unable to load private key

Tengo la version 1.5.2 para 32 bits de elastix. Si alguien me puede sugerir alguna solucion para poder enviar correos desde mi elastix a una cuenta en gmail, ya que no los recibo ni como spam.¿Que puedo hacer :? ?

Gracias!!!

h@nul