Tabla de Contenidos
5.2.1 Servidor SMTP
Un 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.
Seleccionar la opción Site Internet:
También será solicitado el nombre de e-mail que debe ser “home.lan”:
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).
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.