Zimbra
Zimbra[editar]
Principais comandos[editar]
Comandos úteis na administração do servidor
Descobrir qual é a versão e arquitetura do seu Zimbra:
zmcontrol -v
Comando para Iniciar o server:
/etc/init.d/zimbra start ou zmcontrol start
Parar o servidor
/etc/init.d/zimbra stop ou zmcontrol stop
Reiniciar o servidor:
/etc/init.d/zimbra restart ou zmcontrol restart
Checar o status do servidor:
/etc/init.d/zimbra status ou zmcontrol status
Obter ajuda do comando zmprov
zmprov help commands
Obter opções de uso do e a sintaxe de comandos do zmprov:
zmprov -h
Trocar o nome da máquina do Zimbra:
/etc/init.d/zimbra stop ; /opt/zimbra/libexec/zmsetservername -o antigo.dominio.com -n novo.dominio.com
Obter nome da máquina do Zimbra:
zmhostname
Administração de dominios
Listar todos os domínios no Zimbra:
zmprov gad
Criar outro domínio:
zmprov cd dominio.org.br
Renomear um domínio:
zmprov -l rd dominio.org.br dominio.net.br
Criar alias para domínio:
zmprov cad alias_dominio.com.br dominio.com.br
Verificar qual o domínio padrão do Zimbra:
zmprov gacf zimbraDefaultDomainName
Para remover um domínio ou um alias de domínio:
zmprov dd alias_dominio.com.br
Administração de usuarios e contas
Trocar a senha de administrador:
zmprov sp [email protected] 'senhaaqui'
Criar usuario:
zmprov ca [email protected] 'senhaaqui'
Alterar a senha de um usuário:
zmprov sp [email protected] 'dominio.usuario'
Listar todos usuarios
zmprov -l gaa
Listar todos os usuários de um domínio:
zmprov -l gaa dominio.com.br
Listar usuários que são administradores:
zmprov -l gaaa
Transformar um usuario em administrador:
zmprov -l gaaa dominio.com.br
Criar um usuario com o atributo de administrador
zmprov ma [email protected] zimbraIsAdminAccount TRUE
Renomear conta
zmprov ca [email protected] 'senhaaqui' zimbraIsAdminAccount TRUE
Renomear conta mudando de domínio
zmprov ra [email protected] [email protected]
Deletar Conta
zmpra da <[email protected]>
Visualizar atributos de uma conta
zmprov ga [email protected]
Adicionar alias a uma conta:
zmprov aaa [email protected] [email protected]
Listar os alias:
for i in $(zmprov -l gaa); do echo -e "\n$i:"; zmprov ga $i | grep MailAlias; done
Listar os alias de um determinado domínio:
for i in $(zmprov -l gaa dominio.com); do echo -e "\n$i:"; zmprov ga $i | grep MailAlias; done
Remover alias
zmprov raa [email protected] [email protected]
COS - Classes de Serviço
Listar Classes:
zmprov gac
Criar uma nova COS:
zmprov cc nome_da_classe
Ver todos os atributos de uma classe:
zmprov gc nome_da_classe
Alterar a COS de um usuário:
zmprov sac [email protected] nova_classe
Para ver quantos usuários de um dominio estão em classes:
zmprov cta dominio.com.br
Obter o atributo da quota da COS:
zmprov gc nome_classe zimbraMailQuota
Quota em disco
Obter quota utilizada por cada usuário de um domínio (Formato Conta Quota Quota Utilizada):
zmprov gqu localhost
Alterar attribute de quota para o valor de 80M, este número deve ser em bytes
zmprov mc nome_da_classe zimbraMailQuota 83886080
Checar se a quota foi alterada
zmprov gc nome_da_classe zimbraMailQuota
Para ver a quota de cada usuario, voce pode usar o comando:
for i in $(zmprov -l gaa); do zmprov ga $i zimbraMailQuota; done
Conectividade
Ativar somente o acesso http:
zmtlsctl http ; zmcontrol restart
Ativar somente o acesso https:
zmtlsctl https ; zmcontrol restart
Ativa o acesso http e https:
zmtlsctl mixed ; zmcontrol restart
Logs[editar]
Pastas de logs do zimbra
/var/zimbra/log/audit.log
ou
/var/zimbra/log/zimbra.log
ou
/opt/zimbra/log/mailbox.log
Ubuntu e Debian
/var/zimbra/log/mail.log
CentOS
/var/zimbra/log/maillog
Para Logs de entrega de email na caixa (LMTP) Login e Logout Imap/Pop/Mapi, Erros na aplicação java, operações de indexação, lentidão no banco de dados (slow queries) e outros
tail -f /opt/zimbra/log/mailbox.log
Logs de atividade do postfix, status dos serviços, atividades do antivirus e antispam e outros:
tail -f /opt/zimbra/log/zimbra.log
Logs de autenticação:
tail -f /opt/zimbra/log/audit.log
Logs do antivirus db:
tail -f /opt/zimbra/log/clamd.log
Logs de atualizaçao do Antivirus Clamav
tail -f /opt/zimbra/log/freshclam.log
Logs ao DB do store que estão demorando
tail -f /opt/zimbra/log/myslow.log
Logs de treinamento do Antispam
tail -f /opt/zimbra/log/spamtrain.log
Tipos de status de conta[editar]
Para obter o status de uma conta:
zmprov ga [email protected] | grep -i zimbraaccountstatus
Alterar o status da conta do usuário <[email protected]> para ativo:
zmprov ma [email protected] zimbraaccountstatus active
Lembrando que a função zimbraAccountStatus aceita como argumento os seguintes valores:
- active ou Ativa: Ativo é o estado normal para uma conta de caixa de correio. As mensagens são entregues e os usuários podem fazer logon na interface cliente normalmente.
- maintenance ou Manutenção: Quando um estado de caixa de correio está definido para a manutenção, o login é desativado , e e-mails endereçados para a conta são enfileirados no MTA (Postfix). Uma conta pode ser configurada para o modo de manutenção para fazer o backup , importação ou restaurar a caixa de correio.
- pending ou Pendente: Status pendente é um status que pode ser atribuído quando uma nova conta é criada e ainda não está pronto para se tornar ativa . O login é desativado e as mensagens são devolvidas aos remetentes.
- locked ou Bloqueada: Quando um status de uma conta é ‘bloqueado’, o usuário não pode entrar, mas as mensagens ainda são entregues a caixa. O status bloqueado pode ser definido, se você suspeitar que uma conta de email foi hackeada ou está sendo usado de forma não autorizada.
- closed ou Fechada: Quando o status do usuário é ‘fechado’, o login é desativado, e as mensagens são devolvidas . Este status é utilizado para inativar uma conta antes de excluir a mesma do servidor. A conta fechada não deixa de consumir uma licença.
- Bloqueio: Isso é definido automaticamente quando os usuários que tentam logar, não digitam sua senha correta e tem, então, sua conta bloqueada temporariamente. Você não pode definir esse status manualmente. Você configura uma política de login com um determinado número de tentativas de login falhas consecutivas que são permitidos antes que a conta seja bloqueada. Quanto tempo a conta é bloqueada é definido pelo COS ou configuração de conta, mas você pode alterar o status de bloqueio a qualquer momento.
Administrador Delegado[editar]
- addAccountAlias: Adicionar alias a uma conta de usuário
- addCalendarResourceAlias: Adicionar alias a um recurso de calendário
- addDistributionListAlias: Adicionar alias a uma lista de distribuição
- countAlias: Contar o número de aliases no domínio
- createAlias: Criar aliases de e-mail
- deleteAlias: Remover aliases de e-mail
- listAlias: Listar aliases do domínio
- removeAccountAlias: Remover alias de uma conta
- removeCalendarResourceAlias: Remover alias de um recurso de calendário
- removeDistributionListAlias: Remover alias de uma lista de distribuição
- backupAccount: Fazer backup de uma caixa postal
- createMigrationTask: Criar tarefas de migração de caixas postais
- crossMailboxSearchRights: Pesquisar em múltiplas caixas postais (e-discovery)
- manageAccountArchives: Gerenciar arquivos (archives) de contas
- manageCalendarResourceArchives: Gerenciar archives de recursos de calendário
- manageCrossMailboxSearchTask: Gerenciar tarefas de busca entre caixas postais
- moveAccountMailbox: Mover caixa postal de uma conta entre servidores
- moveCalendarResourceMailbox: Mover caixa postal de recurso de calendário
- purgeMessages: Purgar/remover mensagens antigas das caixas postais
- reindexCalendarResourceMailbox: Reindexar a caixa postal de recurso de calendário
- reindexMailbox: Reindexar a caixa postal de uma conta
- restoreAccount: Restaurar backup de uma caixa postal
- adminConsoleAccountRights: Direitos gerais de contas no console admin
- adminConsoleAccountsACLTabRights: Ver/usar aba ACL das contas no console
- adminConsoleAccountsAliasesTabRights: Ver/usar aba Aliases das contas no console
- adminConsoleAccountsContactTabRights: Ver/usar aba Contato das contas no console
- adminConsoleAccountsFeaturesTabRights: Ver/usar aba Funcionalidades das contas no console
- adminConsoleAccountsForwardingTabRights: Ver/usar aba Encaminhamento das contas no console
- adminConsoleAccountsFreeBusyInteropTabRights: Ver/usar aba Free/Busy das contas no console
- adminConsoleAccountsInfoTabRights: Ver/usar aba Informações das contas no console
- adminConsoleAccountsMemberOfTabRights: Ver/usar aba Membro de (grupos) das contas
- adminConsoleAccountsPreferencesTabRights: Ver/usar aba Preferências das contas no console
- adminConsoleAccountsThemesTabRights: Ver/usar aba Temas das contas no console
- adminConsoleAccountsZimletsTabRights: Ver/usar aba Zimlets das contas no console
- adminConsoleAliasRights: Direitos gerais de aliases no console admin
- adminConsoleBackupRights: Acessar seção de Backup no console admin
- adminConsoleCOSACLTabRights: Ver/usar aba ACL das classes de serviço (COS)
- adminConsoleCOSAdvancedTabRights: Ver/usar aba Avançado das COS no console
- adminConsoleCOSFeaturesTabRights: Ver/usar aba Funcionalidades das COS
- adminConsoleCOSInfoTabRights: Ver/usar aba Informações das COS
- adminConsoleCOSMobileTabRights: Ver/usar aba Mobile das COS
- adminConsoleCOSPreferencesTabRights: Ver/usar aba Preferências das COS
- adminConsoleCOSRights: Direitos gerais de COS no console admin
- adminConsoleCOSServerPoolTabRights: Ver/usar aba Pool de servidores das COS
- adminConsoleCOSThemesTabRights: Ver/usar aba Temas das COS
- adminConsoleCOSZimletsTabRights: Ver/usar aba Zimlets das COS
- adminConsoleCertificateRights: Gerenciar certificados SSL no console
- adminConsoleClientUploadRights: Fazer upload de clientes/software no console
- adminConsoleConfigGALRights: Configurar GAL no console admin
- adminConsoleCreateGALRights: Criar fontes GAL no console admin
- adminConsoleCreateSubDomainModifierRights: Modificar criação de subdomínios no console
- adminConsoleCreateSubDomainRights: Criar subdomínios no console admin
- adminConsoleCreateTopDomainRights: Criar domínios de topo no console admin
- adminConsoleCrossMailboxSearchRights: Usar busca entre caixas postais no console
- adminConsoleDLACLTabRights: Ver/usar aba ACL das listas de distribuição
- adminConsoleDLAliasesTabRights: Ver/usar aba Aliases das listas de distribuição
- adminConsoleDLMemberOfTabRights: Ver/usar aba Membro de das listas de distribuição
- adminConsoleDLMembersTabRights: Ver/usar aba Membros das listas de distribuição
- adminConsoleDLNotesTabRights: Ver/usar aba Notas das listas de distribuição
- adminConsoleDLRights: Direitos gerais de DL no console admin
- adminConsoleDLSharesTabRights: Ver/usar aba Compartilhamentos das DL
- adminConsoleDomainACLTabRights: Ver/usar aba ACL do domínio no console
- adminConsoleDomainAuthenticationTabRights: Ver/usar aba Autenticação do domínio
- adminConsoleDomainDocumentsTabRights: Ver/usar aba Documentos do domínio
- adminConsoleDomainFreebusyTabRights: Ver/usar aba Free/Busy do domínio
- adminConsoleDomainGALTabRights: Ver/usar aba GAL do domínio no console
- adminConsoleDomainInfoTabRights: Ver/usar aba Informações do domínio
- adminConsoleDomainLimitsTabRights: Ver/usar aba Limites do domínio
- adminConsoleDomainRights: Direitos gerais de domínio no console admin
- adminConsoleDomainThemesTabRights: Ver/usar aba Temas do domínio
- adminConsoleDomainVirtualHostsTabRights: Ver/usar aba Hosts virtuais do domínio
- adminConsoleDomainZimletsTabRights: Ver/usar aba Zimlets do domínio
- adminConsoleExtensionACLTabRights: Ver/usar aba ACL de extensões no console
- adminConsoleExtensionRights: Gerenciar extensões no console admin
- adminConsoleGlobalACLTabRights: Ver/usar aba ACL da configuração global
- adminConsoleGlobalASAVTabRights: Ver/usar aba Anti-spam/Anti-vírus global
- adminConsoleGlobalAttachmentsTabRights: Ver/usar aba Anexos da configuração global
- adminConsoleGlobalBackupRestoreTabRights: Ver/usar aba Backup/Restore global
- adminConsoleGlobalFreebusyTabRights: Ver/usar aba Free/Busy global
- adminConsoleGlobalHSMTabRights: Ver/usar aba HSM (armazenamento hierárquico) global
- adminConsoleGlobalIMAPTabRights: Ver/usar aba IMAP da configuração global
- adminConsoleGlobalInfoTabRights: Ver/usar aba Informações da configuração global
- adminConsoleGlobalLicenseTabRights: Ver/usar aba Licença no console global
- adminConsoleGlobalMTATabRights: Ver/usar aba MTA da configuração global
- adminConsoleGlobalPOPTabRights: Ver/usar aba POP da configuração global
- adminConsoleGlobalRights: Direitos gerais da configuração global no console
- adminConsoleGlobalThemesTabRights: Ver/usar aba Temas da configuração global
- adminConsoleMailQueueRights: Gerenciar fila de e-mails no console admin
- adminConsoleMigrationRights: Executar e gerenciar migrações no console
- adminConsoleResourceRights: Direitos gerais de recursos de calendário no console
- adminConsoleResourcesContactTabRights: Ver/usar aba Contato dos recursos de calendário
- adminConsoleResourcesPropertiesTabRights: Ver/usar aba Propriedades dos recursos de calendário
- adminConsoleRights: Direitos gerais de acesso ao console admin
- adminConsoleSavedSearchRights: Gerenciar buscas salvas no console admin
- adminConsoleServerACLTabRights: Ver/usar aba ACL dos servidores no console
- adminConsoleServerBackupRestoreTabRights: Ver/usar aba Backup/Restore dos servidores
- adminConsoleServerIMAPTabRights: Ver/usar aba IMAP dos servidores
- adminConsoleServerInfoTabRights: Ver/usar aba Informações dos servidores
- adminConsoleServerMTATabRights: Ver/usar aba MTA dos servidores
- adminConsoleServerPOPTabRights: Ver/usar aba POP dos servidores
- adminConsoleServerRights: Direitos gerais de servidores no console
- adminConsoleServerServicesTabRights: Ver/usar aba serviços dos servidores
- adminConsoleServerStatisticRights: Ver estatísticas dos servidores no console
- adminConsoleServerStatusRights: Ver status dos servidores no console
- adminConsoleServerVolumesTabRights: Ver/usar aba Volumes dos servidores
- adminConsoleSoftwareUpdatesRights: Gerenciar atualizações de software no console
- adminConsoleSubDomainRights: Gerenciar subdomínios no console admin
- adminConsoleUCServiceRights: Gerenciar serviços UC no console admin
- adminConsoleZimletACLTabRights: Ver/usar aba ACL de Zimlets no console
- adminConsoleZimletRights: Gerenciar Zimlets no console admin
- configureAdminUI: Configurar a interface do console administrativo
- domainAdminConsoleAccountRights: Direitos do console admin de domínio para contas
- domainAdminConsoleAccountsAliasesTabRights: Aba Aliases no console de admin de domínio
- domainAdminConsoleAccountsContactTabRights: Aba Contato no console de admin de domínio
- domainAdminConsoleAccountsFeaturesTabRights: Aba Funcionalidades no console de admin de domínio
- domainAdminConsoleAccountsForwardingTabRights: Aba Encaminhamento no console de admin de domínio
- domainAdminConsoleAccountsFreeBusyInteropTabRights: Aba Free/Busy no console de admin de domínio
- domainAdminConsoleAccountsInfoTabRights: Aba Informações no console de admin de domínio
- domainAdminConsoleAccountsMemberOfTabRights: Aba Membro de no console de admin de domínio
- domainAdminConsoleAccountsThemesTabRights: Aba Temas no console de admin de domínio
- domainAdminConsoleAccountsZimletsTabRights: Aba Zimlets no console de admin de domínio
- domainAdminConsoleAliasRights: Direitos de aliases no console de admin de domínio
- domainAdminConsoleDLAliasesTabRights: Aba Aliases de DL no console de admin de domínio
- domainAdminConsoleDLMemberOfTabRights: Aba Membro de DL no console de admin de domínio
- domainAdminConsoleDLMembersTabRights: Aba Membros de DL no console de admin de domínio
- domainAdminConsoleDLNotesTabRights: Aba Notas de DL no console de admin de domínio
- domainAdminConsoleDLRights: Direitos gerais de DL no console de admin de domínio
- domainAdminConsoleDLSharesTabRights: Aba Compartilhamentos de DL no console de admin de domínio
- domainAdminConsoleResourceRights: Direitos de recursos no console de admin de domínio
- domainAdminConsoleResourcesContactTabRights: Aba Contato de recursos no console de admin de domínio
- domainAdminConsoleResourcesPropertiesTabRights: Aba Propriedades de recursos no console de admin de domínio
- domainAdminConsoleRights: Direitos gerais do console de admin de domínio
- domainAdminConsoleSavedSearchRights: Buscas salvas no console de admin de domínio
- viewAccountAdminUI: Ver a UI de admin de uma conta no console
- viewDistributionListAdminUI: Ver a UI de admin de uma lista de distribuição
- setAdminSavedSearch: Salvar buscas no console administrativo
- viewAdminSavedSearch: Ver buscas salvas no console administrativo
- adminLoginAs: Fazer login como outro usuário (impersonation)
- adminLoginCalendarResourceAs: Fazer login como um recurso de calendário
- autoProvisionAccount: Provisionar contas automaticamente (LDAP/AD)
- changeAccountPassword: Alterar a senha de uma conta
- changeCalendarResourcePassword: Alterar a senha de um recurso de calendário
- checkCalendarResourcePasswordStrength: Verificar a força de senha de recurso de calendário
- checkPasswordStrength: Verificar a força de senha de uma conta
- configureQuota: Configurar cota de armazenamento de contas
- configureWikiAccount: Configurar conta wiki do Zimbra
- countAccount: Contar o número de contas no domínio
- countCalendarResource: Contar recursos de calendário no domínio
- createAccount: Criar novas contas de usuário
- createCalendarResource: Criar recursos de calendário (salas, equipamentos)
- deleteAccount: Excluir contas de usuário permanentemente
- deleteCalendarResource: Excluir recursos de calendário
- domainAdminAccountRights: Conjunto completo de direitos de conta para admin de domínio
- domainAdminCalendarResourceRights: Direitos de recursos de calendário para admin de domínio
- getAccount: Ler/consultar dados de uma conta
- getAccountInfo: Obter Informações básicas de uma conta
- getAccountMembership: Ver os grupos/listas de distribuição de uma conta
- getCalendarResource: Consultar dados de um recurso de calendário
- getCalendarResourceInfo: Obter Informações básicas de um recurso de calendário
- getDomainAdminAccountAttrs: Ver atributos de conta visíveis para admin de domínio
- getDomainAdminCalendarResourceAttrs: Ver atributos de recurso de calendário para admin de domínio
- getMailboxInfo: Obter Informações da caixa postal de uma conta
- getMailboxStats: Consultar estatísticas da caixa postal
- listAccount: Listar contas do domínio
- listCalendarResource: Listar recursos de calendário do domínio
- modifyAccount: Modificar atributos de uma conta de usuário
- modifyCalendarResource: Modificar atributos de um recurso de calendário
- remoteWipe: Realizar limpeza remota (wipe) de dispositivo móvel
- renameAccount: Renomear (alterar o endereço principal) de uma conta
- renameCalendarResource: Renomear um recurso de calendário
- setAccountPassword: Definir (resetar) a senha de uma conta
- setCalendarResourcePassword: Definir a senha de um recurso de calendário
- setDomainAdminAccountAndCalendarResourceAttrs: Definir atributos de conta/recurso visíveis para admin de domínio
- setDomainAdminCalendarResourceAttrs: Definir atributos de recurso de calendário para admin de domínio
- assignCos: Atribuir Classe de serviço (COS) a uma conta
- configureCosConstraint: Definir restrições em atributos da COS
- countCos: Contar as classes de serviço disponíveis
- createCos: Criar novas Classes de serviço (COS)
- deleteCos: Excluir Classes de serviço (COS)
- domainAdminCosRights: Direitos de COS para admin de domínio
- getCos: Consultar configurações de uma Classe de serviço
- listCos: Listar as Classes de serviço disponíveis
- migrationAdminCosRights: Direitos de COS durante migrações
- modifyCos: Modificar configurações de uma Classe de serviço
- renameCos: Renomear uma Classe de serviço
- besAdminDomainRights: Direitos de admin BES (BlackBerry) no domínio
- checkDomainMXRecord: Verificar o registro MX do domínio
- configureExternalAuth: Configurar Autenticação externa (LDAP/AD) do domínio
- configureExternalGAL: Configurar fonte GAL externa do domínio
- configurePasswordStrength: Configurar política de força de senhas
- countDomain: Contar os domínios existentes
- createSubDomain: Criar subdomínios no Zimbra
- createTopDomain: Criar domínios de topo no Zimbra
- crossDomainAdmin: Administrar múltiplos domínios simultaneamente
- deleteDomain: Excluir domínios do Zimbra
- domainAdminDomainRights: Direitos gerais de domínio para admin delegado
- domainAdminRights: Conjunto completo de direitos de admin de domínio
- getDomain: Consultar configurações de um domínio
- getDomainQuotaUsage: Ver o uso de cota total do domínio
- listDomain: Listar os domínios configurados no Zimbra
- migrationAdminDomainRights: Direitos de domínio durante migrações
- modifyDomain: Modificar configurações de um domínio
- addDistributionListMember: Adicionar membros a uma lista de distribuição
- addGroupAlias: Adicionar alias a um grupo dinâmico
- addGroupMember: Adicionar membros a um grupo dinâmico
- countDistributionList: Contar as listas de distribuição do domínio
- createDistributionList: Criar listas de distribuição
- createGroup: Criar grupos dinâmicos
- deleteDistributionList: Excluir listas de distribuição
- deleteGroup: Excluir grupos dinâmicos
- domainAdminDistributionListRights: Direitos de DL para admin de domínio
- getDistributionList: Consultar dados de uma lista de distribuição
- getDistributionListMembership: Ver as listas de distribuição de que uma DL faz parte
- getGroup: Consultar dados de um grupo dinâmico
- listDistributionList: Listar as listas de distribuição do domínio
- listGroup: Listar os grupos dinâmicos
- modifyDistributionList: Modificar atributos de uma lista de distribuição
- modifyGroup: Modificar atributos de um grupo dinâmico
- removeDistributionListMember: Remover membros de uma lista de distribuição
- removeGroupAlias: Remover alias de um grupo dinâmico
- removeGroupMember: Remover membros de um grupo dinâmico
- renameDistributionList: Renomear uma lista de distribuição
- renameGroup: Renomear um grupo dinâmico
- besAdminServerRights: Direitos de admin BES no servidor
- checkDirectoryOnFileSystem: Verificar diretório no sistema de arquivos do servidor
- checkHealth: Verificar a saúde (health check) do servidor
- countServer: Contar os servidores do ambiente
- createAlwaysOnCluster: Criar cluster de alta disponibilidade
- createServer: Adicionar novo servidor ao ambiente Zimbra
- deleteAlwaysOnCluster: Remover cluster de alta disponibilidade
- deleteServer: Remover servidores do ambiente
- domainAdminServerRights: Direitos de servidor para admin de domínio
- flushCache: Limpar caches do servidor (contas, COS, domínio etc.)
- generateCSR: Gerar requisição de certificado SSL (CSR)
- getAlwaysOnCluster: Consultar configuração do cluster de HA
- getCSR: Obter a requisição de certificado SSL gerada
- getCertificateInfo: Obter Informações do certificado SSL instalado
- getHSMStatus: Ver o status do armazenamento hierárquico (HSM)
- getServer: Consultar configurações de um servidor
- getServerStats: Ver estatísticas de desempenho do servidor
- getServiceStatus: Ver o status dos serviços do servidor
- getSessions: Listar sessões ativas no servidor
- installCertificate: Instalar certificado SSL no servidor
- listAlwaysOnCluster: Listar clusters de alta disponibilidade
- listServer: Listar os servidores do ambiente
- mailQueueRights: Gerenciar fila de e-mails do MTA
- manageAccountLogger: Gerenciar log específico de contas
- manageMailQueue: Administrar a fila de e-mails (reprocessar, remover)
- manageVolume: Gerenciar volumes de armazenamento do servidor
- modifyAlwaysOnCluster: Modificar configuração do cluster de HA
- modifyServer: Modificar configurações de um servidor
- moveBlobs: Mover arquivos de e-mail (blobs) entre volumes
- moveMailboxFromServer: Remover caixa postal de um servidor específico
- moveMailboxToServer: Mover caixa postal para um servidor específico
- rolloverRedoLog: Fazer rollover do redo log do servidor
- accessGAL: Acessar a Lista Global de endereços (GAL)
- applianceAll: Acesso total ao appliance Zimbra
- checkExchangeAuthConfig: Verificar configuração de Autenticação com Exchange
- checkRightGrp: Verificar permissões em grupos
- checkRightUsr: Verificar permissões de usuários
- checkSoftwareUpdates: Verificar disponibilidade de atualizações de software
- configureGlobalConfigConstraint: Definir restrições na configuração global
- createUCService: Criar serviços de comunicação unificada (UC)
- createXMPPComponent: Criar componentes XMPP (chat)
- createZimlet: Instalar/criar Zimlets
- deleteUCService: Excluir serviços de comunicação unificada
- deleteXMPPComponent: Excluir componentes XMPP
- deleteZimlet: Remover Zimlets instalados
- deployZimlet: Implantar/atualizar Zimlets
- domainAdminZimletRights: Direitos de Zimlets para admin de domínio
- getAllFreeBusyProviders: Listar todos os provedores de Free/Busy
- getGlobalConfig: Consultar a configuração global do Zimbra
- getUCService: Consultar serviços de comunicação unificada
- getXMPPComponent: Consultar componentes XMPP configurados
- getZimlet: Consultar Informações de um Zimlet
- installZCSLicense: Instalar Licença do Zimbra Collaboration Suite
- listUCService: Listar serviços de comunicação unificada
- listXMPPComponent: Listar componentes XMPP configurados
- listZimlet: Listar os Zimlets instalados
- manageZimlet: Gerenciar (habilitar/desabilitar/configurar) Zimlets
- modifyGlobalConfig: Alterar a configuração global do Zimbra
- modifyUCService: Modificar serviços de comunicação unificada
- modifyXMPPComponent: Modificar componentes XMPP
- modifyZimlet: Modificar configurações de Zimlets
- renameUCService: Renomear um serviço de comunicação unificada
- uploadClientSoftware: Fazer upload de software cliente para distribuição
- viewGrants: Visualizar as permissões (grants) configuradas no sistema
Listas de Distribuição[editar]
Mostrar as listas existentes
zmprov gadl
Ver todas as informações de uma lista
zmprov gdl [email protected]
Para criar uma lista
zmprov cdl [email protected]
Renomear uma lista de distribuição
zmprov rdl [email protected] [email protected]
Exclui uma lista
zmprov ddl [email protected]
Exibir uma lista de distribuição da GAL
zmprov mdl [email protected] zimbraHideInGal FALSE
Ocultar uma lista de distribuição da GAL
zmprov mdl [email protected] zimbraHideInGal TRUE
Retorna todas as listas de distribuição
zmprov -l gadl dominio.com.br
USUÁRIOS E MEMBROS
Adicionar membros à lista de distribuição
zmprov adlm [email protected] [email protected]
Adicionar um usuario (<[email protected]>) a todas as listas de distribuição
for listas in $(zmprov gadl); do zmprov adlm $listas [email protected]; done
Visualizar membros de uma lista
zmprov gdlm [email protected]
Remover membro de uma lista
zmprov rdlm [email protected] [email protected]
PERMISSÕES
VERIFICAR PERMISSÕES de uma lista especifica
zmprov gg -t dl [email protected]
Permissões de ENVIO PARA A LISTA
Utiliza-se sempre a instrução "sendToDistList" ao fim do comando.
Permitir envio
zmprov grr dl [email protected] usr [email protected] sendToDistList
Concede permissão de envio para um usuario
zmprov grr dl [email protected] usr [email protected] sendToDistList
Concessão de permissão de envio para um grupo - grp
zmprov grr dl [email protected] grp [email protected] sendToDistList
Concessão depermissão de envio para um domínio - dom
zmprov grr dl [email protected] dom test.com sendToDistList
Concessão de permissão de envio para todos os usuários (internos) - all
zmprov grr dl [email protected] all sendToDistList
Concessão para todos os usuários (internos e externos) - pub
zmprov grr dl [email protected] pub sendToDistList
Remover permissão
Para remover a permissão utiliza-se o parâmetro "zmprov rvr dl" em qualquer um dos casos de permissão listados acima
zmprov rvr dl [email protected] usr [email protected] sendToDistList
Lista pública
Toda lista quando criada, já tem o status de "pública" até que se atribua alguém com essa permissão. Para torná-la pública, depois de algupem já ter sido autorizado, basta retirar todas as contas com permissão e ela voltará a ter o status de pública onde qualquer pessoa poderá enviar mensagens para ela.
Lista dinâmica
A lista dinâmica se caracteriza por contar todos os usuarios ativos de um dominio ou grupo específico.
zmprov cddl nome_da_lista
VERIFICA se um usuario é INTEGRANTE da lista
zmprov ckr dl [email protected] [email protected] sendToDistList
CONSULTAR a lista
zmprov gdlm [email protected] | grep [email protected]
PERMISSÕES DE ENVIO EM NOME DA LISTA
Para as autorizações de envio EM NOME DA LISTA usamos ao final o parâmetro "sendAsDistList"
Conceder permissão para que um determinado usuário possa enviar EM NOME DA LSITA
zmprov grr dl [email protected] usr [email protected] sendAsDistList
Concessão permissão de envio para um grupo - grp
zmprov grr dl [email protected] grp [email protected] sendAsDistList
Concessão permissão de envio para um domínio - dom
zmprov grr dl [email protected] dom test.com sendAsDistList
Concessão permissão de envio para todos os usuários (internos) - all
zmprov grr dl [email protected] all sendAsDistList
Concessão de permissão de envio para todos os usuários (internos e externos) - pub
zmprov grr dl [email protected] pub sendAsDistList
Lista geral de comandos e parâmetros
- ddAccountAlias(aaa) {name@domain|id} {alias@domain}
- addAccountLogger(aal) [-s/--server hostname] {name@domain|id} {logging-category} {trace|debug|info|warn|error}
- addDistributionListAlias(adla) {list@domain|id} {alias@domain}
- addDistributionListMember(adlm) {list@domain|id} {member@domain}+
- autoCompleteGal(acg) {domain} {name}
- autoProvControl(apc) {start|status|stop}
- checkPasswordStrength(cps) {name@domain|id} {password}
- checkRight(ckr) {target-type} [{target-id|target-name}] {grantee-id|grantee-name (note:can only check internal user)} {right}
- copyCos(cpc) {src-cos-name|id} {dest-cos-name}
- countAccount(cta) {domain|id}
- countObjects(cto) {userAccount|account|alias|dl|domain|cos|server|calresource|accountOnUCService|cosOnUCService|domainOnUCService|internalUserAccount|internalArchivingAccount|internalUserAccountX} [-d {domain|id}] [-u {UCService|id}]
- createAccount(ca) {name@domain} {password} [attr1 value1 [attr2 value2...]]
- createAliasDomain(cad) {alias-domain-name} {local-domain-name|id} [attr1 value1 [attr2 value2...]]
- createAlwaysOnCluster(caoc) {name} [attr1 value1 [attr2 value2...]]
- createBulkAccounts(cabulk) {domain} {namemask} {number of accounts to create}
- createCalendarResource(ccr) {name@domain} {password} [attr1 value1 [attr2 value2...]]
- createCos(cc) {name} [attr1 value1 [attr2 value2...]]
- createDataSource(cds) {name@domain} {ds-type} {ds-name} zimbraDataSourceEnabled {TRUE|FALSE} zimbraDataSourceFolderId {folder-id} [attr1 value1 [attr2 value2...]]
- createDistributionList(cdl) {list@domain}
- createDynamicDistributionList(cddl) {list@domain}
- createDomain(cd) {domain} [attr1 value1 [attr2 value2...]]
- createServer(cs) {name} [attr1 value1 [attr2 value2...]]
- createUCService(cucs) {name} [attr1 value1 [attr2 value2...]]
- createIdentity(cid) {name@domain} {identity-name} [attr1 value1 [attr2 value2...]]
- createSignature(csig) {name@domain} {signature-name} [attr1 value1 [attr2 value2...]]
- createXMPPComponent(cxc) {short-name} {domain} {server} {classname} {category} {type} [attr value1 [attr2 value2...]]
- deleteAccount(da) {name@domain|id}
- deleteAlwaysOnCluster(daoc) {name|id}
- deleteCalendarResource(dcr) {name@domain|id}
- deleteCos(dc) {name|id}
- deleteDataSource(dds) {name@domain|id} {ds-name|ds-id}
- deleteDistributionList(ddl) {list@domain|id} [true|false]
- deleteDomain(dd) {domain|id}
- deleteIdentity(did) {name@domain|id} {identity-name}
- deleteSignature(dsig) {name@domain|id} {signature-name}
- deleteServer(ds) {name|id}
- deleteUCService(ducs) {name|id}
- deleteXMPPComponent(dxc) {xmpp-component-name}
- describe(desc) [[-v] [-ni] [{entry-type}]] | [-a {attribute-name}]
- exit(quit)
- flushCache(fc) [-a] {acl|locale|skin|uistrings|license|all|account|config|globalgrant|cos|domain|galgroup|group|mime|server|alwaysOnCluster|zimlet|<extension-cache-type>} [name1|id1 [name2|id2...]]
- generateDomainPreAuth(gdpa) {domain|id} {name|id|foreignPrincipal} {by} {timestamp|0} {expires|0}
- generateDomainPreAuthKey(gdpak) [-f] {domain|id}
- getAccount(ga) [-e] {name@domain|id} [attr1 [attr2...]]
- getAlwaysOnCluster(gaoc) {name|id} [attr1 [attr2...]]
- getDataSources(gds) {name@domain|id} [arg1 [arg2...]]
- getIdentities(gid) {name@domain|id} [arg1 [arg...]]
- getSignatures(gsig) {name@domain|id} [arg1 [arg...]]
- getAccountMembership(gam) {name@domain|id}
- getAllAccounts(gaa) [-v] [-e] [-s server] [{domain}] -- NOTE: getAllAccounts can only be used with "zmprov -l/--ldap"
- getAccountLoggers(gal) [-s/--server hostname] {name@domain|id}
- getAllActiveServers(gaas) [-v]
- getAllAccountLoggers(gaal) [-s/--server hostname]
- getAllAdminAccounts(gaaa) [-v] [-e] [attr1 [attr2...]]
- getAllAlwaysOnClusters(gaaoc) [-v]
- getAllCalendarResources(gacr) [-v] [-e] [-s server] [{domain}]
- getAllConfig(gacf) [attr1 [attr2...]]
- getAllCos(gac) [-v]
- getAllDistributionLists(gadl) [-v] [{domain}]
- getAllDomains(gad) [-v] [-e] [attr1 [attr2...]]
- getAllEffectiveRights(gaer) {grantee-type} {grantee-id|grantee-name} [expandSetAttrs] [expandGetAttrs]
- getAllFbp(gafbp) [-v]
- getAllRights(gar) [-v] [-t {target-type}] [-c ALL|ADMIN|USER]
- getAllServers(gas) [-v] [-e] [service]
- getAllUCServices(gaucs) [-v]
- getAllXMPPComponents(gaxcs)
- getAuthTokenInfo(gati) {auth-token}
- getCalendarResource(gcr) {name@domain|id} [attr1 [attr2...]]
- getConfig(gcf) {name}
- getCos(gc) {name|id} [attr1 [attr2...]]
- getDistributionList(gdl) {list@domain|id} [attr1 [attr2...]]
- getDistributionListMembership(gdlm) {name@domain|id}
- getDomain(gd) [-e] {domain|id} [attr1 [attr2...]]
- getDomainInfo(gdi) name|id|virtualHostname {value} [attr1 [attr2...]]
- getConfigSMIMEConfig(gcsc) [configName]
- getDomainSMIMEConfig(gdsc) name|id [configName]
- getEffectiveRights(ger) {target-type} [{target-id|target-name}] {grantee-id|grantee-name} [expandSetAttrs] [expandGetAttrs]
- getCreateObjectAttrs(gcoa) {target-type} {domain-id|domain-name} {cos-id|cos-name} {grantee-id|grantee-name}
- getFreebusyQueueInfo(gfbqi) [{provider-name}]
- getGrants(gg) [-t {target-type} [{target-id|target-name}]] [-g {grantee-type} {grantee-id|grantee-name} [{0|1 (whether to include grants granted to groups the grantee belongs)}]]
- getMailboxInfo(gmi) {account}
- getQuotaUsage(gqu) {server}
- getRight(gr) {right} [-e] (whether to expand combo rights recursively)
- getRightsDoc(grd) [java packages]
- getServer(gs) [-e] {name|id} [attr1 [attr2...]]
- getUCService(gucs) [-e] {name|id} [attr1 [attr2...]]
- getShareInfo(gsi) {owner-name|owner-id}
- getSpnegoDomain(gsd)
- getXMPPComponent(gxc) {name|id} [attr1 [attr2...]]
- grantRight(grr) {target-type} [{target-id|target-name}] {grantee-type} [{grantee-id|grantee-name} [secret]] {right}
- help(?) commands
- modifyAccount(ma) {name@domain|id} [attr1 value1 [attr2 value2...]]
- modifyAlwaysOnCluster(maoc) {name|id} [attr1 value1 [attr2 value2...]]
- modifyCalendarResource(mcr) {name@domain|id} [attr1 value1 [attr2 value2...]]
- modifyConfig(mcf) attr1 value1 [attr2 value2...]
- modifyCos(mc) {name|id} [attr1 value1 [attr2 value2...]]
- modifyDataSource(mds) {name@domain|id} {ds-name|ds-id} [attr1 value1 [attr2 value2...]]
- modifyDistributionList(mdl) {list@domain|id} attr1 value1 [attr2 value2...]
- modifyDomain(md) {domain|id} [attr1 value1 [attr2 value2...]]
- modifyConfigSMIMEConfig(mcsc) configName [attr2 value2...]]
- modifyDomainSMIMEConfig(mdsc) name|id configName [attr2 value2...]]
- modifyIdentity(mid) {name@domain|id} {identity-name} [attr1 value1 [attr2 value2...]]
- modifySignature(msig) {name@domain|id} {signature-name|signature-id} [attr1 value1 [attr2 value2...]]
- modifyServer(ms) {name|id} [attr1 value1 [attr2 value2...]]
- modifyUCService(mucs) {name|id} [attr1 value1 [attr2 value2...]]
- modifyXMPPComponent(mxc) {name@domain} [attr1 value1 [attr value2...]]
- pushFreebusy(pfb) [account-id ...]
- pushFreebusyDomain(pfbd) {domain}
- purgeAccountCalendarCache(pacc) {name@domain|id} [...]
- purgeFreebusyQueue(pfbq) [{provider-name}]
- recalculateMailboxCounts(rmc) {name@domain|id}
- removeAccountAlias(raa) {name@domain|id} {alias@domain}
- removeAccountLogger(ral) [-s/--server hostname] [{name@domain|id}] [{logging-category}]
- removeDistributionListAlias(rdla) {list@domain|id} {alias@domain}
- removeDistributionListMember(rdlm) {list@domain|id} {member@domain}
- removeConfigSMIMEConfig(rcsc) configName
- removeDomainSMIMEConfig(rdsc) name|id configName
- renameAccount(ra) {name@domain|id} {newName@domain}
- changePrimaryEmail(cpe) {name@domain|id} {newName@domain}
- renameCalendarResource(rcr) {name@domain|id} {newName@domain}
- renameCos(rc) {name|id} {newName}
- renameDistributionList(rdl) {list@domain|id} {newName@domain}
- renameDomain(rd) {domain|id} {newDomain} -- NOTE: renameDomain can only be used with "zmprov -l/--ldap"
- renameUCService(rucs) {name|id} {newName}
- reIndexMailbox(rim) {name@domain|id} {start|status|cancel} [{types|ids} {type or id} [,type or id...]]
- compactIndexMailbox(cim) {name@domain|id} {start|status}
- verifyIndex(vi) {name@domain|id}
- getIndexStats(gis) {name@domain|id}
- revokeRight(rvr) {target-type} [{target-id|target-name}] {grantee-type} [{grantee-id|grantee-name}] {right}
- searchAccounts(sa) [-v] {ldap-query} [limit {limit}] [offset {offset}] [sortBy {attr}] [sortAscending 0|1*] [domain {domain}]
- searchCalendarResources(scr) [-v] domain attr op value [attr op value...] -- NOTE: searchCalendarResources can only be used with "zmprov -l/--ldap"
- searchGal(sg) {domain} {name} [limit {limit}] [offset {offset}] [sortBy {attr}]
- setLocalServerOnline(slso)
- selectMailbox(sm) {account-name} [{zmmailbox commands}]
- setAccountCos(sac) {name@domain|id} {cos-name|cos-id}
- setPassword(sp) {name@domain|id} {password}
- setServerOffline(sso) {name|id}
- getAllMtaAuthURLs(gamau)
- getAllReverseProxyURLs(garpu)
- getAllReverseProxyBackends(garpb)
- getAllReverseProxyDomains(garpd) -- NOTE: getAllReverseProxyDomains can only be used with "zmprov -l/--ldap"
- getAllMemcachedServers(gamcs)
- reloadMemcachedClientConfig(rmcc) all | mailbox-server [...]
- getMemcachedClientConfig(gmcc) all | mailbox-server [...]
- syncGal(syg) {domain} [{token}]
- updatePresenceSessionId(upsid) {UC service name or id} {app-username} {app-password}
- resetAllLoggers(rlog) [-s/--server hostname]
- unlockMailbox(ulm) {name@domain|id} [hostname (When unlocking a mailbox after a failed move attempt provide the hostname of the server that was the target for the failed move. Otherwise, do not include hostname parameter)]
- createHABOrgUnit(chou) {domain} {ouName}
- listHABOrgUnit(lhou) {domain}
- renameHABOrgUnit(rhou) {domain} {ouName} {newName}
- deleteHABOrgUnit(dhou) {domain} {ouName}
- createHABGroup(chg) {groupName} {ouName} {name@domain} {TRUE|FALSE} [attr1 value1 [attr2 value2...]]
- getHAB(ghab) {habRootGrpId}
- moveHABGroup(mhg) {habRootGrpId} {habParentGrpId} {targetHabParentGrpId}
- addHABGroupMember(ahgm) {name@domain|id} {member@domain}+
- removeHABGroupMember(rhgm) {name@domain|id} {member@domain}
- deleteHABGroup(dhg) {name@domain|id} [true|false]
- modifyHABGroupSeniority(mhgs) {habGrpId} {seniorityIndex}
- getHABGroupMembers(ghgm) {name@domain|id}
Conta no-reply[editar]
Crie a conta
zmprov ca [email protected] senha
Troque "senha" pela senha que a conta terá
Para rejeitar envios:
zmprov mcf +zimbraMtaRestriction "reject_recipient [email protected]"
Restart o MTA
zmmtactl restart
Para verificar se os serviços estão rodando
zmcontrol status
Criando uma regra que descarte qualquer mensagem enviada para a conta.
zmprov ma [email protected] zimbraMailSieveScript 'require ["fileinto", "reject"]; discard;'
Cria uma resposta automática para uma aventual resposta.
zmprov ma [email protected] zimbraMailSieveScript 'require ["reject"]; reject "Este endereço não aceita respostas.";'
Gerar listagem[editar]
Script[editar]
Antes de iniciar, devemos conferir a lista do zmaccts pois a saída do comando tem uma limitação de caracteres na coluna dos endereços. (su zimbra)
zmaccts | awk '{print $1}'
Verifique se não está faltando nenhum caracter nos endereços. Caso precise fazer o ajuste (sudo su) no arquivo /opt/zimbra/bin/zmaccts.
Cópia de segurança
cp /opt/zimbra/bin/zmaccts2
Abra o arquivo para edição
vim /opt/zimbra/bin/zmaccts
Edite o parâmetro em negrito abaixo dos 36 (padrão) para a quantidade que seja necessária (sudo su)
# column whidths and separators my @w = ( 36, 11, 15, 15)
Após esse ajuste, pode iniciar a criação do script
Crie os arquivos necessários.
touch /home/mboxes.list chmod 777 /home/mboxes.list chown zimbra:zimbra /home/mboxes.list touch /home/mboxsize.txt chmod 777 /home/mboxsize.txt chown zimbra:zimbra /home/mboxsize.txt
Crie o arquivo do script
vim /home/detalhes_conta.sh
Cole as instruções abaixo no conteúdo do script
#!/bin/bash
###################################
##### Atribuição de variáveis #####
CLIENTE="zmhostname"
REMETENTE=" "
DESTINATARIO=" "
SMTP=" :587"
USUARIO=" "
SENHA=" "
LOGFILE="/home/mboxsize.txt"
###################################
#############################
##### INICIO #####
zmprov -l gaa > /home/mboxes.list # Exporta a lista de todas as contas e Listas de Distribuição para o arquivo /home/mboxes.list
date > /home/mboxsize.txt # Insere a data no arquivo
echo ", CONTA , STATUS , DATA DE CRIAÇÃO , ÚLTIMO LOGIN, TAMANHO, DESCRIÇÃO, CONTA ADMIN, ENCAMINHAMENTOS, COMPARTILHAMENTOS" >> /home/mboxsize.txt # Insere o cabeçalhos da lista
for mb in $(cat "/home/mboxes.list"); do
echo "| CONTA: $mb" # Coleta o nome da conta
# Coleta e escreve a descrição da conta
descricao_conta="$(zmprov ga "$mb" description | grep description | awk -F 'description:' '{print $2}')";
echo "| DESCRIÇÃO: $descricao_conta"
# Coleta o user da conta
# mb2="$(echo "$mb" |awk -F\@ '{print $1}')"
# Coleta e escreve o status da conta
status="$(zmaccts | sort | awk '{print ",",$1,","$2,","$3,","$5}' | grep ", $mb")"
echo "| STATUS: $status"
# Coleta e escreve o tamanho em disco da conta
msize="$(zmmailbox -z -m "$mb" gms)";
echo "| TAMANHO: $msize"
# Verifica se a conta é Admin ou não
isAdmin="$(zmprov GetAccount "$mb" | grep "zimbraIsAdminAccount:" | awk '{print $2}')"
echo "| ADMINISTRADOR: $isAdmin"
# Coletar e escreve os encaminhamentos de cada conta
encaminha_conta="$(zmprov ga "$mb" zimbraPrefMailForwardingAddress |grep -v '#')"
echo "| ENCAMINHAMENTOS: $encaminha_conta"
# Coleta os compartilhamentos da conta
share_conta="$(zmprov ga "$mb" zimbraSharedItem | cut -d ';' -f 2,6,9 | grep -v '#' | tr '\n' ' ' | sed 's/granteeName/ Nome/g' | sed 's/folderPath/ Local/g' | sed 's/type/ Tipo/g')"
echo "| COMPARTILHAMENTOS: $share_conta"
# Escreve os cabeçalhos da lista
echo "$status ,$msize ,$descricao_conta ,$isAdmin ,$encaminha_conta ,$share_conta" >> /home/mboxsize.txt
echo "$status ,$msize ,$descricao_conta ,$isAdmin ,$encaminha_conta ,$share_conta"
echo " "
done
echo "Completed"
##### ENVIA O E-MAIL #####
/usr/bin/sendemail -f $REMETENTE -t $DESTINATARIO -u "$CLIENTE - Listagem Contas" -m "Segue log em anexo." -o tls=no -a "$LOGFILE" -s $SMTP -xu $USUARIO -xp $SENHA
##########################
Atribua permissões ao script
chmod +x /home/detalhes_conta.sh chown zimbra:zimbra /home/detalhes_conta.sh
Rodar script (lembre de estar no mesmo diretório do arquivo e de estar como usuario zimbra - su zimbra)
nohup ./detalhes_conta.sh &
Para acompanhar o andamento:
tail -f /home/mboxsize.txt
depois do script concluir a rotina va em /home/mboxsize.txt para copiar as informações
cat /home/mboxsize.txt
Boas Práticas[editar]
Problemas com erro TLS handshake[editar]
Problemas com erro TLS handshake failure no Zimbra/Postfix
Descrição do problema[editar]
Em alguns casos, ao enviar e-mails para provedores que exigem protocolos modernos (ex.: Titan, O365, Gmail), o Zimbra/Postfix pode registrar erros como:
Cannot start TLS: handshake failure TLS library problem: error:0A000066:SSL routines::bad dh value:ssl/statem/statem_clnt.c
Isso ocorre porque as configurações padrão do Zimbra ainda oferecem ciphers export/medium e permitem TLS 1.0/1.1, que são rejeitados pelos servidores modernos.
Sintomas[editar]
Mensagens ficam em status=deferred no log (/var/log/zimbra.log):
dsn=4.7.5, status=deferred (Cannot start TLS: handshake failure)
Conexão TLS não é estabelecida durante o envio.
Erros bad dh value indicam uso de parâmetros DH fracos ou incompatíveis.
Diagnóstico[editar]
Listar parâmetros atuais do MTA:
zmprov gs `zmhostname` | egrep zimbraMtaSmtpTls
Exemplo de configuração problemática (default):
zimbraMtaSmtpTlsCiphers: export zimbraMtaSmtpTlsLoglevel: 0 zimbraMtaSmtpTlsMandatoryCiphers: medium zimbraMtaSmtpTlsMandatoryProtocols: !SSLv2, !SSLv3 zimbraMtaSmtpTlsProtocols: !SSLv2, !SSLv3 zimbraMtaSmtpTlsSecurityLevel: may
Configuração anterior (insegura)
zmprov ms `zmhostname` zimbraMtaSmtpTlsCiphers export zmprov ms `zmhostname` zimbraMtaSmtpTlsMandatoryCiphers medium zmprov ms `zmhostname` zimbraMtaSmtpTlsProtocols '!SSLv2, !SSLv3' zmprov ms `zmhostname` zimbraMtaSmtpTlsMandatoryProtocols '!SSLv2, !SSLv3' zmprov ms `zmhostname` zimbraMtaSmtpTlsSecurityLevel may
Problema: ainda permitia TLS 1.0/1.1 e cifras fracas.
Nova configuração (segura e compatível)
zmprov ms `zmhostname` zimbraMtaSmtpTlsCiphers high zmprov ms `zmhostname` zimbraMtaSmtpTlsMandatoryCiphers high zmprov ms `zmhostname` zimbraMtaSmtpTlsProtocols "TLSv1.2 TLSv1.3" zmprov ms `zmhostname` zimbraMtaSmtpTlsMandatoryProtocols "TLSv1.2 TLSv1.3" zmprov ms `zmhostname` zimbraMtaSmtpTlsSecurityLevel may
Considerações
- may: garante que, caso o destino não suporte TLS moderno, o e-mail ainda será entregue sem criptografia (evita perda de entrega).
- Ciphers high: restringe a cifras fortes (AES-GCM, CHACHA20, etc.), compatíveis com provedores modernos.
- Protocolos TLSv1.2 TLSv1.3: elimina versões antigas e inseguras (TLS 1.0/1.1).
- Essa configuração é compatível com Titan, Gmail, O365, Yahoo, etc.
Verificação[editar]
Após aplicar combinar com o cliente um momento para reiniciar:
zmcontrol restart
Testar envio e observar no log (/var/log/zimbra.log) deverá aparecer essa sentença:
Trusted TLS connection established to mx2.titan.email[...]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (2048-bit DH)
FONTE[editar]
SCRIPTS[editar]
Listagem de encaminhamentos[editar]
Script que retorna os encaminhamentos de todas as contas.
Crie o arquivo de script
vim lista_de_encaminhamentos.sh
Cole o conteúdo abaixo
#!/bin/bash
# Execute como usuário zimbra (ex: sudo -u zimbra bash listar_encaminhamentos_zimbra.sh)
ZMPROV="/opt/zimbra/bin/zmprov"
# Cabeçalho opcional
printf "%-40s %s\n" "CONTA" "ENCAMINHAMENTOS"
printf "%-40s %s\n" "----------------------------------------" "------------------------------"
# Lista todas as contas e itera
$ZMPROV -l gaa | while IFS= read -r account; do
# pega os atributos (pode haver múltiplos valores)
forwards=$($ZMPROV ga "$account" zimbraMailForwardingAddress zimbraPrefMailForwardingAddress 2>/dev/null \
| awk -F': ' '/^zimbraMailForwardingAddress:|^zimbraPrefMailForwardingAddress:/{print $2}' \
| paste -s -d',' -)
# Se vazio, escreve "-"
if [ -z "$forwards" ]; then
forwards="-"
fi
# Imprime: conta e lista separada por vírgula (sem espaços extras)
printf "%-40s %s\n" "$account" "$forwards"
done
Sete permissões
chown zimbra:zimbra lista_de_encaminhamentos.sh
Crie o arquivo de log
touch lista_de_encaminhamentos_saida.txt
Permissão para leitura
chown zimbra:zimbra lista_de_encaminhamentos_saida.txt
Execute o script
nohup ./lista_de_encaminhamentos.sh > lista_de_encaminhamentos_saida.txt &
Acompanhe o desenvolvimeto da lista em:
tail -f lista_de_encaminhamentos_saida.txt