Solaris dispone de una herramienta para comprobar el nivel de seguridad del servidor. La herramienta compliance analiza las vulnerabilidades del sistema y da recomendaciones de cómo solucionarlas. Las vulnerabilidades suelen ser servicios no utilizados que se pueden parar, buenas prácticas de configuración a aplicar o incluso configuraciones de red recomendadas frente a hackers.
Estándar de seguridad
El estándar de seguridad recomendado y, en muchos casos, obligatorio es el estándar PCI DSS (PCI Data Security Standard). No es necesario que nos miremos la documentación del estándar. La salida del comando nos da la información suficiente para corregir las vulnerabilidades y aplicar las best practices.
Los puntos que se revisan son los siguientes:
- Configuración del sistema operativo
- Revisión del sistema de ficheros
- Parámetros del kernel y de la red
- Servicios que deben estar activos
- Servicios que deben estar deshabilitados
- Acceso y mensajes de aviso
- Configuración de la auditoria del sistema
- Configuración de usuarios
En cada apartado se muestra una serie de puntos y si están correctos o no. Si están marcados como «fail» podemos pulsar en el texto y nos mostrará la explicación detallada de cómo resolverlo.
Ejecución del comando
La línea de comando es la siguiente:
compliance assess -b pci-dss
La ejecución dura varios minutos y realiza una revisión completa del sistema. El resultado se vuelca sobre la carpeta:
/var/share/compliance/assessments
Se crea una carpeta para cada assessment con una nomenclatura poco indicativa. Realmente se reconoce la carpeta por la fecha y hora a la que hemos realizado el assessment.
root@test:/var/share/compliance/assessments# ls -l
total 6
drwx--x--x 2 root root 7 Aug 1 2024 70935704-4fec-11ef-ba44-e7baa5b392e3
drwx--x--x 2 root root 7 Jan 28 17:47 c62697cc-dd94-11ef-bddb-e7baa5b392e3
root@test:/var/share/compliance/assessments#
Se puede ver que, la carpeta más reciente, se ha realizado el 28 de Enero. Si vemos el contenido el resultado se vuelca en varios formatos.
root@test:/var/share/compliance/assessments/c62697cc-dd94-11ef-bddb-e7baa5b392e3# ls -l
total 1144
-rw-r--r-- 1 root root 17568 Jan 28 17:47 log
-rw-r--r-- 1 root root 694240 Jan 28 17:47 report.html
-rw-r--r-- 1 root root 463491 Jan 28 17:47 results.xccdf.xml
-rw-r--r-- 1 root root 1712 Jan 28 17:47 state
root@test:/var/share/compliance/assessments/c62697cc-dd94-11ef-bddb-e7baa5b392e3#
El fichero recomendado es report.html ya que, la información, se muestra en un formato más amigable con recomendaciones sobre como aplicarlas.
Ejecución regular automática
Podemos configurar el servicio compliance que ejecuta el comando compliance con la regularidad que le indiquemos. Primero es necesario configurar el estándar de seguridad.
compliance set-policy -b pci-dss -p Solaris_PCI-DSS
compliance get-policy
Y, a continuación, configuramos el servicio. En este caso se realizará cada semana.
# svccfg -s compliance:default delcust
# svccfg -s compliance:default setprop scheduled/property = type: value
# svccfg -s compliance:default listprop scheduled
scheduled schedule
scheduled/frequency integer 1
scheduled/interval astring week
scheduled/day_of_week
scheduled/hour
scheduled/property type value
# svcadm refresh compliance:default
Por último arrancamos o refrescamos el servicio
# svcadm refresh compliance:default
# svcadm enable compliance:default
Podemos comprobar la siguiente ejecución con los siguientes comandos.
# svcs compliance:default
# svcs -o lrun,nrun compliance:default
En algunos casos, la ejecución del comando compliance, puede durar bastante por lo que es necesario incrementar el timeout del servicio, de otra manera el servicio pasaría a maintenance. El comando compliance no se interrumpe pero, el servicio, ya no se volvería a ejecutar más.
svccfg -s svc:/application/security/compliance:default setprop start/timeout_seconds=72000
Otra configuración recomendad es la selección del día de ejecución.
svccfg -s svc:/application/security/compliance:default setprop scheduled/day = astring: Thursday
Workaround selección del estándar
En versiones antiguas de solaris, aunque seleccionemos el estándar PCI, esta selección no se produce. Hay un workaround que implica la ejecución de los siguientes comandos:
# compliance tailor -t com
*** compliance tailor: can't open 'tailoring: com', initializing
tailoring:com> set benchmark=pci-dss
tailoring:com> set profile=Solaris_PCI-DSS
tailoring:com> pick
tailoring:com> exit
#