Configurar Zimbra 8 para control de usuarios en Centos 6.3

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 8) 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/zmconfigd.cf

Paso 1: Editar el archivo “zmconfigd.cf” como root

 

 

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

 

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

 

POSTCONF smtpd_restriction_classes inter, local
POSTCONF inter FILE zmconfigd/postfix_restrict_inter.cf
POSTCONF local FILE zmconfigd/postfix_restrict_local.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 ubicado dentro de la carpeta “zmconfigd” “postfix_restrict_inter.cf” y “postfix_restrict_local.cf” respectivamente.

Paso 2:

Modificar el  archivo “smtpd_sender_restrictions.cf” :

#nano /opt/zimbra/conf/zmconfigd/smtpd_sender_restrictions.cf

Agregar las siguientes lineas al inicio:

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

En el archivo “smtpd_recipient_restrictions.cf”  Agregar la siguiente linea debajo de “permit_mynetworks”

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

Deberia quedar asi mas o menos:

%%contains VAR:zimbraServiceEnabled cbpolicyd, check_policy_service inet:localhost:@@cbpolicyd_bind_port@@%%
reject_non_fqdn_recipient
reject_unlisted_recipient
permit_mynetworks
check_sender_access hash:/opt/zimbra/conf/zmconfigd/usuarios
check_sender_access hash:/opt/zimbra/conf/zmconfigd/prohibido
%%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/zmconfigd/usuarios
pepito@mydomain.com inter
luchito@mydomain.com local
 ................

Ahora el archivo prohibido:

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

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

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

y colocar esto dentro:

permit

Ahora creamos el segundo archivo:

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

y colocar esto dentro:

check_recipient_access
hash:/opt/zimbra/conf/zmconfigd/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/zmconfigd/interno

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

dominio1.com.pe      ok
dominio2.com.pe   ok

Ahora creamos el archivo Access:

#nano /opt/zimbra/conf/zmconfigd/access

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

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

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

Paso 7.- Modificar la variable mynetworks a 127.0.0.0/8 y la red interna de la empresa, 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 192.168.0.0/24'
$ postfix reload

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

#su - zimbra
$ zmmtactl restart

