Configurar Zimbra 7.2 para control de usuarios en Centos 6

Configurar Zimbra para control de usuarios

“Este pequeño manual NO es una copia de alguna pagina de internet, es propiedad intelectual de Martín Lugo Palmadera, ud. es libre de usarlo y distribuirlo, pero con la condición de citar la fuente…. http://martinlugo.networksolutions-peru.com”

El escenario es el siguiente:

He instalado una versión fresca Zimbra (versión 7.2) y esta funcionando al 100%, todos los usuarios envian y reciben mensajes.

Se me ha solicitado que solo algunos usuarios puedan  enviar correos al exterior sin restricciones  y otros solo correo local y a algunos dominios conocidos.(Tambien es recomendable poner restricciones en el Header_Checks)

(Hacer esto es con la version de nativa de postfix es simple y rapida), pero con Zimbra todo cambia, pues agregar las sentencias sobre el archivo de configuracion (main.cf) se borrará al siguiente reinicio.

Para que no suceda esto, vamos a modificar el archivo /opt/zimbra/conf/zmmta.cf

Paso 1: Editar el archivo “zmmta.cf” como root (En zimbra 8, este archivo cambia de nombre se llama zmconfigd.cf y se ubica en /opt/zimbra/conf/zmconfigd.cf)

#nano /opt/zimbra/conf/zmmta.cf

Comentar la linea:

 # POSTCONF smtpd_sender_restrictions                      LOCAL postfix_smtpd_sender_restrictions

 

 

Agregar al final del grupo MTA lo siguiente (antes de “RESTART mta“):

 

POSTCONF smtpd_sender_restrictions FILE postfix_sender_restrictions.cf
POSTCONF smtpd_restriction_classes inter, local
POSTCONF inter FILE postfix_restrict_inter.cf
POSTCONF local FILE postfix_restrict_local.cf

Lo que hago aqui, es decirle a Zimbra que la directiva de postfix  “smtpd_sender_restrictions” lo lea de un archivo llamado “postfix_sender_restrictions.cf”

Creamos 2 variable inter y local (los usuarios que tengan el valor inter podran enviar correos sin restricciones y los usuarios que posean el valor local, solo podran enviar correos a algunos dominios listados en otro archivo), ademas le decimos que sus valores lo lea de los archivos “postfix_restrict_inter.cf” y “postfix_restrict_local.cf” respectivamente.

Paso 2:

Crear el archivo “postfix_sender_restrictions.cf” :

#nano /opt/zimbra/conf/postfix_sender_restrictions.cf

Agregar las siguientes lineas:

 check_sender_access hash:/opt/zimbra/conf/usuarios
 check_sender_access hash:/opt/zimbra/conf/prohibido
 hash:/opt/zimbra/conf/access
 reject_unknown_sender_domain
 reject_invalid_hostname
 permit_mynetworks

En el archivo “postfix_recipient_restrictions.cf”  Agregar la siguiente linea debajo de “permit_mynetworks” (En Zimbra 8 este archivo esta en /opt/zimbra/conf/zmconfigd/smtpd_recipient_restrictions.cf)

#nano /opt/zimbra/conf/postfix_recipient_restrictions.cf
permit_mynetworks
check_sender_access hash:/opt/zimbra/conf/usuarios
check_sender_access hash:/opt/zimbra/conf/prohibido

Deberia quedar asi mas o menos:

%%contains VAR:zimbraServiceEnabled cbpolicyd, check_policy_service inet:localhost:@@cbpolicyd_bind_port@@%%
reject_non_fqdn_recipient
permit_mynetworks
check_sender_access hash:/opt/zimbra/conf/usuarios
check_sender_access hash:/opt/zimbra/conf/prohibido
reject_unlisted_recipient
%%contains VAR:zimbraMtaRestriction reject_invalid_helo_hostname%%
%%contains VAR:zimbraMtaRestriction reject_non_fqdn_helo_hostname%%
%%contains VAR:zimbraMtaRestriction reject_non_fqdn_sender%%
%%contains VAR:zimbraMtaRestriction reject_unknown_client_hostname%%
%%contains VAR:zimbraMtaRestriction reject_unknown_helo_hostname%%
%%contains VAR:zimbraMtaRestriction reject_unknown_sender_domain%%
%%explode reject_rbl_client VAR:zimbraMtaRestrictionRBLs%%
%%contains VAR:zimbraMtaRestriction check_policy_service unix:private/policy%%
permit

