Volver a Protocolo SMTP

Servidor SMTP com autenticación

Cuando se instala el Servidor SMPT, su uso se limita a la red interna.

Si es necesario acceder al servidor a partir del exterior (por ejemplo, a partir de Internet) debe preverse un mecanismo que limite su acceso sólo a los usuarios autorizados. Esto con el fin de prevenir el riesgo de que nuestro servidor sea considerado como un open relay.

Objetivo

Complementar la instalación del Servidor SMPT con un mecanismo de autenticación de usuarios, en este caso vamos a emplear el soporte sasl de dovecot.

Configuración

La configuración está divida en dos partes. Primero, la configuración de dovecot para que trabaje con postfix. Y segundo, la configuración de postfix para autenticar usuarios en dovecot:

Dovecot

Se debe modificar el archivo que está almacenado en la siguiente dirección /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 el servicio dovecot:

root@server:~# service dovecot restart

Postfix

Se debe modificar el archivo que está almacenado en la siguiente dirección /etc/postfix/main.cf:

Se deben añadir los 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
# [...]

Las restricciones de seguridad deben permitir el acceso a los usuarios autenticados vía 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 el servicio postfix:

root@server:~# service postfix restart

Configuración de clientes

En las opciones de seguridad dentro de la configuración del servidor smtp de los clientes, debe indicarse cuál usuario se autenticará:

smtp-tls-auth

Referencias