ATUALIZADO: Workshop [CANCELADO] Gratuito: Exposição de informações através de E-mail

Prezados, infelizmente informo que este Workshop foi CANCELADO. Devido ao falecimento da minha amada mãe em 24/03, paralisei as minhas atividades e não tive condições de organizar o evento.

Olá ! Gostaria de convidar a todos para mais um Workshop (Online) que irei promover gratuitamente:

Exposição de informações através de E-mail

Quando irá ocorrer?

A data ainda será definida, para o final de Março de 2017. O Workshop é uma iniciativa particular, sem qualquer custo,  e terá a duração de aproximadamente 1 hora.

Como se inscrever?

Caso deseje se inscrever, por favor envie um e-mail para o endereço abaixo, que nos primeiros dias de Março irei organizar o evento:

fabio@respirandolinux.com.br

Opendkim: Solucionando problemas na instalação/configuração

DKIM

Olá ! Nesse artigo gostaria de compartilhar com vocês algumas dicas para solucionar alguns problemas comuns na instalação e configuração do Opendkim, seja em distribuições Red Hat ou Debian.

no signing table match for ‘user@yourdomain.com’

Muitas vezes, desejamos utilizar múltiplas assinaturas, por domínio, no nosso ambiente, e ao configurar o parâmetro “SigningTable” e gerar a tabela, respectivamente, conforme abaixo, o Opendkim não consegue assinar a mensagem.

SigningTable            /etc/opendkim/SigningTable

*@otherdomain.com default._domainkey.otherdomain.com

Ocorre que para o Opendkim interpretar expressões regulares no arquivo, o parâmetro “refile:” deve ser utilizado antes do mesmo, conforme o exemplo abaixo:

 SigningTable           refile:/etc/opendkim/SigningTable

can’t load key from /etc/opendkim/keys/yourdomain.com/default.private: Permission denied

Também é muito comum obter erros de permissão negada do Opendkim ao ler a chave para assinatura. Ocorre que para o Opendkim poder utilizar as chaves, é necessário que todo o caminho (diretórios) esteja, ao menos, com a permissão r+x (5).

H.A. para SMTP: Haproxy + Postfix

imagesmysza

 

Olá ! Nesse artigo eu gostaria de falar sobre uma arquitetura de alta disponibilidade para o serviço SMTP, com o software HAPROXY. Embora seja viável o balanceamento de carga com a inclusão de múltiplos servidores MX, muitas vezes é necessário ter alta disponibilidade de fato, sem depender de alterações de DNS, bem como a necessidade de se utilizar um único IP para apresentação.

Desta forma, iremos utilizar o HAPROXY como camada de apresentação para o serviço SMTP. Se a distribuição utilizada para implementação do HAPROXY for o Debian 7, a instalação do software é efetuada através do repositório Backports. Para o Debian 8, a instalação é efetuada através do repositório padrão.

Para instalar o HAPROXY, instale o pacote do mesmo:

aptitude install haproxy

O arquivo /etc/haproxy/haproxy.cfg pode ser configurado da seguinte maneira:

haproxy-cfg

 

Destacando as diretivas Frontend e Backend, que, respectivamente, correspondem ao serviço e porta que será iniciada no servidor Haproxy e os servidores SMTP que farão parte do pool. Como a porta utilizada no proxy também será a padrão SMTP [25], é necessário desinstalar outros servidores SMTP que por ventura tenham sido instalados por padrão pela distribuição.

No backend SMTP, estamos definindo qual o nome que será utilizado pelo servidor proxy para os backends ao efetuar testes de conectividade. A disponibilidade dos servidor é verificada a cada 30 segundos, podendo ser alterada conforme o cenário.

Após a configuração do HAPROXY para efetuar o balanceamento de carga do serviço SMTP, o Postfix deve ser instalado com versão superior a 2.10, uma vez que o protocolo é suportado somente a partir desta versão.

Nos servidores Postfix que irão integrar o balanceamento, a seguinte configuração deve ser aplicada no arquivo main.cf, e somente será possível conectar nestes servidores através do HAPROXY:

smtpd_upstream_proxy_protocol = haproxy
smtpd_upstream_proxy_timeout = 50s

Postfix: Aplicando configurações para inibir a vulnerabilidade LogJam

Security2

Olá ! Neste artigo irei abordar as configurações que devem ser feitas no Postfix para inibir a vulnerabilidade LogJam.

Segue um resumo sobre esta vulnerabilidade:

Captura de tela de 2015-05-27 13:59:48

 Fonte: http://cryptoid.com.br/arquivo-cryptoid/logjam-entenda-o-que-e/