Paso 3.- Crear el archivo “usuarios” y “prohibido”:

Si nos percatamos, he ingresado también un archivo llamado “prohibido”, esto sirva para decirle a Zimbra que los dominios que coloque allí van a estar prohibidos de ser enviados

#nano /opt/zimbra/conf/usuarios

 

pepito@mydomain.com inter
luchito@mydomain.com local
 ................

 

#nano /opt/zimbra/conf/prohibido
yahoo.com.pe	reject

Paso 4.- Crear los archivos postfix_restrict_inter.cf y postfix_restrict_local.cf

#nano /opt/zimbra/conf/postfix_restrict_inter.cf

y colocar esto dentro:

permit
#nano /opt/zimbra/conf/postfix_restrict_local.cf

y colocar esto dentro:

check_recipient_access
hash:/opt/zimbra/conf/interno
reject

Paso 5.- Crear el archivo interno y access

Dentro de este archivo llamado “interno” vamos a colocar los dominios que queremos que envien lo usuarios restringidos

#nano /opt/zimbra/conf/interno

y colocar alli los dominios que a los que solo podrá enviar mail

dominio1.com.pe      ok
dominio2.com.pe   ok
#nano /opt/zimbra/conf/access

colocar un espacio en blanco dentro de este archivo “access” y grabar

Paso 6.- indexar archivos “usuarios” “interno” “access”

postmap /opt/zimbra/conf/usuarios
postmap /opt/zimbra/conf/interno
postmap /opt/zimbra/conf/access

Paso 7.- Modificar la variable mynetworks a 127.0.0.0/8, esto hara que lo spammer no puedan utilizar nuestro servidor como relay, sino que el postifx solo aceptará conexiones de el mismo, previa validacion del usuario que se trata de conectar

Para esto hacer lo siguiente:

#su - zimbra
$ zmprov modifyServer mail.dominio.com.pe zimbraMtaMyNetworks '127.0.0.0/8'
$ postfix reload

Paso 8.- Reiniciar servicios y listo!!!!!!!!!

#su - zimbra
$ zmmtactl restart

6 comments

  1. Johnny Zuleta dice:

    Hola amigo Martin…me interesaría y creo que a muchas personas tambien un tutorial paso a paso de cómo instalar zimbra 7.2 en centos 6, asi como de configurar correctamente su DNS y la salida a internet de los correos que se envian. De antemano muchas gracias.

    • admin dice:

      Hola Jhony, tendre en cuenta tu comentario, en lo que va de la semana publicare un manual paso a paso de como hacerlo. Tambien estoy escribiendo un manual de instalación de un servidor de correo con Centos+Postfix+mysql+courier+Webmail_Rouncube+clamav+amavis+spamassing +restricción de usuarios para envio de correos internos o externos.
      Derepente les interese a quienes no se quieren amarrar con zimbra y lo pueden hacer con los paquetes específicos.

  2. Carolina dice:

    Hola estimado, tengo un problema con mi zimbra, el correo no sale localmente, no tengo un servidor dns, solo instale zimbra en centos 6, anda normal, ingreso al web zimbra de usuario, envio el correo pero nunca llega a la bandeja de otro usuario local. Me podrías ayudar a solucionar esto?

    • Marco dice:

      Estimada: Al instalar Zimbra es necesario instalar un servidor DNS para que el protocolo de transferencia local, LMTP, pueda funcionar. La configuración DNS, si estás atrás de un firewall, debes apuntar los registros A y MX a la máquina con Zimbra con su IP local, de lo contrario tendrás conexiones rechazadas en el puerto 7025, el que también debe estar abierto.

      Saludos

  3. Freddy dice:

    Estimado Martin realice todo el procedimiento en zimbra 8 antes de realizar los cambios el servidor funcionaba completamente, despues de los cambios no puedo enviar ni recibir ningun correo ni externo ni interno el servidor responde el siguiente error “451 4.3.5 Server configuration error” para todos los usuarios

Agregue un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *