Índice general de la serie: Redes de Computadoras para las PYMES: Introducción
Este artículo es continuación y último de la miniserie:
- Squid + Autenticación PAM en CentOS 7.
- Gestión de usuarios y grupos locales
- Servidor DNS Autoritario NSD + Shorewall
- Prosody IM y usuarios locales
¡Hola amigas y amigos!
Los Entusiastas quieren tener su propio servidor de correo. No desean utilizar servidores en los que la «Privacidad» está entre signos de interrogación. El encargado de implementar el servicio en su pequeño servidor no es especialista en el tema y tratará de instalar inicialmente el núcleo de un futuro y completo servidor de correo. Es que las «ecuaciones» para hacer un Full Mailserver son un poco difíciles de entender y de aplicar.
Anotaciones al margen
- Es necesario tener claras cuales funciones realiza cada programa involucrado en un Mailserver. Como guía inicial damos toda una serie de enlaces útiles con el declarado propósito de que se visiten.
- Implementar de forma manual y desde cero un Completo Servicio de Correo, es un proceso fatigoso, a menos que Usted sea uno de los «Elegidos» que realizan diariamente ese tipo tarea. Un Servidor de Correo está formado -de forma general- por diversos programas que separadamente manejan SMTP, POP / IMAP, Almacenamiento Local de los Mensajes, tareas relacionadas con el tratamiento del SPAM, Antivirus, etcétera. TODOS esos programas deben comunicarse los unos con los otros de forma correcta.
- No existe una receta universal o «mejores prácticas» sobre cómo administrar los usuarios; dónde y cómo almacenar los mensajes, o cómo hacer que todos los componentes trabajen como un todo único.
- El ensamblaje y puesta a punto de un Mailserver tiende a ser odioso en materias como los permisos y propietarios de archivos, elección de cual usuario será el encargado de un determinado proceso, y en pequeños errores cometidos en algún fichero de esotérica configuración.
- A menos que Usted sepa muy bien que es lo que está haciendo, el resultado final será el de un Servidor de Correo inseguro o ligeramente no funcional. Que al final de la implementación No Funcione, será posiblemente el menor de los males.
- Podemos encontrar en Internet una buena cantidad de recetas de cómo hacer un Servidor de Correo. Una de las más completas –en mi opinión muy personal– es la que ofrece el autor Ivar Abrahamsen en su décima tercera edición de enero del 2017 «How to set up a mail server on a GNU / Linux system«.
- También recomendamos la lectura del artículo «A Mailserver on Ubuntu 14.04: Postfix, Dovecot, MySQL«, o «A Mailserver on Ubuntu 16.04: Postfix, Dovecot, MySQL«.
- Cierto. La mejor documentación al respecto la encontraremos en inglés.
- Aunque nunca hagamos un Mailserver guiándonos fielmente por el How to… mencionado en el párrafo anterior, el solo hecho de seguirlo paso a paso, nos dará una muy buena idea de a qué nos estaremos enfrentando.
- Si quieren tener un completo Mailserver en pocos pasos, pueden descargar la imagen iRedOS-0.6.0-CentOS-5.5-i386.iso, o buscar una mas moderna, sea iRedOS o iRedMail. Es la forma que personalmente recomiendo.
Vamos a instalar y configurar:
- Postfix como servidor Mail Transport Agent (SMTP).
- Dovecot como servidor POP – IMAP.
- Certificados para conexiones mediante TLS.
- Squirrelmail como interfaz web para los usuarios.
- Registro DNS relativo al «Sender Policy Framework» o SPF.
- Generación del módulo Diffie Hellman Group para aumentar la seguridad de los certificados SSL.
Queda por hacer:
Cómo mínimo quedarían por implementar los siguientes servicios:
- Postgrey: Políticas del servidor Postfix para las Listas Grises y rechazar Correo Basura.
- Amavisd-new: script que crea una interfaz entre el MTA, y los buscadores de virus y los filtros de contenidos.
- Clamav Antivirus: suite antivirus
- SpamAssassin: extraer Correo Basura
- Razor (Pyzor): captura de SPAM mediante una red distribuida y colaborativa. La red de Vipul Razor mantiene un catálogo actualizado de la propagación de correo basura o SPAM.
- Registro DNS «DomainKeys Identified Mail» o DKIM.
Los paquetes postgrey, amavisd-new, clamav, spamassassin, razor y pyzor se encuentran en los repositorios de programas. También encontraremos al programa opendkim.
- La correcta declaración de los registros DNS «SPF» y «DKIM» es imprescindible sino deseamos que a nuestro servidor de correo recién puesto en funcionamiento, se le declare indeseable o productor de SPAM o Correo Basura, por otros servicios de correo como Gmail, Yahoo, Hotmail, etcétera.
Comprobaciones iniciales
Recordemos que éste artículo es continuación de otros que comienzan en Squid + Autenticación PAM en CentOS 7.
Interfaz ens32 LAN conectada a la Red Interna
[root@linuxbox ~]# nano /etc/sysconfig/network-scripts/ifcfg-ens32
DEVICE=ens32
ONBOOT=yes
BOOTPROTO=static
HWADDR=00:0c:29:da:a3:e7
NM_CONTROLLED=no
IPADDR=192.168.10.5
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DOMAIN=desdelinux.fan
DNS1=127.0.0.1
ZONE=public
[root@linuxbox ~]# ifdown ens32 && ifup ens32
Interfaz ens34 WAN conectada a la Internet
[root@linuxbox ~]# nano /etc/sysconfig/network-scripts/ifcfg-ens34
DEVICE=ens34
ONBOOT=yes
BOOTPROTO=static
HWADDR=00:0c:29:da:a3:e7
NM_CONTROLLED=no
IPADDR=172.16.10.10
NETMASK=255.255.255.0
# El Router ADSL está conectado a
# ésta interfaz con
# la siguiente dirección IP
GATEWAY=172.16.10.1
DOMAIN=desdelinux.fan
DNS1=127.0.0.1
ZONE=external
Resolución DNS desde la LAN
[root@linuxbox ~]# cat /etc/resolv.conf search desdelinux.fan nameserver 127.0.0.1 nameserver 172.16.10.30 [root@linuxbox ~]# host mail mail.desdelinux.fan is an alias for linuxbox.desdelinux.fan. linuxbox.desdelinux.fan has address 192.168.10.5 linuxbox.desdelinux.fan mail is handled by 1 mail.desdelinux.fan. [root@linuxbox ~]# host mail.desdelinux.fan mail.desdelinux.fan is an alias for linuxbox.desdelinux.fan. linuxbox.desdelinux.fan has address 192.168.10.5 linuxbox.desdelinux.fan mail is handled by 1 mail.desdelinux.fan.
Resolución DNS desde Internet
buzz@sysadmin:~$ host mail.desdelinux.fan 172.16.10.30 Using domain server: Name: 172.16.10.30 Address: 172.16.10.30#53 Aliases: mail.desdelinux.fan is an alias for desdelinux.fan. desdelinux.fan has address 172.16.10.10 desdelinux.fan mail is handled by 10 mail.desdelinux.fan.
Problemas al resolver localmente el nombre de host «desdelinux.fan»
Si tienen problemas con la resolución del nombre del host «desdelinux.fan» desde la LAN, prueben a comentar la línea del archivo /etc/dnsmasq.conf donde se declara local=/desdelinux.fan/. Posteriormente, reinicien el Dnsmasq.
[root@linuxbox ~]# nano /etc/dnsmasq.conf # Comente la línea a continuación: # local=/desdelinux.fan/ [root@linuxbox ~]# service dnsmasq restart Redirecting to /bin/systemctl restart dnsmasq.service [root@linuxbox ~]# service dnsmasq status [root@linuxbox ~]# host desdelinux.fan desdelinux.fan has address 172.16.10.10 desdelinux.fan mail is handled by 10 mail.desdelinux.fan.
Postfix y Dovecot
La muy extensa documentación del Postfix y del Dovecot la podemos encontrar en:
[root@linuxbox ~]# ls /usr/share/doc/postfix-2.10.1/ bounce.cf.default LICENSE README-Postfix-SASL-RedHat.txt COMPATIBILITY main.cf.default TLS_ACKNOWLEDGEMENTS examples README_FILES TLS_LICENSE [root@linuxbox ~]# ls /usr/share/doc/dovecot-2.2.10/ AUTHORS COPYING.MIT dovecot-openssl.cnf NEWS wiki COPYING ChangeLog example-config README COPYING.LGPL documentation.txt mkcert.sh solr-schema.xml
En CentOS 7, el MTA Postfix se instala por defecto cuando escogemos la opción de un Servidor de Infraestructura. Debemos comprobar que el contexto SELinux permita escribir al Potfix en la cola local de los mensajes:
[root@linuxbox ~]# getsebool -a | grep postfix
postfix_local_write_mail_spool --> on
Modificaciones en el FirewallD
Mediante la interfaz gráfica para configurar el FirewallD, debemos garantizar que los servicios y puertos siguientes se encuentren habilitados para cada Zona:
# ------------------------------------------------------ # Arreglos en el FirewallD # ------------------------------------------------------ # Firewall # Zona public: servicios http, https, imap, pop3, smtp # Zona public: puertos 80, 443, 143, 110, 25 # Zona external: servicios http, https, imap, pop3s, smtp # Zona external: puertos 80, 443, 143, 995, 25
Instalamos Dovecot y programas necesarios
[root@linuxbox ~]# yum install dovecot mod_ssl procmail telnet
Configuración mínima del Dovecot
[root@linuxbox ~]# nano /etc/dovecot/dovecot.conf protocols = imap pop3 lmtp listen = *, :: login_greeting = ¡Dovecot está listo!
Inhabilitamos explícitamente la autenticación en texto plano del Dovecot:
[root@linuxbox ~]# nano /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = yes
Declaramos el Grupo con los privilegios necesarios para interactuar con el Dovecot, y la ubicación de los mensajes:
[root@linuxbox ~]# nano /etc/dovecot/conf.d/10-mail.conf mail_location = mbox:~/mail:INBOX=/var/mail/%u mail_privileged_group = mail mail_access_groups = mail
Certificados para el Dovecot
Dovecot genera automáticamente sus certificados -de prueba- basado en los datos del archivo /etc/pki/dovecot/dovecot-openssl.cnf. Para tener nuevos certificados generados acorde a nuestros requisitos, debemos realizar los siguientes pasos:
[root@linuxbox ~]# cd /etc/pki/dovecot/ [root@linuxbox dovecot]# nano dovecot-openssl.cnf [ req ] default_bits = 1024 encrypt_key = yes distinguished_name = req_dn x509_extensions = cert_type prompt = no [ req_dn ] # country (2 letter code) C=CU # State or Province Name (full name) ST=Cuba # Locality Name (eg. city) L=Habana # Organization (eg. company) O=DesdeLinux.Fan # Organizational Unit Name (eg. section) OU=Entusiastas # Common Name (*.example.com is also possible) CN=*.desdelinux.fan # E-mail contact emailAddress=buzz@desdelinux.fan [ cert_type ] nsCertType = server
Eliminamos los certificados de prueba
[root@linuxbox dovecot]# rm certs/dovecot.pem rm: ¿borrar el fichero regular «certs/dovecot.pem»? (s/n) s [root@linuxbox dovecot]# rm private/dovecot.pem rm: ¿borrar el fichero regular «private/dovecot.pem»? (s/n) s
Copiamos y ejecutamos el script mkcert.sh desde el directorio de la documentación
[root@linuxbox dovecot]# cp /usr/share/doc/dovecot-2.2.10/mkcert.sh . [root@linuxbox dovecot]# bash mkcert.sh Generating a 1024 bit RSA private key ......++++++ ................++++++ writing new private key to '/etc/pki/dovecot/private/dovecot.pem' ----- subject= /C=CU/ST=Cuba/L=Habana/O=DesdeLinux.Fan/OU=Entusiastas/CN=*.desdelinux.fan/emailAddress=buzz@desdelinux.fan SHA1 Fingerprint=5F:4A:0C:44:EC:EC:EF:95:73:3E:1E:37:D5:05:F8:23:7E:E1:A4:5A [root@linuxbox dovecot]# ls -l certs/ total 4 -rw-------. 1 root root 1029 may 22 16:08 dovecot.pem [root@linuxbox dovecot]# ls -l private/ total 4 -rw-------. 1 root root 916 may 22 16:08 dovecot.pem [root@linuxbox dovecot]# service dovecot restart [root@linuxbox dovecot]# service dovecot status
Certificados para el Postfix
[root@linuxbox ~]# cd /etc/pki/tls/ [root@linuxbox tls]# openssl req -sha256 -x509 -nodes -newkey rsa:4096 -days 1825 \ -out certs/desdelinux.fan.crt -keyout private/desdelinux.fan.key Generating a 4096 bit RSA private key .........++ ..++ writing new private key to 'private/dominio.tld.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) [XX]:CU State or Province Name (full name) []:Cuba Locality Name (eg, city) [Default City]:Habana Organization Name (eg, company) [Default Company Ltd]:DesdeLinux.Fan Organizational Unit Name (eg, section) []:Entusiastas Common Name (eg, your name or your server's hostname) []:desdelinux.fan Email Address []:buzz@desdelinux.fan
Configuración mínima del Postfix
Agregamos al final del archivo /etc/aliases lo siguiente:
root: buzz
Para que los cambios tengan efecto ejecutamos el siguiente comando:
[root@linuxbox ~]# newaliases
La configuración del Postifx la podemos efectuar editando directamente el archivo /etc/postfix/main.cf o mediante el comando postconf -e cuidando de que todo el parámetro que queremos modificar o adicionar se refleje en una sola línea de la consola:
- ¡Cada cual debe declarar las opciones que entienda y necesite!.
[root@linuxbox ~]# postconf -e 'myhostname = desdelinux.fan' [root@linuxbox ~]# postconf -e 'mydomain = desdelinux.fan' [root@linuxbox ~]# postconf -e 'myorigin = $mydomain' [root@linuxbox ~]# postconf -e 'inet_interfaces = all' [root@linuxbox ~]# postconf -e 'mydestination = $myhostname, localhost.$mydomain, localhost,$mydomain, mail.$mydomain, www.$mydomain, ftp.$mydomain' [root@linuxbox ~]# postconf -e 'mynetworks = 192.168.10.0/24, 172.16.10.0/24, 127.0.0.0/8' [root@linuxbox ~]# postconf -e 'mailbox_command = /usr/bin/procmail -a "$EXTENSION"' [root@linuxbox ~]# postconf -e 'smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)'
Agregamos al final del archivo /etc/postfix/main.cf las opciones dadas a continuación. Para conocer el significado de cada una de ellas, recomendamos la lectura de la documentación acompañante.
biff = no append_dot_mydomain = no delay_warning_time = 4h readme_directory = no smtpd_tls_cert_file=/etc/pki/certs/desdelinux.fan.crt smtpd_tls_key_file=/etc/pki/private/desdelinux.fan.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination # Tamaño máximo del buzón 1024 megas = 1 gyga mailbox_size_limit = 1073741824 recipient_delimiter = + maximal_queue_lifetime = 7d header_checks = regexp:/etc/postfix/header_checks body_checks = regexp:/etc/postfix/body_checks # Cuentas que envian una copia del correo entrante a otra cuenta recipient_bcc_maps = hash:/etc/postfix/cuentas_reenviando_copia
Las siguientes líneas son importantes para determminar quién puede enviar correo y hacer relay hacia otros servidores, de forma que accidentalmente no configuremos un «open relay» que permita a usuarios no autenticados enviar correo. Debemos consultar las páginas de la ayuda del Postfix para entender que significa cada opción.
- ¡Cada cual debe declarar las opciones que entienda y necesite!.
smtpd_helo_restrictions = permit_mynetworks,
warn_if_reject reject_non_fqdn_hostname,
reject_invalid_hostname,
permit
smtpd_sender_restrictions = permit_sasl_authenticated,
permit_mynetworks,
warn_if_reject reject_non_fqdn_sender,
reject_unknown_sender_domain,
reject_unauth_pipelining,
permit
smtpd_client_restrictions = reject_rbl_client sbl.spamhaus.org,
reject_rbl_client blackholes.easynet.nl
# NOTA: La opción "check_policy_service inet:127.0.0.1:10023"
# habilita al programa Postgrey, y no la debemos incluir
# sino vamos a utilizar Postgrey
smtpd_recipient_restrictions = reject_unauth_pipelining,
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unauth_destination,
check_policy_service inet:127.0.0.1:10023,
permit
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_relay_restrictions = reject_unauth_pipelining,
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unauth_destination,
check_policy_service inet:127.0.0.1:10023,
permit
smtpd_helo_required = yes
smtpd_delay_reject = yes
disable_vrfy_command = yes
Creamos los archivos /etc/postfix/body_checks y /etc/postfix/cuentas_reenviando_copia, y modificamos el archivo /etc/postfix/header_checks.
- ¡Cada cual debe declarar las opciones que entienda y necesite!.
[root@linuxbox ~]# nano /etc/postfix/body_checks
# Si se modifica éste archivo, no es necesario
# ejecutar postmap <nombre de este archivo>
# Para probar las reglas, ejecutar como root:
# postmap -q 'super new v1agra' regexp:/etc/postfix/body_checks
# Debe devolver:
# REJECT Regla #2 Anti Spam del cuerpo del mensaje
/viagra/ REJECT Regla #1 Anti Spam del cuerpo del mensaje
/super new v[i1]agra/ REJECT Regla #2 Anti Spam del cuerpo del mensaje
[root@linuxbox ~]# nano /etc/postfix/cuentas_reenviando_copia
# Despues de modificado, se debe ejecutar:
# postmap /etc/postfix/cuentas_reenviando_copia
# y se crea o midifica el archivo:
# /etc/postfix/cuentas_reenviando_copia.db
# ------------------------------------------
# UNA sola cuenta para reenviar una copia BCC
# BCC = Black Carbon Copy
# Ejemplo:
# webadmin@desdelinux.fan buzz@desdelinux.fan
[root@linuxbox ~]# postmap /etc/postfix/cuentas_reenviando_copia
[root@linuxbox ~]# nano /etc/postfix/header_checks
# Añadir al final del archivo
# NO REQUIERE Postmap pues son Expresiones Regulares
/^Subject: =?big5?/ REJECT Chinese encoding not accepted by this server
/^Subject: =?EUC-KR?/ REJECT Korean encoding not allowed by this server
/^Subject: ADV:/ REJECT Advertisements not accepted by this server
/^From:.*\@.*\.cn/ REJECT Sorry, Chinese mail not allowed here
/^From:.*\@.*\.kr/ REJECT Sorry, Korean mail not allowed here
/^From:.*\@.*\.tr/ REJECT Sorry, Turkish mail not allowed here
/^From:.*\@.*\.ro/ REJECT Sorry, Romanian mail not allowed here
/^(Received|Message-Id|X-(Mailer|Sender)):.*\b(AutoMail|E-Broadcaster|Emailer Platinum|Thunder Server|eMarksman|Extractor|e-Merge|from stealth[^.]|Global Messenger|GroupMaster|Mailcast|MailKing|Match10|MassE-Mail|massmail\.pl|News Breaker|Powermailer|Quick Shot|Ready Aim Fire|WindoZ|WorldMerge|Yourdora|Lite)\b/ REJECT No mass mailers allowed.
/^From: "spammer/ REJECT
/^From: "spam/ REJECT
/^Subject:.*viagra/ DISCARD
# Extensiones peligrosas
/name=[^>]*\.(bat|cmd|exe|com|pif|reg|scr|vb|vbe|vbs)/ REJECT REJECT No aceptamos adjuntos con esas extensiones
Comprobamos la sintaxis, reiniciamos Apache y Postifx, y habilitamos e iniciamos al Dovecot
[root@linuxbox ~]# postfix check [root@linuxbox ~]# [root@linuxbox ~]# systemctl restart httpd [root@linuxbox ~]# systemctl status httpd [root@linuxbox ~]# systemctl restart postfix [root@linuxbox ~]# systemctl status postfix [root@linuxbox ~]# systemctl status dovecot ● dovecot.service - Dovecot IMAP/POP3 email server Loaded: loaded (/usr/lib/systemd/system/dovecot.service; disabled; vendor preset: disabled) Active: inactive (dead) [root@linuxbox ~]# systemctl enable dovecot [root@linuxbox ~]# systemctl start dovecot [root@linuxbox ~]# systemctl restart dovecot [root@linuxbox ~]# systemctl status dovecot
Comprobaciones a nivel de consola
- Es muy importante antes de continuar con la instalación y configuración de otros programas, hacer las comprobaciones mínimas necesarias de los servicios SMTP y POP.
Locales desde el propio servidor
Enviamos un correo al usuario local legolas.
[root@linuxbox ~]# echo "Hola. Este es un mensaje de prueba"|mail -s "Prueba" legolas
Comprobamos el buzón de legolas.
[root@linuxbox ~]# openssl s_client -crlf -connect 127.0.0.1:110 -starttls pop3
Después del mensaje ¡Dovecot está Listo! procedemos:
--- +OK ¡Dovecot está Listo! USER legolas +OK PASS legolas +OK Logged in. STAT +OK 1 559 LIST +OK 1 messages: 1 559 . RETR 1 +OK 559 octets Return-Path: <root@desdelinux.fan> X-Original-To: legolas Delivered-To: legolas@desdelinux.fan Received: by desdelinux.fan (Postfix, from userid 0) id 7EA22C11FC57; Mon, 22 May 2017 10:47:10 -0400 (EDT) Date: Mon, 22 May 2017 10:47:10 -0400 To: legolas@desdelinux.fan Subject: Prueba User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-Id: <20170522144710.7EA22C11FC57@desdelinux.fan> From: root@desdelinux.fan (root) Hola. Este es un mensaje de prueba . QUIT DONE [root@linuxbox ~]#
Remotas desde un equipo de la LAN
Enviemos otro mensaje a legolas desde otro equipo de la LAN. Observemos que NO es estrictamente necesaria la seguridad TLS dentro de la Red PYME.
buzz@sysadmin:~$ sendemail -f buzz@deslinux.fan \ -t legolas@desdelinux.fan \ -u "Hola" \ -m "Saludos Legolas de tu amigo Buzz" \ -s mail.desdelinux.fan -o tls=no May 22 10:53:08 sysadmin sendemail[5866]: Email was sent successfully!
Si intentamos conectarnos mediante telnet desde un host de la LAN -o desde Internet, por supuesto- al Dovecot, sucederá lo siguiente debido a que inhabilitamos la autenticación en texto plano:
buzz@sysadmin:~$ telnet mail.desdelinux.fan 110Trying 192.168.10.5...
Connected to linuxbox.desdelinux.fan.
Escape character is '^]'.
+OK ¡Dovecot está Listo!
user legolas
-ERR [AUTH] Plaintext authentication disallowed on non-secure (SSL/TLS) connections.
quit
+OK Logging out
Connection closed by foreign host.
buzz@sysadmin:~$
Debemos hacerlo mediante openssl. La salida completa del comando sería:
buzz@sysadmin:~$ openssl s_client -crlf -connect mail.desdelinux.fan:110 -starttls pop3 CONNECTED(00000003) depth=0 C = CU, ST = Cuba, L = Habana, O = DesdeLinux.Fan, OU = Entusiastas, CN = *.desdelinux.fan, emailAddress = buzz@desdelinux.fan verify error:num=18:self signed certificate verify return:1 depth=0 C = CU, ST = Cuba, L = Habana, O = DesdeLinux.Fan, OU = Entusiastas, CN = *.desdelinux.fan, emailAddress = buzz@desdelinux.fan verify return:1 --- Certificate chain 0 s:/C=CU/ST=Cuba/L=Habana/O=DesdeLinux.Fan/OU=Entusiastas/CN=*.desdelinux.fan/emailAddress=buzz@desdelinux.fan i:/C=CU/ST=Cuba/L=Habana/O=DesdeLinux.Fan/OU=Entusiastas/CN=*.desdelinux.fan/emailAddress=buzz@desdelinux.fan --- Server certificate -----BEGIN CERTIFICATE----- MIICyzCCAjSgAwIBAgIJAKUHI/2ZD+MeMA0GCSqGSIb3DQEBBQUAMIGbMQswCQYD VQQGEwJDVTENMAsGA1UECBMEQ3ViYTEPMA0GA1UEBxMGSGFiYW5hMRcwFQYDVQQK Ew5EZXNkZUxpbnV4LkZhbjEUMBIGA1UECxMLRW50dXNpYXN0YXMxGTAXBgNVBAMU ECouZGVzZGVsaW51eC5mYW4xIjAgBgkqhkiG9w0BCQEWE2J1enpAZGVzZGVsaW51 eC5mYW4wHhcNMTcwNTIyMjAwODEwWhcNMTgwNTIyMjAwODEwWjCBmzELMAkGA1UE BhMCQ1UxDTALBgNVBAgTBEN1YmExDzANBgNVBAcTBkhhYmFuYTEXMBUGA1UEChMO RGVzZGVMaW51eC5GYW4xFDASBgNVBAsTC0VudHVzaWFzdGFzMRkwFwYDVQQDFBAq LmRlc2RlbGludXguZmFuMSIwIAYJKoZIhvcNAQkBFhNidXp6QGRlc2RlbGludXgu ZmFuMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7wckAiNNfYSz5hdePzKuZ m2MMuhGDvwrDSPDEcVutznbZSgJ9bvTo445TR+Bnk+OZ80lujS2hP+nBmqxzJbpc XR7E9eWIXxr4fP4HpRrCA8NxlthEsapVMSHW+lnPBqF2b/Bt2eYyR7gJhtlP6gRG V57MmgL8BdYAJLvxqxDIxQIDAQABoxUwEzARBglghkgBhvhCAQEEBAMCBkAwDQYJ KoZIhvcNAQEFBQADgYEAAuYU1nIXTbXtddW+QkLskum7ESryHZonKOCelfn2vnRl 8oAgHg7Hbtg/e6sR/W9m3DObP5DEp3lolKKIKor7ugxtfA4PBtmgizddfDKKMDql LT+MV5/DP1pjQbxTsaLlZfveNxfLRHkQY13asePy4fYJFOIZ4OojDEGQ6/VQBI8= -----END CERTIFICATE----- subject=/C=CU/ST=Cuba/L=Habana/O=DesdeLinux.Fan/OU=Entusiastas/CN=*.desdelinux.fan/emailAddress=buzz@desdelinux.fan issuer=/C=CU/ST=Cuba/L=Habana/O=DesdeLinux.Fan/OU=Entusiastas/CN=*.desdelinux.fan/emailAddress=buzz@desdelinux.fan --- No client certificate CA names sent Server Temp Key: ECDH, secp384r1, 384 bits --- SSL handshake has read 1342 bytes and written 411 bytes --- New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384 Server public key is 1024 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES256-GCM-SHA384 Session-ID: C745B4A0236204E16234CB15DC9CDBC3D084125FF5989F5DB6C5295BF4E2D73A Session-ID-ctx: Master-Key: 1904D204C564B76361CEA50373F8879AF793AF7D7506C04473777F6F3503A9FD919CD1F837BC67BFF29E309F352526F5 Key-Arg : None Krb5 Principal: None PSK identity: None PSK identity hint: None TLS session ticket lifetime hint: 300 (seconds) TLS session ticket: 0000 - 4e 3a f8 29 7a 4f 63 72-ee f7 a6 4f fc ec 7e 1c N:.)zOcr...O..~. 0010 - 2c d4 be a8 be 92 2e ae-98 7e 87 6d 45 c5 17 a8 ,........~.mE... 0020 - db 3a 86 80 df 8b dc 8d-f8 1f 68 6e db a7 e3 86 .:........hn.... 0030 - 08 35 e5 eb 98 b8 a4 98-68 b1 ea f7 72 f7 c1 79 .5......h...r..y 0040 - 89 4a 28 e3 85 a4 8b da-e9 7a 29 c7 77 bf 22 0d .J(......z).w.". 0050 - bd 5c f6 61 8c a1 14 bd-cb 31 27 66 7a dc 51 28 .\.a.....1'fz.Q( 0060 - b7 de 35 bd 2b 0f d4 ec-d3 e0 14 c8 65 03 b1 35 ..5.+.......e..5 0070 - 38 34 f8 de 48 da ae 31-90 bd f6 b0 e6 9c cf 19 84..H..1........ 0080 - f5 42 56 13 88 b0 8c db-aa ee 5a d7 1b 2c dd 71 .BV.......Z..,.q 0090 - 7a f1 03 70 90 94 c9 0a-62 e5 0f 9c bf dc 3c a0 z..p....b.....<. Start Time: 1495484262 Timeout : 300 (sec) Verify return code: 18 (self signed certificate) --- +OK ¡Dovecot está Listo! USER legolas +OK PASS legolas +OK Logged in. LIST +OK 1 messages: 1 1021 . RETR 1 +OK 1021 octets Return-Path: <buzz@deslinux.fan> X-Original-To: legolas@desdelinux.fan Delivered-To: legolas@desdelinux.fan Received: from sysadmin.desdelinux.fan (gateway [172.16.10.1]) by desdelinux.fan (Postfix) with ESMTP id 51886C11E8C0 for <legolas@desdelinux.fan>; Mon, 22 May 2017 15:09:11 -0400 (EDT) Message-ID: <919362.931369932-sendEmail@sysadmin> From: "buzz@deslinux.fan" <buzz@deslinux.fan> To: "legolas@desdelinux.fan" <legolas@desdelinux.fan> Subject: Hola Date: Mon, 22 May 2017 19:09:11 +0000 X-Mailer: sendEmail-1.56 MIME-Version: 1.0 Content-Type: multipart/related; boundary="----MIME delimiter for sendEmail-365707.724894495" This is a multi-part message in MIME format. To properly display this message you need a MIME-Version 1.0 compliant Email program. ------MIME delimiter for sendEmail-365707.724894495 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Saludos Legolas de tu amigo Buzz ------MIME delimiter for sendEmail-365707.724894495-- . QUIT +OK Logging out. closed buzz@sysadmin:~$
Squirrelmail
Squirrelmail es un cliente web escrito totalmente en PHP. Incluye soporte PHP nativo para los protocolos IMAP y SMTP, y brinda una máxima compatibilidad con los diferentes navegadores en uso. Se ejecuta correctamente sobre cualquier servidor IMAP. Tiene toda la funcionalidad que Usted necesita de un cliente de correo que incluye soporte MIME, libreta de direcciones y gestión de carpetas.
[root@linuxbox ~]# yum install squirrelmail
[root@linuxbox ~]# service httpd restart
[root@linuxbox ~]# nano /etc/squirrelmail/config.php
$domain = 'desdelinux.fan';
$imapServerAddress = 'mail.desdelinux.fan';
$imapPort = 143;
$smtpServerAddress = 'desdelinux.fan';
[root@linuxbox ~]# service httpd reload
Registro DNS Send Policy Framenwork o SPF
En el artículo Servidor DNS Autoritario NSD + Shorewall vimos en que la Zona «desdelinux.fan» quedaba configurada de la forma siguiente:
root@ns:~# nano /etc/nsd/desdelinux.fan.zone $ORIGIN desdelinux.fan. $TTL 3H @ IN SOA ns.desdelinux.fan. root.desdelinux.fan. ( 1 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum or ; Negative caching time to live ; @ IN NS ns.desdelinux.fan. @ IN MX 10 mail.desdelinux.fan. @ IN TXT "v=spf1 a:mail.desdelinux.fan -all" ; ; Registro para resolver consultas dig desdelinux.fan @ IN A 172.16.10.10 ; ns IN A 172.16.10.30 mail IN CNAME desdelinux.fan. chat IN CNAME desdelinux.fan. www IN CNAME desdelinux.fan. ; ; Registros SRV relativos al XMPP _xmpp-server._tcp IN SRV 0 0 5269 desdelinux.fan. _xmpp-client._tcp IN SRV 0 0 5222 desdelinux.fan. _jabber._tcp IN SRV 0 0 5269 desdelinux.fan.
En ella se declara el registro:
@ IN TXT "v=spf1 a:mail.desdelinux.fan -all"
Para tener el mismo parámetro configurado para la Red PYME o LAN, debemos modificar el archivo de configuración del Dnsmasq de la forma siguiente:
# Registros TXT. Podemos declarar también un registro SPF txt-record=desdelinux.fan,"v=spf1 a:mail.desdelinux.fan -all"
Después, reiniciamos el servicio:
[root@linuxbox ~]# service dnsmasq restart [root@linuxbox ~]# service dnsmasq status [root@linuxbox ~]# host -t TXT mail.desdelinux.fan mail.desdelinux.fan is an alias for desdelinux.fan. desdelinux.fan descriptive text "v=spf1 a:mail.desdelinux.fan -all"
Certificados Auto Firmados y el Apache o httpd
Aunque su navegador le indique que «El propietario de mail.desdelinux.fan ha configurado su sitio web de manera incorrecta. Para evitar que su información sea robada, Firefox no ha conectado con este sitio web», el certificado generado anterioremnte ES VALIDO, y permitirá que las credenciales entre el cliente y el servidor viajen encriptadas, después que aceptemos el certificado.
Si Usted lo desea, y como una forma de unificar los certificados, puede declarar para el Apache los mismos certificados que declaró para el Postfix, lo cual es correcto.
[root@linuxbox ~]# nano /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/tls/certs/desdelinux.fan.crt
SSLCertificateKeyFile /etc/pki/tls/private/desdelinux.fan.key
[root@linuxbox ~]# service httpd restart
[root@linuxbox ~]# service httpd status
Grupo Diffie-Hellman
El tema de la Seguridad se hace más difícil cada día en la Internet. Uno de los ataques mas comunes sobre conexiones SSL, es el Logjam y para defenderse de él es necesario añadir parámetros no estándares a la configuración del SSL. Para ello existe la RFC-3526 «More Modular Exponential (MODP) Diffie-Hellman groups for Internet Key Exchange (IKE)«.
[root@linuxbox ~]# cd /etc/pki/tls/
[root@linuxbox tls]# openssl dhparam -out private/dhparams.pem 2048
[root@linuxbox tls]# chmod 600 private/dhparams.pem
Acorde a la versión de Apache que tengamos instalada, haremos uso del Grupo Diffie-Helman del archivo /etc/pki/tls/dhparams.pem. Si se trata de una versión 2.4.8 o posterior, entonces tendremos que agregar al archivo /etc/httpd/conf.d/ssl.conf la siguiente línea:
SSLOpenSSLConfCmd DHParameters "/etc/pki/tls/private/dhparams.pem"
La versión de Apache que estamos utilizando es la:
[root@linuxbox tls]# yum info httpd
Complementos cargados:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Paquetes instalados
Nombre : httpd
Arquitectura : x86_64
Versión : 2.4.6
Lanzamiento : 45.el7.centos
Tamaño : 9.4 M
Repositorio : installed
Desde el repositorio : Base-Repo
Resumen : Apache HTTP Server
URL : http://httpd.apache.org/
Licencia : ASL 2.0
Descripción :The Apache HTTP Server is a powerful, efficient, and extensible
: web server.
Como tenemos una versión anterior a la 2.4.8, agregamos al final del certificado CRT antes generado, el contenido del Grupo Diffie-Helman:
[root@linuxbox tls]# cat private/dhparams.pem >> certs/desdelinux.fan.crt
Si Usted desea comprobar que los parámetros DH fueron correctamente adicionados al certificado CRT, ejecute los siguientes comandos:
[root@linuxbox tls]# cat private/dhparams.pem -----BEGIN DH PARAMETERS----- MIIBCAKCAQEAnwfWSlirEuMwJft0hgAdB0km9d3qGGiErRXPfeZU+Tqp/ZFOCdzP /O6NeXuHI4vnsTDWEAjXmpRzq/z1ZEWQa6j+l1PgTgk2XqaMViD/gN+sFPnx2EmV keVcMDqG03gnmCgO9R4aLYT8uts5T6kBRhvxUcrk9Q7hIpGCzGtdgwaVf1cbvgOe 8kfpc5COh9IxAYahmNt+5pBta0SDlmoDz4Rk/4AFXk2mjpDYoizaYMPeIInGUzOv /LE6Y7VVRY/BJG9EZ5pVYJPCruPCUHkhvm+r9Tt56slk+HE2d52uFRSDd2FxK3n3 cN1vJ5ogsvmHayWUjVUA18LLfGSxEFsc4wIBAg== -----END DH PARAMETERS----- [root@linuxbox tls]# cat certs/desdelinux.fan.crt -----BEGIN CERTIFICATE----- MIIGBzCCA++gAwIBAgIJANd9FLCkDBfzMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD VQQGEwJDVTENMAsGA1UECAwEQ3ViYTEPMA0GA1UEBwwGSGFiYW5hMRcwFQYDVQQK DA5EZXNkZUxpbnV4LkZhbjEUMBIGA1UECwwLRW50dXNpYXN0YXMxFzAVBgNVBAMM DmRlc2RlbGludXguZmFuMSIwIAYJKoZIhvcNAQkBFhNidXp6QGRlc2RlbGludXgu ZmFuMB4XDTE3MDUyMjE0MDQ1MloXDTIyMDUyMTE0MDQ1MlowgZkxCzAJBgNVBAYT AkNVMQ0wCwYDVQQIDARDdWJhMQ8wDQYDVQQHDAZIYWJhbmExFzAVBgNVBAoMDkRl c2RlTGludXguRmFuMRQwEgYDVQQLDAtFbnR1c2lhc3RhczEXMBUGA1UEAwwOZGVz ZGVsaW51eC5mYW4xIjAgBgkqhkiG9w0BCQEWE2J1enpAZGVzZGVsaW51eC5mYW4w ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCn5MkKRdeFYiN+xgGdsRn8 sYik9X75YnJcbeZrD90igfPadZ75ehtfYIxxOS+2U+omnFgr/tCKYUVJ50seq/lB idcLP4mt7wMrMZUDpy1rlWPOZGKkG8AdStCYI8iolvJ4rQtLcsU6jhRzEXsZxfOb O3sqc71yMIj5qko55mlsEVB3lJq3FTDQAY2PhXopJ8BThW1T9iyl1HlYpxj7OItr /BqiFhxbP17Fpd3QLyNiEl+exVJURYZkvuZQqVPkFAlyNDh5I2fYfrI9yBVPBrZF uOdRmT6jv6jFxsBy9gggcy+/u1nhlKssLBEhyaKfaQoItFGCAmevkyzdl1LTYDPY ULi79NljQ1dSwWgraZ3i3ACZIVO/kHcOPljsNxE8omI6qNFWqFd1qdPH5S4c4IR1 5URRuwyVNffEHKaCJi9vF9Wn8LVKnN/+5zZGRJA8hI18HH9kF0A1sCNj1KKiB/xe /02wTzR/Gbj8pkyO8fjVBvd/XWI8EMQyMc1gvtIAvZ00SAB8c1NEOCs5pt0Us6pm 1lOkgD6nl90Dx9p805mTKD+ZcvRaShOvTyO3HcrxCxOodFfZQCuHYuQb0dcwoK2B yOwL77NmxNH1QVJL832lRARn8gpKoRAUrzdTSTRKmkVrOGcfvrCKhEBsJ67Gq1+T YDLhUiGVbPXXR9rhAyyX2QIDAQABo1AwTjAdBgNVHQ4EFgQURGCMiLVLPkjIyGZK UrZgMkO0X8QwHwYDVR0jBBgwFoAURGCMiLVLPkjIyGZKUrZgMkO0X8QwDAYDVR0T BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAdy1tH1DwfCW47BNJE1DW8Xlyp+sZ uYTMOKfNdnAdeSag1WshR6US6aCtU6FkzU/rtV/cXDKetAUIzR50aCYGTlfMCnDf KKMZEPjIlX/arRwBkvIiRTU1o3HTniGp9d3jsRWD/AvB3rSus4wfuXeCoy7Tqc9U FaXqnvxhF8/ptFeeCeZgWu16zyiGBqMj4ZaQ7RxEwcoHSd+OByg8E9IE2cYrWP2V 6P7hdCXmw8voMxCtS2s++VRd1fGqgGxXjXT8psxmY2MrseuTM2GyWzs+18A3VVFz UXLD2lzeYs638DCMXj5/BMZtVL2a4OhMSYY4frEbggB3ZgXhDDktUb7YhnBTViM3 2sgJJOSTltOgAnyOPE0CDcyktXVCtu3PNUc+/AB3UemI9XCw4ypmTOMaIZ2Gl6Uo pmTk41fpFuf8pqW3ntyu43lC5pKRBqhit6MoFGNOCvFYFBWcltpqnjsWfY2gG/b5 8D5HsedueqkAsVblKPBFpv1BB9X0HhBUYsrz8jNGZGbkgR4XQoIoLbQZHEB35APU 4yT1Lzc3jk34yZF5ntmFt3wETSWwJZ+0cYPw7n4E6vbs1C7iKAMQRVy+lI5f8XYS YKfrieiPPdmQ22Zm2Tbkqi4zjJBWmstrw6ezzAQNaaAkiOiJIwvXU81KYsN37THh Nf0/JsEjPklCugE= -----END CERTIFICATE----- -----BEGIN DH PARAMETERS----- MIIBCAKCAQEAnwfWSlirEuMwJft0hgAdB0km9d3qGGiErRXPfeZU+Tqp/ZFOCdzP /O6NeXuHI4vnsTDWEAjXmpRzq/z1ZEWQa6j+l1PgTgk2XqaMViD/gN+sFPnx2EmV keVcMDqG03gnmCgO9R4aLYT8uts5T6kBRhvxUcrk9Q7hIpGCzGtdgwaVf1cbvgOe 8kfpc5COh9IxAYahmNt+5pBta0SDlmoDz4Rk/4AFXk2mjpDYoizaYMPeIInGUzOv /LE6Y7VVRY/BJG9EZ5pVYJPCruPCUHkhvm+r9Tt56slk+HE2d52uFRSDd2FxK3n3 cN1vJ5ogsvmHayWUjVUA18LLfGSxEFsc4wIBAg== -----END DH PARAMETERS-----
Después de éstos cambios, debemos reiniciar los servicios del Postfix y del httpd:
[root@linuxbox tls]# service postfix restart [root@linuxbox tls]# service postfix status [root@linuxbox tls]# service httpd restart [root@linuxbox tls]# service httpd status
Puede que la inclusión del Grupo Diffie-Helman en nuestros certificados TLS hagan que la conexión mediante HTTPS sea un poco mas lenta, pero la adición de la seguridad bien vale la pena.
Comprobando Squirrelmail
DESPUÉS que los certificados estén correctamente generados y de que comprobemos su correcto funcionamiento como hicimos mediante los comandos de consola, apunte su navegador preferido a la URL http://mail.desdelinux.fan/webmail y se conectará con el cliente web después de aceptar el certificado correpondiente. Observe que, a pesar de que especifique el protocolo HTTP, será redireccionado hacia HTTPS, y se debe a la configuración que por defecto ofrece CentOS para el Squirrelmail. Vea el archivo /etc/httpd/conf.d/squirrelmail.conf.
Sobre los buzones de los usuarios
Dovecot crea los buzones IMAP en la carpeta home de cada usuario:
[root@linuxbox ~]# ls -la /home/legolas/mail/.imap/ total 12 drwxrwx---. 5 legolas mail 4096 may 22 12:39 . drwx------. 3 legolas legolas 75 may 22 11:34 .. -rw-------. 1 legolas legolas 72 may 22 11:34 dovecot.mailbox.log -rw-------. 1 legolas legolas 8 may 22 12:39 dovecot-uidvalidity -r--r--r--. 1 legolas legolas 0 may 22 10:12 dovecot-uidvalidity.5922f1d1 drwxrwx---. 2 legolas mail 56 may 22 10:23 INBOX drwx------. 2 legolas legolas 56 may 22 12:39 Sent drwx------. 2 legolas legolas 30 may 22 11:34 Trash
También se guardan en /var/mail/<usuario>
[root@linuxbox ~]# less /var/mail/legolas From MAILER_DAEMON Mon May 22 10:28:00 2017 Date: Mon, 22 May 2017 10:28:00 -0400 From: Mail System Internal Data <MAILER-DAEMON@linuxbox> Subject: DON'T DELETE THIS MESSAGE -- FOLDER INTERNAL DATA Message-ID: <1495463280@linuxbox> X-IMAP: 1495462351 0000000008 Status: RO This text is part of the internal format of your mail folder, and is not a real message. It is created automatically by the mail system software. If deleted, important folder data will be lost, and it will be re-created with the data reset to initial values. From root@desdelinux.fan Mon May 22 10:47:10 2017 Return-Path: <root@desdelinux.fan> X-Original-To: legolas Delivered-To: legolas@desdelinux.fan Received: by desdelinux.fan (Postfix, from userid 0) id 7EA22C11FC57; Mon, 22 May 2017 10:47:10 -0400 (EDT) Date: Mon, 22 May 2017 10:47:10 -0400 To: legolas@desdelinux.fan Subject: Prueba User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-Id: <20170522144710.7EA22C11FC57@desdelinux.fan> From: root@desdelinux.fan (root) X-UID: 7 Status: RO Hola. Este es un mensaje de prueba From buzz@deslinux.fan Mon May 22 10:53:08 2017 Return-Path: <buzz@deslinux.fan> X-Original-To: legolas@desdelinux.fan Delivered-To: legolas@desdelinux.fan Received: from sysadmin.desdelinux.fan (gateway [172.16.10.1]) by desdelinux.fan (Postfix) with ESMTP id C184DC11FC57 for <legolas@desdelinux.fan>; Mon, 22 May 2017 10:53:08 -0400 (EDT) Message-ID: <739874.219379516-sendEmail@sysadmin> From: "buzz@deslinux.fan" <buzz@deslinux.fan> To: "legolas@desdelinux.fan" <legolas@desdelinux.fan> Subject: Hola Date: Mon, 22 May 2017 14:53:08 +0000 X-Mailer: sendEmail-1.56 MIME-Version: 1.0 Content-Type: multipart/related; boundary="----MIME delimiter for sendEmail-794889.899510057 /var/mail/legolas
Resumen de la miniserie PAM
Hemos visto el núcleo de un Mailserver y hecho un poco de énfasis en la seguridad. Esperamos que el artículo sirva como Punto de Entrada a tema tan complicado y susceptible de cometer errores como es la implementación de un Servidor de Correo de forma manual.
Utilizamos la autenticación local de usuarios porque si leímos bien el archivo /etc/dovecot/conf.d/10-auth.conf, veremos que al final se incluye –por defecto– el archivo de autenticación de los usuarios del sistema !include auth-system.conf.ext. Percisamente éste archivo nos dice en su cabecera que:
[root@linuxbox ~]# less /etc/dovecot/conf.d/auth-system.conf.ext
# Authentication for system users. Included from 10-auth.conf.
#
# <doc/wiki/PasswordDatabase.txt>
# <doc/wiki/UserDatabase.txt>
# PAM authentication. Preferred nowadays by most systems.
# PAM is typically used with either userdb passwd or userdb static.
# REMEMBER: You'll need /etc/pam.d/dovecot file created for PAM
# authentication to actually work. <doc/wiki/PasswordDatabase.PAM.txt>
passdb {
driver = pam
# [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>]
# [cache_key=<key>] [<service name>]
#args = dovecot
}
Y existe el otro archivo /etc/pam.d/dovecot:
[root@linuxbox ~]# cat /etc/pam.d/dovecot #%PAM-1.0 auth required pam_nologin.so auth include password-auth account include password-auth session include password-auth
¿Qué intentamos transmitir sobre la autenticación PAM?.
- CentOS, Debian, Ubuntu, y muchas otras distribuciones Linux, instalan al Postifx y al Dovecot con la autenticación local habilitada de forma predeterminada.
- Muchos artículos en Internet utilizan el MySQL -y mas recientemente MariaDB- para almacenar a los usuarios y a otros datos concernientes a un Mailserver. PERO se trata de servidores para MILES DE USUARIOS, y no para una clásica Red PYME con -acaso- cientos de usuarios.
- La autenticación mediante PAM es necesaria y suficiente para brindar servicios de redes siempre y cuando éstos se ejecuten en un solo servidor como hemos visto en ésta miniserie.
- Se puede mapear a los usuarios almacenados en una base de datos LDAP como si fueran usuarios locales, y emplear la autenticación PAM para brindar servicios de redes desde diferentes servidores Linux que actúen como clientes LDAP del servidor de autenticación central. De ésta forma, trabajaríamos con las credenciales de los usuarios almacenados en la base de datos del servidor central LDAP, y NO sería imprescindible mantener una base de datos con usuarios locales.
¡Hasta la próxima aventura!
Creeme que en la práctica esto es un proceso que a más de un sysadmin le da dolores de cabezas fuertes, estoy convencido que a futuro será una guía de referencia para todo aquel que desee gestionar de manera propia sus correos electronicos, caso práctico que se convierte en un abc a la hora de integrar postfix, dovecot, squirrelmail..
Muchas gracias por tu loable aporte,
¿Por qué no usar Mailpile, si de seguridad se trata, con PGP? También Roundcube tiene una interface mucho más intuitiva y también puede integrar PGP.
Hace 3 dias que leí el post, se ma paso darte las gracias. No tengo pensado instalar un servidor de correo pero siempre es de ayuda ver la creación de certificados, util para otras aplicaciones y dificilmente caducan estos tutoriales (mas aun cuando usas centOS).
Manuel Cillero: Gracias por enlazar hacia y desde tu blog éste artículo que es el núcleo mínimo de un servidor de correo basado en Postfix y Dovecot.
Lagarto: Como siempre, tu evaluación es muy bien recibida. Gracias.
Darko: En casi todos mis artículo expreso mas o menos que «Cada cual implemente los servicios con los programas que mas le agrade». Gracias por comentar.
Martin: Gracias a ti también por leer el artículo y espero te sea ayuda en tu trabajo.
Tremendo artículo amigo Federico. Mil Gracias por tan buen tuto.
exelente aunque yo usaria «usuarios virtuales» para no tener que crear un usuario de sistema cada vez que agrego un correo, gracias aprendi un monton de cosas nuevas y este es el tipo de post que estaba esperando
Buenas tardes,
Se animarian en hacer uno igual con fedora directory server + postifx + dovecot + thunderbird o outlook .
Tengo una parte pero estoy pegado, con gusto compartiria el documento a la comunidad @desdelinux
No imaginé que llegara a mas de 3000 visitas!!!
¡Saludos Lagarto!
Excelente tutorial colega.
Podrías hacerlo para Debian 10 con usuarios de un Active Directory montado sobre Samba4???
Imagino que sería casi lo mismo pero cambiando el tipo de autenticación.
Muy interesante el apartado que dedicas a la creación de los certificados autofirmados.