Arquivo

Archive for the ‘Postfix’ Category

Removendo mensagens da fila do Postifx e Zimbra de um determinado domínio ou e-mail.

31 de outubro de 2014 1 comentário
Fila de Email

Fila de Email

Removendo mensagens da fila do Postifx de um determinado domínio ou e-mail.

Atualmente todo administrador de redes trava diariamente uma batalha contra os spammers, fato. Isso complica muito, mas o que realmente gera uma dor de cabeça grande é quando o Postfix sofre algum ataque e recebe milhares de e-mails por segundo. A fila do Postfix fica muito grande e o mta começa a demorar o tratamento das mensagens e consequentemente demora a entregar as mesmas aos servidores e caixas postais locais.

Com base nisso, vou repassar aqui alguns comandos que me são úteis quando isso acontece.

Visualizar a fila de e-mails no Postfix:

postqueue -p

Visualizar quantos e-mails tem na fila do Postfix:

postqueue -p | wc

Deletar uma única mensagem:

postsuper -d id_da_mensagem

Deletar todas as mensagens da fila (por segurança o ALL deve ser maiúsculo):

postsuper -d ALL

Deletar todas as mensagens com status deferred (por segurança o ALL deve ser maiúsculo):

postsuper -d ALL deferred

Deletar todas as mensagens de um determinado domínio (comando único):

find /var/spool/postfix -type f | xargs -n 1000 grep -l beijer.com.br \ 
| sed 's/.*\///g' | postsuper -d -

Deletar todas as mensagens de um endereço (comando único):

find /var/spool/postfix -type f | xargs -n 1000 grep -l jacques@beijer.com.br \
 | sed 's/.*\///g' | postsuper -d -

Deletar todas as mensagens que contenham uma string (comando único):

find /var/spool/postfix -type f | xargs -n 1000 grep -l beijer \ 
| sed 's/.*\///g' | postsuper -d - 

Caso seu postfix seja zimbra, altere o caminho de /var/spool/postfix para:

find /opt/zimbra/data/postfix/spool/ 

E o postsuper para

/opt/zimbra/postfix/sbin/postsuper

Bom, os últimos 03 comandos são de uma única linha, mas como não cabiam inteiros na página eu quebrei a sequência com uma contra barra. O hífen no final, é necessário no comando. Estes comandos podem não salvar uma vida, mas podem facilmente salvar seu emprego em caso de urgência. Boa sorte à todos.

Anúncios

Criando uma pasta para muitos usuários Zimbra

6 de março de 2014 Deixe um comentário
Zimbra

Zimbra

Criando uma pasta para muitos usuários Zimbra

Este script abaixo, lê um arquivo com lista de várias contas de email e cria uma pasta com a cor verde para os usuários.

A tarefa que eu tinha, era vincular uma conta IMAP externa a cada um dos logins inseridos na lista, e para isso precisava criar um diretório para que as mensagens provenientes desta conta ficassem armazenadas. Para isso usei o script abaixo para criar as pastas.

for x in $(cat /tmp/list.txt); do zmmailbox -z -m $x cf -c green /Pasta; done 

 

Conteúdo do arquivo list.txt:

account1@domain.com.br
account2@domain.com.br
account3@domain.com.br
account4@domain.com.br
account5@domain.com.br
 
T+

Lista de Comandos Zimbra

22 de fevereiro de 2014 46 comentários
Zimbra

Zimbra

LISTA DE COMANDOS ZIMBRA

Acredito que todo Administrador de Redes já deve ter ouvido falar no Zimbra, então o mesmo dispensa apresentações (E se você está lendo este blog, com certeza sabe o que o mesmo faz). O Zimbra é muito flexível em muitos aspectos, o front-end do mesmo já é bem completo, dá para fazer muita coisa por lá. Entretanto, pela console do administrador você não tem a opção de automatizar processos, otimizar rotinas, fazer loops de verificações muito menos de fazer consultas diretas no banco (Eu disse CONSULTA, não brinque com o banco do zimbra, o Mesmo usa Mysql que é da Oracle, e por muito tempo o Zimbra foi da Oracle, o que cria muitos laços dentro do banco de dados), sem falar que certas opções, você não tem pela console do administrador, mas no shell sim =]]

