Vamos a establecer unas políticas de contraseñas mediante el comando samba-tool domain passwordsettings para los usuarios del dominio, de esta forma, reduciremos la posibilidad de que se usen contraseñas débiles.
Mencionar adicionalmente que a partir de Samba 4.9 es posible definir políticas de contraseña más particulares como se explican en este enlace, no obstante, usar esta funcionalidad tiene un aumento de recursos tal y como se menciona en el enlace, por lo que en mi caso concreto no haré uso de eas funcionalidad concreta.
Las políticas que definiré serán:
Habilitaré la complejidad de las contraseñas.
Estableceré un mínimo de 8 los caracteres que deberán tener las contraseñas.
Una contraseña tendrá una vigencia máxima de 6 meses.
A continuación las acciones a realizar para aplicar dichas políticas:
Verificamos las políticas en uso configuradas por defecto:
Password information for domain 'DC=icecrown,DC=es'
Password complexity: off
Store plaintext passwords: off
Password history length: 24
Minimum password length: 0
Minimum password age (days): 0
Maximum password age (days): 365
Account lockout duration (mins): 30
Account lockout threshold (attempts): 0
Reset account lockout after (mins): 30
Password information for domain 'DC=icecrown,DC=es'
Password complexity: on
Store plaintext passwords: off
Password history length: 24
Minimum password length: 8
Minimum password age (days): 0
Maximum password age (days): 180
Account lockout duration (mins): 30
Account lockout threshold (attempts): 0
Reset account lockout after (mins): 30
Finalmente, tratamos de crear un usuario con una contraseña débil para confirmar que las políticas están en funcionamiento:
SPF será el primero que implementaremos. El objetivo que trata de cubrir SPF es proteger nuestro dominio contra ataques de tipo spoofing y phishing. Básicamente crearemos un registro en nuestro DNS el cual indicará qué servidores pueden enviar correos desde nuestro dominio. Para más información, ver este otro enlace.
A través de esta web generaremos el registro DNS necesario para implementar este método de autenticación:
Creamos el registro de tipo TXT tanto en el módulo DNS como en el proveedor DNS - en mi caso, Route53 -:
Para Zentyal, vamos a DNS -> Domains -> TXT records:
Para Route 53:
Comprobamos la resolución del nuevo registro tanto interna como externamente:
DKIM será la siguiente implementación de seguridad que realizaremos. El objetivo de DKIM es que el receptor pueda verificar que el email recibido es legítimo. Los pasos de configuración necesarias las he sacado de aquí.
Instalamos los paquetes necesarios para la implementación de DKIM:
Creamos el archivo de configuración /etc/opendkim/KeyTable que tendrá el nombre del selector y la ruta a la clave privada encargada de firmar los correos electrónicos:
Usaremos también MXtoolbox para comprobar el registro:
Una vez confirmado el registro DNS, procederemos a configurar el servicio Postfix (SMTP) para que haga uso de este servicio. Para ello, añadimos las siguientes líneas al final del stub /etc/zentyal/stubs/mail/main.cf.mas:
## DKIM Configuration created on 19-02-2023 by Daniel
milter_protocol = 6
milter_default_action = accept
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = inet:127.0.0.1:8891
En caso de no tener dicho archivo, tendremos que ejecutar los siguientes comandos:
La última implementación que realizaremos será DMARC. Este mecanismo de autenticación se integrará con SPF y DKIM, por lo que será necesario haberlos implementarlo previamente.
A través de esta web generaremos el registro DNS necesario para implementar este método de autenticación:
Creamos el registro DNS de tipo TXT tanto en el servidor Zentyal como en el proveedor DNS:
Para el servidor Zentyal vamos a DNS -> Domains -> TXT records:
Para Route53:
Comprobamos la resolución del nuevo registro tanto interna como externamente:
El módulo de Webmail sirve su contenido a través del servicio Apache, el cual por defecto, muestra demasiada información, la cual puede ser usada para un posible ataque.
Por defecto, es posible obtener la versión de Ubuntu y Apache que usa el servicio web. Además, que la página por defecto de Apache es muy característica. Por lo tanto, procederemos a reducir la información que es posible obtener consultando al servicio y también, crearemos una página muy sencilla.
Modificamos los siguientes parámetros de configuración del archivo /etc/apache2/conf-enabled/security.conf para reducir la información del servicio: