Tabela de Conteúdos

5.2.2 Servidor SMTP com autenticação SASL

A instalação do 5.2.1 Servidor SMTP: Postfix limita a utilização apenas à rede interna.

Case seja necessário aceder ao servidor a partir o exterior (por exemplo, a partir da Internet) deve ser previsto um mecanismo que limite o acesso apenas a utilizadores devidamente autorizados, para não correr o risco de o nosso servidor ser considerado um open relay.

Complementar a instalação do 5.2.1 Servidor SMTP: Postfix com um mecanismo de autenticação de utilizadores. Como mecanismo de autenticação iremos usar o suporte sasl do dovecot.

Configuração

A configuração está dividida em duas partes: a configuração do dovecot para trabalhar com o postfix e a configuração do postfix para autenticar utilizadores no dovecot:

Dovecot

A configuração que é necessário alterar é guardada nos ficheiros da diretoria /etc/dovecot/conf.d. A comunicação entre o postfix e o dovecot é efetuada através de um socket que é necessário ativar:

# [...]

service auth {
  # auth_socket_path points to this userdb socket by default. It's typically
  # used by dovecot-lda, doveadm, possibly imap process, etc. Users that have
  # full permissions to this socket are able to get a list of all usernames and
  # get the results of everyone's userdb lookups.
  #
  # The default 0666 mode allows anyone to connect to the socket, but the
  # userdb lookups will succeed only if the userdb returns an "uid" field that
  # matches the caller process's UID. Also if caller's uid or gid matches the
  # socket's uid or gid the lookup succeeds. Anything else causes a failure.
  #
  # To give the caller full permissions to lookup all users, set the mode to
  # something else than 0666 and Dovecot lets the kernel enforce the
  # permissions (e.g. 0777 allows everyone full permissions).
  unix_listener auth-userdb {
    #mode = 0666
    #user = 
    #group = 
  }

  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
  }

# [...]

Verificar que estas alterações estão presentes na configuração do docevot com o comando dovecot -n:

root@server:~# dovecot -n:
# [...]
service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
  }
}
# [...]

Reiniciar o serviço dovecot:

root@server:~# systemctl restart dovecot

Postfix

A configuração a alterar está guardada no ficheiro /etc/postfix/main.cf:

Acrescentar os parâmetros SASL:

# [...]
# SASL parameters
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_authenticated_header = yes
broken_sasl_auth_clients = yes
# [...]

As restrições de segurança devem permitir o acesso a utilizadores autenticados via sasl:

# [...]
## Seguranca
# Aceita ligações apenas a partir da rede local ou utilizadores autenticados
smtpd_client_restrictions = permit_mynetworks,
                            permit_sasl_authenticated,
                            reject

# Utilizadores locais ou autenticados podem enviar emails para qualquer endereco
# Rejeitar todos os outros
smtpd_recipient_restrictions = permit_mynetworks,
                               permit_sasl_authenticated,
                               reject_unauth_destination
# [...]

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

root@server:~# postfix check
root@server:~# 

Reiniciar o serviço postfix:

root@server:~# systemctl restart postfix

Configuração Clientes

Nas opções de segurança da configuração do servidor smtp dos clientes deverá ser indicado o utilizador a autenticar:

Configuração do Thunderbird como cliente smtp com autenticação

Ao enviar uma mensagem, será pedida a respetiva password:

Pedido da senha para autenticação no servidor smtp

Referências