Tabela de Conteúdos

5.2.2 Servidor SMTP com autenticação SASL

A instalação do 5.2.1 Servidor SMTP 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 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 no ficheiro /etc/dovecot/local.conf.

/etc/dovecot/local.conf
# [...]

# Space separated list of wanted authentication mechanisms:
#   plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey
#   gss-spnego
# NOTE: See also disable_plaintext_auth setting.
auth_mechanisms = plain login

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
  }

  # Auth process is run as this user.
  #user = $default_internal_user
}

# [...]

Reiniciar o serviço dovecot:

root@server:~# service dovecot restart

Postfix

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

Acrescentar os parâmetros SASL:

/etc/postfix/main.cf
# [...]
# 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:

/etc/postfix/main.cf
# [...]
## 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
# [...]

Reiniciar o serviço postfix:

root@server:~# service postfix restart

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