SafeChildren Banner

Havoc Oracle Solaris Experts

viernes, 10 de septiembre de 2010

Modelo de Seguridad de Solaris: RBAC, Roles y Privilegios - Parte 3

Introducción
Continuando con nuestra serie de RBAC, Roles y Privilegios y cómo podemos aplicarlo a nuestras instalaciones. En esta ocasión vamos a ver el privilegio sys_time -aplicado a una zona- que nos permite modificar el reloj del sistema desde una zona no global

Creación de la Zona No Global
Vamos ver esta funcionalidad, para ello vamos a crear una Zona en Solaris 10 utilizando los privilegios por defecto, y comprobaremos cómo no al intentar acceder al reloj del sistema desde la zona -utilizando ntp- nos mostrará un error de acceso denegado, así:
Can't set time of day: Not owner
Puedes encontrar información en este post sobre Cómo Gestionar Zonas en Solaris y sus comandos básicos si tienes dudas. A continuación os muestro la configuración de la zona, para que observéis como no tiene ningún tipo parámetro extraño utilizando el comando <zonecfg -z _nombre_zona info>
# zonecfg -z testzone info
zonename: testzone
zonepath: /opt/zones/testzone
brand: native
autoboot: false
bootargs:
pool:
limitpriv:
scheduling-class:
ip-type: shared
inherit-pkg-dir:
        dir: /lib
inherit-pkg-dir:
        dir: /platform
inherit-pkg-dir:
        dir: /sbin
inherit-pkg-dir:
        dir: /usr
net:
        address: 192.168.1.178/24
        physical: eri0
        defrouter: 192.168.1.254
Configuración de NTP sobre una Zona No Global
Vamos a ver Cómo activar la sincronización de Reloj con NTP en Solaris 10 dentro de una Zona, sin haber modificado los privilegios de la misma, vamos a verlo
# echo "server hora.rediris.es" > /etc/inet/ntp.conf
# svcadm enable ntp
# svcs ntp
STATE          STIME    FMRI
online         11:29:42 svc:/network/ntp:default
# dmesg |tail
Sep  6 11:29:42 testzone ntpdate[10804]: [ID 471322 daemon.error] Can't set time of day: Not owner
Sep  6 11:29:42 testzone xntpd[10872]: [ID 702911 daemon.notice] xntpd 3-5.93e+sun 03/08/29 16:23:05 (1.4)
Sep  6 11:29:42 testzone xntpd[10872]: [ID 272427 daemon.error] sched_setscheduler(): Not owner
Como vemos, el servicio <ntp> no ha podido sincronizar la hora del sistema, porque no dispone de privilegios para hacerlo.
 
Configuración de la Zona No Global: Añadiendo el Privilegio sys_time
Para permitir que una zona no global pueda acceder al reloj del sistema y modificarlo, es necesario incluir en el set de privilegios sys_time, además de los privilegios default. Para ello, utilizaremos la propiedad limitpriv y asignaremos los valores: default y sys_time
# zonecfg -z testzone
zonecfg:testzone> set limitpriv=default,sys_time
zonecfg:testzone> verify
zonecfg:testzone> commit
zonecfg:testzone> exit
# zoneadm -z testzone reboot
# zlogin testzone

# zonename
testzone
# ntpdate hora.rediris.es
 6 Sep 11:45:13 ntpdate[9280]: adjust time server 130.206.3.166 offset 0.007079 sec
# svcadm enable ntp
# svcs ntp
STATE          STIME    FMRI
online         12:02:13 svc:/network/ntp:default
# dmesg|tail
Sep  6 12:02:13 testzone xntpd[9831]: [ID 301315 daemon.notice] tickadj = 5, tick = 10000, tvu_maxslew = 495, est. hz = 100
Sep  6 12:02:13 testzone xntpd[9831]: [ID 266339 daemon.notice] using kernel phase-lock loop 0041, drift correction 0.00000
Como vemos, en esta ocasión el comando <ntpdate> no ha producido un error de privilegios -puesto que le hemos asignado el privilegio sys_time en la zona- y nos ha permitido cambiar la hora del sistema desde una zona no global




<< RBAC, Roles y Privilegios en Solaris 10 - Parte 1
<< RBAC, Roles y Privilegios en Solaris 10 - Parte 2 




Conclusiones
Continuando con nuestra serie de artículos, hoy a tocado el turno a un nuevo privilegio que nos permite acceder al cambio de hora desde una zona no global. Podemos utilizar este sistema para mantener una zona que acceda a un servidor de hora interno y esté fuertemente protegida -utilizando IP Exclusive e IPFilter- ya que la hora del sistema es un tema muy importante y debemos tener muy protegido.


Referencias

No hay comentarios:

Publicar un comentario en la entrada