Las implementaciones de SMTP más utilizadas en la mayoría de las distribuciones de Linux son Sendmail y Postfix. Postfix es un agente de transferencia de correo de código abierto que se desarrolló originalmente como una alternativa a Sendmail y generalmente se configura como el servidor de correo predeterminado.
Instalando Postfix
Antes de comenzar a instalar, lo primero es lo primero. Un buen hábito es comprobar y ver si el software ya está instalado en el servidor. Siempre es útil comprobar si hay algo antes de empezar a trabajar.
Para verificar las distribuciones basadas en RPM, use este comando:
$ rpm -qa | grep postfix
Si el comando anterior muestra que RPM no está instalado, puede instalar Postfix RPM con lo siguiente (en yum
-distribuciones basadas):
$ yum install -y postfix
Después de instalar Postfix, puede iniciar el servicio y habilitarlo para asegurarse de que se inicie después de reiniciar:
$ systemctl start postfix
$ systemctl enable postfix
Configuración de Postfix
Después de instalar Postfix, puede comenzar a configurar el servicio a su gusto. Todas las opciones que necesita para el servicio se encuentran en /etc/postfix
. El archivo de configuración principal para el servicio de Postfix se encuentra en /etc/postfix/main.cf
. Dentro del archivo de configuración, hay muchas opciones que puede agregar, algunas de ellas más comunes que otras. Repasemos algunos de los que puede ver más al configurar el servicio y cuando necesite solucionarlo:
myhostname
declara el nombre de host del servidor de correo. Los nombres de host normalmente tienen prefijos, como este:
myhostname = mail.sinisterriot.com
mydomain
declara el dominio que realmente está manejando el correo, así:
mydomain = sinisterriot.com
mail_spool_directory
declara el directorio donde se colocan los archivos del buzón, así:
mail_spool_directory = /var/mail
mynetworks
declara una lista de servidores SMTP remotos confiables que pueden retransmitir a través del servidor, así:
mynetworks = 127.0.0.0/8, 168.100.189.0/28
La lista provista con mynetworks
solo debe contener direcciones IP de red local o patrones de red/máscara de red separados por comas o espacios en blanco. Es importante usar solo direcciones de redes locales para evitar que usuarios no autorizados usen su servidor de correo para actividades maliciosas, lo que resultará en que su servidor y direcciones se incluyan en la lista negra.
Prueba de postfijo
Antes de poner algo en producción, probarlo en un entorno de desarrollo siempre es una buena idea. Este proceso tiene el mismo concepto:una vez que haya configurado el servidor de correo, pruébelo para asegurarse de que funciona.
Primero, recomiendo probar si puede enviar un correo electrónico a un destinatario local. Si tiene éxito, puede proceder a un destinatario remoto. Prefiero usar el comando telnet para probar mi servidor de correo:
$ telnet mail.sinisterriot.com 25
Agrega el HELO
Comando para decirle al servidor de qué dominio vienes:
HELO sinisterriot.com
El siguiente es el remitente. Este ID se puede agregar con MAIL FROM
comando:
MAIL FROM: [email protected]
Esta entrada es seguida por el destinatario, y puede agregar más de uno usando el RCPT TO
Comando varias veces:
RCPT TO: [email protected]
Por último, podemos añadir el contenido del mensaje. Para llegar al modo de contenido, agregamos el prefijo DATA
en una sola línea, seguido del Subject
línea y el cuerpo del mensaje. A continuación se muestra un ejemplo:
DATA
Subject: This is a test message
Hello,
This is a test message
.
Para terminar el cuerpo del mensaje y cerrarlo, debe agregar un solo punto (.) o un punto en una línea por sí mismo. Una vez que se complete este proceso, el servidor intentará enviar el correo electrónico con la información que proporcionó. La respuesta del código le notificará si el correo electrónico fue exitoso o no. Una vez hecho esto, use el quit
comando para cerrar la ventana de correo.
En cualquier caso, compruebe los registros de correo en busca de errores. Se encuentran en /var/log/maillog
por defecto, pero esta ubicación se puede cambiar a otro lugar. Como administrador del sistema, comprobar los registros de errores es un buen hábito. Esta práctica es excelente para la resolución de problemas y nos brinda información para identificar y solucionar un problema más rápido. Descifrar los registros de correo también es una parte importante del trabajo de administración, ya que cada parte del registro nos permite saber qué es importante. En los últimos años, conocer estas partes me ayudó a escribir guiones para solicitudes específicas mientras solo necesitaba redactar u omitir partes de los registros de correo.
Asegurando Postfix
Asegurar sus servicios es tan importante como configurarlos. Es más seguro transferir datos a través de una conexión segura que a través de una desprotegida. A continuación, cubriremos cómo proteger nuestro servidor de correo recién configurado. Puede hacerlo generando una sesión SSL sobre Transport Layer Security (TLS) para el servidor SMTP.
Primero, debe generar la clave privada y la Solicitud de firma de certificado (CSR). Puede hacerlo a través de openssl
comando:
$ openssl req -nodes -newkey rsa:2048 -keyout privatekey.key -out mail.csr
Luego, genere una solicitud de firma y cópiela en /etc/postfix
directorio:
$ openssl x509 -req -days 365 -in mail.csr -signkey privatekey.key -out secure.crt
$ cp {privatekey.key,secure.crt} /etc/postfix
Esta secuencia emite un certificado firmado al servidor de correo, también conocido como certificado de autoridad certificadora (CA). Esta práctica significa que la CA debe confiar en el firmante del certificado para proteger la clave privada y transmitir datos a través de Internet. En el otro tipo de certificado, uno autofirmado, la CA no confía en el firmante del certificado, lo que deja la información vulnerable al robo y expuesta a ser comprometida. Siempre es mejor ir con un certificado firmado.
Una vez que se complete este proceso, puede agregar opciones de TLS al archivo de configuración de Postfix:
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/secure.crt
smtpd_tls_key_file = /etc/postfix/privatekey.key
smtp_tls_security_level = may
A continuación, reinicie el servicio para aplicar las nuevas opciones:
$ systemctl restart postfix
Ahora, tiene un servidor de correo electrónico seguro y en funcionamiento.