Postfijo es un MTA gratuito y de código abierto (Agente de transferencia de correo) utilizado para enrutar o entregar correos electrónicos en un sistema Linux. En esta guía, aprenderá a instalar y configurar Postfix en CentOS 8.
Configuración del laboratorio:
- SO: Servidor CentOS 8
- Dirección IP: 192.168.1.13
- Nombre de host: server1.crazytechgeek.info (asegúrese de que el nombre de dominio apunte a la IP del servidor)
Paso 1) Actualizar el sistema
El primer paso es asegurarse de que los paquetes del sistema estén actualizados. Para hacerlo, actualice el sistema de la siguiente manera:
# dnf update
Antes de continuar, asegúrese también de que ningún otro MTA como Sendmail existen ya que esto causará un conflicto con la configuración de Postfix. Para eliminar Sendmail, por ejemplo, ejecute el comando:
# dnf remove sendmail
Paso 2) Establezca el nombre de host y actualice el archivo /etc/hosts
Use el siguiente comando hostnamectl para establecer el nombre de host en su sistema,
# hostnamectl set-hostname server1.crazytechgeek.info # exec bash
Además, debe agregar el nombre de host del sistema y las entradas de IP en el archivo /etc/hosts
# vim /etc/hosts 192.168.1.13 server1.crazytechgeek.info
Guarde y salga del archivo.
Leer también : Cómo configurar el servidor DNS (Bind) en CentOS 8/RHEL8
Paso 3) Instalar el servidor de correo Postfix
Después de verificar que no se esté ejecutando ningún otro MTA en el sistema, instale Postfix ejecutando el comando:
# dnf install postfix
Paso 4) Inicie y habilite el servicio Postfix
Tras la instalación exitosa de Postfix, inicie y habilite el servicio de Postfix ejecutando:
# systemctl start postfix # systemctl enable postfix
Para verificar el estado de Postfix, ejecute el siguiente comando systemctl
# systemctl status postfix
Genial, hemos verificado que Postfix está funcionando. A continuación, configuraremos Postfix para enviar correos electrónicos localmente a nuestro servidor.
Paso 5) Instalar el cliente de correo electrónico mailx
Antes de configurar el servidor Postfix, necesitamos instalar la función mailx. Para instalar mailx, ejecute el comando:
# dnf install mailx
Paso 6) Configurar el servidor de correo de Postfix
El archivo de configuración de Postfix se encuentra en /etc/postfix/main.cf . Necesitamos hacer algunos cambios en el archivo de configuración, así que ábralo con su editor de texto favorito.
# vi /etc/postfix/main.cf
Realice cambios en las siguientes líneas:
myhostname = server1.crazytechgeek.info mydomain = crazytechgeek.info myorigin = $mydomain ## Uncomment and Set inet_interfaces to all ## inet_interfaces = all ## Change to all ## inet_protocols = all ## Comment ## #mydestination = $myhostname, localhost.$mydomain, localhost ##- Uncomment ## mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain ## Uncomment and add IP range ## mynetworks = 192.168.1.0/24, 127.0.0.0/8 ## Uncomment ## home_mailbox = Maildir/
Una vez hecho esto, guarde y salga del archivo de configuración. Reinicie el servicio postfix para que los cambios surtan efecto
# systemctl restart postfix
Paso 7) Probar el servidor de correo Postfix
Pruebe si nuestra configuración funciona, primero, cree un usuario de prueba
# useradd postfixuser # passwd postfixuser
A continuación, ejecute el siguiente comando para enviar un correo electrónico desde pkumar usuario local a otro usuario 'postfixuser ‘
# telnet localhost smtp or # telnet localhost 25
Si el servicio telnet no está instalado, puede instalarlo usando el comando:
# dnf install telnet -y
Cuando ejecuta el comando como se indicó anteriormente, debe obtener el resultado como se muestra
[[email protected] ~]# telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 server1.crazytechgeek.info ESMTP Postfix
Arriba confirme que la conectividad con el servidor de correo postfix funciona bien. A continuación, escriba el comando:
# ehlo localhost
La salida será algo como esto
250-server1.crazytechgeek.info 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250-DSN 250 SMTPUTF8
A continuación, ejecute los comandos resaltados en naranja, como "correo desde", "rcpt a", datos y, finalmente, escriba salir,
mail from:<pkumar> 250 2.1.0 Ok rcpt to:<postfixuser> 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> Hello, Welcome to my mailserver (Postfix) . 250 2.0.0 Ok: queued as B56BF1189BEC quit 221 2.0.0 Bye Connection closed by foreign host
Complete el comando telnet para enviar un correo electrónico desde el usuario local “pkumar ” a otro usuario local “postfixuser ” sería algo así como a continuación
Si todo salió según lo planeado, debería poder ver el correo electrónico enviado en el directorio de inicio del nuevo usuario.
# ls /home/postfixuser/Maildir/new 1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info #
Para leer el correo electrónico, simplemente use el comando cat de la siguiente manera:
# cat /home/postfixuser/Maildir/new/1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info
Registros del servidor de correo Postfix
Los registros de correo del servidor de correo Postfix se almacenan en el archivo “/var/log/maillog “, use el siguiente comando para ver los registros en vivo,
# tail -f /var/log/maillog
Seguridad del servidor de correo de Postfix
Siempre se recomienda proteger la comunicación entre los clientes y el servidor postfix, esto se puede lograr mediante certificados SSL, estos certificados pueden ser de una autoridad de confianza o certificados autofirmados. En este tutorial, generaremos certificados autofirmados para postfix usando openssl mando,
Supongo que openssl ya está instalado en su sistema, en caso de que no esté instalado, use el siguiente comando dnf,
# dnf install openssl -y
Genere una clave privada y una CSR (Solicitud de firma de certificado) usando el comando que se encuentra debajo de openssl,
# openssl req -nodes -newkey rsa:2048 -keyout mail.key -out mail.csr
Ahora genere un certificado autofirmado usando el siguiente comando openssl,
# openssl x509 -req -days 365 -in mail.csr -signkey mail.key -out mail.crt Signature ok subject=C = IN, ST = New Delhi, L = New Delhi, O = IT, OU = IT, CN = server1.crazytechgeek.info, emailAddress = [email protected] Getting Private key #
Ahora copie la clave privada y el archivo de certificado en el directorio /etc/postfix
# cp mail.key mail.crt /etc/postfix
Actualice la clave privada y la ruta del archivo de certificado en el archivo de configuración de postfix,
# vi /etc/postfix/main.cf ……… smtpd_use_tls = yes smtpd_tls_cert_file = /etc/postfix/mail.crt smtpd_tls_key_file = /etc/postfix/mail.key smtpd_tls_security_level = may ………
Reinicie el servicio postfix para hacer los cambios anteriores en el efecto.
# systemctl restart postfix
Intentemos enviar un correo electrónico al dominio local interno y al dominio externo usando el cliente mailx.
Envío de correo electrónico interno local del usuario de pkumar al usuario de postfix
# echo "test email" | mailx -s "Test email from Postfix MailServer" -r [email protected] [email protected]
Verifique y lea el correo electrónico usando lo siguiente,
# cd /home/postfixuser/Maildir/new/ # ll total 8 -rw-------. 1 postfixuser postfixuser 476 Nov 12 17:34 1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info -rw-------. 1 postfixuser postfixuser 612 Nov 13 02:40 1573612845.Vfd02I20050bbM466643.server1.crazytechgeek.info # cat 1573612845.Vfd02I20050bbM466643.server1.crazytechgeek.info
Enviar correo electrónico desde postfixuser a un dominio externo ([email protected])
# echo "External Test email" | mailx -s "Postfix MailServer" -r [email protected] [email protected]
Comprobar la cola de correo de Postfix
Use el comando mailq para enumerar los correos que están en cola.
# mailq Mail queue is empty #
¡Y eso es! ¡Nuestra configuración de Postfix está funcionando! Eso es todo por ahora. Esperamos que este tutorial le haya resultado útil y que pueda configurar cómodamente su servidor Postfix local.
Lea también :Cómo instalar y configurar Samba en CentOS 8