Requisitos antes de comenzar a configurar:
Instalar los paquetes postfix con el comando
yum -y install postfix
Punto importante todos los siguientes procedimientos deben utilizarse como el root accedemos a este desde la terminal con el comando su -
Ahora procedemos a seleccionar el servicio de correo electrónico que deseamos configurar para esto debemos saber cuáles tenemos disponibles, en caso de solamente haber instalado postfix aparecerá la siguiente tabla
Selección Comando
-----------------------------------------------
*+1 /usr/sbin/sendmail.postfix
Presione Intro para mantener la selección actual [+]
En este caso solamente tenemos disponible postfix en caso de tener más debemos seleccionar el que deseamos introduciendo el número que se encuentra a las izquierda y dando Enter.
Después de haber ingresado este comando
alternatives --config mta
Con la intención de que SELinux permita a Postfix escribir en el directorio de entrada del servicio de correo, debemos habilitar una política con el siguiente comando
setsebool -P allow_postfix_local_write_mail_spool 1
Después debemos habilitar y certificar una firma digital.
Debemos acceder a uno de los directorios, podemos hacerlo fácilmente con el siguiente comando
sudo gedit /etc/pki/tls/
El cual nos muestra el siguiente resultado
Generating a 1024 bit DSA private key
writing new private key to 'smtp.key'
-----
You are about to be asked to enter information that will be
incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name
or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]: MX
State or Province Name (full name) [Berkshire]: Algún estado
Locality Name (eg, city) [Newbury]: Mexico
Organization Name (eg, company) [My Company Ltd]: Ejemplo de empresa
Organizational Unit Name (eg, section) []: Ejemplo XXXXXXXXXX
Common Name (eg, your name or your server's hostname) []: *.midominio.tld
Email Address []: ejemplo@midominio.com
Después nos muestra el siguiente resultado de lo anterior
openssl req -x509 -nodes -newkey rsa:2048 -days 1825 \
-out certs/midominio.tld.crt -keyout private/midominio.tld.key
Es un requerimiento muy importante que todos los archivos de claves y certificados contengan permisos de sólo lectura para el root, esto lo logramos con el siguiente comando:
chmod 400 certs/dominio.tld.crt private/dominio.tld.key
Para regresar a root ingresamos lo siguiente:
cd
Después de todo lo anterior debemos modificar algunos archivos de configuración del servicio postfix:
sudo gedit /etc/postfix/master.cf
Es importante saber que este archivo viene comentado casi en un 100%, debemos localizar algunas líneas en específico y des comentarlas, en el siguiente ejemplo muestra cuales, las que se encuentran en negritas:
smtp inet n - n - - smtpd
submission inet n - n - - smtpd
-o smtpd_tls_security_level= encrypt
-o smtpd_sasl_auth_enable= yes
-o smtpd_client_restrictions= permit_sasl_authenticated,reject
-o milter_macro_daemon_name= ORIGINATING
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode= yes
-o smtpd_sasl_auth_enable= yes
-o smtpd_client_restrictions= permit_sasl_authenticated,reject
-o milter_macro_daemon_name= ORIGINATING
Luego de debe editar el siguiente archivo de configuración:
sudo gedit /etc/postfix/main.cf
Del resultado debemos ubicar y des comentar las siguientes líneas:
myhostname = mail.midominio.com
mydomain = midominio.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, $mydomain, localhost.localdomain, localhost
mynetworks = 192.168.1.0/24, 127.0.0.0/8
relay_domains = $mydestination
mailbox_command = /usr/bin/procmail
smtpd_tls_security_level = may
smtpd_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt
smtpd_tls_key_file = /etc/pki/tls/private/midominio.tld.key
smtpd_tls_cert_file = /etc/pki/tls/certs/midominio.tld.crt
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
smtpd_tls_mandatory_protocols = SSLv3, TLSv1
smtpd_tls_mandatory_ciphers = medium, high
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions= permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
Después de eso puedes realizar tus comprobaciones utilizando herramientas como Mozilla Thunderbird o bien GNOME evolution ademásde que debes realizar algunas modificaciones en tu Firewall.