Seguridad

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
#