====== Funciones de seguridad ====== {{indexmenu_n>70}} ===== Sistema de autenticación con terceros ===== ==== Local Pandora FMS ==== Autenticación por defecto, indica que se realizará usando la base de datos interna de Pandora FMS. Los usuarios tipo //superadmin// por seguridad siempre se autentican de esta manera, el resto de los tipos de autenticaciones tiene la opción local como respaldo (//fallback//). ==== Active Directory ==== * **Automatically create remote users**: Habilita o deshabilita la creación automática de usuarios remotos. Esta opción hace posible que Pandora FMS cree los usuarios automáticamente una vez inicien sesión (//login//). Si activa esta característica, los siguientes campos quedarán disponibles: * **Save Password**: Si se activa permite guardar las contraseñas de AD en la base local de Pandora FMS. * **Advanced Configuration AD**: Si se activa esta opción, se utilizará la configuración de Advanced Permissions AD. * **Advanced Permissions AD**: Lista los permisos avanzados que se han añadido en **Add new permissions**. * **Automatically create profile**: Estando activa la creación automática de usuarios remotos, este campo hace posible asignarles un tipo de perfil a estos usuarios que se crean automáticamente. Los perfiles por defecto son: ''Chief Operator'', ''Group Coordinator'', ''Operator (Read)'', ''Operator (Write)'' y ''Pandora Administrator''. Los diferentes perfiles disponibles pueden ser consultados en la sección **Profiles → Profile management**. * **Automatically create profile group**: Al activar la creación automática de usuarios remotos, este campo hace posible asignarles un grupo a estos usuarios creados automáticamente. Los diferentes grupos disponibles pueden ser consultados en la sección **Profiles → Manage agent groups**. * **Automatically create profile tags**: Estando activa la creación automática de usuario remotos, este campo hace posible asignarle un perfil a un grupo las //tags// deseadas.Los diferentes grupos disponibles pueden ser consultados en la sección **Profiles → Module tags**. * **Autocreate blacklist**: Permite escribir una lista de usuarios, separados por comas, //que no serán creados// de forma automática. * **Active Directory server**: Defina aquí la ruta en la que se encuentra nuestro servidor de Active Directory. * **Active Directory port**: Para definir el número de puerto del servidor Active Directory (''389'' por defecto). * **Start TLS**: Define si usará o no el protocolo Transport Layer Security (TLS) en las comunicaciones entre el cliente y el servidor. * **Enable secondary active directory**: Permite activar la conexión a un servidor **Active Directory** secundario. Cuenta con los mismos campos que el servidor primario pero además admite configurar un tiempo de expiración en la búsqueda (**AD search timeout**) con un valor por defecto de 5 segundos. * **Double authentication**: Los usuarios puedan elegir si habilitar la autenticación en dos pasos en sus cuentas. Para saber más sobre cómo activar la autenticación en dos pasos en una cuenta, puede leer esta [[#ks1_4|sección]]. Esta funcionalidad necesita que el servidor y los dispositivos móviles tengan una fecha y hora sincronizadas y lo más precisas posibles. * En el caso de que haya un cambio de contraseña en los usuarios, MS Windows® permite usar por defecto una contraseña antigua durante 60 minutos en Active Directory. Al ser una configuración de Windows, este comportamiento es totalmente ajeno a Pandora FMS. Si se desea modificar puede consultar la documentación de [[https://docs.microsoft.com/en-us/troubleshoot/windows-server/windows-security/new-setting-modifies-ntlm-network-authentication|Microsoft®]]. * **Domain**: Definir el dominio que utilizará el Active Directory. * Por ahora los grupos primarios de un usuario no son compatibles con la configuración de grupos avanzada en la Autenticación AD. * Si utiliza la configuración avanzada (**Advanced Configuration AD**) asegúrese de colocar la ruta completa en el campo dominio (**Domain**). * Si la instalación de Active Directory es con LDAP, debe definir aquí la ruta LDAP en la que se encuentra el servidor, generalmente: ldap://addc.mydomain ==== LDAP ==== * Para poder hacer uso de este modo, es necesario tener instaladas las dependencias de **OpenLDAP**. * Dependiendo del sistema operativo utilizado, se utilizan los comandos: yum install openldap* O apt install ldap-utils Campos importantes: * **LDAP server** y **Secondary LDAP server**: Dependiendo del entorno, se puede acceder directamente al servidor (''x.x.x.x.x'') o por medio de un enlace (''ldap://x.x.x.x.x'', ''ldaps://x.x.x.x.x''). * **Login attribute** y **Secondary Login attribute**: Ambos campos diferencian mayúsculas de minúsculas. * **Fallback to local authentication**: Si se activa esta opción, se hará una [[#ks1_1|autenticación local]] si falla LDAP. Los usuarios administradores siempre tendrán //fallback// habilitado, para no perder acceso a Pandora FMS en caso de fallo del sistema de autenticación remota. * **Automatically create remote users**: Habilita o deshabilita la creación automática de usuarios remotos. Esta opción hace posible que Pandora FMS cree los usuarios automáticamente una vez hayan iniciado sesión (//login//) usando LDAP. * **LDAP function**: A la hora de realizar las búsquedas en LDAP, podrá elegir si utilizar la función nativa de PHP o utilizar el comando local ''ldapsearch''. Se recomienda utilizar el comando local para aquellos entornos que tengan un LDAP con muchos elementos. **Advanced Config LDAP** * Si la opción está activada, aparecerá una lista con todos los permisos avanzados guardados. Se pueden añadir nuevos permisos seleccionando el perfil, los grupos y las //tags//, junto al filtro de atributos. Si el usuario cumple con alguno de esos atributos (por ejemplo, una unidad organizativa o grupo concreto) entonces se creará el usuario. * //Si esta opción no está activada//, se utilizará el sistema sencillo para la creación de perfiles de usuario (**Automatically create profile**, **Automatically create profile group**, **Automatically create profile tags**, **Automatically assigned no hierarchy**). Los atributos deben tener el siguiente formato **Nombre_atributo = Valor_Atributo**. * **Enable secondary LDAP**: Si habilita un servidor LDAP secundario como respaldo, aparecerán campos respectivos del servidor LDAP principal. * **Double authentication**: Los usuarios podrán elegir si habilitar la [[#ks1_4|autenticación en dos pasos en sus cuentas]]. Esta funcionalidad necesita que el servidor y los dispositivos móviles tengan una fecha y hora sincronizadas y lo más precisas posibles. ==== Doble autenticación ==== Para usar esta funcionalidad el administrador deberá activar la doble autenticación en la sección de autenticación de la configuración global de la Consola web de Pandora FMS: **Management → Settings → System Settings → Authentication → Double authentication**. Los usuarios podrán elegir si habilitar la //autenticación en dos pasos// en sus cuentas accediendo a la opción de [[:es:documentation:pandorafms:management_and_operation:11_managing_and_administration#ks1_1_1|Editar mi usuario]]. Esta funcionalidad necesita que el **PFMS server** y los [[:es:documentation:pandorafms:technical_annexes:36_pfms_double_authentication_setup|dispositivos móviles]] tengan una fecha y hora sincronizadas de manera precisa. También será necesario disponer de la aplicación generadora de códigos en un dispositivo móvil de la propiedad de cada usuario. Para conocer dónde y cómo descargarla: [[https://support.google.com/accounts/answer/1066447]] Se puede utilizar el sistema de notificación PFMS para informar a todos los usuarios que está disponible 2FA y cómo activar esta opción personal. Para ello en el menú **Operation → Workspace → Messages → New message** se redacta un mensaje al grupo ''All'' similar a este: {{ :wiki:pfms-management-settings-system_settings-authentication-2fa_enabled_notification.png }} **Force 2FA for all users is enabled** Al habilitar esta opción forzará a que todos los usuarios utilicen la //autenticación en dos pasos//. Para desactivar esta funcionalidad a un usuario específico sin usar la interfaz gráfica, [[:es:documentation:pandorafms:technical_reference:03_anexo_cli#disable_double_auth|un administrador puede utilizar la CLI PFMS]]. ==== SAML ==== **SAML** es un estándar abierto de autentificación y autorización basado en XML. **Pandora FMS** puede funcionar como un proveedor de servicios con su proveedor de identidades SAML interno. Los administradores siempre se autentican contra la base de datos local. Se deben realizar varios pasos antes de poder utilizar SAML en Pandora FMS. Tener [[#ks1_5_1|operativo un servidor SAML]]. [[#ks1_5_2|Configurar los parámetros en Pandora FMS]]. Si se piensa utilizar [[#ks1_5_3|Azure con SAML]] se debe configurar dicho servidor. === Instalación de SimpleSAMLphp 2.0 === Se debe descargar SimpleSAMLphp versión 2.3.2 desde su repositorio oficial: https://github.com/simplesamlphp/simplesamlphp/releases/tag/v2.3.2 y luego ser //subido// al **Pandora FMS server**. Si el PFMS server tiene acceso a internet y se tiene instalado **wget** se puede utilizar directamente la siguiente instrucción en un directorio que cuente con espacio y derechos de escritura suficientes: wget https://github.com/simplesamlphp/simplesamlphp/releases/download/v2.3.2/simplesamlphp-2.3.2-full.tar.gz Se descomprime el fichero descargado con: tar -xvf simplesamlphp-2.3.2-full.tar.gz Se debe mover la carpeta a su ubicación final: mv simplesamlphp-2.3.2 /opt/simplesamlphp Para compartir acceso con Pandora FMS se debe crear el siguiente enlace simbólico: ln -s /opt/simplesamlphp/public /var/www/html/simplesamlphp **SimpleSAMLphp** basa su configuración en el fichero ''config.php'', con la ubicación final establecida anteriormente se ha de renombrar la plantilla que trae por defecto: mv /opt/simplesamlphp/config/config.php.dist /opt/simplesamlphp/config/config.php Así se tendrá la ruta completa del fichero de configuración en: /opt/simplesamlphp/config/config.php Con el editor de texto favorito se deben editar los siguientes valores (nótese que se debe cambiar ''pandora.local'' por la URL de la Consola web PFMS y conservar la coma al final de línea ya que forman parte de bloques de instrucciones): 'baseurlpath' => 'https://pandora.local/simplesamlphp/', 'auth.adminpassword' => '123pandora', \\ * Nótese que se debe cambiar ''pandora.local'' por la URL de la Consola web PFMS y conservar la coma al final de línea ya que forma parte de bloques de instrucciones. * Siempre se debe utilizar una URL en vez de una dirección IP. Siguiendo el caso dado de utilizar ''pandora.local'', esta "//URL//" se debe agregar al fichero ''/etc/hosts'' del sistema operativo (nota: solamente con propósitos didácticos). \\ Se deben guardar los cambios del fichero y salir a la línea de comandos. Si aparece algún error de permisos por cache se debe aplicar: mkdir /var/cache/simplesamlphp && chown apache:apache /var/cache/simplesamlphp \\ De esta manera se tendrá a **SimpleSAMLphp** en funcionamiento y deberá mostrar la página de inicio en la URL ''https://pandora.local/simplesamlphp/'' (se debe cambiar ''pandora.local'' por la URL de la Consola web PFMS). Dado el caso que se conecte por HTTP en vez de HTTPS la autenticación fallará hasta que el servidor web Apache sea configurado para que //escuche// por el puerto seguro ''443''. {{ wiki:pfms-saml-image_28.png }} Para acceder a la administración de **SimpleSAMLphp** primero se debe cambiar el nombre al fichero ''authsources.php.dist'': mv /opt/simplesamlphp/config/authsources.php.dist /opt/simplesamlphp/config/authsources.php Se copia el contenido del XML descargado anteriormente, se pega y se procesa; esto generará un texto de configuración para PHP el cual se copia **y se adiciona** al final del fichero ''/opt/simplesamlphp/metadata/saml20-idp-remote.php''. Luego se deben guardar dichas adiciones y salir de la edición de dicho fichero. Se accede mediante la URL ''https://pandora.local/simplesamlphp/admin/'' (se debe cambiar ''pandora.local'' por la URL de la Consola web PFMS): {{ wiki:pfms-saml-image_30.png }} === Configuración de Pandora FMS con SAML === Menú **Management → Setup → Setup → Authentication** \\ \\ \\ \\ \\ Los siguientes valores son comunes: {{ :wiki:pfms-saml-image_70.png }} Algunos campos notables: * **Atributo de nombre de grupo SAML**: Campo SAML donde buscar el nombre del grupo (mientras auto crear usuarios remotos esté activado) * **Ruta de SimpleSAML**: Directorio donde se encuentra la carpeta ''simplesamlphp''. * **SAML de origen**: Nombre ''authsource'', por ejemplo ''example-userpass''. * **Atributo de correo SAML**: Campo SAML donde buscar el correo electrónico del usuario (mientras auto crear usuarios remotos esté activado) Antes de configurar cualquier servicio de terceros con SAML se recomienda [[:es:documentation:pandorafms:technical_annexes:45_simplesaml_2_local|probar y comprobar localmente]] la instalación realizada de **SimpleSAMLphp**. === Configuración de Azure con SAML === En servicios de Azure® se debe acceder a la sección **Extra ID**: {{ wiki:pfms-saml-image_40.png }} Acceder luego a **Aplicaciones empresariales**: {{ wiki:pfms-saml-image_42.png }} Se crea una nueva aplicación (o se utiliza una existente): {{ wiki:pfms-saml-image_44.png }} Se accede a inicio de sesión único: {{ wiki:pfms-saml-image_46.png }} Se edita la configuración básica de SAML: {{ wiki:pfms-saml-image_48.png }} Se rellenan los siguientes campos, con el ID para la aplicación, la dirección del **SimpleSAMLphp** instalado (se debe cambiar ''pandora.local'' por la URL de la Consola web PFMS) y la dirección donde Azure® tendrá que redirigir cuando se cierre la sesión: {{ wiki:pfms-saml-image_50.png }} Descargar el fichero XML con metadatos de federación el cual se utilizará más adelante: {{ wiki:pfms-saml-image_52.png }} Y por último se debe guardar el ID que de el paso anterior y la URL del identificador extra: {{ wiki:pfms-saml-image_54.png }} == Configuración en SimpleSAMLphp == Se debe editar el fichero ''/opt/simplesamlphp/config/authsources.php'' con los siguientes valores: {{ wiki:pfms-saml-image_56.png }} Y por la página web de SimpleSAMLphp al menú de **Federación** y luego a la sección **Herramientas** para la conversión de XML a PHP: {{ wiki:pfms-saml-image_58.png }} Se debe cambiar el nombre de ''saml20-idp-remote.php.dist'' con: mv /opt/simplesamlphp/metadata/saml20-idp-remote.php.dist /opt/simplesamlphp/metadata/saml20-idp-remote.php Se copia el contenido del XML descargado anteriormente, se pega y se procesa; esto generará un texto de configuración para PHP el cual se copia y pega dentro del fichero ''/opt/simplesamlphp/config/authsources.php'' **reemplazando todo su contenido**. Si todo está correcto se procede a realizar una prueba: {{ wiki:pfms-saml-image_60.png }} Obteniendo el siguiente resultado: {{ wiki:pfms-saml-image_62.png }} El correo electrónico e identificador de usuario se puede sacar de los atributos que devuelve Azure® en la prueba realizada anteriormente: {{ :wiki:pfms-saml-image_80.png }} {{ :wiki:pfms-saml-image_90.png }} Para la configuración avanzada se puede profundizar el //mapeo// de propiedades o seleccionar una por defecto en caso de no hacer coincidencia con ninguna: {{ :wiki:pfms-saml-image_100.png }} ===== Cifrado de contraseñas ===== Pandora FMS permite cifrar las contraseñas que se almacenan en la base de datos. La clave de cifrado se genera a partir de una contraseña proporcionada por el usuario **y no se guarda en la base de datos** (//ni la contraseña ni la clave//), de modo que las contraseñas no se puedan recuperar de un volcado de la base de datos. Una vez el usuario configura la contraseña, el cifrado funciona de forma transparente para el usuario. Si se pierde la contraseña proporcionada por el usuario no podrá recuperar las contraseñas almacenadas en la base de datos de Pandora FMS. Guárdese en lugar seguro o hágase un respaldo (//backup//) de los ficheros ''config.php'' y ''pandora_server.conf''. ==== Detalles técnicos ==== Las contraseñas se cifran utilizando el cifrado Rijndael con bloques de 128 bits en modo ECB. Una clave de 256 bits se genera en el arranque a partir del MD5 de la contraseña configurada por el usuario. ==== Configuración en una instalación nueva de Pandora FMS ==== Para habilitar el cifrado de claves, **la contraseña se debe configurar tanto en el Servidor de Pandora FMS como en la Consola web.** Los pasos a seguir para el cifrado son los siguientes: * Detener el servidor, tanto en **Command Center (Metaconsola)** como en los **nodos**. * Actualizar los campos ''encryption_passphrase'' en ''/etc/pandora/pandora_server.conf'' y ''/var/www/html/pandora_console/include/config.php'', tanto en **Command Center (Metaconsola)** como en los **nodos**. $config["encryption_passphrase"]="your encryption passphrase"; * Lanzar el //script// de cifrado tanto en **Command Center (Metaconsola)** como en los **nodos**. /usr/bin/pandora_encrypt_db /etc/pandora/pandora_server.conf Se deberá reiniciar el servidor de Pandora FMS después de haber efectuado los cambios y haber lanzado el //script//. ==== Cambiando la contraseña de cifrado ==== Es posible cambiar la contraseña de cifrado en caso de que se haya visto comprometida. Primero se deben descifrar las contraseñas almacenadas en la base de datos: /usr/bin/pandora_encrypt_db -d /etc/pandora/pandora_server.conf A continuación, después de haber cambiado la contraseña de cifrado (como se describe en la sección para la [[#ks2|configuración en una instalación nueva]]), se pueden cifrar de nuevo: /usr/bin/pandora_encrypt_db /etc/pandora/pandora_server.conf A partir de 7.0 NG 739 se incluye el [[:es:documentation:pandorafms:management_and_operation:11_managing_and_administration#ks3|gestor de credenciales seguro]]. **Consulte la siguiente sección para finalizar correctamente este proceso.** **Gestor de credenciales:** En caso de disponer de una base de datos cifrada, para poder seguir utilizando el gestor de credenciales sin perder datos //será necesario descifrar todo// menos la tabla **tcredential_store**. Para ello ejecútense los siguientes comandos: /usr/bin/pandora_encrypt_db -d -m /etc/pandora/pandora_server.conf Con lo que quedará descifrado. Una vez descifrado, se volverá a cifrar de nuevo: /usr/bin/pandora_encrypt_db /etc/pandora/pandora_server.conf Si solo desea cifrar de cero, bastará con ejecutar el último comando. ==== Quitando la contraseña de cifrado ==== Se recomienda mantener de manera cifrada **toda** contraseña almacenada en Pandora FMS. * Detenga el servidor, tanto en **Command Center (Metaconsola)** como en los **nodos**. * Lanzar el //script// de descifrado tanto en **Command Center (Metaconsola)** como en los **nodos**. /usr/bin/pandora_encrypt_db -d /etc/pandora/pandora_server.conf * Comentar **encryption_passphrase** en ''/etc/pandora/pandora_server.conf'' y ''/var/www/html/pandora_console/include/config.php'' tanto en **Command Center (Metaconsola)** como en los **nodos**. # $config["encryption_passphrase"]="your encryption passphrase"; Se deberá reiniciar el servidor de Pandora FMS después de haber efectuado los cambios y haber lanzado el //script//. ===== Política de contraseñas de usuarios ===== Menú **Management → Settings → System Settings → Password policy** {{wiki:pfms-general_settings-password.png?nolink&21x21}}. \\ \\ \\ \\ \\ Para activar la política de contraseñas se debe tener perfil de administrador (**Pandora administrator**) o ser un **[[:es:documentation:pandorafms:introduction:03_glossary#superadmin|superadmin]]** . Campos importantes: * **Enable password policy**: Por defecto desactivada, al activarla se mostrarán el resto de los campos. * **Min. password size**: Por defecto cuatro caracteres el largo mínimo de contraseña. * **Password expiration**: Por defecto cero ''0'' días (contraseñas sin expiración). * **The password must include numbers**: La contraseña debe tener números, desactivado por defecto . * **The password must include symbols**: La contraseña debe tener símbolos, desactivado por defecto. * **Force password change on first login**: Forzar cambio de contraseña en el primer inicio de sesión después de la creación del usuario, desactivado por defecto. * **Block user if login fails** y **Number of failed login attempts**: Minutos (''5'' por defecto) que permanece bloqueado el usuario si consume el número máximo de intentos fallidos (''5'' intentos de manera predeterminada). * **Apply password policy to admin users**: Aplica la política de contraseñas también a usuarios administradores, //activado por defecto//. * **Enable password history** y **Compare to previous password**: Trabajan de manera conjunta para evitar que un usuario reutilice contraseñas. El primer //token// debe estar activado y el segundo debe ser mayor a cero (por defecto ''3''), de esta manera la nueva contraseña de un usuario se comparará con las contraseñas utilizadas anteriormente por el mismo usuario. * **Activate reset password**: Deshabilitado por defecto, si se activa permite solucionar el olvido de contraseñas por parte de los usuarios. * **Exclusion word list for passwords**: Permite agregar una lista de contraseñas explícitamente excluidas de su uso en Pandora FMS. ===== Log de auditoría ===== Menú **Management → Admin tools → System Audit Log**. \\ \\ \\ \\ \\ Pandora FMS guarda un //log// con todos los cambios y acciones de importancia producidos en la Consola de Pandora FMS. Allí se podrán ver una serie de entradas relacionadas con la actividad de la Consola, información sobre el usuario, tipo de acción, fecha y una pequeña descripción de los eventos registrados. {{ :wiki:pfms-management-admin_tools-system_audit_tools.png }} Se pueden filtrar cuales entradas a mostrar por diferentes criterios, incluyendo: acciones, usuario y dirección IP. Incluso se puede realizar una búsqueda de texto y determinar las horas máximas a buscar, con la opción de guardar dicho filtro si es de uso frecuente. [[:es:documentation:start|Volver al índice de la documentación de Pandora FMS]]