69 comments

  1. Andres dice:

    Estimado, gracias por el manual, lo acabo de aplicar y me esta funcionando con la salvedad de que cuando usuarios de dominio externos responden o escriben a los usuarios del servidor de correo, no reciben los mensajes. tienes idea que puede estar pasando en ese caso?

    gracias de antemano

    • Martín dice:

      Hola, lo primero que tienes que fijar te es el log de tu servidor y ver si el correo llega al zimbra..
      Hiciste tail a /var/log/maillog ?… que sale?

  2. Felix dice:

    amigo mio corrí la configuración que indicas en mi servidor pero no puedo enviar ni recibir cuando aplico esta configuración me arroja el siguiente error:

    method: [unknown]
    msg: SMTP server reported: MESSAGE_NOT_DELIVERED
    code: mail.SEND_FAILURE
    detail: soap:Sender
    trace: qtp802487384-388:http://192.168.1.14:80/service/soap/SendMsgRequest:1369324028700:761985ceddc0cd50
    request:
    Body: {
    SendMsgRequest: {
    _jsns: “urn:zimbraMail”,
    m: {
    e: [
    // [0]:
    {
    a: “jchiza@munitrujillo.gob.pe”,
    t: “t”
    },
    // [1]:
    {
    a: “admin@csolidario.org”,
    t: “f”
    }
    ],
    idnt: “1b5897fe-6f5c-476a-ad71-73dae48850d9”,
    irt: {
    _content: “<20130523154457.30D0B1C0BC5@mail.csolidario.org>”
    },
    mp: [
    // [0]:
    {
    content: {
    _content: ”

    —– Mensaje reenviado —–
    De: admin@csolidario.org
    Para: admin@csolidario.org
    Enviados: Jueves, 23 de Mayo 2013 10:44:57
    Asunto: Service sasl started on mail.csolidario.org

    May 23 10:44:56 mail zmconfigd[26936]: Service status change: mail.csolidario.org sasl changed from stopped to running

    },
    ct: “text/plain”
    }
    ],
    origid: “424”,
    rt: “w”,
    su: {
    _content: “Fwd: Service sasl started on mail.csolidario.org”
    }
    },
    suid: 1369324029913
    }
    },
    Header: {
    context: {
    _jsns: “urn:zimbra”,
    account: {
    _content: “admin@csolidario.org”,
    by: “name”
    },
    authToken: “(removed)”,
    notify: {
    seq: 2
    },
    session: {
    _content: 13,
    id: 13
    },
    userAgent: {
    name: “ZimbraWebClient – GC26 (Win)”,
    version: “8.0.3_GA_5664”
    }
    }
    }

    Te pido me ayudes o me indiques si estoy siguiendo detalladamente tu explicación.

  3. Felix dice:

    tampoco veo que al igual que los otro hagas postmap al archivo prohibido
    yn en zmconfigd.cf no se declara toda la ruta completa para los archivos.
    POSTCONF inter FILE zmconfigd/postfix_restrict_inter.cf

    o sea
    POSTCONF inter FILE /opt/zimbra/conf/zmconfigd/postfix_restrict_inter.cf

    • Martín dice:

      Felix, en el archivo zmconfigd.cf no se declara la ruta completa, solo se declara desde la raiz donde esta instalado el Zimbra o sea esto es corecto:POSTCONF inter FILE zmconfigd/postfix_restrict_inter.cf
      si no revisa como esta la variable : POSTCONF smtpd_recipient_restrictions FILE zmconfigd/smtpd_recipient_restrictions.cf dentro de tu archivo zmconfigd.cf (esa variable la puso el mismo zimbra))

    • Martín dice:

      No se hace POSTCONF al archivo prohibido, pues esta no es variable del postfix, esta es llamada de las variables “smtpd_sender_restrictions.cf” y “smtpd_recipient_restrictions.cf”. El archivo prohibido es un archivo de texto que luego tiene que “indexarse” por llamarlo de alguna manera, se indexa con el comando “postmap”, esto convierte el archivo prohibido en prohibido.db ese es el archivo que lle postfix.(revisa el paso 6)

  4. Felix dice:

    ok pero te adjunto en todo caso el archivo o quieres q pegue todo el fuente del archivo,
    y si podia enviar y recibir

  5. Felix dice:

    ESTE ESEL CONTENIDO

    SECTION amavis
    REWRITE conf/amavisd.conf.in conf/amavisd.conf
    POSTCONF content_filter
    if SERVICE antivirus
    POSTCONF content_filter FILE zmconfigd/postfix_content_filter.cf
    fi
    if SERVICE antispam
    POSTCONF content_filter FILE zmconfigd/postfix_content_filter.cf
    fi
    if SERVICE archiving
    POSTCONF content_filter FILE zmconfigd/postfix_content_filter.cf
    fi
    LOCAL amavis_dspam_enabled
    LOCAL amavis_originating_bypass_sa
    LOCAL av_notify_domain
    LOCAL av_notify_user
    LOCAL ldap_url
    LOCAL ldap_amavis_password
    VAR zimbraMtaBlockedExtension
    VAR zimbraVirusWarnRecipient
    VAR zimbraSpamKillPercent
    VAR zimbraSpamTagPercent
    VAR zimbraSpamSubjectTag
    VAR zimbraAmavisQuarantineAccount
    VAR zimbraMtaMyNetworks
    VAR zimbraDomainMandatoryMailSignatureEnabled
    VAR zimbraIPMode
    VAR zimbraQuarantineBannedItems
    RESTART archiving antispam antivirus mta

    SECTION antivirus DEPENDS amavis
    REWRITE conf/clamd.conf.in conf/clamd.conf
    REWRITE conf/freshclam.conf.in conf/freshclam.conf MODE 0600
    VAR zimbraVirusWarnAdmin
    VAR zimbraVirusDefinitionsUpdateFrequency
    VAR zimbraVirusBlockEncryptedArchive
    VAR zimbraMtaMaxMessageSize
    RESTART antivirus mta

    SECTION antispam DEPENDS amavis
    REWRITE conf/salocal.cf.in conf/sa/salocal.cf
    REWRITE conf/dspam.conf.in conf/dspam.conf
    VAR zimbraMtaMyNetworks
    VAR zimbraMtaAntiSpamLockMethod
    VAR zimbraIPMode
    LOCAL antispam_mysql_enabled
    LOCAL antispam_mysql_host
    LOCAL antispam_mysql_port
    LOCAL antispam_mysql_user
    LOCAL antispam_mysql_password
    RESTART antispam mta

    SECTION archiving DEPENDS amavis
    RESTART archiving mta

    SECTION mta DEPENDS amavis
    LOCAL postfix_enable_smtpd_policyd
    REWRITE postfix/conf/master.cf.in postfix/conf/master.cf
    REWRITE postfix/conf/tag_as_foreign.re.in postfix/conf/tag_as_foreign.re
    REWRITE postfix/conf/tag_as_originating.re.in postfix/conf/tag_as_originating.re
    REWRITE conf/mta_milter_options.in conf/mta_milter_options
    VAR zimbraMilterServerEnabled
    VAR zimbraIPMode
    VAR zimbraMtaRestriction
    VAR zimbraMtaAuthEnabled
    VAR zimbraMtaBlockedExtension
    VAR zimbraMtaRecipientDelimiter
    VAR zimbraMtaMyNetworks
    VAR zimbraMtaMyOrigin
    VAR zimbraMtaMyHostname
    VAR zimbraMilterServerEnabled
    VAR zimbraMilterServerBindAddress
    VAR zimbraMilterServerBindPort
    VAR zimbraMtaSmtpdMilters
    VAR zimbraMtaNonSmtpdMilters
    if LOCAL postfix_enable_smtpd_policyd
    POSTCONF policy_time_limit LOCAL postfix_policy_time_limit
    fi
    if LOCAL !postfix_enable_smtpd_policyd
    POSTCONFD policy_time_limit
    fi
    if VAR zimbraMtaMyNetworks
    POSTCONF mynetworks VAR zimbraMtaMyNetworks
    fi
    if VAR zimbraMtaMyOrigin
    POSTCONF myorigin VAR zimbraMtaMyOrigin
    fi
    if VAR zimbraMtaMyDestination
    POSTCONF mydestination VAR zimbraMtaMyDestination
    fi
    POSTCONF smtpd_milters
    if VAR zimbraMtaSmtpdMilters
    POSTCONF smtpd_milters VAR zimbraMtaSmtpdMilters
    fi
    POSTCONF non_smtpd_milters
    if VAR zimbraMtaNonSmtpdMilters
    POSTCONF non_smtpd_milters VAR zimbraMtaNonSmtpdMilters
    fi
    if SERVICE !cbpolicyd
    POSTCONF smtpd_end_of_data_restrictions
    fi
    LOCAL zimbra_server_hostname
    REWRITE conf/postfix_header_checks.in conf/postfix_header_checks
    POSTCONF myhostname LOCAL zimbra_server_hostname
    if VAR zimbraMtaMyHostname
    POSTCONF myhostname VAR zimbraMtaMyHostname
    fi
    POSTCONF recipient_delimiter VAR zimbraMtaRecipientDelimiter
    POSTCONF smtpd_sasl_auth_enable VAR zimbraMtaSaslAuthEnable
    POSTCONF smtpd_tls_auth_only VAR zimbraMtaTlsAuthOnly
    POSTCONF smtpd_tls_security_level VAR zimbraMtaTlsSecurityLevel
    POSTCONF disable_dns_lookups VAR !zimbraMtaDnsLookupsEnabled
    POSTCONF message_size_limit VAR zimbraMtaMaxMessageSize
    POSTCONF mailbox_size_limit 0
    POSTCONF relayhost VAR zimbraMtaRelayHost
    POSTCONF smtpd_recipient_restrictions FILE zmconfigd/smtpd_recipient_restrictions.cf
    POSTCONF smtpd_relay_restrictions FILE zmconfigd/smtpd_relay_restrictions.cf
    POSTCONF smtpd_sender_restrictions FILE zmconfigd/smtpd_sender_restrictions.cf
    POSTCONF local_header_rewrite_clients permit_mynetworks,permit_sasl_authenticated

    POSTCONF alias_maps LOCAL postfix_alias_maps
    POSTCONF broken_sasl_auth_clients LOCAL postfix_broken_sasl_auth_clients
    POSTCONF bounce_queue_lifetime LOCAL postfix_bounce_queue_lifetime
    POSTCONF bounce_notice_recipient LOCAL postfix_bounce_notice_recipient
    POSTCONF mail_owner LOCAL postfix_mail_owner
    POSTCONF setgid_group LOCAL postfix_setgid_group
    POSTCONF command_directory LOCAL postfix_command_directory
    POSTCONF daemon_directory LOCAL postfix_daemon_directory
    POSTCONF delay_warning_time LOCAL postfix_delay_warning_time
    POSTCONF header_checks LOCAL postfix_header_checks
    if VAR zimbraMtaBlockedExtensionWarnRecipient
    POSTCONF header_checks
    fi
    POSTCONF mailq_path LOCAL postfix_mailq_path
    POSTCONF manpage_directory LOCAL postfix_manpage_directory
    POSTCONF newaliases_path LOCAL postfix_newaliases_path
    POSTCONF notify_classes LOCAL postfix_notify_classes
    POSTCONF queue_directory LOCAL postfix_queue_directory
    POSTCONF smtpd_sasl_authenticated_header LOCAL postfix_smtpd_sasl_authenticated_header
    POSTCONF sender_canonical_maps LOCAL postfix_sender_canonical_maps
    POSTCONF sendmail_path LOCAL postfix_sendmail_path
    POSTCONF smtpd_client_restrictions LOCAL postfix_smtpd_client_restrictions
    POSTCONF smtpd_data_restrictions LOCAL postfix_smtpd_data_restrictions
    POSTCONF smtpd_helo_required LOCAL postfix_smtpd_helo_required
    POSTCONF smtpd_reject_unlisted_recipient no
    POSTCONF smtpd_tls_cert_file LOCAL postfix_smtpd_tls_cert_file
    POSTCONF smtpd_tls_key_file LOCAL postfix_smtpd_tls_key_file
    POSTCONF smtpd_tls_loglevel LOCAL postfix_smtpd_tls_loglevel
    POSTCONF in_flow_delay LOCAL postfix_in_flow_delay
    POSTCONF import_environment LOCAL postfix_import_environment
    POSTCONF queue_run_delay LOCAL postfix_queue_run_delay
    POSTCONF minimal_backoff_time LOCAL postfix_minimal_backoff_time
    POSTCONF maximal_backoff_time LOCAL postfix_maximal_backoff_time
    POSTCONF lmtp_connection_cache_destinations LOCAL postfix_lmtp_connection_cache_destinations
    POSTCONF lmtp_connection_cache_time_limit LOCAL postfix_lmtp_connection_cache_time_limit
    POSTCONF lmtp_host_lookup LOCAL postfix_lmtp_host_lookup
    POSTCONF transport_maps LOCAL postfix_transport_maps
    POSTCONF propagate_unmatched_extensions LOCAL postfix_propagate_unmatched_extensions
    POSTCONF virtual_alias_domains LOCAL postfix_virtual_alias_domains
    POSTCONF virtual_alias_expansion_limit LOCAL postfix_virtual_alias_expansion_limit
    POSTCONF virtual_alias_maps LOCAL postfix_virtual_alias_maps
    POSTCONF virtual_mailbox_domains LOCAL postfix_virtual_mailbox_domains
    POSTCONF virtual_mailbox_maps LOCAL postfix_virtual_mailbox_maps
    POSTCONF virtual_transport LOCAL postfix_virtual_transport
    POSTCONF always_add_missing_headers LOCAL postfix_always_add_missing_headers
    POSTCONF smtpd_sasl_security_options LOCAL postfix_smtpd_sasl_security_options
    POSTCONF smtpd_sasl_tls_security_options LOCAL postfix_smtpd_sasl_tls_security_options
    POSTCONF smtp_cname_overrides_servername LOCAL postfix_smtp_cname_overrides_servername
    POSTCONF smtp_sasl_auth_enable LOCAL postfix_smtp_sasl_auth_enable
    POSTCONF smtp_sasl_security_options LOCAL postfix_smtp_sasl_security_options
    POSTCONF smtp_tls_security_level LOCAL postfix_smtp_tls_security_level
    POSTCONF smtp_sasl_mechanism_filter LOCAL postfix_smtp_sasl_mechanism_filter
    POSTCONF smtp_sasl_password_maps LOCAL postfix_smtp_sasl_password_maps
    POSTCONF inet_protocols VAR zimbraPostconfProtocol
    POSTCONF smtpd_restriction_classes inter, local
    POSTCONF inter FILE zmconfigd/postfix_restrict_inter.cf
    POSTCONF local FILE zmconfigd/postfix_restrict_local.cf
    RESTART mta

    SECTION opendkim DEPENDS mta
    LOCAL ldap_postfix_password
    LOCAL ldap_starttls_supported
    LOCAL av_notify_user
    LOCAL ldap_url
    VAR zimbraMtaMyNetworks
    VAR zimbraIPMode
    REWRITE conf/opendkim.conf.in conf/opendkim.conf
    REWRITE conf/opendkim-localnets.conf.in conf/opendkim-localnets.conf
    RESTART opendkim

    SECTION sasl
    VAR getAllMtaAuthURLs
    LOCAL sasl_smtpd_mech_list
    REWRITE conf/saslauthd.conf.in conf/saslauthd.conf
    REWRITE conf/sasl2/smtpd.conf.in conf/sasl2/smtpd.conf
    RESTART mta sasl

    SECTION webxml
    VAR zimbraMailPort
    VAR zimbraMailSSLPort
    VAR zimbraIPMode
    REWRITE mailboxd/etc/zimbra.web.xml.in mailboxd/webapps/zimbra/WEB-INF/web.xml
    REWRITE mailboxd/etc/zimbraAdmin.web.xml.in mailboxd/webapps/zimbraAdmin/WEB-INF/web.xml
    REWRITE mailboxd/etc/service.web.xml.in mailboxd/webapps/service/WEB-INF/web.xml
    REWRITE mailboxd/etc/zimlet.web.xml.in mailboxd/webapps/zimlet/WEB-INF/web.xml
    REWRITE mailboxd/etc/krb5.ini.in mailboxd/etc/krb5.ini
    REWRITE mailboxd/etc/spnego.conf.in mailboxd/etc/spnego.conf
    REWRITE mailboxd/etc/spnego.properties.in mailboxd/etc/spnego.properties
    REWRITE mailboxd/etc/zimbra-jetty-env.xml.in mailboxd/webapps/zimbra/WEB-INF/jetty-env.xml
    REWRITE mailboxd/etc/zimbraAdmin-jetty-env.xml.in mailboxd/webapps/zimbraAdmin/WEB-INF/jetty-env.xml
    RESTART mailboxd

    SECTION mailbox
    VAR zimbraMailPort
    VAR zimbraMailSSLPort
    VAR zimbraLogToSyslog
    VAR zimbraAdminURL
    VAR zimbraLmtpBindPort
    VAR zimbraPop3ServerEnabled
    VAR zimbraPop3BindAddress
    VAR zimbraPop3BindPort
    VAR zimbraPop3SSLServerEnabled
    VAR zimbraPop3SSLBindAddress
    VAR zimbraPop3SSLBindPort
    VAR zimbraImapServerEnabled
    VAR zimbraImapBindAddress
    VAR zimbraImapBindPort
    VAR zimbraImapSSLServerEnabled
    VAR zimbraImapSSLBindAddress
    VAR zimbraImapSSLBindPort
    VAR zimbraHttpNumThreads
    VAR nio_imap_enabled
    VAR zimbraSSLExcludeCipherSuites
    VAR zimbraSSLExcludeCipherSuitesXML
    VAR zimbraMailBindAddress
    VAR zimbraMailSSLBindAddress
    LOCAL mailboxd_keystore_password
    LOCAL mailboxd_truststore_password
    LOCAL zimbra_uid
    LOCAL zimbra_gid
    REWRITE conf/log4j.properties.in conf/log4j.properties
    REWRITE mailboxd/etc/jetty.properties.in mailboxd/etc/jetty.properties
    REWRITE mailboxd/etc/jetty.xml.in mailboxd/etc/jetty.xml
    REWRITE conf/spnego_java_options.in conf/spnego_java_options
    RESTART mailboxd

    SECTION proxy
    LOCAL ldap_url
    VAR getAllMemcachedServers
    VAR getAllReverseProxyBackends
    VAR getAllReverseProxyURLs
    VAR zimbraFileUploadMaxSize
    VAR zimbraImapProxyBindPort
    VAR zimbraImapSSLProxyBindPort
    VAR zimbraMailProxyPort
    VAR zimbraMailSSLProxyPort
    VAR zimbraPop3ProxyBindPort
    VAR zimbraPop3SSLProxyBindPort
    VAR zimbraReverseProxyAdminEnabled
    VAR zimbraReverseProxyAuthWaitInterval
    VAR zimbraReverseProxyCacheEntryTTL
    VAR zimbraReverseProxyCacheFetchTimeout
    VAR zimbraReverseProxyCacheReconnectInterval
    VAR zimbraReverseProxyDefaultRealm
    VAR zimbraReverseProxyHttpEnabled
    VAR zimbraReverseProxyImapEnabledCapability
    VAR zimbraReverseProxyImapExposeVersionOnBanner
    VAR zimbraReverseProxyImapSaslGssapiEnabled
    VAR zimbraReverseProxyImapSaslPlainEnabled
    VAR zimbraReverseProxyImapStartTlsMode
    VAR zimbraReverseProxyInactivityTimeout
    VAR zimbraReverseProxyIPLoginLimit
    VAR zimbraReverseProxyIPLoginLimitTime
    VAR zimbraReverseProxyIpThrottleMsg
    VAR zimbraReverseProxyLogLevel
    VAR zimbraReverseProxyMailEnabled
    VAR zimbraReverseProxyMailMode
    VAR zimbraReverseProxyPassErrors
    VAR zimbraReverseProxyPop3EnabledCapability
    VAR zimbraReverseProxyPop3ExposeVersionOnBanner
    VAR zimbraReverseProxyPop3SaslGssapiEnabled
    VAR zimbraReverseProxyPop3SaslPlainEnabled
    VAR zimbraReverseProxyPop3StartTlsMode
    VAR zimbraReverseProxyRouteLookupTimeout
    VAR zimbraReverseProxySendPop3Xoip
    VAR zimbraReverseProxySSLCiphers
    VAR zimbraReverseProxyUpstreamPollingTimeout
    VAR zimbraReverseProxyUpstreamReadTimeout
    VAR zimbraReverseProxyUpstreamSendTimeout
    VAR zimbraReverseProxyUserLoginLimit
    VAR zimbraReverseProxyUserLoginLimitTime
    VAR zimbraReverseProxyUserThrottleMsg
    VAR zimbraReverseProxyWorkerConnections
    VAR zimbraReverseProxyWorkerProcesses
    PROXYGEN
    RESTART proxy

    SECTION ldap
    LOCAL ldap_common_loglevel
    LOCAL ldap_common_require_tls
    LOCAL ldap_common_threads
    LOCAL ldap_common_toolthreads
    LOCAL ldap_common_writetimeout
    LOCAL ldap_db_checkpoint
    LOCAL ldap_db_maxsize
    LOCAL ldap_accesslog_checkpoint
    LOCAL ldap_accesslog_maxsize
    LOCAL ldap_overlay_syncprov_checkpoint
    LOCAL ldap_overlay_accesslog_logpurge
    LDAP ldap_common_loglevel LOCAL ldap_common_loglevel
    LDAP ldap_common_require_tls LOCAL ldap_common_require_tls
    LDAP ldap_common_threads LOCAL ldap_common_threads
    LDAP ldap_common_toolthreads LOCAL ldap_common_toolthreads
    LDAP ldap_common_writetimeout LOCAL ldap_common_writetimeout
    LDAP ldap_db_checkpoint LOCAL ldap_db_checkpoint
    LDAP ldap_db_maxsize LOCAL ldap_db_maxsize
    LDAP ldap_accesslog_checkpoint LOCAL ldap_accesslog_checkpoint
    LDAP ldap_accesslog_maxsize LOCAL ldap_accesslog_maxsize
    LDAP ldap_overlay_syncprov_checkpoint LOCAL ldap_overlay_syncprov_checkpoint
    LDAP ldap_overlay_accesslog_logpurge LOCAL ldap_overlay_accesslog_logpurge

    SECTION cbpolicyd
    REWRITE conf/cbpolicyd.conf.in conf/cbpolicyd.conf
    LOCAL cbpolicyd_pid_file
    LOCAL cbpolicyd_log_file
    LOCAL cbpolicyd_db_file
    LOCAL cbpolicyd_log_level
    LOCAL cbpolicyd_log_mail
    LOCAL cbpolicyd_log_detail
    LOCAL cbpolicyd_bind_port
    LOCAL cbpolicyd_timeout
    LOCAL cbpolicyd_bypass_mode
    LOCAL cbpolicyd_bypass_timeout
    LOCAL cbpolicyd_module_accesscontrol
    LOCAL cbpolicyd_module_greylisting
    LOCAL cbpolicyd_module_checkhelo
    LOCAL cbpolicyd_module_checkspf
    LOCAL cbpolicyd_module_quotas
    if SERVICE cbpolicyd
    POSTCONF smtpd_end_of_data_restrictions FILE zmconfigd/smtpd_end_of_data_restrictions.cf
    fi
    RESTART cbpolicyd mta

    SECTION stats
    REWRITE conf/stats.conf.in conf/stats.conf

    • Martín dice:

      no veo que en tu archivo exista la siguiente sentencia:
      POSTCONF smtpd_sender_login_maps ‘$virtual_mailbox_maps’

    • Felix dice:

      DONDE DEBO DECLARAR ESA SENTENCIA
      POSTCONF smtpd_sender_login_maps ‘$virtual_mailbox_maps’

      • Martín dice:

        Esta sentencia es propia de la instalación de zimbra, seguro la eliminaste sin darte cuenta.
        deberia estar antes del : RESTART mta

        Asi deberia ser:

        POSTCONF smtp_sasl_password_maps LOCAL postfix_smtp_sasl_password_maps
        POSTCONF inet_protocols VAR zimbraPostconfProtocol

        POSTCONF smtpd_sender_login_maps ‘$virtual_mailbox_maps’

        POSTCONF smtpd_restriction_classes inter, local
        POSTCONF inter FILE zmconfigd/postfix_restrict_inter.cf
        POSTCONF local FILE zmconfigd/postfix_restrict_local.cf
        RESTART mta

  6. Felix dice:

    MARTIN, AMIGO EL POSTMAP TAMPOCO SE EJECUTA PARAEL ARCHIVO PROHIBIDO POR Q NO LO INDICAS EN EL PASO 6

    • Martín dice:

      Tienes razon la lo corregi, esta en el paso 6

    • Felix dice:

      yo tengo mi servidor sobre centos 6.4 + zimbra 8.0.3 la sentencia
      POSTCONF smtpd_sender_login_maps ‘$virtual_mailbox_maps
      no esta sobre el restart MTA
      tendria q agregarla (busque la sentencia en mis 2 servidores de correo y en ninguna figura)
      otra cosa mas, Martin con el script de backup para version 7.2 de zimbra puedo genera backup para la veersion 8 ( y que paquetes adicionales debo instalar en mi servidor para que el script se ejecute, de antemano gracias.

      • Martín dice:

        si agrégalo nomas.. respecto a los backups, esto va a funcionar siempre y cuando la versión a la que vas a restaurar sea la misma. Es decir si ahora tienes la version 8.0.3 instalada y después de un tiempo quieres restaurar esta versión en otro servidor, primero tienes que instalar el Zimbra 8.0.3 en tu nuevo servidor y luego restauras el backup

        • Felix dice:

          martin amigo para el tema de los backups no tengo q instalar algun paquete en especial por ejemplo para ubuntu o debian me pide rsync y otro q no recuerdo para centos no necesto, pasa que realice una instalacion minima del mismo solo tien el zimbra y sus pre-requisitos

  7. FELIX GALLEGOS dice:

    ES NECESARIO EL PASO 7 PUEDES DETALLARME POR FAVOR AMIGO EN ESTE CASO MI RED INTERNA ES (172.16.1.0/24) TMB TENGO QU DECLARAR EL IP DPUBLICO DE MI SERVER

    • Martín dice:

      Felix a ver te explico:
      La variable Mynetworks se utiliza para decirle al servidor desde que equipos o redes se puede enviar correos, por lo tanto si nosotros estamos enviando desde nuestra red interna debe ir esta y el localhost (127.0.0.1) nada mas a lo mucho (tu ip publica no cuenta aqui).
      En realidad solo debería estar localhost nada mas y te explico porque y lo que tienes que tener en consideracion:
      1.- si estamos aplicando restricciones le estamos diciendo al servidor que el valide quien envia correos internos y externos, esto lo hace previa validacion con la tabla usuarios y alli le estamos diciendo pepito puede enviar a todo lado y luchito solo local.

      2.- Para que se aplique esto en la configuracion de tu outlook por ejemplo, debes de decirle que el servidor SMTP envie el correo de manera segura y activado el check de que tu servidor requiere autenticacion, ademas de configurar los púertos de salida segun la imagen que estoy poniendo mas abajo.
      Con esa configuracion tu variable Mynetworks, solo deberia de quedar asi:

      Mynetworks= 127.0.0.1

      luego si revisas los logs te vas a dar cuenta que cuando envias un mail, el postfix toma tu correo y lo envia desde la IP 127.0.0.1 por lo cual ya no necesitas poner la ip interna de tu red.

      Saludos

      PD. si en la variable Mynetworks colocas tambien tu red interna (Mynetworks= 127.0.0.1 192.168.1.0/24) por ejemplo no es necesario poner los check de la figura de la configuracion que coloco mas abajo, lo dejas tal cual esta (no es recomendable esto).

      Ver la imagen aqui: Imagenhttp://www.networksolutions-peru.com/images/configuracion_outlook.png

  8. FELIX GALLEGOS dice:

    amigo, segui la configuracion para restriccion de envio y recepcion
    pasa que no puedo enviar ni recibir

    o derepente estoy colocando mal las cuentas y dominio podrias explicarme q tengo que colocar en cada lista generada

    1 usuarios: asumo que tengo que ingresar todos los usuarios de mi zimbra e indicarle el inter ( completo ) o local (restringido)
    .2 prohibido: dominios o cunetas a las que no puede enviar quien ( los que estan en inter o local)

    3 access: cuando indicas dejar un espacio te refiere espacio con la barra espaciadora
    o un enter para pasar al sgte renglon.

    tmb omiti el paso 7

    4 interno: dominio permitidos ( pra que lista inter o local)

    per igual no

  9. FELIX GALLEGOS dice:

    estoy enviando desde el clienteweb desde hotmail a zimbra y viceversa
    desde gmail a zimbra y viseversa

  10. FELIX GALLEGOS dice:

    sabes Martín en realida yo necesito que por ejemplo restringir a todos el envio a determinados dominio y solo permitir el envio a algunas cuentas de ese dominio restringido
    me indicas por favor

  11. FELIX GALLEGOS dice:

    al enviar me dice: Mensaje no enviado; una o más direcciones no han sido aceptadas.
    Direcciones rechazadas: fgallegosch@gmail.com
    y mi usuario desde el q envio esta declarado como inter (el inter se tabula o solo se da un espacio) en la lista de usuario

  12. FELIX GALLEGOS dice:

    tampoco puedo enviar internamente

    • Martín dice:

      Felix, al parecer te estas confundiendo. has lo siguiente y si estas dispuesto a reacer todo si es que no esta en propduccion:

      1.- desisntala Zimbra con el siguiente comando (tienes que estar dentro de la carpeta de instalación)
      ./install.sh -u.

      2.- vuelve a instalar y prueba que puedas enviar correos sin problemas.

      Cuando estes en este punto ya te puedo ayudar paso a paso.

      Saludos

      • Ernesto dice:

        Hola me gustaria saber si me puedes ayudar con el servidor de correo que tengo montado q es zimbra8.5.1 en ubuntu14.0 LTS y necesito modificar las obciones donde le permito darle salida internacional a unos cuantos usuarios y a otros no como puedo hacer esa parte estube leyendo el manual que escribio arriba pero antes de hacer esos pasos necesito un poco de orientacion, me ayudas mi correo se lo escribo abajo para que me pueda escribir y asi me pueda ayudar,
        y tambien con la configuracion del squid para denegar paginas a usuarios y a otros no saludos espero que me puedan ayudar

  13. FELIX GALLEGOS dice:

    POSTCONF smtpd_sender_login_maps ‘$virtual_mailbox_maps’ ???
    asi es NO INCLUYE LOCAL??

  14. FELIX GALLEGOS dice:

    listo ya esta configuradio mi servidor con el zimbra ahora orientame por favor

  15. Felix dice:

    SI OK
    SI TENGO TEAM VIEWER
    AVISAME PARA ENVIARTE LOS DATOS DE CONEXION
    Y SI SI PUEDO ENVIAR AL HOTMAIL

  16. FELIX GALLEGOS dice:

    AMIG MUY BUENO TU POST QUERRIA SABER SI PODRIAS SUBIR EN TU BLOG LOS PSOS PARA IMPLEENTAR UN SERVIDOR DNS PUBLICO EL CUAL ESTARIA DETRAS DE UN FIREWALL ALGO ASI

    SERVIDOR DNS ——-> PROXY FUREWALL ———–> ROUTER >>>>>> INTERNET
    EL SERVIDOR DNS TENDRIA UN IP LOCAL Y SE HARIA UN NAT DEL ROUTER AL FIREWALL Y DEL FIREWALL AL SERVIDOR

  17. Duvan Ballen dice:

    Hola, de antemano te felicito excelente post… muchas gracias.

    Por otro lado, quería saber si para agregar un nuevo usuario al fichero o cambiar la restricción a un usuario en el fichero /opt/zimbra/conf/zmconfigd/usuarios , es necesario mapear de nuevo todo con postmap, o basta con reiniciar zmmtactl…?

    De nuevo gracias.

    • Martín dice:

      Gracias por el comentario.
      Si agregas o modificas las restricciones al usuario tienes que mapear de nuevo al archivo (postmap) y esperar a que refresque uns 30 a 60 segundos.
      Saludos

  18. jesus dice:

    Saludos amigo. Estoy intentando instalar zimbra 8 en centos 6.4 y no he podido lograrlo, por favor amigo tendras una guia disponible de como instalarlo y configurarlo correctamenta. Desde ya muchas gracias desde Venezuela.

  19. Alexander Leyva Fonseca dice:

    Hola martin, muy interesante y laborioso tu blog. Mis felicitaciones y agradecimiento por tu aporte al mundo del software libre. Tengo una duda y realmente el tiempo no me alcanza para buscar en internet porque hasta ahora no he encontrado nada. Mi duda es la siguiente, tengo instalado Zimbra 8.0.1_GA_5438.FOSS sobre CentOS 6.4 con las restricciones propias de cuentas nacionales y externas pero se me ha presentado una solicitud de mi jefe y no he encontrado respuesta a dicha interrogante por lo que recurro a tu experiencia. Hay un usuario con restricción nacional pero se le quiere añadir salida a una cuenta específica fuera de nuestro dominio .cu, o sea, que la salida fuera de este dominio sería anclada a una dirección por ejemplo usuario@yahoo.es ¿Permite Zimbra hacer esta declaración? ¿Como lo haría? Me urge darle respuesta cuanto antes. Atentamente ,


    Lic. Alexander Leyva Fonseca
    Especialista en Ciencias Informáticas
    DSIT (Centro de Investigaciones Siderúrgicas)
    ACINOX-Nicaro
    Jabber: aleyva@mail.dsit.cu
    Telfs: 51-6396, 51-6827, 51-6849, 51-6580
    Ext. 101
    Fax: 51-7276
    “Antes de hablar, escucha.
    Antes de reaccionar, piensa.
    Antes de criticar, espera.
    Antes de renunciar, intenta.”

    • Martín dice:

      Hola Alexander:
      A ver si entiendo bien el escenario que tienes es el siguiente y funcionando perfectamente:
      – Un grupo de usuarios puede enviar solo de manera local (o nacional) como le llamas tu.
      – Otro grupo con cuentas externas (me imagino que envían a todo dominio sin problemas).

      Tu problema es el siguiente:

      – Tienes un usuario que ahora solo puede enviar a cuentas nacionales y DESEAS que este usuario pueda enviar también a una cuenta de yahoo (por ejemplo: pepito@yahoo.es). o sea, sería un tercer tipo de usuario.(En resumen este usuario solo debe enviar a cuentas nacionales + una cuenta de yahoo.es) a este usuario le vamos a llamar privilegiado, su cuenta sería privilegiado@mydomain.com.

      Si esto es tu dilema, es muy fácil de resolver.

      Si te fijas en el PUNTO 1, les pido agregar 3 lineas:

      POSTCONF smtpd_restriction_classes inter, local
      POSTCONF inter FILE zmconfigd/postfix_restrict_inter.cf
      POSTCONF local FILE zmconfigd/postfix_restrict_local.cf

      Aqui en este punto deberías de modificar y agregar una variable adicional (para nuestro tercer tipo de usuario), debería de quedar asi mas o menos:

      POSTCONF smtpd_restriction_classes inter, local, mixto
      POSTCONF inter FILE zmconfigd/postfix_restrict_inter.cf
      POSTCONF local FILE zmconfigd/postfix_restrict_local.cf
      POSTCONF mixto FILE zmconfigd/postfix_restrict_mixto.cf

      Luego te salteas al PASO 4 y creas el archivo postfix_restrict_mixto.cf (es similar a los otros)

      #nano /opt/zimbra/conf/zmconfigd/postfix_restrict_mixto.cf

      Dentro del archivo colocas esto

      check_recipient_access
      hash:/opt/zimbra/conf/zmconfigd/mixto
      reject

      Luego pasas al PASO 5 y adicional a lo que indico alli, creas el archivo mixto

      #nano /opt/zimbra/conf/zmconfigd/mixto

      Alli dentro del archivo, colocas los 2 dominios o cuentas de correo que deseas pueda enviar el usuario.

      dominio1.com.pe ok
      pepito@yahoo.es ok

      Ahora lo mas importante es decirle en el archivo “usuarios” (PASO 3) que el mencionado usuario (a quien quieres darle ese privilegio) tenga asociado la variable mixto.

      nano /opt/zimbra/conf/zmconfigd/usuarios

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

      Con esto, le estamos diciendo a Zimbra que el usuario “privilegiado” puede enviar al dominio nacional + al correo pepito@yahoo.es

      Asi puedes jugar con cuanta variable se te ocurra.

      Espero haberte ayudado y disculpa la tardanza, pues tuve bastante trabajo.

      Martín Lugo

  20. Alexander dice:

    Muy buen aporte como siempre, me daba un error pero era que debia sustituir:
    POSTCONF local FILE zmconfigd/postfix_restrict_mixto.cf
    por:
    POSTCONF mixto FILE zmconfigd/postfix_restrict_mixto.cf
    y trabaja de maravillas, muy buen blog lo he recomendado a mis colegas que recien comienzan con Zimbra y administracion de Linux.
    Yo tengo declarados dos archivos para definir la entrada y salida de los usuarios pero declaro mixto para el usuario en cuestion en cada fichero y trabaja al 100%.
    Te reitero mi agradecimiento…

    • Martín dice:

      Hola Alexander, me alegro que te haya servido, gracias por el comentario y ya corregí la variable que me mencionas.

      Saludos Cordiales.

      Martín Lugo Palmadera

  21. Denis Pardo Cardenas dice:

    AYUDA CON ZIMBRA
    resulta que necesito que algunos de mis usuarios tengan correo nacional y otros internacional. Buscando en la internet encontre este blog y lo que ecriben aqui lo implemente y me funciona perfecto ya zimbra restringue a los usuarios, pueden enviar correos sin problemas pero los correos desde internet y fuera de mi dominio no entran.

    si me pudieran ayudar

  22. Denis Pardo Cardenas dice:

    AYUDA CON ZIMBRA.
    resulta que necesito que algunos de mis usuarios tengan correo nacional y otros internacional. Buscando en la internet encontre este blog y lo que ecriben aqui lo implemente y me funciona perfecto ya zimbra restringue a los usuarios, pueden enviar correos sin problemas pero los correos desde internet y fuera de mi dominio no entran.

    si me pudieran ayudar.

    • Martín dice:

      Hola Denis:
      Me imagino que si alguien de tu mismo pais y de cualquier dominio nacional te envia te llega el correo verdad?

      Puedes capturar los log que se genera al momento de que te envias por ejemplo de un correo de hotmail….

      puedes postear lo que sale con postconf -n?

      Martín

      • Martín dice:

        Denis te pido mires tu configuración de DNS al parecer el problema va por alli, pues si no recibes de ningun lado que no sea tu dominio local, entonces el resto (o el mundo) no te puede ubicar no saben donde se encuentra tu dominio por eso no llega nada, por el contrario si tu ves que si los log de tu servidor marca que por ejemplo hotmail se conecta para hacer un envio, pero este no llega al buzon, alli si tendriamos que ver que está pasando dentro de zimbra.

        Martín Lugo Palmadera

  23. Denis Pardo Cardenas dice:

    hola martín, antes de hacer esta configuracion zimbra me funcionaba bien podia enviar y recibir sin problemas, luego ya estan funcionando asi si se puede enviar sin problemas que los correos a internet llegan, incluso los correos que estan dentro de mi dominio llegan, pero los que estan fuera no.
    aqui te pongo el error que me da

    Jun 13 14:01:11 correo postfix/smtpd[22029]: error: unsupported dictionary type: .proxy
    Jun 13 14:01:11 correo postfix/smtpd[22029]: connect from unknown[192.168.1.82]
    Jun 13 14:01:56 correo postfix/smtpd[22029]: NOQUEUE: reject: RCPT from unknown[192.168.1.82]: 450 4.1.8 : Sender address rejected: Domain not found; from= to= proto=ESMTP helo=
    Jun 13 14:01:57 correo postfix/smtpd[22029]: disconnect from unknown[192.168.1.82]

  24. Denis Pardo Cardenas dice:

    Jun 13 14:01:11 correo postfix/smtpd[22029]: error: unsupported dictionary type: .proxy
    Jun 13 14:01:11 correo postfix/smtpd[22029]: connect from unknown[192.168.1.82]
    Jun 13 14:01:56 correo postfix/smtpd[22029]: NOQUEUE: reject: RCPT from unknown[192.168.1.82]: 450 4.1.8 : Sender address rejected: Domain not found; from= to= proto=ESMTP helo=
    Jun 13 14:01:57 correo postfix/smtpd[22029]: disconnect from unknown[192.168.1.82]

  25. Denis Pardo Cardenas dice:

    esto es lo que me sale cuando pongo postconf -n

    proxy:ldap:/opt/zimbra/conf/ldap-vmm.cf
    virtual_transport = error
    zimbra@correo:/root$ tpd_end_of_data_restrictions =
    smtpd_helo_required = yes
    smtpd_milters =
    smtpd_recipient_restrictions = reject_non_fqdn_recipient, reject_unlisted_recipient, permit_mynetwo rks, check_sender_access hash:/opt/zimbra/conf/zmconfigd/usuarios, check_sender_access hash:/opt/zi mbra/conf/zmconfigd/prohibido, reject_non_fqdn_sender, permit
    smtpd_reject_unlisted_recipient = no
    smtpd_relay_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
    smtpd_restriction_classes = inter, local
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_authenticated_header = no
    smtpd_sasl_security_options = noanonymous
    smtpd_sasl_tls_security_options = $smtpd_sasl_security_options
    smtpd_sender_login_maps = .$virtual_mailbox_maps
    smtpd_sender_restrictions = check_sender_access hash:/opt/zimbra/conf/zmconfigd/usuarios, check_sen der_access hash:/opt/zimbra/conf/zmconfigd/prohibido, hash:/opt/zimbra/conf/zmconfigd/access, rejec t_unknown_sender_domain, reject_invalid_hostname
    smtpd_tls_auth_only = yes
    smtpd_tls_cert_file = /opt/zimbra/conf/smtpd.crt
    smtpd_tls_key_file = /opt/zimbra/conf/smtpd.key
    smtpd_tls_loglevel = 1
    smtpd_tls_security_level = may
    transport_maps = proxy:ldap:/opt/zimbra/conf/ldap-transport.cf
    virtual_alias_domains = proxy:ldap:/opt/zimbra/conf/ldap-vad.cf
    virtual_alias_expansion_limit = 10000
    virtual_alias_maps = proxy:ldap:/opt/zimbra/conf/ldap-vam.cf
    virtual_mailbox_domains = proxy:ldap:/opt/zimbra/conf/ldap-vmd.cf
    virtual_mailbox_maps = proxy:ldap:/opt/zimbra/conf/ldap-vmm.cf
    virtual_transport = error
    tpd_end_of_data_restrictions: command not found
    zimbra@correo:/root$ smtpd_helo_required = yes
    smtpd_helo_required: command not found
    zimbra@correo:/root$ smtpd_milters =
    smtpd_milters: command not found
    zimbra@correo:/root$ smtpd_recipient_restrictions = reject_non_fqdn_recipient, reject_unlisted_recipient, permit_mynetwo rks, check_sender_access hash:/opt/zimbra/conf/zmconfigd/usuarios, check_sender_access hash:/opt/zi mbra/conf/zmconfigd/prohibido, reject_non_fqdn_sender, permit
    smtpd_recipient_restrictions: command not found
    zimbra@correo:/root$ smtpd_reject_unlisted_recipient = no
    smtpd_reject_unlisted_recipient: command not found
    zimbra@correo:/root$ smtpd_relay_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
    smtpd_relay_restrictions: command not found
    zimbra@correo:/root$ smtpd_restriction_classes = inter, local
    smtpd_restriction_classes: command not found
    zimbra@correo:/root$ smtpd_sasl_auth_enable = yes
    smtpd_sasl_auth_enable: command not found
    zimbra@correo:/root$ smtpd_sasl_authenticated_header = no
    smtpd_sasl_authenticated_header: command not found
    zimbra@correo:/root$ smtpd_sasl_security_options = noanonymous
    smtpd_sasl_security_options: command not found
    zimbra@correo:/root$ smtpd_sasl_tls_security_options = $smtpd_sasl_security_options
    smtpd_sasl_tls_security_options: command not found
    zimbra@correo:/root$ smtpd_sender_login_maps = .$virtual_mailbox_maps
    smtpd_sender_login_maps: command not found
    zimbra@correo:/root$ smtpd_sender_restrictions = check_sender_access hash:/opt/zimbra/conf/zmconfigd/usuarios, check_sen der_access hash:/opt/zimbra/conf/zmconfigd/prohibido, hash:/opt/zimbra/conf/zmconfigd/access, rejec t_unknown_sender_domain, reject_invalid_hostname
    smtpd_sender_restrictions: command not found
    zimbra@correo:/root$ smtpd_tls_auth_only = yes
    smtpd_tls_auth_only: command not found
    zimbra@correo:/root$ smtpd_tls_cert_file = /opt/zimbra/conf/smtpd.crt
    smtpd_tls_cert_file: command not found
    zimbra@correo:/root$ smtpd_tls_key_file = /opt/zimbra/conf/smtpd.key
    smtpd_tls_key_file: command not found
    zimbra@correo:/root$ smtpd_tls_loglevel = 1
    smtpd_tls_loglevel: command not found
    zimbra@correo:/root$ smtpd_tls_security_level = may
    smtpd_tls_security_level: command not found
    zimbra@correo:/root$ transport_maps = proxy:ldap:/opt/zimbra/conf/ldap-transport.cf
    transport_maps: command not found
    zimbra@correo:/root$ virtual_alias_domains = proxy:ldap:/opt/zimbra/conf/ldap-vad.cf
    virtual_alias_domains: command not found
    zimbra@correo:/root$ virtual_alias_expansion_limit = 10000
    virtual_alias_expansion_limit: command not found
    zimbra@correo:/root$ virtual_alias_maps = proxy:ldap:/opt/zimbra/conf/ldap-vam.cf
    virtual_alias_maps: command not found
    zimbra@correo:/root$ virtual_mailbox_domains = proxy:ldap:/opt/zimbra/conf/ldap-vmd.cf
    virtual_mailbox_domains: command not found
    zimbra@correo:/root$ virtual_mailbox_maps = proxy:ldap:/opt/zimbra/conf/ldap-vmm.cf
    virtual_mailbox_maps: command not found
    zimbra@correo:/root$ virtual_transport = error
    virtual_transport: command not found
    zimbra@correo:/root$ postconf -n
    alias_maps = hash:/etc/aliases
    always_add_missing_headers = yes
    bounce_notice_recipient = postmaster
    bounce_queue_lifetime = 5d
    broken_sasl_auth_clients = yes
    command_directory = /opt/zimbra/postfix/sbin
    config_directory = /opt/zimbra/postfix-2.10-20121007.2z/conf
    content_filter =
    daemon_directory = /opt/zimbra/postfix/libexec
    delay_warning_time = 0h
    disable_dns_lookups = no
    header_checks =
    import_environment =
    in_flow_delay = 1s
    inet_protocols = ipv4
    inter = permit
    lmtp_connection_cache_destinations =
    lmtp_connection_cache_time_limit = 4s
    lmtp_host_lookup = dns
    local = check_recipient_access, hash:/opt/zimbra/conf/zmconfigd/interno, reject
    local_header_rewrite_clients = permit_mynetworks,permit_sasl_authenticated
    mail_owner = postfix
    mailbox_size_limit = 0
    mailq_path = /opt/zimbra/postfix/sbin/mailq
    manpage_directory = /opt/zimbra/postfix/man
    maximal_backoff_time = 4000s
    message_size_limit = 10240000
    minimal_backoff_time = 300s
    mydestination = localhost
    myhostname = correo.mo.ca.rimed.cu
    mynetworks = 127.0.0.0/8 192.168.0.0/24 192.168.1.0/24 10.71.4.0/24
    newaliases_path = /opt/zimbra/postfix/sbin/newaliases
    non_smtpd_milters =
    notify_classes = resource,software
    propagate_unmatched_extensions = canonical
    queue_directory = /opt/zimbra/data/postfix/spool
    queue_run_delay = 300s
    recipient_delimiter =
    relayhost = 192.168.1.82:25
    sender_canonical_maps = proxy:ldap:/opt/zimbra/conf/ldap-scm.cf
    sendmail_path = /opt/zimbra/postfix/sbin/sendmail
    setgid_group = postdrop
    smtp_cname_overrides_servername = no
    smtp_sasl_auth_enable = no
    smtp_sasl_mechanism_filter =
    smtp_sasl_password_maps =
    smtp_sasl_security_options = noplaintext,noanonymous
    smtp_tls_security_level =
    smtpd_client_restrictions = reject_unauth_pipelining
    smtpd_data_restrictions = reject_unauth_pipelining
    smtpd_end_of_data_restrictions =
    smtpd_helo_required = yes
    smtpd_milters =
    smtpd_recipient_restrictions = reject_non_fqdn_recipient, reject_unlisted_recipient, permit_mynetworks, check_sender_access hash:/opt/zimbra/conf/zmconfigd/usuarios, check_sender_access hash:/opt/zimbra/conf/zmconfigd/prohibido, reject_non_fqdn_sender, permit
    smtpd_reject_unlisted_recipient = no
    smtpd_relay_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
    smtpd_restriction_classes = inter, local
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_authenticated_header = no
    smtpd_sasl_security_options = noanonymous
    smtpd_sasl_tls_security_options = $smtpd_sasl_security_options
    smtpd_sender_login_maps = .$virtual_mailbox_maps
    smtpd_sender_restrictions = check_sender_access hash:/opt/zimbra/conf/zmconfigd/usuarios, check_sender_access hash:/opt/zimbra/conf/zmconfigd/prohibido, hash:/opt/zimbra/conf/zmconfigd/access, reject_unknown_sender_domain, reject_invalid_hostname
    smtpd_tls_auth_only = yes
    smtpd_tls_cert_file = /opt/zimbra/conf/smtpd.crt
    smtpd_tls_key_file = /opt/zimbra/conf/smtpd.key
    smtpd_tls_loglevel = 1
    smtpd_tls_security_level = may
    transport_maps = proxy:ldap:/opt/zimbra/conf/ldap-transport.cf
    virtual_alias_domains = proxy:ldap:/opt/zimbra/conf/ldap-vad.cf
    virtual_alias_expansion_limit = 10000
    virtual_alias_maps = proxy:ldap:/opt/zimbra/conf/ldap-vam.cf
    virtual_mailbox_domains = proxy:ldap:/opt/zimbra/conf/ldap-vmd.cf
    virtual_mailbox_maps = proxy:ldap:/opt/zimbra/conf/ldap-vmm.cf
    virtual_transport = error
    zimbra@correo:/root$ clear
    zimbra@correo:/root$ postconf -n
    alias_maps = hash:/etc/aliases
    always_add_missing_headers = yes
    bounce_notice_recipient = postmaster
    bounce_queue_lifetime = 5d
    broken_sasl_auth_clients = yes
    command_directory = /opt/zimbra/postfix/sbin
    config_directory = /opt/zimbra/postfix-2.10-20121007.2z/conf
    content_filter =
    daemon_directory = /opt/zimbra/postfix/libexec
    delay_warning_time = 0h
    disable_dns_lookups = no
    header_checks =
    import_environment =
    in_flow_delay = 1s
    inet_protocols = ipv4
    inter = permit
    lmtp_connection_cache_destinations =
    lmtp_connection_cache_time_limit = 4s
    lmtp_host_lookup = dns
    local = check_recipient_access, hash:/opt/zimbra/conf/zmconfigd/interno, reject
    local_header_rewrite_clients = permit_mynetworks,permit_sasl_authenticated
    mail_owner = postfix
    mailbox_size_limit = 0
    mailq_path = /opt/zimbra/postfix/sbin/mailq
    manpage_directory = /opt/zimbra/postfix/man
    maximal_backoff_time = 4000s
    message_size_limit = 10240000
    minimal_backoff_time = 300s
    mydestination = localhost
    myhostname = correo.mo.ca.rimed.cu
    mynetworks = 127.0.0.0/8 192.168.0.0/24 192.168.1.0/24 10.71.4.0/24
    newaliases_path = /opt/zimbra/postfix/sbin/newaliases
    non_smtpd_milters =
    notify_classes = resource,software
    propagate_unmatched_extensions = canonical
    queue_directory = /opt/zimbra/data/postfix/spool
    queue_run_delay = 300s
    recipient_delimiter =
    relayhost = 192.168.1.82:25
    sender_canonical_maps = proxy:ldap:/opt/zimbra/conf/ldap-scm.cf
    sendmail_path = /opt/zimbra/postfix/sbin/sendmail
    setgid_group = postdrop
    smtp_cname_overrides_servername = no
    smtp_sasl_auth_enable = no
    smtp_sasl_mechanism_filter =
    smtp_sasl_password_maps =
    smtp_sasl_security_options = noplaintext,noanonymous
    smtp_tls_security_level =
    smtpd_client_restrictions = reject_unauth_pipelining
    smtpd_data_restrictions = reject_unauth_pipelining
    smtpd_end_of_data_restrictions =
    smtpd_helo_required = yes
    smtpd_milters =
    smtpd_recipient_restrictions = reject_non_fqdn_recipient, reject_unlisted_recipient, permit_mynetworks, check_sender_access hash:/opt/zimbra/conf/zmconfigd/usuarios, check_sender_access hash:/opt/zimbra/conf/zmconfigd/prohibido, reject_non_fqdn_sender, permit
    smtpd_reject_unlisted_recipient = no
    smtpd_relay_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
    smtpd_restriction_classes = inter, local
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_authenticated_header = no
    smtpd_sasl_security_options = noanonymous
    smtpd_sasl_tls_security_options = $smtpd_sasl_security_options
    smtpd_sender_login_maps = .$virtual_mailbox_maps
    smtpd_sender_restrictions = check_sender_access hash:/opt/zimbra/conf/zmconfigd/usuarios, check_sender_access hash:/opt/zimbra/conf/zmconfigd/prohibido, hash:/opt/zimbra/conf/zmconfigd/access, reject_unknown_sender_domain, reject_invalid_hostname
    smtpd_tls_auth_only = yes
    smtpd_tls_cert_file = /opt/zimbra/conf/smtpd.crt
    smtpd_tls_key_file = /opt/zimbra/conf/smtpd.key
    smtpd_tls_loglevel = 1
    smtpd_tls_security_level = may
    transport_maps = proxy:ldap:/opt/zimbra/conf/ldap-transport.cf
    virtual_alias_domains = proxy:ldap:/opt/zimbra/conf/ldap-vad.cf
    virtual_alias_expansion_limit = 10000
    virtual_alias_maps = proxy:ldap:/opt/zimbra/conf/ldap-vam.cf
    virtual_mailbox_domains = proxy:ldap:/opt/zimbra/conf/ldap-vmd.cf
    virtual_mailbox_maps = proxy:ldap:/opt/zimbra/conf/ldap-vmm.cf
    virtual_transport = error

    • Martín dice:

      Denis, aqui vo que solo te tratas de conectar desde tu red local, por otro lado veo 2 cosas que no deberias tener en tu archivo de configuracion del postconf.
      1.- nunca debes de poner ip especificas a no ser que sea muy necesario en la variable “Mynetworks”, deberia ser asi:
      Mynetworks = 127.0.0.1 de esta manera obligas a que cualquier usuario que desee enviar un mail pase por lo controles de zimbra. y en la configuracion del cliente de correo deberias de aplicar y leer lo que comente lineas mas arriba y con imagenes.

      otro punto:
      tu tienes en la variable smtpd_sender_restrictions = check_sender_access
      y yo recomende poner esto:

      smtpd_sender_restrictions = reject_authenticated_sender_login_mismatch, check_sender_access hash:/opt/zimbra/conf/zmconfigd/usuarios, hash:/opt/zimbra/conf/zmconfigd/access, check_sender_access hash:/opt/zimbra/conf/zmconfigd/prohibido, reject_unknown_sender_domain, reject_invalid_hostname, check_sender_access regexp:/opt/zimbra/postfix/conf/tag_as_originating.re, permit_mynetworks, permit_sasl_authenticated, permit_tls_clientcerts, check_sender_access regexp:/opt/zimbra/postfix/conf/tag_as_foreign.re

      estas seguro de haber seguido al detalle el manual?

      para probar y ver que pasa en los log, crea una cuenta en hotmail u otro mail.. y trata de enviar un correo a tu dominio, fijate si este otro servido se trata de conectar a tui server en el log…… y es asi capturalo y me lo envias.

  26. David dice:

    Sr. Martín, me gustaria que me oriente y me pueda ayudar con un tema personal.

    Tengo 02 dominios (01 dominio.pe – Envia y recibe / 01 intranet.dominio.pe – solo envia y

    recibe de su propio dominio )

    Aplique lo que usted indica en excepxion de “prohibido” y funcional al 70% ya q el interno no envia a otro pero aun recibe de cualquiera.. Cuando aplique el “PROHIBIDO” , EMPESO EL PROBLEMA DE QUE YA NADA SALE NI LLEGA”

    COMO PODRIA HACER…

  27. David dice:

    Como decirle que a zimbra que intranet solo puede recibir correos del mismo dominio ?

    Quedo a la espera de su respuesta, y desde ya le se Agradece por su tiempo …

    =)

  28. pablo dice:

    estimado necesito ayuda trngo mi servidor zimbra inicialmente enviaba y recibia normalmente, pero en la empresa se cambio de isp al hacer este cambio ahora no se puede enviar correos desde el webmail del zimbra y cuando envio los mails desde el outlook los correos ej xxx.hotmail.com llegan a spam del hotmail. el mensaje que me indica es que no se ha podido enviar el mensaje debido a una direccion no valida

  29. alexandre dice:

    Estou precisando implementar uma regra de controle de anexos por usuários no zimbra 8, alguém já tentou fazer algo do gênero?. Estava pensando em utilizar o header_checks mas não consegui por em pratica, alguém tem alguma dica?

  30. David dice:

    Sr. Martin, esto aplica tambien a ZIMBRA 8.5?

    • Martín dice:

      Hola david, de echo estoy haciendo un post con esto de migrar al 8.5 desde un 7.2 u 8.03, y segun mis pruebas trabaja bien, sin problemas, el tema esta en que la BD ya no es MySQl si no utilizan MariaDB, alli hay que tener cuidado los que migramos de una versión anterior, después en el tema de las restricciones solo hay que tener claro y dominar postfix, es allí donde se aplica las restricciones.

      Saludos

      Martín Lugo

      • David dice:

        Sr. Martín, gracias por su respuesta. Yo aplique este caso y no sabe lo mucho que me sirvió. En el caso del 8.5 Se que es nuevo y lo mejor es que es aun mas rápido que el 8.0.7.

        Instale el 8.5 y luego aplique este post sin tener resultado. En el paso 2 exactamente este es distinto. Si le funciona quedo a la espera de su respuesta para seguir revisando. Graciassssss!!!!!

        Paso 2:

        Modificar el archivo “smtpd_sender_restrictions.cf” :

        • Martín dice:

          Hola David. Gracias por el comentario… en el transcurso de la siguiente semana pondre el post con el 8.5, solo hay que ajustar algunas cosas, pues algunas variables se han modificado.

          Saludos Cordiales

          Martin Lugo

  31. David dice:

    Gracias, estaré atento a su Blog.

  32. Jorge dice:

    Buen dia,

    He hecho tu tutorial al pie de la letra, pero no logro recibir correos de los dominios que están en el archivo prohibido.

    solo necesito negar el envió de correos a los dominios listados en el archivo prohibido pero si recibirlos.

    como podría hacer esto.

    Te agradezco

  33. David dice:

    Sr. Martin, solo quería comentarle que sigo intentando aplicar este proceso en la Versión 8.6. aun no eh tenido éxito! Si usted podría ayudarme seria excelente…

  34. Juan Pablo dice:

    Hola Martin

    tengo un caso de ataque en mi zimbra opensource 8.0.4

    Nov 5 11:09:45 mail postfix/smtpd[4509]: A8B672A29DA: filter: RCPT from unknown[172.31.16.33]: : Sender address triggers F ILTER smtp-amavis:[127.0.0.1]:10026; from= to= proto=ESMTP helo=
    Nov 5 11:09:45 mail postfix/smtpd[4753]: NOQUEUE: reject: RCPT from unknown[172.31.16.33]: 554 5.7.1 : Sender address rejected : Access denied; from= to= proto=SMTP helo=
    Nov 5 11:09:45 mail postfix/smtpd[4509]: A8B672A29DA: filter: RCPT from unknown[172.31.16.33]: : Sender address triggers F ILTER smtp-amavis:[127.0.0.1]:10026; from= to= proto=ESMTP helo=
    Nov 5 11:09:45 mail postfix/smtpd[4753]: NOQUEUE: reject: RCPT from unknown[172.31.16.33]: 554 5.7.1 : Sender address rejected : Access denied; from= to= proto=SMTP helo=

    mi configuracion en redes de confianza

    zmprov modifyServer mail.hosts.com.pe zimbraMtaMyNetworks ‘127.0.0.0/8 192.168.85.0/24 172.31.16.32/27’

    el servidor esta en una dmz cuya ip es 172.31.16.34

    para evitar esto debo cambiar mis redes de confianza

    de ante mano las gracias

    • Martín dice:

      Hola Juan Pablo, lo ideal es que como red de confianza solo tengas 127.0.0.1, de esta manera Zimbra se encarga de validar quien se conecta a sus servicios y evalua si esta autorizado a enviar o no…. Si le dices por ejemplo que su red de confianza es 192.168.85.0/24 Zimbra piensa que todos los hosts pertenceientes a este segmento esta autorizados de enviar correos, y si por ejemplo uno de esos hosts se infecta con algun malware puede enviar correos atraves del zimbra sin restricciones.

      Saludos

  35. George dice:

    Buen día Martín.

    Tengo esta configuración en un servidor en producción, y quiero instalar el parche que hay de zimbra para la version 8.0.7, la pregunta es, ¿si aplico la actualización, se perderá la configuración hecha anteriormente?.

    • Martín dice:

      Hola George:
      Si el parche no toca los archivos modificados, entonce no se perderá la actualizacion. Pero se precavido y saca una copia a los archivo modificados y despues de parchar tu sistema regresalos o ejecuta el tutorial.

  36. Juan Torres dice:

    He seguido a pie tu tutorial, ya envio y recibo correctamente correos internos, ahora como lo hago para enviar externos, espero y me puedas apoyar, saludos

  37. Manuel Claros dice:

    #Restringir cuentas a dominios externos.

    crear 2 dominios en zimbra

    ejemplo @activesystems.com.sv (cuentas envios externos)
    @activesystems.local (Cuentas envios Internos)

    #paso1
    en este archivo se encontrara el dominio que bloquearemos el envio a dominios externos
    echo activesystems.local restrict_tpmail > /opt/zimbra/conf/tpmail_senders
    verificar archivo creado cat /opt/zimbra/conf/tpmail_senders
    debe mostrar : activesystems.local restrict_tpmail

    #Paso 2
    Le indicaremos los dominios de correo, a los cuales les es permitido enviar mails. En este ejemplo, permitiremos que el dominio activesystems.local, pueda enviar mails a cuentas del propio dominio y al dominio de activesystems.com.sv

    crear archivos
    echo activesystems.local OK > /opt/zimbra/conf/tpmail_recipients
    echo activesystems.com.sv OK >> /opt/zimbra/conf/tpmail_recipients

    # paso 3
    hacer propietario a zimbra
    chown zimbra:zimbra /opt/zimbra/conf/tpmail*

    verificar archivo : cat /opt/zimbra/conf/tpmail_recipients
    debe mostrar : activesystems.local OK
    activesystems.com.sv OK
    # Paso 4
    ejecutar los siguientes comandos con usuario zimbra
    postmap /opt/zimbra/conf/tpmail_recipients
    postmap /opt/zimbra/conf/tpmail_senders

    # Paso 5
    Modificaremos el fichero de zmconfigd.cf, para que nos lea los ficheros de configuración que hemos creado. Es importante destacar que en futuras actualizaciones de la plataforma de Zimbra,tendremos que repetir este paso, ya que con la actualización de la plataforma, los cambios realizados se sobrescribirán.

    editar el archivo con usuario root
    vim /opt/zimbra/conf/zmconfigd.cf

    buscar el parametro siguiente
    POSTCONF virtual_transport VAR zimbraMtaSmtpdVirtualTransport

    abajo de este parametro insertar lo siguiente.

    POSTCONF smtpd_sender_restrictions FILE postfix_sender_restrictions.cf
    POSTCONF smtpd_restriction_classes restrict_tpmail
    POSTCONF restrict_tpmail FILE postfix_restrict_tpmail.cf

    quedando de estar manera
    POSTCONF virtual_transport VAR zimbraMtaSmtpdVirtualTransport
    POSTCONF smtpd_sender_restrictions FILE postfix_sender_restrictions.cf
    POSTCONF smtpd_restriction_classes restrict_tpmail
    POSTCONF restrict_tpmail FILE postfix_restrict_tpmail.cf

    #Paso 6
    Ahora solamente nos queda configurar los ficheros de restricciones y reiniciar los servicios de Zimbra
    Ejecutar los siguientes comandos con usuario root

    echo check_sender_access lmdb:/opt/zimbra/conf/tpmail_senders > /opt/zimbra/conf/postfix_sender_restrictions.cf

    echo check_recipient_access lmdb:/opt/zimbra/conf/tpmail_recipients, reject > /opt/zimbra/conf/postfix_restrict_tpmail.cf

    chown zimbra:zimbra /opt/zimbra/conf/postfix_sender_restrictions.cf

    chown zimbra:zimbra /opt/zimbra/conf/postfix_restrict_tpmail.cf

    #paso 7

    Reiniciar los servicios de zimbra zmcontrol restart.

    Reiniciar pruebas de envio a dominios externos desde las cuentas activesystems.local

Agregue un comentario

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