O verdadeiro poder do Zimbra, na minha concepção, está na linha de comando. Lá a gente faz quase tudo que a gente quer, além do postfix só poder ser alterado mais cirurgicamente por lá, bem como outros serviços. Por exemplo, o mysql só pode ser aberto para ser acessado por fora através da linha de comando (Ver como liberar o acesso externo ao mysql do Zimbra aqui

Como estou migrando todo o parque de e-mail da empresa em que trabalho, acabei ficando com os comandos na cabeça e sei que por falta de uso, eu mesmo vou esquecer. Portanto, resolvi postar tanto para mim, quanto para quem desejar.

Bom, segue lista de comandos que eu utilizo, o Zimbra é uma poderosa ferramenta e não possui apenas estes comandos, possui muito mais. Entretanto, com esta relação, você pode ir amadurecendo no shell do mesmo.

Descobrir qual é a versão e arquitetura do seu Zimbra

zmcontrol -v

Comando para Iniciar, Parar, Reiniciar e checar Status

/etc/init.d/zimbra start | stop | restart | status

Obter ajuda do comando zmprov

zmprov help commands

Obter opções de uso do e a sintaxe de comandos do zmprov

zmprov -h

Parar o Zimbra

zmcontrol stop

Iniciar o Zimbra

zmcontrol start

Obter Status do Zimbra

zmcontrol status

Trocar o nome da máquina do Zimbra (Requer stopar serviço)

/opt/zimbra/libexec/zmsetservername -o antigo.beijer.com -n novo.beijer.com

Obter nome da máquina do Zimbra

zmhostname

Listar todos os domínios no Zimbra

zmprov gad

Criar outro domínio

zmprov cd beijer.org.br

Renomear um domínio

zmprov -l rd beijer.org.br beijer.net.br

Criar alias para domínio

zmprov cad alias_beijer.com.br beijer.com.br

Verificar qual o domínio padrão do Zimbra

zmprov gacf zimbraDefaultDomainName

Caso seja necessário alterar o domínio padrão, execute o comando abaixo, porém não recomendo.

zmprov mcf zimbraDefaultDomainName beijer.org.br

Para remover um domínio ou um alias de domínio, execute o comando

zmprov dd alias_beijer.com.br

Criar usuario

zmprov ca usuario@beijer.com.br 'senhaaqui'

Alterar a senha de um usuário

zmprov sp jacques@beijer.com.br `beijer.j4cqu3s`

Listar todos usuarios

zmprov -l gaa

Listar todos os usuários de um domínio

zmprov -l gaa beijer.com.br

Listar usuários que são administradores

zmprov -l gaaa

Listar usuários que são administradores de um domínio

zmprov -l gaaa beijer.com.br

Transformar um usuario em administrador

zmprov ma jacques@beijer.com.br zimbraIsAdminAccount TRUE

Criar um usuario com o atributo de administrador

zmprov ca jacques@beijer.com.br 'senhaaqui' zimbraIsAdminAccount TRUE

Renomear conta

zmprov ra jacques@beijer.com.br beijer@beijer.com.br

Renomer conta mudando de domínio

zmprov ra jacques@beijer.com.br jacques@jacquesdebeijer.com.br

Deletar Conta

zmpra da jacques@beijer.com.br

Visualizar atributos de uma conta

zmprov ga jacques@beijer.com.br

Adicionar alias a uma conta

zmprov aaa jacques@beijer.com.br alias_jacques@beijer.com.br

Quando necessário ver os alias em modo texto, faça assim

for i in $(zmprov -l gaa); do echo -e "\n$i:"; zmprov ga $i | grep
MailAlias; done

Quando necessário ver os alias de um determinado domínio em modo texto, faça assim

for i in $(zmprov -l gaa beijer.com); do echo -e "\n$i:"; zmprov ga $i |
grep MailAlias; done

Remover alias

zmprov raa jacques@beijer.com.br alias_jacques@beijer.com.br

Para criar uma lista

zmprov cdl lista@beijer.com.br

Visualizar listas de distribuição

zmprov gadl

Adicionar membros à lista de distribuição

zmprov adlm lista@beijer.com.br jacques@beijer.com.br

Adicionar um usuario (jacques@beijer.com.br) a todas as listas de distribuição

for listas in $(zmprov gadl); do zmprov adlm $listas jacques@beijer.com.br;
done

Visualizar membros de uma lista

zmprov gdlm lista@beijer.com.br

Ver todas as informações de uma lista

zmprov gdl lista@beijer.com.br

Remover membro de uma lista

zmprov rdlm lista@beijer.com.br lista@beijer.com.br

Renomear uma lista de distribuição

zmprov rdl lista@beijer.com.br novalista@beijer.com.br

Ocultar uma lista de distribuição da GAL

zmprov mdl lista@beijer.com.br  zimbraHideInGal TRUE

Exibir uma lista de distribuição da GAL

zmprov mdl lista@beijer.com.br  zimbraHideInGal FALSE

Remover uma lista

zmprov ddl lista@beijer.com.br

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 jacques@beijer.com.br nova_classe

Para ver quantos usuários de um dominio estão em classes

zmprov cta beijer.com.br

Obter o atributo da quota da COS

zmprov gc nome_classe zimbraMailQuota

Obter cuota 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 cuota de cada usuario, vocee pode usar o comando:

for i in $(zmprov -l gaa); do zmprov ga $i zimbraMailQuota; done

Trocar a senha de administrador

zmprov sp admin@beijer.com.br 'senhaaqui'

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 autenticacao

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

Ativar somente o acesso http (necessita reiniciar o zimbra: zmcontrol restart)

zmtlsctl http

Ativar somente o acesso https (necessita reiniciar o zimbra: zmcontrol restart)

zmtlsctl https

Ativa o acesso http e https (necessita reiniciar o zimbra: zmcontrol restart)

zmtlsctl mixed

Esses é a primeira parte da sessão de comandos do Zimbra que posto aqui. Tem alguns outros como os comandos do Postfix, comandos do Zimbra, comandos do Mysql, Spamassassim, Amavis, Clamav e etc… Vou tentar ir acrescentado todos aqui mesmo neste post para não ficarem espalhados em posts separados.

Esta primeira leva é mais de administração do Zimbra mesmo.

Podem publicar e utilizar, só peço que se mantenham os créditos.

Inté!

Criar várias contas de email via script bash

16 de dezembro de 2013 1 comentário
Mail

Mail

Essa aqui vai para meu amigo Marcos Melo que precisou criar várias contas de email via script shell.
Segue um script abaixo com duas opções para se criar as contas. Entretanto, para poucas contas eu uso o for, para muitas contas eu recomendo o uso do while (ou do for in file). Ou seja, você apenas usará uma das soluções abaixo.

Solução poucos users:
Crie seu arquivo users_mail.sh

vim users_mail.sh

 

Insira o conteúdo abaixo.
————————-
#!/bin/bash
for x in conta01 conta02 conta03 conta04 conta05 ;
do
useradd -m $x ;
(echo “senha@#123” ;
echo “senha@#123”) | passwd $x;
done
————————-
Obs, troque as contas para os seus usuários.
Salve seu arquivo, execute o comando abaixo para criar as contas.

sh users_mail.sh

Pronto, suas contas foram criadas com a senha sennha@#123.

 

Segunda forma de fazer.

Para muitos arquivos, eu sugiro o uso do comando while. Onde seria necessário ter um arquivo chamado contas.txt com as contas de usuários linha por linha.

Crie o arquivo users_mail.sh

vim users_mail.sh

Coloque o conteúdo abaixo:

————————————————-

while read x
do
echo “criando conta:” $x
useradd -m $x
(echo “senha@#123” ; echo “senha@#123”) | passwd $x;
done < contas.txt

————————————————-

Obs, troque as contas para os seus usuários.
Salve seu arquivo, execute o comando abaixo para criar as contas.

sh users_mail.sh

Pronto, suas contas foram criadas com a senha sennha@#123.

Tae Marcão teus scripts.

Categorias:Linux, Postfix, Shell Tags:, , , ,

Monitorar e Auditar todas as mensagens do Postfix (Always_bcc)

11 de dezembro de 2013 Deixe um comentário
postfix-logo

Postfix

Boas, já que foi falado em recipient_bcc_maps e sender_bcc_maps no post anterior. Vale ressaltar a opção always_bcc, que monitora todas as mensagens de todos os usuários. para habilitá-la, é bem simples, basta inserir a opção e setar um endereço para receber todas as mensagens:

Vale ressaltar que a conta auditoria@domain.com.br irá receber todas as mensagens enviadas e recebidas. A mesma irá crescer muito.

postconf -e "always_bcc = auditoria@domain.com.br"
service postfix reload

Simples!

Categorias:Debian, Email, Postfix Tags:, ,

Habilitar Auditoria de Emails no Postfix e no Zimbra.

10 de dezembro de 2013 Deixe um comentário
Postfix

Auditoria de emails – Postfix

Hoje recebi a tarefa de habilitar o monitoramento em alguns emails de um cliente, ao se fazer isso com o postfix é bem simples. Basta usar as opções do postfix sender_bbc_maps e recipient_bcc_maps para enviar e receber em um determinado email toda operação do email auditado.

Vamos lá, a primeira opção sender_bcc_maps, monitora e encaminha cópia de tudo o que o email auditado enviar e de forma análoga o recipient_bcc_maps faz a mesma coisa que o sender, só que para toda a mensagem que o email auditado receber. Para isto, vamos ver primeiramente se como estão estas duas configurações no postfix:

 postconf sender_bcc_maps recipient_bcc_maps 

O comando acima deverá gerar o resultado abaixo, qualquer configuração diferente dessa, nos estará informando que as opções já estão configuradas obedecendo os parâmetros dispostos depois do ‘=’:

root@tucuma:/etc/postfix# postconf sender_bcc_maps recipient_bcc_maps
sender_bcc_maps =
recipient_bcc_maps =

Bom, eu vou partir do princípio que sua configuração está como acima, sem nenhuma configuração para as duas opções. Em seguida, vamos fazer uma backup, visto que só Deus salva, o resto faz backup.

cp -ar /etc/postfix/main.cf /etc/postfix/main.cf_bkp_monitoria

Para restaurar o backup basta rodar os comandos abaixo que seu postfix voltará a ser como antes:

cp -ar  /etc/postfix/main.cf_bkp_monitoria /etc/postfix/main.cf

Para debian/Ubuntu dê um reload no seu postfix:

service postfix reload 

Para Slackware:

postfix reload 

Bom, agora vamos alterar as configurações do postfix. Defina com o postconf as duas regras no main.cf através do comando em shell (você pode inserir as partes que estão entre aspas diretamente no main.cf, eu recomendo executar os comandos abaixo no shell que evitar sujar ou mexer nas configurações, sei que coça para mexer).

postconf -e "sender_bcc_maps = hash:/etc/postfix/sender_bcc"
postconf -e "recipient_bcc_maps = hash:/etc/postfix/recipient_bcc"

Os comandos acima apenas dizem ao Postfix que as opções em questão irão ler uma tabela hash.

Após isso vamos criar o os arquivos onde irão conter os emails a serem auditados e seus respectivos emails auditores, a sintaxe dos arquivos hash é:

jacques@brasil.br  gerente_ti@brasil.br

Onde, jacques é o email que vai ser auditador e o gerente_ti é o email onde irão ser encaminhadas as mensagens auditadas da conta jacques.

Vamos criar os arquivos sender_bcc e recipient_bcc, inserir emails e depois dar o postmap para criar os *.db, o postfix quando sobre, lê os arquivos .db e armazena seu conteúdo em memória volátil.

Arquivo recipient_bcc

touch /etc/postfix/recipient_bcc
echo -e "\nEMAIL A SER AUDITADO -->> EMAIL DO AUDITOR" 
echo -e "\nauditorado@com.br auditor@com.br" >> /etc/postfix/recipient_bcc 
postmap /etc/postfix/recipient_bcc

Arquivo sender_bcc

touch /etc/postfix/sender_bcc
echo -e "\nEMAIL A SER AUDITADO -->> EMAIL DO AUDITOR" 
echo -e "\nauditorado@com.br auditor@com.br" >> /etc/postfix/sender_bcc 
postmap /etc/postfix/sender_bcc

Lembrando que se você quer auditar tudo o que uma conta recebe, você deve incluir os emails na lista /etc/postfix/recipient_bcc e caso deseja monitorar tudo o que o uma conta envia, você deve inserir os emails na liast /etc/postfix/sender_bcc. Sendo linha abaixo de linha (o padrão de tabela hash). Caso deseja auditar tudo o que a conta envia e recebe, insira a mesma sintaxe em ambas as listas.

Depois de executar os passos acima, dê um reload em seu postfix:

service postfix reload
Categorias:Bash, Debian, Email, Linux, Postfix, Vim