User Tools

Site Tools


zz_deprecated:howto_postfix

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
howto_postfix [2012/03/19 15:43] dodgerzz_deprecated:howto_postfix [2022/02/11 11:36] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== [HOWTO] Postfix+Courier+MySQL+PostfixAdmin+SpamAssassin+SASL+TLS+roundcube+Postgrey ======
 +
 ====== Descripcion ====== ====== Descripcion ======
 Este pretende ser un mega-HOWTO de postfix: Este pretende ser un mega-HOWTO de postfix:
Line 82: Line 84:
 virtual_overquota_bounce = yes</code>||Configuración referente a mysql principalmente, sobre todo atención a la variable **virtual_mailbox_base** que ha de ser un directorio existente y con permisos para que postfix escriba en el mismo, lo realizamos en el siguiente paso. | virtual_overquota_bounce = yes</code>||Configuración referente a mysql principalmente, sobre todo atención a la variable **virtual_mailbox_base** que ha de ser un directorio existente y con permisos para que postfix escriba en el mismo, lo realizamos en el siguiente paso. |
  
-===Operaciones adicionales ====+==== Operaciones adicionales ====
 Generamos los alias necesarios para el correo interno, sobre todo hay que vigilar que el alias para root corresponde con un usuario real: Generamos los alias necesarios para el correo interno, sobre todo hay que vigilar que el alias para root corresponde con un usuario real:
 <code>cp /etc/aliases /etc/postfix/aliases <code>cp /etc/aliases /etc/postfix/aliases
Line 96: Line 98:
 </code> </code>
  
