Pular para o conteúdo principal

Gmail + Postfix = Relay SMTP Autenticado

Bom dia galera!

Estava precisando que meu Script de Monitoramento de Espaço em Disco enviasse e-mails de um cliente que não possui um servidor Linux dedicado para função.

Como o cliente não possuia IP Fixo para configurar um servidor de e-mails, decidi configurar o Postfix para enviar e-mail usando o SMTP do Gmail.

Vamos às configurações:


Instale os pacotes e dependências.
# apt-get install libsasl2-2 libsasl2-modules sasl2-bin mutt postfix openssl


Depois de instalar os pacotes e dependências edite o arquivo/etc/default/saslauthd e altere a opção Start de “NO” para “YES”.
# vi /etc/default/saslauthd


Feita a alteração reinicie o serviço.
# /etc/init.d/saslauthd restart


Agora vamos entrar no diretório do Postfix.
# cd /etc/postfix


Vamos salvar o arquivo original de configuração do Postfix.
# mv main.cf main.cf.bkp


 Agora vamos criar um novo:
# vi main.cf 


Agora copie e cole neste novo main.cf vazio.
 
# SMTP relayhost
 relayhost = [smtp.gmail.com]:587

# TLS Settings
 smtp_tls_loglevel = 1
 smtp_tls_CAfile = /etc/postfix/certs/CAcert.pem
 smtp_tls_cert_file = /etc/postfix/certs/mycert.pem
 smtp_tls_key_file = /etc/postfix/certs/mykey.pem
 smtp_use_tls = yes
 smtpd_tls_CAfile = /etc/postfix/certs/CAcert.pem
 smtpd_tls_cert_file = /etc/postfix/certs/mycert.pem
 smtpd_tls_key_file = /etc/postfix/certs/mykey.pem
 smtpd_tls_received_header = yes

# configuracao tls
 smtp_sasl_auth_enable = yes
 smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
 smtp_sasl_security_options = noanonymous
 smtp_sasl_tls_security_options = noanonymous

# alias de mapeamento interno para externo
 smtp_generic_maps = hash:/etc/postfix/generic 


Agora vamos criar o arquivo generic dentro do diretório do Postfix /etc/postfix Para criar o arquivo:
# vi generic


Este arquivo terá o seguinte conteúdo.

# Confs
 
root@servidor seuemail@gmail.com
 
root@servidor.localdomain seuemail@gmail.com


Onde servidor é o nome do computador. Pra saber o nome da máquina basta digitar o comando hostname.
Precisamos criar também o arquivo que contém usuário e senha da sua conta no Gmail. Este arquivo se chamará sasl_passwd Este também no mesmo diretório /etc/postfix

# nano sasl_passwd


Inserir o conteúdo:
[smtp.gmail.com]:587 seuemail@gmail.com :suasenha


Precisamos agora criar os certificados que validam o servidor no Gmail. Antes de criar os certificados vamos criar um diretório chamado certs dentro de /etc/postfix
 
# mkdir certs


Depois de criado entrar neste diretório com o comando cd
 
# cd certs


Agora que estamos dentro do diretório certs rodar os três comandos nesta ordem:

1º comando:
# openssl dsaparam 1024 -out dsa1024.pem

2º comando:
# openssl req -x509 -nodes -days 3650 -newkey dsa:dsa1024.pem -out mycert.pem -keyout mykey.pem;ln -s mycert.pem CAcert.pem

3º comando:
# openssl req -x509 -new -days 3650 -key /etc/postfix/certs/mykey.pem -out /etc/postfix/certs/mycert.pem;rm dsa1024.pem


Depois de gerar os certificados vamos associar os arquivos com o comando:
# postmap /etc/postfix/sasl_passwd;postmap /etc/postfix/generic;postmap /etc/postfix/main.cf


Terminamos as configurações, agora vamos reiniciar o serviço Postfix.
# /etc/init.d/postfix restart


