# Configuración Postfix en Oracle Linux

Voy a explicar paso a paso la instalación de Postfix en Oracle linux 8 o superior, para poder habilitar el envío de mensajes dentro de la red. Como pequeña nota, Postfix es un MTA (Mail Transfer Agent) que fue desarrollado para remplazar al antiguo sendmail.

Lo primero que vamos hacer es verificar si esta instalado en nuestra máquina para proceder a la instalación del mismo. Este paso lo podemos verificar con el Package Manager, filtrando por postfix "**rpm -qa | grep postfix**".

Aunque sea un entorno nuevo, siempre es bueno verificarlo. Una vez verificado, procedemos con su instalación.

```plaintext
[root@~]# dnf install -y postfix
[root@~]# rpm -qa | grep postfix
postfix-3.5.8-7.el8.x86_64
```

Haremos lo mismo con **sendmail**, en caso que este instalado lo eliminamos

```plaintext
[root@~]# rpm -qa | grep sendmail
[root@~]# sudo dnf remove -y sendmail
```

Una vez instalado **postfix** y elminado **sendmail**, marcaríamos **postfix** como MTA por defecto

```plaintext
[root@~]# alternatives --set mta /usr/sbin/sendmail.postfix
```

Antes de habilitar el servicio de postfix, deberíamos verificar si tenemos algún tipo de firewall en nuestra máquina. En mi caso no aplicaría, pero en caso que tengamos algún firewall, deberíamos permitir el tráfico SMTP.

```plaintext
[root@~]#  systemctl enable --now postfix
```

Procedemos a instalar SASL para autenticación y autorización en los distintos protocolos de Internet.

```plaintext
[root@~]#  dnf list cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain
[root@~]#  dnf install cyrus-sasl cyrus-sasl-plain
#### chequeamos que este todo bien
[root@~]#  dnf list cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain
Repository ol8_baseos_latest is listed more than once in the configuration
Repository ol8_appstream is listed more than once in the configuration
Repository ol8_codeready_builder is listed more than once in the configuration
Repository ol8_addons is listed more than once in the configuration
Repository ol8_UEKR6 is listed more than once in the configuration
Repository ol8_UEKR6_RDMA is listed more than once in the configuration
Last metadata expiration check: 2:39:11 ago on Fri 12 Jul 2024 08:38:53 AM CEST.
Installed Packages
cyrus-sasl.x86_64                                                             2.1.27-6.el8_5                                                       @ol8_baseos_latest
cyrus-sasl-lib.x86_64                                                         2.1.27-6.el8_5                                                       @System
cyrus-sasl-plain.x86_64                                                       2.1.27-6.el8_5                                                       @ol8_baseos_latest
Available Packages
cyrus-sasl.i686                                                               2.1.27-6.el8_5                                                       ol8_baseos_latest
cyrus-sasl-lib.i686                                                           2.1.27-6.el8_5                                                       ol8_baseos_latest
cyrus-sasl-plain.i686                                                         2.1.27-6.el8_5                                                       ol8_baseos_latest
```

Una vez llegados a este punto, procedemos a la configuración del mismo, como es el servidor smtp, el puerto y otros tipos de configuraciones. Antes de lanzar cualquier modificación, hacemos un copia de seguridad del archivo /etc/postfix/[main.cf](http://main.cf).

```plaintext
[root@~]# postconf -e "relayhost = [smtp.*********]:<PORT>"
[root@~]# postconf -e "smtp_sasl_auth_enable = yes"
[root@~]# postconf -e "smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd"
[root@~]# postconf -e "smtp_sasl_security_options = noanonymous"
[root@~]# postconf -e "smtp_sasl_tls_security_options = noanonymous"
[root@~]# postconf -e "smtp_use_tls = yes" 
```

Definimos el fichero /etc/postfix/sasl\_passwd. Este fichero es el que contendrá la información del usuario y contraseña que debe usarse para la utilización del smtp.

El contenido del mismo es siempre **\[smtp\_server\_name\]:port username:password**. Le daremos permisos 600.

```plaintext
[root@~]# cat /etc/postfix/sasl_passwd
[smtp.********]:Port User:Password 
[root@~]# chmod 600 /etc/postfix/sasl_passwd
```

Creamos el database-like para que el postfix pueda ser leído y recargamos la configuración del mismo

```plaintext
[root@~]# postmap /etc/postfix/sasl_passwd
[root@~]# postfix reload
postfix/postfix-script: refreshing the Postfix mail system
```

Este punto anterior puede arrojarte el siguiente error

***"postmap: fatal: parameter inet\_interfaces: no local interface found for ::1"***

Esto es debido a que el fichero /etc/postifix/main.cf, la variable inet\_interfaces esta configurado con valor localhost, debe tener valor **<mark>all </mark>** "inet\_interfaces = all".

Una vez llegado a este punto, solo faltaría hacer el test, donde aquí es necesario tener instalado **mailx**.

Procedemos a instalarlo en caso de que no lo tengamos

```plaintext
[root@~]# dnf list mailx
[root@~]# dnf install mailx
```

Ejecutamos el test:

```plaintext
[root@~]# echo "Test postfix" | mailx -r test@test.com -s "Test postfix"  david.sanz.macias@nttdata.com
```

Verificamos que nos has llegado el mail

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1721033067690/9659fadd-7c3e-421e-bec8-e86c86df6597.png align="center")

Listo ¡Espero que os sirva!