Primeiramente, é necessário gerar um grupo Diffie-Hellman com 2048 bits, embora 1024 bits sejam suficientes conforme o relatório de vulnerabilidade (https://weakdh.org/logjam.html). Esse procedimento pode ser efetuado com o Openssl:

openssl dhparam -out dhparams.pem 2048

Agora, é necessário aplicar as seguintes configurações no arquivo de configuração do Postfix (main.cf):

smtpd_tls_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CDC3-SHA, KRB5-DE5, CBC3-SHA

smtpd_tls_dh1024_param_file = /caminho/dhparams.pem

Uma vez que o grupo DH foi criado e as configurações aplicadas, basta efetuar um reload no serviço do Postfix.

Referências:

http://cryptoid.com.br/arquivo-cryptoid/logjam-entenda-o-que-e/
https://weakdh.org/logjam.html

Postfix: Habilitando autenticação via SMTP (Centos 7)

Olá ! Quem acompanha meus artigos pôde observar que atendo algumas demandas de envio de e-mails por aplicações com o Postfix. É um cenário interessante e com algumas peculiaridades, e o Postfix como sempre surpreende pela flexibilidade e desempenho, em um ambiente que configurei é gerado um volume médio de 500 mil mensagens por dia.

Na última demanda que recebi havia a necessidade de configurar um SMTP para aplicações com autenticação, isto é, os sistemas irão se autenticar e não serem liberados pela diretiva mynetworks. Para esta demanda as configurações foram feitas em um CentOS 7. A principal dúvida é como habilitar a autenticação no Postfix, e especialmente nestes cenários para aplicações, qual base utilizar para cadastro dos usuários.

Para atendar a demanda, irei utilizar como base para os usuários uma base local do SASL. Além do Postfix instalado, segue a relação de pacotes que devem estar instalados:

Captura de tela de 2014-12-08 14:50:50

Assumindo que você já tenha o Postfix com as configurações básicas instaladas, as seguintes configurações devem ser feitas para habilitar a autenticação no arquivo main.cf:

smtpd_sasl_path = sasl2/smtpd.conf
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes

O arquivo /etc/sasl2/smtpd.conf deve ser criado com o seguinte conteúdo:

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5

Efetuadas estas configurações, os serviço do SASL precisa ser iniciado e do Postfix recarregado. Para confirmar se o Postfix está com o suporte a autenticação, após conectar no mesmo e executar o comando EHLO o seguinte resultado deve ser apresentado:

Captura de tela de 2014-12-08 14:51:49

Observe as linhas que iniciam com “250=AUTH”, são as que indicam o suporte à autenticação.

Para criar os usuários, o comando saslpasswd pode ser utilizado. Veja o nosso exemplo com o usuário “autentica”:

saslpasswd -c autentica

Para testar a autenticação via TELNET, precisamos converter o usuário (autentica) e senha (123456) para Base64:

perl -MMIME::Base64 -e ‘print encode_base64(“00autentica00123456“);’

Captura de tela de 2014-12-08 14:51:07

Para testar de fato, conecte-se via TELNET e após executar o comando EHLO autentique-se com o seguinte comando:

AUTH PLAIN “Usuário e Senha em Base64”

A resposta para o comando deve ser “AUTHENTICATION SUCCESSFUL”

Caso queira controlar quais endereços cada usuário pode utilizar como remetente, é necessário configurar o controle de identidade no Postfix, que fica para um próximo artigo.

Referências:

http://wiki.centos.org/HowTos/postfix_sasl

Authenticated SMTP with Postfix on CentOS, the easy way

Postfix: Efetuando relay em hosts que exigem autenticação E nas portas SUBMISSION ou SMTPS

Olá ! Em um post anterior eu tratei as configurações necessárias para configurar o Postfix para efetuar relay em um servidor que exige autenticação: https://respirandolinux.wordpress.com/2014/10/25/postfix-efetuando-relay-em-hosts-que-exigem-autenticacao/

Ocorre que muitas vezes é necessário efetuar o relay no servidor utilizando as portas SUBMISSION (587) ou SMTPS (465). Para que seja possível efetuar essa entrega, as configurações abaixo podem ser utilizadas (exemplo com destino utilizando submission):

O parâmetro que define o host para onde será encaminhada a mensagem é o relayhost:

Exemplo:

relayhost = servidor-externo.laboratorio.com.br

Agora para fazer com que o Postfix autentique ao efetuar o relay e inicie a encriptação exigida pelo serviço SUBMISSION, insira as configurações conforme abaixo:

relayhost = servidor-externo.laboratorio.com.br:587
smtp_sasl_password_maps= hash:/etc/postfix/sasl_passwd
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous, noplaintext
smtp_sasl_tls_security_options = noanonymous

O grande detalhe aqui está no parâmetro smtp_sasl_password_maps, onde iremos inserir no arquivo criado o usuário e senha para autenticação no host definido em relayhost.

O arquivo deve ser criado no seguinte formato:

hostname-do-relayhost.fqdn:porta                     usuario:senha

Nosso exemplo:

servidor-externo.laboratorio.com.br:587              usuario:senha

Efetuadas as configurações, rode o postmap no arquivo /etc/postfix/sasl_passwd e efetue um reload no serviço do Postfix.

Postfix: Efetuando relay em hosts que exigem autenticação

Olá ! É muito comum para administradores de correio eletrônico precisar configurar o servidor para efetuar relay em outro host. Porém geralmente essa prática é feita tendo o IP do servidor liberado no servidor de relay. Neste post irei tratar a configuração que pode ser feita no Postfix caso o host exija autenticação.

O parametro que define o host para onde será encaminhada a mensagem é o relayhost:

Exemplo:

relayhost = servidor-externo.laboratorio.com.br

Agora para fazer com que o Postfix autentique ao efetuar o relay insira as configurações conforme abaixo:

smtp_sasl_auth_enable= yes
smtp_sasl_password_maps= hash:/etc/postfix/sasl-passwd
smtp_sasl_security_options= noanonymous

O grande detalhe aqui está no parametro smtp_sasl_password_maps, onde iremos inserir no arquivo criado o usuário e senha para autenticação no host definido em relayhost.

O arquivo deve ser criado no seguinte formato:

hostname-do-relayhost.fqdn                     usuario:senha

Nosso exemplo:

servidor-externo.laboratorio.com.br               usuario:senha

Efetuadas as configurações, rode o postmap no arquivo /etc/postfix/sasl-passwd e efetue um reload no serviço do Postfix.