Vamos fazer o teste enviando e-mail via linha de comando.
# echo “Teste Postfix” | mutt -s “teste de envio pelo console” e-mail@seuemail.com.br


Para ver os logs do servidor de e-mail Postfix basta usar este comando:
# tail -f /var/log/mail.log


Se aparecer nos logs algo informando que não existe o arquivos aliases.db basta rodar estes comandos:
# cd /etc
# newaliases


Espero ter colaborado.


Abraços,

Fábio Vieira
System and Network Admin Linux and Windows

E-mail: ensinalinux@gmail.com
Website: www.winlinuxtecnologia.com
Tel.: (41) 9893-870



Comentários

Postagens mais visitadas deste blog

Trabalhando com Raid via Software no Debian / Ubuntu

Redundant Array of Independent Drives , também denominado Redundant Array of Inexpensive Drives , mais conhecido como simplesmente RAID ou ainda em português: Conjunto Redundante de Discos Independentes ou também Conjunto Redundante de Discos Econômicos ou ainda Arranjo Redundante de Discos Independentes, é um meio de se criar um sub-sistema de armazenamento composto por vários discos individuais, com a finalidade de ganhar segurança e desempenho. Popularmente, RAID seriam dois ou mais discos (por exemplo, HD ou disco rígido) trabalhando simultaneamente para um mesmo fim, por exemplo, citando o exemplo de RAID -1 logo abaixo, serviria como um espelhamento simples, rápido e confiável entre dois discos, para fazer o backup de um disco em outro. Apesar do RAID oferecer segurança e confiabilidade na adição de redundância e evitar falhas dos discos, o RAID não protege contra falhas de energia ou erros de operação. Falhas de energia, código errado de núcleo ou erros o

Códigos de Status do Squid

Boa tarde galera, Muitos trabalham com servidores proxy usando squid e várias vezes temos que analisar os logs de acesso para tentar entender o que está acontecendo. Todos que já viram um log do squid conseguem identificar o site acessado, o usuário ou mesmo se o acesso foi bem sucedido ou não, contudo há alguns códigos que chamam a atenção. Veja um trecho de um log do squid a seguir: 1199263171.923    285 192.168.254.12 TCP_DENIED/403 1503 GET http://www.menshealth.com/media/images/cma/dec04_lust5_200x200.jpg jose NONE/- text/html 1199263176.363    302 192.168.254.15 TCP_MISS/000 0 GET http://www.google.com.br/carlos DIRECT/74.125.47.147 - 1199263176.379      0 192.168.254.15 TCP_DENIED/407 2033 GET http://www.folha.uol.com.br/folha/common.css - NONE/- text/html 1199263176.439     58 192.168.254.15 TCP_IMS_HIT/200 32356 GET http://www.folha.uol.com.br/folha/common.css carlos NONE/- text/css Nesses logs podemos identificar que o usuário “jose” teve seu acesso negado ao site menshealth.

Servidor OpenVPN para Multiplas Conexões

VPN no Linux Ubuntu/Debian com OpenVPN - Multiusuários Esse é um exemplo totalmente prático para implementação de uma segurança a mais para qualquer tipo de rede, usando o OpenVPN como uma solução simples, segura e um benefício a mais para interligação de redes distantes, sendo estas, localizadas na internet. Quando iniciei meu primeiro projeto de VPN (uns 2 anos atrás), me deparei com algumas ferramentas disponíveis para atender tal serviço. Como as coisas sempre aparecem e tem que ser executadas de última hora, resolvi sem muito planejamento e estudo utilizar a ferramenta OpenVPN. Esse artigo tem como objetivo mostrar de forma rápida e simples a configuração de uma VPN baseada em Linux utilizando o OpenVPN como ferramenta, sendo que este é um software estável, simples de configurar, além de ser um projeto que está sempre em desenvolvimento. Utilizaremos como ferramentas os aplicativos OpenVPN, para gerenciamento da rede virtual, tanto para os Servidores e Cliente, o OpenSSL p