Esta página describe la configuración de seguridad recomendada para operar Fess de manera segura en entornos de producción.
Peligro
La Seguridad es Extremadamente Importante
En entornos de producción, se recomienda encarecidamente implementar todas las configuraciones de seguridad descritas en esta página. Descuidar la configuración de seguridad aumenta los riesgos de acceso no autorizado, fugas de datos y compromiso del sistema.
Configuraciones de Seguridad Obligatorias
Cambio de Contraseña de Administrador
Asegúrese de cambiar la contraseña de administrador predeterminada (admin / admin).
Procedimiento:
Inicie sesión en la pantalla de administración: http://localhost:8080/admin
Haga clic en «Usuario» → «Usuario»
Seleccione el usuario
adminConfigure una contraseña fuerte
Haga clic en el botón «Actualizar»
Nota
Una vez que haya cambiado la contraseña desde admin, no podrá volver a establecerla en un valor simple como admin (una lista negra de contraseñas de administrador está configurada mediante password.invalid.admin.passwords). También puede cambiar la contraseña inicial del usuario admin antes del primer inicio estableciendo index.user.initial_password en fess_config.properties.
Fess ofrece una función integrada que aplica los requisitos de longitud mínima/máxima y de tipos de caracteres de la contraseña. Configure las siguientes propiedades en fess_config.properties (los valores predeterminados se indican entre paréntesis):
password.min.length(valor predeterminado:8): Longitud mínima. Se recomienda 12 o más.password.max.length(valor predeterminado:100): Longitud máxima.password.require.uppercase(valor predeterminado:false): Requerir letras mayúsculas.password.require.lowercase(valor predeterminado:false): Requerir letras minúsculas.password.require.digit(valor predeterminado:false): Requerir dígitos.password.require.special.char(valor predeterminado:false): Requerir símbolos.
Nota
De forma predeterminada, la longitud mínima es 8 y todos los requisitos de tipo de carácter están deshabilitados. Para reforzar las contraseñas, configure explícitamente las propiedades anteriores. Tenga en cuenta que Fess no cuenta con una función de expiración de contraseñas (cambio periódico forzado); si desea aplicar cambios periódicos de contraseña como regla operativa, hágalo manualmente.
Habilitación del Plugin de Seguridad de OpenSearch
Procedimiento:
Elimine o comente la siguiente línea en
opensearch.yml:Configuración del plugin de seguridad:
Configuración de certificados TLS/SSL
Reinicie OpenSearch
Configure la conexión con OpenSearch en el lado de Fess.
Especifique la URL de conexión mediante la variable de entorno
SEARCH_ENGINE_HTTP_URL(editebin/fess.in.sho el archivo de entorno del servicio; el valor predeterminado proviene desearch_engine.http.urlenfess_config.properties):Especifique las credenciales mediante las siguientes propiedades en
fess_config.properties(no existen las variables de entornoSEARCH_ENGINE_USERNAME/SEARCH_ENGINE_PASSWORD):
Para más detalles, consulte OpenSearch Security Plugin.
Habilitación de HTTPS
La comunicación HTTP no está cifrada, lo que conlleva riesgos de escucha y manipulación. Asegúrese de usar HTTPS en entornos de producción.
Método 1: Uso de Proxy Inverso (Recomendado)
Coloque Nginx o Apache delante de Fess para realizar la terminación HTTPS.
Ejemplo de configuración de Nginx:
Método 2: Configurar HTTPS en Fess Mismo
Agregue lo siguiente a tomcat_config.properties:
Configuraciones de Seguridad Recomendadas
Configuración del Cortafuegos
Abra solo los puertos necesarios y cierre los puertos innecesarios.
Puertos que Deben Abrirse:
8080 (o 443 para HTTPS): Interfaz Web de Fess (si se requiere acceso externo)
22: SSH (solo para administración, desde direcciones IP confiables únicamente)
Puertos que Deben Cerrarse:
9200, 9300: OpenSearch (solo comunicación interna, bloquear acceso externo)
Ejemplo de configuración en Linux (firewalld):
Restricción de direcciones IP:
Configuración de Control de Acceso
Considere restringir el acceso a la pantalla de administración a direcciones IP específicas.
Ejemplo de restricción de acceso con Nginx:
Roles y Control de Acceso
Fess proporciona dos roles integrados:
admin: Rol de administrador que puede realizar todas las operaciones, incluida la pantalla de administración.guest: Rol asignado a los usuarios no autenticados (anónimos).
Cualquier otro rol se puede crear libremente desde la pantalla de administración. En Fess, un rol es una etiqueta que solo tiene un nombre y se utiliza principalmente para el control de acceso a los resultados de búsqueda (qué documentos puede ver un usuario). Un rol en sí no está vinculado a permisos administrativos concretos, como «gestionar configuraciones de rastreo» o «editar resultados de búsqueda».
Siguiendo el principio de mínimo privilegio, otorgue el rol de administrador (admin) únicamente a los usuarios que realizan tareas administrativas y no lo otorgue a los usuarios de búsqueda en general.
Procedimiento:
Haga clic en «Usuario» → «Rol» en la pantalla de administración
Cree los roles necesarios
Asigne roles a usuarios en «Usuario» → «Usuario»
Registro de Auditoría
El historial de operaciones del sistema, como la autenticación y las operaciones administrativas, se registra de forma predeterminada como registro de auditoría. El registro de auditoría se genera mediante el logger fess.log.audit definido en log4j2.xml, y su destino de salida predeterminado es audit.log.
Dado que está habilitado de forma predeterminada, no se requiere configuración adicional. Para personalizar el destino de salida o el nivel de registro, edite la siguiente definición en log4j2.xml:
Actualizaciones de Seguridad Periódicas
Aplique periódicamente actualizaciones de seguridad de Fess y OpenSearch.
Procedimiento Recomendado:
Verifique periódicamente la información de seguridad
Valide actualizaciones en entorno de prueba
Aplique actualizaciones en entorno de producción
Protección de Datos
Cifrado de Respaldos
Los datos de respaldo pueden contener información confidencial. Cifre y almacene los archivos de respaldo.
Ejemplo de respaldo cifrado:
Mejores Prácticas de Seguridad
Principio de Mínimo Privilegio
No ejecutar Fess y OpenSearch como usuario root
Ejecutar con cuenta de usuario dedicada
Otorgar privilegios mínimos del sistema de archivos
Aislamiento de Red
Colocar OpenSearch en red privada
Usar VPN o red privada para comunicación interna
Colocar solo la interfaz Web de Fess en DMZ
Auditorías de Seguridad Periódicas
Revisar periódicamente los registros de acceso
Detectar patrones de acceso anormales
Realizar escaneos de vulnerabilidades periódicamente
Configuración de Encabezados de Seguridad
Según sea necesario, configure encabezados de seguridad en Nginx o Apache:
Lista de Verificación de Seguridad
Antes de implementar en entorno de producción, verifique la siguiente lista de verificación:
Configuración Básica
[ ] Contraseña de administrador cambiada
[ ] HTTPS habilitado
[ ] Número de puerto predeterminado cambiado (opcional)
Seguridad de Red
[ ] Puertos innecesarios cerrados en el cortafuegos
[ ] Acceso a pantalla de administración restringido por IP (si es posible)
[ ] Acceso a OpenSearch restringido solo a red interna
Control de Acceso
[ ] Roles y permisos de acceso configurados adecuadamente (otorgar el rol de administrador solo a los usuarios necesarios)
[ ] Cuentas de usuario innecesarias eliminadas
[ ] Política de contraseñas configurada
Monitoreo y Registros
[ ] Se ha confirmado que el registro de auditoría está habilitado
[ ] Período de retención de registros configurado
[ ] Sistema de monitoreo de registros implementado (si es posible)
Respaldo y Recuperación
[ ] Programación periódica de respaldos configurada
[ ] Datos de respaldo cifrados
[ ] Procedimientos de restauración validados
Gestión de Actualizaciones y Parches
[ ] Sistema para recibir notificaciones de actualizaciones de seguridad implementado
[ ] Procedimientos de actualización documentados
[ ] Sistema para validar actualizaciones en entorno de prueba implementado
Respuesta a Incidentes de Seguridad
Procedimientos de respuesta en caso de incidente de seguridad:
Detección de Incidente
Verificar registros
Detectar patrones de acceso anormales
Verificar comportamiento anormal del sistema
Respuesta Inicial
Identificar alcance del impacto
Prevenir expansión del daño (como detener servicios relevantes)
Preservar evidencia
Investigación y Análisis
Análisis detallado de registros
Identificar ruta de intrusión
Identificar datos que pueden haber sido filtrados
Recuperación
Corregir vulnerabilidades
Recuperar sistema
Fortalecer monitoreo
Respuesta Posterior
Crear informe de incidente
Implementar medidas de prevención de recurrencia
Informar a partes interesadas
Información de Referencia
Si tiene preguntas o problemas relacionados con la seguridad, contacte:
Soporte Comercial: https://www.n2sm.net/