Ferramentas de Usuário

Ferramentas de Site


pt:stretch:email:smtp:postfix

5.2.1 Servidor SMTP: Postfix

Atenção

Um servidor SMTP deve representar uma preocupação constante ao nível da segurança. Caso o servidor esteja mal configurado, pode eventualmente ser utilizado por terceiros, para envio de mensagens em nome de outrem ou para envio de spam. Para além do eventual aumento da fatura Internet, poderão surgir consequências mais graves, como a inclusão do domínio nas listas negras (ficando impossibilitado de enviar emails genuínos), ou mesmo consequências legais.

Instalar um servidor de envio de emails baseado no protocolo SMTP para utilização da rede local.

Instalação

<sxh bash; highlight: [1]> root@server:~# apt install postfix postfix-doc </sxh>

A instalação oferece uma série de configurações predefinidas.

Selecionar a opção Internet Site:

Será também pedido o nome de email que deverá ser “home.lan”:

Configuração

Embora o utilizador root receba emails, é preferível que estes sejam redirecionados para um utilizador “humano”. Esses “aliases” são definidos no ficheiro /etc/aliases:

<sxh; highlight: [3]; title: /etc/aliases> # See man 5 aliases for format postmaster: root root: fribeiro </sxh>

Sempre que se edita o ficheiro /etc/aliases, a base de dados correspondente deve ser atualizada:

<sxh bash; highlight: [1]> root@server:~# newaliases </sxh>

A origem dos emails enviados, ou seja, a parte após o “@”, é definida na única linha do ficheiro /etc/mailname:

<sxh; highlight: [1]; title: /etc/mailname> home.lan </sxh>

A restante configuração é guardada no ficheiro /etc/postfix/main.cf.

Durante a instalação do 5.1.1 Servidor IMAP(S): Dovecot, ficou definido que a localização e o tipo de caixas de correio era “Maildir”. A configuração do postfix deverá indicar que a entrega de correio deve ser feita nessa localização, o que é feito no ficheiro /etc/postfix/main.cf:

<sxh; highlight: [2-3]; title: /etc/postfix/main.cf> # […] # Entregar correio em ~/Mailbox home_mailbox = Maildir/ # […] </sxh>

Definir os endereços por onde o postfix aceita receber ligações:

<sxh; highlight: [2-3]; title: /etc/postfix/main.cf> # […] # Interfaces por onde são aceites ligações inet_interfaces = 127.0.0.1, 192.168.1.100 # […] </sxh>

Definir também a lista de clientes privilegiados (que podem, por exemplo, usar o servidor para enviar emails para outro domínio (relay)):

<sxh; highlight: [2-3]; title: /etc/postfix/main.cf> # […] # Clientes de confianca mynetworks = 127.0.0.0/8, 192.168.1.0/24 # […] </sxh>

Definir a lista de domínios para os quais o servidor é o destino final:

<sxh; highlight: [2-3]; title: /etc/postfix/main.cf> # […] # Emails para estes dominios sao entregues neste servidor mydestination = home.lan, server.home.lan, localhost.home.lan, localhost # […] </sxh>

O tamanho máximo de cada mensagem também pode ser alterado:

<sxh; highlight: [2-3]; title: /etc/postfix/main.cf> # […] # Tamanho máximo de cada mensagem: 50Mb message_size_limit = 52428800 </sxh>

Encriptação da ligação

As ligações ao servidor poderão ser feitas de um modo encriptado (TLS) (smtpd_use_tls = yes). Podem ser usados os certificados ssl auto-assinados gerados em 3.5.1 Certificados Auto-Assinados ou os certificados 3.5.2 Certificados LetsEncrypt em vez dos gerados automaticamente durante a instalação do postfix:

<sxh; highlight: [5-10]; title: /etc/postfix/main.cf> # […] # TLS parameters # smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem # smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key # Certificados Let's Encrypt: #smtpd_tls_cert_file = /etc/letsencrypt/live/home.example.com/cert.pem #smtpd_tls_key_file = /etc/letsencrypt/live/home.example.com/privkey.pem # Certificados auto-assinados: smtpd_tls_cert_file = /etc/ssl/certs/server.crt smtpd_tls_key_file = /etc/ssl/private/server.key smtpd_use_tls = yes smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache # […] </sxh>

Segurança

Devem ser definidas restrições bastante rigorosas ao acesso ao servidor SMTP.

<sxh; highlight: [2-16]; title: /etc/postfix/main.cf> # […] ## Seguranca # Aceitar ligacoes apenas a partir da rede local smtpd_client_restrictions = permit_mynetworks,

                          reject

# Rejeitar ligacoes de clientes que nao saibam o seu hostname smtpd_helo_restrictions = reject_unknown_sender_domain

# Rejeitar email de dominios que nao existem smtpd_sender_restrictions = reject_unknown_sender_domain

# Clientes locais podem enviar emails para qualquer endereco smtpd_recipient_restrictions = permit_mynetworks,

                             reject_unauth_destination

# […] </sxh>

Verifique se o ficheiro de configuração do postfix não contém incorreções:

<sxh bash; highlight: [1]> root@server:~# postfix check root@server:~# </sxh>

Reiniciar o serviço SMTP:

<sxh bash; highlight: [1]> root@server:~# systemctl restart postfix </sxh>

Verificação

Verificar que é possível ligar ao servidor smtp:

<sxh bash; highlight: [1,7,17,19,21,23-25,27]> root@server:~# telnet localhost smtp Trying ::1… Trying 127.0.0.1… Connected to localhost. Escape character is '^]'. 220 server.home.lan ESMTP Postfix (Debian/GNU) EHLO localhost 250-server.home.lan 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN MAIL FROM: fribeiro 250 2.1.0 Ok RCPT TO: fribeiro 250 2.1.5 Ok DATA 354 End data with <CR><LF>.<CR><LF> Subject: smtp test testing the smtp server . 250 2.0.0 Ok: queued as 93AC1ABA9 QUIT 221 2.0.0 Bye Connection closed by foreign host. </sxh>

A linha 250-STARTTLS indica que o servidor aceita ligações encriptadas. No entanto, neste teste não é usada a encriptação TLS, porque a ligação é feita do próprio sistema, o que é considerado seguro.

A linha 250 2.0.0 Ok: queued as 93AC1ABA9 indica que o email foi aceite pelo servidor e está em fila de espera para ser processado.

Configuração clientes

Num cliente email, como o Thunderbird, criar uma conta de correio de saída (SMTP), indicando como endereço o do servidor (192.169.1.100) e porta 25. Na zona de segurança, não ativar autenticação. Nas opções de ligação segura, podem ser usado o protocolo TLS ou nenhum. O protocolo SSL não poderá ser usado (por agora).

Configuração do Thunderbird como cliente smtp

Enviar algumas mensagens para destinatários existentes e fictícios: Deverão ser entregues emails que tenham como destinatários utilizadores válidos do domínio home.lan (Ex. fribeiro@home.lan). Emails para destinatários inexistentes do domínio home.lan serão recusado imediatamente (ex. desconhecido@home.lan). Demais emails (mesmo para utilizadores e domínios válidos) serão provavelmente recusados pelos servidores de destino. Neste caso, e passado algum tempo, o nosso servidor irá gerar uma mensagem a informar a razão da recusa.

Referências

pt/stretch/email/smtp/postfix.txt · Última modificação em: 2020-08-02 20:10 (edição externa)

Excepto menção em contrário, o conteúdo neste wiki está sob a seguinte licença: CC Attribution-Noncommercial-Share Alike 4.0 International
CC Attribution-Noncommercial-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki