| Formulario de acceso |
|---|
| Anuncios |
|---|
|
|
| Sistema de correo con Postfix, Cyrus y MySQL (VI - Postfix) |
|
|
| jueves, 06 de abril de 2006 | |||||||||
|
En el proceso de configuración del programa postfix atenderemos a los dos ficheros fundamentales que hacen que toda la maquinaria de este MTA engrane de forma perfecta : main.cf y master.cf . El fichero /etc/postfix/master.cf Ya que es nuestra intención aprovecharnos de las ventajas que nos ofrece Sieve en las tareas de filtrado, será necesario utilizar LMTP para la comunicación entre postfix y cyrus. Tal y como veremos en un capítulo posterior dedicado a la confiuración de Cyrus, habilitaremos el servicio lmtpunix sobre el fichero de configuración /etc/cyrus.conf. Aunque nuestra configuración del sistema de correo se está basando principalmente en sistema Fedora y los permisos ya se aplican con las instalaciones de los paquetes, no está de más comentar que el socket creado por el servicio de lmtpunix (en Fedora Core /var/lib/imap/socket/lmtp) tendrá que ser accesible por postfix. lmtp unix - - n - - lmtp Para terminar, nos fijaremos en otra línea de configuración posterior: # The Cyrus deliver program has changed incompatibly, multiple times. Hay que prestar especial atención a la ruta apuntada por el parámetro argv pues en alguna ocasión no refleja bien la situación del programa deliver y las entregas de correo pueden llegar a no efectuarse.
El fichero /etc/postfix/main.cf Lo primero que hay que hacer al abrir por primera vez el fichero /etc/postfix/main.cf, es establecer de forma correcta los parámetros de nuestro servidor de correo. Para empezar, cambiaremos el nombre del host: myhostname = foo.bar.org Continuaremos con el parámetro mydestination, que igualaremos a los nombres de todos los dominios que consideremos locales (similar al fichero sendmail.cw de configuración de sendmail) . Cada uno de los dominios, si es que hay más de uno, irá separado por comas: mydestination = foo.bar.org, liberaliatempus.com, furchbar-grausam.ch, whatever.domain.tld, mysql:/etc/postfix/mysql-mydestination.cf
En algún caso, nos veremos en la necesidad de utilizar los servicios de un proveedor para procesar el envío de correo. En este caso, igualaremos el parámetro relayhost a cada uno de los proveedores de servicios que nos interesen. Si el parámetro queda en blanco, el correo saliente será procesado directamente por el servicio de smtp que se haya establecido por defecto: relayhost = relay01.foobar.net relay02.foobar.net relay03.foobar.net
Otro parámetro importante a tener en cuenta es el referente al mailtransport, o el programa que se encargará de transportar el correo de un programa a otro. Para nuestros propósitos, deberíamos usar como programa de procesamiento a cyrus, para lo cual igualamos el parámetro mailbox_transport de la siguiente manera: mailbox_transport = cyrus
Si, por ejemplo, preferimos usar lmtp, igualaríamos el parámetro al socket correspondiente: mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp Finalmente estableceremos bajo postfix el sistema de dominios virtuales y su procesamiento correcto. Para esto, utilizaremos distintos ficheros de configuración que informarán a postfix del lugar en la base de datos de mysql en el cual se encuentran los dominios virtuales correspondientes y los alias de usuario: virtual_alias_maps = mysql:/etc/postfix/mysql-virtual.cf virtual_alias_maps establece la configuración de acceso a los alias virtuales, mientras que sender_canonical_maps se encarga de reescribir la dirección de correo a su formato correcto. Este último parámetro es necesario para el uso de un interface web, ya que los usuarios se crean habitualmente del modo test001, sin la dirección completa. Para el correcto funcionamiento de esta última configuración, crearemos los ficheros correspondientes ... /etc/postfix/mysql-virtual.cf # Usuario y password de acceso al servidor mysql # El nombre de la base de datos # El nombre de la tabla # /etc/postfix/mysql-canonical.cf # Usuario y password de acceso al servidor mysql # El nombre de la base de datos # El nombre de la tabla /etc/postfix/mysql-mydestination.cf # Nombre de usuario y contraseña del servidor mysql # Nombre de la base de datos # Nombre de la tabla
SMTP con autenticación SASL y la seguridad de PAM
Antes de comenzar con la activación en postfix de SASL, vamos a comprobar que todo lo que hemos hecho hasta ahora se comporta de manera correcta. Para ello, veremos ante todo que cada uno de los servicios está a la escucha en su lugar correspondiente: # netstat −an|grep LISTEN Sobre el puerto 25 tenemos el servicio smtp, en el 2000 se encuentra sieve y en el 143 escucha el servicio imap (a configurar en el siguiente capítulo). Si alguno de los servicios no aparece activado, esperaremos a la configuración correcta de Cyrus y a un capítulo posterior para hacer todas las comprobaciones. A priori, si los tres servicios están activos, ya se podría mandar correo, por ejemplo, a un buzón local (en negrita los comandos a teclear): # telnet localhost 25 Para ver un log bastante detallado del proceso de envío de correo, añadiremos el parámetro -v al fichero /etc/postfix/master.cf, sobre la línea correspondiente al servicio de smtp: smtp inet n - n - - smtpd -v Sabiendo que el log queda alojado en /var/log/maillog en los sistemas con Fedora. Procedamos, ahora sí, a activar SASL sobre postfix. Autenticaremos a los clientes conectados mediante smtp para que puedan hacer relay sobre el servidor de correo. Para ello modificaremos la opción smtpd_recipient_restrictions del fichero /etc/postfix/main.cf: smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = broken_sasl_auth_clients = yes
Con esto, los clientes sin autoridad podrán hacer relay sobre el servidor siempre que pertenezcan a las redes indicadas en mynetworks. Todo lo demás será rechazado. Más adelante, aseguraremos la conexión mediante TLS. Si smtpd_sasl_local_domain se iguala a algo, forzaremos la comprobación del usuario entrando en /etc/sasldb2 con [usuario@dominio al que se iguala la opción]. Para nuestros propósitos de autenticación bajo mysql, dejaremos la opción igualada a nada. Tendremos que indicar seguidamente el mecanismo a usar a través de SASL y para ello dejaremos, si no lo está ya, el fichero /usr/lib/sasl2/smtpd.conf con una única línea: pwcheck_method: saslauthd Y, sobre todo en sistemas con RedHat o con Fedora, hay que cambiar el método de autenticación con que saslauthd se inicia por defecto. Esto lo haremos sobre el fichero /etc/sysconfig/saslauthd, donde cambiaremos el mecanismo por defecto (habitualmente shadow) para igualarlo a pam: MECH=pam Para sistemas que no sean Fedora, hay que indicar al sistema dónde se encuentra el socket saslauthd y para esto habrá que crear un enlace hacia la posición deseada. Habitualmente, quedará como sigue, aunque siempre dependerá de la distribución en uso: # mv /var/run/sasl2 /var/run/sasl2-old Una vez realizados los cambios, potenciaremos la seguridad en postfix mediante diferentes opciones que iremos añadiendo a smtpd_recipient_restrictions, amén de utilizar opciones como smtpd_helo_required = yes para verificar el uso correcto de nuestro servidor de correo. Aunque es necesaria la lectura de la documentación de postfix a este respecto, el fichero /etc/postfix/main.cf podría quedar de esta manera en lo referente a los filtros de autenticación: smtpd_helo_required = yes disable_vrfy_command = yes smtpd_recipient_restrictions = reject_invalid_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, reject_unknown_recipient_domain, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_helo_access hash:/etc/postfix/helo_check smtpd_data_restrictions = reject_unauth_pipelining, permit
Por último, echemos un vistazo al fichero de configuración /etc/postfix/main.cf al completo, incluyendo opciones que veremos más adelante, como el soporte para TLS o el filtrado con amavisd-new: #CONFIGURACIÓN PRINCIPAL POSTFIX #SOPORTE SASL #AUTENTICACIÓN VÁLIDA #SOPORTE TLS #Amavisd-New unknown_local_recipient_reject_code = 450 #OTHERS
Sólo los usuarios registrados pueden escribir comentarios. Powered by AkoComment 2.0! |
|||||||||
| < Anterior | Siguiente > |
|---|