-===Configuración postfix-mysql ====+==== Configuración postfix-mysql ====
 La configuración para mysql la baso en lo necesario para [[http://postfixadmin.sourceforge.net/|postfixadmin]]  La configuración para mysql la baso en lo necesario para [[http://postfixadmin.sourceforge.net/|postfixadmin]] 
  
Line 108: Line 110:
 Postfix completa la query con algunos campos adicionales, por supuesto, se pueden apreciar en el "mail.log", esto deberá ser el sistema de debugar qué está haciendo postfix si vemos que las cosas no funcionan. Postfix completa la query con algunos campos adicionales, por supuesto, se pueden apreciar en el "mail.log", esto deberá ser el sistema de debugar qué está haciendo postfix si vemos que las cosas no funcionan.
  
-{| border=1 ; margin:0 0 1em 1em" +Fichero Contenido Descripcion ^ 
-!Fichero!!Contenido!!Descripcion +|<code>vi mysql_relay_domains_maps.cf</code> | <code>
-|<code>vi mysql_relay_domains_maps.cf</code>||<code>+
 hosts = 127.0.0.1 hosts = 127.0.0.1
 dbname = postfix dbname = postfix
Line 118: Line 119:
 select_field = domain select_field = domain
 where_field = domain where_field = domain
-</code>||Lista de relays para cada dominio +</code> | Lista de relays para cada dominio | 
-|<code>vi mysql_virtual_alias_maps.cf</code>||<code>+|<code>vi mysql_virtual_alias_maps.cf</code> | <code>
 hosts = 127.0.0.1 hosts = 127.0.0.1
 dbname = postfix dbname = postfix
Line 127: Line 128:
 select_field = goto select_field = goto
 where_field = address where_field = address
-</code>||Listado de alias +</code>| Listado de alias | 
-|<code>vi mysql_virtual_domains_maps.cf</code>||<code>+|<code>vi mysql_virtual_domains_maps.cf</code> | <code>
 hosts = 127.0.0.1 hosts = 127.0.0.1
 dbname = postfix dbname = postfix
Line 136: Line 137:
 select_field = domain select_field = domain
 where_field = domain where_field = domain
-</code>||Listado de dominios +</code> | Listado de dominios | 
-|<code>vi mysql_virtual_mailbox_limit_maps.cf</code>||<code>+|<code>vi mysql_virtual_mailbox_limit_maps.cf</code> | <code>
 hosts = 127.0.0.1 hosts = 127.0.0.1
 dbname = postfix dbname = postfix
Line 145: Line 146:
 select_field = quota select_field = quota
 where_field = username where_field = username
-</code>||Cuota de cada usuario +</code> | Cuota de cada usuario | 
-|<code>vi mysql_virtual_mailbox_maps.cf</code>||<code>+|<code>vi mysql_virtual_mailbox_maps.cf</code> | <code>
 hosts = 127.0.0.1 hosts = 127.0.0.1
 dbname = postfix dbname = postfix
Line 154: Line 155:
 select_field = maildir select_field = maildir
 where_field = username where_field = username
-</code>||Directorio en linux del usuario de correo +</code>  | Directorio en linux del usuario de correo | 
-|<code>vi mysql_virtual_transport.cf</code>||<code>+|<code>vi mysql_virtual_transport.cf</code> | <code>
 hosts = 127.0.0.1 hosts = 127.0.0.1
 dbname = postfix dbname = postfix
Line 163: Line 164:
 select_field = transport select_field = transport
 where_field = domain where_field = domain
-</code>||Tipologá del dominio (virutal) +</code>  | Tipologá del dominio (virutal) |
-|}+
  
-==Courier =====+===== Courier =====
 Configuración inicial para courier bastante simplificada: Configuración inicial para courier bastante simplificada:
 <code>vi /etc/courier/authdaemonrc</code> <code>vi /etc/courier/authdaemonrc</code>
Line 197: Line 197:
  
  
-==MySQL =====+===== MySQL =====
 Para mysql únicamente crearemos el usuario y la bbdd ya que del resto se encargará el [[http://postfixadmin.sourceforge.net/|postfixadmin]]. Para mysql únicamente crearemos el usuario y la bbdd ya que del resto se encargará el [[http://postfixadmin.sourceforge.net/|postfixadmin]].
 <code>msyql -p</code> <code>msyql -p</code>
Line 204: Line 204:
 Logicamente es conveniente probar la conexion para cerciorarnos que el usuario está ok. Logicamente es conveniente probar la conexion para cerciorarnos que el usuario está ok.
  
-==PostfixAdmin =====+===== PostfixAdmin =====
 Hay que descargar el PostfixAdmin: [[http://sourceforge.net/projects/postfixadmin/|http://sourceforge.net/projects/postfixadmin/]] Hay que descargar el PostfixAdmin: [[http://sourceforge.net/projects/postfixadmin/|http://sourceforge.net/projects/postfixadmin/]]
 La instalación es como la de cualquier aplicación php, no entraré en detalles por esa parte, me centro únicamente en la configuración del mismo. La instalación es como la de cualquier aplicación php, no entraré en detalles por esa parte, me centro únicamente en la configuración del mismo.
 Una vez lo tengamos descomprimido, cambiamos las opciones básicas para lanzar el wizard mediante web: Una vez lo tengamos descomprimido, cambiamos las opciones básicas para lanzar el wizard mediante web:
 <code>vi config.inc.php</code> <code>vi config.inc.php</code>
-{| border=1 ; margin:0 0 1em 1em" +Variable Descripcion ^ 
-!Variable!!Descripcion +|<code>$CONF[['configured']] = true;</code> |Hay que indicar que no somos un bot  
-|<code>$CONF[['configured']] = true;</code>||Hay que indicar que no somos un bot +|<code>$CONF[['setup_password']] = //;</code> | El propio postfixadmin nos proporciona el hash que hay que poner aquí­ la primera vez que lo ejecutemos. | 
-|<code>$CONF[['setup_password']] = //;</code>||El propio postfixadmin nos proporciona el hash que hay que poner aquí­ la primera vez que lo ejecutemos. +|<code>$CONF[['default_language']] = 'en';</code> | Si queremos cambiar el Idioma por defecto 
-|<code>$CONF[['default_language']] = 'en';</code>||Si queremos cambiar el Idioma por defecto+
 |<code>$CONF[['database_type']] = 'mysql'; |<code>$CONF[['database_type']] = 'mysql';
 $CONF[['database_host']] = 'localhost'; $CONF[['database_host']] = 'localhost';
Line 219: Line 218:
 $CONF[['database_password']] = 'password'; $CONF[['database_password']] = 'password';
 $CONF[['database_name']] = 'postfix'; $CONF[['database_name']] = 'postfix';
-$CONF[['database_prefix']] = //;</code>||Todas las opciones para conexion a la bbdd, son las mismas que usamos para el postfix en sí­. +$CONF[['database_prefix']] = //;</code> | Todas las opciones para conexion a la bbdd, son las mismas que usamos para el postfix en sí­. | 
-|}+
 Ahora ya podemos apuntar a la dirección web que contiene el setup, pej: Ahora ya podemos apuntar a la dirección web que contiene el setup, pej:
-* [[http://localhost/postfixadmin/setup|http://localhost/postfixadmin/setup]]+  * [[http://localhost/postfixadmin/setup|http://localhost/postfixadmin/setup]]
 En este momento se crearán automáticamente todas las tablas necesarias para el funcionamiento tanto de postfix (usando la configuración anterior) como del postfixadmin en sí­. En este momento se crearán automáticamente todas las tablas necesarias para el funcionamiento tanto de postfix (usando la configuración anterior) como del postfixadmin en sí­.
 Aparte, se nos da la posibilidad de crear el hash para el "setup_password" comentado anteriormente y la creación de usuarios administrativos. Aparte, se nos da la posibilidad de crear el hash para el "setup_password" comentado anteriormente y la creación de usuarios administrativos.
Line 229: Line 227:
  
 ---- ----
-<font color=red>Con esto y la creación de una nueva cuenta de correo, estará finalizada la configuración básica del servidor, deberámos poder conectarnos y enviar emails. Cosa conveniente antes de pasar a la siguiente parte de la configuración.</font>+''Con esto y la creación de una nueva cuenta de correo, estará finalizada la configuración básica del servidor, deberámos poder conectarnos y enviar emails. Cosa conveniente antes de pasar a la siguiente parte de la configuración.''
 ---- ----
  
-=Instalación Segura ======+====== Instalación Segura ======
 Esta parte de la instalación trataré parámetros básicos de autenticación y SSL. Para mí­ es básico realizar estas operaciones como mí­nimo (sin contar la parte de antispam) Esta parte de la instalación trataré parámetros básicos de autenticación y SSL. Para mí­ es básico realizar estas operaciones como mí­nimo (sin contar la parte de antispam)
  
-==SASL =====+===== SASL =====
 Usaremos la **"[[http://www.ietf.org/dyn/wg/charter/sasl-charter.html|Simple Authentication and Security Layer]]"** para tener el servicio smtpd con autenticación por usuario. Usaremos la **"[[http://www.ietf.org/dyn/wg/charter/sasl-charter.html|Simple Authentication and Security Layer]]"** para tener el servicio smtpd con autenticación por usuario.
  
-===Software ====+==== Software ====
 <code>aptitude install sasl2-bin libpam-mysql <code>aptitude install sasl2-bin libpam-mysql
 </code> </code>
-===Configuración ====+==== Configuración ====
 <code> <code>
 mkdir -p /var/spool/postfix/var/run/saslauthd mkdir -p /var/spool/postfix/var/run/saslauthd
Line 298: Line 296:
 Bastará con reiniciar el servicio y comprobar la autenticación; como troubleshoot usarámos el //mail.log// y el //auth.log//. Bastará con reiniciar el servicio y comprobar la autenticación; como troubleshoot usarámos el //mail.log// y el //auth.log//.
  
-==SSL/TLS =====+===== SSL/TLS =====
 Configuración ara SSL/TLS tanto en imap como smtp. Configuración ara SSL/TLS tanto en imap como smtp.
  
-===IMAP ====+==== IMAP ====
 La configuración de imap-ssl ya la suele realizar por defecto debian cuando instalamos el paquete de courier-ssl. La configuración de imap-ssl ya la suele realizar por defecto debian cuando instalamos el paquete de courier-ssl.
 Hay que editar el fichero de configuración: Hay que editar el fichero de configuración:
Line 326: Line 324:
 </code> </code>
 Las principales opciones a tener en cuenta son las siguentes: Las principales opciones a tener en cuenta son las siguentes:
-{| border=1 ; margin:0 0 1em 1em" +Variable Descripcion ^ 
-!Variable!!Descripcion +|<code>SSLPORT=993</code> | El puerto por donde se va a escuchar  
-|<code>SSLPORT=993</code>||El puerto por donde se va a escuchar +|<code>IMAP_TLS_REQUIRED=1</code> | Con esta variable se fuerza el SSL, eliminando la opción de transferencias sin encriptar | 
-|<code>IMAP_TLS_REQUIRED=1</code>||Con esta variable se fuerza el SSL, eliminando la opción de transferencias sin encriptar +|<code>TLS_CERTFILE=/etc/postfix/ssl/www.ciberterminal.net.pem</code> | En mi caso uso el mismo certificado para smtp e imap, el pem es el key+crt |
-|<code>TLS_CERTFILE=/etc/postfix/ssl/www.ciberterminal.net.pem</code>||En mi caso uso el mismo certificado para smtp e imap, el pem es el key+crt +
-|}+
  
-===SMPT ====+==== SMPT ====
 Para smyp es "conveniente" habilitar tanto ssl como plain, principalmente por que roundcube suele dar problemas con TLS habilitado en smptd. Con capar el puerto 25 deberá valer, aunque no hay nada 100% seguro. Para smyp es "conveniente" habilitar tanto ssl como plain, principalmente por que roundcube suele dar problemas con TLS habilitado en smptd. Con capar el puerto 25 deberá valer, aunque no hay nada 100% seguro.
  
Line 360: Line 356:
 </code> </code>
  
-=Instalación Complementaria ======+====== Instalación Complementaria ======
 En esta última parte, trato temas adicionales como un gestor webmail, [[http://roundcube.net/|Roundcube]] muchí­simo más avanzado que el famoso squirrelmail; antivirus, antispam y demás ... En esta última parte, trato temas adicionales como un gestor webmail, [[http://roundcube.net/|Roundcube]] muchí­simo más avanzado que el famoso squirrelmail; antivirus, antispam y demás ...
  
-==Roundcube =====+===== Roundcube =====
 Descargamos la versión que queramos, stable o unstable, a gusto de cada uno: Descargamos la versión que queramos, stable o unstable, a gusto de cada uno:
 * [[http://roundcube.net/downloads|http://roundcube.net/downloads]] * [[http://roundcube.net/downloads|http://roundcube.net/downloads]]
Line 378: Line 374:
 La cadena de conexión es la habitual: La cadena de conexión es la habitual:
 <code>mysql:<nowiki>//</nowiki>usuario:password@IP-SERVIDOR-MYSQL/NOMBRE_BBDD</code> <code>mysql:<nowiki>//</nowiki>usuario:password@IP-SERVIDOR-MYSQL/NOMBRE_BBDD</code>
-===main.inc.php ====+==== main.inc.php ====
 Aquí­ está la chicha de la configuración, en mi caso he realizado cambios en las siguientes variables: Aquí­ está la chicha de la configuración, en mi caso he realizado cambios en las siguientes variables:
-{| border=1 ; margin:0 0 1em 1em" +^Variable ^Descripcion ^ 
-!Variable!!Descripcion +|<code>$rcmail_config[['enable_caching']] = FALSE; </code> | Estando todo en el mismo host es innecesario cachear  
- |<code>$rcmail_config[['enable_caching']] = FALSE; </code>||Estando todo en el mismo host es innecesario cachear +|<code>$rcmail_config[['force_https']] = TRUE; </code> | Forzamos https para ni siquiera dar la opción de plain http  
- |<code>$rcmail_config[['force_https']] = TRUE; </code>||Forzamos https para ni siquiera dar la opción de plain http +|<code>$rcmail_config[['default_host']] = 'ssl://localhost'; 
- |<code>$rcmail_config[['default_host']] = 'ssl://localhost'; +$rcmail_config[['default_port']] = 993; </code> | Host y puerto del servidor IMAP, incluyendo protocolo  
-$rcmail_config[['default_port']] = 993; </code>||Host y puerto del servidor IMAP, incluyendo protocolo +|<code>$rcmail_config[['imap_auth_type']] = plain; </code> | Metodo de autenticación para el IMAP  
- |<code>$rcmail_config[['imap_auth_type']] = plain; </code>||Metodo de autenticación para el IMAP +|<code>$rcmail_config[['smtp_server']] = 'localhost';
- |<code>$rcmail_config[['smtp_server']] = 'localhost';+
 $rcmail_config[['smtp_user']] = '%u';   $rcmail_config[['smtp_user']] = '%u';  
 $rcmail_config[['smtp_pass']] = '%p';  $rcmail_config[['smtp_pass']] = '%p'; 
-$rcmail_config[['smtp_auth_type']] = 'LOGIN'; </code>||Host, user, pass y metodo de autenticacion para smtp +$rcmail_config[['smtp_auth_type']] = 'LOGIN'; </code> | Host, user, pass y metodo de autenticacion para smtp  
- |<code>$rcmail_config[['smtp_debug']] = true; </code>||En mi caso activé el modo debug de smtp para detectar ciertos problemas causados por ssl +|<code>$rcmail_config[['smtp_debug']] = true; </code> | En mi caso activé el modo debug de smtp para detectar ciertos problemas causados por ssl  
- |<code>$rcmail_config[['useragent']] = 'Ciberterminal Webmail';  +|<code>$rcmail_config[['useragent']] = 'Ciberterminal Webmail';  
-$rcmail_config[['product_name']] = 'Ciberterminal Webmail'; </code>||Cadenas de texto que aparecerán en la web +$rcmail_config[['product_name']] = 'Ciberterminal Webmail'; </code> | Cadenas de texto que aparecerán en la web | 
-|}+
  
-==Configuracion de otro cliente ===== 
  
-{| border="1" cellpadding="1" +===== Configuracion de otro cliente =====
-| [[Archivo:Postfix_howto_01.jpg|border|400px|01]] || Descripcion +
- | [[Archivo:Postfix_howto_02.jpg|border|400px|02]] || Descripcion +
- | [[Archivo:Postfix_howto_03.jpg|border|400px|03]] || Descripcion +
-|}+
  
 +| [[Archivo:Postfix_howto_01.jpg|border|400px|01]] | Descripcion |
 +| [[Archivo:Postfix_howto_02.jpg|border|400px|02]] | Descripcion |
 +| [[Archivo:Postfix_howto_03.jpg|border|400px|03]] | Descripcion |
  
-==Spamassassin =====+ 
 +===== Spamassassin =====
 Una vez instalado, es recomendable crear un usuario con home para que vaya guardando sus datos, por ejemplo: Una vez instalado, es recomendable crear un usuario con home para que vaya guardando sus datos, por ejemplo:
 <code> <code>
Line 469: Line 462:
 </code> </code>
  
-===spampd ====+==== spampd ====
 spampd es un proxy de alto rendimiento para el préanalisis de mails. spampd es un proxy de alto rendimiento para el préanalisis de mails.
 Es decir, se sitúa "por delante" de postfix, analiza el email y si no es spam, lo redirige de manera normal a postfix. Esto elimina el análisis en disco del mismo una vez aceptado por postfix incrementando mucho el rendimiento (al menos según los desarrolladores). Es decir, se sitúa "por delante" de postfix, analiza el email y si no es spam, lo redirige de manera normal a postfix. Esto elimina el análisis en disco del mismo una vez aceptado por postfix incrementando mucho el rendimiento (al menos según los desarrolladores).
 Algún dia trataré sobre el tema, mientras está la [[http://wiki.apache.org/spamassassin/IntegratePostfixViaSpampd|página oficial]] Algún dia trataré sobre el tema, mientras está la [[http://wiki.apache.org/spamassassin/IntegratePostfixViaSpampd|página oficial]]
  
-=Debugging ======+====== Debugging ======
 La mejor manera de debugar es leer los logs de postfix, será vuestro mejor amigo y peor pesadilla. La mejor manera de debugar es leer los logs de postfix, será vuestro mejor amigo y peor pesadilla.
 Desde que no os autentique cualquier cliente de correo hasta que spamassassin no funcione por permisos de sistema. Desde que no os autentique cualquier cliente de correo hasta que spamassassin no funcione por permisos de sistema.
Line 483: Line 476:
  
  
-=Troubleshooting ======+====== Troubleshooting ======
  
-==Roundcube =====+===== Roundcube =====
 En determinadas ocasiones, roundcube no consigue inicializar el protocolo ssl con imap, dando el siguiente error: En determinadas ocasiones, roundcube no consigue inicializar el protocolo ssl con imap, dando el siguiente error:
-<code>Jun 27 20:04:41 ks358028 imapd-ssl: couriertls: connect: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number</code>+<code> 
 +Jun 27 20:04:41 ks358028 imapd-ssl: couriertls: connect: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number 
 +</code>
 Para solucionarlo basta con cambiar la configuración del courier/imap-ssl a: Para solucionarlo basta con cambiar la configuración del courier/imap-ssl a:
-{| border="1" cellpadding="1" +Fichero Valor ^ 
-!Fichero!!Valor +| <code>/etc/courier/imapd-ssl</code> | <code>TLS_PROTOCOL=SSL23</code> |
-    | <code>/etc/courier/imapd-ssl</code> || <code>TLS_PROTOCOL=SSL23</code> +
-|} +
- +
- +
- +
-=Links ====== +
-* [[http://www.postfix.org/documentation.html|Postfix official documentation]] +
-* [[http://trac.roundcube.net/|Roundcube wiki]] +
-* [[http://flurdy.com/docs/postfix/|Howto más o menos igual que el mio]] +
-* [[http://postgrey.schweikert.ch/|Pagina de PostGrey]] +
-* [[http://wiki.apache.org/spamassassin/|Wiki de Spamassassin]] +
-<nowiki>**</nowiki> [[http://wiki.apache.org/spamassassin/IntegratedSpamdInPostfix|Integracion spamd-postfix]] +
-<nowiki>**</nowiki> [[http://wiki.apache.org/spamassassin/IntegratePostfixViaSpampd|Integracion spampd-postfix]] +
-* [[http://razor.sourceforge.net/docs/|Razor: Red distribuida antispam]] +
-* [[http://www.rhyolite.com/dcc/|DCC: Red distribuida antispam]] +
-* [[http://sourceforge.net/apps/trac/pyzor/|Pyzor: Red distribuida antispam]]+
  
 +====== Links ======
 +  * [[http://www.postfix.org/documentation.html|Postfix official documentation]]
 +  * [[http://trac.roundcube.net/|Roundcube wiki]]
 +  * [[http://flurdy.com/docs/postfix/|Howto más o menos igual que el mio]]
 +  * [[http://postgrey.schweikert.ch/|Pagina de PostGrey]]
 +  * [[http://wiki.apache.org/spamassassin/|Wiki de Spamassassin]]
 +  * [[http://wiki.apache.org/spamassassin/IntegratedSpamdInPostfix|Integracion spamd-postfix]]
 +  * [[http://wiki.apache.org/spamassassin/IntegratePostfixViaSpampd|Integracion spampd-postfix]]
 +  * [[http://razor.sourceforge.net/docs/|Razor: Red distribuida antispam]]
 +  * [[http://www.rhyolite.com/dcc/|DCC: Red distribuida antispam]]
 +  * [[http://sourceforge.net/apps/trac/pyzor/|Pyzor: Red distribuida antispam]] 
zz_deprecated/howto_postfix.1332171792.txt.gz · Last modified: 2012/03/19 15:43 by dodger