Volver a Protocolo SMTP

Servidor SMTP

AtenciónUn servidor SMTP debe representar una preocupación constante en el ámbito de la seguridad. Si el servidor esté apenas configurado, puede ser eventualmente utilizado por terceros, para el envío de mensajes en nombre de otro o para envío de spam. Esto puede ocasionar situaciones graves, como la inclusión del dominio en las listas negras (donde quedaría impedido para enviar e-mails genuinos), o puede ocasionar consecuencias legales.

Objetivo

Instalar un servidor de envío dee-mails basado en el protocolo SMTP para la red local.

Instalación

root@server:~# apt-get install postfix postfix-doc

La instalación ofrece una serie de configuraciones predefinidas.

postfix-install-1

 

Seleccionar la opción Site Internet:

postfix-install-2

 

También será solicitado el nombre de e-mail que debe ser “home.lan”:

postfix-install-3

 

Configuración

Aunque el usuario root recibe e-mails, es preferible que estos sean redirigidos hacia un usuario “humano”. Estos “aliases” son definidos en el archivo /etc/aliases:

/etc/aliases
# See man 5 aliases for format
postmaster:    root
root: fribeiro

Siempre que se edita el archivo /etc/aliases, la base de datos correspondiente debe ser actualizada:

root@server:~# newaliases

El origen de los e-mails enviados, o sea, la parte que sigue al “@”, se define en la única línea del archivo /etc/mailname:

/etc/mailname
home.lan

La configuración restante se almacena en el archivo /etc/postfix/main.cf.

Durante la Instalación del servidor IMAP, quedó definida que la localización y el tipo de buzones era “Maildir”. La configuración de postfix debe indicar que la entrega del correo debe ser hecha en la misma localización, lo que se hace en el archivo /etc/postfix/main.cf:

/etc/postfix/main.cf
# [...]
# Entregar correio em ~/Mailbox
home_mailbox = Maildir/
# [...]

Definir las direcciones por donde el postfix acepte recibir las conexiones:

/etc/postfix/main.cf
# [...]
# Interfaces por onde são aceites ligações
inet_interfaces = 127.0.0.1, 192.168.1.100
# [...]

Definir también la lista de clientes privilegiados (aquellos que pueden, por ejemplo, usar el servidor para enviar e-mails para otro dominio (relay)):

/etc/postfix/main.cf
# [...]
# Clientes de confianca
mynetworks = 127.0.0.0/8, 192.168.1.0/24
# [...]

Definir la lista de dominios para los cuales el servidor es el destino final:

/etc/postfix/main.cf
# Emails para estes dominios sao entregues neste servidor
mydestination = home.lan, server.home.lan, localhost.home.lan, localhost

Conexiones encriptadas

Las conexiones al servidor pueden generarse de modo encriptado (TLS) (smtpd_use_tls = yes) También puede especificarse que sólo sean aceptadas las autenticaciones (smtpd_tls_auth_only = yes). Pueden utilizarse también los Certificados Auto-firmados que se generaron previamente, en lugar de los generados automáticamente durante la instalación de postfix:

/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
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/ssl/certs/server.crt
smtpd_tls_key_file = /etc/ssl/private/server.key
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
# [...]

Seguridad

Deben definirse una restricciones rigurosas para el acceso al servidor SMTP.

/etc/postfix/main.cf
# [...]
## Seguranca
# Aceitar ligacoes apenas a partir da rede local
smtpd_client_restrictions = permit_mynetworks,
                            reject

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

# 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

# [...]

Reiniciar el servicio SMTP:

root@server:~# service postfix restart

Verificación

Para esto de conectarse al servidor smtp:

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.

La línea 250-STARTTLS indica que el servidor acepta conexiones encriptadas. Sin embargo, en esta prueba no se utiliza TLS, porque la conexión se hace desde el propio sistema, que está considerado como seguro.

Configuración de clientes

En un cliente de e-mail, como Thunderbird, cree una cuenta de correo con salida (SMTP), indicando como dirección la del servidor (192.169.1.100) y el puerto 25. En la zona de seguridad, no se debe activar la autenticación. En las opciones de conexión segura, pueden ser usado el protocolo TLS o ninguno. El protocolo SSL no podrá ser usado (por ahora).

smtp-tls

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Enviar algunos mensajes a destinatarios reales y ficticios: Deben ser entregados los e-mails que tengan como destinatarios los usuarios válidos del domínio home.lan (por ejemplo: fribeiro@home.lan). Los e-mails para los destinatarios ficticios del dominio home.lan serão recusado imediatamente (ex. desconhecido@home.lan). Demais emails (mesmo para utilizadores e domínios válidos) serán rechazados por los servidores de destino. En este caso, y después de algún tiempo, nuestro servidor generará un mensaje donde se informa el rechazo del pedido.

Referencias