Guía del administrador de sistemas HP-UX

Anuncio
Guía del administrador de sistemas
HP-UX: Administración de la seguridad
HP-UX 11i versión 3
Nº de referencia de HP: 5992-3422
Publicado: Marzo de 2008
Edición: 4
© Copyright 2008 Hewlett-Packard Development Company L.P
Avisos legales
La información que contiene este documento está sujeta a cambios sin previo aviso.
Hewlett-Packard no emite ninguna garantía de ningún tipo en relación con este documento, incluidas, a título enunciativo pero no
limitativo, las garantías implícitas de comerciabilidad e idoneidad para un fin concreto. Hewlett-Packard no será responsable de
los errores que este documento contenga ni de los daños directos, indirectos, especiales, fortuitos o emergentes relacionados con
el suministro, el rendimiento o el uso de este material.
Garantía
Se puede obtener una copia de las condiciones específicas de la garantía correspondientes al producto y los repuestos
de Hewlett-Packard en la Oficina de Ventas y Asistencia al Cliente local.
Licencia del Gobierno de EE. UU.
Software informático con derecho de propiedad registrado. Se precisa una licencia válida de
HP en relación con la posesión, la utilización o la copia del mencionado software. De acuerdo con la normativa FAR 12.211 y
12.212, se concede al Gobierno de EE. UU. la licencia del Software Informático Comercial, de la Documentación sobre el Software
Informático y de los Datos Técnicos relativos a Artículos Comerciales conforme a los términos de la licencia comercial estándar del
proveedor.
Avisos de marcas comerciales
UNIX® es una marca registrada en Estados Unidos y otros países cuya licencia se concede en
exclusiva por mediación de The Open Group. VERITAS® es una marca registrada de Symantec Corporation.
Agradecimientos
Este producto incluye software desarrollado por Apache Software Foundation. Esta documentación se basa en
información obtenida de Apache Software Foundation (http://www.apache.org).
Este producto incluye software desarrollado por OpenSSL Project para su uso en OpenSSL Toolkit (http://www.openssl.org).
Tabla de contenido
Acerca de este documento.........................................................................................................11
I Protección de los sistemas..........................................................................................17
1 Instalación del entorno operativo HP-UX de forma segura......................................................19
1.1 Consideraciones sobre la seguridad de la instalación....................................................19
1.2 Prevención de infracciones de seguridad durante el proceso de inicio.............................20
1.3 Habilitación de la seguridad de inicio de sesión para el usuario root..............................21
1.4 Uso de la autenticación de inicio para impedir el acceso no autorizado..........................21
1.5 Definición de las opciones de seguridad en el momento de la instalación........................21
1.6 Instalación de parches de seguridad...........................................................................22
1.7 Consejos sobre la seguridad posterior a la instalación para la realización de copias de
seguridad y la recuperación............................................................................................23
2 Administración de la seguridad de los usuarios y del sistema.................................................25
2.1 Administración del acceso de los usuarios....................................................................25
2.1.1 Supervisión de las cuentas de usuario..................................................................25
2.1.2 Supervisión de las cuentas de invitado.................................................................26
2.1.3 Creación de cuentas de usuario de aplicaciones...................................................27
2.1.4 Administración de las cuentas de grupo...............................................................28
2.2 Autenticación de los usuarios durante el inicio de sesión...............................................28
2.2.1 Explicación del proceso de inicio de sesión..........................................................28
2.2.2 Comprobación de los archivos de seguimiento de inicios de sesión (btmp y
wtmp).....................................................................................................................29
2.2.2.1 Ejemplos del comando «last».....................................................................30
2.2.3 Comprobación de quién ha iniciado una sesión...................................................31
2.3 Autenticación de los usuarios con los módulos PAM......................................................31
2.3.1 Descripción general..........................................................................................31
2.3.2 Bibliotecas PAM...............................................................................................33
2.3.3 Configuración de todo el sistema con /etc/pam.conf............................................34
2.3.4 Ejemplo del archivo /etc/pam.conf....................................................................35
2.3.5 Archivo de configuración de usuarios /etc/pam_user.conf.....................................36
2.3.6 Ejemplos: Cómo funcionan los módulos PAM para el inicio de sesión.....................37
2.4 Administración de las contraseñas..............................................................................38
2.4.1 Responsabilidades del administrador del sistema..................................................38
2.4.2 Responsabilidades del usuario...........................................................................39
2.4.3 Criterios para establecer una contraseña correcta................................................39
2.4.4 Modificación del archivo de contraseñas /etc/passwd.........................................40
2.4.4.1 Ejemplos de uso del comando passwd........................................................40
2.4.4.2 Formato del archivo /etc/passwd..............................................................41
Tabla de contenido
3
2.4.5 Archivo de contraseñas ocultas /etc/shadow.......................................................41
2.4.6 Eliminación de las seudocuentas y protección de los subsistemas clave en el archivo
/etc/passwd............................................................................................................43
2.4.7 Inicio de sesión seguro con HP-UX Secure Shell....................................................44
2.4.8 Seguridad de las contraseñas almacenadas en el servicio NIS...............................44
2.4.9 Seguridad de las contraseñas almacenadas en un servidor de directorio LDAP........45
2.5 Definición de los atributos de seguridad del sistema.....................................................45
2.5.1 Configuración de los atributos para todo el sistema...............................................46
2.5.2 Configuración de los atributos por usuario...........................................................47
2.5.2.1 Ejemplos de definición de atributos para usuarios específicos con
userdbset............................................................................................................48
2.5.2.2 INACTIVITY_MAXDAYS y el archivo de contraseñas ocultas...........................48
2.5.3 Solución de problemas con la base de datos de usuarios......................................49
2.6 Manejo de los programas setuid y setgid....................................................................49
2.6.1 Motivos por los que los programas setuid y setgid representan un riesgo.................50
2.6.2 Definición de los números de identificación.........................................................51
2.6.3 Pautas para acotar la influencia de setuid...........................................................51
2.7 Prevención de ataques de desbordamiento del búfer en la pila......................................52
2.8 Protección de los terminales y las estaciones de trabajos sin vigilancia............................53
2.8.1 Control del acceso con /etc/inittab y niveles de ejecución.....................................53
2.8.2 Protección de los archivos de dispositivo de terminales.........................................54
2.8.3 Configuración del bloqueo de pantalla...............................................................54
2.8.3.1 Configuración de la variable TMOUT..........................................................55
2.8.3.2 Configuración del administrador de bloqueos del entorno CDE......................55
2.9 Protección contra el acceso de dispositivos remotos al sistema.......................................55
2.9.1 Control del acceso con los archivos /etc/dialups y /etc/d_passwd.........................56
2.10 Protección de los titulares de inicio de sesión..............................................................57
2.11 Protección de la cuenta de usuario root......................................................................58
2.11.1 Supervisión del acceso a la cuenta de usuario root...............................................59
2.11.2 Uso de Restricted SMH Builder para el acceso limitado de superusuario.................60
2.11.3 Revisión del acceso de superusuario...................................................................60
3 HP-UX Bastille..................................................................................................................61
3.1 Características y ventajas..........................................................................................61
3.2 Instalación de HP-UX Bastille......................................................................................62
3.3 Uso de HP-UX Bastille...............................................................................................62
3.3.1 Uso interactivo de HP-UX Bastille.........................................................................63
3.3.2 Uso no interactivo de HP-UX Bastille....................................................................64
3.3.3 Configuración de un sistema..............................................................................64
3.4 Uso de HP-UX Bastille para revocar cambios................................................................67
3.5 Ubicación de los archivos..........................................................................................67
3.6 Consejos y solución de problemas..............................................................................69
3.7 Eliminación de HP-UX Bastille....................................................................................70
4
Tabla de contenido
4 HP-UX Standard Mode Security Extensions...........................................................................71
4.1 Descripción general..................................................................................................71
4.2 Atributos de seguridad y la base de datos de usuarios..................................................72
4.2.1 Atributos de seguridad del sistema......................................................................72
4.2.2 Configuración de los atributos para todo el sistema..............................................73
4.2.3 Componentes de la base de datos de usuarios....................................................73
4.2.3.1 Archivos de configuración..........................................................................73
4.2.3.2 Comandos..............................................................................................74
4.2.3.3 Atributos.................................................................................................74
4.2.3.4 Páginas de manual..................................................................................75
4.2.4 Configuración de los atributos de la base de datos de usuarios.............................75
4.2.5 Solución de problemas con la base de datos de usuarios......................................76
5 Administración de la seguridad relativa al acceso remoto......................................................77
5.1 Descripción general de Internet Services y los servicios de acceso remoto........................77
5.1.1 Seguridad del comando ftp................................................................................78
5.1.2 Seguridad del ftp anónimo.................................................................................79
5.1.3 Denegación del acceso mediante el archivo /etc/ftpd/ftpusers...............................80
5.1.4 Otras soluciones de seguridad para simulación.....................................................80
5.2 El demonio inetd......................................................................................................81
5.2.1 Seguridad del demonio inetd.............................................................................82
5.2.1.1 Denegación o concesión de acceso mediante el archivo
/var/adm/inetd.sec............................................................................................83
5.3 Protección contra la simulación con TCP Wrappers.......................................................83
5.3.1 Características adicionales de TCP Wrappers.......................................................84
5.3.2 TCP Wrappers no se puede utilizar con servicios de RPC.......................................84
5.4 Secure Internet Services.............................................................................................84
5.5 Control de un dominio administrativo..........................................................................85
5.5.1 Comprobación de las configuraciones de los permisos en los archivos de control
de red.....................................................................................................................86
5.6 Seguridad de las sesiones remotas mediante HP-UX Secure Shell (SSH)...........................87
5.6.1 Características de seguridad clave de HP-UX Secure Shell......................................87
5.6.2 Componentes de software de HP-UX Secure Shell.................................................88
5.6.3 Ejecución de HP-UX Secure Shell........................................................................89
5.6.3.1 Ejecución del cliente ssh............................................................................89
5.6.3.2 Ejecución del cliente sftp...........................................................................90
5.6.3.3 Ejecución del cliente scp...........................................................................91
5.6.4 Separación de privilegios con HP-UX Secure Shell................................................91
5.6.5 Autenticación con HP-UX Secure Shell.................................................................92
5.6.5.1 GSS-API..................................................................................................92
5.6.5.2 Autenticación con claves públicas..............................................................93
5.6.5.3 Autenticación con claves públicas y basada en host.....................................93
5.6.5.4 Autenticación con contraseñas...................................................................94
Tabla de contenido
5
5.6.6 Protocolos de comunicación..............................................................................94
5.6.7 HP-UX Secure Shell y el sistema HP-UX................................................................94
5.6.8 Tecnologías asociadas......................................................................................95
5.6.9 Requisito del generador de números aleatorios robusto.........................................96
5.6.10 Compatibilidad con TCP Wrappers...................................................................96
5.6.11 Cárcel de directorio chroot...............................................................................96
II Protección de los datos..............................................................................................97
6 Seguridad de los sistemas de archivos................................................................................99
6.1 Control del acceso a los archivos................................................................................99
6.1.1 Definición de permisos de acceso a los archivos..................................................101
6.1.2 Definición de la propiedad de los archivos.........................................................101
6.1.3 Protección de los directorios.............................................................................102
6.1.4 Protección de los archivos relacionados con las cuentas de usuario.......................102
6.1.5 Localización y reparación de daños de un archivo con el comando fsck.................103
6.2 Definición de listas de control de acceso...................................................................104
6.3 Uso de las listas ACL del sistema de archivos HFS......................................................104
6.3.1 Listas ACL del sistema de archivos HFS y comandos y llamadas de HP-UX..............106
6.4 Uso de las listas ACL del sistema de archivos JFS........................................................108
6.4.1 Definición de una lista ACL del sistema de archivos JFS.......................................108
6.4.2 Cómo genera el sistema una lista ACL del sistema de archivos JFS.......................109
6.4.3 Lista ACL del sistema de archivos JFS mínima.....................................................109
6.4.4 Entradas «user» y «group» adicionales de las listas ACL del sistema de archivos
JFS........................................................................................................................110
6.4.5 Entradas «group» y «class» de las listas ACL del sistema de archivos JFS...............110
6.4.6 Uso de los comandos «setacl» y «getacl»..........................................................110
6.4.7 Efecto de chmod en las entradas «class»...........................................................111
6.4.8 Ejemplo de modificación de una lista ACL del sistema de archivos JFS mínima.......111
6.4.9 Listas ACL del sistema de archivos JFS por defecto..............................................113
6.4.10 Modificación de las listas ACL del sistema de archivos JFS con el comando
setacl....................................................................................................................114
6.4.10.1 Uso de las opciones de modificación y eliminación...................................114
6.4.10.2 Uso de la opción -f...............................................................................114
6.4.10.3 Los permisos efectivos y el comando setacl -n...........................................115
6.5 Comparación de listas ACL de los sistemas de archivos JFS y HFS................................116
6.5.1 Correlación entre los comandos y las funciones de los sistemas de archivos JFS y
HFS.......................................................................................................................116
6.6 Listas ACL y sistemas de archivos NFS.......................................................................117
6.7 Consideraciones sobre la seguridad para los archivos especiales de dispositivo /dev.....117
6.8 Protección de las particiones de disco y los volúmenes lógicos.....................................118
6.9 Pautas de seguridad para montar y desmontar sistemas de archivos.............................119
6.10 Control de la seguridad de los archivos en una red...................................................121
6
Tabla de contenido
6.10.1 Comprobación de las configuraciones de los permisos en los archivos de control
de red...................................................................................................................121
6.10.2 Archivos montados en un entorno NFS.............................................................121
6.10.2.1 Vulnerabilidad de los servidores..............................................................122
6.10.2.2 Vulnerabilidad de los clientes.................................................................122
6.10.2.3 Cómo proteger los archivos montados con el sistema NFS..........................123
7 Compartimentos.............................................................................................................125
7.1 Descripción general.................................................................................................125
7.1.1 Arquitectura de compartimentos.........................................................................126
7.1.2 Configuración de compartimentos por defecto....................................................127
7.2 Planificación de la estructura de compartimentos........................................................127
7.3 Activación de compartimentos..................................................................................129
7.4 Modificación de la configuración de compartimentos..................................................130
7.4.1 Modificación de las reglas de compartimentos...................................................130
7.4.2 Modificación de los nombres de compartimentos...............................................131
7.5 Componentes de los compartimentos........................................................................131
7.5.1 Archivos de configuración de compartimentos.....................................................131
7.5.2 Comandos de compartimentos.........................................................................131
7.5.3 Páginas de manual de compartimentos.............................................................132
7.6 Sintaxis y reglas de compartimentos.........................................................................133
7.6.1 Definición de compartimentos...........................................................................133
7.6.2 Reglas de sistema de archivos..........................................................................134
7.6.3 Reglas IPC.....................................................................................................135
7.6.4 Reglas de red................................................................................................137
7.6.5 Reglas varias.................................................................................................139
7.6.6 Archivo de reglas de ejemplo...........................................................................140
7.7 Configuración de aplicaciones en compartimentos......................................................141
7.8 Solución de problemas de los compartimentos...........................................................141
7.9 Uso del modo de detección para generar una configuración inicial de compartimentos....142
7.10 Compartimentos de los clústeres HP Serviceguard......................................................142
8 Privilegios expresos........................................................................................................145
8.1 Descripción general................................................................................................145
8.2 Componentes de los privilegios expresos...................................................................145
8.2.1 Comandos.....................................................................................................146
8.2.2 Páginas de manual........................................................................................146
8.3 Privilegios disponibles.............................................................................................146
8.4 Configuración de aplicaciones con privilegios expresos..............................................149
8.4.1 Modelo de privilegios.....................................................................................150
8.4.2 Privilegios compuestos....................................................................................151
8.5 Consecuencias para la seguridad de los privilegios expresos.......................................152
8.5.1 Incremento de los privilegios............................................................................152
Tabla de contenido
7
8.6 Privilegios expresos de los clústeres HP Serviceguard..................................................152
8.7 Solución de problemas con los privilegios expresos....................................................152
III Protección de la identidad......................................................................................155
9 HP-UX Role-Based Access Control.....................................................................................157
9.1 Descripción general................................................................................................157
9.2 Fundamentos del control del acceso..........................................................................158
9.2.1 Simplificación del control del acceso con funciones.............................................159
9.3 Componentes de HP-UX RBAC..................................................................................160
9.3.1 HP-UX RBAC Access Control Policy Switch..........................................................161
9.3.2 Archivos de configuración de HP-UX RBAC........................................................162
9.3.3 Comandos de HP-UX RBAC..............................................................................162
9.3.4 Páginas de manual de HP-UX RBAC..................................................................163
9.3.5 Arquitectura de HP-UX RBAC............................................................................163
9.3.6 Ejemplo de uso y funcionamiento de HP-UX RBAC...............................................164
9.4 Planificación de la distribución de HP-UX RBAC..........................................................166
9.4.1 Planificación de las funciones...........................................................................166
9.4.2 Planificación de las autorizaciones para las funciones.........................................166
9.4.3 Planificación de las asignaciones de comandos.................................................167
9.4.4 Limitaciones y restricciones de HP-UX RBAC.......................................................168
9.5 Configuración de HP-UX RBAC.................................................................................169
9.5.1 Configuración de las funciones.........................................................................170
9.5.1.1 Creación de las funciones.........................................................................170
9.5.1.2 Asignación de las funciones a usuarios......................................................171
9.5.1.3 Asignación de las funciones a grupos........................................................172
9.5.2 Configuración de las autorizaciones..................................................................172
9.5.3 Configuración de privilegios y autorizaciones adicionales relativos a comandos.....173
9.5.4 Configuración de HP-UX RBAC con privilegios expresos.......................................175
9.5.5 Configuración de HP-UX RBAC con compartimentos............................................177
9.6 Uso de HP-UX RBAC...............................................................................................178
9.6.1 Uso del comando privrun para ejecutar aplicaciones con privilegios......................178
9.6.1.1 HP-UX RBAC en los clústeres Serviceguard..................................................180
9.6.2 Uso del comando privedit para modificar archivos con control de acceso
aplicado................................................................................................................181
9.6.3 Personalización de los comandos privrun y privedit con el conmutador ACPS.........182
9.7 Solución de problemas de HP-UX RBAC.....................................................................183
9.7.1 La herramienta de sintaxis de bases de datos rbacdbchk......................................183
9.7.2 Información del comando privrun -v..................................................................184
10 Administración de la auditoría.......................................................................................185
10.1 Auditoría de los componentes.................................................................................186
10.1.1 Comandos....................................................................................................186
10.1.2 Archivos de configuración de auditoría............................................................186
8
Tabla de contenido
10.1.3 Páginas de manual de auditoría.....................................................................187
10.2 Auditoría del sistema............................................................................................187
10.2.1 Planificación de la puesta en ejecución de la auditoría......................................187
10.2.2 Habilitación de la auditoría...........................................................................188
10.2.3 Deshabilitación de la auditoría......................................................................189
10.2.4 Supervisión de los archivos de auditoría..........................................................189
10.2.5 Consideraciones sobre el rendimiento.............................................................190
10.2.6 Pautas para administrar el sistema de auditoría................................................190
10.3 Auditoría de usuarios............................................................................................190
10.4 Auditoría de sucesos.............................................................................................191
10.5 Rastros de auditoría..............................................................................................193
10.5.1 Configuración de rastros de auditoría..............................................................194
10.5.2 Supervisión y administración de rastros de auditoría.........................................195
10.6 Consulta de los archivos de registro de auditoría......................................................196
10.6.1 Ejemplos de uso del comando audisp..............................................................197
10.7 Autoauditoría.......................................................................................................198
10.8 Auditoría con HP-UX RBAC....................................................................................199
10.8.1 Auditoría en función de los criterios de HP-UX RBAC y el archivo
/etc/rbac/aud_filter...............................................................................................199
10.8.2 Procedimiento para auditar los criterios de HP-UX RBAC....................................200
A Sistemas de confianza.........................................................................................................201
A.1 Configuración de un sistema de confianza......................................................................201
A.2 Auditoría de un sistema de confianza............................................................................203
A.3 Administración de las contraseñas y del acceso en un sistema de confianza.......................203
A.3.1 Archivos de contraseñas.......................................................................................204
A.3.1.1 El archivo /etc/passwd.................................................................................204
A.3.1.2 La base de datos /tcb/files/auth/.................................................................205
A.3.2 Selección y generación de contraseñas..................................................................207
A.3.3 Caducidad de las contraseñas..............................................................................207
A.3.4 Historial y reutilización de las contraseñas..............................................................208
A.3.5 Control del acceso en función del tiempo...............................................................208
A.3.6 Control del acceso en función del dispositivo..........................................................208
A.3.7 Manejo de las bases de datos de un sistema de confianza......................................209
A.4 Pautas para realizar copias de seguridad y recuperaciones de confianza...........................209
B Otros productos de seguridad...............................................................................................213
B.1 HP-UX HIDS.................................................................................................................213
B.2 Parches de seguridad...................................................................................................213
B.3 HP-UX IPFilter..............................................................................................................214
B.4 HP-UX Secure Shell......................................................................................................214
Glosario................................................................................................................................215
Tabla de contenido
9
Índice...................................................................................................................................223
10
Tabla de contenido
Acerca de este documento
Historial de publicación
La fecha de publicación y el número de referencia del documento indican su edición
actual. La fecha de publicación cambia cuando se publica una edición nueva.
Para garantizar la recepción de las ediciones nuevas, deberá abonarse al servicio de
soporte técnico del producto apropiado. Para obtener detalles, póngase en contacto
con el representante de ventas de HP.
Las diversas versiones de este documento se facilitan en:
http://docs.hp.com
Marzo de 2008
Octubre de 2007
Número de referencia 5992-3422
•
El documento se ha dividido en tres partes: Protección de
los sistemas, Protección de los datos y Protección de la
identidad.
•
Se ha agregado un capítulo para documentar el grupo de
características HP-UX Standard Mode Security Extensions
(consulte el Capítulo 4).
•
Security Patch Check se ha sustituido por Software
Assistant.
•
Se ha agregado una figura para ilustrar la interface de
usuario de HP-UX Bastille (consulte la Sección 3.3).
•
Se ha agregado el archivo de registro de configuración
de HP-UX Bastille assessment-log.config (consulte
la Sección 3.5).
•
Se han efectuado diversas modificaciones.
Número de referencia 5992-2920
•
Agosto de 2007
Febrero de 2007
Se ha agregado un capítulo que describe HP-UX Bastille.
Número de referencia 5992-1933 (sólo en inglés)
•
Se eliminó el administrador Process Resource Manager
(PRM) de la lista de productos que no admiten contraseñas
ocultas (consulte la Sección 2.4.5).
•
Se corrigió search por nsearch en lista_permisos
(consulte la Sección 7.6.2).
Número de referencia 5991-6510
Primera edición
Historial de publicación
11
NOTA: Los volúmenes que conforman la serie Guía del administrador de sistemas
HP-UX se pueden actualizar de forma independiente. Por lo tanto, las versiones más
recientes de los volúmenes del juego pueden variar entre sí con el tiempo. Las versiones
más recientes de cada volumen se facilitan en el sitio:
http://docs.hp.com
Público destinatario
La serie Guía del administrador de sistemas HP-UX se ha elaborado para los
administradores de sistemas HP-UX con cualquier grado de pericia que tengan que
administrar sistemas HP-UX a partir de la revisión HP-UX 11i versión 3.
Aunque muchos temas de este juego de documentación se aplican a revisiones anteriores,
se han introducido muchos cambios en HP-UX 11i versión 3; por lo tanto, para obtener
información sobre las revisiones anteriores, consulte el documento Administración de
sistemas y grupos de trabajo: Guía para los administradores de sistemas HP-UX.
Acerca de este juego de documentos
La serie Guía del administrador de sistemas HP-UX documenta el principal conjunto de
tareas (y conceptos asociados) que se necesita para administrar los sistemas que ejecutan
HP-UX 11i versión 3, y consta de los siguientes volúmenes:
Descripción general
Proporciona un enfoque avanzado de HP-UX 11i,
sus componentes y la relación existente entre ellos.
Administración de la configuración
Describe muchas de las tareas que deben llevarse
a cabo para configurar y personalizar la
configuración del sistema y el comportamiento de
los subsistemas.
Administración de volúmenes lógicos Documenta la forma de configurar volúmenes
físicos, grupos de volúmenes y volúmenes lógicos
mediante el administrador HP Logical Volume
Manager (LVM).
Administración de la seguridad
Documenta los datos y las características de
seguridad del sistema HP-UX 11i.
Tareas de administración rutinarias
Documenta muchas de las tareas corrientes que
deben llevarse a cabo para mantener el sistema
funcionando sin dificultades.
Guía del administrador de sistemas HP-UX: Administración de la seguridad se divide en
tres partes: Protección de los sistemas, Protección de los datos y Protección de la
identidad. Estas partes constan de los siguientes temas:
12
Acerca de este documento
Capítulo 1
Capítulo 2
Capítulo 3
Capítulo 4
Capítulo 5
Capítulo 6
Capítulo 7
Capítulo 8
Capítulo 9
Capítulo 10
Apéndice A
Apéndice B
Describe consideraciones sobre la seguridad relativas a los procesos
de inicio e instalación.
Explica cómo administrar la seguridad de los usuarios y del sistema
una vez instalado el sistema operativo.
Describe cómo fortalecer y cerrar un sistema con ayuda de HP-UX
Bastille para mejorar la seguridad del sistema operativo HP-UX.
Describe las características y componentes de HP-UX Standard Mode
Security Extentions.
Explica la forma de proteger el acceso remoto al sistema.
Explica la forma de controlar y proteger los sistemas de archivos.
Describe los compartimentos y la forma de aislar los componentes
de un sistema.
Describe los privilegios expresos y la forma de dividir las capacidades
de los superusuarios en conjuntos de privilegios.
Describe las características y componentes de HP-UX Role-Based
Access Control.
Describe la administración del sistema de auditoría.
Describe los sistemas de confianza.
Describe otros productos de seguridad.
Nombres de revisión e identificadores de revisión de HP-UX 11i
Con HP-UX 11i, HP distribuye un sistema operativo de alta disponibilidad, seguro y
manejable. HP-UX 11i admite entornos empresariales, críticos para la misión y de
computación técnica, y se facilita tanto en sistemas HP 9000 como en servidores
HP Integrity.
Cada revisión de HP-UX 11i lleva asociado un nombre de revisión y un identificador de
revisión. El identificador de la revisión se obtiene al utilizar el comando uname con la
opción -r. Para obtener una lista de las revisiones disponibles de HP-UX 11i, consulte
la siguiente tabla:
Identificador de la
revisión
Nombre de la revisión
Arquitectura de procesador compatible
B.11.11
HP-UX 11i versión 1
HP 9000
B.11.23
HP-UX 11i versión 2
Intel™ Itanium™
B.11.23
HP-UX 11i versión 2, septiembre
de 2004
HP 9000
HP-UX 11i versión 3
HP 9000
B.11.31
Itanium
Itanium
Nombres de revisión e identificadores de revisión de HP-UX 11i
13
Para obtener información sobre los sistemas y la arquitectura de procesador admitidos
para diversas versiones de HP-UX 11i, consulte las notas de la revisión del sistema HP-UX
11i específicas de la versión de HP-UX que ejecute (por ejemplo, Notas de la revisión
de HP-UX 11i versión 3).
Búsqueda de información sobre HP-UX
La siguiente tabla presenta un resumen de las ubicaciones que facilitan información
general sobre la administración de sistemas en relación con HP-UX. No obstante, esta
tabla no incluye información de productos específicos.
Si tiene que:
Consulte:
Buscar:
el documento Notas de la revisión • el medio HP Instant Information
de HP-UX 11i específico de su
(sólo en inglés)
versión de HP-UX. Por ejemplo, tal
•
http://docs.hp.com
vez desee consultar el documento
Notas de la revisión de HP-UX 11i • el directorio /usr/share/
versión 3.
doc/ (sólo en inglés)
• Lo que ha cambiado en las
revisiones de HP-UX
• El contenido de los entornos
operativos
• Los requisitos de firmware y los
sistemas admitidos para una
revisión específica
Instalar o actualizar HP-UX
Ubicación:
El directorio /usr/share/doc
contiene sólo la nota de la revisión
original correspondiente a la
versión del sistema HP-UX. Para
obtener las notas de la revisión
revisadas, consulte el medio
HP Instant Information más reciente
o la dirección
http://docs.hp.com.
• Leer antes de la instalación o
la actualización a HP-UX
• el kit de medios (suministrado
con el entorno operativo)
• Guía de instalación y
actualización a HP-UX 11i
• http://docs.hp.com
(Nota: Consulte los documentos
de la versión específica de
HP-UX.)
Administrar un sistema HP-UX
Para las revisiones posteriores a
HP-UX 11i versión 3:
• el medio HP Instant Information
(sólo en inglés)
• Guía del administrador de
sistemas HP-UX (juego de
varios volúmenes)
• http://docs.hp.com
otras fuentes de información sobre
administración de sistemas:
• nPartition Admnistrator's Guide
• Planning Superdome
Configurations (libro blanco)
14
Acerca de este documento
• Planning Superdome
Configurations (libro blanco)
Información conexa
Se facilita información adicional sobre la seguridad y HP-UX en la dirección
http://docs.hp.com. En concreto, se dispone de los siguientes documentos:
•
HP-UX AAA Server Administrator's Guide
•
HP-UX Host Intrusion Detection System Administrator's Guide
•
HP-UX IPFilter Administrator's Guide
•
HP-UX IPSec Administrator's Guide
•
HP-UX Secure Shell Release Notes
Convenciones
Este documento utiliza las siguientes convenciones tipográficas:
reboot(1M)
Título de libro
Página de manual de HP-UX. reboot es el nombre y 1M es la sección
de HP-UX Reference. En la Web y en el medio Instant Information,
puede ser un enlace activo con la propia página de manual. En la
línea de comandos de HP-UX, puede introducir «man reboot» o «man
1M reboot» para consultar la página de manual. Para obtener más
información, consulte la página de manual de man(1).
El título de un libro. En la Web y en el medio Instant Information, puede
ser un enlace activo con el libro en sí.
El nombre de una tecla del teclado. Retorno y Entrar hacen referencia
a la misma tecla.
Texto que se recalca.
Texto que se recalca enérgicamente.
La presentación de una palabra o expresión importante.
Texto que muestra el equipo.
Funda de
tecla
Énfasis
Énfasis
Término
Salida del
equipo
Entrada del Comandos y otro tipo de texto que escribe el usuario.
usuario
Comando
Nombre de un comando o expresión de comandos válida.
Variable
El nombre de una variable que se puede sustituir en un comando o
una función, o información de una pantalla que representa varios
valores posibles.
[]
El contenido es optativo cuando se trata de formatos y descripciones
de comandos.
{}
El contenido es obligatorio cuando se trata de formatos y descripciones
de comandos. Si el contenido es una lista separada por una pleca (|),
deberá elegir uno de los elementos.
...
El elemento anterior puede repetirse un número arbitrario de veces.
Información conexa
15
|
16
Separa los elementos de una lista de opciones.
Acerca de este documento
Parte I Protección de los sistemas
Un factor crítico de la seguridad empresarial es la reducción al mínimo del sistema y su
fortalecimiento. HP-UX 11i ofrece un conjunto de características de seguridad diseñadas para
abordar los puntos vulnerables conocidos y desconocidos mediante la ejecución sólo de los
servicios que sean necesarios, reduciendo de este modo al mínimo un posible punto de ataque.
Esta sección analiza las siguientes herramientas HP-UX que protegen a los sistemas contra
ataques, y que detectan las amenazas y reaccionan ante ellas:
•
Instalación del entorno operativo HP-UX de forma segura (Capítulo 1)
•
Administración de la seguridad de los usuarios y del sistema (Capítulo 2)
•
HP-UX Bastille (Capítulo 3)
•
Standard Mode Security Extensions (Capítulo 4)
•
Administración de la seguridad relativa al acceso remoto (Capítulo 5)
17
18
1 Instalación del entorno operativo HP-UX de forma segura
Este capítulo describe las consideraciones de seguridad relacionadas con los procesos
de inicio e instalación, incluidos los siguientes temas:
•
Consideraciones sobre la seguridad de la instalación (Sección 1.1)
•
Prevención de infracciones de seguridad durante el proceso de inicio (Sección 1.2)
•
Habilitación de la seguridad de inicio de sesión para el usuario root (Sección 1.3)
•
Uso de la autenticación de inicio para impedir el acceso no autorizado (Sección 1.4)
•
Definición de las opciones de seguridad en el momento de la instalación
(Sección 1.5)
•
Instalación de parches de seguridad (Sección 1.6)
•
Consejos sobre la seguridad posterior a la instalación para la realización de copias
de seguridad y la recuperación (Sección 1.7)
1.1 Consideraciones sobre la seguridad de la instalación
Antes de instalar o actualizar a un sistema operativo nuevo o a un software nuevo,
acostúmbrese a estudiar las consideraciones sobre la seguridad. Haga que las siguientes
medidas de seguridad sean parte de la preparación para la instalación:
•
Revise el contenido del kit de medios. Lea las Notas de la revisión y otra información
conexa en http://docs.hp.com.
•
Decida el software que necesita y el que no. No instale software innecesario.
Consulte otros capítulos de este documento para obtener ayuda sobre cómo decidir
en relación con los productos de software de seguridad.
•
Desconecte o desactive el sistema de la red, sobre todo de la red pública, hasta
que se hayan completado las modificaciones de seguridad. Considere con qué
nivel de seguridad, de haberlo, desea realizar la instalación. Para obtener más
información, consulte la Sección 1.5.
•
Asegúrese de que la consola del sistema está protegida físicamente y de que la
consola LAN está desconectada o se utiliza sólo a través de una red donde están
permitidos y protegidos los protocolos de texto no cifrado, como telnet. Ésta es
una consideración importante sobre la seguridad. Al restringir el acceso a la consola
del sistema se ayuda a evitar que personas no autorizadas cambien la configuración
de seguridad del sistema.
•
Instale los parches más recientes, sobre todo los parches de seguridad. Para obtener
más información, consulte la Sección 1.6.
•
Mantenga un sistema de copia de seguridad y de recuperación. Para obtener más
información, consulte la Sección 1.7.
1.1 Consideraciones sobre la seguridad de la instalación
19
1.2 Prevención de infracciones de seguridad durante el proceso de inicio
Se pueden producir infracciones de seguridad durante la secuencia de inicio. El proceso
de inicio se puede interrumpir, permitiendo el acceso al sistema de una persona sin
autorización. Si determinados archivos de sistema se han modificado de manera
incorrecta o intencionadamente antes del reinicio, el sistema puede tener problemas
durante el reinicio y después del mismo. Por lo tanto, lleve a cabo las siguientes tareas
preventivas:
•
Asegúrese de que el sistema y la consola del sistema están físicamente protegidos,
y de que sólo los usuarios autorizados pueden tener acceso.
•
Habilite la característica de autenticación de inicio para permitir que sólo los usuarios
especificados puedan iniciar el sistema en modo monousuario. Consulte la
Sección 1.4.
•
Asegúrese de que los archivos de sistema está protegidos contra escritura; es posible
que algunos necesiten estar protegidos contra lectura.
A continuación, se muestra un resumen de la secuencia de inicio que se produce cuando
se enciende o reinicia el equipo. Consulte el documento Guía del administrador de
sistemas HP-UX: Tareas de administración rutinarias para obtener más información sobre
la secuencia de inicio.
1. Durante el inicio, se produce una espera de unos 10 segundos que permite anular
la secuencia de inicio automático. Al llegar a este punto, un intruso puede interrumpir
la secuencia de inicio y entrar en el sistema.
Puede obtener acceso de usuario root al interrumpir la secuencia de inicio
presionando cualquier tecla. El cargador ISL le pide un comando. Escribir el siguiente
comando hace que el sistema esté en modo monousuario:
ISL> hpux -is
Si no utiliza autenticación de inicio, cualquier usuario puede iniciar una sesión
como usuario root sin contraseña.
La autenticación de inicio sólo permite a usuarios específicos iniciar sesión como
usuarios root.
2.
3.
Si no se ha interrumpido la secuencia de inicio, el proceso de inicialización continúa.
HP-UX lleva a cabo su proceso de inicialización y empieza a funcionar normalmente,
listo para iniciar una sesión. Al llegar a este punto, puede producirse otra infracción
de seguridad si un intruso ya ha obtenido acceso de usuario root.
Si un intruso interrumpe el proceso de inicio, ya ha obtenido acceso de usuario root al
sistema y, en teoría, es propietario del sistema. Esta propiedad permite efectuar cambios
en el sistema con una gran cantidad de mecanismos.
20
Instalación del entorno operativo HP-UX de forma segura
1.3 Habilitación de la seguridad de inicio de sesión para el usuario root
Muchos protocolos de red, como rlogind y telnetd, no cifran las comunicaciones
de red, lo que facilita que un intruso detecte las contraseñas administrativas desde la
red. Trate de reducir al mínimo el uso de estos protocolos no seguros.
Para evitar un inicio de sesión administrativo a través de un protocolo de ese tipo, puede
utilizar el archivo /etc/securetty a fin de limitar el inicio de sesión en la cuenta de
usuario root sólo a través de la consola del sistema. Por ejemplo, para restringir los
inicios de sesión de usuarios root sólo a la consola, cree el archivo /etc/security
con una sola línea que consista en la consola. Para obtener más información, consulte
la página de manual de login(1).
1.4 Uso de la autenticación de inicio para impedir el acceso no autorizado
La característica de autenticación de inicio protege el inicio en modo monousuario con
autenticación de contraseñas. Esto permite configurar un sistema para que sólo los
usuarios autorizados puedan iniciar el equipo en modo monousuario. La característica
de autenticación de inicio se debe habilitar antes de reiniciar el sistema.
Dos atributos del archivo /etc/default/security configuran la autenticación de
inicio:
•
BOOT_AUTH habilita o deshabilita la autenticación de inicio. Especifique
BOOT_AUTH=1 para habilitar la autenticación de inicio. Por defecto, la autenticación
está deshabilitada (BOOT_AUTH=0).
•
BOOT_USERS define quién puede iniciar una sesión como usuario root cuando la
característica de autenticación de inicio está habilitada. Los nombres enumerados
en BOOT_USERS se separan con comas. Por ejemplo:
BOOT_USERS=root,mary,jack,amy,jane
BOOT_USERS=root es el valor por defecto.
El archivo de configuración /etc/default/security se explica en el Capítulo 2 y
en la página de manual de security(4).
1.5 Definición de las opciones de seguridad en el momento de la instalación
Las opciones de seguridad en el momento de la instalación permiten configurar un motor
de cierre de seguridad HP-UX Bastille, que puede incluir un servidor de seguridad HP-UX
IPFilter. Una vez completada la instalación, tendrá uno de los niveles de seguridad
preconfigurados.
Durante la instalación puede elegir entre cuatro niveles de seguridad preconfigurados:
Sec00Tools
Se instala la infraestructura de seguridad pero sin habilitar
características de seguridad opcionales. Es el valor por defecto.
1.3 Habilitación de la seguridad de inicio de sesión para el usuario root
21
Sec10Host
Sec20MngDMZ
Sec30DMZ
Se instala un sistema de cierre basado en sistema host, sin la
configuración del servidor de seguridad HP-UX IPFilter. Con este nivel
de seguridad, la mayoría de los servicios de red están deshabilitados.
Estos servicios se pueden reintegrar mediante la ejecución del
comando bastille(1M).
Se instala un sistema de cierre administrado que bloquea la mayor
parte del tráfico entrante con un servidor de seguridad HP-UX IPFilter.
Se instala un sistema de cierre completo con una zona
desmilitarizada, que es un cierre de red IPFilter y basado en sistema
host. HP-UX IPFilter bloquea casi todas las conexiones entrantes.
Para obtener información sobre HP-UX Bastille, consulte el Capítulo 3. Para obtener
información sobre HP-UX IPFilter, consulte el documento HP-UX IPFilter Administrator's
Guide en:
http://docs.hp.com/en/internet.html#IPFilter
1.6 Instalación de parches de seguridad
Inmediatamente después de la instalación, aplique los parches obligatorios y
recomendados con ayuda de HP-UX Software Assistant (SWA).
SWA es una herramienta basada en la línea de comandos que consolida y simplifica
la administración de parches y la administración de boletines de seguridad en los
sistemas HP-UX. La herramienta SWA sustituye a Security Patch Check (SPC) y es la
utilidad cuyo uso recomienda HP para mantenerse actualizado en relación con los
boletines de seguridad publicados por HP para el software HP-UX.
NOTA: El uso de la herramienta de software Software Assistant puede ayudar a mejorar
la seguridad del sistema, pero no la garantiza.
Para obtener más información sobre SWA, consulte:
•
El sitio web sobre HP-UX Software Assistant ubicado en:
https://www.hp.com/go/swa
•
swa(1M)
•
El documento HP-UX Software Assistant System Administration Guide ubicado en:
http://docs.hp.com
22
Instalación del entorno operativo HP-UX de forma segura
1.7 Consejos sobre la seguridad posterior a la instalación para la
realización de copias de seguridad y la recuperación
Una vez que el sistema esté en funcionamiento, aún deberá mantener su seguridad. Sea
diligente en el mantenimiento de archivos de copia de seguridad y recuperación del
sistema. A continuación, se indican algunas pautas:
•
Utilice sólo los comandos fbackup y frecover para realizar copias de seguridad
y recuperar archivos de forma selectiva. Los comandos fbackup y frecover son
los únicos que retienen las listas de control de acceso (ACL). Utilice la opción -A
de estos comandos cuando realice una copia de seguridad de archivos y los
recupere para utilizarlos en sistemas que no apliquen listas ACL. Consulte las páginas
de manual de fbackup(1M) y frecover(1M).
•
Si prevé recuperar los archivos en otro sistema, asegúrese de que el nombre de
usuario del propietario y el nombre de grupo concuerdan en ambos sistemas.
•
No olvide que los medios de copia de seguridad contienen datos confidenciales.
Restrinja el acceso a los medios a los casos de necesidad probada.
•
Etiquete las cintas de copia de seguridad y almacénelas en lugar seguro. El
almacenamiento fuera de las instalaciones ofrece la máxima seguridad. Guarde
los archivos de almacenamiento durante un mínimo de 6 meses y, al cumplirse el
plazo, recicle los medios.
•
Realice copias de seguridad incrementales diarias y copias de seguridad completas
semanales.
Sincronice el programa de copia de seguridad con el flujo de información de la
empresa. Por ejemplo, si se actualiza una base de datos importante todos los viernes,
podría programar la copia de seguridad semanal para los viernes por la noche.
•
Si en el momento debido debe hacer una copia de seguridad de todos los archivos,
pida a todos los usuarios que cierren su sesión antes de proceder a realizar la
copia. El comando fbackup le avisa si se cambia un archivo mientras se realiza
la copia de seguridad.
•
Examine el archivo de registro de las copias de seguridad más recientes para
identificar los problemas que se produzcan durante la copia de seguridad. Defina
permisos restrictivos en el archivo de registro de copia de seguridad.
•
Tenga en cuenta que el comando frecover permite sobrescribir un archivo. No
obstante, el archivo retiene los permisos de acceso y las listas ACL definidos al
realizar la copia de seguridad del archivo.
•
Pruebe de antemano el proceso de recuperación a fin de asegurarse de que puede
recuperar por completo los datos en el caso de producirse una emergencia.
•
Al recuperar archivos procedentes de otro equipo, es posible que tenga que ejecutar
el comando chown para definir el número de identificación de usuario y la
identificación de grupo para el sistema en el que residan ahora dichos archivos,
1.7 Consejos sobre la seguridad posterior a la instalación para la realización de copias de seguridad y la
recuperación
23
si el usuario y el grupo no existen en el sistema nuevo. Si los archivos se recuperan
en un sistema nuevo que no tenga el grupo especificado, los archivos asumen la
propiedad de grupo de la persona que ejecute el comando frecover. Si los
nombres de propietario y grupo tienen significados diferentes en sistemas diferentes,
los resultados de la recuperación pueden ser inesperados y no los deseados.
24
•
Aunque un error de alimentación no debería conllevar la pérdida de archivos, si
alguien informa de la pérdida de un archivo después de un error de alimentación,
búsquelo en el directorio /lost+found antes de restaurarlo a partir de una cinta
de copia de seguridad.
•
Para comprobar el contenido de la cinta desde la que se vaya a realizar la
recuperación, utilice la opción -I del comando frecover para obtener una vista
preliminar del índice de archivos de la cinta. La copia de seguridad mantiene
intactos los permisos existentes de un sistema de archivos. El comando frecover
impide la lectura del archivo si los permisos de acceso del archivo lo prohíben.
•
Nunca recupere en su sitio ningún archivo crítico, por ejemplo, /etc/passwd, ni
los ubicados en /tcb/files. En su lugar, restaure el archivo en un directorio
temporal (no utilice /tmp), y conceda a este directorio permisos drwx------, lo
que impide que nadie más lo utilice. Compare los archivos restaurados con los
archivos que hayan de reemplazarse. Efectúe los cambios necesarios.
•
Asegúrese de que activa la auditoría. La auditoría no se activa automáticamente
después de recuperar el sistema.
Instalación del entorno operativo HP-UX de forma segura
2 Administración de la seguridad de los usuarios y del
sistema
Este capítulo aborda la seguridad básica de los usuarios una vez instalado el sistema
operativo. Concretamente, se centra en los inicios de sesión, las contraseñas y otras
interacciones de los usuarios con el sistema. Se analizan los siguientes temas:
•
Administración del acceso de los usuarios (Sección 2.1)
•
Autenticación de los usuarios durante el inicio de sesión (Sección 2.2)
•
Autenticación de los usuarios con los módulos PAM (Sección 2.3)
•
Administración de las contraseñas (Sección 2.4)
•
Definición de los atributos de seguridad del sistema (Sección 2.5)
•
Manejo de los programas setuid y setgid (Sección 2.6)
•
Prevención de ataques de desbordamiento del búfer en la pila (Sección 2.7)
•
Protección de los terminales y las estaciones de trabajos sin vigilancia (Sección 2.8)
•
Protección contra el acceso de dispositivos remotos al sistema (Sección 2.9)
•
Protección de los titulares de inicio de sesión (Sección 2.10)
•
Protección de la cuenta de usuario root (Sección 2.11)
2.1 Administración del acceso de los usuarios
Los usuarios autorizados obtienen acceso al sistema al facilitar un nombre de usuario
(nombre de inicio de sesión) y una contraseña válidos. Cada usuario se define por medio
de una entrada en el archivo /etc/passwd. HP System Management Homepage
(HP SMH) puede utilizarse para agregar, eliminar, desactivar, reactivar o modificar la
cuenta de un usuario.
Para obtener más información sobre las contraseñas, consulte las páginas de manual
de passwd(4) y passwd(1), así como la Sección 2.4 de este documento.
2.1.1 Supervisión de las cuentas de usuario
A continuación, se indican algunas pautas para supervisar las cuentas de usuario:
•
Examine periódicamente la salida de los comandos last, lastb y who en busca
de inicios de sesión poco comunes.
•
Compruebe que todos los usuarios con cuentas tienen auténtica necesidad
empresarial de tener acceso al sistema.
•
Esté vigilante del uso compartido por varios usuarios de la misma cuenta de usuario.
No permita que dos usuarios compartan la misma cuenta de usuario.
2.1 Administración del acceso de los usuarios
25
•
Compruebe que no hay cuentas de usuario que compartan el mismo número de
identificación de usuario (UID).
•
Asegúrese de que todas las cuentas tienen contraseñas seguras que se cambian
periódicamente.
•
Compruebe que todos los directorios iniciales de usuarios cuentan con los permisos
adecuados. La mayoría de los directorios iniciales tienen acceso de lectura, pero
no de escritura para otros usuarios. Para obtener una mayor protección, defina los
permisos de lectura, escritura y ejecución sólo para el propietario del directorio.
•
Asegúrese de que todos los usuarios comprenden las directivas de seguridad.
Coloque un archivo con las directivas de seguridad de la empresa en cada directorio
inicial.
•
Examine el archivo /etc/passwd u otra base de datos de usuarios apropiada en
busca de cuentas sin utilizar y, en concreto, de usuarios que ya no trabajen en la
empresa.
•
Examine las cuentas de usuario root para saber quién tiene acceso de usuario root.
•
Considere la posibilidad de implementar la aplicación HP-UX Role-based Access
Control (RBAC) para reducir al mínimo los riesgos asociados a que varios usuarios
tengan acceso a la cuenta de usuario root. Para obtener más información, consulte
el Capítulo 9.
•
Examine las cuentas de invitado para saber con qué frecuencia se utilizan.
2.1.2 Supervisión de las cuentas de invitado
Para obtener la máxima seguridad, no permita el uso de cuentas abiertas o de invitado.
Si en efecto existen cuentas de invitado, dé los pasos siguientes:
•
Cambie la contraseña de la cuenta de invitado con frecuencia. Puede especificar
la contraseña.
•
Utilice un shell restringido (rsh) para limitar el acceso al sistema. Para obtener
información sobre el comando rsh, consulte las páginas de manual de sh(1) y
sh-posix(1).
•
Las cuentas de invitado a menudo se olvidan. Aplique uno de los siguientes métodos
para deshabilitar la cuenta de invitado cuando no se utilice:
— Utilice atributos de seguridad por cada usuario para deshabilitar
automáticamente la cuenta transcurrido un determinado número de días de
inactividad. Para obtener más información, consulte la página de manual de
security(4) y la Sección 2.5.2.2.
— Utilice el siguiente comando para bloquear la cuenta de invitado:
# passwd -l guest
— Utilice el siguiente comando para eliminar la cuenta de invitado:
26
Administración de la seguridad de los usuarios y del sistema
# userdel guest
•
Programe un trabajo at para bloquear automáticamente cuentas temporales:
# at now +14 days passwd -l cuenta_temporal
•
Analice periódicamente los archivos /var/adm/wtmp y /var/adm/sulog en
busca de cuentas sin utilizar.
Para obtener más información, consulte las páginas de manual de sh(1) y su(1).
2.1.3 Creación de cuentas de usuario de aplicaciones
Si los usuarios utilizan sólo HP-UX para iniciar una aplicación, no necesitan tener acceso
a un shell. Estos usuarios únicamente deberían utilizar la aplicación (por ejemplo, un
sistema de administración de bases de datos) y no necesitan tener acceso a ninguna
funcionalidad de HP-UX.
Para restringir el acceso a HP-UX, modifique el archivo /etc/passwd de manera que
sólo se ejecute un comando específico después de que el usuario inicie una sesión. El
archivo /etc/passwd contiene información fundamental necesaria durante el inicio
de la sesión:
•
Nombre de usuario
•
Contraseña cifrada
•
Id. del usuario
•
Id. de grupo
•
Campo de comentarios
•
Directorio inicial
•
Programa de inicio de sesión
Normalmente, el programa de inicio de sesión es un shell, como /bin/sh, pero no es
necesario que lo sea. Puede crear una cuenta cautiva (una cuenta que inicia la sesión
de un usuario directamente en una aplicación) identificando la aplicación como el shell
de inicio de sesión.
A continuación, se muestra un ejemplo de cómo restringir la capacidad de un usuario
para que ejecute sólo el comando date. La entrada de /etc/passwd es la siguiente:
nombre_usuario:rc70x.4,sx2:20:1:run only date command:/home/date:/usr/bin/date
En el símbolo de sistema de inicio de sesión, un usuario escribe el nombre_usuario
y la contraseña adecuada. El comando date se ejecuta y, a continuación, se cierra
inmediatamente la sesión del usuario.
login:nombre_usuario
Password:xxxxxx
Tue Nov 14 18:38:38 PDT 2006
2.1 Administración del acceso de los usuarios
27
2.1.4 Administración de las cuentas de grupo
Cuando un grupo deba compartir o tener acceso a archivos relacionados con un
proyecto, dé estos pasos para garantizar la seguridad:
1.
2.
3.
Compruebe que cada miembro tiene una entrada en el archivo /etc/passwd.
Cree una entrada para el grupo en el archivo /etc/group.
Cree un directorio compartido para el grupo.
drwxrwx-- root project /home/projects
4.
Defina el comando umask en el perfil (~/.profile) de cada miembro del grupo.
En el siguiente ejemplo, los usuarios del grupo leen, escriben y ejecutan archivos,
pero nadie más puede hacerlo:
umask u=rwx,g=rwx, o=
2.2 Autenticación de los usuarios durante el inicio de sesión
Para obtener acceso a un sistema y sus recursos, los usuarios necesitan iniciar una sesión.
Al controlar el acceso al sistema, puede intentar impedir que usuarios no autorizados
tengan acceso al mismo. No obstante, aunque usuarios no autorizados obtengan acceso,
puede seguir impidiéndoles que ejecuten programas que consuman recursos y que
tengan acceso a datos del sistema. Esta sección explica lo que ocurre durante el proceso
de inicio de sesión (login), desde el momento en que se escribe el nombre de usuario
hasta el momento en que se tiene acceso a un símbolo del sistema del shell.
2.2.1 Explicación del proceso de inicio de sesión
Los siguientes pasos describen el proceso de inicio de sesión. Esta información muestra
lo importante que es crear nombres de usuario únicos y mantener una directiva de
seguridad mediante contraseñas. Para obtener más información, consulte la página de
manual de login(1).
1.
2.
3.
Una vez instalado el sistema, el Login Manager de escritorio muestra una pantalla
de inicio de sesión. Si está instalado, el entorno Common Desktop Environment
(CDE) muestra una pantalla de inicio de sesión CDE.
El programa init crea un proceso getty, que solicita un nombre de usuario.
Escriba su nombre de usuario. El programa getty transmite el nombre de usuario
al programa login.
El programa login busca el nombre de usuario en el archivo /etc/passwd.
•
Si el nombre de usuario existe, login continúa con el paso 4.
•
Si el nombre de usuario no existe, login realiza las siguientes comprobaciones:
— Solicita una contraseña (Password: ).
— Si se especifica una contraseña no válida, el sistema muestra el mensaje
de error Invalid login.
28
Administración de la seguridad de los usuarios y del sistema
— Actualiza el archivo /var/adm/btmp, si existe. El archivo /var/adm/btmp
realiza un seguimiento de los intentos de inicio de sesión no válidos. Para
obtener más información, consulte la Sección 2.2.2.
— Se cierra después de tres intentos de inicio de sesión no válidos consecutivos.
4.
5.
6.
El proceso login comprueba el archivo /etc/passwd.
•
Si el campo de contraseña está definido, login solicita una contraseña y
continúa con el paso 5.
•
Si el campo de contraseña no está definido, el usuario no necesita una
contraseña y login continúa con el paso 6.
El proceso login compara la contraseña con la contraseña cifrada en
/etc/passwd.
•
Si la contraseña coincide, login continúa con el paso 6.
•
Si la contraseña no coincide, login muestra el mensaje Invalid login.
El proceso login permite tres intentos de inicio de sesión consecutivos. Tras
el tercer intento de inicio de sesión no válido por parte del usuario, login se
cierra.
El proceso login actualiza el archivo /var/adm/wtmp, que realiza un seguimiento
de los inicios de sesión válidos. Para obtener más información, consulte la
Sección 2.2.2.
Tras un inicio de sesión fructuoso, se inicializan las identificaciones de usuario y
de grupo, la lista de acceso a grupos y el directorio de trabajo.
7.
A continuación, el proceso login ejecuta el comando especificado en el campo
de comando del archivo /etc/passwd. Normalmente, el campo de comando
contiene el nombre de ruta de un shell, como /bin/ksh, /bin/csh o /bin/sh.
Si el campo de comando está vacío, el valor por defecto es /bin/sh.
No es necesario que el campo de comando especifique un shell. Para obtener un
ejemplo de la ejecución de otro comando, consulte la Sección 2.1.3.
8.
Una vez realizada la inicialización del shell, el sistema muestra un mensaje de
solicitud y espera a que el usuario introduzca la información solicitada.
Puede hacer que el proceso login realice una autenticación adicional de los usuarios
mediante los módulos de autenticación enchufables (PAM - Pluggable Authentication
Modules). Para obtener más información, consulte la página de manual de pam.conf(4)
y la Sección 2.3.
2.2.2 Comprobación de los archivos de seguimiento de inicios de sesión (btmp y wtmp)
Los siguientes archivos mantienen un registro de los inicios de sesión:
•
El archivo /var/adm/btmp realiza un seguimiento de los inicios de sesión
infructuosos.
2.2 Autenticación de los usuarios durante el inicio de sesión
29
•
El archivo /var/adm/wtmp realiza un seguimiento de los inicios de sesión
fructuosos.
Utilice el comando lastb para leer el archivo /var/adm/btmp y comprobar si algún
usuario no autorizado ha intentado iniciar una sesión.
Utilice el comando last para leer el archivo /var/adm/wtmp.
Los comandos last y lastb muestran la información de usuarios más reciente, en
orden descendente.
Los archivos wtmp y btmp tienden a aumentar de tamaño sin límite, por lo tanto,
compruébelos con regularidad. Periódicamente, elimine información que ya no sea útil
para evitar que el archivo se haga demasiado grande. Los archivos wtmp y btmp no
son creados por los programas que los mantienen. Si estos archivos se eliminan, el
mantenimiento del registro de inicios de sesión se desactivará.
Un error habitual que cometen los usuarios durante el inicio de sesión es introducir la
contraseña, o parte de ella, en el mensaje de solicitud de inicio de sesión. Este inicio
de sesión infructuoso se registra en el archivo btmps y expone la contraseña o parte
de ella. Por este motivo, la protección de los archivos en btmps debe definirse para
que sólo lo lean los administradores.
# chmod 400 /var/adm/btmps
Si la directiva de seguridad requiere que las sesiones anteriores de un usuario no las
vea otro usuario, es posible que también sea necesario modificar la protección del
archivo /var/adm/wtmp.
Para obtener más información, consulte las páginas de manual de last(1), utmp(4) y
wtmp(4).
La base de datos utmp es una base de datos de contabilidad de usuarios administrada
y sincronizada según /var/adm/utmp mediante el comando utmpd. Los programas
de aplicación pueden tener acceso a la base de datos utmps. Consulte las páginas de
manual de utmpd(1M) y utmps(4).
2.2.2.1 Ejemplos del comando «last»
Esta sección contiene ejemplos de uso del comando last. El siguiente comando enumera
todas las sesiones del usuario root y todas las sesiones en el terminal de consola:
# last root console | more
root pts/1 Mon Mar 12 16:22 - 18:04 (01:41)
abcdeux console Mon Mar 12 10:13 - 10:19 (00:06)
root pts/2 Fri Mar 9 13:51 - 15:12 (01:21)
abcdeux console Thu Mar 8 12:21 - 12:22 (00:00)
root pts/ta Wed Mar 7 15:38 - 18:13 (02:34)
El siguiente comando muestra cuándo se han producido reinicios:
# last reboot
reboot system boot Sun Mar 28 18:06 still logged in
reboot system boot Sun Mar 28 17:48 - 18:06 (00:17)
30
Administración de la seguridad de los usuarios y del sistema
reboot system boot Sun Mar 28 17:40 - 17:48 (00:08)
reboot system boot Thu Feb 19 18:25 - 17:40 (37+23:15)
reboot system boot Mon Feb 16 13:56 - 18:25 (3+04:28)
2.2.3 Comprobación de quién ha iniciado una sesión
El comando who examina el archivo /etc/utmp para obtener información actualizada
de los inicios de sesión de los usuarios. Además, el comando who puede mostrar una
lista de los inicios de sesión, cierres de sesión, reinicios, cambios en el reloj del sistema
y procesos creados por el proceso init.
Utilice el comando who -u para supervisar quién ha iniciado una sesión actualmente.
Por ejemplo:
# who -u
aperson console Aug 5 11:28 old 5796 system.home.company.com
aperson pts/0 Aug 17 18:11 0:03 24944 system
aperson pts/1 Aug 5 11:28 1:14 5840 system
Para obtener más información, consulte la página de manual de who(1).
2.3 Autenticación de los usuarios con los módulos PAM
Los módulos de autenticación enchufables (PAM - Pluggable Authentication Modules)
constituyen un marco estándar del sector que proporciona servicios de autenticación,
administración de cuentas, administración de sesiones y servicios de contraseñas. Esta
sección proporciona una descripción general de los módulos PAM y describe los archivos
de configuración PAM: /etc/pam.conf y /etc/pam_user.conf.
Para obtener más información , consulte las páginas de manual de pam(3), pam_*(5),
pam.conf(4), pam_user.conf(4) y security(4).
2.3.1 Descripción general
Los módulos PAM proporcionan la flexibilidad de elegir cualquier servicio de
autenticación disponible en el sistema. El marco PAM también permite conectar nuevos
módulos de servicios de autenticación y ponerlos disponibles sin modificar las
aplicaciones.
Siempre que un usuario inicie una sesión, ya sea de forma local o remota (por ejemplo,
con login o rlogin), es necesario comprobar o autenticar el usuario como usuario
válido del sistema. A medida que los métodos de autenticación mejoran y cambian con
el tiempo, los servicios de inicio de sesión tendrían que cambiar también. Para evitar
el cambio constante de los servicios de inicio de sesión simplemente para revisar el
código de autenticación, se desarrollaron los módulos PAM, que permiten utilizar distintos
métodos de autenticación sin modificar el código de inicio de sesión.
Como consecuencia, la autenticación de inicios de sesión, la comprobación de cuentas
y la modificación de contraseñas utilizan la interface PAM.
2.3 Autenticación de los usuarios con los módulos PAM
31
Los programas que exigen la autenticación del usuario transmiten las solicitudes al
módulo PAM, el cual determina el método de comprobación correcto y remite la respuesta
apropiada. Los programas no tienen por qué saber el método de autenticación que se
utiliza. Para obtener una descripción general, consulte la Figura 2-1.
Figura 2-1 Módulos de autenticación de HP-UX bajo PAM
Servicios de autenticación
passwd
su
login
telnet
Solicitud de
validación
Biblioteca PAM
UNIX
DCE
libpam_unix.1
Kerberos
Utilice el archivo de configuración
PAM, /etc/pam.conf, para indicar
qué módulo de autenticación
se va a utilizar.
LDAP
libpam_ntlm.1
libpam_krb5.1
libpam_dce.1
NTLM
libpam_ldap.1
Los métodos de autenticación se especifican para todo el sistema y para usuarios
individuales utilizando los siguientes archivos de sistema PAM:
/etc/pam.conf
/etc/pam_user.conf
Archivo de control de todo el sistema. Define qué módulos
de servicios se van a emparejar con servicios. Se
consideran los valores por defecto del sistema.
Archivo de control de usuario individual. Define qué
opciones van a utilizar los módulos de servicios en usuarios
específicos. Se trata de un archivo opcional.
Para obtener más información, consulte las páginas de manual de pam(3), pam.conf(4),
pam_updbe(5) y pam_user.conf(4).
32
Administración de la seguridad de los usuarios y del sistema
2.3.2 Bibliotecas PAM
Los módulos de servicios PAM se ponen en ejecución mediante bibliotecas compartidas.
Los módulos PAM permiten que varias tecnologías de autenticación coexistan en HP-UX.
El archivo de configuración /etc/pam.conf determina qué módulo de autenticación
se va a utilizar. Las bibliotecas PAM son las siguientes:
•
PAM_DCE
Los módulos PAM_DCE permiten la integración de DCE en los servicios de entrada
del sistema (como login, telnet, rlogin y ftp). Los módulos PAM_DCE
proporcionan la funcionalidad de los módulos de autenticación, y administración
de cuentas y contraseñas. Estos módulos se admiten mediante la biblioteca
PAM_DCE, /usr/lib/security/pam_dce.sl. Para obtener más información,
consulte la página de manual de pam_dce(5).
•
PAM_HPSEC
Los módulos PAM_HPSEC administran las extensiones específicas de HP-UX para
la autenticación, y la administración de cuentas, contraseñas y sesiones. El uso de
/usr/lib/security/$ISA/libpam_hpsec.so.1 es obligatorio para servicios
como login, dtlogin, ftp, su, remsh, rexec y ssh. Estos servicios deben
colocar libpam_hpsec.so.1 al principio de la pila, encima de uno o varios
módulos no opcionales. El módulo pam_hpsec también aplica diversos atributos
definidos en /etc/default/security. Para obtener más información, consulte
las páginas de manual de pam_hpsec(5) y security(4).
•
PAM_KRB5
Kerberos es un protocolo de autenticación de red que permite la comunicación
segura a través de redes sin transmitir las contraseñas como texto no cifrado. El
centro de distribución de claves (KDC - Key Distribution Center) autentica una
contraseña y, a continuación, emite un tíquet TGT (Ticket Granting Ticket - Tíquet
de concesión de tíquets). La biblioteca compartida de PAM Kerberos es /usr/lib/
security/libpam_krb5.1. Para obtener más información, consulte la página
de manual de pam_krb5(5).
•
PAM_LDAP
El protocolo ligero de acceso a directorios (LDAP - Lightweight Directory Access
Protocol) es un estándar para centralizar la información de administración de los
usuarios, grupos y la red mediante servicios de directorio. La autenticación tiene
lugar en un servidor de directorio LDAP. Para obtener más información, consulte la
documentación sobre LDAP-UX en http://docs.hp.com/hpux/11iv2/index.html.
2.3 Autenticación de los usuarios con los módulos PAM
33
•
PAM_NTLM
El administrador PAM NT LAN Manager permite autenticar a los usuarios de HP-UX
en los servidores Windows durante el inicio de sesión en el sistema. PAM NTLM
utiliza servidores NT para autenticar los usuarios que inicien una sesión en un
sistema HP-UX. Para obtener más información, consulte el documento HP CIFS Client
Administrator's Guide en http://docs.hp.com/hpux/11iv2/index.html.
•
PAM_UNIX
Los módulos PAM_UNIX proporcionan la funcionalidad de los cuatro módulos PAM:
autenticación, y administración de cuentas, sesiones y contraseñas. Estos módulos
se admiten mediante la biblioteca PAM UNIX, /usr/lib/security/
libpam_unix.1. Para obtener más información, consulte la página de manual
de pam_unix(5).
•
PAM_UPDBE
El módulo de servicios de definición de directivas de usuarios para PAM, /usr/
lib/security/libpam_updbe.1, lee las opciones definidas en el archivo de
configuración de usuarios, /etc/pam_user.conf, y almacena la información
en el identificador de PAM para que la puedan utilizar los módulos de servicios
posteriores. Para obtener más información, consulte la página de manual de
pam_updbe(5).
2.3.3 Configuración de todo el sistema con /etc/pam.conf
El archivo de configuración de PAM (/etc/pam.conf) define los mecanismos de
seguridad que se utilizan para autenticar usuarios. Los valores por defecto de dicho
archivo proporcionan el funcionamiento acostumbrado del sistema tanto en sistemas
HP-UX estándar como en sistemas de confianza. Asimismo, el archivo mencionado presta
soporte a los controles de los usuarios individuales y a la funcionalidad de inicio de
sesión integrada del entorno DCE.
NOTA: En el entorno DCE, use la utilidad auth.adm para crear el archivo de
configuración deseado. Desde el punto de vista funcional, este archivo equivale al
anterior archivo auth.conf de inicio de sesión intregado de HP. Para obtener más
información, consulte la página de manual de auth.adm(1m).
Las bibliotecas libpam y libpam_unix de PAM y el archivo de configuración /etc/
pam.conf deben estar en el sistema para que los usuarios puedan iniciar una sesión
o modificar contraseñas.
La autenticación de HP-UX depende del archivo /etc/pam.conf. El propietario de
este archivo debe ser el usuario root y debe tener los siguientes permisos de acceso al
archivo:
-r--r--r-- 1 root sys
34
1050 Nov
8 10:16 /etc/pam.conf
Administración de la seguridad de los usuarios y del sistema
Si este archivo se daña o no está presente en el sistema, el usuario root puede iniciar
una sesión en la consola en modo monousuario para solucionar el problema.
Los nombres de servicio protegidos se enumeran en el archivo de control del sistema,
/etc/pam.conf, conforme a cuatro categorías de prueba (tipo_módulo):
autenticación (authentication), cuenta (account), sesión (session) y contraseña (password).
Para obtener más información, consulte las páginas de manual de pam(3), pam.conf(4)
y pam_user.conf(4).
2.3.4 Ejemplo del archivo /etc/pam.conf
A continuación, se muestra una lista parcial de un archivo /etc/pam.conf de ejemplo.
Las líneas precedidas de un signo de número (#) son líneas de comentario. Las secciones
del archivo /etc/pam.conf son administración de la autenticación (authentication
management), administración de cuentas (account management), administración de
sesiones (session management) y administración de contraseñas (password management).
#
# PAM configuration
#
# Notes:
#
# If the path to a library is not absolute, it is assumed to be
# relative to the directory /usr/lib/security/$ISA/
#
# For PA applications, /usr/lib/security/$ISA/libpam_unix.so.1 is a
# symbolic link that points to the corresponding PA (32 or 64-bit) PAM
# backend library.
#
# The $ISA (i.e. Instruction Set Architecture) token will be replaced
# by the PAM engine with an appropriate directory string.
# See pam.conf(4).
#
# Also note that the use of pam_hpsec(5) is mandatory for some of
# the services. See pam_hpsec(5).
#
# Authentication management
#
login
auth required libpam_hpsec.so.1
login
auth required libpam_hpsec.so.1
su
auth required libpam.hpsec.so.1 bypass_setaud
su
auth required libpam_unix.so.1
dtlogin auth required libpam_hpsec.so.1
dtlogin auth required libpam_unix.so.1
dtaction auth required libpam_hpsec.so.1
dtaction auth required libpam_unix.so.1
ftp
auth required libpam_hpsec.so.1
ftp
auth required libpam_unix.so.1
rcomds
auth required libpam_hpsec.so.1
rcomds
auth required libpam_unix.so.1
sshd
auth required libpam_hpsec.so.1
sshd
auth required libpam_unix.so.1
OTHER
auth required libpam_unix.so.1
#
2.3 Autenticación de los usuarios con los módulos PAM
35
# Account management
#
login
account required
login
account required
su
account required
su
account required
libpam_hpsec.so.1
libpam_unix.so.1
libpam_hpsec.so.1
libpam_unix.so.1
2.3.5 Archivo de configuración de usuarios /etc/pam_user.conf
El archivo de configuración PAM, /etc/pam_user.conf, configura los módulos PAM
por usuario. Este archivo es opcional. Sólo se necesita si las aplicaciones PAM tienen
que presentar un comportamiento diferente para diversos usuarios.
Puede asignar opciones distintas a usuarios individuales enumerando estos últimos en
/etc/pam_user.conf. Para cada nombre_inicio_sesión indicado en este
archivo, las opciones mencionadas en dicho archivo sustituyen a las opciones
especificadas para el tipo_módulo y la ruta_módulo del archivo /etc/pam.conf.
Las entradas del archivo /etc/pam_user.conf utilizan la siguiente sintaxis:
nombre_inicio_sesión tipo_módulo ruta_módulo opciones
donde:
nombre_inicio_sesión
tipo_módulo
ruta_módulo
opciones
Nombre de inicio de sesión del usuario.
El tipo_módulo especificado en el archivo /etc/
pam.conf.
La ruta_módulo asociada a tipo_módulo en el
archivo /etc/pam.conf.
Cero o varias opciones que el módulo reconoce.
El contenido por defecto del archivo /etc/pam_user.conf consiste en comentarios:
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
36
This file defines PAM configuration for a user. The configuration
here overrides pam.conf.
The format for each entry is:
user_name module_type module_path options
For example:
user_a
user_a
user_a
auth
auth
password
/usr/lib/security/libpam_unix.1
/usr/lib/security/libpam_dce.1
/usr/lib/security/libpam_unix.1
debug
try_first_pass
debug
user_b
user_b
auth
password
/usr/lib/security/libpam_unix.1
/usr/lib/security/libpam_unix.1
debug use_psd
debug use_psd
See the pam_user.conf(4) manual page for more information
Administración de la seguridad de los usuarios y del sistema
2.3.6 Ejemplos: Cómo funcionan los módulos PAM para el inicio de sesión
En los siguientes ejemplos se describe el proceso auth para login, en función de cómo
esté configurado el archivo /etc/pam.conf:
•
Si el archivo /etc/pam.conf contiene un único login auth estándar (como el
que se muestra a continuación), login continuará de la manera habitual:
login
•
auth
required
/usr/lib/security/libpam_unix.1
Si hay dos o más entradas login auth para todo el sistema (como las que se
muestran a continuación), se procesarán en orden:
login
login
auth
auth
required
required
/usr/lib/security/libpam_unix.1
/usr/lib/security/libpam_dce.1
En este caso, se ejecuta el proceso login estándar de HP-UX. A continuación, tiene
lugar el proceso de autenticación del entorno DCE. Si ambos procesos transcurren
con éxito, el inicio de sesión es fructuoso. Se ejecutan ambos procesos aunque el
usuario no supere uno.
•
Si necesita utilizar métodos de autenticación diferentes para usuarios distintos,
coloque la entrada especial libpam_udpbe delante de los módulos de autenticación
en el archivo /etc/pam.conf (las líneas se numeran para simplificar su consulta):
#/etc/pam.conf
#1
login
auth
#2
login
auth
#3
login
auth
required
/usr/lib/security/libpam_udpbe.1
required
/usr/lib/security/libpam_unix.1
required
/usr/lib/security/libpam_dce.1
A continuación, coloque las entradas correspondientes a cada usuario afectado en
el archivo /etc/pam_user.conf:
#/etc/pam_user.conf
#4
allan auth /usr/lib/security/libpam_unix.1
#5
allan auth /usr/lib/security/libpam_dce.1
#6
isabel auth /usr/lib/security/libpam_unix.1
debug
try_first_pass
debug
use_psd
Cuando allan inicia una sesión, la línea 1 del archivo /etc/pam.conf hace
que PAM lea el archivo /etc/pam_user.conf. Puesto que las rutas de módulo
de las líneas 4 y 5 del archivo /etc/pam_user.conf coinciden con las rutas de
módulo de las líneas 2 y 3 del archivo /etc/pam.conf, PAM sustituye
temporalmente los campos de opciones vacíos de las líneas 2 y 3 del archivo
/etc/pam.conf por los valores debug y try_first_pass, respectivamente.
A continuación, los módulos especificados por las líneas 2 y 3 se ejecutan con las
opciones revisadas.
2.3 Autenticación de los usuarios con los módulos PAM
37
Cuando isabel inicia una sesión, la línea 1 del archivo /etc/pam.conf hace
que PAM lea el archivo /etc/pam_user.conf y sustituya temporalmente el campo
de opciones de la línea 2 del archivo /etc/pam.conf por el valor debug
use_psd. La línea 3 permanece igual. A continuación, los módulos especificados
por las líneas 2 y 3 se ejecutan con las opciones revisadas.
Cuando george inicia una sesión, la línea 1 del archivo /etc/pam.conf hace
que el PAM lea el archivo /etc/pam_user.conf. Puesto que no hay ninguna
entrada para george, las líneas 2 y 3 del archivo /etc/pam_user.conf
permanecen igual. Los módulos especificados por las líneas 2 y 3 se ejecutan sin
ningún cambio.
2.4 Administración de las contraseñas
La contraseña es el símbolo más importante de identificación individual. El sistema la
utiliza para autenticar a un usuario y franquearle el acceso al sistema. Puesto que las
contraseñas son susceptibles a su divulgación cuando se utilizan, almacenan o conocen,
deben mantenerse en secreto en todo momento. Las siguientes secciones analizan las
contraseñas más detalladamente.
2.4.1 Responsabilidades del administrador del sistema
El administrador del sistema y todos los usuarios del sistema deben compartir la
responsabilidad de la seguridad de las contraseñas. Los administradores de sistemas
llevan a cabo las siguientes tareas relacionadas con la seguridad:
38
•
Garantizar que todos los usuarios tienen contraseñas.
•
Mantener los permisos de acceso apropiados en todos los archivos del sistema,
incluidos los archivos estándar de contraseñas y de grupos: /etc/passwd y /etc/
group.
•
Eliminar o anular las identificaciones de usuario y las contraseñas de los usuarios
que ya no sean aptos para obtener acceso al sistema.
•
Comprobar que las contraseñas de todas las aplicaciones están cifradas.
•
Comprobar que los permisos relativos a /var/adm/btmp y /var/adm/wtmp
están definidos correctamente.
•
Aplicar contraseñas de un solo uso para el acceso único de invitado.
•
Informar a los usuarios de sus responsabilidades en cuanto a la seguridad de las
contraseñas.
•
Utilizar la caducidad de las contraseñas para obligar a los usuarios a que cambien
periódicamente sus contraseñas.
•
Impedir la reutilización de contraseñas recientes.
Administración de la seguridad de los usuarios y del sistema
•
Configurar atributos de seguridad para todo el sistema en el archivo /etc/
default/security. Para obtener más información, consulte la Sección 2.5 y la
página de manual de security(4).
•
Convertir el sistema para utilizar contraseñas ocultas. Para obtener más información,
consulte la Sección 2.4.5 y las páginas de manual de shadow(4) y pwconv(1M).
2.4.2 Responsabilidades del usuario
Todos los usuarios deben atenerse a las siguientes reglas:
•
Recordar la contraseña y guardarla en secreto en todo momento.
•
Cambiar la contraseña inicial de inmediato y seguir modificándola.
•
Informar de los cambios de estado y de las presuntas infracciones de seguridad
que se produzcan.
•
Asegurarse de que nadie les observa mientras escriben la contraseña.
2.4.3 Criterios para establecer una contraseña correcta
Tenga en cuenta las siguientes pautas al elegir una contraseña y comunique dichas
pautas a los usuarios:
•
Elija una contraseña que tenga 6 caracteres como mínimo y 80 caracteres como
máximo. Entre los caracteres especiales se pueden incluir caracteres de control y
símbolos, como asteriscos y barras. En modo estándar, sólo se utilizan los 8 primeros
caracteres.
•
No elija una palabra extraída de un diccionario de ningún idioma, aun cuando la
escriba al revés. Hay programas de software con capacidad para buscarla con
tino.
•
No elija una contraseña que pueda asociársele fácilmente; por ejemplo: el nombre
de un familiar o el de una mascota, o un pasatiempo.
•
No utilice secuencias de teclado sencillas, como asdfghjkl, ni repeticiones del
nombre de inicio de sesión (por ejemplo, si el nombre de inicio de sesión es ana,
una opción de contraseña no aconsejable sería anaana).
•
Considere el uso de palabras escritas incorrectamente o combinaciones de sílabas
de dos palabras que no guarden relación entre sí para crear contraseñas adecuadas.
Otro método extendido para crear contraseñas consiste en utilizar las iniciales de
un título o una frase predilectos.
•
Considere el uso de un generador de contraseñas que combine sílabas para
conformar un galimatías pronunciable.
•
No comparta contraseñas con otros usuarios. La dirección debe prohibir que se
compartan contraseñas.
2.4 Administración de las contraseñas
39
•
Utilice siempre una contraseña. No conviene dejar el campo de contraseña vacío
en el archivo /etc/passwd.
2.4.4 Modificación del archivo de contraseñas /etc/passwd
Un sistema estándar tiene un archivo de contraseñas: /etc/passwd.
Todas las contraseñas se cifran inmediatamente después de crear la entrada
correspondiente y se almacenan en el archivo de contraseñas: /etc/passwd. En las
comparaciones sólo se utilizan contraseñas cifradas.
Siga estas pautas si necesita modificar el archivo de contraseñas:
•
No permita el uso de campos de contraseñas vacíos o nulos, ya que esto supone
una infracción de la seguridad. Un campo de contraseña vacío permite que cualquier
usuario pueda definir una contraseña para esa cuenta.
•
No modifique directamente el archivo de contraseñas. Utilice la interface HP SMH
o los comandos useradd, userdel o usermod para modificar las entradas del
archivo de contraseñas. Si debe modificar directamente el archivo de contraseñas,
utilice el comando vipw y compruébelo con el comando pwck. Para obtener más
información, consulte las páginas de manual de vipw(1M) y pwck(1M).
2.4.4.1 Ejemplos de uso del comando passwd
A continuación, se ofrecen algunos ejemplos útiles del comando passwd:
•
Para restablecer la contraseña de un usuario:
# passwd user1
•
Para imponer el cambio de una contraseña en el siguiente inicio de sesión:
# passwd -f user1
•
Para bloquear o deshabilitar una cuenta:
# passwd -l user2
•
Para habilitar la caducidad de contraseñas:
# passwd -n 7 -x 28 user1
•
Para ver el estado de caducidad de la contraseña de un usuario específico:
# passwd -s user
•
Para ver el estado de caducidad de las contraseñas de todos los usuarios:
# passwd -sa
40
Administración de la seguridad de los usuarios y del sistema
2.4.4.2 Formato del archivo /etc/passwd
El archivo /etc/passwd se utiliza para autenticar a un usuario en el momento de
iniciar una sesión. Dicho archivo contiene una entrada para cada cuenta del sistema
HP-UX. Cada entrada consta de siete campos separados por dos puntos. Una entrada
típica del archivo /etc/passwd presenta este aspecto:
robin:Z.yxGaSvxAXGg:102:99:Robin Hood,Rm 3,x9876,408-555-1234:/home/robin:/usr/bin/sh
Los campos contienen los siguientes datos (enumerados en orden de aparición) separados
por dos puntos:
1.
2.
3.
4.
5.
6.
7.
robin: el nombre de usuario (inicio de sesión), que consta de un máximo de ocho
caracteres.
Z.yxGaSvxAXGg: el campo de contraseña cifrada.
102: el número de identificación de usuario, un número entero que varía entre 0 y
MAXINT-1 (igual a 2.147.483.646 o 231 -2).
99: el número de identificación de grupo, de /etc/group, un número entero que
varía entre 0 y MAXINT-1.
Robin Hood,Rm 3,x9876,408-555-1234: el campo de comentario, que se
utiliza para escribir información de identificación, como el nombre completo del
usuario, la ubicación y los números de teléfono. Por motivos históricos, este campo
también se llama gecos.
/home/robin: el directorio inicial, es decir, el directorio de inicio de sesión original
del usuario.
/usr/bin/sh: el nombre de ruta del shell de inicio de sesión, que se ejecuta
cuando el usuario inicia una sesión.
El usuario puede cambiar la contraseña al llamar al comando passwd, el campo de
comentario (el quinto campo) con el comando chfn y el nombre de ruta del programa
de inicio de sesión (el séptimo campo) con el comando chsh. El administrador del
sistema configura el resto de los campos. El número de identificación de usuario debe
ser único. Para obtener más información, consulte las páginas de manual de chfn(1),
chsh(1), passwd(1) y passwd(4).
2.4.5 Archivo de contraseñas ocultas /etc/shadow
La creciente potencia computacional a la que tienen acceso los descifradores
malintencionados de contraseñas propicia la vulnerabilidad al descifrado de las
contraseñas no ocultas que contiene el archivo /etc/passwd.
Las contraseñas ocultas (shadow passwords) mejoran la seguridad del sistema puesto
que esconden las contraseñas cifradas en un archivo de contraseñas ocultas. Puede
trasladar las contraseñas cifradas previamente almacenadas en el archivo /etc/passwd,
que presenta acceso de lectura público, al archivo /etc/shadow, cuyo acceso se
restringe sólo a un usuario con los privilegios adecuados.
2.4 Administración de las contraseñas
41
Utilice los siguientes comandos para habilitar, comprobar y deshabilitar las contraseñas
ocultas:
•
El comando pwconv crea un archivo de contraseñas ocultas y copia las contraseñas
cifradas desde el archivo /etc/passwd al archivo /etc/shadow.
•
El comando pwck comprueba los archivos /etc/passwd y /etc/shadow en
busca de incoherencias.
•
El comando pwunconv copia las contraseñas cifradas y la información de caducidad
desde el archivo /etc/shadow al archivo /etc/passwd y, a continuación, elimina
el archivo /etc/shadow.
Para obtener más información, consulte las páginas de manual de pwconv(1M),
pwck(1M), pwunconv(1M) y shadow(4).
Tenga en cuenta lo siguiente acerca de la característica de contraseñas ocultas:
•
Cuando la característica de contraseñas ocultas está habilitada, las aplicaciones
se pueden ver afectadas si obtienen acceso directo al campo de contraseña del
archivo /etc/passwd para obtener información sobre la contraseña y su
caducidad. Con las contraseñas ocultas habilitadas, este campo contendrá una x,
lo que indica que la información se ubica en el archivo /etc/shadow.
Las aplicaciones que utilizan las interfaces PAM para autenticar no se ven afectadas.
Para tener acceso al archivo /etc/shadow mediante programación, utilice las
llamadas a la función getspent(). Estas llamadas se parecen a las llamadas a
la función getpwent() para el archivo /etc/passwd. Para obtener más
información, consulte las páginas de manual de getspent(3C) y getpwent(3C).
•
En el archivo /etc/nsswitch.conf, las contraseñas ocultas son compatibles
con los servicios de nombres files, NIS y LDAP, pero pueden no serlo con otros
servidores de intercambio de servidor de nombres. Para configurar el sistema de
manera que utilice sólo files, NIS y/o LDAP, asegúrese de que la línea passwd
del archivo /etc/nsswitch.conf contiene únicamente files, NIS y/o LDAP.
Si no existe el archivo /etc/nsswitch.conf o la línea passwd, el valor por
defecto es sólo files. Para obtener más información, consulte la página de manual
de nsswitch.conf(4).
•
La característica de contraseñas ocultas se basa en la norma de facto integrada en
otros sistemas UNIX.
Los siguientes atributos, definidos en el archivo /etc/default/security, se aplican
a las contraseñas ocultas. Para obtener más información, consulte la Sección 2.5 y la
página de manual de security(4).
•
42
INACTIVITY_MAXDAYS: número de días antes de que caduque una cuenta por
inactividad.
Administración de la seguridad de los usuarios y del sistema
•
PASSWORD_MINDAYS: número mínimo de días que deben transcurrir para poder
modificar una contraseña.
•
PASSWORD_MAXDAYS: número máximo de días durante los cuales las contraseñas
son válidas.
•
PASSWORD_WARNDAYS: número de días antes de avisar a los usuarios de la
caducidad de las contraseñas.
Las contraseñas ocultas son compatibles con estos productos:
•
Protocolo ligero de acceso a directorios (LDAP - Lightweight Directory Access Protocol)
•
Ignite-UX Directory Access Control (LDAP)
•
Serviceguard
Las constraseñas ocultas no son compatibles con las aplicaciones que prevean que las
contraseñas estén en el archivo /etc/passwd.
Para obtener más información, consulte las siguientes páginas de manual:
passwd(1), pwck(1M), pwconv(1M), pwunconv(1M), getspent(3C), putspent(3C),
nsswitch.conf(4), passwd(4), security(4), shadow(4)
2.4.6 Eliminación de las seudocuentas y protección de los subsistemas clave en el
archivo /etc/passwd
Por tradición, el archivo /etc/passwd contiene muchas «seudocuentas», que son
entradas que no están asociadas a usuarios individuales y que no tienen auténticos
shells de inicio de sesión interactivo.
Algunas de dichas entradas, por ejemplo, date, who, sync y tty, se han desarrollado
sólo para ofrecer mayor comodidad al usuario, ya que presentan comandos que se
pueden ejecutar sin iniciar una sesión. Al efecto de fortalecer la seguridad, estas entradas
se han eliminado del archivo /etc/passwd distribuido para que estos programas sólo
los pueda ejecutar un usuario que haya iniciado una sesión.
El archivo /etc/passwd contiene otras entradas de este tipo porque se corresponden
con procesos que son propietarios de archivos. Los programas con propietarios como
adm, bin, daemon, hpdb, lp y uucp abarcan subsistemas completos y constituyen un
caso especial. Puesto que estos programas conceden acceso a los archivos que protegen
o utilizan, debe permitirse que funcionen como seudocuentas con entradas registradas
en el archivo /etc/passwd. Las seudocuentas y las cuentas especiales acostumbradas
se relacionan en el Ejemplo 2-1.
2.4 Administración de las contraseñas
43
Ejemplo 2-1 Seudocuentas y cuentas especiales del sistema
root::0:3::/:/sbin/sh
daemon:*:1:5::/:/sbin/sh
bin:*:2:2::/usr/bin:/sbin/sh
sys:*:3:3::/:
adm:*:4:4::/var/adm:/sbin/sh
uucp:*:5:3::/var/spool/uucppublic:/usr/lbin/uucp/uucico
lp:*:9:7::/var/spool/lp:/sbin/sh
nuucp:*:11:11::/var/spool/uucppublic:/usr/lbin/uucp/uucico
hpdb:*:27:1:ALLBASE:/:/sbin/sh
nobody:*:-2:-2::/:
La clave del estado privilegiado de estos subsistemas es la capacidad que tienen para
conceder acceso a los programas que están a su cargo, sin otorgar acceso de usuario
root (uid 0). En su lugar, se define el bit de setuid del archivo ejecutable y el usuario
efectivo del proceso se corresponde con el propietario del archivo ejecutable. Por
ejemplo, el comando cancel forma parte del subsistema lp y se ejecuta como el usuario
efectivo lp.
Una vez definido el bit de setuid, la seguridad del subsistema asociado media para
imponer la seguridad de todos los programas que abarque dicho subsistema, no el
sistema completo. Por lo tanto, la vulnerabilidad del subsistema a una infracción de la
seguridad también se limita sólo a esos archivos del subsistema. Las infracciones de
seguridad no pueden afectar a los programas de otros subsistemas. Por ejemplo, los
programas de lp no afectan a los programas de daemon.
2.4.7 Inicio de sesión seguro con HP-UX Secure Shell
HP-UX Secure Shell proporciona inicio de sesión remoto seguro, transferencia de archivos
y ejecución remota de comandos. Toda la comunicación entre el cliente y el servidor se
cifra. Las contraseñas que se transmiten a través de la red nunca se envían como texto
no cifrado. Para obtener más información, consulte la página de manual de ssh(1) y la
Sección 5.6.
2.4.8 Seguridad de las contraseñas almacenadas en el servicio NIS
El servicio de información de red (NIS - Network Information Service) forma parte del
sistema de archivos de red (NFS - Network File System). NIS permite administrar la
configuración de varios sistemas host desde una ubicación central, un servidor maestro.
En lugar de tener las configuraciones de los sistemas host almacenadas por separado
en cada host, la información se consolida en una ubicación central. El archivo /etc/
password es uno de los diversos archivos de configuración almacenados en el servidor
NIS.
El archivo de contraseñas ocultas /etc/shadow no es compatible con el servicio NIS.
Para obtener información sobre el servicio NIS, consulte el documento NFS Services
Administrator's Guide.
44
Administración de la seguridad de los usuarios y del sistema
2.4.9 Seguridad de las contraseñas almacenadas en un servidor de directorio LDAP
LDAP-UX Client Services interactúa con los módulos PAM para autenticar las contraseñas
almacenadas en un servidor de directorio LDAP. La biblioteca PAM_LDAP proporciona
el servicio de autenticación.
2.5 Definición de los atributos de seguridad del sistema
Los atributos de seguridad proporcionan un control adicional de la configuración de los
sistemas, al agregar mejoras de seguridad a las contraseñas, inicios de sesión y auditoría.
Hay más de 20 atributos. Estos atributos se describen en la página de manual de
security(4). Las categorías de atributos se pueden resumir de la siguiente manera:
Atributos de inicio de sesión
Estos atributos controlan las actividades relativas
a los inicios de sesión, como las horas de inicio
de sesión, el número de inicios de sesión
permitidos y el número de errores de inicio de
sesión permitidos antes de bloquear una cuenta.
Atributos de contraseña
Estos atributos controlan las actividades relativas
a las contraseñas, como su longitud, número de
caracteres y tipos, así como el nivel dentro del
historial, el número de días para poder modificar
una contraseña y la caducidad de las
contraseñas.
Atributos de inicio
Estos atributos controlan la autenticación de inicio
al definir qué usuarios están autorizados para
iniciar el sistema en modo monousuario. Para
obtener información sobre la autenticación de
inicio, consulte el Capítulo 1.
Atributos de conmutación de usuarios Estos atributos definen el valor de la variable de
(su)
entorno PATH, el nombre de grupo raíz para el
comando su y si su debe propagar o no
determinadas variables de entorno. Para obtener
más información, consulte la página de manual
de su(1).
Atributo de auditoría
Este atributo controla si se han de auditar o no
los usuarios. El atributo de auditoría se
comprueba durante el proceso de inicio de sesión.
Para obtener más información sobre la auditoría
de HP-UX, consulte la página de manual de
audit(5).
Atributo umask
Este atributo controla el comando umask() de
todas las sesiones iniciadas por pam_unix o
pam_hpsec. Para obtener más información,
2.5 Definición de los atributos de seguridad del sistema
45
consulte las páginas de manual de pam_unix(5)
y pam_hpsec(5). El atributo umask se comprueba
durante el proceso de inicio de sesión.
El sistema utiliza estos archivos para procesar los atributos:
•
/etc/default/security
•
/var/adm/userdb
•
/etc/security.dsc
•
/etc/passwd
•
/etc/shadow
Cada atributo tiene un valor por usuario sólo en una de estas ubicaciones: /etc/
password, /etc/shadow o la base de datos de usuarios en /var/adm/userdb. En
la página de manual de security(4) se explica cada atributo y su ubicación por cada
usuario.
El sistema comprueba qué atributos se aplican de las siguientes maneras:
•
El sistema examina los valores por usuario de los atributos almacenados en la base
de datos de usuarios /var/adm/userdb, el archivo /etc/passwd o el archivo
/etc/shadow.
•
Si no encuentra ningún valor por usuario, el sistema examina los atributos por
defecto configurables para todo el sistema en el archivo /etc/default/
security.
•
Si no encuentra atributos de este tipo, el sistema utiliza los atributos por defecto del
archivo /etc/security.dsc.
El archivo de descripción de atributos de seguridad, /etc/security.dsc, enumera
los atributos que se pueden definir en el archivo /etc/default/security y en la
base de datos de usuarios de /var/adm/userdb. Algunos atributos se pueden
configurar, mientras que otros son internos. No modifique el archivo /etc/
security.dsc de manera alguna.
2.5.1 Configuración de los atributos para todo el sistema
Los siguientes pasos explican cómo definir atributos de seguridad para todo el sistema.
1.
Revise la página de manual de security(4), que explica los valores por defecto
configurables de los atributos para todo el sistema. Estos atributos se configuran en
el archivo /etc/default/security, que también se explica en la página de
manual de security(4).
Si un atributo no está definido en el archivo /etc/default/security, el sistema
utilizará el valor por defecto definido en el archivo /etc/security.dsc. Para
obtener una explicación del archivo /etc/security.dsc, consulte la página de
manual de userdb(4).
46
Administración de la seguridad de los usuarios y del sistema
2.
Para modificar un valor por defecto configurable para todo el sistema, modifique
el archivo de valores de seguridad por defecto, /etc/default/security, con
un editor de texto como vi. Este archivo es de lectura universal y de escritura por
el usuario root.
Cada línea del archivo /etc/default/security contiene un comentario o
información sobre la configuración de atributos. Las líneas de comentario van
precedidas de un signo de número (#). Las líneas que no contienen comentarios
presentan la forma de pares attribute=value; por ejemplo,
PASSWORD_MAXDAYS=30.
2.5.2 Configuración de los atributos por usuario
Los siguientes comandos permiten configurar atributos específicos para usuarios
individuales. Cuando se configuran atributos por usuario, éstos anulan los valores por
defecto para todo el sistema.
userdbset Modifica el atributo del usuario especificado para anular el valor por
defecto para todo el sistema definido en el archivo /etc/default/
security. Para ver un ejemplo, consulte la Sección 2.5.2.1 y, para
obtener información, consulte la página de manual de userdbset(1M).
userdbget Muestra los valores definidos por el usuario para un usuario específico
o todos los usuarios. Para obtener más información, consulte la página
de manual de userdbget(1M).
userdbck
Comprueba los valores definidos por el usuario o soluciona los problemas
relativos a estos valores. Para obtener más información, consulte la
página de manual de userdbck(1M).
Por ejemplo, puede cambiar el valor de PASSWORD_MAXDAYS de 60 a 30 días sólo
para el usuario amy. La contraseña de amy será válida durante 30 días en lugar de 60.
Para los demás usuarios, se aplicará el valor de 60 días para todo el sistema.
Utilice el siguiente procedimiento para cambiar el valor de un atributo para un usuario:
1.
2.
3.
Examine la página de manual de security(4), que explica los atributos para todo
el sistema y sus valores, y cómo definir un valor por usuario. No todos los atributos
tienen un valor por usuario.
Examine las páginas de manual de los comandos userdbset, userdbget y
userdbck.
Decida qué usuarios se van a modificar y qué atributos se les van a aplicar. Por
ejemplo, quizá desee que los usuarios del departamento de contabilidad cambien
sus contraseñas cada 30 días y que una clase de alumnos cambien sus contraseñas
cada trimestre.
2.5 Definición de los atributos de seguridad del sistema
47
4.
Utilice el comando userdbset para cambiar un atributo para un usuario.
La información por usuario se almacena en una base de datos de usuarios, en el
directorio /var/adm/userdb. Esta base de datos de usuarios se describe en la
página de manual de userdb(4).
No se puede utilizar el comando userdbset para configurar todos los atributos.
Algunos valores por usuario se definen en los archivos /etc/passwd y /etc/
shadow. Para obtener más información, consulte la página de manual de security(4).
5.
Utilice el comando userdbget para obtener información sobre los usuarios.
2.5.2.1 Ejemplos de definición de atributos para usuarios específicos con userdbset
En el siguiente ejemplo, el comando userdbset elimina todos los atributos definidos
por el usuario para el usuario joe. Cuando joe inicie una sesión, los valores por defecto
para todo el sistema almacenados en el archivo /etc/default/security se aplicarán
a joe.
# /usr/sbin/userdbset -d -u joe
A continuación, userdbset define la longitud mínima de la contraseña en 7 y UMASK
en 0022 (022 en formato octal). Estos cambios se aplican únicamente a joe.
# /usr/sbin/userdbset -u joe MIN_PASSWORD_LENGTH=7 UMASK=0022
En el siguiente ejemplo, userdbset muestra todos los atributos del usuario amy:
# /usr/sbin/userdbget -u amy
amy AUDIT_FLAG=1
amy DISPLAY_LAST_LOGIN=0
En este ejemplo, el indicador de auditoría está habilitado y la característica de último
inicio de sesión está deshabilitada para amy.
2.5.2.2 INACTIVITY_MAXDAYS y el archivo de contraseñas ocultas
El atributo INACTIVITY_MAXDAYS definido en el archivo /etc/default/security
controla si caducan las cuentas inactivas en todo el sistema. Para anular el valor por
defecto para todo el sistema y configurar INACTIVITY_MAXDAYS para cada usuario,
utilice el comando useradd -f o usermod -f. El comando userdel permite eliminar
la configuración por usuario. Para obtener más información, consulte las páginas de
manual de useradd(1M), usermod(1M) y userdel(1M).
No se puede utilizar el comando userdbset para configurar el atributo
INACTIVITY_MAXDAYS para cada usuario. El atributo INACTIVITY_MAXDAYS está
relacionado con el campo de inactividad del archivo de contraseñas ocultas. Los
comandos useradd y usermod modifican el campo de inactividad del archivo de
contraseñas ocultas para el usuario especificado. Para obtener más información, consulte
la descripción del atributo INACTIVITY_MAXDAYS en la página de manual de
security(4).
48
Administración de la seguridad de los usuarios y del sistema
2.5.3 Solución de problemas con la base de datos de usuarios
Utilice los siguientes procedimientos para solucionar problemas relativos a la base de
datos de usuarios.
Problema 1: Los atributos de seguridad de un usuario parecen no estar configurados
correctamente. Si sospecha que la base de datos de usuarios contiene información
de un usuario no configurada correctamente, ejecute el siguiente comando:
# userdbget -u nombre_usuario
Los atributos configurados para el usuario nombre_usuario se mostrarán. Si un atributo
no está configurado correctamente, vuelva a configurarlo.
Problema 2: La base de datos de usuarios no funciona correctamente. Si necesita
comprobar la base de datos de usuarios, ejecute el siguiente comando:
# userdbck
El comando userdbck identifica y soluciona los problemas de la base de datos de
usuarios.
2.6 Manejo de los programas setuid y setgid
Dado que suponen un riesgo potencial para la seguridad del sistema, anote los
programas que son setuid (definir id. de usuario) y setgid (definir id. de grupo).
Los agresores de sistemas pueden explotar los programas setuid y setgid, casi
siempre de una de las dos formas siguientes:
•
Haciendo que un programa setuid o setgid ejecute comandos definidos por el
agresor, ya sea de forma interactiva o a través de una secuencia de comandos.
•
Sustituyendo por datos falsos los datos creados por un programa.
Siga estas pautas para proteger los programas setuid y setgid:
•
Esté alerta en relación con los cambios en los programas setuid y setgid.
•
Investigue concienzudamente los programas que parezcan ser programas setuid
innecesarios.
•
Cambie el permiso de un programa que sea innecesariamente un programa setuid
por un programa setgid. Para obtener más información, consulte las páginas de
manual de chmod(1) y chmod(2).
La forma larga del comando ls (ll o ls -l) muestra los programas setuid
sustituyendo la forma de denotar el permiso de ejecución del propietario, que es
- o x, por S o s. Por otro lado, presenta los programas setgid sustituyendo la
forma de denotar el permiso de ejecución de grupo, que es - o x, por S o s.
Es previsible que encuentre archivos de sistema de setuid y setgid, pero éstos
deben tener los mismos permisos que los facilitados en el medio suministrado de
fábrica, a no ser que los haya personalizado.
2.6 Manejo de los programas setuid y setgid
49
•
En general, los usuarios no deben tener programas setuid, especialmente si los
utilizan para otros usuarios que no sean ellos mismos.
•
Examine el código de todos los programas importados de fuentes externas en busca
de programas de destrucción denominados Caballos de Troya. No restaure ni
instale nunca un programa setuid de cuyo código fuente no disponga para
examinarlo.
•
Para posibilitar el acceso de los usuarios a determinados programas de superusuario,
HP recomienda utilizar la interface SMH de acceso restringido. SMH de acceso
restringido permite a los usuarios que no sean superusuarios obtener acceso a zonas
concretas de la interface SMH. Para obtener más información, consulte la página
de manual de smh(1M).
2.6.1 Motivos por los que los programas setuid y setgid representan un riesgo
Siempre que se ejecuta un programa, éste crea un proceso con cuatro números de
identificación: la identificación de usuario real y efectiva (ruid y euid) y la identificación
de grupo real y efectiva (rgid y egid). Normalmente, estos pares de números de
identificación son idénticos.
No obstante, la ejecución de un programa setuid o setgid cambia el número de
identificación euid o egid del proceso: se sustituye el número asociado al propietario
por el del objeto. Los procesos creados adquieren sus atributos del objeto y conceden
al usuario los mismos derechos de acceso que al propietario o el grupo del programa.
•
Si el bit de setuid se activa, los privilegios del proceso se definen en los del
propietario del archivo.
•
Si el bit de setgid se activa, los privilegios del proceso se definen en los del grupo
del archivo.
•
Si no se activa el bit de setuid ni el bit de setgid, los privilegios del proceso
permanecen igual.
•
Un caso especialmente arriesgado es el que se da cuando un programa contiene
un setuid, o cambio de identidad, a root, ya que el usuario obtiene todos los
privilegios al alcance del usuario root. Esto entraña peligro porque el programa
se puede utilizar infringiendo las normas de seguridad del sistema. Este problema
también surge, en menor medida, en otros casos de setuid y setgid.
Por motivos de seguridad, el kernel de HP-UX suele omitir los bits de setuid y setgid
contenidos en las secuencias de comandos. Esta regla se puede omitir modificando el
parámetro optimizable secure_sid_scripts, pero se recomienda encarecidamente
no cambiar el valor por defecto de este parámetro. Para obtener más información sobre
este parámetro optimizable, consulte la página de manual de secure_sid_scripts(5).
50
Administración de la seguridad de los usuarios y del sistema
2.6.2 Definición de los números de identificación
Los números de identificación se definen de estas maneras distintas:
•
Los números de identificación ruid y rgid se heredan del proceso login, que
define los números de identificación uid y gid. Los valores de uid y gid se
especifican en el archivo /etc/passwd.
•
El comando login también cambia los valores de ruid, euid, rgid y egid.
•
El comando su cambia los valores de euid y ruid.
•
El comando newgrp puede cambiar el valor de gid.
•
Defina los bits de setuid y setgid con la llamada del sistema chmod() o el
comando chmod. Para obtener más información, consulte las páginas de manual
de chmod(1) y chmod(2).
2.6.3 Pautas para acotar la influencia de setuid
Sea precavido si agrega programas setuid a root en un sistema existente. La adición
de un programa setuid a root cambia la configuración del sistema y es posible que
ponga en peligro la seguridad.
Imponga el uso restrictivo de los programas con privilegios guiándose por las siguientes
recomendaciones administrativas y de programación:
•
Utilice los programas setuid y setgid sólo cuando sea absolutamente necesario.
•
Asegúrese de que ningún otro usuario tiene acceso de escritura a ningún programa
setuid.
•
Siempre que sea posible, utilice setgid en lugar de setuid para reducir el
alcance del daño que pueda producirse como consecuencia de posibles brechas
en la codificación o infracciones de la seguridad.
•
Cada cierto tiempo, realice búsquedas en los sistemas de archivos para detectar
programas setuid y setgid nuevos o modificados. Puede utilizar el comando
ncheck -s.
•
Sepa exactamente lo que hacen los programas setuid y setgid, y compruebe
que se limitan a hacer sólo lo previsto. Si se extralimitan en sus funciones, elimine
el programa o el atributo setuid correspondiente.
•
Si tiene que copiar un programa setuid, asegúrese de que los modos son correctos
en el archivo de destino.
•
Escriba programas setuid de modo que puedan probarse en datos que no sean
críticos, sin atributos setuid ni setgid. Aplique estos atributos sólo después de
analizar el código y de que todos los departamentos interesados tengan la certeza
de que los programas nuevos no vulneran la seguridad.
2.6 Manejo de los programas setuid y setgid
51
•
Asegúrese de que un programa setuid no crea archivos a los que puedan tener
acceso de escritura personas distintas del usuario previsto.
•
Restablezca el valor de euid antes de una llamada del sistema exec*(). Tenga
en cuenta que se puede llamar a exec*() desde otras rutinas de las bibliotecas
y sea cauto al utilizar rutinas (incluidas popen(), system(), execlp() y
execvp()) que bifurquen un shell para ejecutar un programa. Para obtener más
información, consulte las páginas de manual de exec(2), popen(3S) y system(3S).
•
Cuando escriba programas setuid, utilice setresuid() alrededor de las partes
del código que exijan privilegios, para reducir la ventana de vulnerabilidad. Para
obtener más información, consulte la página de manual de setresuid(2).
•
Cierre todos los descriptores de archivo innecesarios antes de llamar a exec*().
•
Asegúrese de que todas las variables (PATH, IFS) y el valor de umask del entorno
del programa son suficientemente restrictivos.
•
No utilice la llamada del sistema creat() para crear un archivo de bloqueo. En
su lugar, utilice lockf() o fcntl(). Para obtener más información, consulte las
páginas de manual de lockf(2) y fcntl(2).
•
Tenga especial cuidado en evitar las saturaciones del búfer, como las que se
producen al utilizar sprintf(), strcpy() y strcat() sin la validación oportuna
de la longitud del parámetro. Para obtener más información, consulte las páginas
de manual de printf(3S) y string(3C).
2.7 Prevención de ataques de desbordamiento del búfer en la pila
La transmisión de grandes cantidades de datos a un programa recibe el nombre de
ataque de desbordamiento del búfer en la pila. Normalmente, los datos contienen
comandos que consiguen engañar al programa para que los ejecute. Estos ataques se
emplean para obtener acceso no autorizado al sistema, destruir o modificar datos, o
causar la denegación de servicio a usuarios válidos.
Para controlar los ataques de desbordamiento del búfer en la pila, observe si se producen
los siguientes cambios:
•
Un programa setuid que ejecuta otros programas.
•
Un programa que obtiene inesperadamente cero (0) como número de identificación
de usuario. Este número de identificación de usuario corresponde únicamente al
superusuario o al usuario root.
Para evitar ataques de desbordamiento del búfer en la pila:
52
•
Habilite el parámetro optimizable executable_stack del kernel.
•
Utilice el comando chatr +es.
Administración de la seguridad de los usuarios y del sistema
El parámetro optimizable executable_stack del kernel permite impedir que un
programa ejecute código de su pila. Esto salvaguarda el sistema contra la transmisión
por parte de un intruso de datos no válidos a un programa, lo que haría que el programa
ejecutara un código arbitrario desde su pila de programa.
El parámetro optimizable executable_stack del kernel habilita o deshabilita
globalmente la protección contra el desbordamiento del búfer en la pila. El valor 0 (cero)
hace que no se puedan ejecutar las pilas y es el valor preferido por motivos de seguridad.
Por defecto, a efectos de compatibilidad retroactiva, el parámetro optimizable
executable_stack se define en 1, lo que permite la ejecución de las pilas y, por lo
tanto, no se aplica protección. Utilice la interface HP SMH o el comando kmtune para
cambiar el valor del parámetro optimizable executable_stack.
Otra forma más de aplicar la protección contra el desbordamiento del búfer en la pila
consiste en utilizar la opción +es del comando chatr. Por ejemplo, si
executable_stack se define en cero, pero un programa en efecto necesita ejecutar
su pila, utilice el siguiente comando chatr para permitir la ejecución de la pila de ese
programa:
# chatr -es enable programa
Para obtener más información, consulte las páginas de manual de chatr(1), kmtune(1M)
y executable_stack(5).
2.8 Protección de los terminales y las estaciones de trabajos sin vigilancia
Los terminales y las estaciones de trabajo sin vigilancia son muy vulnerables a los usuarios
no autorizados. Como una puerta sin cerrar con llave, están abiertos a cualquiera. Esta
sección explica las siguientes maneras de reducir este riesgo:
•
Controle el acceso con /etc/inittab y niveles de ejecución. Modifique el archivo
/etc/inittab para identificar los dispositivos que deben ejecutarse en distintos
niveles de ejecución.
•
Proteja los archivos de dispositivo del terminal denegando el acceso universal a las
sesiones de usuarios del terminal.
•
Configure el bloqueo de pantalla.
2.8.1 Control del acceso con /etc/inittab y niveles de ejecución
Un nivel de ejecución es un estado del sistema en el que se permite la ejecución de un
conjunto específico de procesos. Estos procesos y los niveles de ejecución por defecto
se definen en el archivo /etc/inittab. Los niveles de ejecución varían entre 0 y 6,
s o S. Si un proceso no tiene el mismo nivel de ejecución que el sistema, se terminará.
Si lo tiene, se iniciará o seguirá ejecutándose.
A continuación, se muestra un ejemplo en el que se permite la ejecución de terminales
y módems en los niveles de ejecución seleccionados. Tanto ttp1 como ttp2 tienen los
niveles de ejecución 2 y 3.
2.8 Protección de los terminales y las estaciones de trabajos sin vigilancia
53
ttp1:23:respawn:/usr/sbin/getty -h tty0p1 9600
ttp2:23:respawn:/usr/sbin/uugetty -h ttypd0p2 9600
A continuación, se muestra un ejemplo de cómo cambiar los niveles de ejecución después
del horario de trabajo normal para deshabilitar los terminales y módems con un trabajo
cron. Durante el día, el nivel de ejecución es 3 y los terminales ttp1 y ttp2 se pueden
utilizar, ya que tienen los niveles de ejecución 2 y 3. A las 8:00 h de lunes a viernes,
el nivel de ejecución del sistema se define en 3:
# crontab -e
0 8 * * 1-5 /sbin/init 3
0 17 * * * /sbin/init 4
Todos los días a las 17:00 h (en el ejemplo anterior, 17 indica las 17:00 h o 5:00
p.m.), el nivel de ejecución del sistema cambia a 4. Los terminales ttp1 y ttp2 no se
pueden utilizar después de las 17:00 h porque sus niveles de ejecución son 2 y 3.
2.8.2 Protección de los archivos de dispositivo de terminales
Si un intruso obtiene acceso a un terminal abierto, puede desviar un comando a otra
ventana de terminal. En el siguiente ejemplo, un comando de eliminación (rm) se desvía
a /dev/tty0p0:
# echo "\r rm -r / \r\033d" > /dev/tty0p0
Para impedir que se escriban mensajes en un terminal, puede utilizar el comando mesg
-n (o mesg n). Este comando revoca los permisos de escritura a los usuarios que no
tengan los privilegios adecuados. Para obtener más información, consulte las páginas
de manual de mesg(1) y write(1).
# vi ~/.shrc
mesg n
Otra manera de proteger la estación de trabajo o el terminal consiste en utilizar el
comando xhost. Para obtener más información, consulte la página de manual de
xhost(1). El comando xhost define los nombres de los sistemas host y los usuarios a
los que se permite conectarse a la estación de trabajo.
# xhost +Otro.sistema
Para permitir que todos los sistemas y usuarios tengan acceso a la estación de trabajo
(desactivando así el control del acceso), utilice el siguiente comando:
# xhost +
2.8.3 Configuración del bloqueo de pantalla
Esta sección analiza cómo configurar el bloqueo de pantalla utilizando la variable
TMOUT y el administrador de bloqueos del entorno CDE.
54
Administración de la seguridad de los usuarios y del sistema
2.8.3.1 Configuración de la variable TMOUT
Puede configurar la variable TMOUT para bloquear automáticamente los terminales
inactivos.
Si utiliza a menudo otros sistemas y copia el archivo .profile de un sistema en otro,
lo más conveniente es agregar la variable TMOUT al archivo .profile. Si suele
permanecer en un sistema, puede emplear cualquiera de los dos métodos para bloquear
el terminal.
Para configurar la variable TMOUT, modifique el archivo .profile como se muestra
a continuación:
# vi ~/.profile
export TMOUT=600 # (bloqueo tras 600 segundos de inactividad)
Puede cambiar el valor 600 por otro valor que desee.
2.8.3.2 Configuración del administrador de bloqueos del entorno CDE
Puede configurar el administrador de bloqueos del entorno CDE para bloquear la pantalla
transcurrido un determinado tiempo de inactividad. Para configurar el administrador de
bloqueos del entorno CDE de manera que se bloquee la pantalla tras 10 minutos de
inactividad, escriba los siguientes comandos:
# cp /usr/dt/config/C/sys.resources /etc/dt/config/C/sys.resources
# vi /etc/dt/config/C/sys.resources
dtsession*lockTimeout: 10
También puede utilizar el panel de tareas Style Manager para ajustar el administrador
de bloqueos del entorno CDE. Para ello, haga clic en el icono screen.
2.9 Protección contra el acceso de dispositivos remotos al sistema
Para proteger el sistema contra el acceso remoto, adopte las siguientes medidas de
precaución:
•
Exija el uso de un sistema de marcación de retorno con equipo físico para todos
los módems interactivos.
•
Exija una contraseña adicional a los usuarios de módem; para ello, agregue una
entrada para el dispositivo de módem en el archivo /etc/dialups y, de forma
opcional, en el archivo /etc/d_passwd. Consulte la Sección 2.9.1.
•
Exija a los usuarios que renueven con frecuencia las cuentas de marcación de
entrada.
•
Cancele rápidamente el acceso al sistema cuando un usuario deje de trabajar para
la empresa.
•
•
Establezca un programa de auditoría periódica para revisar el uso remoto.
Conecte los módems y el equipo de marcación de retorno en un solo sistema HP-UX
y deje que los servicios de red lleguen al sistema de destino desde este punto.
2.9 Protección contra el acceso de dispositivos remotos al sistema
55
•
Establezca excepciones con la marcación de retorno en el caso del acceso UUCP.
Se pueden establecer restricciones adicionales mediante la configuración apropiada
del protocolo UCCP. Para obtener más información, consulte la página de manual
de uucp(1).
Otra excepción posible es la transferencia de archivos mediante el comando
kermit. Para obtener más información, consulte la página de manual de kermit(1).
•
Si se produce una infracción de la seguridad debido a factores desconocidos, cierre
el acceso tanto a través de la red como del teléfono e informe al administrador de
la red.
•
Para potenciar la seguridad cuando se configure un sistema de módem de marcación
de retorno, dedique el mecanismo de marcación de salida sólo a la función de
marcación de salida. No debe configurarse para aceptar operaciones de marcación
de entrada. Utilice otro módem conectado a otra línea de teléfono para el servicio
de marcación de entrada.
•
No mantenga una lista de los números de teléfono de los módems y téngalos en
un sistema distinto de otros teléfonos empresariales. No haga públicos los números
de teléfono de marcación de entrada.
•
Proteja físicamente los módems.
•
Utilice la característica de identificación del llamante para identificar todas las
llamadas entrantes a los módems.
•
No permita el desvío de llamada u otros servicios telefónicos adicionales en las
líneas de los módems. No utilice módems de teléfonos celulares.
•
Para el acceso de forma local y remota, considere la posibilidad de instalar un
producto de servidor AAA de HP-UX. Mediante el protocolo de servicio de usuario
de acceso telefónico de autenticación remota (RADIUS - Remote Authentication
Dial-In User Service) estándar en el sector, el servidor AAA de HP-UX ofrece servicios
de autenticación, autorización y contabilidad del acceso de los usuarios a la red
en el punto de entrada a una red. Para obtener más información, consulte el
documento HP-UX AAA Server Administrator's Guide.
•
En lo que respecta a las conexiones móviles con Mobile IPv6, utilice HP-UX IPSec
para cifrar y autenticar los mensajes con el protocolo Mobile IPv6 entre el cliente
Mobile IPv6 y Home Agent. Para obtener más información, consulte el documento
HP-UX IPSec Administrator's Guide.
2.9.1 Control del acceso con los archivos /etc/dialups y /etc/d_passwd
Para conseguir una seguridad adicional en la identificación de usuarios remotos, agregue
entradas en los archivos /etc/dialups y /etc/d_passwd. Estos archivos se utilizan
para controlar la seguridad del inicio de sesión mediante marcación telefónica. Para
obtener más información, consulte las páginas de manual de dialups(4) y login(1).
56
Administración de la seguridad de los usuarios y del sistema
Si el archivo /etc/dialups existe, el proceso de inicio de sesión compara el terminal
con los que se indican en el archivo /etc/dialups. Si el terminal aparece indicado
en el archivo /etc/dialups, login solicitará una contraseña. Esta contraseña se
compara con las que aparecen en el archivo /etc/d_passwd.
Además, el archivo /etc/passwd se utiliza para comprobar la contraseña.
A continuación, se muestra un ejemplo de cómo configurar el archivo /etc/dialups:
# vi /etc/dialups (enumera los terminales permitidos)
/dev/ttyd0p1
/dev/ttyd0p2
# vi /etc/d_passwd
/usr/bin/sh:xxxencrypted-passwordxxxxxxxxx:comments
/usr/bin/ksh:xxxencrypted-passwordxxxxxxxx:comments
/sbin/sh:xxxencrypted-passwordxxxxxxxxx:comments
Lo que el usuario ve es:
Login:
Password:
Dialup password:
Para modificar contraseñas en el archivo /etc/d_passwd, utilice el comando passwd
como sigue:
# passwd -F /etc/d_passwd ruta_shell
La ruta_shell es la ruta del shell que se indica en el archivo /etc/d_passwd.
2.10 Protección de los titulares de inicio de sesión
Los titulares de inicio de sesión se suelen utilizar para mostrar información del sistema
como el nombre de sistema, la versión de revisión y la finalidad del sistema. Esta
información puede ayudar a que un usuario no autorizado conozca mejor el sistema.
A continuación, se indican algunas pautas para crear titulares de inicio de sesión más
seguros:
•
Consulte al departamento jurídico para determinar el mensaje adecuado.
•
Agregue una advertencia al mensaje del titular para indicar que se prohíbe el uso
no autorizado.
•
Guarde coherencia en la presentación de todos los titulares, con independencia
del método de inicio de sesión.
Puede modificar un titular de las siguientes maneras:
•
Modifique el titular login definido en los archivos /etc/copyright y /etc/
motd.
2.10 Protección de los titulares de inicio de sesión
57
•
Modifique el titular telnet definido en el archivo /etc/issue. El comando de
archivo de titular telnetd -b define un titular personalizado. Para utilizar /etc/
issue como el titular de inicio de sesión, agregue las siguientes líneas al archivo
/etc/inetd.conf:
telnet stream tcp nowait root /usr/lbin/telnetd \
telnetd -b /etc/issue
Cuando inetd inicie telnetd, se utilizará el titular del archivo /etc/issue.
Para obtener más información, consulte las páginas de manual de inetd(1M),
telnetd(IM) e inetd.conf(4).
•
Modifique el titular ftp definido en el archivo /etc/ftpd/ftpaccess, que es
el archivo de configuración de ftpd. Otros mensajes mostrados se definen en el
archivo /etc/ftpd/ftpaccess: saludo, titular, nombre del host y texto del
mensaje. Para obtener más información, consulte las páginas de manual de
ftpdaccess(4) y ftpd(1M).
A continuación, se muestra un ejemplo de telnet no seguro con un titular de inicio de
sesión:
# telnet computerAmy
El titular de inicio de sesión telnet muestra la versión de revisión y el tipo de equipo.
Si un usuario no autorizado intenta utilizar telnet para tener acceso a computerAmy,
podría ser demasiada información.
A continuación, se muestra un ejemplo de telnet con un titular de inicio de sesión
más seguro:
$ telnet computerMom
Trying...
Connected to computerMom.city.company.com.
Escape character is '^]'.
Local flow control on
Telnet TERMINAL-SPEED option ON
**************************************************************
This is a private system operated for Hewlett-Packard company
business. Authorization from HP management is required
to use this system. Use by unauthorized persons is prohibited.
*************************************************************
login: Connection closed by foreign host.
2.11 Protección de la cuenta de usuario root
A continuación, se indican algunas recomendaciones para proteger la cuenta de usuario
root:
58
Administración de la seguridad de los usuarios y del sistema
•
No comparta la contraseña de usuario root.
•
No utilice la barra, /, como el directorio inicial raíz.
•
Examine la salida de los comandos last -R y lastb -R en busca de inicios de
sesión poco comunes o infructuosos de usuario root y para comprobar quién ha
iniciado una sesión como usuario root.
•
Examine el archivo /var/adm/sulog en busca de intentos de utilizar el comando
su root.
•
Busque cuentas no autorizadas con un cero (0) como número de identificación de
usuario; utilice el comando logins -d.
Las siguientes secciones analizan más detenidamente cómo proteger la cuenta de usuario
root.
2.11.1 Supervisión del acceso a la cuenta de usuario root
Si hay dos o más administradores del sistema que necesitan tener acceso de usuario
root, a continuación se indican algunas recomendaciones para su seguimiento:
•
Permita sólo inicios de sesión de usuario root directos en la consola del sistema.
Cree el archivo /etc/securetty con una sola entrada, console, como sigue:
#echo console > /etc/securetty
Esta restricción se aplica a todos los nombres de inicio de sesión con un cero (0)
como número de identificación de usuario. Para obtener más detalles, consulte la
página de manual de login(1).
•
Exija a los administradores que utilicen el comando su root desde su cuenta
personal para tener acceso de usuario root. Por ejemplo:
login:me
$ su root
password:xxxx
•
Supervise /var/adm/sulog para comprobar quién ha tenido acceso a la cuenta
root con el comando su.
•
Configure una cuenta de usuario root independiente para cada administrador del
sistema.
# vipw
root:xxx:0:3::/home/root:/sbin/sh
root1:xxx:0:3::/home/root1:/sbin/sh
root2:xxx:0:3::/home/root2:/sbin/sh
•
Supervise el archivo de historial de cada administrador del sistema como sigue:
#more ~root1/.sh_history
#more ~root2/.sh_history
2.11 Protección de la cuenta de usuario root
59
•
Supervise los intentos fructuosos e infructuosos de utilizar el comando su en el
archivo /var/adm/syslog.
2.11.2 Uso de Restricted SMH Builder para el acceso limitado de superusuario
Si necesita proporcionar acceso limitado de superusuario a un usuario que no sea
superusuario, puede activar Restricted SMH Builder. Con Restricted SMH Builder, puede
habilitar o deshabilitar zonas concretas de la interface SMH para el usuario. Para activar
Restricted SMH Builder, escriba:
# smh -r
Cuando los usuarios con acceso restringido ejecuten la interface SMH, tendrán el estado
de superusuario en las zonas definidas y sólo podrán ver estas zonas de SMH en el
menú. Todas las demás zonas de la interface SMH estarán ocultas para el usuario.
Cuando los usuarios sin los permisos de acceso adecuados ejecuten la interface SMH,
recibirán un mensaje de error indicándoles que deben ser superusuarios.
También se pueden agregar más aplicaciones a la interface SMH y configurarlas para
el acceso restringido.
2.11.3 Revisión del acceso de superusuario
El archivo /var/adm/sulog registra todos los intentos de utilizar el comando su
root, incluidos los infructuosos. Los intentos fructuosos se indican con un signo más (+),
mientras que los infructuosos se indican con un signo menos (-). Sólo el usuario root
puede ver el archivo /var/adm/sulog. Por ejemplo:
# su root
Password:
# ll /var/adm/sulog
-rw------- 1 root root 690 Aug 17 19:37 /var/adm/sulog
En el siguiente ejemplo, userone ha utilizado satisfactoriamente el comando su para
tener acceso a la cuenta root. Un segundo usuario, usertwo, no pudo. Además,
usertwo tampoco ha podido utilizar satisfactoriamente el comando su para tener
acceso a gooduser1.
# more /var/adm/sulog
SU 08/17 19:10:00 + 0 userone-root
SU 08/17 19:36 - 0 usertwo-root
SU 08/17 19:36 - 0 usertwo-root
SU 08/17 19:36 + 0 userone-root
SU 08/17 19:37 - 0 usertwo-gooduser1
60
Administración de la seguridad de los usuarios y del sistema
3 HP-UX Bastille
HP-UX Bastille es una herramienta de cierre para el fortalecimiento de la seguridad que
se puede utilizar para mejorar la seguridad del sistema operativo HP-UX. Facilita el
cierre personalizado de cada sistema individual mediante una función de codificación
parecida a la del host bastión y otras listas de comprobación de fortalecimiento y cierre.
Bastille se desarrolló en un principio en la comunidad de código fuente abierto para
utilizarlo en los sistemas Linux. HP ha realizado contribuciones significativas al contenido
de Bastille, utilizándolo como fundamento para el desarrollo de HP-UX Bastille.
Este capítulo analiza los siguientes temas:
•
Características y ventajas (Sección 3.1)
•
Instalación de HP-UX Bastille (Sección 3.2)
•
Uso de HP-UX Bastille (Sección 3.3)
•
Uso de HP-UX Bastille para revocar cambios (Sección 3.4)
•
Ubicación de los archivos (Sección 3.5)
•
Consejos y solución de problemas (Sección 3.6)
•
Eliminación de HP-UX Bastille (Sección 3.7)
3.1 Características y ventajas
HP-UX Bastille ofrece las siguientes características y ventajas:
•
Cierra el sistema
— Configura los demonios y los valores del sistema para que sean más seguros
— Desactiva los servicios innecesarios, por ejemplo, pwgrd
— Capacita a los usuarios a través de su interface de usuario
— Configura Software Assistant y Security Patch Check para que se ejecuten
automáticamente
— Configura un servidor de seguridad basado en IPFilter
•
Informa del estado de configuración de la seguridad
— Genera informes sobre el estado de configuración de la seguridad
— Crea puntos de referencia de la configuración de HP-UX y compara el estado
actual del sistema con el punto de referencia guardado (deriva)
•
Se integra en el administrador System Insight Manager (SIM)
— Cierra el sistema y genera informes por medio del administrador SIM
3.1 Características y ventajas
61
— Ofrece una configuración probada previamente, SIM.config, para el cierre
del servidor de SIM
3.2 Instalación de HP-UX Bastille
HP-UX Bastille se incluye como software recomendado en el medio del entorno operativo,
y se puede instalar y ejecutar con Ignite-UX o Update-UX. Para obtener información
sobre la instalación de HP-UX Bastille, consulte el documento Guía de instalación y
actualización a HP-UX 11i v3.
Para descargar la versión más reciente de HP-UX Bastille, visite:
http://www.hp.com/go/bastille
3.3 Uso de HP-UX Bastille
HP-UX Bastille se puede utilizar de forma interactiva o no interactiva para realizar las
siguientes acciones:
•
Para cerrar el sistema (crear un archivo de configuración de seguridad o aplicar
otro existente), escriba:
# bastille -x
•
Para duplicar un archivo de configuración de seguridad en varios equipos, escriba:
# bastille -b -f archivo
•
Para generar informes sobre el estado de configuración del sistema, escriba:
# bastille --assess
•
Crear puntos de referencia de configuración de HP-UX Bastille y comparar el estado
actual del sistema con un punto de referencia guardado. Para guardar un punto
de referencia, escriba:
# bastille_drift --save_baseline punto_referencia
Para comparar el estado del sistema con el punto de referencia especificado,
escriba:
# bastille_drift --from_baseline punto_referenciae
Para obtener más información, consulte las páginas de manual de bastille(1M) y
bastille_drift(1M).
NOTA: Vuelva a ejecutar la utilidad bastille_drift siempre que se instalen
software o parches nuevos a fin de comprobar y verificar si dichos parches o software
han cambiado el estado del sistema. La utilidad bastille_drift también ayuda a
identificar el cambio en el estado del sistema cuando swverify se ejecuta mediante
la opción -x fix=true o la opción -F para ejecutar secuencias de comandos «fix»
específicas del proveedor.
62
HP-UX Bastille
3.3.1 Uso interactivo de HP-UX Bastille
HP-UX Bastille se ejecuta interactivamente mediante la interface X puesta en ejecución
a través de Perl/Tk. La interface necesita un servidor X y ofrece lo siguiente:
•
Acceso aleatorio entre los módulos de preguntas.
•
Indicadores de compleción para mostrar el avance del usuario.
•
Conducción en forma de túnel del tráfico X11 a través de un canal cifrado mediante
la siguiente opción:
# ssh -X
Para obtener más información, consulte la página de manual de ssh(1).
La Figura 3-1 muestra la pantalla principal de la interface de usuario de HP-UX Bastille.
Figura 3-1 Interface de usuario de HP-UX Bastille
La interface de usuario capacita a los usuarios orientándolos por una serie de preguntas
agrupadas por módulos (consulte la Tabla 3-1). Cada pregunta explica un problema
de seguridad y describe la acción resultante necesaria para cerrar el sistema HP-UX.
Cada pregunta también describe, de forma avanzada, el costo y el beneficio de cada
decisión, y el usuario decide cómo ha de tratar los problemas la herramienta.
3.3 Uso de HP-UX Bastille
63
Después de contestar a todas las preguntas, HP-UX Bastille proporciona asistencia
automatizada para dar cada paso del proceso de cierre. HP-UX Bastille lleva a cabo
las acciones que puede ejecutar automáticamente y, a continuación, genera una lista
de tareas pendientes con el resto de las acciones manuales que el usuario debe efectuar.
Las acciones pendientes deben llevarse a cabo para completar el proceso de cierre de
HP-UX Bastille.
Tabla 3-1 Módulos de preguntas de HP-UX Bastille
Nombre del módulo
Descripción
Patches Applications
(Aplicaciones de parches)
Instala y configura para ayudar con la comprobación de la conformidad
con los boletines de seguridad.
File Permissions (Permisos de
archivos)
Ejecuta SUID y otra optimización de los permisos.
Account Security (Seguridad de Configura los valores de inicio de sesión y el acceso a cron.
cuentas)
Secure inetd (inetd seguro)
Desactiva los servicios de inetd innecesarios.
Miscellaneous Daemons (Varios Desactiva los servicios que con frecuencia resultan innecesarios o que
demonios)
representan un riesgo para la seguridad.
sendmail
Configura el correo para que sea más seguro o deja que el usuario lo
deshabilite.
DNS
Desactiva o configura los servidores DNS para que sean más seguros.
Apache
Configura los servidores Apache Web para que sean más seguros.
FTP
Configura los servidores FTP para que sean más seguros.
HP-UX
Lleva a cabo acciones de configuración de la seguridad que son
exclusivas de la plataforma HP-UX.
IPFilter
Crea un servidor de seguridad basado en IPFilter.
3.3.2 Uso no interactivo de HP-UX Bastille
El fortalecimiento de la seguridad se puede realizar directamente a través del motor de
configuración. Este método es útil para duplicar una configuración de la seguridad en
varios equipos que tengan instalados el mismo sistema operativo y las mismas
aplicaciones. El motor de configuración utiliza un archivo de configuración predefinido.
Esta opción puede utilizar el archivo creado en la ubicación por defecto por una sesión
interactiva o bien un archivo alternativo especificado por la opción -f, como sigue:
# bastille -b -f archivo
3.3.3 Configuración de un sistema
Para configurar un sistema o crear un archivo de configuración que pueda reutilizarse
posteriormente en un sistema diferente, dé los siguientes pasos:
64
HP-UX Bastille
1.
2.
Cambie a usuario root, ya que HP-UX Bastille tiene que cambiar la configuración
y los valores del sistema. Si HP-UX Bastille no se ejecuta localmente, puede optar
por conducir por un túnel el tráfico X11 a través de Secure Shell (ssh) o IPSec para
limitar la exposición de la red, o por utilizar una solución de distribución en el
escritorio más completa que aborda los ataques de los usuarios locales, así como
los remotos.
Si va a efectuar cambios en el sistema, decida si HP-UX Bastille debe utilizarse de
forma interactiva o de forma no interactiva. Los usuarios neófitos deben ejecutar
HP-UX Bastille interactivamente para crear un perfil de configuración, a menos que
la distribución incluya la entrega de archivos de configuración precreados, por
ejemplo, DMZ.config. Cuente con que necesitará una hora para leer y contestar
a todas las preguntas.
Para obtener más información sobre el uso interactivo y no interactivo de HP-UX
Bastille, consulte la Sección 3.3.
3.
Siga el procedimiento apropiado (interactivo o no interactivo) en función de la
decisión adoptada en el paso 2.
Procedimiento interactivo
a. Inicie HP-UX Bastille
Los usuarios neófitos deben ejecutar HP-UX Bastille interactivamente para crear
un perfil de configuración. La herramienta actualiza la variable de entorno PATH
al instalarse, así que si ha cerrado una sesión y ha vuelto a iniciarla después
de instalar HP-UX Bastille, escriba lo siguiente para iniciar la herramienta:
# bastille
Si la variable de entorno PATH no se ha actualizado, escriba lo siguiente para
iniciar HP-UX Bastille:
# /opt/sec_mgmt/bastille/bin/bastille
Sólo se muestran las categorías de preguntas correspondientes a la configuración
actual.
b. Conteste a las preguntas
Las preguntas se dividen en categorías según la función y se utilizan marcas de
verificación como indicadores de compleción para denotar que una categoría
se ha terminado. Esto permite realizar un seguimiento del avance por el
programa.
Al contestar a las preguntas, utilice el menú Explanation-Detail para alternar
entre explicaciones más o menos detalladas. No todas las preguntas tienen
contestaciones tanto largas como breves.
Procedimiento interactivo
65
c. Guarde la configuración y aplique los cambios
Puede utilizar la barra de menús en cualquier momento para guardar o cargar
un archivo de configuración. El uso de la opción Save As genera un archivo de
configuración más grande puesto que la herramienta da por sentado que el
usuario no ha tenido por qué terminar o que podría cambiar la configuración
posteriormente. El uso de la opción Save/Apply le indica a la herramienta que
el usuario ha terminado y que se puede aplicar más filtrado. Aunque el archivo
de configuración generado puede tener un tamaño diferente, la funcionalidad
de HP-UX Bastille permanece igual en ambos casos. La opción Save/Apply
siempre guarda el archivo de configuración en la ubicación actual enumerada
en la barra de título de HP-UX Bastille.
Procedimiento no interactivo
a. Ejecute HP-UX Bastille interactivamente para crear un archivo de configuración
si aún no existe uno.
No se facilita un archivo de configuración por defecto para todas las
distribuciones. En tal caso, deberá ejecutar interactivamente HP-UX Bastille en
un principio para crear un archivo de configuración. Para obtener más
información, consulte la sección «Procedimiento interactivo».
b. Copie el archivo de configuración en cada equipo que desee replicar
Copie el archivo de configuración, /etc/opt/sec_mgmt/bastille/config,
desde su ubicación en el primer equipo en la misma ubicación de los demás
equipos:
# bastille -b -f archivo
NOTA: Puesto que parte de las preguntas son específicas del sistema operativo
o del software de seguridad instalado, deberá instalarse el mismo sistema
operativo con el mismo software instalado en los equipos que hayan de
duplicarse que en el equipo donde se creó el archivo de configuración.
c. Instale HP-UX Bastille en cada uno de los equipos que haya de replicarse
Esto puede llevarse a cabo en conjunto y al mismo tiempo, y se pueden recopilar
los archivos de registro de las acciones y errores para su posterior revisión.
Escriba:
# bastille -b
4.
Examine los archivos de registro
Para consultar los archivos de registro en tiempo real, escriba:
# tail -f archivo_registro
66
HP-UX Bastille
El archivo de registro de las acciones, /var/opt/sec_mgmt/bastille/log/
action-log, contiene los pasos específicos que HP-UX Bastille dio al efectuar
cambios en el sistema. Sólo se crea si se aplican los cambios en el sistema.
El archivo de registro de las errores, /var/opt/sec_mgmt/bastille/log/
error-log, contiene los errores hallados por HP-UX Bastille al efectuar cambios
en el sistema. Sólo se crea si se producen errores durante la ejecución.
5.
Lleve a cabo las acciones enumeradas en la lista de tareas pendientes
La herramienta, después de llevar a cabo las acciones que puede efectuar automáticamente, genera una lista de tareas pendientes, /var/opt/sec_mgmt/
bastille/TODO.txt, que describe las acciones restantes que el usuario debe
efectuar manualmente. Esto incluye los reinicios si alguno de los cambios requiere
uno.
Las acciones de la lista de tareas pendientes deben completarse para garantizar
una configuración segura.
NOTA: La lista de tareas pendientes sólo se crea cuando se aplican los cambios
en el sistema.
3.4 Uso de HP-UX Bastille para revocar cambios
Para revocar la configuración de seguridad y recuperar el estado anterior a la ejecución
de HP-UX Bastille, escriba:
# bastille -r
Si debe llevarse a cabo alguna acción manual para restaurar el estado anterior de
HP-UX Bastille, el proceso de revocación crea el archivo var/opt/sec_mgmt/
bastille/TOREVERT.txt. Las acciones enumeradas en este archivo deben llevarse
a cabo para completar el proceso de revocación.
Después de ejecutar la opción de revocación, consulte el archivo TOREVERT.txt en
busca de acciones manuales que deban efectuarse para completar el proceso de
revocación. El archivo se ubica en /var/opt/sec_mgmt/bastille/TOREVERT.txt.
NOTA: Además de algunas opciones del servidor de seguridad, el restablecimiento
del sistema es la única forma en que HP-UX Bastille hace que un sistema sea menos
seguro.
3.5 Ubicación de los archivos
La lista siguiente describe los archivos clave de HP-UX Bastille y muestra la ubicación
de los mismos:
•
Archivo de configuración por defecto: Contiene las respuestas a la sesión guardada
más recientemente si no se especifica ningún otro nombre de archivo:
3.4 Uso de HP-UX Bastille para revocar cambios
67
/etc/opt/sec_mgmt/bastille/config
•
Archivo de registro de configuración: Archivo que, si se aplica por medio de HP-UX
Bastille, cierra los elementos pertinentes de Bastille que HP-UX Bastille haya cerrado
completamente, en el caso de que ambos sistemas tengan la misma versión de
HP-UX, un conjunto de aplicaciones instaladas parecido y una configuración
parecida. En los casos en que los sistemas difieren, el archivo de configuración
puede contener preguntas extra no aplicables al sistema de destino o preguntas
que faltan y que son necesarias en el sistema remoto. HP-UX Bastille le informará
en el primer caso y, en el segundo, generará un error. A continuación, le dará la
oportunidad de contestar a las preguntas que faltan o de quitar las preguntas extra
en la interface gráfica.
/var/opt/sec_mgmt/bastille/log/Assessment/
assessment-log.config
•
Archivo de registro de errores: Contiene los errores hallados por HP-UX Bastille al
efectuar cambios en el sistema:
/var/opt/sec_mgmt/bastille/log/error-log
•
Archivo de registro de acciones: Contiene los pasos específicos que HP-UX Bastille
dio al efectuar cambios en el sistema:
/var/opt/sec_mgmt/bastille/log/action-log
•
Archivo de la lista de tareas pendientes: Contiene las acciones manuales que el
usuario aún debe llevar a cabo para garantizar que el equipo sea seguro:
/var/opt/sec_mgmt/bastille/TODO.txt
•
Secuencia de comandos de las acciones de revocación: Restablece los archivos
modificados por HP-UX Bastille al estado en que estaban antes de ejecutar HP-UX
Bastille:
/var/opt/sec_mgmt/bastille/revert/revert-actions
Esta secuencia de comandos forma parte de la caracerística de revocación (revert).
•
Archivo de acciones por revocar: Contiene las acciones manuales que el usuario
debe llevar a cabo para terminar de restablecer el equipo al estado en que estaba
antes de ejecutar HP-UX Bastille:
/var/opt/sec_mgmt/bastille/TOREVERT.txt
•
Archivos de informes de valoración: El formato de estos archivos es HTML, texto y
como un archivo de registro de HP-UX Bastille:
/var/opt/sec_mgmt/bastille/log/Assessment/
assessment-report.HTML
68
HP-UX Bastille
/var/opt/sec_mgmt/bastille/log/Assessment/
assessment-report.txt
/var/opt/sec_mgmt/bastille/log/Assessment/
assessment-report-log.txt
•
Archivo de deriva de configuración: Contiene información sobre la deriva de
información que el sistema ha experimentado desde la última ejecución de HP-UX
Bastille. Este archivo sólo se crea cuando se ha aplicado una configuración anterior
de HP-UX Bastille en el sistema:
/var/opt/sec_mgmt/bastille/log/Assessment/Drift.txt
3.6 Consejos y solución de problemas
Esta sección aporta información básica sobre los problemas de los que se tiene constancia
y su solución.
•
Los cambios efectuados por HP-UX Bastille pueden hacer que otro software deje de
funcionar
Para solucionar el problema, escriba:
# bastille -r
Este comando restablece el sistema al estado en que estaba antes de ejecutar HP-UX
Bastille, comprobando, a continuación, si el problema se ha eliminado.
•
$DISPLAY not set, cannot use X.
El usuario pidió la interface X, pero la variable de entorno $DISPLAY no estaba
definida. Defina la variable de entorno en la presentación deseada para subsanar
el problema.
•
System is in original state...
El usuario intentó revocar los cambios efectuados por HP-UX Bastille mediante la
opción -r, pero no había cambios que revocar.
•
Must run HP-UX Bastille as root
HP-UX Bastille debe ejecutarse como el usuario root puesto que los cambios que
efectúa afectan a archivos del sistema.
•
Problemas al abrir, copiar o leer archivos
Los mensajes de error que enuncian problemas que surgen al llevar a cabo estas
operaciones normalmente están relacionados con sistemas de archivos NFS que
no confían en el usuario root del equipo local. Para obtener detalles, consulte la
sección options de la página de manual de fstab.
•
Errores relacionados con archivos de configuración individuales
3.6 Consejos y solución de problemas
69
Los errores que exponen quejas sobre archivos de configuración individuales indican
que un sistema se ha modificado con demasiada intensidad para que HP-UX Bastille
efectúe cambios reales, o que los archivos, las ubicaciones o los permisos de los
directorios de instalación de HP-UX Bastille se han modificado.
•
Si HP Secure Shell le bloquea el acceso al sistema nada más producirse la caducidad
de las contraseñas, es posible que necesite un parche PAM: PHCO_24839 (HP-UX
11.11), que se facilita en el Centro de Recursos de Tecnología Informática de
HP (ITRC):
https://www2.itrc.hp.com/service/patch/mainPage.do
•
HP-UX Bastille configura un servidor de seguridad mediante IPFilter
Los conflictos más comunes son los relacionados con los servidores de seguridad.
Cuando un servicio de red no funciona y HP-UX Bastille no lo ha desactivado
expresamente, deberá asegurarse de que las reglas del servidor de seguridad
aprobarán los puertos que necesita.
Para obtener más información, consulte las páginas de manual de ipfstat(8) e
ipmon(8).
3.7 Eliminación de HP-UX Bastille
Cuando HP-UX Bastille se elimina de un sistema, dicha eliminación no restablece el
sistema al estado en el que estaba antes de ejecutar HP-UX Bastille. En cambio, la
eliminación del software deja tras de sí la secuencia de comandos revert-actions.
Esto permite al administrador revocar los archivos de configuración que HP-UX Bastille
ha realizado sin tener instalado HP-UX Bastille. En muchos casos, los cambios de HP-UX
Bastille se registran a nivel de archivo, de modo que la secuencia de comandos
revert-actions sólo puede revocar los archivos que se han modificado.
En otros casos, HP-UX Bastille efectúa cambios más insignificantes que se pueden revocar
de forma programática aun cuando se hayan efectuado cambios intermedios propios
en el mismo archivo. Por ejemplo, los permisos se pueden restablecer a la forma original
aun cuando el archivo en el que se han cambiado los mismos se haya modificado.
1. Utilice el comando swremove para eliminar HP-UX Bastille en un equipo HP-UX.
2. (Opcional) Para revocar los cambios en un sistema donde HP-UX Bastille se ha
eliminado, escriba los siguientes comandos:
#
#
#
#
3.
70
cd /var/opt/sec_mgmt/bastille/revert/
chmod 0500 revert-actions
./revert-actions
mv revert-actions revert-actions.last
Compruebe si se ha creado una lista de acciones por revocar (/var/opt/
sec_mgmt/bastille/TOREVERT.txt). Si existe una, lleve a cabo las acciones
de la lista para completar el proceso de revocación.
HP-UX Bastille
4 HP-UX Standard Mode Security Extensions
Este capítulo describe HP-UX Standard Mode Security Extensions (HP-UX SMSE). Se
analizan los siguientes temas:
•
Descripción general (Sección 4.1)
•
Atributos de seguridad y la base de datos de usuarios (Sección 4.2)
4.1 Descripción general
HP-UX Standard Mode Security Extensions (HP-UX SMSE) es un grupo de herramientas
que mejora la seguridad tanto del usuario como del sistema operativo. HP-UX SMSE
incluye mejoras o cambios en el sistema de auditoría HP-UX, las contraseñas e inicios
de sesión para los sistemas en modo estándar. Anteriormente, estas características sólo
se admitían en los sistemas convertidos a modo de confianza. Con HP-UX SMSE, estas
características se pueden utilizar en un sistema en modo estándar.
NOTA: HP no recomienda utilizar HP-UX SMSE en sistemas que se ejecuten en modo
de confianza. HP-UX SMSE aporta la disponibilidad en modo estándar de muchas
directivas de cuentas y contraseñas que, actualmente, sólo están disponibles mediante
la conversión de un sistema HP-UX a modo de confianza. Las directivas configuradas
con HP-UX SMSE no se aplican en sistemas que funcionen en modo de confianza.
Para determinar si un sistema se ha convertido a modo de confianza, compruebe si
existe el siguiente archivo:
/tcb/files/auth/system/default
Si este archivo existe, el sistema se ejecuta en modo de confianza. Para volver a convertir
el sistema a modo estándar, utilice el comando sam(1M).
Para obtener más información sobre las configuraciones admitidas con cada una de las
características de seguridad de HP-UX SMSE, consulte la página de manual de security(4).
HP-UX SMSE ofrece una característica nueva: una base de datos de usuarios.
Anteriormente, todos los atributos de seguridad y restricciones de la directiva de
contraseñas de HP-UX se definían en todo el sistema. La introducción de la base de
datos de usuarios permite definir los atributos de seguridad usuario a usuario, lo que
anula los valores por defecto accesibles en el sistema.
Las siguientes características en modo de confianza están disponibles en modo estándar
con HP-UX SMSE:
•
Auditoría de todos los usuarios y sucesos de un sistema
•
Presentación de los últimos inicios de sesión de usuario fructuosos e infructuosos
•
Bloqueo de una cuenta de usuario si hay demasiados errores de autenticación
4.1 Descripción general
71
•
Presentación del historial de contraseñas
•
Anulación de las cuentas inactivas
•
Prevención de que los usuarios puedan iniciar una sesión con una contraseña nula
•
Restricción de los inicios de sesión de usuario a periodos de tiempo específicos
•
El uso del comando userdbset se puede restringir según las autorizaciones de
un usuario. Para obtener más información, consulte la página de manual de
userdbset(1M).
•
El comando userstat muestra el estado de las cuentas de los usuarios locales.
Dicho comando comprueba el estado de las cuentas de usuarios locales e informa
de las condiciones anómalas, por ejemplo, los bloqueos de cuentas. Para obtener
más información, consulte la página de manual de userstat(1M).
4.2 Atributos de seguridad y la base de datos de usuarios
Anteriormente, en modo estándar, todos los atributos de seguridad y restricciones de la
directiva de contraseñas de HP-UX se definían en todo el sistema. La introducción de la
base de datos de usuarios permite definir los atributos de seguridad usuario a usuario,
lo que anula los valores por defecto accesibles en el sistema.
4.2.1 Atributos de seguridad del sistema
Los atributos de seguridad definen cómo controlar las configuraciones de seguridad,
por ejemplo, las contraseñas, los inicios de sesión y la auditoría. El archivo de descripción
de atributos de seguridad, /etc/security.dsc, enumera los atributos que se pueden
definir en el archivo /etc/default/security y en la base de datos de usuarios de
/var/adm/userdb, o en ambos archivos. Algunos atributos se pueden configurar,
mientras que otros son internos.
ATENCIÓN:
No modifique el archivo /etc/security.dsc de manera alguna.
Cuando un usuario inicia una sesión, el sistema comprueba si hay atributos de seguridad
aplicables en el siguiente orden:
1. El sistema examina los atributos por usuario en las siguientes ubicaciones:
•
/var/adm/userdb
•
/etc/passwd
•
etc/shadow
NOTA: Para cada atributo por usuario, se almacena un valor en uno de los
tres archivos anteriores. Para ver qué atributos se almacenan en cada archivo,
consulte la página de manual de security(4).
72
HP-UX Standard Mode Security Extensions
2.
3.
Si no hay ningún valor por usuario, el sistema examina los atributos para todo el
sistema configurados en el archivo /etc/default/security.
Si no hay ningún atributo para todo el sistema configurado, el sistema utiliza los
atributos por defecto del archivo /etc/security.dsc.
4.2.2 Configuración de los atributos para todo el sistema
Para configurar atributos accesibles en el sistema, dé los pasos siguientes:
1.
2.
Planifique la configuración mediante los recursos disponibles. Para obtener
información sobre la configuración de los atributos accesibles en el sistema, consulte
la página de manual de security(4).
Para modificar un valor por defecto accesible en el sistema, modifique el archivo
/etc/default/security con un editor de texto como vi. Los comentarios van
precedidos de un signo de número (#). Los atributos se escriben en el formato
attributo=valor.
Por ejemplo, para definir en dos (2) el número mínimo accesible en el sistema de
caracteres en mayúscula de una contraseña, escriba los siguientes valores en /etc/
default/security:
PASSWORD_MIN_UPPER_CASE_CHARS=2
NOTA: Los cambios efectuados en los atributos de seguridad accesibles en el sistema
no surten efecto inmediatamente. Los atributos de contraseña surtirán efecto la próxima
vez que los usuarios cambien la contraseña. Los atributos de inicio de sesión surtirán
efecto la próxima vez que los usuarios inicien una sesión.
4.2.3 Componentes de la base de datos de usuarios
La característica de base de datos de usuarios de HP-UX SMSE abarca archivos,
comandos, páginas de manual y atributos por usuario que se pueden aplicar a usuarios
específicos del sistema HP-UX. Todos estos elementos de la base de datos de usuarios
se describen en las siguientes secciones.
4.2.3.1 Archivos de configuración
La Tabla 4-1 describe brevemente los archivos que se utilizan con la base de datos de
usuarios.
Tabla 4-1 Archivos de configuración de la base de datos de usuarios
Archivo
Descripción
/var/adm/userdb
Almacena la mayor parte de la información por usuario.
4.2 Atributos de seguridad y la base de datos de usuarios
73
4.2.3.2 Comandos
La Tabla 4-2 describe brevemente los comandos que se pueden utilizar para modificar
y administrar entradas en la base de datos de usuarios.
Tabla 4-2 Comandos de la base de datos de usuarios
Comando
Descripción
userdbset
Cambia los valores de atributo configurados en la base de datos de usuarios.
userdbget
Muestra los valores de atributo configurados en la base de datos de usuarios.
userdbck
Comprueba la integridad de la información en la base de datos de usuarios.
userstat
Informa del estado de las cuentas de usuario locales.
4.2.3.3 Atributos
Se dispone de los siguientes atributos de seguridad para usuarios individuales:
Tabla 4-3 Atributos de usuario
Atributo
Descripción
ALLOW_NULL_PASSWORD
Permite o deniega el inicio de sesión con una contraseña nula.
AUDIT_FLAG
Audita o detiene la auditoría del usuario.
AUTH_MAXTRIES
Define el número de errores de inicio de sesión permitidos antes de
bloquear el acceso de un usuario al sistema.
DISPLAY_LAST_LOGIN
Muestra información sobre el último inicio de sesión del usuario.
LOGIN_TIMES
Restringe los periodos de tiempo de inicio de sesión.
MIN_PASSWORD_LENGTH
Define la longitud mínima de la contraseña.
NUMBER_OF_LOGINS_ALLOWED
Define el número de inicios de sesión simultáneos permitidos por
usuario.
PASSWORD_HISTORY_DEPTH
Define el nivel de detalle del historial de contraseñas.
PASSWORD_MIN_LOWER_CASE_CHARS Define la cantidad mínima de caracteres en minúscula necesarios en
una contraseña.
PASSWORD_MIN_UPPER_CASE_CHARS Define la cantidad mínima de caracteres en mayúscula necesarios en
una contraseña.
PASSWORD_MIN_DIGIT_CHARS
Define la cantidad mínima de caracteres digitales necesarios en una
contraseña.
PASSWORD_MIN_SPECIAL_CHARS Define la cantidad mínima de caracteres especiales necesarios en
una contraseña.
UMASK
74
Define umask para la creación de archivos.
HP-UX Standard Mode Security Extensions
NOTA: La lista anterior sólo contiene los atributos de seguridad que se pueden
configurar en la base de datos de usuarios. Para obtener una lista completa de los
atributos de seguridad del sistema HP-UX, consulte la página de manual de security(4).
4.2.3.4 Páginas de manual
La Tabla 4-4 describe brevemente las páginas de manual que se utilizan con la base
de datos de usuarios.
Tabla 4-4 Páginas de manual de la base de datos de usuarios
Página de manual
Descripción
userdb(4)
Proporciona una descripción general del uso de la base de datos de usuarios.
userdbset(1M)
Describe la funcionalidad y la sintaxis de userdbset.
userdbget(1M)
Describe la funcionalidad y la sintaxis de userdbget.
userdbck(1M)
Describe la funcionalidad y la sintaxis de userdbck.
userstat(1M)
Describe la funcionalidad y la sintaxis de userstat.
4.2.4 Configuración de los atributos de la base de datos de usuarios
En los sistemas HP-UX anteriores, los atributos de seguridad y las restricciones de la
directiva de contraseñas se definían en todo el sistema. Con HP-UX SMSE, se pueden
configurar algunos atributos de seguridad por usuario. Los atributos configurados por
usuario anulan los atributos configurados en todo el sistema.
Para modificar los valores de atributo de un usuario, dé los pasos siguientes:
1.
Decida qué usuarios se van a modificar y qué atributos se les van a aplicar.
Por ejemplo, quiere que el usuario joe pueda iniciar sesión en el sistema sólo entre
las 8:00 y las 17:00 h los lunes.
2.
Cambie los atributos mediante el comando userdbset como sigue:
# userdbset -u nombre_usuario nombre_atributo=valor_atributo
Por ejemplo, para especificar que el usuario joe pueda iniciar sesión en el sistema
sólo entre las 8:00 y las 17:00 h, escriba:
# userdbset -u joe LOGIN_TIMES=Mo0800-1700
4.2 Atributos de seguridad y la base de datos de usuarios
75
4.2.5 Solución de problemas con la base de datos de usuarios
Utilice los siguientes procedimientos para solucionar problemas relativos a la base de
datos de usuarios.
Problema 1: Los atributos de seguridad de un usuario parecen no estar configurados
correctamente. Si sospecha que la base de datos de usuarios contiene información
de un usuario no configurada correctamente, ejecute el siguiente comando:
# userdbget -u nombre_usuario
Los atributos configurados para el usuario nombre_usuario se mostrarán. Si un atributo
no está configurado correctamente, vuelva a configurarlo. Para obtener instrucciones,
consulte la sección «Configuración de los atributos de la base de datos de usuarios».
Problema 2: La base de datos de usuarios no funciona correctamente. Si necesita
comprobar la base de datos de usuarios, ejecute el siguiente comando:
# userdbck
El comando userdbck identifica y soluciona los problemas de la base de datos de
usuarios.
76
HP-UX Standard Mode Security Extensions
5 Administración de la seguridad relativa al acceso remoto
HP-UX ofrece varios servicios de acceso remoto, por ejemplo, la transferencia de archivos,
el inicio de sesión remoto, la ejecución de comandos remota, la administración de
clientes de la red y direcciones IP, los protocolos de enrutamiento, el intercambio de
correo, los servicios de red y un mecanismo de seguridad que ha creado inetd, el
super demonio de Internet.
Este capítulo analiza los siguientes temas:
•
Descripción general de Internet Services y los servicios de acceso remoto
(Sección 5.1)
•
El demonio inetd (Sección 5.2)
•
Protección contra la simulación con TCP Wrappers (Sección 5.3)
•
Secure Internet Services (Sección 5.4)
•
Control de un dominio administrativo (Sección 5.5)
•
Seguridad de las sesiones remotas mediante HP-UX Secure Shell (SSH) (Sección 5.6)
5.1 Descripción general de Internet Services y los servicios de acceso remoto
Esta sección facilita una breve descripción del mecanismo de autorización o autenticación
que utilizan diversos servicios de Internet y los riesgos para la seguridad.
HP-UX Internet Services se documenta en los documentos HP-UX Internet Services
Administrator's Guide y Using HP-UX Internet Services ubicados en:
http://www.docs.hp.com/en/netcom.html#Internet%20Services
Consulte también HP-UX Remote Access Services Administrator's Guide en:
http://www.docs.hp.com/en/netcom.html#Internet%20Services
HP-UX Internet Services ofrece autenticación, ya sea mediante la comprobación de
contraseñas o la autorización que se configura en un archivo de configuración. Consulte
la Tabla 5-1 para obtener una lista de los componentes de Internet Services y su
mecanismo de comprobación o autorización del acceso.
Tabla 5-1 Componentes de Internet Services y autenticación, autorización y comprobación
del acceso
Componente de Internet
Services
Mecanismo de comprobación, autorización o autenticación del acceso
ftp (transferencia de
archivos)
Comprobación de contraseña. También se puede utilizar el mecanismo de
autenticación Kerberos que se define en /etc/inetsvcs.conf. Consulte
la página de manual de ftp(1).
5.1 Descripción general de Internet Services y los servicios de acceso remoto
77
Tabla 5-1 Componentes de Internet Services y autenticación, autorización y comprobación
del acceso (continuación)
Componente de Internet
Services
Mecanismo de comprobación, autorización o autenticación del acceso
rcp (copia remota)
Entrada en el archivo $HOME/.rhosts o /etc/hosts.equiv. También
se puede utilizar el mecanismo de autenticación Kerberos que se define en
/etc/inetsvcs.conf. Consulte la página de manual de rcp(1).
rdist (distribución de
archivos remota)
Entrada en el archivo $HOME/.rhosts o /etc/hosts.equiv. Consulte
la página de manual de rdist(1).
remsh, rexec (ejecución
desde el shell remoto)
Entrada en el archivo $HOME/.rhosts o /etc/hosts.equiv. También
se puede utilizar el mecanismo de autenticación Kerberos que se define en
/etc/inetsvcs.conf. Consulte la página de manual de remsh(1).
rlogin (inicio de sesión
remoto)
Comprobación de contraseña o entrada en el archivo $HOME/.rhosts o
/etc/hosts.equiv. También se puede utilizar el mecanismo de
autenticación Kerberos que se define en /etc/inetsvcs.conf. Consulte
la página de manual de rlogin(1).
telnet (inicio de sesión
remoto con el protocolo
TELNET)
Comprobación de contraseña. Si el demonio telnetd habilita la opción
TAC User ID, telnet utiliza el archivo $HOME/.rhosts o /etc/
hosts.equiv. Consulte las páginas de manual de telnet(1) y telnetd(1M).
NOTA: La información (incluidas las contraseñas) se transmite entre dos sistemas en
texto no cifrado. Utilice Internet Services sólo entre hosts bien conocidos y definidos
entre sí y en una red interna privada protegida por un servidor de seguridad. Cuando
las comunicaciones se realicen por una red no confiable, protéjalas con IPSec o Kerberos.
Los servicios de acceso remoto conectan los sistemas remotos de una red. Por defecto,
los servicios de acceso remoto funcionan en un entorno no seguro. Para que funcionen
en un entorno seguro, habilite la autenticación de red Kerberos V5. En un entorno no
seguro, debe tener un nombre de inicio de sesión y una contraseña para tener acceso
al sistema remoto, y el nombre de inicio de sesión no se comprueba para autenticación
y autorización. En un entorno seguro, no necesita tener un nombre de inicio de sesión
ni una contraseña. Cuando se intenta conectar con un sistema remoto, el protocolo
Kerberos comprueba si se permite el acceso del usuario al sistema remoto.
5.1.1 Seguridad del comando ftp
Un usuario no autorizado podría tratar de obtener acceso al sistema utilizando el
comando ftp. A continuación, se ofrecen algunas recomendaciones para eludir este
problema:
78
•
Habilite el inicio de sesión ftp en /etc/inetd.conf con el comando ftpd -l.
•
Revise los archivos de registro ftp en /var/adm/syslog/syslog.log y /var/
adm/syslog/xferlog en busca de intentos de acceso remoto poco comunes.
Administración de la seguridad relativa al acceso remoto
Consulte las páginas de manual de syslogd(1M) y xferlog(5).
•
Deniegue el acceso ftp a guest, root y otras cuentas enumerándolos en el
archivo /etc/ftpd/ftpusers.
Consulte la página de manual de ftpusers(4).
•
Busque y elimine regularmente los archivos ~/.netrc de los usuarios. El archivo
.netrc contiene la información de la cuenta, contraseña e inicio de sesión que
utiliza el proceso de inicio de sesión automático ftp, la rutina de biblioteca
rexec() y el comando rexec.
Consulte la página de manual de netrc(4).
5.1.2 Seguridad del ftp anónimo
Si un archivo $HOME/.rhosts se coloca en /home/ftp, un usuario no autorizado
podría utilizar el comando rlogin para iniciar una sesión como el usuario, ftp. El
archivo .rhosts especifica los sistemas host y los usuarios a los que se les permite
obtener acceso a una cuenta local utilizando el comando rcp, remsh o rlogin sin
contraseña. Para obtener más información, consulte la página de manual de
hosts.equiv(4).
A continuación, se ofrecen algunas recomendaciones para hacer que el ftp anónimo
sea más seguro:
•
Asegúrese de que ni /home/ftp ni ninguno de sus secundarios tenga permiso de
escritura:
$chmod -R a -w /home/ftp
•
Asegúrese de que la entrada de ftp en /etc/passwd está configurada
correctamente:
ftp:*:500:100:Anonymous FTP user:/var/ftp:/usr/bin/false
•
Asegúrese de que todas las contraseñas en ~ftp/etc/passwd son asteriscos (*):
$more ~ftp/etc/passwd
root:*:0:3::/:/usr/bin/false daemon:*:1:5::/:/usr/bin/false
•
Si tiene un directorio pub con permiso de escritura, utilice los permisos 1733:
$chmod 1733 /home/ftp/pub
•
Utilice las cuotas de disco o un trabajo del comando cron para controlar el tamaño
del archivo /home/ftp/pub:
0 1 * * * find /home/ftp/pub/* -atime +1 exec rm -rf {} \;
•
Compruebe la actividad del ftp anónimo en el archivo /var/adm/syslog/
syslog.log:
$tail /var/adm/syslog/syslog.log
5.1 Descripción general de Internet Services y los servicios de acceso remoto
79
5.1.3 Denegación del acceso mediante el archivo /etc/ftpd/ftpusers
El demonio inetd ejecuta el servidor de protocolo de transferencia de archivos, ftpd,
cuando se recibe una solicitud de servicio en el puerto indicado en el archivo /etc/
services. El demonio ftpd rechaza los inicios de sesión remotos en las cuentas de
usuario locales enumeradas en el archivo /etc/ftpd/ftpusers. A estas cuentas de
usuario se las denomina cuentas restringidas. Consulte las páginas de manual de
ftpd(1M), privatepw(1) y services(4).
En el archivo /etc/ftpd/ftpusers, cada nombre de cuenta restringida debe aparecer
sólo en una línea. Agregue también cuentas de usuario con shells de inicio de sesión
restringidos que se hayan definido en /etc/passwd, porque ftpd obtiene acceso a
las cuentas locales sin utilizar los shells de inicio de sesión correspondientes.
Si /etc/ftpd/ftpusers no existe, ftpd no efectúa una comprobación de seguridad.
Para obtener más información, consulte la página de manual de ftpusers(4).
En HP-UX 11i, el demonio ftpd se basa en WU-FTPD. WU-FTPD es la puesta en ejecución
en HP del demonio ftpd desarrollado en la Universidad de Washington. WU-FTPD
incluye un control de acceso mejorado, posibilidades de inicio de sesión mejoradas,
compatibilidad con hosts virtuales y compatibilidad con RFC1413 (Protocolo de
identificación). Para obtener más información, consulte el documento HP-UX Remote
Access Services Administrator's Guide en:
http://www.docs.hp.com/en/netcom.html#Internet%20Services
5.1.4 Otras soluciones de seguridad para simulación
La simulación es un método para hacerse pasar por un usuario o host válido a fin de
obtener un acceso no autorizado al sistema. Puesto que los nombres de host y direcciones
IP se pueden simular, la utilización del archivo de seguridad /var/adm/inetd.sec
de inetd (el demonio de Internet) no es una solución de garantía de la seguridad. Para
obtener más información sobre el demonio inetd, consulte la Sección 5.2.
Los siguientes productos o características de seguridad son soluciones de seguridad
alternativas:
•
IPFilter es un filtro de paquetes TCP/IP idóneo para utilizar como un servidor de
seguridad del sistema para proteger a los servidores de aplicaciones. Para obtener
más información, consulte el documento HP-UX IPFilter Administrator's Guide en:
http://docs.hp.com/en/internet.html#IPFilter
•
TCP Wrappers ofrece un demonio empaquetador TCP, tcpd, al que el demonio
inetd llama para aportar seguridad adicional. Consulte la Sección 5.3 y el
documento HP-UX Internet Services Administrator's Guide en:
http://www.docs.hp.com/en/netcom.html#Internet%20Services
•
80
Secure Internet Services permite utilizar la autenticación y autorización Kerberos
para los comandos ftp, rcp, remsh, rlogin y telnet. En lugar de contraseñas
Administración de la seguridad relativa al acceso remoto
de usuarios, los registros de autenticación Kerberos cifrados se transmiten a través
de la red. Consulte la Sección 5.4, el documento Installing and Administering Internet
Services en: http://www.docs.hp.com/en/netcom.html#Internet%20Services y el
documento Configuration Guide for Kerberos Client Products on HP-UX en:
http://www.docs.hp.com/en/internet.html#Kerberos
•
IPSec, una serie de protocolos de seguridad IP, ofrece seguridad para redes IP
como, por ejemplo, la integridad de los datos, la autenticación, la confidencialidad
de los datos, la seguridad transparente de las aplicaciones y el cifrado.
Consulte el documento HP-UX IPSec Administrator's Guide en:
http://www.docs.hp.com/en/internet.html#IPSec
5.2 El demonio inetd
El demonio de Internet, /usr/sbin/inetd, es el servidor maestro de muchos servicios
de Internet.
El demonio inetd normalmente lo inicia automáticamente la secuencia de comandos
/sbin/init.d/inetd como parte del proceso de inicio.
El demonio inetd controla las solicitudes de conexión de los servicios enumerados en
el archivo de configuración /etc/inetd.conf y crea el servidor apropiado al recibir
una solicitud. En otras palabras, los usuarios se conectan a los sistemas remotos utilizando
un servicio de Internet como, por ejemplo, telnet. El demonio inetd determina si se
permite una conexión de telnet desde el host antes de terminar la conexión. La
información del host para permitir o denegar el acceso se ubica en el archivo /var/
adm/inetd.sec.
El demonio inetd funciona del modo siguiente:
1.
2.
3.
4.
5.
Se inicia en el nivel de ejecución 2 durante el inicio del sistema. (Si el siguiente
comando está en la secuencia de comandos de inicio del sistema:
/sbin/init.d/inetd start)
Comprueba el archivo /etc/inetd.conf para determinar los servicios que se
van a prestar. Para obtener más información, consulte las páginas de manual de
ftp(1) e inetd.conf(4).
Comprueba el archivo /etc/services para determinar los puertos que se van
a controlar para los servicios enumerados en el archivo /etc/inetd.conf. El
archivo /etc/services asigna nombres de servicio a los números de puerto.
Para obtener más información, consulte la página de manual de services(4).
Recibe una solicitud de conexión a un servicio de Internet desde un cliente. Por
ejemplo, alguien que ejecuta telnet.
Consulta el archivo /var/adm/inetd.sec para determinar si el cliente tiene
permiso de acceso. Para obtener más información, consulte la página de manual
de inetd.sec(4).
5.2 El demonio inetd
81
6.
7.
8.
Registra la solicitud en el archivo /var/adm/syslog/syslog.log si se ha
habilitado el registro. Para obtener más información, consulte la página de manual
de syslogd(1M).
Si inetd rechaza la conexión por razones de seguridad, la conexión se cierra.
Si la solicitud de conexión es válida, inetd inicia un proceso del servidor para
gestionar la solicitud de conexión válida. El proceso del servidor puede presentar
otras características de seguridad además de inetd.
5.2.1 Seguridad del demonio inetd
El archivo /etc/inetd.conf es el archivo de configuración de inetd que enumera
los servicios que el demonio de inetd puede iniciar. Cada servicio enumerado en el
archivo /etc/inetd.conf debe aparecer también en el archivo /etc/services.
El archivo /etc/services asigna nombres de servicio a los números de puerto. Cada
número de puerto tiene un nombre de protocolo asociado como, por ejemplo, tcp o
udp. Cada entrada del protocolo debe tener una entrada coincidente en el archivo
/etc/protocols.
Las siguientes recomendaciones pueden hacer que inetd sea más seguro:
82
•
Habilite el registro de inetd en /etc/rc.config.d/netdaemons. Para obtener
más información, consulte la página de manual de rc.config.d(4).
•
Examine los archivos /etc/inetd.conf y /etc/services en busca de cambios.
Un usuario no autorizado puede haber obtenido acceso de usuario root y modificado
los archivos /etc/services y /etc/inetd.conf. En /etc/inetd.conf,
busque los nombres de los servicios que no se utilizan. En /etc/services, busque
números de puerto que no estén registrados en la Internet Assigned Numbers
Authority (IANA - Agencia de Asignación de Números de Internet) en
http://www.iana.org. Compruebe que los números de puerto enumerados para
los servicios de Internet coinciden con los números de puerto registrados en la
agencia IANA.
•
Marque como comentario los servicios innecesarios, por ejemplo, finger en el
archivo /etc/inetd.conf. El comando finger muestra la información sobre
los usuarios sin necesidad de una contraseña.
•
Marque como comentario los servicios de las llamadas a procedimiento remoto
(RPC) en el archivo /etc/inetd.conf.
•
Marque como comentario servicios «triviales internos» de inetd en/etc/
inetd.conf para evitar ataques de denegación de servicio. Un usuario
malintencionado puede sobrecargar inetd con solicitudes (generador de caracteres)
de chargen. Para obtener más información, consulte las páginas de manual de
inetd(1M) e inetd.conf(4).
Administración de la seguridad relativa al acceso remoto
5.2.1.1 Denegación o concesión de acceso mediante el archivo /var/adm/inetd.sec
Además de configurar el archivo /etc/inetd.conf, puede configurar un archivo de
seguridad opcional denominado /var/adm/inetd.sec para restringir el acceso a
los servicios que inicia inetd. El archivo /var/adm/inetd.sec enumera los hosts
a los que se concede o deniega acceso a cada servicio. Para obtener más información,
consulte la página de manual de inetd.conf(4).
Por ejemplo:
login allow 10.3-5 192.34.56.5 ahost anetwork
login deny 192.54.24.5 cory.example.edu.testlan
5.3 Protección contra la simulación con TCP Wrappers
La herramienta TCP (Transmission Control Protocol - Protocolo de control de transmisión)
Wrappers aporta una seguridad mejorada de los servicios que crea inetd. TCP
Wrappers constituye una alternativa a la utilización del archivo /etc/inetd.sec.
TCP Wrappers aporta protección contra la simulación de nombres y direcciones de host.
La simulación es un método para hacerse pasar por un usuario o host válido a fin de
obtener un acceso no autorizado al sistema.
Para impedir la simulación, TCP Wrappers utiliza listas de control de acceso (ACL). Las
ACL son listas de sistemas en los archivos /etc/hosts.allow y /etc/hosts.deny.
TCP Wrappers aporta cierta protección contra la simulación de IP cuando se ha
configurado para comprobar la asignación de nombre de host a dirección IP y para
rechazar paquetes con enrutamiento de origen IP.
No obstante, TCP Wrappers no facilita la autenticación de cifrado ni el cifrado de datos.
Como inetd, la información se transmite en texto no cifrado.
TCP Wrappers forma parte del software HP-UX Internet Services. Para obtener más
información, consulte el documento HP-UX Internet Services Administrator's Guide en:
http://www.docs.hp.com/en/netcom.html#Internet%20Services y las siguientes páginas
de manual:
tcpd(1M), tcpdmatch(1), tcpdchk(1), tcpd.conf(4), hosts_access(3), hosts_access(5) y
hosts_options(5).
Al habilitar TCP Wrappers, inetd ejecuta un demonio empaquetador TCP, tcpd, en
lugar de ejecutar el servicio solicitado directamente. TCP Wrappers funciona del modo
siguiente:
1.
2.
Los clientes envían las solicitudes de conexión a inetd como lo hacen normalmente,
por ejemplo, telnet.
En lugar de hacer la llamada al proceso del servidor, inetd llama al demonio de
TCP Wrapper (tcpd).
5.3 Protección contra la simulación con TCP Wrappers
83
3.
4.
5.
El demonio de TCP Wrapper determina la validez de la solicitud de conexión del
cliente. El demonio tcpd registra la solicitud y comprueba los archivos de control
de acceso (/etc/hosts.allow y /etc/hosts.deny).
Si el cliente es válido,tcpd llama al proceso del servidor apropiado.
El proceso del servidor procesa la solicitud del cliente, por ejemplo, la conexión de
telnet termina.
5.3.1 Características adicionales de TCP Wrappers
También puede definir los parámetros de configuración en el archivo de configuración
/etc/tcpd.conf, como, por ejemplo, el comportamiento de registro, las búsquedas
de nombres de usuario y el comportamiento con errores de búsqueda inversa. El demonio
tcpd lee este archivo de configuración para buscar los parámetros de configuración
durante el tiempo de ejecución.
Puede configurar los archivos /etc/hosts.allow y /etc/hosts.deny para buscar
otras características de seguridad, por ejemplo, la definición de capturas y los mensajes
en titulares.
La característica de definición de capturas de TCP Wrappers permite activar la acción
apropiada en el host, en función del número de intentos de conexión denegados desde
un host remoto.
La característica de mensajes en titulares hace que se envíe un mensaje al cliente cuando
una regla de las listas ACL se incluye en un archivo de control de acceso.
5.3.2 TCP Wrappers no se puede utilizar con servicios de RPC
TCP Wrappers no se puede utilizar con los servicios de llamada a procedimiento remoto
(RPC) a través de TCP. Estos servicios se registran como rpc o tcp en el archivo /etc/
inetd.conf. El único servicio importante que se ve afectado por esta limitación es
rexd, que utiliza el comando on.
5.4 Secure Internet Services
Secure Internet Services (SIS) es un mecanismo habilitado opcionalmente que incorpora
la autenticación y autorización Kerberos V5 para los servicios de acceso remoto: ftp,
rcp, remsh, rlogin y telnet.
Secure Internet Services forma parte del producto HP-UX Internet Services, que se
documenta en Using HP-UX Internet Services en la dirección http://www.docs.hp.com/
en/netcom.html#Internet%20Services y las siguientes páginas de manual:
sis(5), kinit(1), klist(1), kdestroy(1M), krbval(1M), k5dcelogin(1M), inetsvcs_sec(1M) e
inetsvcs(4).
Al ejecutar los comandos SIS, la seguridad mejora porque ya no se tiene que transmitir
una contraseña en formato legible por la red.
84
Administración de la seguridad relativa al acceso remoto
NOTA: Las bibliotecas del producto SIS no cifran la sesión más allá de lo imprescindible
para autorizarle a usted o para autenticar el servicio. Por lo tanto, estos servicios no
ofrecen comprobación de la integridad de los datos o los servicios remotos ni el cifrado
de los mismos. Para cifrar datos, utilice OpenSSL. Para obtener más información, consulte
el documento OpenSSL Release Notes: http://docs.hp.com/en/internet.html#OpenSSL.
Cuando dos sistemas funcionan en un entorno seguro basado en Kerberos V5, Secure
Internet Services garantiza la mutua identificación sin riesgo y confiable de un sistema
host local y otro remoto, y que el usuario obtenga autorización para tener acceso a la
cuenta remota.
Para ftp/ftpd, rlogin/rlogind y telnet/telnetd, el mecanismo de
autenticación Kerberos V5 envía tíquets cifrados en lugar de una contraseña por la red
a fin de verificar el usuario e identificarlo. Para rcp/remshd y remsh/remshd, las
versiones seguras de estos servicios garantizan la autorización de acceso para el usuario
a fin de obtener acceso a la cuenta remota.
5.5 Control de un dominio administrativo
Todos los programas de administración de la red deben ser propiedad de una cuenta
protegida específica de la red (por ejemplo, uucp o nso) o de un demonio, en lugar
del usuario root.
Un dominio administrativo es un grupo de sistemas conectados por servicios de red que
permiten a los usuarios obtener acceso a los sistemas de los demás sin que se compruebe
la contraseña. Un dominio administrativo da por sentado que los usuarios de los sistemas
ya han sido verificados por el sistema host correspondiente. Dé los siguientes pasos
para identificar y controlar un dominio administrativo:
1. Obtenga una lista de los nodos a los que exporte sistemas de archivos en /etc/
exports. El archivo /etc/exports contiene entradas de un nombre de ruta de
un sistema de archivos y una lista de sistemas o grupos de sistemas a los que se
permite tener acceso al sistema de archivos. Las entradas de /etc/exports
pueden contener nombres de grupos de sistemas. Para averiguar los equipos
individuales que se incluyen en un grupo, consulte el archivo /etc/netgroup.
2. Obtenga una lista de los nodos que tengan bases de datos de contraseñas
equivalentes en /etc/hosts.equiv.
3. Compruebe que cada nodo del dominio administrativo no amplía los privilegios a
ningún nodo que no esté incluido. Repita los pasos 2 y 3 para cada nodo del
dominio.
4. Controle el acceso de usuario root y la seguridad local en todos los nodos del
dominio administrativo. Un usuario con privilegios de superusuario en cualquier
equipo del dominio puede adquirir dichos privilegios en todos los equipos del
dominio.
5.5 Control de un dominio administrativo
85
5.
6.
Mantenga la coherencia del nombre de usuario, el número de identificación de
usuario (uid) y la identificación de grupo (gid) en los archivos de contraseñas del
dominio administrativo.
Mantenga la coherencia de los archivos de grupo en todos los nodos del dominio
administrativo. Por ejemplo, para comprobar la coherencia con los sistemas hq y
mfg, si el sistema de archivos raíz del sistema mfg se ha montado remotamente en
hq como /nfs/mfg/, escriba el siguiente comando diff:
$diff /etc/group /nfs/mfg/etc/group
Si se muestra alguna diferencia, los dos archivos /etc/group son incoherentes y
no deberían serlo.
5.5.1 Comprobación de las configuraciones de los permisos en los archivos de control
de red
Los archivos de control de red del directorio /etc son blancos de seguridad, ya que
franquean el acceso a la propia red. Los archivos de control de red no deben configurarse
nunca con permiso de acceso de escritura para el público.
Defina cuidadosamente los modos, propietarios y grupos de todos los archivos del
sistema. Compruebe regularmente estos archivos en busca de cualquier cambio y
corríjalos.
Los archivos de control de red utilizados con mayor frecuencia son los siguientes:
•
/etc/exports
Lista de los directorios de archivos que se pueden exportar a clientes NFS. Para
obtener más información, consulte la página de manual de exports(4).
•
/etc/hosts
Lista de sistemas host de red y sus direcciones IP. Para obtener más información,
consulte la página de manual de hosts(4).
•
/etc/hosts.equiv
Lista de sistemas host remotos a los que se permite tener acceso y que equivalen al
host local. Para obtener más información, consulte la página de manual de
hosts.equiv(4).
•
/etc/inetd.conf
El archivo de configuración de Internet Services. Para obtener más información,
consulte la página de manual de inetd.conf(4).
•
/etc/netgroup
Lista de los grupos accesibles en la red. Para obtener más información, consulte la
página de manual de netgroup(4).
86
Administración de la seguridad relativa al acceso remoto
•
/etc/networks
Lista de los nombres de red y los números de red correspondientes. Para obtener
más información, consulte la página de manual de networks(4).
•
/etc/protocols
Lista de nombres y números de protocolos. Para obtener más información, consulte
la página de manual de protocols(4).
•
/etc/services
Lista de nombres de servicios oficiales y alias con el número de puerto y protocolo
que utilizan los servicios. Para obtener más información, consulte la página de
manual de services(4).
5.6 Seguridad de las sesiones remotas mediante HP-UX Secure Shell (SSH)
HP-UX Secure Shell se basa en el producto OpenSSH, un producto SSH de código fuente
abierto (http://www.openssh.org). Permite una conexión segura entre un cliente y un
host remoto a través de una red que de otra manera sería insegura. A continuación, se
muestran los atributos clave de esta conexión segura:
•
Autenticación severa para el cliente y el host remoto.
•
Cifrado y criptografía de claves públicas firmes para la comunicación entre un
cliente y el host remoto.
•
Un canal seguro para que lo utilice el cliente a fin de ejecutar comandos en el host
remoto.
HP-UX Secure Shell aporta un sustituto seguro para comandos y funciones utilizados tan
frecuentemente como, por ejemplo, telnet, remsh, rlogin, ftp y rcp.
Para obtener la documentación de HP-UX Secure Shell, consulte la página de manual
de ssh(1) para el cliente ssh y la página de manual de sshd(8) para el servidor sshd.
Ambas páginas de manual incluyen referencias a las otras páginas de manual de HP-UX
Secure Shell que se suministran con el producto.
Consulte también el documento HP-UX Secure Shell Release Notes en:
http://www.docs.hp.com/en/internet.html#Secure%20Shell
5.6.1 Características de seguridad clave de HP-UX Secure Shell
Entre las características de seguridad clave de HP-UX Secure Shell se incluyen las
siguientes:
•
Cifrado firme
Todas las comunicaciones entre el cliente y el host remoto se cifran utilizando
algoritmos de cifrado exentos de patentes, como, por ejemplo, Blowfish, 3DES,
AES y arcfour. La información relativa a la autenticación, como, por ejemplo, las
5.6 Seguridad de las sesiones remotas mediante HP-UX Secure Shell (SSH)
87
contraseñas, nunca se envía en texto no cifrado por la red. El cifrado junto con una
firme criptografía basada en claves públicas aporta también protección contra
posibles ataques a la seguridad.
•
Autenticación severa
HP-UX Secure Shell admite un conjunto firme de métodos de autenticación entre el
cliente y el servidor. La autenticación puede ser de dos vías: el servidor autentica
el cliente y el cliente autentica el servidor. Esto protege la sesión de una amplia
variedad de problemas de seguridad. Los métodos de autenticación admitidos se
describen en la Sección 5.6.5.
•
Reenvío a través de un puerto
El desvío de las conexiones TCP/IP entre un cliente y un host remoto (y viceversa)
se denomina reenvío a través de un puerto o túnel SSH. HP-UX Secure Shell admite
reenvío a través de un puerto. Por ejemplo, el tráfico de ftp entre un cliente y un
servidor (o tráfico de correo electrónico entre un cliente de correo electrónico y un
servidor POP/IMAP) se puede desviar utilizando el reenvío a través de un puerto.
En lugar de que el cliente se comunique directamente con el servidor, el tráfico se
puede desviar hacia un servidor sshd a través de un canal seguro y el servidor
sshd puede, a continuación, reenviar el tráfico hacia un puerto designado en el
equipo servidor real.
•
Integración con características de seguridad subyacentes de HP-UX
HP-UX Secure Shell es un producto integrado con características de seguridad
importantes de HP-UX. Para obtener más información, consulte la Sección 5.6.7.
5.6.2 Componentes de software de HP-UX Secure Shell
El software HP-UX Secure Shell consta de un conjunto de componentes de servidor y
cliente. Consulte la Tabla 5-2.
Tabla 5-2 Componentes de software de HP-UX Secure Shell
88
Componente
Descripción
Ubicación
Componentes no
seguros equivalentes
ssh
El cliente Secure Shell es un sustituto seguro
de telnet y remsh; es el más parecido a
remsh con características de seguridad.
Cliente
remsh, telnet,
rlogin
slogin
Enlace simbólico con ssh.
Cliente
remsh, telnet,
rlogin
scp
Cliente de copia segura y servidor de copia
segura.
Cliente y
servidor
rcp
sftp
Cliente ftp seguro.
Cliente
ftp
Administración de la seguridad relativa al acceso remoto
Tabla 5-2 Componentes de software de HP-UX Secure Shell (continuación)
Componente
Descripción
Ubicación
Componentes no
seguros equivalentes
sshd
Demonio Secure Shell
Servidor
remshd, telnetd,
rlogind
sftp-server
Demonio ftp seguro.
Servidor
ftpd
ssh-rand-helper Generador de números aleatorios que se
Servidor
utiliza cuando el comando sshd no puede
encontrar el archivo /dev/random ni /dev/
urandom en el servidor. HP-UX se suministra
con un generador de números aleatorios
residente en el kernel, rng. Si rng se
desconfigura, sshd utiliza prngd.
No aplicable
ssh-agent
Herramienta de inicio de sesión «automático» Cliente y
y basado en claves de cliente a servidor
servidor
Mecanismo del
archivo rhosts
ssh-add
Herramienta para hacer pares de claves del
cliente conocido en ssh-agent.
Cliente
No aplicable
ssh-keygen
Herramienta para generar pares de claves
para la autenticación con claves públicas.
Cliente
No aplicable
ssh-keyscan
Herramienta que permite al cliente reunir las Cliente
claves públicas para un conjunto de hosts que
ejecutan el demonio de Secure Shell (sshd).
No aplicable
ssh-keysign
Herramientas que permiten generar la firma Cliente
digital necesaria durante la autenticación
basada en el host y que utiliza ssh() para
obtener acceso a la autenticación basada en
el host de las claves de host locales.
No aplicable
5.6.3 Ejecución de HP-UX Secure Shell
Antes de ejecutar alguno de los clientes de Secure Shell enumerados en la Tabla 5-2,
inicie primero el demonio de servidor de Secure Shell, sshd. El demonio sshd obtiene
los valores de configuración iniciales del archivo sshd_config, ubicado en el directorio
/opt/ssh/etc del sistema servidor. Una de las directivas de configuración más
importantes en el archivo sshd_config es el conjunto de métodos de autenticación
que admite el demonio sshd. Para obtener más información, consulte la Sección 5.6.5.
5.6.3.1 Ejecución del cliente ssh
La aplicación de cliente ssh establece una conexión de zócalos con el servidor sshd.
El servidor sshd crea un proceso secundario sshd. Este proceso secundario hereda el
zócalo de conexión y autentica el cliente en función del método de autenticación
seleccionado. Se establece una sesión de cliente segura sólo al producirse una
autenticación satisfactoria.
5.6 Seguridad de las sesiones remotas mediante HP-UX Secure Shell (SSH)
89
Una vez creada la sesión, toda comunicación posterior se produce directamente entre
el cliente y este proceso secundario de sshd. Ahora el cliente puede ejecutar comandos
remotos en el servidor. Cada solicitud de comando del cliente ssh hace que el proceso
secundario de sshd cree un proceso shell para ejecutar dicho comando.
En resumen, una sesión de cliente-servidor de ssh en ejecución consta de los siguientes
procesos:
•
En cada sistema cliente conectado al servidor sshd, hay un proceso de cliente de
ssh para cada conexión ssh establecida actualmente desde ese sistema cliente.
•
En el sistema servidor, hay un proceso primario sshd y tantos procesos secundarios
sshd como clientes ssh concurrentes conectados al servidor. El número de procesos
secundarios de sshd que se ejecutan en el servidor se duplica si se habilita la
separación de privilegios en el servidor. Consulte la Sección 5.6.4.
•
En el sistema de servidor, para cada solicitud de ejecución de comandos desde un
cliente de ssh, el correspondiente proceso secundario de sshd crea un proceso
shell y utiliza una canalización UNIX para comunicar la solicitud del comando a
este proceso shell. Este proceso shell devuelve los resultados de la ejecución de
comandos al proceso secundario de sshd utilizando la canalización UNIX y termina
una vez completada la ejecución de comandos.
5.6.3.2 Ejecución del cliente sftp
La aplicación de cliente sftp hace que el proceso de cliente sftp cree el cliente ssh
y, a continuación, se comunica con él utilizando una canalización UNIX. El cliente ssh
establece una conexión de zócalos con el servidor sshd.
El resto de la interacción del servidor es parecida al caso del cliente ssh, que se describe
en la Sección 5.6.3.1. La diferencia radica en que en lugar de crear un shell para
ejecutar el comando remoto, el proceso secundario sshd crea el proceso sftp-server.
Toda comunicación posterior durante esta sesión de sftp se produce entre los siguientes
procesos:
90
•
El cliente sftp y el cliente ssh, en el sistema cliente, mediante una canalización
UNIX.
•
El cliente ssh y el proceso secundario sshd, a través del zócalo de conexión
establecido.
•
El proceso secundario sshd y el proceso del servidor sftp, mediante una
canalización UNIX.
Administración de la seguridad relativa al acceso remoto
5.6.3.3 Ejecución del cliente scp
En lo que respecta al cliente scp, su ejecución es casi idéntica a la del cliente sftp.
La diferencia radica en que en lugar de crear el proceso sftp-server, el proceso
secundario sshd crea el proceso de scp. Toda comunicación posterior durante la sesión
de scp se produce entre los siguientes procesos:
•
El cliente scp y el cliente ssh, en el sistema cliente, mediante una canalización
UNIX.
•
El cliente ssh y el proceso secundario sshd, a través del zócalo de conexión
establecido.
•
El proceso secundario sshd y el proceso del servidor scp, mediante una
canalización UNIX.
5.6.4 Separación de privilegios con HP-UX Secure Shell
HP-UX Secure Shell ofrece un nivel de seguridad mejorado a través de la característica
de separación de privilegios. Según se describe en la Sección 5.6.3, tanto el proceso
primario sshd como el proceso secundario sshd se ejecutan como usuarios con
privilegios. Cuando está habilitada la separación de privilegios, se crea un proceso
adicional por cada conexión de usuarios.
Cuando un cliente ssh se conecta con un servidor sshd configurado para separación
de privilegios, el proceso primario sshd crea un proceso secundario sshd con
privilegios. Cuando está habilitada la separación de privilegios, el proceso primario
sshd crea un proceso secundario adicional y sin privilegios sshd. Este proceso
secundario y sin privilegios sshd hereda a continuación el zócalo de conexión. Toda
comunicación posterior entre clientes y servidores se produce con este proceso secundario
y sin privilegios sshd.
La mayoría de las solicitudes de ejecución de comandos remotos procedentes del cliente
no tienen privilegios y las maneja un shell creado en este proceso secundario y sin
privilegios sshd. Cuando el proceso secundario y sin privilegios sshd necesita que se
ejecute una función con privilegios, se comunica con su proceso primario y con privilegios
sshd utilizando una canalización UNIX.
La separación de privilegios ayuda a contener posibles daños por parte de intrusos. Por
ejemplo, si se produce un ataque de desbordamiento del búfer durante la ejecución de
comandos de shell, el control está en el proceso que no tiene privilegios y que, por lo
tanto, contiene el riesgo potencial para la seguridad.
NOTA: La separación de privilegios es la configuración por defecto para HP-UX Secure
Shell. Puede desactivar la separación de privilegios definiendo
UsePrivilegeSeparation NO en el archivo sshd_config. Por este riesgo potencial
para la seguridad, desactive la separación de privilegios sólo después de meditarlo
detenidamente.
5.6 Seguridad de las sesiones remotas mediante HP-UX Secure Shell (SSH)
91
5.6.5 Autenticación con HP-UX Secure Shell
HP-UX Secure Shell admite los siguientes métodos de autenticación:
•
GSS-API (autenticación de clientes basada en Kerberos)
•
Autenticación con claves públicas
•
Autenticación basada en host
•
Autenticación con contraseñas
Cuando un cliente se conecta con un demonio remoto sshd, selecciona el método de
autenticación deseado (uno de los métodos enumerados anteriormente) y bien presenta
las credenciales apropiadas como parte de la solicitud de conexión o bien responde a
un mensaje enviado por el servidor. Todos los métodos de autenticación funcionan de
esta forma.
El servidor necesita la clave, el santo y seña, la contraseña o las credenciales apropiadas
del cliente para establecer una conexión satisfactoria.
Puede optar por que la instancia de sshd admita sólo un subconjunto de los métodos
de autenticación admitidos en función de los requisitos de seguridad.
Aunque HP-UX Secure Shell admite los métodos de autenticación enumerados
anteriormente, los administradores del sistema pueden limitar los métodos de autenticación
ofrecidos por una instancia de sshd, en función de los requisitos de seguridad específicos
del entorno. Por ejemplo, un entorno HP-UX Secure Shell puede dictar que todos los
clientes deben autenticarse utilizando el método de clave pública o Kerberos. Como
consecuencia, se pueden deshabilitar el resto de los métodos. La habilitación o
deshabilitación de los métodos de autenticación admitidos se produce mediante las
directivas de configuración especificadas en el archivo sshd_config.
Cuando se realiza una solicitud de conexión de un cliente ssh, el servidor responde
primero con la lista de los métodos de autenticación admitidos. Esta lista representa los
métodos de autenticación que admite el servidor de sshd y la secuencia en la que estos
métodos se van a intentar. El cliente puede omitir uno o varios de estos métodos de
autenticación. El cliente también puede cambiar la secuencia en la que se intentan los
métodos. Esto se logra con una directiva de configuración en el archivo de configuración
de cliente, /opt/ssh/etc/ssh_config.
Las siguientes secciones resumen los métodos de autenticación que admite HP-UX Secure
Shell.
5.6.5.1 GSS-API
Con la interface Generic Security Service Application Programming Interface (GSS-API),
un tipo de autenticación de cliente basada en Kerberos, el cliente debe obtener
credenciales Kerberos con antelación y debe tener también un archivo de configuración
Kerberos presente en el directorio de cliente apropiado. Cuando un cliente se conecta
a un demonio sshd, presenta las credenciales en el momento de la conexión. El servidor
92
Administración de la seguridad relativa al acceso remoto
compara estas credenciales con una copia de las mismas para este usuario específico.
Asimismo, el servidor puede establecer opcionalmente la legitimidad del entorno host
del cliente.
Para obtener más información, consulte las páginas de manual de gssapi(5) y kerberos(9),
y la documentación relativa al administrador Kerberos en: http://www.docs.hp.com/
en/internet.html#Kerberos.
5.6.5.2 Autenticación con claves públicas
Para la autenticación con claves públicas, el entorno Secure Shell debe tener la siguiente
configuración:
•
El cliente y el servidor deben tener un par de claves. Cada cliente ssh y cada
servidor sshd deben generar un par de claves para sí mismos utilizando la utilidad
ssh-keygen.
•
El cliente debe dar a conocer su clave pública a todos los servidores sshd con los
que necesita establecer comunicación. Para hacerlo, copie la clave pública de cada
cliente en un directorio predeterminado de cada servidor pertinente.
•
El cliente debe adquirir la clave pública de cada servidor con el que necesita
establecer comunicación. El cliente adquiere las claves públicas con la utilidad
ssh-keyscan.
Una vez terminada la configuración, los clientes ssh que se conectan a los servidores
sshd se autentican utilizando claves públicas y privadas. Para obtener más información
sobre la criptografía de claves públicas, consulte la entrada del glosario criptografía
de claves públicas.
HP-UX Secure Shell ofrece una característica adicional para racionalizar la autenticación
con claves públicas. Para algunos entornos, puede que le resulte más cómodo no tener
que responder a las solicitudes de contraseñas todo el tiempo. Puede eliminar la
necesidad de tener que responder a las solicitudes de contraseñas utilizando una
combinación de procesos ssh-agent y ssh-add, ambos ejecutados en el equipo
cliente. El cliente registra toda la información clave con el proceso ssh-agent a través
de la utilidad ssh-add. A continuación, la autenticación con claves públicas entre
cliente y servidor se facilita mediante ssh-agent sin que el demonio sshd tenga que
interactuar con el cliente.
5.6.5.3 Autenticación con claves públicas y basada en host
La autenticación con claves públicas y basada en host es una extensión más segura del
método de autenticación con claves públicas. Además de tener pares de claves tanto
para cliente como para servidor, este método permite a los entornos cliente restringir
los servidores con los que se van a comunicar. Aplique esta restricción al crear un archivo
.rhosts en el directorio inicial del cliente.
5.6 Seguridad de las sesiones remotas mediante HP-UX Secure Shell (SSH)
93
5.6.5.4 Autenticación con contraseñas
El método de autenticación con contraseñas se basa en la existencia de un solo inicio
de sesión con id. de usuario y contraseña. Este inicio de sesión podría estar basado en
el inicio de sesión del usuario que se especifica en el archivo /etc/passwd o estar
basado en los módulos PAM.
HP-UX Secure Shell está totalmente integrado en los módulos PAM disponibles en el
sistema servidor. Para este fin, el archivo /opt/ssh/etc/sshd_config porta una
directiva de configuración UsePAM. Si está definida en YES, cualquier solicitud de
autenticación con contraseñas del cliente hace que sshd consulte el archivo de
configuración PAM (/etc/pam.conf). La autenticación con contraseñas se realiza, a
continuación, a través de los módulos PAM configurados, en secuencia, hasta que sea
satisfactoria. Para obtener más información sobre la autenticación PAM, consulte la
página de manual de pam.conf(4).
Defina la directiva UsePAM en NO para hacer caso omiso de la autenticación PAM. En
lo sucesivo, cualquier solicitud de autenticación con contraseña del cliente hará que el
archivo sshd haga caso omiso de los valores de configuración PAM en el servidor. En
su lugar, sshd obtiene información de contraseñas de usuario al hacer directamente
una llamada a la biblioteca getpwnam().
HP-UX Secure Shell se ha probado con PAM_UNIX, PAM_LDAP y PAM_KERBEROS.
Asimismo, se espera que funcione con otros módulos PAM, por ejemplo, PAM_DCE y
PAM_NTLM.
5.6.6 Protocolos de comunicación
Los usuarios de HP-UX Secure Shell se pueden conectar con un demonio sshd remoto
utilizando el protocolo SSH-1 o SSH-2. El protocolo SSH-2 es más seguro y se recomienda
encarecidamente en lugar de SSH-1.
5.6.7 HP-UX Secure Shell y el sistema HP-UX
HP-UX Secure Shell no es realmente un auténtico shell. Es un mecanismo que permite
crear una conexión segura entre un cliente y un sistema host remoto para poder ejecutar
sesiones de shell remotas sin riesgos en el sistema host. Para lograr una conexión segura,
HP-UX Secure Shell realiza por sí mismo la mayor parte de la creación de sesiones y la
autenticación. A continuación, se muestra una lista parcial de las características que
utiliza HP-UX Secure Shell:
•
Registro de intentos login
Al igual que el comando telnet o remsh, HP-UX Secure Shell registra las sesiones
fructuosas e infructuosas en los archivos /var/adm/wtmp y /var/adm/btmp,
respectivamente. Para obtener más información, consulte la página de manual de
utmp(4).
94
Administración de la seguridad relativa al acceso remoto
•
Módulos PAM
Según se describe en la Sección 5.6.5, HP-UX Secure Shell puede utilizar la
autenticación PAM para sesiones de cliente. Cuando se selecciona la autenticación
PAM, HP-UX Secure Shell utiliza el archivo /etc/pam.conf y llama al módulo
PAM apropiado para la autenticación. Para obtener más información sobre el
archivo /etc/pam.conf, consulte la página de manual de pam.conf(4).
•
Uso del archivo /etc/default/security
Es un archivo de configuración accesible en el sistema que contiene atributos que
definen el comportamiento del inicio de sesión, las contraseñas y demás
configuraciones de seguridad. HP-UX Secure Shell permite utilizar estos atributos
con algunas restricciones, que se explican en el archivo /opt/ssh/README.hp
de HP-UX Secure Shell.
Para obtener más información sobre el archivo /etc/default/security, consulte
la página de manual de security(4).
•
Contraseñas ocultas
HP-UX Secure Shell tiene integrada la característica de contraseñas ocultas HP-UX.
Para obtener más información, consulte la página de manual de shadow(4).
•
Control del archivo de registro del sistema (syslog)
HP-UX Secure Shell utiliza el comando syslog para escribir mensajes importantes.
Para obtener más información, consulte las páginas de manual de syslog(3C) y
syslogd(1M).
•
Registro de auditoría
HP-UX Secure Shell ha aplicado el registro de auditoría (en modo de confianza) en
su propio código. Para obtener más información, consulte la página de manual de
audit(5).
5.6.8 Tecnologías asociadas
HP-UX Secure Shell se ha probado con las siguientes tecnologías:
•
Kerberos 5 y GSS-API
•
OpenSSL
•
IPv6
•
TCP Wrappers
•
PAM (PAM_UNIX, PAM_Kerberos y PAM_LDAP)
•
HP-UX Strong Random Number Generator
5.6 Seguridad de las sesiones remotas mediante HP-UX Secure Shell (SSH)
95
5.6.9 Requisito del generador de números aleatorios robusto
Al igual que con todos los productos criptográficos basados en claves, HP-UX Secure
Shell necesita un generador de números aleatorios. HP-UX Secure Shell busca archivos
especiales de dispositivo del generador HP-UX Strong Random Number Generator
(/dev/urandom y /dev/random) y utiliza el primer archivo especial de dispositivo
que localiza. Si esos dos archivos no existen en el sistema, HP-UX Secure Shell utiliza
su propio generador de números aleatorios robusto: ssh-rand-helper.
HP-UX Strong Random Number Generator mejora el rendimiento y la entropía (medida
de aleatoriedad y, por lo tanto, de la seguridad de las claves generadas) de HP-UX
Secure Shell. Genera auténticos números aleatorios irreproducibles. Se recomienda
encarecidamente el uso de HP-UX Strong Random Number Generator con HP-UX Secure
Shell.
HP-UX Strong Random Number Generator se facilita por defecto. Para obtener más
información, consulte la página de manual de random(7).
5.6.10 Compatibilidad con TCP Wrappers
El demonio de HP-UX Secure Shell, sshd, está enlazado con la biblioteca de archivos
de almacenamiento, libwrap.a, para admitir TCP Wrappers. Consulte también la
Sección 5.3.
5.6.11 Cárcel de directorio chroot
chroot es una cárcel de directorio. Inicia una aplicación en un directorio específico y
restringe el acceso de los usuarios a ese directorio y a los directorios que contenga.
Impide que los usuarios cambien de directorio por encima del directorio especificado.
Se ha pensado para restringir el acceso a archivos y directorios a los usuarios de esa
aplicación mientras la utilizan.
Deberá habilitar el comando chroot para una aplicación. Deberá crear directorios
nuevos y copiar el conjunto de archivos pertinente en los directorios recién creados.
Puede configurar opcionalmente ssh, scp y sftp con un directorio chroot.
El archivo README de HP-UX Secure Shell ubicado en /opt/ssh/README.hp explica
la característica chroot, la secuencia de comandos de configuración de chroot y los
archivos específicos que esta secuencia copia para habilitar ssh, sftp y scp para un
entorno chroot. Consulte también la página de manual de chroot(1M).
La secuencia de comandos de configuración de chroot se ubica en el archivo /opt/
ssh/utils/ssh_chroot_setup.sh, que forma parte del producto de software
HP-UX Secure Shell (Secure Shell 4.30.004/005).
96
Administración de la seguridad relativa al acceso remoto
Parte II Protección de los datos
HP-UX 11i ofrece protección de los datos de numerosas maneras: protección de los datos en
tránsito, en uso y en reposo. Al emplear las características de seguridad concebidas para
proteger los datos de las tres maneras mencionadas, los clientes de HP-UX 11i pueden reducir
al mínimo las posibles infracciones de seguridad no sólo en cuanto a la pérdida de datos, sino
también en cuanto a la confianza del cliente. Esta sección describe los siguientes temas:
•
Seguridad de los sistemas de archivos (Capítulo 6)
•
Compartimentos (Capítulo 7)
•
Privilegios expresos (Capítulo 8)
97
98
6 Seguridad de los sistemas de archivos
Este capítulo explica la seguridad de los sistemas de archivos. Antes de leer este capítulo,
deberá tener unos conocimientos básicos de los archivos y los sistemas de archivos.
Puesto que los datos se almacenan en archivos, es importante saber cómo protegerlos.
Este capítulo analiza los siguientes temas:
•
Control del acceso a los archivos (Sección 6.1)
•
Definición de listas de control de acceso (Sección 6.2)
•
Uso de las listas ACL del sistema de archivos HFS (Sección 6.3)
•
Uso de las listas ACL del sistema de archivos JFS (Sección 6.4)
•
Comparación de listas ACL de los sistemas de archivos JFS y HFS (Sección 6.5)
•
Listas ACL y sistemas de archivos NFS (Sección 6.6)
•
Consideraciones sobre la seguridad para los archivos especiales de dispositivo
/dev (Sección 6.7)
•
Protección de las particiones de disco y los volúmenes lógicos (Sección 6.8)
•
Pautas de seguridad para montar y desmontar sistemas de archivos (Sección 6.9)
•
Control de la seguridad de los archivos en una red (Sección 6.10)
6.1 Control del acceso a los archivos
Los grupos de trabajo, los permisos de acceso a los archivos, la propiedad de los
archivos y las reglas de compartimentos determinan quién puede obtener acceso a un
archivo dado. Las reglas más sencillas de acceso a los archivos son los permisos de
acceso a los archivos estándar de UNIX.
Puede dividir a los usuarios en grupos para que puedan compartir en el grupo los
archivos que posea el grupo y puedan protegerse de personas ajenas.
Los permisos de acceso a los archivos tradicionales de UNIX se muestran mediante el
comando ls con el indicador -l. Los permisos indican el tipo de acceso (es decir, la
capacidad de lectura, escritura y ejecución) que se concede al propietario y a los grupos
en el sistema. Las protecciones de acceso a los archivos tradicionales de UNIX permiten
un cierto control sobre quién puede tener acceso a los archivos y directorios, pero no
permiten definir el acceso a los archivos para usuarios individuales y grupos más allá
del usuario propietario y el grupo propietario. La información siguiente es un breve
análisis de los permisos de acceso a los archivos de UNIX.
Cada archivo y cada directorio tienen nueve permisos asociados. Los archivos y los
directorios tienen los siguientes tres tipos de permisos:
6.1 Control del acceso a los archivos
99
•
r (lectura)
•
w (escritura)
•
x (ejecución)
Estos tres permisos se producen para cada una de las tres clases de usuarios siguientes:
•
u (usuario/propietario)
•
g (grupo)
•
o (los demás; también denominado mundo)
El permiso r permite a los usuarios ver o imprimir el archivo. El permiso w permite a los
usuarios escribir (modificar) el archivo. El permiso x permite a los usuarios ejecutar el
archivo o buscar directorios.
La Figura 6-1 muestra los campos de permisos tradicionales.
Figura 6-1 Campos de permisos de los directorios y los archivos
permiso
propietario
grupo
otros
rwx
rwx
rwx
r lectura
w escritura
x ejecución
El usuario/propietario de un archivo o directorio generalmente es la persona que lo
creó. Si usted es el propietario de un archivo, puede cambiar los permisos de archivo
con el comando chmod.
El grupo especifica el grupo al que pertenece el archivo. Si usted es el propietario de
un archivo, puede cambiar la identificación de grupo del archivo con el comando chgrp.
El significado de los tres tipos de permisos difiere algo entre directorios y archivos
corrientes. Para obtener más información, consulte la Tabla 6-1.
100 Seguridad de los sistemas de archivos
Tabla 6-1 Diferencias entre los privilegios de archivos y de directorios
Permiso
Archivo
Directorio
r (lectura)
El contenido se puede ver o
imprimir.
El contenido se puede leer, pero
no buscar. Normalmente, r y x se
utilizan juntos.
w (escritura)
El contenido se puede cambiar o Las entradas se pueden agregar o
borrar.
eliminar.
x (ejecución)
El archivo se puede utilizar como El directorio se puede buscar.
un programa.
6.1.1 Definición de permisos de acceso a los archivos
El comando chmod cambia el tipo de acceso (privilegios de lectura, escritura y ejecución)
del propietario del archivo, los miembros del grupo o los demás. Sólo el propietario de
un archivo o un usuario con los privilegios apropiados puede cambiar el acceso a los
archivos. Consulte la página de manual de chmod(1).
Por defecto, el conjunto inicial de permisos de lectura y escritura de los archivos y
directorios viene determinado por el valor umask del creador. Para cambiar los permisos
de acceso a los archivos por defecto, utilice el comando umask. Consulte la página de
manual de umask(1).
Cada bit que se establece en la máscara de creación del modo archivo conlleva el
correspondiente bit de permiso en el modo archivo que se va a borrar (deshabilitar). A
la inversa, los bits que se borran en la máscara permiten la activación de los bits
correspondientes del modo archivo en los archivos recién creados.
Por ejemplo, un comando umask de 022 en formato octal crea una máscara de
u=rwx,g=rx,o=rx, que deshabilita los permisos de acceso de grupo y demás permisos
de escritura.
6.1.2 Definición de la propiedad de los archivos
El comando chown cambia la propiedad de un archivo. Para cambiar el propietario,
hay que ser el titular del archivo o tener los privilegios apropiados.
El comando chgrp cambia la propiedad de un grupo de archivos. Para cambiar el
grupo, hay que ser el titular del archivo o tener los privilegios apropiados.
Para obtener más información, consulte las páginas de manual de chown(1) y chgrp(1).
6.1 Control del acceso a los archivos
101
6.1.3 Protección de los directorios
Normalmente, si un directorio tiene permiso de escritura ya sea mediante permisos
estándar o listas ACL, cualquier miembro puede eliminar los archivos del directorio, al
margen de los permisos definidos para los archivos. Para proteger contra la eliminación
de archivos no deseada en un directorio:
•
Retire los permisos de escritura para los directorios que no deban tenerlos.
Esto es especialmente eficaz en el caso de los directorios particulares de los usuarios.
El siguiente comando permite a otras personas leer y buscar en el directorio midir,
pero el único que puede eliminar archivos en él es el propietario.
# chmod 755 midir
Consulte las páginas de manual de chmod(1) y chmod(2).
•
Defina el bit de permanencia en el directorio.
•
El bit de permanencia es un bit especial en el modo de cada archivo. La definición
del bit de permanencia evita que los usuarios eliminen archivos de otros usuarios
de ese directorio. La definición del bit de permanencia de un directorio permite
sólo al propietario del archivo, al propietario del directorio o a un usuario con los
privilegios apropiados, eliminar o cambiar el nombre de los archivos.
Esto resulta eficaz para los directorios temporales o de proyectos (por ejemplo,
/tmp y /var/tmp) cuyo acceso debe estar abierto a muchos usuarios autorizados.
El siguiente comando establece que todos puedan crear, leer y escribir archivos en
/mfgproj, pero que sólo el propietario del archivo, el propietario del directorio
o un usuario con los privilegios apropiados puedan eliminarlos:
# chmod a+rwxt /mfgproj
La definición del bit de permanencia es importante para los directorios que se
utilizan para archivos temporales. En el caso de que un directorio temporal no se
haya definido en permanencia, un intruso podría modificar el comportamiento
previsto de los programas de usuario al esperar a que se cree un archivo temporal
y, a continuación, eliminarlo y volver a crear un nuevo archivo con el contenido
modificado, pero con el mismo nombre. En la mayoría de lo casos, la aplicación
no es consciente del cambio y podría realizar acciones maliciosas sin intención en
nombre del intruso.
6.1.4 Protección de los archivos relacionados con las cuentas de usuario
Siga estas pautas para proteger los archivos relacionados con las cuentas de usuario:
•
Un directorio inicial no debe tener acceso de escritura para nadie, exceptuando al
propietario. De lo contrario, cualquier usuario puede agregar y eliminar archivos
del directorio.
•
El propietario de la cuenta debe ser el único que pueda escribir en los archivos
.profile, .kshrc, .login y .cshrc de cada usuario.
102 Seguridad de los sistemas de archivos
•
El propietario del archivo de usuario .rhosts debe ser el único con capacidad
para leer o escribir en él. Esta medida de precaución impide que los demás usuarios
adivinen las otras cuentas que usted pueda tener y que alguien modifique el archivo
.rhosts a fin de conseguir entrar en esos sistemas. Para obtener más información,
consulte la página de manual de hosts.equiv(4).
•
No utilice un archivo .netrc, ya que prescinde de la autenticación login para
el inicio de sesión remoto e incluso contiene la contraseña sin cifrar del usuario. Si
se utiliza, el propietario de .netrc debe ser el único con capacidad para leerlo
o escribir en él. Para obtener más información, consulte la página de manual de
netrc(4).
6.1.5 Localización y reparación de daños de un archivo con el comando fsck
Los siguientes problemas pueden indicar un daño en el sistema de archivos:
•
Un archivo contiene datos incorrectos (basura).
•
Un archivo se ha truncado o le faltan datos.
•
Los archivos desaparecen o cambian de ubicación inesperadamente.
•
Aparecen mensajes de error en el terminal de un usuario, la consola del sistema o
el archivo de registro del sistema.
•
No puede cambiar de directorio ni obtener una lista de archivos.
•
El sistema no se reinicia.
Si usted u otros usuarios no pueden identificar fácilmente los problemas con el sistema
de archivos, utilice el comando fsck para comprobar el sistema de archivos. El comando
fsck es la principal herramienta para buscar y subsanar las incoherencias en los
sistemas de archivos. El comando fsck examina el sistema de archivos que aparece
en /etc/fstab.
La utilidad fsck no tiene capacidad para detectar los daños del archivo. Si fsck no
encuentra ningún error, es probable que el problema no sea un sistema de archivos
dañado. Es decir, el sistema de archivos es utilizable, aunque los datos subyacentes se
pierdan o dañen. Busque uno o varios de estos otros problemas de archivo:
•
Un usuario, un programa o una aplicación ha eliminado, sobrescrito, trasladado
o truncado el archivo o los archivos.
•
Es posible que el sistema de archivos asociado a un directorio concreto al crear un
archivo no se monte en dicho directorio.
•
Se ha colocado un archivo o varios archivos en un directorio que actualmente tiene
montado un sistema de archivos. Los archivos existen todavía, pero no son
accesibles. Desmonte el sistema de archivos para tener acceso a los archivos.
•
La protección o propiedad del archivo impide tener acceso a él. Utilice el comando
chmod o chown para cambiar los permisos de acceso a los archivos.
6.1 Control del acceso a los archivos 103
6.2 Definición de listas de control de acceso
Las listas de control de acceso (ACL - Access Control List) aportan una cota mayor de
protección para los archivos que los permisos tradicionales de acceso a los archivos.
Dichas listas se pueden utilizar para permitir o limitar el acceso a los archivos por parte
de usuarios individuales ajenos al grupo de pertenencia. Sólo el propietario de un
archivo o un usuario con los privilegios apropiados puede crear listas de control de
acceso.
El sistema de archivos Journaled File System (JFS) y High-Performance File System (HFS)
admiten las listas ACL, pero utilizan sintaxis y mecanismos diferentes.
JFS es la puesta en ejecución en HP-UX del sistema de archivos Veritas Journaled File
System (VxFS). HFS es la versión en HP-UX del sistema de archivos UNIX File System
(UFS) y es compatible con las versiones anteriores de HP-UX.
Una lista de control de acceso (ACL) es un conjunto de entradas de usuario, grupo y
modo asociadas a un archivo. La lista especifica los permisos de acceso para todas las
combinaciones posibles de identificación de usuario e identificación de grupo. Las listas
de control de acceso ofrecen una manera más precisa de controlar el acceso a los
archivos que los permisos de acceso a los archivos tradicionales de UNIX. Las listas ACL
permiten conceder o restringir el acceso a los archivos en función de usuarios individuales
y grupos específicos, además del control tradicional.
Ambos sistemas de archivos, HFS y JFS, admiten las listas ACL, pero emplean mecanismos
diferentes y una sintaxis distinta.
NOTA: HFS se ha desaprobado. Se eliminará del sistema operativo en una revisión
posterior.
HP-UX admite dos productos JFS independientes: el producto JFS básico, incluido en el
sistema operativo, y el producto avanzado opcional, OnLineJFS, instalado por separado.
Ambos productos JFS admiten las listas ACL.
Para obtener más información, consulte las páginas de manual de setacl(1), getacl(1),
aclv(5), chacl(1), lsacl(1) y acl(5).
6.3 Uso de las listas ACL del sistema de archivos HFS
Los permisos de acceso de las listas ACL del sistema de archivos HFS se definen con el
comando chacl y se visualizan con el comando lsacl. Consulte el Ejemplo 6-1.
IMPORTANTE: Deberá utilizar el comando chmod con la opción -A cuando trabaje
con archivos que tengan asignados permisos de acceso de las listas ACL del sistema
de archivos HFS. Sin la opción -A, el comando chmod eliminará del archivo los permisos
de acceso de las listas ACL. La sintaxis es:
# chmod -A modo archivo
104 Seguridad de los sistemas de archivos
El comando chacl es un superconjunto del comando chmod. Todo permiso específico
que asigne con el comando chacl se agrega a los permisos de acceso más generales
atribuidos con el comando chmod.
Cuando un archivo tiene asignadas listas ACL, el comando ll muestra un signo (+)
después de la cadena del permiso de acceso.
Si un usuario.grupo coincide con más de una entrada de lista ACL del sistema de
archivos HFS, tiene precedencia la entrada más específica. Consulte el Ejemplo 6-2.
Ejemplo 6-1 Creación de una lista ACL del sistema de archivos HFS
En este ejemplo, el comando chmod restringe los permisos de acceso de escritura de
myfile sólo al usuario allan. El comando chmod también elimina todas las listas ACL
anteriores del sistema de archivos HFS.
$ chmod 644 myfile
$ ll myfile
-rw-r--r-1 allan
users
0 Sep 21 16:56 myfile
$ lsacl myfile
(allan.%,rw-)(%.users,r--)(%.%,r--) myfile
El comando lsacl muestra sólo los valores por defecto (no las listas ACL), que se
corresponden con los permisos básicos de propietario, grupo y otros.
El comando chacl concede permiso de acceso de lectura y escritura al archivo myfile
a otro usuario.
$ chacl 'naomi.users=rw' myfile
$ ll myfile
-rw-r--r--+ 1 allan
users
0 Sep 21 16:56 myfile
$ lsacl myfile
(naomi.users,rw-)(allan.%,rw-)(%.users,r--)(%.%,r--) myfile
Fíjese en dos elementos: la presentación de los permisos del comando ll tiene adjunto
un signo +, el cual indica que existen listas ACL, y la cadena de permisos de ll no ha
cambiado. La entrada adicional de la presentación del comando lsacl especifica que
la usuaria naomi del grupo users tiene permisos de acceso de lectura y escritura a
myfile.
6.3 Uso de las listas ACL del sistema de archivos HFS 105
Ejemplo 6-2 Varias coincidencias con las listas ACL del sistema de archivos HFS
Si una combinación usuario.grupo de un usuario coincide con más de una entrada
de listas ACL, tiene precedencia la entrada más específica. En este ejemplo, defina
primero los permisos del archivo.
$ chmod 644 myfile
Utilice el comando chacl en myfile para agregar una entrada de sólo escritura para
la usuaria naomi:
$ chacl naomi.%=w myfile
$ lsacl myfile
(naomi.%,-w-)(allan.%,rw-)(%.users,r--)(%.%,r--) myfile
Ahora la usuaria naomi tiene permiso de acceso de escritura al archivo myfile, por
medio de la lista ACL definida para naomi.%, pero no tiene permiso de acceso de
lectura a dicho archivo porque naomi.% tiene precedencia sobre las listas ACL definidas
para %.users y %.%.
El comando lsacl muestra las listas ACL del sistema de archivos HFS en orden
decreciente de especificidad. Es decir, las coincidencias de permisos de acceso se
intentan de izquierda a derecha.
6.3.1 Listas ACL del sistema de archivos HFS y comandos y llamadas de HP-UX
Los siguientes comandos y llamadas del sistema funcionan con las listas ACL en los
sistemas de archivos HFS:
Tabla 6-2 Comandos de las listas ACL del sistema de archivos HFS
Comandos
Descripción
chacl
Cambia las listas ACL del HFS de los archivos.
getaccess
Presenta una lista de los derechos de acceso del
usuario a los archivos.
lsacl
Presenta una relación de las listas ACL del HFS de
los archivos.
Tabla 6-3 Llamadas de sistema de las listas ACL del sistema de archivos HFS
Llamada de sistema
Descripción
getaccess()
Obtiene los derechos de acceso efectivos de un
usuario a un archivo.
getacl(), fgetacl()
Obtienen información sobre las listas ACL del HFS.
setacl(), fsetacl()
Definen información sobre las listas ACL del HFS.
acltostr()
Convierte la estructura de listas ACL del HFS en un
formato de cadena.
106 Seguridad de los sistemas de archivos
Tabla 6-3 Llamadas de sistema de las listas ACL del sistema de archivos HFS (continuación)
Llamada de sistema
Descripción
chownacl()
Cambia el propietario o grupo representado en la
lista ACL de un archivo del HFS.
cpacl(), fcpacl()
Copian las listas ACL del HFS y los bits de modo de
un archivo en otro.
setaclentry(), fsetaclentry()
Agregan, modifican o eliminan una entrada de lista
ACL de un archivo del HFS.
strtoacl()
Analiza y convierte la estructura de listas ACL del
HFS en un formato de cadena.
strtoaclpatt()
Analiza y convierte las cadenas modelo de listas
ACL del HFS en matrices.
Los siguientes comandos, llamadas de sistema y bibliotecas de subrutinas influyen en
las entradas de las listas ACL, algunas veces de forma inesperada.
Tabla 6-4 Comandos y llamadas que influyen en las entradas de las listas ACL
Comando o llamada
Descripción
chmod
Elimina las listas ACL del HFS por defecto. Utilice la
opción -A para conservar las listas ACL del HFS.
chmod()
Elimina las entradas de listas ACL del HFS. Utilice
la función getacl() y la función setacl() para
guardar y restaurar las entradas de listas ACL del
HFS.
cpset
No define las entradas opcionales de listas ACL de
un archivo.
find
Identifica los archivos cuyas entradas de listas ACL
coincidan con modelos de ACL específicos o los
incluyan en los sistemas de archivos HFS o JFS.
ls -l
La forma larga indica la existencia de listas ACL
mostrando un signo + después de los bits de permiso
de acceso del archivo.
mailx
No admite entradas de listas ACL opcionales en los
archivos /var/mail/*.
compact, compress, cp, ed, pack, unpack
Copian las entradas de listas ACL en los archivos
nuevos que crean.
6.3 Uso de las listas ACL del sistema de archivos HFS 107
Tabla 6-4 Comandos y llamadas que influyen en las entradas de las listas ACL
(continuación)
Comando o llamada
Descripción
frecover, fbackup
Comandos que sólo deben utilizarse para recuperar
y hacer copias de seguridad de los archivos de
forma selectiva. Utilice la opción -A al realizar
copias de seguridad desde un sistema compatible
con las listas ACL que se vayan a recuperar en un
sistema que no admita dichas listas.
ar, cpio, ftio, shar, tar, dump, restore
Estos comandos no conservan las listas ACL al
archivar y restaurar. Utilizan el valor st_mode que
remite la función stat().
rcs, sccs
Estos comandos no admiten listas ACL.
Las listas de control de acceso del HFS utilizan «inodos de continuación» adicionales
al crear sistemas de archivos nuevos. Téngalos en cuenta cuando utilice los siguientes
comandos:
•
fsck: remite el número de archivos con entradas de listas ACL en forma de un
valor para icont. Utilice la opción -p para borrar los inodos de continuación a
los que no se haya hecho referencia. Consulte la página de manual de fsck(1M).
•
diskusg, ncheck: Hacen caso omiso de los inodos de continuación. Consulte las
páginas de manual de diskusg(1M) y ncheck(1M).
•
mkfs: Tiene en cuenta los inodos de continuación en los discos nuevos. Consulte
la página de manual de mkfs(1M).
6.4 Uso de las listas ACL del sistema de archivos JFS
Esta sección describe las listas ACL del sistema de archivos JFS y su uso.
NOTA: Para utilizar las listas ACL del sistema de archivos JFS, deberá tener un sistema
de archivos VxFS que utilice la versión 4 del diseño del disco. Para obtener información
sobre la mejora del sistema de archivos a la versión 4, consulte la página de manual
de vxupgrade(1M).
6.4.1 Definición de una lista ACL del sistema de archivos JFS
Una lista ACL del sistema de archivos JFS contiene entradas de una línea de longitud
que designan a usuarios y grupos específicos e indican qué permiso de acceso se otorga
a cada uno de ellos. La presencia de una lista ACL del sistema de archivos JFS también
modifica el significado de los bits de permiso de group, que se muestran con el comando
ls -l.
Una lista ACL del sistema de archivos JFS tiene al menos cuatro entradas: una entrada
user, una entrada group, una entrada class y una entrada other. Cuando una
108 Seguridad de los sistemas de archivos
lista ACL del JFS sólo contiene estas cuatro entradas, los permisos de acceso que concede
son exactamente iguales que los permisos que representan los bits de permiso de sistema
UNIX estándar.
6.4.2 Cómo genera el sistema una lista ACL del sistema de archivos JFS
Siempre que se crea un archivo en un sistema de archivos JFS, el sistema inicializa una
lista ACL del JFS mínima para el archivo; dicha lista contiene una entrada user para
los permisos de propietario, una entrada group para los permisos de grupo propietario,
una entrada class para los permisos de grupo propietario y una entrada other para
los otros permisos de grupo. Se pueden agregar entradas adicionales de dos formas:
por mediación del usuario o como consecuencia de las entradas por defecto especificadas
en el directorio primario.
6.4.3 Lista ACL del sistema de archivos JFS mínima
Una lista ACL con las cuatro entradas básicas definidas anteriormente se denomina lista
ACL del sistema de archivos JFS mínima. Un ejemplo de lista ACL mínima presenta este
aspecto:
user::rwgroup::r-class:r-other:---
•
La entrada user indica los permisos del propietario del archivo y asigna bits de
permiso directamente al propietario. Puesto que la primera entrada se aplica al
propietario del archivo, no es necesario que se indique ningún nombre de usuario.
La entrada de la lista ACL de ejemplo concede permisos de acceso de lectura y
escritura al propietario del archivo.
•
Las entradas group y class precisan el permiso de acceso concedido a los
miembros del grupo propietario. La entrada de la lista ACL de ejemplo concede
permisos de acceso de sólo lectura al propietario del archivo. Las entradas group
y class se describen con más detalle en la Sección 6.4.5.
•
La entrada other es una entrada general que especifica los permisos
correspondientes a toda persona a la que no se haya concedido ni denegado
permiso de acceso en ninguna de las demás entradas. La entrada other deniega
el permiso de acceso a todos los usuarios que no sean el propietario del archivo
ni el grupo propietario del archivo.
Los bits de permiso mostrados por el comando ls -l para este archivo pueden adoptar
este aspecto:
rw-r-----
En la siguiente sección, se describe cómo influye la presencia de entradas de listas ACL
del JFS adicionales en el acceso a los archivos y cómo interpretar los bits de permiso.
6.4 Uso de las listas ACL del sistema de archivos JFS 109
6.4.4 Entradas «user» y «group» adicionales de las listas ACL del sistema de archivos
JFS
Si desea conceder o denegar el acceso a usuarios o grupos específicos ubicados en el
sistema, puede agregar un máximo de 13 entradas más de user y group a las cuatro
entradas mínimas mencionadas en la sección anterior.
Por ejemplo, la siguiente entrada de la lista ACL de un archivo concede permisos de
acceso de lectura, escritura y ejecución a un usuario que ha iniciado una sesión como
boss:
user:boss:rwx
En el siguiente ejemplo, una lista ACL con la siguiente entrada deniega el permiso de
acceso a un usuario del grupo spies:
group:spies:---
6.4.5 Entradas «group» y «class» de las listas ACL del sistema de archivos JFS
En un archivo con una lista ACL mínima, las entradas group propietario y class de
una lista ACL son idénticas. Sin embargo, en un archivo con entradas adicionales, las
entradas group propietario y class de la lista ACL son distintas. La entrada group
propietario concede permisos de acceso a un grupo específico: el group propietario.
La entrada class es más general: especifica los permisos de acceso máximos que
cualquiera de las entradas user y group adicionales puede conceder.
Si no se concede un permiso concreto en la entrada class, ese permiso no puede
concederlo ninguna de las entradas de la lista ACL, excepto la primera entrada user
(«owner», propietario) y la entrada other (otros). Se puede denegar cualquier permiso
de acceso a un usuario o grupo concreto. La entrada class funciona como un límite
superior para los permisos de acceso a los archivos.
Cuando una lista ACL contiene más de una entrada group o user, a la colección de
entradas user y group adicionales se alude como las entradas group class, porque
la entrada class limita el permiso de acceso efectivo concedido por cualquiera de
dichas entradas adicionales.
6.4.6 Uso de los comandos «setacl» y «getacl»
Utilice los comandos setacl y getacl para cambiar y ver las listas ACL.
Utilice el comando setacl para cambiar la lista ACL de una de las siguientes formas:
110
•
Sustituya una lista ACL completa del archivo, incluida la lista ACL por defecto
ubicada en el directorio.
•
Agregue, modifique o elimine una o varias entradas, incluidas las entradas por
defecto ubicadas en los directorios.
Seguridad de los sistemas de archivos
El comando getacl muestra las entradas de la lista ACL. Los bits de permiso de acceso
a archivos correspondientes a user y group se convierten en casos especiales de estas
entradas:
•
Los bits que representan los permisos de acceso de propietario se denotan con una
entrada user sin especificar un número de identificación de usuario.
•
Los bits que representan los permisos de acceso de grupo se denotan con una
entrada group sin especificar una identificación de grupo.
Una lista ACL debe contener una entrada de cada una de estas entradas user y
group especiales. La lista ACL puede tener cualquier cantidad de entradas user
y group adicionales, pero todas ellas deben contener un número de identificación
de usuario o una identificación de grupo, según corresponda. Una lista ACL tiene
sólo una entrada other, que representa los bits de permiso que se van a conceder
a otros usuarios.
Para obtener una descripción de los comandos, consulte las páginas de manual de
setacl(1) y getacl(1).
6.4.7 Efecto de chmod en las entradas «class»
Cuando un archivo tiene una lista ACL mínima, las entradas group propietario y class
de la lista ACL son idénticas y el comando chmod afecta a ambas. No obstante, cuando
un archivo contiene entradas opcionales adicionales de la lista ACL, tienen lugar las
siguientes consecuencias:
•
La entrada class de la lista ACL ya no tiene por qué ser igual a la entrada group
propietario de la lista ACL
•
El comando chmod afecta a la entrada class de la lista ACL, no a la entrada
group propietario.
•
Deberá utilizar el comando setacl para cambiar la entrada group propietario.
6.4.8 Ejemplo de modificación de una lista ACL del sistema de archivos JFS mínima
Para ilustrar la función de la entrada class de una lista ACL del sistema de archivos
JFS, esta sección describe cómo afectan los comandos chmod y setacl a un archivo
con una lista ACL del JFS mínima, así como a un archivo con entradas group class.
NOTA: Se facilitan más detalles sobre el uso de los comandos getacl y setacl en
la Sección 6.4.10. Consulte también las páginas de manual de getacl(1) y setacl(1).
Supongamos que tiene un archivo, exfile, con permisos de acceso de sólo lectura
(444) y una lista ACL del JFS mínima. El comando ls -l muestra los permisos para
exfile:
$ ls -l exfile
-r--r--r-- 1 jsmith users 12 Sep 20 15:02 exfile
6.4 Uso de las listas ACL del sistema de archivos JFS
111
El comando getacl muestra la lista de la siguiente salida del archivo exfile, que es
una lista ACL del JFS mínima:
$ getacl exfile
# file: exfile
# owner: jsmith
# group: users
user::r-group::r-class:r-other:r--
El uso del comando chmod para agregar permisos de acceso de escritura al archivo
exfile cambia ambas entradas de la lista ACL: group propietario y class. Por
ejemplo, analice la salida del comando getacl:
$ chmod 666 exfile
$ getacl exfile
# file: exfile
# owner: jsmith
# group: users
user::rwgroup::rwclass:rwother:rw-
A continuación, se agregan entradas user y group adicionales, las cuales afectarán a
la entrada class de la lista ACL, pero no a la entrada group propietario. El primer
comando setacl que sigue concede permiso de acceso de sólo lectura al usuario
guest; las demás entradas de la lista ACL no se ven afectadas. Sin embargo, el segundo
comando setacl concede permisos de acceso de lectura y ejecución al grupo dev y
el límite superior de los permisos (la entrada class) se amplía para incluir el permiso
de acceso de ejecución.
$ setacl -m u:guest:r-- exfile
$ setacl -m g:dev:r-x exfile
$ getacl exfile# file: exfile
# owner: jsmith
# group: users
user::rwuser:guest:r-group::rwgroup:dev:r-x
class:rwx
other:rw-
A continuación, el comando chmod elimina los permisos de acceso de ejecución y de
escritura de group y reduce realmente los permisos de class a acceso de sólo lectura.
Los permisos de acceso de group propietario, mientras permanezcan igual, también
se reducen, en efecto, al permiso de sólo lectura.
$ chmod g-wx exfile
$ getacl exfile
112
Seguridad de los sistemas de archivos
# file: exfile
# owner: jsmith
# group: users
user::rwuser:guest:r-group::rw# effective:r-group:dev:r-x # effective:r-class:r-other:rw-
Los permisos de acceso de other siguen siendo los mismos. La entrada class no limita
el permiso de acceso que pueden conceder la primera entrada user («owner»,
propietario) o la entrada other.
El comando ls -l muestra la lista de los permisos de exfile: El signo + ubicado al
final de la cadena de permisos indica que existe una lista ACL para el archivo.
$ ls -l exfile
-rw-r--rw-+ 1 jsmith users 12 Sep 20 15:02 exfile
6.4.9 Listas ACL del sistema de archivos JFS por defecto
Querrá que todos los archivos creados en un directorio tengan determinadas entradas
de listas ACL. Por ejemplo, puede autorizar a otra persona para escribir en cualquier
archivo de un directorio suyo cuando los dos colaboren en un proyecto.
Puede colocar una entrada de lista ACL que conceda el acceso deseado en todos los
archivos del directorio, pero tendrá que volver a agregar esta entrada cada vez que
cree un archivo nuevo. Si utiliza las entradas de listas ACL por defecto, puede indicarle
al sistema que lo haga automáticamente cada vez que cree un archivo.
La entrada de la lista ACL por defecto tiene el siguiente aspecto:
default:user:boss:rw-
Las listas ACL por defecto sólo se pueden ubicar en un directorio y no tienen influencia
en el tipo de acceso al directorio que se concede al usuario. La lista ACL por defecto
se aplica a los archivos creados en el directorio.
Si el archivo recién creado es un directorio, las entradas de listas ACL por defecto tienen
dos efectos:
•
Se crean las entradas correspondientes de listas ACL que no sean por defecto, de
modo que se concedan y denieguen los permisos de acceso deseados en relación
con el directorio, exactamente igual que en el caso de cualquier archivo creado
en el directorio.
•
Las propias entradas por defecto se copian, de modo que el directorio secundario
nuevo tenga las mismas listas ACL por defecto que el directorio primario.
Por ejemplo, si desea que determinados usuarios puedan leer los archivos creados en
el directorio projectdir, puede crear las entradas por defecto apropiadas del modo
siguiente.
6.4 Uso de las listas ACL del sistema de archivos JFS
113
$ setacl -m d:u:boss:r,d:u:jjones:r,d:u:dev:r projectdir
$ getacl projectdir
# file: projectdir
# owner: jsmith
# group: users
user::rwuser:boss:rwuser:jjones:rwuser:jdoe:--group::rwgroup:dev:rwclass:rwother:--default:user:boss:r--default:user:jjones:r-default:group:dev:r--
Si el archivo recién creado es un directorio, se generan las mismas entradas de las listas
ACL. Asimismo, las propias entradas por defecto se ubican también en la lista ACL.
Con estas entradas en vigor, los archivos nuevos creados en el directorio projectdir
tendrán una lista ACL como la mostrada anteriormente sin las entradas por defecto.
6.4.10 Modificación de las listas ACL del sistema de archivos JFS con el comando setacl
Esta sección presenta más ejemplos del uso del comando setacl.
6.4.10.1 Uso de las opciones de modificación y eliminación
El siguiente comando setacl utiliza la opción -m (modificar) para conceder acceso
de sólo lectura al usuario boss para el archivo junk:
$ setacl -m u:boss:r-- junk
Para conceder permisos de acceso de lectura y escritura a cualquiera del grupo dev,
utilice el parámetro (g:) del grupo con el comando setacl -m:
$ setacl -m g:dev:rw- junk
La opción -d elimina una entrada. Con -d, no se especifica ningún permiso en la
entrada de lista ACL. Por ejemplo, el siguiente comando elimina la entrada
correspondiente al grupo dev:
$ setacl -d g:dev junk
6.4.10.2 Uso de la opción -f
Si se trata de agregar o cambiar varias entradas, puede emplear un procedimiento
distinto. Puede guardar la lista ACL en un archivo, modificar el archivo y, a continuación,
aplicar esta nueva lista ACL al archivo. Por ejemplo, guarde la lista ACL en un archivo
con este comando:
$ getacl junk > junk.acl
Modifique el archivo para que se muestre del siguiente modo:
114
Seguridad de los sistemas de archivos
$ cat junk.acl
# file: junk
# owner: user1
# group: group1
user::rwuser:user2:rwuser:user3:rwuser:user4:--user:user5:r-group::rwgroup:group2:rwgroup:group3:r-group:group4:--group:group5:rwclass:rwother:r--
Aplique la lista ACL al archivo con el comando setacl -f:
$ setacl -f junk.acl junk
6.4.10.3 Los permisos efectivos y el comando setacl -n
En general, el comando setacl vuelve a calcular la entrada class para garantizar
que los permisos de acceso concedidos en las entradas de la lista ACL adicionales se
conceden. Si se especifica la opción -n, la entrada class no se vuelve a calcular,
empleándose el valor existente. Esto entraña que algunos permisos de acceso concedidos
por las entradas de la lista ACL no se concedan en la práctica.
Por ejemplo, esta lista ACL se modifica con el comando setacl -n para agregar
permisos de acceso de lectura y de ejecución al grupo dev del siguiente modo:
$ getacl exfile
# file: exfile
# owner: jsmith
# group: users
user::rwgroup::rwclass:rwother:rw$ setacl -n -m group:dev:r-x exfile
$ getacl exfile
# file: exfile
# owner: jsmith
# group: users
user::rwgroup::rwgroup:dev:r-x
#effective r-class:rwother:rw-
La entrada de la lista ACL correspondiente al grupo dev se agrega tal como se ha
precisado, pero el permiso de acceso de ejecución no se concede en realidad. La
6.4 Uso de las listas ACL del sistema de archivos JFS
115
entrada class deniega el permiso de ejecución y la entrada class no se ha vuelto a
calcular porque se especificó la opción -n. Si no se hubiera utilizado la opción -n, la
entrada class se habría restablecido al valor class:rwx y el comentario effective
no se mostraría.
6.5 Comparación de listas ACL de los sistemas de archivos JFS y HFS
Las listas ACL del sistema de archivos JFS cumplen con la norma ACL POSIX.
Las listas ACL del JFS se diferencian de las listas ACL del HFS tanto en cuanto al formato
(interno y externo) como a las funciones.
Las diferencias funcionales entre las listas ACL de los sistemas de archivos JFS y HFS
son las siguientes:
•
Una lista ACL de un directorio del JFS puede tener entradas por defecto, que se
aplican a los archivos creados posteriormente en dicho directorio. Las listas ACL
del HFS no presentan dicha posibilidad.
•
Una lista ACL del HFS tiene un propietario que puede diferir del propietario del
archivo que la lista ACL controla. Las listas ACL del JFS son propiedad del propietario
del archivo correspondiente.
•
Una lista ACL del HFS puede presentar entradas distintas para un usuario concreto
en grupos específicos. Por ejemplo, el usuario userx podría tener permisos de
acceso de lectura y escritura mientras pertenezca al grupo users, pero sólo tiene
permiso de acceso de lectura mientras pertenezca al grupo other.
6.5.1 Correlación entre los comandos y las funciones de los sistemas de archivos JFS
y HFS
La Tabla 6-5 enumera las páginas de manual para los comandos y funciones equivalentes
de las listas ACL de los sistemas de archivos JFS y HFS.
Tabla 6-5 Equivalencias de las listas ACL de los sistemas de archivos HFS y JFS
116
Nombre en HFS
Equivalencia en JFS
chacl(1)
setacl(1)
lsacl(1)
getacl(1)
getacl(2)
acl(2)
fgetacl(2)
—ninguno—
setacl(2)
acl(2)
fsetacl(2)
—ninguno—
acltostr(3C)
—ninguno—
chownacl(3C)
—ninguno—
Seguridad de los sistemas de archivos
Tabla 6-5 Equivalencias de las listas ACL de los sistemas de archivos HFS y JFS
(continuación)
Nombre en HFS
Equivalencia en JFS
cpacl(3C)
—ninguno—
setaclentry(3C)
—ninguno—
strtoacl(3C)
—ninguno—
—ninguno—
aclsort(3C)
acl(5)
aclv(5)
6.6 Listas ACL y sistemas de archivos NFS
El Network File System (NFS - Sistema de archivos de red) no tiene la posibilidad de
transmitir la información de las listas ACL sobre archivos remotos. Por lo tanto, el sistema
de archivos NFS no puede ver las listas ACL en los archivos remotos. El comando ls
-l no mostrará que existen listas ACL en un archivo remoto, pero el control de las listas
ACL sobre los permisos de acceso sigue siendo efectivo.
En estas circunstancias, las entradas de las páginas de manual individuales especifican
el comportamiento de las diversas llamadas del sistema, las llamadas de las bibliotecas
y los comandos.
IMPORTANTE: Sea precavido cuando transfiera un archivo con entradas opcionales
a través de una red, o cuando manipule un archivo remoto, porque el sistema de archivos
NFS puede eliminar las entradas opcionales sin previo aviso.
6.7 Consideraciones sobre la seguridad para los archivos especiales de
dispositivo /dev
Los archivos especiales de dispositivo, que permiten que los programas funcionen
independientemente de los dispositivos, controlan el acceso a todos los dispositivos del
sistema. Estos archivos se facilitan con configuraciones de permisos de acceso que
posibilitan un uso correcto y la máxima seguridad.
Si instala cualquier otro archivo especial de dispositivo, consulte la página de manual
de insf(1M) para obtener información sobre las configuraciones correctas de los permisos
de acceso.
Puesto que los archivos especiales de dispositivo pueden ser tan vulnerables a la
adulteración como cualquier otro archivo, adopte las siguientes medidas de precaución:
•
Guarde todos los archivos especiales de dispositivo en el directorio /dev.
•
Proteja los archivos de memoria, /dev/mem y /dev/kmem, contra el acceso fortuito,
ya que estos archivos contienen información confidencial del usuario. Por ejemplo,
un programa que vigile la memoria en relación con una llamada al programa
6.6 Listas ACL y sistemas de archivos NFS
117
login podría copiar la contraseña escrita por un usuario a partir de los búferes
de memoria del programa login. Las protecciones de acceso a los archivos deben
definirse en:
crw-r----crw-r-----
•
1 bin
1 bin
sys
sys
3 0x000001 Jun
3 0x000000 Jun
9
9
2006 /dev/kmem
2006 /dev/mem
Proteja todos los archivos especiales de disco:
— Proteja contra escritura todos los archivos especiales de disco en el caso de los
usuarios corrientes, a fin de impedir el daño accidental de los datos. Desactive
el acceso de escritura en el caso de las clases group y other.
— Proteja contra lectura los archivos especiales de disco para evitar la divulgación
de su contenido. Desactive el acceso de lectura en el caso de la clase other.
Las protecciones de acceso a los archivos deben definirse en:
brw-r----crw-r----brw-r----crw-r-----
1
1
1
1
bin
bin
root
root
sys
sys
sys
sys
31
188
64
64
0x002000
0x002000
0x000002
0x000002
Feb 18
Aug 3
Jun 11
Jun 11
2004
2004
2006
2006
/dev/dsk/c0t2d0
/dev/rdsk/c0t2d0
/dev/vg00/lvol2
/dev/vg00/rlvol2
•
Cualquier usuario tendrá acceso de escritura a los puertos de terminal de los sistemas
HP-UX, si el administrador permite que los usuarios se comuniquen mediante los
programas write o talk. Permita que sólo el propietario tenga permiso de acceso
de lectura.
•
No permita que los usuarios individuales posean más archivos especiales de
dispositivo que el archivo de un dispositivo de terminal o una impresora personal.
•
Antes de poner en funcionamiento un disco u otro dispositivo susceptible de montaje
cuyo origen desconozca, compruebe los archivos de los archivos especiales de
dispositivo y los programas setuid. Consulte la Sección 6.9.
6.8 Protección de las particiones de disco y los volúmenes lógicos
Un administrador Logical Volume Manager (LVM) es una herramienta de administración
de discos común. LVM divide el disco más fácilmente que las particiones de disco y los
volúmenes pueden abarcar varios discos. Los volúmenes son dispositivos lógicos que
aparecen como una partición de disco física. Se puede utilizar un volumen como una
partición de disco virtual para aplicaciones como la creación de un sistema de archivos
o una base de datos.
A continuación, se muestran algunas consideraciones sobre la seguridad en relación
con las particiones de disco y los volúmenes lógicos:
•
118
Asegúrese de que el acceso de lectura a los archivos especiales de dispositivo
correspondientes a las particiones de disco y los volúmenes lógicos debe restringirse
al usuario root y, tal vez, a una cuenta que se utilice para realizar copias de
seguridad del disco. Consulte la Sección 6.7.
Seguridad de los sistemas de archivos
•
Puesto que la propiedad y los permisos de acceso se almacenan en el inodo,
cualquier persona con permiso de acceso de escritura a una partición montada
podrá definir el número de identificación de usuario para cualquier archivo de
dicha partición. El archivo está sujeto a cambios, al margen del propietario,
prescindiendo de la llamada del sistema chmod() y de las demás comprobaciones
de la seguridad.
Si el archivo especial de dispositivo tiene acceso de escritura, un usuario puede
abrir ese archivo y tener acceso a discos sin procesar. A continuación, el usuario
puede modificar el sistema de archivos, leer archivos o modificar los permisos de
acceso a los archivos y propietarios.
Asegúrese de que los permisos de acceso a archivos prohíben el acceso al archivo
especial de dispositivo y permiten sólo al usuario root tener acceso de lectura.
•
Si un programa, como por ejemplo una base de datos, necesita tener acceso directo
a la partición, ésta debe reservarse para el uso exclusivo del programa. No monte
una partición como un sistema de archivos si los usuarios pueden tener acceso
directamente a ella. Si monta una partición como un sistema de archivos, los usuarios
podrían modificar el sistema de archivos subyacente.
Informe a los usuarios del programa de que la seguridad del archivo la imponen
las configuraciones de permisos de acceso del mismo, en lugar del sistema de
archivos HP-UX.
6.9 Pautas de seguridad para montar y desmontar sistemas de archivos
El comando mount permite asociar sistemas de archivos extraíbles, discos o particiones
de disco a un árbol de archivos existente. El comando mount utiliza un archivo
denominado /etc/fstab, que contiene una lista de los sistemas de archivos disponibles
y sus puntos de montaje correspondientes. Haga que el archivo /etc/fstab tenga
permiso de acceso de escritura sólo para el usuario root y permiso de acceso de lectura
para los demás usuarios. Para obtener más información sobre el montaje de sistemas
de archivos, consulte la página de manual de fstab(4).
Adopte las siguientes medidas de precaución al montar un sistema de archivos o disco:
•
Cree un directorio de punto de montaje (por ejemplo, /mnt) en que montar un
sistema de archivos nuevo. No monte nunca un sistema de archivos en un directorio
que ya contenga archivos, porque no se podrá tener acceso a estos archivos.
El punto de montaje de un sistema de archivos montado adquiere los permisos y la
propiedad del directorio raíz del sistema de archivos.
•
Defina permisos y entradas de listas de control de acceso en los nombres de ruta
del disco para controlar el acceso a los discos.
6.9 Pautas de seguridad para montar y desmontar sistemas de archivos
119
•
Utilice la opción -r del comando mount para montar el sistema de archivos con
permiso de sólo lectura. Los sistemas de archivos físicamente protegidos contra
escritura deben montarse de esta forma.
•
Cuando monte un sistema de archivos nuevo o ajeno, dé por sentado que el medio
es inseguro.
— Asegúrese de que la variable de entorno PATH no incluye «.» (el directorio
actual); si no realiza esta comprobación, es posible que ejecute una versión de
Caballo de Troya de ls o de otro comando parecido mientras examina el
sistema de archivos nuevo.
— Ejecute el comando fsck para comprobar que el sistema de archivos no está
dañado desde el punto de vista técnico. Consulte la página de manual de
fsck(1M).
— Ejecute los comandos ncheck_hfs -s o ncheck_vxfs -s para detectar los
programas setuid y setgid y archivos de dispositivo, e investigar los
hallazgos sospechosos. La opción -s pretende descubrir las vulneraciones de
la directiva de seguridad. Para obtener más información, consulte las páginas
de manual de ncheck_hfs(1M) y ncheck_vxfs(1M).
— Cree un directorio restringido al usuario root y defina los permisos en 700
(drwx------).
# mkdir /securefile
# chmod 700 /securefile
— Monte el sistema de archivos ajeno con acceso de sólo lectura en esta ubicación:
#
mount -r /dev/disk1 /securefile
— Compruebe todos los directorios en busca de programas con privilegios y
verifique la identidad de todos los programas.
— Vuelva a montar el sistema con permisos de lectura y escritura, y elimine los
permisos setuid y setgid innecesarios de los archivos detectados en el paso
anterior. Estas medidas de precaución revisten especial importancia si un usuario
le pide que monte un sistema de archivos personal.
No debe desmontar el sistema de archivos ni volverlo a montar en la ubicación
prevista hasta que haya realizado las pruebas mencionadas.
•
Asegúrese de que desmonta todos los sistemas de archivos montados de un usuario
cuya cuenta vaya a desactivar o eliminar.
Para obtener información sobre los archivos montados en un entorno NFS, consulte la
Sección 6.10.2.
120 Seguridad de los sistemas de archivos
6.10 Control de la seguridad de los archivos en una red
Desde el punto de vista de la seguridad, los sistemas en red son más vulnerables que
los sistemas autónomos. La conexión en red aumenta la capacidad de acceso al sistema,
pero también incrementa el riesgo de que se vulnere la seguridad.
Aunque no se puede controlar la seguridad a través de la red, sí se puede controlar la
seguridad de cada nodo de la red para limitar el riesgo de intrusión sin perjuicio de la
utilidad del sistema ni de la productividad del usuario.
Asegúrese de que todos los programas de administración de la red son propiedad de
una cuenta protegida específica de la red, por ejemplo, uucp, nso o daemon, antes
que de root.
6.10.1 Comprobación de las configuraciones de los permisos en los archivos de control
de red
Los modos, los propietarios y los grupos de todos los archivos de sistema se configuran
con cuidado. Compruebe regularmente estos archivos en busca de cualquier cambio.
Tome nota y corrija cualquier cambio respecto a los valores originales.
Preste especial atención a los archivos de control de red que se ubican en el directorio
/etc. Estos archivos tienen un señalado interés para los que intentan tener acceso no
autorizado, porque conceden acceso a la propia red. Los archivos de control de red
no deben configurarse nunca con permiso de acceso de escritura para el público. Dichos
archivos incluyen:
exports
hosts
hosts.equiv
inetd.conf
netgroup
networks
protocols
services
La lista de sistemas de archivos que se exportan a clientes NFS
Los sistemas host de red y sus direcciones
Los sistemas host remotos con permisos de acceso equivalentes al
sistema host local
El archivo de configuración de Internet
Lista de grupos accesibles en la red
Los nombres de red y sus direcciones
La base de datos de nombres de protocolos
La base de datos de nombres de servicios
6.10.2 Archivos montados en un entorno NFS
Un Network File System (NFS - Sistema de archivos de red) ofrece las siguientes ventajas:
•
Ahorra espacio en disco.
•
Mantiene la coherencia en el uso de los archivos.
•
Ofrece un entorno de usuario coordinado y sencillo.
NFS racionaliza la distribución de archivos entre los sistemas servidor y cliente al controlar
el acceso a través del archivo /etc/exports. Las entradas del archivo /etc/exports
6.10 Control de la seguridad de los archivos en una red
121
brindan permiso para montar un sistema de archivos existente en el servidor en cualquier
equipo cliente o en una lista especificada de equipos. Cuando se incluye un sistema de
archivos en /etc/exports, la información está disponible en potencia para cualquier
persona que pueda llevar a cabo un montaje mediante NFS. Por lo tanto, el usuario de
un cliente NFS puede obtener acceso a un sistema de archivos del servidor sin tener
que iniciar una sesión en el sistema servidor. Consulte la página de manual de exports(4),
para ampliar la información sobre el control del acceso a los sistemas de archivos
exportados, y la Sección 6.10.2.3, para obtener las pautas de seguridad.
6.10.2.1 Vulnerabilidad de los servidores
Mantenga la seguridad de los servidores definiendo permisos de acceso restrictivos en
el archivo /etc/exports. Los privilegios de usuario root no se mantienen en el sistema
NFS. Por lo tanto, tener privilegios de usuario root en un sistema cliente no comporta
ningún acceso especial en el servidor.
El servidor lleva a cabo remotamente la misma comprobación de permisos para el cliente
que realiza localmente para sus propios usuarios. El lado del servidor controla el acceso
a los archivos del servidor por parte del cliente; para ello, compara el número de
identificación de usuario y la identificación de grupo del cliente, que recibe a través de
la red, con el número de identificación de usuario y la identificación de grupo del archivo
del servidor. La comprobación se produce en el interior del kernel.
Un usuario que tenga privilegios en un cliente NFS puede aprovechar dichos privilegios
para obtener acceso ilimitado a un servidor NFS.
NOTA: No exporte nunca ningún sistema de archivos a un nodo en el que se concedan
privilegios con más indulgencia que en la directiva de su propio nodo.
6.10.2.2 Vulnerabilidad de los clientes
En revisiones anteriores del sistema de archivos NFS para estaciones de trabajo, el
inodo /dev tenía que ubicarse en el disco de cliente. En la actualidad, el NFS permite
que exista en el lado del servidor el inodo /dev que contenga los números «major» y
«minor» de un archivo especial de dispositivo montado en un cliente. Esto conlleva la
posibilidad de que alguien cree un Caballo de Troya que anule los permisos definidos
en el archivo especial de dispositivo montado del cliente, al obtener acceso al archivo
especial de dispositivo a través del archivo y el número de inodo hallado en el lado del
servidor.
Aunque un intruso del sistema carezca de permiso para crear un archivo de dispositivo
en el lado del cliente, puede crear un archivo especial de dispositivo, por ejemplo,
/dev/kmem, empleando los permisos de usuario root en el lado del servidor. El nuevo
archivo /dev se crea con los mismos números «major» y «minor» que el dispositivo de
destino del cliente, pero con los siguientes permisos:
crw-rw-rw122
Seguridad de los sistemas de archivos
A continuación, el intruso puede obtener acceso al cliente, iniciar una sesión como si
fuera un usuario normal y, mediante el sistema NFS, abrir el archivo especial de
dispositivo recién creado en el servidor y utilizarlo con fines tortuosos.
6.10.2.3 Cómo proteger los archivos montados con el sistema NFS
A continuación, se ofrecen recomendaciones para proteger los archivos montados con
el sistema NFS:
•
Si es posible, asegúrese de que los sistemas cliente y servidor los administra la
misma persona.
•
Mantenga la uniformidad de los números de identificación de usuario y las
identificaciones de grupo para los sistemas servidor y cliente.
•
Compruebe rutinariamente los archivos /dev en los sistemas de archivos exportados
desde el servidor.
•
Restrinja el acceso de escritura a los archivos de cliente /etc/passwd.
•
A efectos de ejercer el control más estricto, audite todos los sistemas host accesibles
a través de la red.
•
Baraje la posibilidad de utilizar el comando fstab nosuid para proteger el
sistema contra los programas setuid que se pueden ejecutar como usuario root
y dañar el sistema. La opción por defecto del comando mount es suid, que permite
a los programas montados con setuid ejecutarse con los permisos de sus
propietarios, al margen de quién los inicia. Por lo tanto, si el propietario de un
programa con permiso de setuid es el usuario root, se ejecutará con los permisos
de usuario root, al margen de quién lo inicia.
6.10 Control de la seguridad de los archivos en una red
123
124
7 Compartimentos
Este capítulo describe la característica de compartimentos de HP-UX 11i v3. Este capítulo
aborda los siguientes temas:
•
Descripción general (Sección 7.1)
•
Planificación de la estructura de compartimentos (Sección 7.2)
•
Activación de compartimentos (Sección 7.3)
•
Modificación de la configuración de compartimentos (Sección 7.4)
•
Componentes de los compartimentos (Sección 7.5)
•
Sintaxis y reglas de compartimentos (Sección 7.6)
•
Configuración de aplicaciones en compartimentos (Sección 7.7)
•
Solución de problemas de los compartimentos (Sección 7.8)
•
Uso del modo de detección para generar una configuración inicial de
compartimentos (Sección 7.9)
•
Compartimentos de los clústeres HP Serviceguard (Sección 7.10)
7.1 Descripción general
Los compartimentos constituyen un método para aislar entre sí los componentes de un
sistema. Cuando están configurados correctamente, pueden ser un método eficaz para
proteger el sistema HP-UX y los datos que éste contiene.
Los compartimentos le permiten aislar procesos o sujetos entre sí y también de recursos
u objetos.
Conceptualmente, cada proceso pertenece a un compartimento y los recursos se manejan
de una de dos maneras.
1. El recurso está etiquetado con el compartimento del proceso de creación. Es así
cómo los recursos transitorios, por ejemplo, los puntos finales de comunicación y
la memoria compartida, se asignan a un compartimento.
2. Los recursos se pueden asociar a una lista de acceso que especifica cómo tienen
acceso a ellos los procesos de compartimentos diferentes, para recursos persistentes,
como archivos y directorios. Es decir, los procesos pueden tener acceso a recursos
o comunicarse con procesos que pertenecen a un compartimento distinto sólo si
hay una regla entre dichos compartimentos. Los procesos que pertenecen al mismo
compartimento pueden comunicarse entre sí y tener acceso a recursos de ese
compartimento sin que haya una regla.
7.1 Descripción general
125
Los compartimentos separan sujetos de objetos. Esto permite una agrupación virtual de
los sujetos y objetos relacionados. Puede configurar el sistema para que, en caso de
que se ponga en peligro un servicio que se ejecuta en un compartimento, esto no afecte
a los servicios que se ejecutan en otros compartimentos. Esto limita cualquier daño sólo
al compartimento afectado.
7.1.1 Arquitectura de compartimentos
Los compartimentos aíslan un proceso y sus procesos secundarios dentro de un sistema.
La Figura 7-1 muestra un proceso primario que crea una serie de procesos de
identificadores que necesitan obtener acceso a varias partes del sistema. Los
compartimentos del sistema están configurados para que los procesos puedan tener
acceso a los recursos necesarios.
Figura 7-1 Arquitectura de compartimentos
Compartimento
proceso
relación de procesos
archivos y/o directorios
servidor_primario
servidor_secundario
cmpt lan 1
acceso a archivos
red
proceso
primario
IPC
señales
grabadora
Todo
identificador
/
identificador
/var/opt/server
logs
identificador
ra
lectu ura
rit
a
esc
ur
,
rit
ura
t
c
c
s
le
,e
ra
u
ct
le
Red
spool
126
Compartimentos
En la Figura 7-1, el proceso primario está configurado en un compartimento:
compartimento A. Como parte de su funcionamiento, el proceso primario crea una serie
de procesos de identificadores en un compartimento diferente: compartimento B. Los
procesos de identificadores heredan la configuración del compartimento del proceso
primario. La tarjeta de red que conecta el sistema con la LAN se ha configurado en otro
compartimento: compartimento C. El sistema de archivos se ha configurado para
franquear el acceso al compartimento A, pero sólo permite un acceso parcial al
compartimento B. La comunicación entre los componentes del sistema en sus
compartimentos separados se ha configurado del modo siguiente:
•
Todos los procesos de identificadores se han configurado para comunicarse con
la red.
•
El registro puede obtener acceso al sistema de archivos.
•
Los procesos de identificadores tienen acceso de lectura y lectura/escritura a partes
del sistema de archivos.
•
Los procesos de identificadores pueden comunicarse con el proceso primario y con
el registro utilizando la comunicación entre procesos (IPC) y señales.
•
La red está aislada del registro y del proceso primario.
Esta configuración del compartimento ofrece seguridad para el sistema de archivos y
el registro. Los dos están aislados por sus compartimentos. Aunque los procesos de
identificadores pueden comunicarse con la red, el registro y el proceso primario no
pueden tener acceso a la misma.
7.1.2 Configuración de compartimentos por defecto
Al habilitar compartimentos, se crea un compartimento por defecto que se llama INIT.
Al iniciar el sistema, el proceso init pertenece a este compartimento. El compartimento
INIT se ha definido para obtener acceso a todos los compartimentos y no se ha definido
en un archivo de reglas de compartimentos.
IMPORTANTE: Si redefine el compartimento INIT al crear reglas explícitas en un
archivo de reglas, todas las características especiales del compartimento se pierden y
no se pueden restaurar sin reiniciar el sistema.
7.2 Planificación de la estructura de compartimentos
Planifique la estructura de compartimentos antes de empezar a crear las reglas de
compartimentos.
Para planificar la estructura de compartimentos, responda a las siguientes preguntas:
•
¿Desea aislar diferentes grupos de usuarios que tienen acceso a este sistema? Por
ejemplo, ¿utilizan este sistema el departamento de contabilidad y el departamento
de recursos humanos, y deben estos grupos de usuarios mantenerse separados?
7.2 Planificación de la estructura de compartimentos
127
•
¿Desea aislar una interface de red en este sistema, que establece comunicación
fuera del servidor de seguridad, del resto del sistema, que establece comunicación
sólo dentro del servidor de seguridad?
•
¿Incluye la directiva de seguridad requisitos o problemas que se pueden solucionar
con el uso de estos compartimentos?
•
¿Especifica o recomienda la directiva de seguridad una configuración de reglas
de compartimentos específica?
Cuando haya respondido a estas preguntas, utilice las respuestas para determinar cómo
asignar partes del sistema a compartimentos específicos.
Considere las siguientes recomendaciones al planificar la configuración de los
compartimentos:
•
Coloque los archivos de configuración de compartimentos en el directorio /etc/
cmpt.
Puede utilizar la directiva #include para crear archivos de configuración de
compartimentos en cualquier parte del sistema. No obstante, HP recomienda evitar
utilizar esta opción. En su lugar, mantenga los archivos de configuración de
compartimentos juntos y localizables fácilmente.
•
Cree una configuración de compartimentos separada para cada componente del
sistema.
A no ser que se haya definido una dependencia de software específica entre dos
componentes, no combine reglas de componentes diferentes. Un compartimento de
componentes no contiene reglas que hacen referencia a compartimentos de otro
componente. Si debe eliminar un componente, puede modificar la configuración
de compartimentos con mayor facilidad si las configuraciones de compartimentos
se mantienen separadas.
•
Cree un solo archivo de configuración de compartimentos para cada componente
del software.
Esto le permite eliminar la configuración de compartimentos con mayor facilidad
si elimina el software del sistema. Asimismo, puede buscar fácilmente todas las
reglas del componente del software.
•
Algunos productos de software se suministran con reglas de compartimentos ya
configuradas. Evite modificar estas reglas.
Antes de realizar modificaciones en las configuraciones de compartimentos
suministradas, asegúrese de comprender la configuración existente. Lea la
documentación del producto de software y examine detenidamente la configuración
existente.
128
Compartimentos
ATENCIÓN: No redefina el compartimento INIT existente. Si trata de redefinir o
cambiar el compartimiento INIT, todas las definiciones generadas automáticamente se
destruirán y los compartimientos no funcionarán correctamente.
7.3 Activación de compartimentos
Para activar las reglas de compartimentos en el sistema, dé los pasos siguientes:
1.
Planifique las reglas de compartimentos. Para obtener más información, consulte
la Sección 7.2.
SUGERENCIA: HP recomienda planificar con cuidado la configuración de las
reglas de compartimentos. Una vez modificada y puesta en ejecución la
configuración en un sistema de producción, es difícil cambiarla. Al cambiar una
configuración de compartimientos, debe realizar cambios en las herramientas,
archivos de comandos y procedimientos del usuario.
2.
3.
Cree reglas de compartimentos. Consulte la Sección 7.6 para ver las instrucciones
sobre cómo completar este paso y para obtener una descripción completa de la
sintaxis de las reglas de compartimentos.
(Opcional) Obtenga una vista preliminar de las reglas de compartimentos escribiendo
el siguiente comando:
# setrules -p
La opción -p analiza la lista de reglas configuradas e informa de cualquier
discrepancia de sintaxis y semántica. HP le recomienda dar este paso antes de
habilitar reglas de compartimentos en el sistema.
4.
5.
(Opcional) Realice copias de seguridad de los archivos de configuración de
compartimentos. Coloque estos archivos fuera del directorio /etc/cmpt u omita
el sufijo.rules. Esta acción le permite revertir fácilmente al punto de partida si se
produce un error de edición.
Habilite la característica de compartimentos escribiendo el siguiente comando:
# cmpt_tune -e
6.
Reinicie el sistema. Este paso es obligatorio.
SUGERENCIA: Guarde los archivos de copia de seguridad: esto facilita la reversión
a una configuración anterior.
7.3 Activación de compartimentos
129
7.4 Modificación de la configuración de compartimentos
Puede crear compartimentos nuevos y modificar los existentes sin reiniciar el sistema. Si
habilita o deshabilita la característica de compartimentos o elimina por completo alguno,
deberá reiniciar el sistema. No obstante, si elimina todas las reglas asociadas a un
compartimento y todas las referencias al mismo, puede dejar el compartimento en el
sistema hasta el siguiente reinicio.
Consulte la Sección 7.4.2 para obtener más información sobre las consecuencias de
cambiar el nombre de un compartimento.
Puede agregar nuevas reglas de compartimentos, eliminar reglas innecesarias y modificar
las existentes. También puede cambiar los nombres de compartimentos existentes.
Las siguientes secciones describen cómo modificar la configuración de los
compartimentos.
7.4.1 Modificación de las reglas de compartimentos
1.
2.
(Opcional) Realice copias de seguridad temporales de los archivos de configuración
que prevea modificar. Coloque estos archivos fuera del directorio /etc/cmpt u
omita el sufijo.rules. Esta acción le permite revertir fácilmente al punto de partida
si se produce un error de edición.
Utilice el siguiente comando para examinar las reglas de compartimentos actuales:
# getrules
3.
4.
Cree o modifique las reglas de compartimentos. Consulte la Sección 7.6 para ver
las instrucciones sobre cómo completar este paso y para obtener una descripción
completa de la sintaxis de las reglas de compartimentos.
(Opcional) Obtenga una vista preliminar de las reglas de compartimentos escribiendo
el siguiente comando:
# setrules -p
La opción -p analiza la lista de reglas configuradas e informa de cualquier
discrepancia de sintaxis y semántica. HP le recomienda dar este paso antes de
habilitar reglas de compartimentos en el sistema.
5.
6.
(Opcional) Realice copias de seguridad de los archivos de configuración de
compartimentos.
Ejecute el comando setrules para cargar las reglas configuradas:
# setrules
130 Compartimentos
7.4.2 Modificación de los nombres de compartimentos
Puede cambiar los nombres de compartimentos. No obstante, el cambio de nombre de
un compartimento puede afectar a las aplicaciones que ya están configuradas con los
nombres de compartimentos existentes. Si cambia el nombre de un compartimento,
deberá reconfigurar también las aplicaciones configuradas en ese compartimento.
NOTA: Si cambia el nombre de un compartimento, fundamentalmente lo que hace es
crear un nuevo compartimento y eliminar el compartimento con el nombre antiguo.
Deberá cambiar todas las referencias para ver el compartimento nuevo. El compartimento
antiguo sigue existiendo en el sistema hasta que se reinicie.
7.5 Componentes de los compartimentos
La característica de compartimentos consta de un conjunto de comandos y archivos de
configuración que se utilizan para configurar y administrar compartimentos. Se incluyen
páginas de manual para ayudarle a utilizar las características de compartimentos. Estos
componentes se enumeran en las siguientes secciones:
7.5.1 Archivos de configuración de compartimentos
La Tabla 7-1 describe brevemente los archivos que se utilizan con los componentes de
compartimentos.
Tabla 7-1 Archivos de configuración de compartimentos
Archivo de configuración
Descripción
/etc/cmpt
El directorio en el que se ubican los archivos de reglas de
compartimentos.
/etc/cmpt/*.rules
El archivo que contiene las reglas de compartimentos
configuradas para el sistema.
/etc/cmpt/hardlinks/
hardlinks.config
El archivo que contiene los puntos de montaje válidos que
se van a analizar para comprobar la coherencia de las reglas
de compartimentos de archivos con varios enlaces
permanentes (hardlinks) señalándolos.
7.5.2 Comandos de compartimentos
La Tabla 7-2 contiene los comandos utilizados para administrar los compartimentos.
Tabla 7-2 Comandos de compartimentos
Comando
Descripción
cmpt_tune
Consulta, habilita y deshabilita la característica de compartimentos.
setfilexsec
Define los atributos de seguridad de los archivos binarios, incluido el
atributo de compartimentos.
7.5 Componentes de los compartimentos
131
Tabla 7-2 Comandos de compartimentos (continuación)
Comando
Descripción
getfilexsec
Muestra los atributos de seguridad asociados a los archivos ejecutables
binarios, incluido el atributo de compartimentos.
getprocxsec
Muestra los atributos de seguridad de los procesos, incluido el atributo
de compartimentos.
getrules
Muestra las reglas de compartimentos actualmente activas en el kernel.
setrules
Activa reglas nuevas o modificadas en el kernel.
La opción -p permite mostrar las reglas modificadas para revisar sin
transmitirlas al kernel.
vhardlinks
Comprueba la coherencia de las reglas de compartimentos de archivos
con varios enlaces físicos para garantizar que no existen conflictos de
reglas para obtener acceso.
7.5.3 Páginas de manual de compartimentos
La Tabla 7-3 contiene las páginas de manual asociadas a los compartimentos.
Tabla 7-3 Páginas de manual de compartimentos
132
Página de manual
Descripción
compartments(4)
Describe la sintaxis de la regla de compartimentos.
compartments(5)
Ofrece una descripción general de la funcionalidad de compartimentos
y describe el uso de las reglas de compartimentos.
cmpt_tune(1M)
Describe la funcionalidad y la sintaxis de cmpt_tune.
setfilexsec(1M)
Describe la funcionalidad y la sintaxis de setfilexsec.
getfilexsec(1M)
Describe la funcionalidad y la sintaxis de getfilexsec.
getprocxsec(1M)
Describe la funcionalidad y la sintaxis de getprocxsec.
getrules(1M)
Describe la funcionalidad y la sintaxis de getrules.
setrules(1M)
Describe la funcionalidad y la sintaxis de setrules.
vhardlinks(1M)
Describe la funcionalidad y la sintaxis de vhardlinks.
Compartimentos
7.6 Sintaxis y reglas de compartimentos
Un compartimento consta de un nombre y un conjunto de reglas. Esta sección describe
los cuatro tipos de reglas de compartimentos:
•
Reglas de sistema de archivos
•
Reglas IPC
•
Reglas de red
•
Reglas varias
Agregue reglas al archivo de reglas que se crea en el directorio /etc/cmpt. Puede
modificar este archivo utilizando vi o un editor de texto parecido. El archivo de reglas
debe tener una extensión .rules.
Para obtener información adicional, consulte la página de manual de compartments(5).
7.6.1 Definición de compartimentos
Defina compartimentos al configurar un nombre para cada compartimento y asociar
una o varias reglas de compartimentos al nombre de compartimento. Puede especificar
reglas en cualquier orden.
La sintaxis de una definición de compartimento es la siguiente:
[sealed] [discover] compartment
nombre_ compartimento_nuevo { reglas }
donde:
sealed
(Opcional) Un proceso de este compartimento no
puede obtener privilegios ni cambiar
compartimentos al llamar a execve().
discover
(Opcional) Detecta y agrega reglas
automáticamente para que las infracciones de
compartimentos se omitan. Es una característica
de desarrollo para determinar las reglas
necesarias y no debe utilizarse en un sistema de
producción. Para obtener más información sobre
esta palabra clave, consulte la Sección 7.9.
compartment
Designa que la regla es una definición de
compartimento.
nombre_ compartimento_nuevo La etiqueta asociada al compartimento nuevo.
Esta etiqueta distingue entre mayúsculas y
minúsculas. Por ejemplo, compartmenta y
CompartmentA son compartimentos diferentes.
{}
Adjunta las reglas de este compartimento.
Por ejemplo:
7.6 Sintaxis y reglas de compartimentos
133
sealed compartment server_children {
/* Denegar todo el acceso a cualquier objeto de sistema de archivos ... */
permission none /
}
NOTA: El nombre de compartimento INIT no distingue entre mayúsculas y minúsculas.
El sistema trata a INIT, init e Init como si fueran el mismo compartimento.
Las especificaciones de compartimento se preprocesan con cpp() antes de comenzar
el análisis. Éste es el motivo por el que se utilizan directivas cpp() como #include,
#define, #ifdef y comentarios de estilo de C para organizar y documentar los
archivos de reglas.
7.6.2 Reglas de sistema de archivos
Las reglas de sistema de archivos rigen el acceso por los procesos a los archivos y
directorios en el sistema. Las reglas de sistema de archivos se heredan de un directorio
primario en todos los subdirectorios y archivos del directorio primario, a menos que una
regla explícita anule la herencia.
Por defecto, si no se han especificado permisos, se conceden todos los permisos para
un objeto del sistema de archivos.
La sintaxis de las reglas de sistema de archivos es como sigue:
(permission|perm) lista_permisos objeto_archivo
donde:
permission o perm
lista_permisos
134
Compartimentos
Define los permisos para un archivo o un directorio.
Los tipos de permisos que puede aplicar a un archivo o
directorio son:
•
none: deniega todos los permisos a un archivo o
directorio.
•
read: controla el acceso de lectura al objeto. Si el
objeto es un archivo, la lectura y ejecución del archivo
están controladas. Si el objeto es un directorio, la
búsqueda y listado del directorio están controlados.
Asimismo, debido a la herencia, la lectura de todos los
archivos del directorio está controlada. Los archivos
deben tener acceso de lectura para que se puedan abrir
para ejecutar.
•
write: controla el acceso de escritura al objeto. Si el
objeto es un archivo, la escritura en el archivo está
controlada. Si el objeto es un directorio, debido a la
herencia, la escritura de todos los archivos del directorio
está controlada.
objeto_archivo
•
create: controla la capacidad para crear objetos.
Esto se aplica sólo a los objetos del directorio. Todos
los directorios heredan esto en el directorio
especificado.
•
unlink: controla la capacidad para eliminar objetos.
Esto se aplica sólo a los objetos del directorio. Todos
los directorios heredan esto en el directorio
especificado.
•
nsearch: controla la capacidad de buscar un elemento
si el objeto_archivo es un directorio. Este atributo
no lo heredan todos los subdirectorios.
El nombre de ruta completo del archivo o directorio.
Por ejemplo:
/* denegar todos los permisos salvo lectura a todo el sistema */
perm read /
/* excepto para este directorio
*/
perm read,write,create,unlink /var/opt/server
/* sólo leer y escribr archivos de registro, no crearlos */
perm read,write /var/opt/server/logs
NOTA: Para conceder un permiso en relación con un objeto del sistema de archivos,
el compartimento debe tener un mínimo de permisos de lectura en cada directorio que
esté por encima de ese objeto. Por ejemplo, para conceder permisos de lectura y escritura
en /var/opt/tmp/file1, debe conceder permisos de lectura en /var/opt/tmp,
/var/opt, /var y /.
7.6.3 Reglas IPC
Las reglas de comunicación entre procesos (IPC) rigen la forma en que los procesos
utilizan entre compartimentos los métodos de comunicación entre procesos. Los métodos
de comunicación IPC incluyen la comunicación directa proceso a proceso o el acceso
compartido a un objeto IPC. Cuando un objeto está asociado a un proceso, el objeto
existe en el mismo compartimento como el proceso que lo creó. Se definen reglas de
compartimentos para describir la relación entre el proceso que tiene acceso al objeto
y el objeto al que se tiene acceso. Cuando la regla describe dos procesos que se
comunican entre sí, trate el segundo proceso como un objeto. El comportamiento por
defecto para los objetos IPC consiste en que todas las operaciones entre compartimentos
diferentes están prohibidas a menos que una regla lo permita explícitamente.
Hay dos tipos de reglas IPC. La sintaxis del primer tipo de regla es la siguiente:
(grant|access) (pty|fifo|uxsock|ipc) nombre_compartimento
donde:
7.6 Sintaxis y reglas de compartimentos
135
Acceso
Método
nombre_compartimento
Especifica si la regla está centrada en el objeto o en el
sujeto. Consta de las siguientes opciones:
•
grant: especifica una regla centrada en el objeto.
Esta regla permite a los procesos del compartimento
nombre_compartimento tener acceso al
mecanismo IPC especificado en el compartimento
actual.
•
access: especifica una regla centrada en el sujeto.
Esta regla permite a los procesos del compartimento
actual tener acceso al mecanismo IPC especificado
en el compartimento nombre_compartimento.
Especifica el método de comunicación al que se aplica
esta regla. Consta de las siguientes opciones:
•
pty: especifica que la regla se aplica a pty
utilizada en comunicación entre procesos.
•
fifo: especifica que la regla se aplica al principio
de primero en entrar primero en salir (FIFO).
•
uxsock: especifica que la regla se aplica a
zócalos de dominio UNIX.
•
ipc: especifica que la regla se aplica a objetos
IPC SYSV y POSIX, por ejemplo, memoria
compartida, semáforos y colas de mensajes.
El nombre del otro compartimento en el que los procesos
de este compartimento se pueden comunicar.
Por ejemplo:
/* dejar que el secundario tenga acceso al dominio UNIX */
/* zócalos creados por el compartimento primario */
grant uxsock server_children
El segundo tipo de regla IPC rige el acceso del proceso. La sintaxis de este tipo de regla
es la siguiente:
(send|receive) signal nombre_compartimento
donde:
Dirección
Especifica si los procesos del compartimento actual
tienen acceso para ver y modificar el comportamiento
del proceso desde otro compartimento especificado.
Consta de las siguientes opciones:
•
136
Compartimentos
send: especifica una regla centrada en el sujeto.
Permite a los procesos del compartimento actual
enviar señales y ver los datos de proceso en el
compartimento nombre_compartimento.
•
signal
nombre_compartimento
receive: especifica una regla centrada en el
objeto. Permite a los procesos del compartimento
nombre_compartimento enviar señales y ver
los datos de proceso en el compartimento actual.
Especifica que esta regla se aplica a la visibilidad del
proceso y las señales.
El nombre del otro compartimento al que los procesos
del compartimento actual pueden tener acceso para
obtener información de los procesos o desde el que ser
vistos.
Por ejemplo:
/* dejar que el primario envíe señales al secundario */
send signal server_children
7.6.4 Reglas de red
Las reglas de red rigen el acceso a las interfaces de red. Las reglas de red también rigen
la comunicación entre los procesos que utilizan la comunicación del dominio INET
(zócalos y flujos TCP/IP). El comportamiento por defecto es denegar el acceso a la red.
Los puntos finales de la red se tratan como objetos etiquetados con el compartimento
del proceso que los crea. No obstante, un proceso puede crear un punto final de red
y, a continuación, transmitirlo a otro proceso que se puede ejecutar en otro
compartimento. Las comprobaciones de obtención de acceso se realizan en el
compartimento que contiene el punto final cuando éste se creó y no en el compartimento
actual. Asimismo, el punto final transmite la configuración del compartimento a los puntos
finales de aceptación cuando se reciben conexiones nuevas.
Los puntos finales del dominio INET se utilizan frecuentemente para comunicaciones
entre procesos. Asegúrese de configurar los compartimentos en consecuencia.
La sintaxis de una regla de red es la siguiente:
(grant|deny) (server|client|bidir) (tcp|udp|raw [nº_protocolo] )
[port nº_puerto] [peer[portpuerto]] nombre_compartimento
donde:
Acceso
Concede o deniega el acceso de compartimento al
tráfico de la red en el compartimento especificado.
Consta de las siguientes opciones:
•
grant
•
deny
7.6 Sintaxis y reglas de compartimentos
137
Dirección
Protocolo
nº_protocolo
port
puerto
peer
nombre_compartimento
Especifica la dirección a la que se aplica la regla.
Consta de las siguientes opciones:
•
server: esta regla se aplica sólo a las solicitudes
entrantes. Para TCP, esta regla sólo controla las
conexiones entrantes. Para UDP y RAW, esta regla
se aplica a todos los paquetes entrantes.
•
client: esta regla se aplica sólo a las solicitudes
salientes. Para TCP, esta regla sólo controla las
iniciaciones de conexión. Para UDP y RAW, esta
regla se aplica a todos los paquetes salientes.
•
bidir: esta regla se aplica a las solicitudes
entrantes y salientes. Para TCP, esta regla controla
las conexiones que inicia y recibe el punto final.
Para UDP y RAW, esta regla se aplica a todos los
paquetes que atraviesan el punto final.
Especifica el protocolo de red que se aplica a esta
regla. Consta de las siguientes opciones:
•
tcp: esta regla se aplica al protocolo TCP.
•
udp: esta regla se aplica al protocolo UDP.
•
raw: esta regla se aplica a cualquier otro protocolo
en el dominio INET.
El número de protocolo especificado para esta regla.
La opción nº_protocolo es pertinente sólo para la
especificación raw.
(Opcional) Especifica que esta regla se aplica a un
puerto específico.
Identifica el puerto especificado en esta regla.
(Opcional) La información del puerto se aplica al punto
final homólogo implicado en la comunicación para esta
regla.
El nombre de compartimento asociado al punto final
homólogo o la interface a los que se aplica esta regla.
Por ejemplo:
/* permitir todas las conexiones TCP entrantes (cualquier puerto) desde
interfaces con la etiqueta lancmpt1 */
grant server tcp lancmpt1
/* permitir consultas de clientes de DNS (TCP y UDP) a través de la interface con la etiqueta lancmpt1
*/
138
Compartimentos
grant client tcp port 53 lancmpt1
grant bidir udp port 53 lancmpt1
/* permitir sólo conexiones telnet salientes a través de la interface
con la etiqueta ifacelan0 */
grant client tcp peer port 23 ifacelan0
/* permitir todo el tráfico TCP excepto telnet entrante a través
de la interface con la etiqueta ifacelan0 */
/* las siguientes dos líneas se pueden especificar en cualquier orden */
grant bidir tcp ifacelan0
deny server tcp port 23 ifacelan0
/* permitir el tráfico de servidor web entrante a través
de la interface lan1cmpt */
grant server tcp port 80 lan1cmpt
Para obtener más información sobre las reglas de red, consulte la página de manual
de compartments(4).
7.6.5 Reglas varias
Estas reglas no se ajustan claramente a ninguna otra categoría de reglas.
Reglas de interface de red Una regla de interface de red especifica el compartimento
al que pertenece una interface. Una interface de red que no está en un compartimento
no puede ponerse en línea.
NOTA: Para definir directivas de seguridad más estrictas, configure las interfaces de
red en compartimentos separados de los asignados a los procesos. Defina en consonancia
reglas para la obtención de acceso a la red para cada compartimento. Los
compartimentos iguales obtienen siempre acceso pleno entre sí.
La sintaxis de la regla de interface de red es la siguiente:
compartment nombre_compartimento {
interface interface_o_ip[,interface_o_ip][...]
}
donde:
interface
Especifica que ésta es una definición de interface.
interface_o_ip[,interface_o_ip][...] Una lista separada por comas de nombres de
interfaces, direcciones IP o intervalos de
direcciones IP. Las direcciones o intervalos IP se
pueden especificar como direcciones IPv4 o
direcciones IPv6 con una máscara opcional.
7.6 Sintaxis y reglas de compartimentos
139
Por ejemplo:
compartment iface0 {
/* Definir el compartimento para la interface de red lan0 */
interface lan0
/* Todas las direcciones del intervalo 192.168.0.0-192.168.0.255 */
interface 192.160.0.0/24
}
compartment other_ifaces {
/* Definir el compartimento para dos de las otras interfaces de red */
interface lan1,lan5
Reglas para la limitación de los privilegios Una regla para la limitación de los privilegios
controla la herencia de privilegios. No se puede obtener un privilegio que se nombre
en una regla para la limitación de los privilegios al llamar al comando execve(2).
La sintaxis de las reglas para la limitación de los privilegios es la siguiente:
disallowed privileges
privilegio[,privilegio[...]]
donde:
disallowed privileges
Especifica que se trata de una regla para la
limitación de los privilegios.
privilegio[,privilegio[...]] Una lista de privilegios separados por comas.
Puede utilizar las siguientes palabras clave
adicionales:
•
all: rechaza todos los privilegios
•
none: permite todos los privilegios
•
!: denota «excepto»
Por ejemplo:
/* Rechazar todos los privilegios excepto mount. */
disallowed privileges all,!mount
/* Rechazar sólo mount. */
disallowed privileges none,mount
Si no se han especificado reglas para la limitación de los privilegios en relación con un
compartimento, la limitación por defecto es basicpolicy,mknod para cada
compartimento excepto el compartimento INIT. La limitación de los privilegios por
defecto del compartimento INIT es none.
7.6.6 Archivo de reglas de ejemplo
Un archivo de reglas de ejemplo se ubica en /etc/cmpt/examples/
sendmail.example.
140 Compartimentos
7.7 Configuración de aplicaciones en compartimentos
Puede configurar una aplicación para ejecutarla en un compartimento concreto. Utilice
el comando setfilexsec para configurar el atributo de compartimento de un archivo
binario. Por ejemplo, para configurar la aplicación apple en el compartimento fruit,
escriba el siguiente comando:
# setfilexsec -c fruit apple
También puede utilizar HP-UX RBAC para configurar una aplicación a fin de que se
ejecute en un compartimento. Consulte la Sección 9.5.5.
7.8 Solución de problemas de los compartimentos
Si algo no funciona en el sistema y sospecha que el problema se produce debido a la
estructura de compartimentos, puede comprobar las reglas de compartimentos del modo
siguiente.
Problema 1: El acceso no se controla según las reglas de compartimentos I
configuradas. Solución: es posible que las reglas no estén definidas en el kernel. Para
comprobar que las reglas están definidas en el kernel, dé los siguientes pasos:
1.
Utilice el siguiente comando para mostrar la lista de reglas de compartimentos
válidas en el kernel.
# getrules
2.
Utilice el siguiente comando para mostrar la lista de todas las reglas configuradas
en el sistema, incluidas las reglas que no se han cargado en el kernel.
# setrules -p
3.
Compare la salida de los dos comandos. Si son iguales, todas las reglas se han
cargado en el kernel. En caso contrario, tendrá que cargar reglas en el kernel.
4.
El siguiente comando permite cargar reglas en el kernel:
# setrules
Problema 3: El acceso a un archivo no funciona correctamente. Solución: Si varios
enlaces físicos señalan a este archivo, la configuración de las reglas de compartimentos
puede contener reglas no coherentes para obtener acceso al archivo. Para comprobar
las incoherencias, dé los siguientes pasos:
1.
Ejecute el siguiente comando:
# vhardlinks
Si la salida muestra una incoherencia, continúe con el paso 2.
2.
Modifique las reglas para eliminar la incoherencia. Siga el procedimiento descrito
en la Sección 7.4.
7.7 Configuración de aplicaciones en compartimentos
141
Problema 4: Las reglas del servidor de red no aparecen en la salida de
getrules. Solución: Debido al modo en que se administran las reglas internamente,
las reglas del servidor de red para un compartimento dado se pueden enumerar en la
salida del compartimento de destino del comando getrules.
Por ejemplo:
/* regla de compartimento telnet para permitir solicitudes telnet entrantes
a través del compartimendo con la etiqueta ifacelan0 */
grant server tcp port 23 ifacelan0
Si se ha especificado esta regla, aparece en la salida del compartimento ifacelan0
del comando getrules.
ACCESS
Grant client
PROTOCOL
tcp
SRCPORT
0
DESPORT
23
DESCMPT
telnet
7.9 Uso del modo de detección para generar una configuración inicial de
compartimentos
Una definición de compartimentos puede tener la etiqueta con la palabra clave discover.
Consulte la Sección 7.6.1. La palabra clave discover da instrucciones al sistema para
que detecte todas las reglas necesarias que hacen que la aplicación funcione
correctamente. Esta característica se ha pensado sólo para utilizarse en un entorno de
prueba.
Para utilizar el modo discover, marque un compartimento como discover y ejecute
la aplicación como lo haría normalmente. El sistema identifica todos los accesos a los
recursos y crea las reglas necesarias.
Después de la ejecución inicial de la aplicación, utilice el comando getrules –m
nombre_compartimento para generar una versión de las reglas en lenguaje máquina.
Las reglas generadas por el sistema son necesarias para que la aplicación funcione
correctamente en el entorno de prueba, pero es posible que tengan que generalizarse.
Por ejemplo, el sistema puede generar una regla que conlleva un número de puerto en
un intervalo de puertos anónimos, donde el kernel, y no la aplicación, selecciona el
número de puerto. Cuando la aplicación se ejecuta de nuevo, es posible que termine
con un número de puerto diferente, necesitando una regla diferente. Es posible que sea
necesario generalizar la regla de modo que se especifiquen todos los puertos o, al
menos, los números de puerto en el intervalo de puertos anónimos.
7.10 Compartimentos de los clústeres HP Serviceguard
Si utiliza compartimentos con HP Serviceguard, deberá configurar todos los demonios
Serviceguard en el compartimento INIT por defecto. No obstante, puede configurar
paquetes Serviceguard en otros compartimentos. Consulte las ediciones más recientes
de los documentos Managing Serviceguard y Using Serviceguard Extension for RAC
142
Compartimentos
para obtener los demonios necesarios en Serviceguard y las extensiones Serviceguard
para Oracle Real Application Cluster (RAC).
Los paquetes Serviceguard pueden pertenecer a compartimentos específicos. Las
aplicaciones controladas como parte de un paquete Serviceguard también se pueden
configurar en compartimentos específicos. Al configurar el compartimento para un
paquete, asegúrese de que dicho compartimento puede tener acceso a los recursos que
necesita ese paquete (por ejemplo, grupos de volúmenes, sistemas de archivos,
direcciones de red, etcétera). Las reglas de compartimentos son específicas de nodo y
no se conservan durante las operaciones de conmutación por error de Serviceguard.
Para garantizar un funcionamiento apropiado después de una conmutación por error,
todos los nodos del clúster deben tener configuraciones de compartimentos idénticas.
Cuando una interface LAN primaria conmuta por error a una interface LAN de reserva,
la etiqueta del compartimento de la interface primaria se copia automáticamente en la
interface de reserva siempre que esta última no esté en línea. Si la interface de reserva
ya está configurada en línea, la interface de reserva y la interface primaria deben estar
configuradas en el mismo compartimento para conmutar por error correctamente. Si la
interface de reserva está configurada en un compartimento diferente de la interface
primaria, pero está sin conexión en el momento de la conmutación por error, la interface
de reserva se actualiza a la configuración de compartimentos de la interface primaria
cuando la interface conmuta por error.
Para mantener las operaciones de Serviceguard apropiadas al distribuir compartimentos
en los nodos o paquetes HP Serviceguard:
•
No modifique las especificaciones del compartimento INIT de ningún modo.
•
Asegúrese de que el comando inetd se ejecuta en el compartimento INIT.
•
Asegúrese de que todos los demonios de Serviceguard en un clúster se ejecutan en
el compartimento INIT. Por ejemplo, los demonios para Serviceguard versión
A.11.16 incluyen cmclconfd, cmcld, cmlogd, cmlvmd, cmomd y cmsnmpd.
Para obtener una lista de todos los demonios de Serviceguard, consulte el documento
Managing Serviceguard.
•
Asegúrese de que todos los requisitos de clúster Serviceguard se cumplen para las
extensiones Serviceguard para clústeres RAC. Asimismo, los clústeres con
Serviceguard Extension for RAC versión A.11.16 necesitan que el demonio cmsmgd
se ejecute en el compartimento INIT. Los procesos RAC deben tener acceso a la
biblioteca libnmapi2 y deben comunicarse con el comando cmsmgd. Para obtener
los demonios y bibliotecas necesarios, consulte el documento Using Serviceguard
Extension for RAC.
•
No configure interfaces LAN de reserva en un compartimento.
•
Configure los compartimentos y las reglas de forma idéntica en todos los nodos del
clúster. Los compartimentos y las reglas son específicos de un sistema y no se
conservan cuando un sistema conmuta por error.
7.10 Compartimentos de los clústeres HP Serviceguard
143
NOTA: Si una interface de reserva está configurada en un compartimento, la ejecución
del comando setrules aplica este compartimento a la interface de reserva aunque
se haya conmutado correctamente a partir de una interface primaria. Si el compartimento
de la interface de reserva configurada no coincide con el compartimento de la interface
primaria, el compartimento de la interface primaria se sobrescribe al ejecutar el comando
setrules. Esta acción puede causar infracciones de seguridad.
No se han efectuado cambios en las secuencias de comandos de Serviceguard para
facilitar el uso de los compartimentos, los privilegios expresos ni la característica RBAC.
144 Compartimentos
8 Privilegios expresos
Este capítulo describe la característica de privilegios expresos de HP-UX 11i. Este capítulo
aborda los siguientes temas:
•
Descripción general (Sección 8.1)
•
Componentes de privilegios expresos (Sección 8.2)
•
Privilegios disponibles (Sección 8.3)
•
Configuración de aplicaciones con privilegios expresos (Sección 8.4)
•
Consecuencias para la seguridad de los privilegios expresos (Sección 8.5)
•
Privilegios expresos de los clústeres HP Serviceguard (Sección 8.6)
•
Solución de problemas de los privilegios expresos (Sección 8.7)
8.1 Descripción general
El sistema operativo UNIX utiliza tradicionalmente un modelo de privilegios de «todo o
nada», según el cual los superusuarios (los que tienen un UID=0 efectivo, como el usuario
root) tienen un poder virtualmente ilimitado y otros usuarios tienen pocos privilegios
especiales o ninguno.
HP-UX ofrece varios métodos heredados de delegación de poderes limitados, incluidos
smh(1M) restringido, los grupos de privilegios descritos en privgrp(4), el archivo
shutdown.allow descrito en shutdown(1M) y el archivo cron.allow descrito en
crontab(1).
Estos métodos heredados pueden reemplazarse por el uso de privilegios expresos y el
marco de control de acceso HP-UX RBAC.
El modelo de privilegios expresos de HP-UX divide las competencias de los superusuarios
en un conjunto de privilegios. Los privilegios expresos se conceden a procesos. Cada
privilegio concede a un proceso que posea dicho privilegio el derecho a un determinado
conjunto de servicios restringidos que ofrece el kernel.
Para obtener más información, consulte la página de manual de privileges(5).
8.2 Componentes de los privilegios expresos
La característica de privilegios expresos de HP-UX 11i incluye archivos de configuración,
comandos y páginas de manual. Estos componentes se pueden utilizar para configurar
y administrar privilegios expresos.
8.1 Descripción general
145
8.2.1 Comandos
La Tabla 8-1 describe brevemente los comandos de privilegios expresos.
Tabla 8-1 Comandos de privilegios expresos
Comandos
Descripción
setfilexsec
Define los atributos de seguridad de los archivos binarios. Los atributos
incluyen privilegios retenidos, privilegios permitidos, compartimento y
el indicador de inicio del privilegio.
getfilexsec
Muestra los atributos de seguridad asociados a los archivos ejecutables
binarios. Los atributos incluyen privilegios retenidos, privilegios
permitidos, compartimento e indicadores de atributos de seguridad.
getprocxsec
Muestra los atributos de seguridad asociados a los procesos en
ejecución. Los atributos incluyen el conjunto de privilegios efectivos,
el conjunto de privilegios retenidos, el conjunto de privilegios
permitidos, euid y el nombre del compartimento.
8.2.2 Páginas de manual
La Tabla 8-2 describe brevemente las páginas de manual de privilegios expresos.
Tabla 8-2 Páginas de manual de privilegios expresos
Página de manual
Descripción
privileges(5)
Descripción general de los privilegios HP-UX.
privileges(3)
Describe las interfaces de privilegios expresos.
setfilexsec(1M)
Describe la funcionalidad y la sintaxis de setfilexsec.
getfilexsec(1M)
Describe la funcionalidad y la sintaxis de getfilexsec.
getprocxsec(1M)
Describe la funcionalidad y la sintaxis de getprocxsec.
8.3 Privilegios disponibles
Los privilegios expresos se destinan principalmente a los desarrolladores. Aun así, un
administrador puede necesitar comprender los privilegios para entender el funcionamiento
de este tipo de aplicaciones y averiguar si alguna aplicación no autorizada ha obtenido
privilegios.
La Tabla 8-3 muestra la lista de privilegios y los fines principales.
146
Privilegios expresos
Tabla 8-3 Privilegios disponibles
Privilegio
Descripción
PRIV_ACCOUNTING
Permite que un proceso controle el sistema de contabilidad del
proceso.
PRIV_AUDCONTROL
Permite que un proceso inicie, modifique y detenga el sistema de
auditoría.
PRIV_CHANGECMPT
Concede a un proceso la capacidad de cambiar su compartimento.
PRIV_CHANGEFILEXSEC
Permite que un proceso conceda privilegios a archivos binarios.
PRIV_CHOWN
Permite que un proceso tenga acceso a las llamadas de sistema
chown().
PRIV_CHROOT
Permite que un proceso cambie su directorio raíz.
PRIV_CHSUBJIDENT
Permite que un proceso cambie su número de identificación de
usuario (UID), número de identificación de grupo (GID) y las listas
de grupos. También permite que un proceso deje los bits de suid
o sgid definidos en el archivo cuando se utiliza la llamada de
sistema chown().
PRIV_CMPTREAD
Permite que un proceso abra un archivo o directorio para leer,
ejecutar o buscar, prescindiendo de las reglas de compartimentos
que, de otra manera, no permitirían estas operaciones.
PRIV_CMPTWRITE
Permite que un proceso escriba en un archivo o directorio,
prescindiendo de las reglas de compartimentos que, de otra manera,
no permitirían esta operación.
PRIV_COMMALLOWED
Permite que un proceso sobrescriba las reglas de compartimentos
en la comunicación entre procesos (IPC) y los subsistemas de red.
PRIV_DACREAD
Permite que un proceso reemplace todas las restricciones de acceso
de lectura, ejecución y búsqueda discrecionales.
PRIV_DACWRITE
Permite que un proceso reemplace todas las restricciones de acceso
de escritura discrecionales.
PRIV_DEVOPS
Permite que un proceso efectúe operaciones administrativas
específicas de dispositivos, por ejemplo, formateo de discos o cintas.
PRIV_DLKM
Permite que un proceso cargue un módulo del kernel, obtenga
información sobre un módulo del kernel cargado y cambie las rutas
de búsqueda globales para un módulo del kernel cargable
dinámicamente
PRIV_FSINTEGRITY
Permite que un proceso realice operaciones de discos como, por
ejemplo, eliminar o modificar los límites o el tamaño de las
particiones de disco, o importar y exportar un grupo de volúmenes
LVM en todo el sistema.
PRIV_LIMIT
Permite que un proceso defina los límites de prioridad y recursos
más allá de los valores límite máximos.
8.3 Privilegios disponibles
147
Tabla 8-3 Privilegios disponibles (continuación)
148
Privilegio
Descripción
PRIV_LOCKRDONLY
Permite que un proceso utilice la llamada de sistema lockf() para
bloquear los archivos abiertos con permiso de acceso de sólo
lectura.
PRIV_MKNOD
Permite que un proceso cree archivos especiales de bloqueo o de
caracteres utilizando la llamada de sistema mknod().
PRIV_MLOCK
Permite que un proceso tenga acceso a la llamada de sistema
plock.
PRIV_MOUNT
Permite que un proceso monte y desmonte un sistema de archivos
utilizando las llamadas de sistema mount() y umount().
PRIV_MPCTL
Permite que un proceso cambie el enlace del procesador, el enlace
del dominio de la localidad o la directiva de activación.
PRIV_NETADMIN
Permite que un proceso realice operaciones administrativas de la
red, incluidas la configuración de las tablas de enrutamiento de la
red y la consulta de información de la interface.
PRIV_NETPRIVPORT
Permite que un proceso enlace con un puerto privilegiado. Por
defecto, los números 0-1023 son puertos privilegiados.
PRIV_NETPROMISCUOUS
Permite que un proceso configure una interface para escuchar en
modo promiscuo.
PRIV_NETRAWACCESS
Permite que un proceso tenga acceso a los protocolos de red de
Internet sin formato.
PRIV_OBJSUID
Permite que un proceso defina los bits de suid o sgid en cualquier
archivo si el proceso tiene privilegio de OWNER (Propietario).
Permite también que un proceso cambie la propiedad de un archivo
sin eliminar los bits de suid o sgid, dado que el proceso puede
cambiar la propiedad del archivo.
PRIV_OWNER
Permite que un proceso reemplace todas las restricciones con
respecto al número UID que coincidan con el propietario del archivo
o el recurso.
PRIV_PSET
Permite que un proceso cambie la configuración del sistema pset.
PRIV_REBOOT
Permite que un proceso realice operaciones de reinicio.
PRIV_RTPRIO
Permite que un proceso tenga acceso a la llamada de sistema
rtprio().
PRIV_RTPSET
Permite que un proceso controle los conjuntos de procesos del
entorno en tiempo de ejecución (RTE psets).
PRIV_RTSCHED
Permite que un proceso defina las prioridades en tiempo real
POSIX.4.
Privilegios expresos
Tabla 8-3 Privilegios disponibles (continuación)
Privilegio
Descripción
PRIV_RULESCONFIG
Permite que un proceso agregue y modifique las reglas de
compartimentos en el sistema.
PRIV_SELFAUDIT
Permite que un proceso genere registros de auditoría para sí mismo
utilizando la llamada de sistema audwrite().
PRIV_SERIALIZE
Permite que un proceso utilice la llamada de sistema serialize()
para imponer un proceso de destino para que se ejecute en serie
con otros procesos marcados para serialización.
PRIV_SPUCTL
Permite que un proceso efectúe determinadas operaciones
administrativas en el producto Instant Capacity.
PRIV_SYSATTR
Permite que un proceso administre los atributos del sistema, entre
ellos la configuración de los parámetros utilizables, la modificación
del nombre de host, el nombre de dominio y las cuotas de usuario.
PRIV_SYSNFS
Permite que un proceso realice operaciones NFS como exportar un
sistema de archivos, la llamada de sistema getfh(), el bloqueo de
archivos NFS, la revocación de la autenticación NFS y la creación
de un subproceso de demonio de kernel NFS.
PRIV_TRIALMODE
Permite que un proceso registre la información del modo de prueba
en el archivo syslog.
8.4 Configuración de aplicaciones con privilegios expresos
Las aplicaciones que se escriben o modifican para admitir privilegios expresos se llaman
aplicaciones compatibles con los privilegios. Deberá registrar las aplicaciones compatibles
con los privilegios mediante el comando setfilexsec. Una vez registradas, los
atributos de seguridad asociados a un archivo binario se almacenan en un archivo de
configuración y mantienen la persistencia entre reinicios. Esto se hace normalmente
cuando se instalan y configuran aplicaciones compatibles con privilegios mediante las
utilidades SD-UX.
Las aplicaciones HP-UX más antiguas, o las aplicaciones heredadas, no son compatibles
con los privilegios. Puede configurar las aplicaciones heredadas que funcionan con el
número UID=0 para que se ejecuten con privilegios expresos. Para configurar
aplicaciones heredadas con HP-UX RBAC, consulte la Sección 9.5.4.
SUGERENCIA: HP recomienda utilizar HP-UX RBAC para configurar las aplicaciones
que necesitan privilegios variables para ejecutar.
Para configurar atributos de seguridad para una aplicación compatible con los privilegios,
utilice el comando setfilexsec del modo siguiente:
# setfilexsec [opciones] nombre_archivo
8.4 Configuración de aplicaciones con privilegios expresos
149
El comando setfilexsec se ha pensado para asignar privilegios a archivos binarios
en un sistema de archivos local. No debe asignarse privilegios a los archivos binarios
obtenidos de un sistema de archivos de red (NFS), porque si un sistema distinto modifica
el archivo (directamente en el servidor NFS), los atributos extendidos definidos por
setfilexsec no se eliminan.
Las opciones de setfilexsec son las siguientes:
-d
-D
-r
-R
-p
-P
-f
Elimina cualquier información sobre la seguridad de este archivo en el archivo de
configuración y el kernel.
Elimina cualquier información sobre la seguridad de este archivo sólo en el archivo
de configuración. Se utiliza para borrar la información sobre la seguridad de un
archivo eliminado.
Agrega o cambia los privilegios retenidos mínimos.
Agrega o cambia los privilegios retenidos máximos.
Agrega o cambia los privilegios permitidos mínimos.
Agrega o cambia los privilegios permitidos máximos.
Define los indicadores de atributos de seguridad.
El comando getfilexsec muestra los atributos extendidos de un archivo binario
configurado con el comando setfilexsec.
# getfilexsec nombre_archivo
8.4.1 Modelo de privilegios
Cada proceso tiene tres conjuntos de privilegios asociados:
•
Conjunto de privilegios permitidos
El conjunto máximo de privilegios que un proceso puede obtener. El proceso puede
quitar cualquier privilegio de este conjunto, pero no puede agregar ninguno. Los
privilegios de este conjunto se pueden agregar al conjunto de privilegios efectivo
del proceso.
•
Conjunto de privilegios efectivos
El conjunto de privilegios actualmente activos de un proceso. Un proceso compatible
con privilegios puede modificar el conjunto de privilegios efectivos para mantener
sólo los privilegios necesarios en este conjunto en cualquier momento dado. El
proceso puede eliminar cualquier privilegio del conjunto de privilegios efectivos,
pero sólo puede agregar privilegios desde el conjunto de privilegios permitidos.
El conjunto de privilegios efectivos siempre es un subconjunto del conjunto de
privilegios permitidos.
150
Privilegios expresos
•
Conjunto de privilegios retenidos
El conjunto de privilegios retenidos cuando un proceso llama a la llamada de sistema
execve(). El proceso puede eliminar cualquier privilegio de este conjunto, pero
no puede agregar ninguno.
El conjunto de privilegios retenidos siempre es un subconjunto del conjunto de
privilegios permitidos.
El primer proceso, init, se inicia con un conjunto pequeño de privilegios. Posteriormente,
crea otros procesos que ejecutan otros archivos binarios utilizando las llamadas de la
familia exec (execv, execve, etcétera). Durante esta llamada exec, los atributos
extendidos del archivo binario, el conjunto de atributos con el comando setfilexsec,
podrían hacer que estos procesos obtuvieran privilegios que su proceso primario no
tiene o que perdieran los privilegios que el proceso primario tenía. Por ejemplo, si un
archivo binario tiene un mínimo permitido de DACREAD (setfilexsec –p DACREAD
se ha ejecutado en el archivo binario), el proceso nuevo tendrá el privilegio DACREAD
tuviera o no tuviera el proceso primario dicho privilegio. Por otro lado, si el proceso ya
tiene el privilegio DACREAD, pero el archivo binario que ejecuta no lo tiene en el máximo
permitido (por ejemplo, ya se ha ejecutado setfilexsec -P none …. en el archivo),
perdería el privilegio como efecto secundario de ejecutar el archivo binario.
8.4.2 Privilegios compuestos
Los privilegios compuestos son una forma abreviada de especificar un conjunto
predefinido de privilegios simples.
Los privilegios compuestos son los siguientes:
•
BASIC
Privilegios básicos disponibles para todos los procesos por defecto. Los procesos
pueden quitar uno o varios privilegios de este conjunto.
•
BASICROOT
Privilegios básicos y privilegios que aportan competencias asociadas normalmente
a UID=0.
•
POLICY
Privilegios de anulación de directivas y privilegios de configuración de directivas.
Los privilegios de anulación de directivas anulan reglas de compartimentos. Los
privilegios de configuración de directivas controlan cómo se configuran los
privilegios.
Para obtener una lista completa de los privilegios en cada uno de los privilegios
compuestos, consulte la página de manual de privileges(5).
8.4 Configuración de aplicaciones con privilegios expresos
151
8.5 Consecuencias para la seguridad de los privilegios expresos
Los privilegios expresos no se propagan por todos los sistemas distribuidos: sólo se
aplican en el sistema local. Por ejemplo, un proceso en un sistema que tiene
PRIV_DACREAD y PRIV_DACWRITE no puede reemplazar las restricciones discrecionales
en otro sistema para leer o escribir en un archivo.
8.5.1 Incremento de los privilegios
En determinadas situaciones, si concede a un proceso un determinado privilegio o
conjunto de privilegios, dicho proceso puede obtener privilegios adicionales concedidos
de manera no explícita. Esto se denomina incremento de los privilegios. Por ejemplo,
un proceso con el privilegio PRIV_DACWRITE puede sobrescribir archivos de sistema
operativo críticos y, durante el proceso, puede granjearse privilegios expresos
adicionales.
8.6 Privilegios expresos de los clústeres HP Serviceguard
HP Serviceguard puede supervisar las aplicaciones compatibles con los privilegios. No
se han efectuado cambios en los archivos de configuración de paquetes Serviceguard
ni en la administración de paquetes Serviceguard para admitir privilegios expresos. No
se han realizado cambios en las secuencias de comandos Serviceguard para facilitar
el uso de los privilegios expresos.
Para mantener las operaciones de Serviceguard apropiadas al distribuir privilegios
expresos HP-UX 11i en paquetes o nodos Serviceguard:
•
Asegúrese de que el usuario root (UID=0) tiene privilegios plenos en el
compartimento INIT.
•
Asegúrese de que la puesta en ejecución de privilegios expresos no genera riesgos
para la seguridad de los clústeres Serviceguard.
8.7 Solución de problemas con los privilegios expresos
Si algo no funciona en el sistema y sospecha que el problema se produce debido a los
privilegios expresos, puede comprobar la configuración de los privilegios expresos del
modo siguiente.
Problema 1: Aunque se han asignado privilegios expresos a un archivo binario, los
procesos que utilizan exec() para tener acceso al archivo binario no reciben los
privilegios expresos asignados. Solución: Compruebe si se da una de las siguientes
situaciones.
•
¿Es el archivo en cuestión una secuencia de comandos?
Se ha pasado por alto algún privilegio expreso asignado a archivos de comandos
shell.
152
Privilegios expresos
•
¿Ha cambiado el archivo desde que se asignaron privilegios expresos?
Cuando se modifica un archivo, los atributos de los privilegios expresos se pierden.
Ejecute el siguiente comando antes o después de modificar el archivo:
# setfilexsec -d nombre_archivo
A continuación, agregue los atributos de privilegios que desea asignar al archivo.
Para obtener más información sobre la solución de problemas con los privilegios expresos,
consulte la página de manual de setfilexsec(1M).
Problema 2: Un proceso tiene privilegios que no debería tener o no tiene los que debería
tener. Solución: Utilice el comando getprocxsec para determinar los privilegios
que tiene un proceso:
# getprocxsec -per pid
Este comando muestra los conjuntos de privilegios retenidos, efectivos y permitidos de
un proceso. Para obtener más información, consulte la página de manual de
getprocxsec(1M).
Si el proceso no tiene los privilegios correctos, configure el archivo binario que ha creado
este proceso con los privilegios correctos. Para obtener más información, consulte la
sección «Configuración de aplicaciones con privilegios expresos».
8.7 Solución de problemas con los privilegios expresos
153
154
Parte III Protección de la identidad
En las empresas de ámbito mundial contemporáneas, manejar la identidad no constituye una
tarea fácil, sobre todo dado que las necesidades de administración de la identidad aumentan
para englobar a los empleados, los contratistas, los socios y los proveedores de muchos países
con diversas legislaciones y disposiciones relativas a la protección de la intimidad. HP-UX 11i
simplifica la administración de la autenticación y el acceso del usuario, sin dejar de auditar
todas las acciones reservadas que se emprenden.
Esta sección analiza los siguientes temas:
•
HP-UX Role-Based Access Control (Capítulo 9)
•
Administración de la auditoría (Capítulo 10)
155
156
9 HP-UX Role-Based Access Control
La información de este capítulo describe la característica HP-UX Role-Based Access
Control (HP-UX RBAC). Este capítulo aborda los siguientes temas:
•
Descripción general (Sección 9.1)
•
Fundamentos del control del acceso (Sección 9.2)
•
Componentes de HP-UX RBAC (Sección 9.3)
•
Planificación de la distribución de HP-UX RBAC (Sección 9.4)
•
Configuración de HP-UX RBAC (Sección 9.5)
•
Uso de HP-UX RBAC (Sección 9.6)
•
Solución de problemas de HP-UX RBAC (Sección 9.7)
9.1 Descripción general
La seguridad (y, especialmente, la seguridad de las plataformas) ha sido siempre una
cuestión importante en la infraestructura de las empresas. Aun así, muchas empresas a
menudo han descuidado o han pasado por alto conceptos de seguridad tales como la
responsabilidad individual y los privilegios mínimos en el pasado. No obstante, la
legislación aplicada recientemente en Estados Unidos, incluidas las leyes Health Insurance
Portability and Accountability Act (HIPAA) y Sarbanes-Oxley Act, ha contribuido a
destacar la importancia de estos conceptos de seguridad.
La mayoría de los entornos empresariales cuentan con sistemas administrados por varios
usuarios. Normalmente, este tipo de administración se basa en proporcionar a los
administradores la contraseña de una cuenta compartida común, denominada cuenta
de usuario root. Aunque la cuenta de usuario root simplifica la administración del control
del acceso al permitir que los administradores que disponen de la contraseña de usuario
root puedan realizar todas las operaciones, también presenta varios obstáculos inherentes
para la administración del control del acceso. Por ejemplo:
•
Después de proporcionar a los administradores la contraseña de usuario root, no
resulta fácil limitar en mayor medida a estos usuarios.
•
En el mejor de los casos, revocar el acceso de un administrador requiere la
modificación de la contraseña común y la notificación a los demás administradores.
Pero siendo más realistas, simplemente modificar la contraseña no suele ser suficiente
para revocar de forma efectiva el acceso, ya que se pueden haber puesto en marcha
otros mecanismos de acceso alternativos.
•
La responsabilidad individual es prácticamente imposible de ejercer con una cuenta
de usuario root compartida. En consecuencia, resulta difícil, y en algunos casos
imposible, realizar un análisis adecuado después de producirse un suceso de
seguridad.
9.1 Descripción general
157
La característica HP-UX Role-Based Access Control (RBAC) elimina estos obstáculos al
ofrecer la capacidad de asignar conjuntos de tareas a cuentas de usuario ordinarias,
pero configuradas apropiadamente. HP-UX RBAC también mitiga la sobrecarga de
administración asociada a asignar y revocar las autorizaciones individuales para cada
usuario.
HP-UX RBAC ofrece las siguientes características:
•
Archivos de configuración predefinidos específicos de HP-UX, para una distribución
rápida y fácil.
•
Reautenticación flexible mediante un módulo de autenticación enchufable (PAM Pluggable Authentication Module), para aplicar restricciones en función de cada
comando.
•
Integración en el sistema de auditoría de HP-UX, para crear un rastro de auditoría
único y unificado.
•
Arquitectura enchufable para personalizar las decisiones relativas al control del
acceso.
9.2 Fundamentos del control del acceso
La meta de un sistema de control de acceso es limitar el acceso a los recursos en función
de un conjunto de restricciones. Normalmente, estas restricciones y sus atributos asociados
se clasifican en las siguientes categorías:
•
Sujeto: entidad que intenta tener acceso al recurso. En el contexto de un sistema
operativo, el sujeto suele ser un usuario o un proceso asociado a un usuario.
•
Operación: acción realizada en un recurso. Una operación puede corresponder
directamente a una aplicación o un comando. En el caso de HP-UX RBAC, la
operación es una cadena jerárquica separada por puntos, por ejemplo,
hpux.user.add.
•
Objeto: destino de la operación, que a menudo coincide con el recurso final, pero
puede ser diferente.
Una solicitud de control de acceso puede considerarse como una pregunta que combina
los elementos anteriores, cuya respuesta (normalmente permitir o denegar) determina si
se concede el acceso al recurso. Por ejemplo:
¿Está autorizado el usuario ron para realizar la operación hpux.fs.mount en el
objeto /dev/dsk/c0t1d0?
A menudo, el término autorización se emplea como sinónimo de control del acceso. En
HP-UX RBAC, el término autorización se refiere a la capacidad de realizar una operación
en un objeto. Como se muestra en la Tabla 9-1, un usuario puede tener concedidas
diversas autorizaciones, cada una de las cuales permite el acceso a un recurso.
158
HP-UX Role-Based Access Control
Tabla 9-1 Ejemplo de autorizaciones por usuario
Componente operación de la
autorización
Usuarios
ron
lisa
jim
liz
hpux.user.password.modify
•
•
•
•
hpux.network.nfs.start
•
hpux.network.nfs.stop
•
hpux.network.nfs.config
•
hpux.fs.backup
•
•
hpux.fs.restore
•
•
hpux.user.add
hpux.user.delete
hpux.user.modify
NOTA: La Tabla 9-1 muestra sólo el elemento operación de las autorizaciones, no el
elemento objeto de las mismas.
9.2.1 Simplificación del control del acceso con funciones
Además de los principales básicos del control del acceso tratados en la descripción
general anterior, esta sección aborda la forma de representar la directiva de control de
acceso y la forma de tomar las decisiones.
La descripción general anterior del control del acceso no abarca la forma de representar
la directiva de control de acceso ni la forma de tomar las decisiones. Un enfoque consiste
simplemente en mantener una lista de los usuarios y las autorizaciones (pares
operación-objeto) asignadas a cada uno de ellos. Este enfoque tiene la ventaja de la
flexibilidad, ya que el conjunto de autorizaciones de cada usuario puede ser totalmente
distinto de los conjuntos de los demás usuarios.
Por desgracia, este enfoque resulta también difícil de administrar ya que, a medida que
se agregan usuarios, es necesario determinar exactamente qué autorizaciones requiere
cada usuario. Asimismo, cuando se realizan auditorías, es necesario examinar cada
usuario individualmente para determinar las autorizaciones correspondientes.
HP-UX RBAC resuelve estos problemas agrupando en funciones a los usuarios con
necesidades de autorización comunes. Las funciones sirven de mecanismo de agrupación
para simplificar la asignación y la auditoría de las autorizaciones. En lugar de asignar
directamente una autorización a un usuario, se asignan autorizaciones a funciones. A
medida que se agregan usuarios al sistema, se les asigna un conjunto de funciones, que
9.2 Fundamentos del control del acceso
159
determinan las acciones que pueden llevar a cabo y los recursos a los que pueden tener
acceso.
Comparemos la Tabla 9-2, que presenta una lista de las autorizaciones asignadas a
funciones, con la Tabla 9-1, que presenta una lista de las autorizaciones asignadas a
cada usuario. La comparación de estas dos tablas permite observar cómo simplifican
las funciones la asignación de autorizaciones.
Tabla 9-2 Ejemplo de autorizaciones por función
Componente operación de la
autorización
Función
UserAdmin
NetworkAdmin
BackupOper
Admin
hpux.user.add
•
•
hpux.user.delete
•
•
hpux.user.modify
•
•
•
hpux.user.password.modify
hpux.network.nfs.start
•
•
hpux.network.nfs.stop
•
•
hpux.network.nfs.config
•
•
hpux.fs.backup
•
•
hpux.fs.restore
•
•
NOTA: La Tabla 9-2 muestra sólo el elemento operación de las autorizaciones, no el
elemento objeto de las mismas.
9.3 Componentes de HP-UX RBAC
A continuación, se presenta una lista de los componentes principales de HP-UX RBAC:
Comando empaquetador privrun
Comando privedit
160 HP-UX Role-Based Access Control
Basándose en las autorizaciones asociadas a un
usuario, privrun llama a las aplicaciones
heredadas existentes con privilegios después de
comprobar las autorizaciones y reautenticar
opcionalmente al usuario, sin modificar la
aplicación.
Basándose en las autorizaciones asociadas a un
usuario, privedit permite a los usuarios
modificar archivos que normalmente no podrían
modificar debido a los permisos de acceso a los
Access Control Policy Switch (ACPS)
Access Control Policy Module
Comandos de administración
archivos o las listas de control de acceso (ACL Access Control List).
Determina si un sujeto está autorizado para
realizar una operación en un objeto.
Evalúa los archivos de base de datos de HP-UX
RBAC y aplica las directivas de asignación para
atender las solicitudes de control de acceso.
Modifican y validan los archivos de base de datos
de HP-UX RBAC.
Las siguientes secciones analizan los componentes de HP-UX RBAC más detalladamente.
9.3.1 HP-UX RBAC Access Control Policy Switch
HP-UX RBAC Access Control Policy Switch es una interface personalizable entre las
aplicaciones que deben tomar decisiones relativas al control del acceso y los módulos
de directivas de control de acceso que proporcionan las respuestas a dichas decisiones
después de interpretar la información de las directivas contenida en las bases de datos
de RBAC. Como se muestra en la Figura 9-1, desde su ubicación en la arquitectura de
HP-UX RBAC, el conmutador ACPS proporciona una interface entre los módulos de
directivas de control de acceso y las aplicaciones que toman decisiones relativas al
control del acceso.
El conmutador ACPS contiene las siguientes interfaces, que se describen en detalle en
sus respectivas páginas de manual:
•
Interface de programación de aplicaciones (API) del conmutador ACPS
•
Interface de proveedor de servicios (SPI) del conmutador ACPS
•
/etc/acps.conf
La interface administrativa del conmutador ACPS es el archivo de configuración
/etc/acps.conf. El archivo de configuración /etc/acps.conf determina qué
módulos de directivas consulta el conmutador ACPS, la secuencia en que los consulta
y las reglas de combinación de las respuestas de los módulos para proporcionar un
resultado a las aplicaciones que necesitan tomar decisiones relativas al control del
acceso. Esta puesta en ejecución del conmutador ACPS permite crear un módulo para
aplicar directivas personalizadas sin modificar las aplicaciones existentes de control del
acceso según la función.
NOTA: Para obtener más información sobre el conmutador ACPS y sus interfaces,
consulte las páginas de manual de acps(4), acps.conf(4), acps_api(3) y acps_spi(3).
9.3 Componentes de HP-UX RBAC
161
9.3.2 Archivos de configuración de HP-UX RBAC
La Tabla 9-3 enumera y describe brevemente los archivos de HP-UX RBAC.
Tabla 9-3 Archivos de configuración de HP-UX RBAC
Archivo de
configuración
Descripción
/etc/rbac/auths
Archivo de base de datos que contiene todas las autorizaciones válidas.
/etc/rbac/cmd_priv Archivo de base de datos de privrun que contiene los privilegios y las
autorizaciones relativos a comandos y archivos.
/etc/rbac/role_auth Archivo de base de datos que define las autorizaciones para cada función.
/etc/rbac/roles
Archivo de base de datos que define todas las funciones configuradas.
/etc/rbac/user_role Archivo de base de datos que define las funciones para cada usuario.
/etc/acps.conf
Archivo de configuración del conmutador ACPS.
/etc/rbac/aud_filter Archivo de filtros de auditoría que identifica específicamente las funciones,
operaciones y objetos que auditar de HP-UX RBAC.
9.3.3 Comandos de HP-UX RBAC
La Tabla 9-4 enumera y describe brevemente los comandos de HP-UX RBAC.
Tabla 9-4 Comandos de HP-UX RBAC
Comando
Descripción
privrun
Llama a las aplicaciones heredadas con privilegios después de comprobar las autorizaciones
y reautenticar opcionalmente al usuario.
privedit
Permite a los usuarios autorizados modificar archivos con control de acceso aplicado.
roleadm
Modifica la información de las funciones contenida en los archivos
/etc/rbac/user_role, /etc/rbac/role_auth y /etc/rbac/roles.
authadm
Modifica la información de las autorizaciones contenida en los archivos
/etc/rbac/role_auth y /etc/rbac/roles.
cmdprivadm Modifica los privilegios y las autorizaciones relativos a comandos que contiene la base
de datos /etc/rbac/cmd_priv.
rbacdbchk
162
Comprueba las autorizaciones y la sintaxis en los archivos de base de datos de privrun
y HP-UX RBAC.
HP-UX Role-Based Access Control
9.3.4 Páginas de manual de HP-UX RBAC
La Tabla 9-5 enumera y describe brevemente las páginas de manual de HP-UX RBAC.
Tabla 9-5 Páginas de manual de HP-UX RBAC
Página de manual
Descripción
rbac(5)
Describe la característica HP-UX RBAC.
acps(3)
Describe el conmutador ACPS y sus interfaces.
acps.conf(4)
Describe el archivo de configuración del conmutador ACPS y la sintaxis
correspondiente.
acps_api(3)
Describe la interface de programación de aplicaciones (API) del conmutador
ACPS.
acps_spi(3)
Describe la interface de proveedor de servicios (SPI) del conmutador ACPS.
privrun(1m)
Describe la funcionalidad y la sintaxis de privrun.
privedit(1m)
Describe la funcionalidad y la sintaxis de privedit.
roleadm(1m)
Describe la funcionalidad y la sintaxis de roleadm.
authadm(1m)
Describe la funcionalidad y la sintaxis de authadm.
cmdprivadm(1m)
Describe la funcionalidad y la sintaxis de cmdprivadm.
rbacdbchk(1m)
Describe la funcionalidad y la sintaxis de rbacdbchk.
9.3.5 Arquitectura de HP-UX RBAC
El componente principal de HP-UX RBAC es el comando privrun, que llama a los
comandos, aplicaciones y secuencias de comandos existentes. El comando privrun
utiliza el subsistema ACPS para realizar solicitudes de control de acceso. Una solicitud
de acceso se concede o deniega en función de un conjunto de archivos de configuración
que definen las asignaciones de usuarios a funciones y de funciones a autorizaciones.
Si la solicitud de acceso se concede, privrun llama al comando de destino con
privilegios adicionales, que pueden incluir uno o varios compartimentos y privilegios
expresos, de UID y GID. Los privilegios se configuran para permitir que el comando de
destino se ejecute correctamente.
La Figura 9-1 muestra la arquitectura de HP-UX RBAC.
9.3 Componentes de HP-UX RBAC 163
Figura 9-1 Arquitectura de HP-UX RBAC
/usr/sbin/
cmdprivadm
Comando, autoriz.
Base de datos
de privilegios
privrun
acceso: aplicación
compatible con
el control
privedit
PAM, conmutador
de servicios de nombres
acceso: aplicación
compatible con
el control
API de ACPS
Access Control Policy Switch (ACPS)
Módulos
de servicio
PAM
Información del usuario
por ejemplo, /etc/passwd
SPI de ACPS
Otro ACPM de directivas
ACPM de
RBAC local
LEYENDA
:
Comandos empaquetadores
de privilegios
Conmutador de control
de acceso
Funciones del
sistema válidas
Usuario Base
de datos de
funciones
Función
Base de datos de
autorizaciones
Autorizaciones
del sistema
válidas
RBAC
Futuro
Componentes existentes
/usr/sbin/
rbacdbck
/usr/sbin/
roleadm
/usr/sbin/
authadm
9.3.6 Ejemplo de uso y funcionamiento de HP-UX RBAC
La Figura 9-2 y las notas al pie posteriores muestran un ejemplo de llamada de privrun
y los archivos de configuración que privrun utiliza para determinar si se permite a
un usuario llamar a un comando.
164 HP-UX Role-Based Access Control
Figura 9-2 Ejemplo de funcionamiento después de llamar a privrun
Autorizaciones
Usuarios
MUCHOS:MUCHAS
Funciones
MUCHAS:MUCHAS
/etc/rbac/user_role
1:1
,
MUCHAS:MUCHOS Comando
Objetos
/etc/rbac/role_auth
privilegios
/etc/rbac/cmd_priv
comando,
argumentos, UID
2
4
S
ACP
nte
AC
PS
iante
med
me
dia
Proceso
(shell )
Operaciones
Privrun
3
Quitar todos los
privilegios excepto
los definidos
Comando
con
privilegios
5
1
1.
2.
3.
4.
5.
Un proceso (en concreto, un shell) asociado al usuario ejecuta privrun con la
meta de ejecutar un comando de destino con privilegios elevados.
La línea de comandos de destino (el comando y los argumentos) se transmite
explícitamente a privrun y el UID del usuario que realiza la llamada se transmite
implícitamente por el contexto del proceso.
privrun intenta encontrar una coincidencia (o varias) en la base de datos
/etc/rbac/cmd_priv con la línea de comandos especificada. Cada entrada
coincidente también especifica una autorización necesaria (par operación-objeto)
y los privilegios resultantes si el usuario tiene concedida la autorización especificada.
privrun efectúa una llamada (para cada entrada coincidente de
/etc/rbac/cmd_priv) al conmutador ACPS. El servidor de ACPS de HP-UX
RBAC consulta las bases de datos /etc/rbac/user_role y
/etc/rbac/role_auth para determinar si el usuario tiene concedida la
autorización especificada y devuelve este resultado a privrun.
En el supuesto de que el usuario asociado al proceso tenga concedida la
autorización necesaria especificada en la base de datos /etc/rbac/cmd_priv
para el comando solicitado, privrun quitará todos los privilegios (excepto los
especificados en la entrada /etc/rbac/cmd_priv) y ejecutará el comando
solicitado. El comando privrun se ha definido en UID=0 y se inicia con todos
los privilegios necesarios.
9.3 Componentes de HP-UX RBAC
165
9.4 Planificación de la distribución de HP-UX RBAC
Antes de distribuir HP-UX RBAC, dé estos pasos de planificación:
1.
2.
3.
Planifique las funciones para los usuarios.
Planifique las autorizaciones para las funciones.
Planifique las asignaciones de autorizaciones a comandos.
Las siguientes secciones describen estos pasos más detalladamente.
9.4.1 Planificación de las funciones
Planificar un conjunto adecuado de funciones para los usuarios de un sistema constituye
el primer paso fundamental en la distribución de HP-UX RBAC. En algunas empresas ya
existe este conjunto de funciones, que se puede volver a utilizar al configurar HP-UX
RBAC. Lo más habitual es que sea necesario diseñar las funciones según las tareas
existentes asociadas a los administradores del sistema.
Tenga en cuenta las siguientes pautas al diseñar las funciones:
•
Debe haber un número considerablemente inferior de funciones respecto al número
total de usuarios del sistema. Si cada usuario requiere una función especial, entonces
no será posible beneficiarse de toda la administración simplificada relativa al uso
de funciones.
•
Las funciones deben tener alguna relación con las funciones empresariales reales
de los usuarios.
•
Los usuarios pueden tener varias funciones y, por lo tanto, puede diseñar algunas
funciones simplemente con vistas a agrupar las autorizaciones comunes a varias
funciones empresariales. Con este enfoque, puede diseñar las funciones
jerárquicamente a fin de incluir distintas funciones mediante la inclusión de las
autorizaciones correspondientes.
9.4.2 Planificación de las autorizaciones para las funciones
Una vez definidas las funciones, puede planificar las autorizaciones asociadas a cada
función. Si las funciones coinciden con la jerarquía de operaciones ya existente, la
asignación de las autorizaciones se convierte en una tarea sencilla. Para obtener una
lista de todas las autorizaciones definidas por el sistema, escriba el siguiente comando:
# authadm list sys
Si la jerarquía de autorizaciones existente no coincide con las funciones, la definición
de las autorizaciones asociadas a cada función es una tarea más compleja. Puede dar
los siguientes pasos a modo de ayuda:
1.
2.
Obtenga una lista de los comandos del sistema que se utilizan habitualmente en
cada función.
Compare estos comandos con los de la base de datos /etc/rbac/cmd_priv.
166 HP-UX Role-Based Access Control
3.
Si encuentra entradas coincidentes después de realizar los pasos anteriores, utilice
estas entradas como guía para asignar las autorizaciones.
Por ejemplo, supongamos que una de las funciones deseadas es UserOperator, que
ejecuta normalmente comandos como useradd, usermod, userdel, etcétera. Para
determinar qué autorizaciones pueden ser apropiadas para esta función, escriba el
siguiente comando:
# grep useradd /etc/rbac/cmd_priv
/usr/sbin/useradd:dflt:(hpux.user.add,*):0/0//:dflt:dflt:dflt:
En este ejemplo, el comando /usr/sbin/useradd requiere la autorización
hpux.user.add. Puede asignar esta autorización directamente, o asignar
hpux.user.* como autorización.
Cuando asigne autorizaciones, tenga cuidado al utilizar caracteres comodín. Al asignar
esta autorización, en realidad se asignan varias autorizaciones:
# grep hpux.user. /etc/rbac/cmd_priv
/usr/sbin/pwgrd:dflt:(hpux.user.cache.admin,*):0/0// :dflt :dflt :dflt :
/usr/sbin/userdel:dflt:(hpux.user.delete,*):0/0// :dflt :dflt :dflt :
/usr/sbin/groupdel:dflt:(hpux.user.group.delete,*):0/0// :dflt :dflt :dflt :
/usr/sbin/useradd:dfl:(hpux.user.add,*):0/0//:dflt:dflt:dflt:
/usr/sbin/usermod:dflt:(hpux.user.modify,*):0/0// :dflt :dflt :dflt :
/usr/sbin/groupadd:dflt:(hpux.user.group.add,*):0/0// :dflt :dflt :dflt :
/usr/sbin/groupmod:dflt:(hpux.user.group.modify,*):0/0// :dflt :dflt :dflt :
/usr/sbin/vipw:dflt:(hpux.user.modify,*):0/0// :dflt :dflt :dflt :
9.4.3 Planificación de las asignaciones de comandos
Defina los comandos que se utilicen habitualmente en cualquiera de las funciones
definidas, pero que no existen en el archivo predefinido /etc/rbac/cmd_priv que
se ha proporcionado. El archivo /etc/rbac/cmd_priv define la asignación entre las
autorizaciones y los comandos. Para cada comando, determine lo siguiente:
•
La ruta completa del comando
•
La autorización necesaria que debe comprobarse antes de ejecutar el comando
•
Cualquier privilegio especial que requiera el comando (por ejemplo, euid=0)
Las cadenas de texto que constituyen las entradas de operación y objeto en el archivo
/etc/rbac/cmd_priv son arbitrarias, pero deben tener una correspondencia lógica
con un comando o un conjunto de comandos. Tenga en cuenta las siguientes pautas al
planificar las asignaciones de autorizaciones a comandos en /etc/rbac/cmd_priv:
•
Defina las operaciones en grupos lógicos para asignar fácilmente las operaciones
a funciones.
•
No cree ramificaciones de operaciones con demasiados (más de 10) o pocos (1)
elementos secundarios. El árbol completo no debe ser demasiado ancho, lo que
dificultaría la asignación de grupos de operaciones, ni demasiado alto, con nombres
de operaciones individuales largos y difíciles de utilizar.
9.4 Planificación de la distribución de HP-UX RBAC
167
•
Termine el último elemento del nombre de una operación con una acción (verbo).
•
Defina las operaciones de manera que los nuevos comandos se puedan colocar
fácilmente cuando se agreguen.
En relación con el procedimiento para configurar comandos adicionales, consulte la
sección «Configuración de privilegios y autorizaciones adicionales relativos a comandos».
9.4.4 Limitaciones y restricciones de HP-UX RBAC
A continuación, se presenta una lista de los elementos que deben tenerse en cuenta
antes de distribuir HP-UX RBAC:
•
HP-UX RBAC no admite el modo monousuario y, por lo tanto, la cuenta de usuario
root debe estar disponible durante situaciones en las que se necesite este modo.
•
Serviceguard no admite el uso de HP-UX RBAC ni privrun para conceder acceso
a los comandos de Serviceguard. Para obtener más información sobre HP-UX RBAC
y los clústeres Serviceguard, consulte la Sección 9.6.1.1.
•
Igual que con todas las aplicaciones, HP-UX RBAC está sujeto a las reglas que rigen
los compartimentos (consulte el Capítulo 7). Cuando utilice HP-UX RBAC con
compartimentos, recuerde lo siguiente:
— No se puede ejecutar privedit en archivos restringidos por definiciones de
compartimentos.
— Para proporcionar una aplicación diferente con privilegios expresos, es necesario
que el comando privrun se ejecute con estos mismos privilegios que desea
proporcionar a la aplicación. Por defecto, privrun se configura para ejecutarse
con todos los privilegios (para obtener más información, consulte la página de
manual de getfilexsec(1M)). No obstante, a veces puede restringirse este conjunto
de privilegios por defecto. Por ejemplo, si un compartimento está configurado
para rechazar privilegios, esta especificación impide que privrun proporcione
los privilegios a la aplicación en ese compartimento, ya que privrun carece
de los privilegios en sí. Tenga en cuenta que, por defecto, los compartimentos
sellados se configuran para rechazar el privilegio compuesto POLICY.
— Para que privrun llame a otra aplicación en un compartimento, es necesario
que privrun proporcione la aserción del privilegio CHANGECMPT. Si privrun
no puede proporcionar la aserción del privilegio CHANGECMPT (por ejemplo,
si el compartimento está configurado para rechazar privilegios), privrun dará
error. Este comportamiento es deliberado y está diseñado para reforzar el
concepto de los compartimentos sellados.
168 HP-UX Role-Based Access Control
9.5 Configuración de HP-UX RBAC
La configuración de HP-UX RBAC es un proceso que consta de tres pasos:
1.
2.
3.
Configure las funciones.
Configure las autorizaciones.
Configure los comandos adicionales.
IMPORTANTE: Las autorizaciones están incorporadas (dentro del código) en los
comandos de administración de HP-UX RBAC y no es posible configurarlas. No obstante,
se puede configurar qué funciones y usuarios tienen las autorizaciones necesarias para
los comandos de administración de HP-UX RBAC.
Los comandos de administración de HP-UX RBAC no tienen que empaquetarse con el
comando privrun porque son setuid=0. Los comandos de administración de HP-UX
RBAC se ejecutan con privilegios iguales al usuario root, independientemente de quién
los llame. Las comprobaciones de control del acceso limitan quién puede utilizar los
comandos de administración de HP-UX RBAC.
Para obtener más información sobre las autorizaciones correspondientes, consulte la
sección de autorización en la página de manual de cada uno de los comandos de
administración de HP-UX RBAC.
Esta Sección 9.5 utiliza los usuarios y resultados de planificación de ejemplo mostrados
en la Tabla 9-6, para ofrecer una demostración de los comandos de administración de
HP-UX RBAC y el proceso de configuración correspondiente.
Tabla 9-6 Resultados de planificación de ejemplo
Usuarios
Funciones
Autorizaciones
Comandos típicos
(Nota: se parte de que los objetos son
*)
chandrika, UserOperator
rwang
hpux.user.*
/usr/sbin/useradd
hpux.security.*
/usr/sbin/usermod
bdurant,
prajessh
NetworkOperator
hpux.network.*
/sbin/init.d/inetd
luman
Administrator
hpux.*
/opt/customcmd
company.customauth
9.5 Configuración de HP-UX RBAC
169
9.5.1 Configuración de las funciones
La configuración de las funciones para los usuarios es un proceso que consta de dos
pasos:
1.
2.
Cree las funciones.
Asigne las funciones a los usuarios o grupos.
9.5.1.1 Creación de las funciones
El comando roleadm permite crear funciones y asignarlas a usuarios o grupos. Primero
es necesario agregar funciones que no existan y, a continuación, asignar usuarios a
dichas funciones. A continuación, se muestra la sintaxis del comando roleadm:
roleadm add función [comentarios]
| delete función
| modify nombre_función_antiguo nombre_función_nuevo
| assign usuario función
| assign "&grupo" función
| revoke usuario [función]
| revoke "&grupo" [función]
| list [user=nombre_usuario][role=nombre_función][sys]
A continuación, se presenta una lista con una breve descripción de los argumentos del
comando roleadm:
add
delete
modify
assign
revoke
list
NOTA:
Agrega la función a la lista de funciones del sistema en el archivo
/etc/rbac/roles.
Elimina la función de la lista de funciones del sistema en el archivo
/etc/rbac/roles.
Modifica los nombres de funciones en los tres archivos de base de datos
relativos a funciones: /etc/rbac/roles, /etc/rbac/user_role y
/etc/rbac/role_auth.
Asigna una función a un usuario o grupo, y actualiza el archivo
/etc/rbac/user_role.
Revoca una función de un usuario o grupo, y elimina la entrada en el archivo
/etc/rbac/user_role.
Presenta una lista de las funciones válidas del sistema (sys) o las asignaciones
de usuarios a funciones.
Para obtener más información, consulte la página de manual de roleadm(1m).
A continuación, se muestran dos ejemplos del comando roleadm que agregan funciones
nuevas:
# roleadm add UserOperator
roleadm: added role UserOperator
# roleadm add NetworkOperator
roleadm: added role NetworkOperator
170
HP-UX Role-Based Access Control
NOTA: Los archivos de configuración que se proporcionan por defecto con HP-UX
RBAC contienen una única función preconfigurada: Administrator. Por defecto, la función
Administrator se asigna a todas las autorizaciones del sistema HP-UX (hpux.*, *) y
está asociada al usuario root.
Una vez definidas las funciones válidas, puede asignarlas a uno o varios usuarios o
grupos. Si intenta asignar a usuarios una función que no ha sido creada, aparecerá un
mensaje de error que indica que la función no existe.
9.5.1.2 Asignación de las funciones a usuarios
Separar la creación de funciones de la asignación de las mismas ofrece las siguientes
ventajas:
•
Que sea necesario crear las funciones antes de asignarlas garantiza que se detecten
los errores tipográficos al especificar los nombres de funciones durante el proceso
de asignación de estas últimas.
•
Permite que usuarios distintos realicen cada tarea. Por ejemplo, no es necesario
que el mismo usuario cree las funciones y las asigne.
Una vez creadas las funciones válidas, utilice el comando roleadm para asignarlas a
los usuarios adecuados, tal como se muestra en los siguientes ejemplos:
# roleadm assign luman Administrator
roleadm assign done in /etc/rbac/user_role
# roleadm assign rwang UserOperator
roleadm assign done in /etc/rbac/user_role
Después de utilizar el comando roleadm assign para asignar funciones a usuarios,
puede usar el comando roleadm list para comprobar que las funciones se han
asignado correctamente. Por ejemplo:
# roleadm list
root: Administrator
luman: Administrator
rwang: UserOperator
NOTA: HP-UX RBAC ofrece la posibilidad de agregar un usuario especial llamado
DEFAULT a la base de datos /etc/rbac/user_role. Si se asigna una función al
usuario DEFAULT, esta función se asignará a cualquier usuario que no exista en el
sistema.
9.5 Configuración de HP-UX RBAC
171
9.5.1.3 Asignación de las funciones a grupos
HP-UX RBAC también permite asignar funciones a grupos. Puede utilizar las opciones
del comando roleadm que usan el valor usuario, por ejemplo, roleadm assign
usuario función y roleadm revoke usuario función para administrar grupos
y funciones.
Para asignar y revocar grupos y funciones, así como obtener una lista de la información
de grupos y funciones, utilice el comando roleadm insertando un signo et (&) al principio
del valor de usuario y especificando este valor entre comillas. El valor de nombre de
grupo y el signo et (&) deben especificarse con una secuencia de escape para ejecutar
comandos del shell (shell escape) o entre comillas para que los pueda interpretar el
comando roleadm. Por ejemplo:
# roleadm assign "&nombre_grupo" función
9.5.2 Configuración de las autorizaciones
El procedimiento para configurar autorizaciones se parece al procedimiento para crear
y asignar funciones. No obstante, las autorizaciones contienen dos elementos: una
operación y un objeto. El carácter comodín *, el objeto de uso más frecuente, es el
objeto implícito utilizado si no se especifica un objeto al llamar al comando authadm.
En muchos casos, el objeto se deja a propósito sin especificar para que la operación
sea de aplicación a todos los objetos. A menudo se deja el objeto sin especificar para
autorizaciones aplicables a comandos empaquetados, ya que puede resultar difícil
determinar el destino de una acción a partir del nombre del comando.
Un ejemplo de esta ambigüedad de los objetos es el comando /usr/sbin/passwd.
El comando passwd se puede aplicar a diversos depósitos; por ejemplo, el archivo
/etc/passwd, una tabla NIS y una entrada LDAP. No es posible determinar el objeto
real en la línea de comandos, por lo que lo más fácil suele ser requerir que el usuario
pueda utilizar la operación en todos los objetos. Por ejemplo:
(hpux.security.passwd.change, *).
NOTA: Se puede configurar un valor para el objeto por defecto. Por defecto, si no se
especifica un objeto, HP-UX RBAC utilizará el carácter comodín * como objeto. No
obstante, si ha configurado un valor para el parámetro RBAC_DEFAULT_OBJECT= en
/etc/default/security, HP-UX RBAC utilizará como el objeto por defecto este
valor en lugar del carácter comodín *.
El comando authadm permite modificar la información de autorizaciones en las bases
de datos de HP-UX RBAC. La sintaxis de authadm es parecida a la de roleadm. A
continuación, se muestra la sintaxis del comando authadm:
authadm add operación[objeto[comentarios]]
| delete operación[objeto]
| assign función operación[objeto]
| revoke [role=nombre][operation=nombre[object=nombre]]
| list [role=nombre][operation=nombre[object=nombre][sys]
172
HP-UX Role-Based Access Control
A continuación, se presenta una lista con una breve descripción de los argumentos del
comando authadm:
add
delete
assign
revoke
list
Agrega una autorización a la lista de autorizaciones válidas del sistema en
el archivo /etc/rbac/auths.
Elimina una autorización de la lista de autorizaciones válidas del sistema en
el archivo /etc/rbac/auths.
Asigna una autorización a una función y agrega una entrada en el archivo
/etc/rbac/role_auth.
Revoca una autorización de una función y actualiza el archivo
/etc/rbac/role_auth.
Presenta una lista de las autorizaciones válidas por sistema o función, así
como una lista de las funciones asociadas a la operación especificada.
IMPORTANTE: Al asignar una autorización que contenga el carácter asterisco (*),
tenga en cuenta que debe especificar el carácter comodín entre comillas para evitar
que el shell lo interprete, tal como se muestra en los siguientes ejemplos.
A continuación, se muestran ejemplos de creación y asignación de autorizaciones
basados en la Tabla 9-6:
# authadm add 'company.customauth.*'
authadm added auth: (company.customauth.*,*)
# authadm assign Administrator 'company.customauth.*'
authadm added auth for role Administrator
Utilice el argumento list con el comando authadm para comprobar la asignación de
autorizaciones. Por ejemplo:
# authadm list
Administrator: (hpux.*, *) (company.customauth.*, *)
9.5.3 Configuración de privilegios y autorizaciones adicionales relativos a comandos
Es necesario definir los comandos adicionales que no se proporcionen en la configuración
por defecto. Las autorizaciones necesarias para ejecutar los comandos deben existir ya
y estar asignadas a una función. Si no ha realizado esto, el comando se configurará,
pero no se autorizará correctamente a ningún usuario para utilizarlo.
El comando cmdprivadm permite modificar la información de autorizaciones y privilegios
de un comando. Este comando se utiliza de forma parecida a los comandos roleadm
y authadm, pero únicamente permite agregar o eliminar autorizaciones y privilegios
de comandos en la base de datos de privrun.
A continuación, se muestra la sintaxis del comando cmdprivadm:
cmdprivadm add cmd=nombre_de_ruta_completo_de_un_comando | nombre_de_ruta_completo_de_un_archivo
|[op=operación]|[object=objeto]
|[ruid=id_usuario_real]|[euid=id_usuario_efectiva]
|[rgid=id_grupo_real]|[egid=id_grupo_efectiva]
|[compartment=etiqueta_compartimento]
9.5 Configuración de HP-UX RBAC
173
|[privs=lista_privilegios_separados_por_comas]
|[re-auth=nombre_servicio_pam]
|[flags=lista_indicadores_separados_por_comas]
cmdprivadm delete cmd=nombre_de_ruta_completo_de_un_comando | nombre_de_ruta_completo_de_un_archivo
|[op=operación]|[object=objeto]
|[ruid=id_usuario_real]|[euid=id_usuario_efectiva]
|[rgid=id_grupo_real]|[egid=id_grupo_efectiva]
|[compartment=etiqueta_compartimento]
|[privs=lista_privilegios_separados_por_comas]
|[re-auth=nombre_servicio_pam]
|[flags=lista_indicadores_separados_por_comas]
A continuación, se presenta una lista con una breve descripción de los dos argumentos
principales del comando cmdprivadm:
add
delete
Agrega información de autorizaciones de un comando (o archivo) a la base
de datos /etc/rbac/cmd_priv.
Elimina información de autorizaciones de un comando (o archivo) en la base
de datos /etc/rbac/cmd_priv.
En el siguiente ejemplo se ofrece una demostración de los argumentos más utilizados
del comando cmdprivadm:
# cmdprivadm add cmd=/opt/customcmd \
op=companyname.customcommand ruid=0 euid=0 flags=edit \
/opt/customcmd::(companyname.customcommand,*):0/0/-1/-1::::edit
cmdprivadm added the entry to /etc/rbac/cmd_priv
Como se ha mostrado en el ejemplo anterior, el archivo de base de datos cmd_priv
contiene un campo para los valores de indicadores. Asegúrese de tener en cuenta el
valor de cmdprivadm flags cuando configure información de autorizaciones y
privilegios de un comando o archivo.
El comando privrun reconoce un indicador definido, KEEPENV. Si el indicador
KEEPENV está definido en el archivo cmd_priv para un comando concreto, no se
anulará ninguna de las variables de entorno cuando privrun empaquete dicho
comando.
Respecto al comando privedit, puede especificar valores de indicadores para indicar
si privedit puede modificar o no un archivo. Pueden especificarse valores de
indicadores adicionales para indicar si privrun puede ejecutar un comando. A
continuación, se muestran los valores de indicadores admitidos:
flag=vacío o cualquier otro signo
flag=edit
flag=noexec
174
HP-UX Role-Based Access Control
Indica que el archivo sólo se puede ejecutar y
que no es posible modificarlo.
Indica que el archivo se puede ejecutar y
modificar. Este indicador está pensado para
secuencias de comandos.
Indica que el archivo no se puede ejecutar y sólo
se puede modificar con privedit.
NOTA: Para obtener información sobre todos los argumentos del comando
cmdprivadm, consulte la página de manual de cmdprivadm(1M). La mayoría de los
argumentos son opcionales y se rellenan con valores por defecto razonables, si no se
especifica nada.
NOTA: Para modificar una entrada existente en el archivo /etc/rbac/cmd_priv,
primero debe eliminar la entrada y, a continuación, agregar la versión actualizada. Si
utiliza cmdprivadm para eliminar entradas, los argumentos actúan como filtros. Por
ejemplo, al especificar el comando cmdprivadm delete op=foo se eliminan todas
las entradas con la operación foo. Como resultado, cuando utilice cmdprivadm para
eliminar entradas, asegúrese de que especifica suficientes argumentos para identificar
de forma exclusiva las entradas que desea eliminar.
9.5.4 Configuración de HP-UX RBAC con privilegios expresos
Las aplicaciones se comunican con los recursos del sistema mediante llamadas del
sistema, lo que permite que el sistema operativo tenga acceso a estos recursos.
Determinadas llamadas del sistema requieren privilegios elevados especiales para que
la aplicación tenga acceso al sistema operativo y al hardware del sistema.
Antes de que estuvieran disponibles los privilegios expresos, UID=0 era suficiente como
privilegio elevado especial para determinadas llamadas del sistema. Si UID no estaba
definido en 0, la llamada del sistema se denegaba y se devolvía un error de aplicación.
HP-UX RBAC (y, en concreto, el comando empaquetador privrun) permite que usuarios
distintos de root adquieran el nivel de privilegios especiales o UID=0 necesarios para
ejecutar determinadas aplicaciones. Además de proporcionar UID=0 a un usuario
distinto de root en circunstancias concretas para que pueda ejecutar una aplicación
específica, HP-UX RBAC también puede utilizar los privilegios expresos para ejecutar
aplicaciones con privilegios adicionales, pero sin UID=0.
Puede utilizar HP-UX RBAC para configurar comandos que se ejecuten con sólo un
conjunto seleccionado de privilegios y con distintos conjuntos de privilegios para usuarios
diferentes, todo sin UID=0. Por ejemplo, es posible que un administrador necesite ejecutar
el comando foobar con diversos privilegios, y que un usuario normal necesite bastantes
menos privilegios para ejecutar foobar.
Considere los privilegios expresos como «claves de comprobación del control del acceso
a llamadas del sistema». En lugar de comprobar si UID=0, la llamada del sistema
comprueba si existe un privilegio específico. Estos privilegios expresos permiten
«bloquear» llamadas del sistema y controlar el acceso de las aplicaciones al sistema
operativo y los recursos de hardware. Asimismo, al dividir los privilegios en privilegios
expresos, las aplicaciones no necesitan todos los privilegios para ejecutarse: sólo un
privilegio específico o un conjunto concreto de privilegios. En caso de que un proceso
de una aplicación ejecutado con un conjunto concreto de privilegios se viera
9.5 Configuración de HP-UX RBAC
175
comprometido, los daños potenciales son mucho menores de lo que serían si el proceso
se ejecutase con UID=0.
NOTA: Para obtener más información sobre los privilegios expresos, consulte la página
de manual de privileges(5).
El comando cmdprivadm y la opción privs permiten configurar comandos para que
privrun los empaquete y para que se ejecuten sólo con los privilegios especificados.
A continuación, se muestra un ejemplo del comando cmdprivadm que configura el
comando /usr/bin/ksh para que se ejecute con el privilegio compuesto BASICROOT
y que requiere la autorización (hpux.adm.mount, *):
# cmdprivadm add cmd=/etc/mount op=hpux.adm.mount object='*' privs=BASICROOT
El comando cmdprivadm anterior crea una entrada en el archivo
/etc/rbac/cmd_priv como sigue:
#---------------------------------------------------------------------------------------# Command
: Args
:Authorizations
:U/GID :Cmpt
:Privs
:Auth :Flags
#----------------:--------:---------------------:------:-------:----------:------:------/etc/mount
:dflt
:(hpux.adm.mount,*)
:///
:dflt
:BASICROOT :dflt :
Después de crear la entrada con cmdprivadm y con privrun para empaquetar el
comando, /etc/mount se ejecutará con el privilegio elevado del privilegio expreso
compuesto BASICROOT y sin UID=0, si el usuario tiene la autorización
(hpux.adm.mount, *).
Según se describe en la Sección 9.6.1, la opción del comando privrun -p busca
coincidencias únicamente con las entradas del archivo de base de datos
/etc/rbac/cmd_priv que tengan los privilegios especificados mediante la opción
-p. Cuando especifique un privilegio con la opción privrun -p, tenga en cuenta que
privrun buscará coincidencias con todas las entradas que contengan el privilegio
especificado, incluidos grupos de privilegios y privilegios compuestos que contengan
el privilegio especificado con la opción -p. El comando privrun se ejecutará según
la primera coincidencia que encuentre en /etc/rbac/cmd_priv. A continuación, se
muestra un ejemplo del comando privrun -p y una lista de las entradas de las cuales
el comando buscará coincidencias en /etc/rbac/cmd_priv:
El comando:
# privrun -p MOUNT /etc/mount
encuentra coincidencias con las siguientes entradas de /etc/rbac/cmd_priv:
#--------------------------------------------------------------------------------------------------------# Command
: Args
:Authorizations
:U/GID :Cmpt :Privs
:Auth
:Flags
#----------------:--------:-------------------:------:------:---------------------------------:-----:----/etc/mount
:dflt
:(hpux.adm.mount,*) :///
:dflt :PRIV_CHOWN, MOUNT
:dflt
:
/etc/mount
:dflt
:(hpux.*,nfs)
:///
:dflt :MOUNT, PRIV_RTPRIO, PRIV_MLOCK
:dflt
:
/etc/mount
:dflt
:(hpux.adm.*,*)
:///
:dflt :BASICROOT
:dflt
:
176
HP-UX Role-Based Access Control
NOTA: El comando privrun -p MOUNT /etc/mount encuentra coincidencias
con el privilegio BASICROOT porque el privilegio simple MOUNT forma parte del
privilegio compuesto BASICROOT predefinido. Para obtener más información sobre los
privilegios simples y compuestos, consulte la página de manual de privileges(5).
IMPORTANTE: La secuencia de las entradas del archivo /etc/rbac/cmd_priv es
importante, ya que privrun se ejecutará según la primera coincidencia explícita que
encuentre. En el ejemplo anterior, aunque se considera que las tres entradas son
coincidencias con el comando privrun, este comando ejecutará la primera entrada.
Tenga siempre presente la secuencia de las entradas cuando configure comandos y
autorizaciones. El comando cmdprivadm agrega entradas al final del archivo
/etc/rbac/cmd_priv.
9.5.5 Configuración de HP-UX RBAC con compartimentos
HP-UX RBAC también puede utilizar compartimentos para configurar aplicaciones que
se ejecuten en un compartimento concreto. Gracias a los compartimentos, puede crear
particiones lógicas de un sistema en compartimentos de manera que un proceso no
pueda comunicarse o tener acceso a recursos que se encuentren fuera de su
compartimento (a menos que se configure una regla de compartimentos que lo permita).
A continuación, se muestra un ejemplo del comando cmdprivadm que configura el
comando /sbin/init.d/hpws_apache para que se ejecute sólo en el compartimento
apache, definido mediante la regla de compartimentos /etc/cmpt/apache.rules:
# cmdprivadm add cmd='/sbin/init.d/hpws_apache -a start' \
op=hpux.network.service.start object=apache compartment=apache
El comando cmdprivadm anterior crea una entrada en el archivo
/etc/rbac/cmd_priv, como sigue:
#--------------------------------------------------------------------------------------------------------------# Command
: Args
:Authorizations
:U/GID
:Cmpt :Privs
:Auth
:Flags
#-------------------------:--------:------------------------------------:--------------:--------:-------:------/sbin/init.d/hpws_apache :start
:(hpux.network.service.start,apache) :///
:apache :dflt :dflt
:
Después de crear la entrada con cmdprivadm y con privrun para empaquetar el
comando, los usuarios autorizados pueden ejecutar el comando
/sbin/init.d/hpws_apache -start, que se ejecutará únicamente en el
compartimento apache. La etiqueta de compartimento para el proceso cambia a
apache, y las propiedades del proceso seguirán las reglas de compartimentos apache
definidas.
9.5 Configuración de HP-UX RBAC 177
NOTA: Utilice sólo el comando cmdprivadm para configurar los compartimentos
para comandos. No modifique el archivo de base de datos /etc/rbac/cmd_priv
sin utilizar cmdprivadm.
Para modificar una entrada existente en el archivo /etc/rbac/cmd_priv, primero
debe eliminar la entrada y, a continuación, agregar la versión actualizada. Si utiliza
cmdprivadm para eliminar entradas, los argumentos actúan como filtros. Por ejemplo,
al especificar el comando cmdprivadm delete op=foo se eliminan todas las entradas
con la operación foo. Como resultado, cuando utilice cmdprivadm para eliminar
entradas, asegúrese de que especifica suficientes argumentos para identificar de forma
exclusiva las entradas que desea eliminar.
9.6 Uso de HP-UX RBAC
Esta sección explica cómo ejecutar los comandos privrun y privedit para utilizar
HP-UX RBAC.
9.6.1 Uso del comando privrun para ejecutar aplicaciones con privilegios
El comando privrun permite a un usuario ejecutar aplicaciones heredadas con
privilegios diferentes, según las autorizaciones asociadas al usuario que realiza la
llamada. El usuario llama al comando privrun, especificando la aplicación heredada
como argumento de la línea de comandos. A continuación, privrun consulta la base
de datos /etc/rbac/cmd_priv para determinar qué autorización es necesaria para
ejecutar el comando con privilegios adicionales. Si el usuario dispone de la autorización
necesaria, privrun llama al comando especificado después de cambiar su UID y/o
GID tal como se especifica en la base de datos /etc/rbac/cmd_priv.
A continuación, se muestra la sintaxis del comando privrun:
privrun [opciones] comando [argumentos]
| [-u id_usuario_efectiva|nombre_usuario]
| [-g id_grupo_efectiva|nombre_grupo]
| [-U id_usuario_real|nombre_usuario]
| [-G id_grupo_real|nombre_grupo]
| [-a (operación, objeto)]
| [-c compartimento]
| [-p privilegio[,privilegio,privilegio...]]
| [-x]
| [-v [-v]]
| [-h]
| [-t]
La siguiente lista explica cada una de las opciones del comando privrun:
-u
178
Busca sólo coincidencias con aquellas entradas que contengan la identificación
de usuario efectiva (EUID) correspondiente a la EUID especificada o la EUID
asociada al nombre de usuario.
HP-UX Role-Based Access Control
-g
-U
-G
-a
-c
-p
-x
-v
-h
-t
Busca sólo coincidencias con aquellas entradas que contengan la identificación
de grupo efectiva (EGID) correspondiente a la EGID especificada o la EGID
asociada al nombre de grupo.
Busca sólo coincidencias con aquellas entradas que contengan la identificación
de usuario real (RUID) correspondiente a la RUID especificada o la RUID asociada
al nombre de usuario.
Busca sólo coincidencias con aquellas entradas que contengan la identificación
de grupo real (RGID) correspondiente a la RGID especificada o la RGID asociada
al nombre de grupo.
Busca sólo coincidencias con aquellas entradas que requieren la autorización
especificada. La autorización se define como pares (operación-objeto) en el archivo
de base de datos /etc/rbac/cmd_priv. La autorización especificada debe
coincidir exactamente con la autorización presente en el archivo
/etc/rbac/cmd_priv; no se admiten caracteres comodín.
Busca coincidencias con el compartimento especificado en el archivo de base de
datos /etc/rbac/cmd_priv. El compartimento especificado debe coincidir
exactamente con el compartimento presente en el archivo /etc/rbac/cmd_priv.
Busca coincidencias de los privilegios especificados con los privilegios presentes
en el archivo de base de datos /etc/rbac/cmd_priv. Puede especificar varios
privilegios. Si especifica varios privilegios, separe cada uno con una coma. Cuando
especifique un privilegio con la opción privrun -p, tenga en cuenta que
privrun buscará coincidencias con todas las entradas que contengan el privilegio
especificado, incluidos grupos de privilegios y privilegios compuestos que contengan
el privilegio especificado con la opción -p. El comando privrun se ejecutará
según la primera coincidencia que encuentre en /etc/rbac/cmd_priv.
Utiliza un modo de omisión explícita (fall-through) que modifica el comportamiento
de privrun sólo cuando da error una comprobación de autorización o
autenticación. En lugar de terminar con un mensaje de error, el comando de destino
se ejecuta, pero sin los privilegios adicionales. El comando de destino se ejecuta
como si el usuario lo ejecutara directamente sin privrun.
Llama al comando privrun en modo detallado (verbose). El nivel de detalle
aumenta si se especifican dos opciones -v. Con un nivel de detalle mayor se
obtiene más información.
Imprime la información de ayuda del comando privrun.
Utiliza un modo de prueba que realiza todas las comprobaciones normales de
autorizaciones y autenticaciones según los archivos de configuración para
comprobar si la llamada deseada al comando privrun culminará con éxito. La
única diferencia es que en lugar de ejecutar el comando, tras culminar la llamada
con éxito, el comando privrun -t simplemente se devuelve. Esta opción permite
obtener una vista preliminar de si una determinada llamada al comando privrun
culminará con éxito.
9.6 Uso de HP-UX RBAC
179
A continuación, se muestra un ejemplo del uso más básico del comando privrun:
empaquetar una aplicación heredada. En este caso, el comando ipfstat se ejecuta
como un argumento del comando privrun a fin de ejecutarse según las autorizaciones
asociadas al usuario que realiza la llamada:
# privrun ipfstat
Siempre que el usuario que ha iniciado la sesión disponga de la autorización necesaria,
definida en el archivo /etc/rbac/cmd_priv, el comando empaquetador privrun
ejecutará el comando heredado con los privilegios (UID y GID) definidos en la entrada
/etc/rbac/cmd_priv.
Pueden existir varias entradas para el mismo comando, potencialmente con distintas
autorizaciones necesarias y distintos privilegios como resultado. En este caso, el comando
privrun se repite secuencialmente en la base de datos /etc/rbac/cmd_priv,
ejecutando el primer comando para el que el usuario está autorizado.
En algunos casos, ésta puede no ser la situación ideal. Por ejemplo, puede haberse
permitido que todos los usuarios ejecuten el comando passwd para cambiar su propia
contraseña, pero si un administrador lo ejecuta, necesitarán los privilegios pertinentes
para cambiar las contraseñas de otros usuarios. Si se muestra la entrada de todos los
usuarios normales antes de la entrada de los administradores, dicha entrada se ejecutará
primero, lo que puede impedir que los administradores ejecuten la versión con más
privilegios.
Para casos de este tipo, el comando privrun dispone de opciones que permiten a los
usuarios especificar los privilegios deseados. Sólo se utilizarán las entradas que coincidan
con los privilegios especificados (por ejemplo, UID). Si no hay entradas que coincidan
con los privilegios deseados, el comando privrun devolverá un mensaje de error.
A continuación, se muestra un ejemplo de una llamada al comando privrun que busca
coincidencias únicamente con las entradas que tengan el número de UID efectiva definida
en 0:
# privrun -u 0 ipfstat
NOTA: Para obtener más información sobre la utilización del comando privrun,
consulte las páginas de manual de privrun(1M) y rbac(5).
9.6.1.1 HP-UX RBAC en los clústeres Serviceguard
Serviceguard no admite el uso de HP-UX RBAC ni privrun para conceder acceso a
los comandos de Serviceguard. Serviceguard versión A.11.16 aplica su propio control
del acceso según la función mediante la especificación de directivas de control de acceso
a través de archivos de configuración de clústeres y paquetes, proporcionando directivas
compatibles con clústeres para las operaciones de Serviceguard. Debe utilizarse el
mecanismo de Serviceguard para el control del acceso según la función de las
operaciones de Serviceguard. Para obtener detalles adicionales sobre las directivas de
180 HP-UX Role-Based Access Control
control de acceso de Serviceguard, consulte la versión más reciente del documento
Managing Serviceguard.
HP-UX RBAC se puede utilizar con comandos que no sean de Serviceguard en un clúster
Serviceguard. Deben aplicarse las mismas reglas de HP-UX RBAC a todos los nodos del
clúster.
9.6.2 Uso del comando privedit para modificar archivos con control de acceso aplicado
El comando privedit permite a los usuarios autorizados modificar archivos que
normalmente no podrían modificar debido a los permisos de acceso a los archivos o
las listas de control de acceso (ACL). Después de llamar al comando e identificar el
archivo que se desea modificar como argumento, el comando privedit consulta la
base de datos /etc/rbac/cmd_priv, de igual manera que el comando privrun,
para determinar la autorización necesaria a fin de modificar el archivo especificado.
Si el usuario que realiza la llamada está autorizado para modificar el archivo, el
comando privedit llama a un editor para abrir una copia del archivo.
NOTA: Si se utiliza el comando privedit para llamar a un editor y modificar un
archivo, el editor no se ejecuta con privilegios elevados. Dado que el editor al que llama
privedit no se ejecuta con privilegios elevados, las acciones que se pretenda realizar,
como secuencias de escape para ejecutar comandos del shell (shell escapes), se ejecutan
con el conjunto de privilegios normales (no elevados) del usuario.
Puede especificar qué editor va a utilizar privedit para modificar el archivo definiendo
la variable de entorno EDITOR. Si no define la variable EDITOR, privedit utilizará
el editor por defecto, vi. No es posible transmitir argumentos al editor mediante la línea
de comandos de privedit. No obstante, el editor reconoce y admite variables de
entorno específicas para el editor si las define antes de llamar al comando privedit.
Utilice un nombre de archivo completo como argumento de privedit para identificar
el archivo que desea modificar. Si no utiliza un nombre de archivo completo, privedit
agrega el directorio de trabajo actual al principio del nombre del archivo que especifique.
Con independencia de cómo especifique el archivo que desea modificar, todos los
nombres de archivo están completos después de llamar al comando privedit. El
comando privedit también reconoce y admite archivos que son enlaces simbólicos.
El comando privedit puede modificar sólo un archivo cada vez. Si especifica varios
nombres de archivo como argumentos de privedit, el comando privedit modificará
el primer archivo especificado y omitirá los nombres de archivo posteriores. A
continuación, se muestra la sintaxis del comando privedit:
privedit [opción] nombre_archivo_completo
| [-a (operación, objeto)]
| [-v]
| [-h]
| [-t]
| [-x]
9.6 Uso de HP-UX RBAC
181
A continuación, se presenta una lista con una breve descripción de las opciones del
comando privedit:
-a autorización
-v
-h
-t
-x
Busca sólo coincidencias con las entradas del archivo
/etc/rbac/cmd_priv que tengan la autorización
especificada.
Llama al comando privedit en modo detallado (verbose).
Imprime la información de ayuda del comando privedit.
Comprueba si el usuario dispone de la autorización necesaria
para modificar el archivo e informa de los resultados.
Si da error la comprobación de autorización, el archivo se
modificará con los privilegios originales del usuario que ha
realizado la llamada.
A continuación, se muestra un ejemplo del uso del comando privedit para modificar
el archivo /etc/default/security con la autorización específica de
(hpux.sec.edit, secfile):
# privedit -a "(hpux.sec.edit, secfile)" /etc/default/security
NOTA: Recuerde que los valores de indicadores para cada entrada de la base de
datos cmd_priv dictan si el comando privedit puede modificar o no un archivo.
Para obtener más información sobre los indicadores y la utilización del comando
privedit, consulte la sección «Configuración de privilegios y autorizaciones adicionales
relativos a comandos» y la página de manual de privedit(1M).
9.6.3 Personalización de los comandos privrun y privedit con el conmutador ACPS
La característica HP-UX RBAC permite personalizar cómo los comandos privedit y
privrun comprueban las autorizaciones de los usuarios. El conmutador ACPS es una
interface personalizable que proporciona respuestas a las aplicaciones que deben tomar
decisiones relativas a autorizaciones. El archivo de configuración del conmutador ACPS,
/etc/acps.conf, controla los siguientes aspectos del conmutador ACPS:
•
qué módulos se consultan para tomar decisiones relativas al acceso
•
la secuencia en que se consultan los módulos
•
las reglas de combinación de las respuestas de los módulos para devolver resultados
a las aplicaciones
Para obtener más información sobre el conmutador ACPS, consulte la Sección 9.3.1 y
las páginas de manual de acps.conf(4), acps(3) y rbac(5).
182
HP-UX Role-Based Access Control
9.7 Solución de problemas de HP-UX RBAC
A continuación, se presenta una lista de los mecanismos principales empleados para
solucionar problemas y errores de HP-UX RBAC:
•
La utilidad rbacdbchk comprueba la sintaxis de las bases de datos de HP-UX
RBAC.
•
El comando privrun -v muestra información adicional y pertinente.
9.7.1 La herramienta de sintaxis de bases de datos rbacdbchk
Los errores más habituales son debidos a la modificación manual de las bases de datos
de HP-UX RBAC, con el resultado de configuraciones no válidas sintácticamente o
configuraciones incoherentes entre las bases de datos (por ejemplo, una función de
/etc/rbac/user_role que no está definida en /etc/rbac/roles). Como ayuda
en el diagnóstico de estos errores habituales, HP-UX RBAC incluye el comando
rbacdbchk. Este comando lee las bases de datos de HP-UX RBAC e imprime
advertencias relativas a entradas de configuración incorrectas o incoherentes que
encuentre:
# rbacdbchk
[/etc/rbac/user_role] chandrika: UserOperator
invalid user
The value 'chandrika' for the Username field is bad.
[/etc/rbac/cmd_priv]
/opt/cmd:dflt:(newop,*):0/0//:dflt:dflt:dflt:
invalid command: Not found in the system
The value '/opt/cmd' for the Command field is bad.
[Role in role_auth DB with no assigned user in user_role DB]
Rebooter:(hpux.admin.*, *)
[Invalid Role in user_role DB. Role 'UserOperator' assigned to user 'chandrika' does not exist in
the roles DB]
En un sistema configurado correctamente, el comando rbacdbchk no genera ninguna
salida, lo que indica que no hay errores.
9.7 Solución de problemas de HP-UX RBAC 183
9.7.2 Información del comando privrun -v
El segundo método para detectar problemas es ejecutar el comando privrun con la
opción -v [modo detallado (verbose)]. En el modo detallado, el comando privrun
proporciona información adicional sobre las entradas con las que el comando de entrada
ha encontrado coincidencias y el estado de la comprobación de autorizaciones, así
como otros datos pertinentes. En muchos casos, esta salida identifica el problema que
causa que el comando privrun dé error. Especifique la opción -v varias veces para
niveles adicionales de salida detallada. A continuación, se muestra un ejemplo de la
salida de privrun -v con el comando ipfstat:
# privrun -v /sbin/ipfstat
privrun: user root intends to execute command /sbin/ipfstat
privrun: input entry: '/sbin/ipfstat:dflt:(,):///:dflt:dflt::'
privrun: found matching entry: '/sbin/ipfstat:dflt:(hpux.network.filter.readstat,*):0/0//:dflt:dflt::'
privrun: passed authorization check
privrun: attempting to set ruid/euid/rgid/egid to 0/0/-1/-1
privrun: current settings for ruid/euid/rgid/egid are 0/0/3/3
privrun: executing: /sbin/ipfstat
184 HP-UX Role-Based Access Control
10 Administración de la auditoría
El propósito de la auditoría es el registro selectivo de sucesos para analizar y detectar
infracciones de seguridad. Los datos de auditoría se registran en archivos de registro.
De este modo, el sistema de auditoría hace de factor disuasivo contra los abusos del
sistema y expone los puntos débiles de seguridad potenciales.
El sistema de auditoría registra las instancias de acceso por parte de sujetos a objetos
en el sistema; detecta los intentos (repetidos) de prescindir del mecanismo de protección
y de cualquier mal uso de los privilegios; y ayuda también a exponer los puntos débiles
potenciales de la seguridad en el sistema.
Cuando un usuario inicia una sesión, se genera una sola identificación de sesión de
auditoría denominada «etiqueta de auditoría» y se asocia al proceso del usuario. La
etiqueta de auditoría permanece igual durante cada sesión de inicio de sesión. Aunque
un usuario cambie de identidad en una sesión concreta, todos los sucesos se siguen
registrando con la misma etiqueta de auditoría y su responsabilidad sigue recayendo
en el nombre de usuario de inicio de sesión original.
Los registros de auditoría se generan para sucesos selectivos del sistema relativos a la
seguridad. Cada registro de auditoría contiene información sobre el suceso, como, por
ejemplo, cuál fue el suceso, cuándo ocurrió, la identificación del usuario que lo produjo,
la identificación del proceso que lo causó, etcétera.
Los registros de auditoría se reúnen en archivos/registros de auditoría en formato binario.
HP-UX Auditing System, incluido en la revisión HP-UX 11i v3, puede utilizar más de un
subproceso de escritor para registrar datos en un archivo. Cada subproceso de escritor
se escribe en un archivo. Esto ayuda a aumentar el rendimiento de los datos. Como
consecuencia, un rastro de auditoría está presente en el sistema de archivos como un
directorio con varios archivos de auditoría en él.
Los registros del rastro de auditoría se comprimen para ahorrar espacio en disco. Cuando
un proceso se audita por primera vez, se escribe un registro de identificación del proceso
(PIR) en el rastro de auditoría que contiene información que se mantiene constante
durante todo el proceso. Este registro incluye la identificación del proceso, la
identificación del proceso primario, la etiqueta de auditoría, el número de identificación
de usuario real, la identificación de grupo real, la identificación de usuario efectiva, la
identificación de grupo efectiva, la lista de identificación de grupo, los privilegios
retenidos, permitidos y efectivos, la identificación del compartimento y la identificación
del terminal. El registro PIR se escribe sólo una vez por proceso y por rastro de auditoría.
Este capítulo analiza los siguientes temas:
•
Auditoría de los componentes (Sección 10.1)
•
Auditoría del sistema (Sección 10.2)
•
Auditoría de los usuarios (Sección 10.3)
185
•
Auditoría de los sucesos (Sección 10.4)
•
Rastros de auditoría (Sección 10.5)
•
Consulta de los archivos de registro de auditoría (Sección 10.6)
•
Autoauditoría (Sección 10.7)
•
Auditoría con HP-UX RBAC (Sección 10.8)
10.1 Auditoría de los componentes
La característica de auditoría de HP-UX 11i contiene archivos de configuración, comandos
y páginas de manual. Estos componentes se enumeran en las siguientes secciones:
10.1.1 Comandos
La Tabla 10-1 contiene una breve descripción de cada comando de auditoría.
Tabla 10-1 Comandos de auditoría
Comando
Descripción
audevent
Cambia o muestra el estado de los sucesos o las llamadas del sistema.
audisp
Muestra los registros de auditoría.
audomon
Define los parámetros de control y tamaño del archivo de auditoría.
audsys
Pone en marcha y detiene la auditoría; define y muestra información sobre
el directorio o archivo de auditoría.
userdbset
Selecciona los usuarios que se van a auditar al especificar la opción
AUDIT_FLAG=1.
10.1.2 Archivos de configuración de auditoría
La Tabla 10-2 contiene una breve descripción de cada archivo de configuración asociado
a la característica de auditoría.
Tabla 10-2 Archivos de configuración de auditoría
Archivo
Descripción
/etc/audit/audit.conf Archivo que contiene información predefinida sobre la clasificación del
suceso.
/etc/audit/
auditr_site.conf
Archivo que contiene información específica del emplazamiento sobre la
clasificación del suceso.
/etc/default/security Archivo que contiene los valores de auditoría por defecto de todo el sistema.
186 Administración de la auditoría
Tabla 10-2 Archivos de configuración de auditoría (continuación)
Archivo
Descripción
/var/adm/userdb
Base de datos que contiene información sobre auditoría por usuario.
/etc/rc.config.d/
auditing
Archivo que contiene información de configuración que dirige la auditoría
para que comience cuando el sistema se reinicie.
10.1.3 Páginas de manual de auditoría
La Tabla 10-3 contiene una breve descripción de cada página de manual asociada a
la característica de auditoría.
Tabla 10-3 Páginas de manual de auditoría
Página de manual
Descripción
audevent(1M)
Describe la funcionalidad y la sintaxis de audevent.
audisp(1M)
Describe la funcionalidad y la sintaxis de audisp.
audomon(1M)
Describe la funcionalidad y la sintaxis de audomon.
audsys(1M)
Describe la funcionalidad y la sintaxis de audsys.
userdbset(1M)
Describe la funcionalidad y la sintaxis de userdbset.
audit.conf(4)
Describe el archivo /etc/audit/audit.conf.
audit(5)
Aporta información preliminar sobre la auditoría de HP-UX.
10.2 Auditoría del sistema
Los siguientes procedimientos permiten planificar, habilitar y supervisar la auditoría del
sistema.
10.2.1 Planificación de la puesta en ejecución de la auditoría
Para planificar la puesta en ejecución de la auditoría, dé los siguientes pasos:
1.
2.
Determine los usuarios que va a auditar. Por defecto, se seleccionan todos los
usuarios para la auditoría.
Determine los sucesos o llamadas de sistema para auditar. Utilice el comando
audevent para mostrar una lista de sucesos y llamadas de sistema que están
seleccionados actualmente para auditoría.
Los sucesos y las llamadas de sistema se pueden agrupar en perfiles.
3.
Decida dónde desea colocar los archivos de registro de auditoría (rastros de
auditoría) en el sistema. Para obtener más información sobre la configuración de
los archivos de registro de auditoría, consulte la Sección 10.5.
10.2 Auditoría del sistema
187
4.
Cree una estrategia para archivar y hacer una copia de seguridad de los archivos
de auditoría. Los archivos de auditoría ocupan, a menudo, mucho espacio en disco
y se pueden desbordar si no se planifica detenidamente la administración de los
archivos. Utilice la opción -X con el comando audomon para automatizar el archivo.
Para obtener información adicional sobre la administración y el rendimiento del sistema
de auditoría que le puede ayudar a planificar la puesta en ejecución de la auditoría,
consulte la Sección 10.2.5 y la Sección 10.2.6.
10.2.2 Habilitación de la auditoría
Para habilitar la auditoría en el sistema, dé los siguientes pasos:
1.
2.
Configure los usuarios que desea auditar utilizando el comando userdbset. Para
obtener más información sobre la configuración de la auditoría para los usuarios,
consulte la Sección 10.3.
Configure los sucesos que desea auditar utilizando el comando audevent. Por
ejemplo, para efectuar una auditoría según MySitePolicy, escriba el siguiente
comando:
# audevent -P -F -r MySitePolicy
MySitePolicy se debe definir en el archivo /etc/audit/audit_site.conf.
Utilice el comando audevent sin opciones para mostrar una lista de sucesos y
llamadas de sistema que están configurados actualmente para auditoría.
Para obtener más información sobre la configuración de la auditoría para los
sucesos, consulte la Sección 10.4.
3.
Defina los parámetros del argumento audevent en el archivo/etc/rc.config.d/
auditing para habilitar el sistema de auditoría a fin de conservar los parámetros
de configuración actuales cuando el sistema se reinicia. Por ejemplo, para conservar
los parámetros configurados en el paso 2, defina los parámetros del modo siguiente:
AUDEVENT_ARGS1 = –P –F –r MySitePolicy
4.
Inicie el sistema de auditoría y defina los rastros de auditoría utilizando el comando
audsys:
#audsys -n -c archivo_auditoría_principal -s 1000
5.
Configure los archivos de registro y los parámetros de conmutación de archivos de
registro en el archivo /etc/rc.config.d/auditing. Dé los pasos siguientes:
a. Defina PRI_AUDFILE en el nombre del archivo de registro de auditoría principal.
b. Defina PRI_SWITCH en el tamaño máximo del archivo de registro de auditoría
principal (en KB), en el que el registro de auditoría conmuta a un archivo de
registro auxiliar.
c. Defina SEC_AUDFILE en el nombre del archivo de registro auxiliar.
d. Defina SEC_SWITCH en el tamaño máximo del archivo de registro de auditoría
secundario (en KB).
188 Administración de la auditoría
Para obtener más información sobre cómo configurar los archivos de registro de
auditoría principal y auxiliar, consulte la Sección 10.5.
6.
Inicie el demonio audomon si todavía no se ha iniciado. El demonio audomon
supervisa el crecimiento del rastro de auditoría actual y conmuta a un rastro de
auditoría alternativo siempre que sea necesario. Por ejemplo:
#audomon -p 20 -t 1 -w 90 -X "/usr/local/bin/rcp_audit_trail hostname"
7.
8.
Para obtener más información sobre la configuración del demonio audomon,
consulte la Sección 10.5.2.
Defina el parámetro del argumento audomon en el archivo /etc/rc.config.d/
auditing para conservar la configuración actual entre los reinicios del sistema.
Defina el indicador AUDITING en 1 en el archivo /etc/rc.config.d/auditing
para habilitar al sistema de auditoría para que comience automáticamente cuando
se inicie el sistema.
10.2.3 Deshabilitación de la auditoría
Para deshabilitar la auditoría en el sistema, dé los siguientes pasos:
1. Detenga la auditoría del sistema con el siguiente comando:
#audsys -f
2.
3.
Defina el indicador AUDITING en 0 en el archivo /etc/rc.config.d/auditing
para evitar que el sistema de auditoría comience cuando se reinicie el sistema.
(Opcional) Para detener el demonio audomon, escriba:
# kill `ps -e | awk '$NFS~ /audomon/ {print $1}'`
Utilice este paso sólo si desea reconfigurar el demonio audomon. Para reconfigurar
y reiniciar el demonio audomon, dé el paso 6 y el paso 7 según se describe en
la Sección 10.2.2.
10.2.4 Supervisión de los archivos de auditoría
Para consultar, supervisar y administrar los archivos de auditoría, dé los siguientes pasos:
1.
Visualice los archivos de registro de auditoría con el comando audisp:
# audisp archivo_auditoría
Para obtener detalles sobre cómo utilizar el comando audisp, consulte la sección
«Consulta de los archivos de registro de auditoría».
2.
3.
Defina los argumentos de supervisión del archivo de registro de auditoría en el
archivo /etc/rc.config.d/auditing. Defina los mismos valores utilizados en
el paso 2.
(Opcional) Detenga la auditoría del sistema con el siguiente comando:
#audsys -f
10.2 Auditoría del sistema 189
4.
(Opcional) Defina el indicador AUDIT en 0 en el archivo /etc/rc.config.d/
auditing para que no se inicie el sistema de auditoría en el próximo reinicio del
sistema.
10.2.5 Consideraciones sobre el rendimiento
La auditoría aumenta la sobrecarga del sistema. Cuando el rendimiento sea motivo de
preocupación, sea selectivo a la hora de elegir los sucesos y los usuarios para auditar.
Esto puede contribuir a atenuar el impacto de la auditoría en el rendimiento.
10.2.6 Pautas para administrar el sistema de auditoría
Utilice las siguientes pautas cuando administre el sistema:
•
Compruebe los registros de auditoría según la directiva de seguridad. Los archivos
de auditoría en línea deben conservarse durante al menos 24 horas y todos los
registros de auditoría almacenados sin conexión deben preservarse durante un
mínimo de 30 días.
•
Examine el archivo de registro de auditoría en busca de actividades poco comunes,
como: inicios de sesión nocturnos, errores de inicio de sesión, errores de acceso a
los archivos del sistema e intentos infructuosos para llevar a cabo tareas relacionadas
con la seguridad.
•
Archive diariamente para evitar que el archivo de auditoría se desborde.
•
Revise cada cierto tiempo los sucesos seleccionables actuales, sobre todo después
de instalar revisiones nuevas de HP-UX, ya que es frecuente que se incorporen
llamadas del sistema nuevas a las revisiones nuevas.
•
Revise cada cierto tiempo la selección de usuarios para auditar.
•
No siga ningún modelo ni programa en cuanto a la selección de sucesos o usuarios.
•
Defina las pautas que han de seguirse en el emplazamiento. Implique a los usuarios
y a la dirección en el establecimiento de dichas pautas.
•
Si se prevé un volumen alto de datos de auditoría, configure los rastros de auditoría
en un volumen lógico que conste de varios discos físicos y varias tarjetas de E/S.
Utilice la opción -N con el comando audsys para dividir el rastro de auditoría en
varios archivos.
10.3 Auditoría de usuarios
Por defecto, cuando la auditoría del sistema está activada, el estado de auditoría es
activado para todos los usuarios. Se somete automáticamente a auditoría a los usuarios
nuevos agregados al sistema.
Puede supervisar qué usuarios están utilizando los sistemas HP-UX mediante la auditoría.
Para cambiar los usuarios que se auditan, elija una de las siguientes opciones:
190 Administración de la auditoría
•
Auditar todos los usuarios.
Por defecto, el estado de auditoría está activado para todos los usuarios cuando
el sistema de auditoría está activado. Se somete automáticamente a auditoría a los
usuarios nuevos agregados al sistema.
Si la auditoría está desactivada para todos los usuarios, defina AUDIT_FLAG=1
en el archivo /etc/default/security.
•
No auditar ningún usuario.
Para desactivar el sistema de auditoría para todos los usuarios, dé los siguientes
pasos:
1.
Compruebe qué usuarios se están auditando ya. Para ello, dé los siguientes
pasos:
a. Compruebe el valor AUDIT_FLAG en el archivo /etc/default/
security.
b. Compruebe el valor AUDIT_FLAG guardado en la base de datos de usuario
con el siguiente comando:
# userdbget -a AUDIT_FLAG
2.
•
Defina AUDIT_FLAG=0 en el archivo /etc/default/security.
Auditar usuarios específicos. Para configurar la auditoría de usuarios específicos,
dé los siguientes pasos:
1. Anule la selección de la auditoría para todos los usuarios definiendo
AUDIT_FLAG=0 en el archivo /etc/default/security.
2. Configure la auditoría para un usuario específico con el siguiente comando:
# /usr/sbin/userdbset -u nombre_usuario AUDIT_FLAG=1.
Si el sistema de auditoría aún no está habilitado, utilice el comando audsys -n para
iniciar el sistema de auditoría. Los cambios de auditoría surten efecto en el siguiente
inicio de sesión del usuario.
10.4 Auditoría de sucesos
Un suceso es una acción con consecuencias para la seguridad, por ejemplo, crear un
archivo, abrir un archivo o iniciar una sesión en el sistema. Puede auditar los sucesos
en un sistema HP-UX para mejorar la seguridad al detectar posibles infracciones. Sin
embargo, cuantos más sucesos elija auditar más recursos del sistema se utilizan y mayor
es el impacto en el rendimiento del sistema. La arquitectura de seguridad debe determinar
los sucesos que se van a auditar en función de las necesidades empresariales y de las
disposiciones gubernamentales correspondientes.
El comando audevent se utiliza para especificar las actividades del sistema (sucesos
susceptibles de auditoría) que se van a auditar. Los sucesos susceptibles de auditoría se
clasifican en perfiles y categorías de sucesos para ofrecer una configuración más sencilla.
10.4 Auditoría de sucesos
191
Una vez seleccionados un perfil o categoría de sucesos, se seleccionan todas las llamadas
de sistema y sucesos de autoauditoría asociados al perfil o la categoría del suceso.
Cuando el sistema de auditoría está instalado, se proporciona en el archivo /etc/
audit/audit.conf un conjunto por defecto de información relativa a la clasificación
de sucesos. También se pueden definir en el archivo /etc/audit/audit_site.conf
perfiles y clasificaciones específicas del emplazamiento adicionales.
NOTA:
HP recomienda auditar los siguientes sucesos como mínimo:
•
suceso admin
•
suceso login
•
suceso de autoauditoría moddac
•
execv, execve
•
suceso pset
Estos sucesos están predefinidos como el perfil básico en el archivo /etc/audit/
audit.conf.
Configure los sucesos que desea auditar antes de activar el sistema de auditoría. La
sintaxis del comando audevent es la siguiente:
# audevent [opciones]
Las siguientes opciones son de uso frecuente con el comando audevent:
Tabla 10-4 Opciones del comando audevent
Opciones de audevent
Descripción
-e suceso
Especifica un suceso para registrar
-F
Registra operaciones de sucesos infructuosas
-l
Muestra una lista de los tipos de sucesos y las llamadas de sistema asociadas
-P
Registra operaciones de sucesos fructuosas
-r perfil
Especifica el perfil de sucesos para registrar. Los perfiles se definen en el
archivo /etc/audit/audit.conf.
-S o -s
llamada_sistema
Cambia el estado de auditoría de llamadas de sistema o de sucesos
ninguna opción
Muestra el estado actual de las llamadas de sistema o sucesos seleccionados
Para configurar admin, login y modaccess para auditoría, escriba el siguiente
comando:
# audevent -P -F -e admin -e login -e moddac
Para configurar los sucesos en el perfil básico de auditoría, utilice el siguiente comando:
192 Administración de la auditoría
# audevent -P -F -r basic
Audit Success y Audit Failure se han definido como tipos de sucesos para
supervisar llamadas de sistema o sucesos fructuosos e infructuosos. Ésta es la selección
mínima recomendada de tipos de sucesos para trabajar con un sistema.
Generalmente, se escribe un registro sólo si se han seleccionado para auditoría el suceso
y el usuario que pone en marcha el suceso. No obstante, se prevé que algunos registros
se puedan seguir generando en el momento en que el usuario inicia y termina una
sesión, aunque el usuario no esté seleccionado para auditoría. Esos registros se
consideran información accesible en el sistema que se basa en la selección de sucesos
en lugar de en la selección de usuarios. Los programas que realizan autoauditoría
pueden tomar la decisión arbitraria de hacer caso omiso de la selección de usuarios,
pero esto no se recomienda para autoauditoría.
10.5 Rastros de auditoría
Todos los datos de auditoría se graban en un rastro de auditoría. De modo regular, un
rastro de auditoría está presente en el sistema de archivos como un directorio y está
formado por uno o varios archivos de registro. El número de archivos de registro depende
de cuántos subprocesos de escritor se han utilizado para registrar datos. Y sólo el
directorio completo, pero no uno o varios de los archivos del directorio, representa datos
significativos para mostrar o analizar. En oposición al modo regular, también se
suministra un modo de compatibilidad en la revisión de HP-UX 11i versión 3 para generar
el rastro de auditoría que está presente en forma de archivo individual. El modo de
compatibilidad se admite sólo para compatibilidad retroactiva y quedará anticuado en
cualquier revisión futura posterior a HP-UX 11i versión 3. Para obtener más información,
consulte la página de manual de audsys(1M).
En cualquier momento en que el sistema de auditoría se habilite, deberá estar presente,
al menos, un rastro de auditoría. El nombre del rastro y diversos atributos del mismo se
pueden especificar utilizando audsys. Cuando el rastro actual sobrepasa una capacidad
predefinida (su límite de conmutación de archivo de auditoría: Audit File Switch - AFS),
o cuando el sistema de archivos de auditoría donde está ubicado se aproxima a una
capacidad predefinida (su límite de conmutación de espacio de archivos: File Space
Switch - FSS), el subsistema de auditoría emite un mensaje de advertencia. Cuando se
llega al límite de conmutación del archivo de auditoría (AFS) o bien al límite de
conmutación de espacio de archivos (FSS) del rastro de auditoría actual, el subsistema
de auditoría busca un rastro auxiliar. Si hay uno disponible, el registro se conmuta al
rastro auxiliar. Si no se ha especificado ningún rastro auxiliar, el subsistema de auditoría
crea un rastro de auditoría nuevo con el mismo nombre básico pero distinta extensión
de marca de hora y comienza a registrarlo ahí. Audomon toma también una línea de
comandos para ejecutar tras una conmutación satisfactoria del rastro de auditoría a fin
de procesar el último rastro de auditoría. Según las necesidades específicas del
emplazamiento, el proceso puede implicar la copia de seguridad de datos, el archivo,
el traslado fuera del emplazamiento, la limpieza o la generación de informes sobre los
10.5 Rastros de auditoría
193
datos. Si el comando auto-switch es infructuoso, se envían mensajes de advertencia
para solicitar la acción del administrador apropiada y el rastro de auditoría actual sigue
aumentando.
NOTA:
1. Con HP-UX 11i versión 3, ya no es necesario especificar manual y explícitamente
el rastro de auditoría para conmutación. El sistema de auditoría realiza la
conmutación automática de rastros de auditoría.
2. Si la autoconmutación da error y el rastro de auditoría actual sigue aumentando
de tamaño y rebasa el límite FSS, puede alcanzarse un parámetro definido por el
sistema: minfree. Al llegar a este punto, todas las acciones susceptibles de
auditoría se suspenden para los usuarios normales. Restaure el funcionamiento del
sistema archivando los datos de auditoría o especificando un nuevo archivo de
registro de auditoría en un sistema de archivos con espacio.
3. Si hay otras actividades que consumen espacio del sistema de archivos o el sistema
de archivos elegido no dispone de suficiente espacio para el límite de conmutación
de archivo de auditoría (AFS) indicado, se puede alcanzar el límite de conmutación
de espacio de archivos (FSS) antes que el límite AFS.
Elija un sistema de archivos con suficiente espacio para alojar los archivos de registro
de auditoría. Para determinar el tamaño de los sistemas de archivos, utilice el comando
bdf. HP recomienda configurar los archivos de registro al menos con los siguientes
parámetros:
•
El sistema de archivos debe tener disponibles más de 5000 KB para el archivo de
registro de auditoría principal.
•
Debe tener disponible más del 20 % del espacio total para archivos.
El demonio de control de desbordamiento de auditoría, audomon, vigila atentamente
el aumento de tamaño de los archivos de registro de auditoría para garantizar que no
se pierda ningún dato de auditoría.
10.5.1 Configuración de rastros de auditoría
Utilice el comando audsys para especificar el archivo de registro de auditoría principal
y el archivo de registro de auditoría auxiliar (opcional) para reunir datos de auditoría:
#audsys -n -N2 -c mi_rastro_auditoría -s 5000
Este ejemplo inicia el sistema de auditoría y registra los datos en el directorio
mi_rastro_auditoría, utilizando dos subprocesos de escritor. El límite de
conmutación del archivo de registro (AFS) se ha definido en 5000 KB. Para obtener
más información, consulte la página de manual de audsys(1M) .
194
Administración de la auditoría
10.5.2 Supervisión y administración de rastros de auditoría
El demonio de control de desbordamiento de auditoría (audomon) permite supervisar
y administrar rastros de auditoría. El demonio audomon se inicia automáticamente
cuando se inicia la auditoría en el momento del inicio del sistema (AUDITING=1 en
/sbin/init.d/auditing). Un usuario con privilegios también puede iniciar el
demonio audomon. Una vez iniciado, el demonio audomon supervisa la capacidad
del rastro de auditoría actual y el sistema del archivos en el que se aloja. A continuación,
se muestra un comando de ejemplo que se utiliza para iniciar el demonio audomon:
# audomon -p 20 -t 1 -w 90 -X "/user/local/bin/rcp_audit_trail nombre_host"
Este comando inicia el demonio audomon con el siguiente comportamiento, en el supuesto
de que el sistema de auditoría se haya iniciado con el siguiente comando:
# audsys -n -N 2 -c /var/.audit/my_trail -s 500
•
audomon se pone en suspensión al menos en intervalos de un minuto
•
Cuando el tamaño del rastro de auditoría actual alcanza los 4500 Kb, o el sistema
de archivos en el que se aloja el rastro de auditoría se llena al 80 %, el demonio
audomon detiene el registro de datos en el rastro de auditoría actual y lo inicia en
uno nuevo: /var/.audit/my_trail.aaaammddHHMM
•
Una vez realizada la conmutación al rastro de auditoría nuevo, el demonio audomon
llama al siguiente comando:
sh -c "/usr/local/bin/rcp_audit_trail nombre_host /var/.audit/my_trail"
Esta secuencia de comandos es específica del emplazamiento y se puede utilizar
para copiar el rastro de auditoría antiguo, realizar una copia de seguridad de los
datos o funciones de archivo, y crear informes de auditoría. Para obtener más
información sobre el demonio audomon, consulte la página de manual de
audomon(1).
ATENCIÓN:
•
Si el sistema de archivos que contiene el rastro de auditoría está lleno, cualquier
proceso que no sea del usuario root y que genere datos de auditoría se bloqueará
en el kernel. Asimismo, si un proceso que no sea del usuario root se conecta al
terminal del sistema, dicho proceso se interrumpirá. Para obtener más detalles,
consulte la sección WARNINGS de la página de manual de audsys(1M).
•
No coloque rastros de auditoría en el sistema de archivos raíz.
SUGERENCIA: HP recomienda escribir una secuencia de comandos para acometer
una estrategia a largo plazo para el almacenamiento de datos y transmitirla al demonio
audomon mediante la opción -X.
El comando audomon toma los siguientes argumentos:
10.5 Rastros de auditoría 195
El porcentaje mínimo de espacio que queda en
el sistema de archivos que contiene el archivo de
registro de auditoría principal antes de que el
sistema de auditoría conmute al archivo de
registro auxiliar. El valor por defecto de fss es
del 20 %.
-t
Intervalo de reacción mínimo, en minutos, en el
frecuencia_límite_conmutación que el sistema imprime mensajes de advertencia
para los límites de conmutación del archivo de
registro de auditoría en la consola. El valor por
defecto de
frecuencia_límite_conmutación es de 1
minuto.
-w advertencia
El porcentaje de espacio del archivo de registro
de auditoría utilizado o el espacio libre mínimo
del sistema de archivos utilizado después del cual
se envían mensajes de advertencia a la consola.
El valor por defecto de advertencia es del 90
%.
-X comando
El comando se ejecuta cada vez que el demonio
audomon conmuta al rastro de auditoría.
-p fss
Para obtener más información, consulte la página de manual de audomon(1M).
10.6 Consulta de los archivos de registro de auditoría
La auditoría acumula muchos datos. Utilice el comando audisp para seleccionar los
datos que desea consultar:
#/usr/sbin/audisp rastro_auditoría
Las siguientes opciones están disponibles con el comando audisp:
-f
-p
-c llamada_sistema
-t
-s
-u nombre_usuario
-l nombre_terminal
-e nombre_suceso
> nombre_archivo
196
Administración de la auditoría
Muestra sólo los sucesos infructuosos.
Muestra sólo los sucesos fructuosos.
Muestra la llamada de sistema seleccionada.
Muestra los sucesos que ocurrieron después del tiempo
dado.
Muestra los sucesos que ocurrieron antes del tiempo dado.
Muestra información de un usuario específico.
Muestra información de un terminal específico.
Muestra información de un suceso dado.
Escribe la salida en un archivo especificado.
Preparar el registro para su consulta puede llevar unos cuantos minutos en el caso de
archivos de registro de auditoría grandes. Al consultar los datos de auditoría, tenga en
cuenta las siguientes anomalías:
•
Es posible que parezca que los datos de auditoría son inexactos cuando los
programas que realizan llamadas del sistema susceptibles de auditoría facilitan
parámetros incorrectos. Los datos de auditoría muestran lo que el programa de
usuario ha transmitido al kernel. Por ejemplo, al llamar a la llamada del sistema
kill() sin ningún parámetro, se generan valores imprevisibles en la sección de
parámetros del registro de auditoría.
•
Es posible que, en el caso de las llamadas del sistema que acepten nombres de
archivo como argumentos, la información sobre dispositivos e inodos no se registre
correctamente. El valor será -1 si la llamada no se completa satisfactoriamente.
•
La auditoría del superusuario mientras cambian los parámetros de llamada del
sistema o de sucesos generará un registro de auditoría largo. Por ejemplo, al agregar
un tipo de suceso para auditarlo, se generará un registro para cada tipo de suceso
y llamada del sistema que se haya habilitado para auditoría, no sólo para el tipo
de suceso nuevo en proceso de adición.
10.6.1 Ejemplos de uso del comando audisp
Los siguiente ejemplos muestran la información de auditoría que se muestra con el
comando audisp:
•
Mostrar la salida del archivo de registro en la pantalla:
#/usr/sbin/audisp rastro_auditoría
•
Dirigir la salida del archivo de registro hacia /tmp/mylogoutput:
#/usr/sbin/audisp rastro_auditoría > /tmp/mylogoutput
•
Mostrar sólo los sucesos fructuosos:
#/usr/sbin/audisp -p rastro_auditoría
•
Consultar las actividades cuyo propietario es el usuario joe:
#/usr/sbin/audisp -u joe rastro_auditoría
•
Mostrar actividades en el terminal ttypa:
#/usr/sbin/audisp -l ttypa rastro_auditoría
•
Mostrar sólo los sucesos de inicio de sesión:
#/usr/sbin/audisp -e login rastro_auditoría
10.6 Consulta de los archivos de registro de auditoría
197
10.7 Autoauditoría
Ciertos procesos llaman a una serie de acciones susceptibles de auditoría. Para disminuir
la cantidad de datos de registro de auditoría reunidos y proporcionar notaciones más
significativas en los archivos de registro de auditoría, parte de dichos procesos se
programan para suspender la auditoría de las acciones a las que llaman y generar una
entrada de registro de auditoría que describa el proceso acaecido. Los procesos
programados de esta forma se llaman procesos de autoauditoría; el uso de estos procesos
racionaliza los datos de registro de auditoría.
NOTA:
La lista de procesos de autoauditoría varía de un sistema a otro.
Procesos de autoauditoría
Los siguientes procesos presentan capacidad de autoauditoría:
chfn
chsh
login
newgrp
passwd
audevent
audisp
audsys
audusr
init
lpsched
fbackup
ftpd
remshd
rlogind
telnetd
privrun
privedit
roleadm
authadm
cmdprivadm
Cambia la entrada finger
Cambia el shell de inicio de sesión
La utilidad de inicio de sesión
Cambia el grupo efectivo
Cambia la contraseña
Selecciona los sucesos que han de auditarse
Muestra los datos de auditoría
Inicia o detiene el sistema de auditoría
Selecciona los usuarios que han de auditarse
Cambia los niveles de ejecución y el cierre de sesión de los usuarios
Programa solicitudes de la impresora de líneas
Copia de seguridad flexible de archivos
Demonio de protocolo de transferencia de archivos
Demonio de servidor de shell remoto
Demonio de servidor de inicio de sesión remoto
Demonio de servidor telnet
Llama a una aplicación heredada.1
Permite a los usuarios autorizados modificar archivos.1
Modifica la información de las funciones.1
Modifica la información relativa a la autorización.1
Modifica los privilegios y las autorizaciones de comandos.1
La mayor parte de los programas de autoauditoría generan datos de auditoría en una
sola categoría de sucesos. Por ejemplo, el comando audsys genera datos de auditoría
en el suceso admin. Algunos comandos generan datos de auditoría en varias categorías
1. Para obtener más información, consulte el Capítulo 9.
198 Administración de la auditoría
de sucesos. Por ejemplo, el comando init genera datos de auditoría en los sucesos
login y admin.
10.8 Auditoría con HP-UX RBAC
Cada uno de los comandos privrun, privedit, roleadm, authadm y cmdprivadm
de HP-UX RBAC genera registros de auditoría. Los siguientes atributos se incluyen en
cada registro de auditoría:
•
Nombre de usuario
•
UID (Número de identificación de usuario)
•
Función
•
Autorizaciones (operación, objeto)
•
Fecha del suceso
•
Resultado del suceso (fructuoso o infructuoso)
10.8.1 Auditoría en función de los criterios de HP-UX RBAC y el archivo
/etc/rbac/aud_filter
HP-UX RBAC versión B.11.23.02 y posteriores admite el uso de un archivo de filtros de
auditoría para identificar los criterios específicos de HP-UX RBAC para auditar. Puede
crear un filtro de archivos denominado /etc/rbac/aud_filter para identificar
específicamente las funciones, operaciones y objetos para los que generar registros de
auditoría. Los registros de auditoría sólo se generan si los atributos de un proceso
coinciden con las tres entradas (función, operación y objeto) que se encuentran en el
archivo /etc/rbac/aud_filter. Si la función de un usuario y su autorización
asociada no están en el archivo o no coinciden de manera explícita, no se generan
registros de auditoría específicos para funciones-a-autorizaciones.
Los usuarios autorizados pueden modificar el archivo /etc/rbac/aud_filter con
un editor de texto y especificar la función y la autorización que se han de auditar. Cada
autorización se específica en la forma de pares de operación y objeto. Todas las
autorizaciones asociadas a una función se deben especificar en una sola entrada. Sólo
se puede especificar una autorización por función en cada línea; no obstante, se admite
el comodín *. A continuación, se muestran las entradas admitidas y el formato del
archivo /etc/rbac/aud_filter:
función, operación, objeto
La siguiente lista explica cada una de las entradas del comando
/etc/rbac/aud_filter:
función
operación
Cualquier función válida definida en /etc/rbac/roles. Si se ha
especificado *, la operación puede obtener acceso a todas las funciones.
La operación específica que se puede llevar a cabo en un objeto. Por
ejemplo, hpux.printer.add es la operación para agregar una
10.8 Auditoría con HP-UX RBAC 199
objeto
impresora. Asimismo, hpux.printer.* es la operación para agregar
o eliminar una impresora. Si se ha especificado *, la operación puede
obtener acceso a todas las operaciones.
El objeto al que el usuario puede tener acceso. Si se ha especificado *,
la operación puede obtener acceso a todos los objetos.
A continuación, se muestran entradas de ejemplo de /etc/rbac/aud_filter que
especifican cómo generar registros de auditoría para la función de SecurityOfficer
con la autorización de (hpux.passwd, /etc/passwd) y para la función de
Administrator con autorización para llevar a cabo la operación
hpux.printer.add en todos los objetos.
SecurityOfficer, hpux.passwd, /etc/passwd
Administrator, hpux.printer.add, *
NOTA: Utilice un editor, por ejemplo, vi para modificar directamente el archivo
/etc/rbac/aud_filter. Los comandos de administración de HP-UX RBAC no
interactúan con /etc/rbac/aud_filter.
10.8.2 Procedimiento para auditar los criterios de HP-UX RBAC
Los siguientes pasos describen cómo configurar un proceso de auditoría para auditar
los criterios de HP-UX RBAC en el sistema:
1.
Configure el sistema para auditar sucesos Passed (fructuosos) o Failed (infructuosos)
para los sucesos de Administrator con el siguiente comando:
# audevent -PFe admin
2.
Configure la ubicación y el nombre del archivo de salida de auditoría y habilite la
auditoría del sistema con el siguiente comando:
# audsys -n -c /tmp/aud.out -s 2048
3.
Ejecute un comando de HP-UX RBAC, por ejemplo:
# /usr/sbin/authadm add newauth
4.
Abra el archivo de salida de auditoría y busque los registros en el comando
authadm, con el siguiente comando:
# audisp /tmp/aud.out |fgrep authadm
NOTA: Para obtener más información y ampliar conocimientos sobre la auditoría de
los sistemas HP-UX, consulte las páginas de manual de audit(5), audevent(1M),
audsys(1M) y audisp(1M).
200 Administración de la auditoría
A Sistemas de confianza
Este apéndice describe cómo configurar y administrar un sistema de confianza. Este
apéndice analiza los siguientes temas:
•
Configuración de un sistema de confianza (Sección A.1)
•
Auditoría de un sistema de confianza (Sección A.2)
•
Administración de las contraseñas y del acceso en un sistema de confianza
(Sección A.3)
•
Pautas para realizar copias de seguridad y recuperaciones de confianza
(Sección A.4)
NOTA: El uso de los sistemas de confianza se ha desaprobado. HP-UX 11i v3 es la
última revisión que admite este producto.
A.1 Configuración de un sistema de confianza
Para configurar un sistema de confianza, dé los siguientes pasos:
1. Establezca una directiva de seguridad global que sea apropiada para el lugar de
trabajo.
2. Inspeccione todos los archivos existentes en el sistema para detectar riesgos para
la seguridad y erradique dichos riesgos. Reviste importancia dar este paso antes
de realizar la conversión a un sistema de confianza. En lo sucesivo, examine los
archivos regularmente o cuando sospeche la existencia de una infracción de
seguridad. Consulte la Sección 6.9 del Capítulo 6.
3. Realice una copia de seguridad del sistema de archivos para recuperar
posteriormente los archivos de usuario. También debe realizar una copia de
seguridad en cinta del archivo /etc/passwd antes de la conversión.
Puede utilizar cualquier programa de copia de seguridad y recuperación
suministrado por HP-UX para la copia de seguridad y recuperación iniciales. No
obstante, después de implantar las características de seguridad, utilice sólo los
comandos fbackup y frecover, que conservan y restauran las listas de control
de acceso (ACL). Para obtener más información, consulte las páginas de manual
de fbackup(1M) y frecover(1M).
4.
Convierta el sistema en un sistema de confianza. La conversión en un sistema de
confianza es una operación reversible.
Para convertir el sistema en un sistema de confianza, ejecute la interface HP SMH
y haga clic en System Security Policies. Aparecerá el mensaje Convert to
trusted system. Es posible que obtenga un mensaje de confirmación. Presione
la letra Y para comenzar el proceso de conversión.
A.1 Configuración de un sistema de confianza 201
Al convertir un sistema en un sistema de confianza, el programa de conversión
realiza las siguientes acciones:
•
Crea una nueva base de datos protegida de contraseñas en /tcb/files/
auth/.
•
Traslada las contraseñas cifradas desde el archivo /etc/passwd a la base
de datos protegida de contraseñas y sustituye el campo de contraseña de
/etc/passwd por un asterisco (*).
•
Obliga a todos los usuarios a utilizar contraseñas.
•
Crea un número de identificación de auditoría para cada usuario. Este número
de identificación sigue siendo el mismo en todo el historial de un usuario. Lo
identifica de forma exclusiva. Tenga en cuenta que la identificación de auditoría
está en proceso de desaprobación junto con los sistemas de confianza en
HP-UX 11i v3, sustituyéndose por la etiqueta de auditoría asignada de forma
dinámica cada vez que un usuario inicia correctamente una nueva sesión. Para
obtener más información sobre las etiquetas de auditoría, consulte el
Capítulo 10.
•
Activa el indicador de auditoría para todos los usuarios existentes.
•
5.
6.
Convierte los archivos de entrada at, batch y crontab para utilizar la
identificación de auditoría del ejecutor del comando.
Compruebe que los archivos de auditoría están en el sistema:
1. Utilice swlist -l fileset para obtener una lista de los conjuntos de
archivos instalados. Busque el conjunto de archivos denominado SecurityMon
, el cual contiene los archivos del programa de auditoría. Para abreviar la
lista, escriba el siguiente comando: # swlist -l fileset | grep
Security
2. Asimismo, compruebe que también existen los siguientes archivos (no se
especifican en SecurityMon):
•
/etc/rc.config.d/auditing contiene los parámetros para controlar
la auditoría. Este archivo se puede modificar con la interface SMH o
manualmente con un editor de texto.
•
/sbin/rc2.d/S760auditing es el archivo de comandos que pone en
marcha la auditoría. No modifique este archivo.
Después de realizar la conversión del sistema en un sistema de confianza, puede
utilizar el subsistema de auditoría y ejecutar el sistema HP-UX como un sistema de
confianza.
NOTA: En HP-UX 11i v3, también se puede utilizar un sistema de auditoría en
un sistema sin convertirlo en un sistema de confianza.
Para obtener más información, consulte el Capítulo 10.
202 Sistemas de confianza
Si tiene que volver a convertir un sistema de confianza en un sistema estándar, ejecute
la interface HP SMH y utilice la ventana Auditing and Security. Las pantallas Audited
Events, Audited System Calls y Audited Users ofrecen en su totalidad una opción para
invertir la conversión.
SUGERENCIA: Una manera de saber si el sistema se ha convertido en un sistema de
confianza consiste en buscar los archivos /tcb. Si existen, se dispone de un sistema
de confianza.
A.2 Auditoría de un sistema de confianza
Auditar un sistema de confianza se parece mucho a la auditoría de un sistema no
convertido en el modo de confianza. Para obtener información sobre la auditoría,
consulte el Capítulo 10. La única diferencia radica en cómo seleccionar los usuarios
para auditar. En un sistema no convertido en el modo de confianza, el comando
userdbset permite especificar los usuarios que han de auditarse. Consulte las páginas
de manual de userbdset(1M) y userdb(4). El atributo asociado es AUDIT_FLAG y se
describe en la página de manual de security(4). En un sistema de confianza, el comando
audusr especifica los usuarios que han de auditarse. Para obtener más información,
consulte la página de manual de audusr(1M).
A.3 Administración de las contraseñas y del acceso en un sistema de
confianza
La contraseña es el símbolo más importante de identificación del usuario individual. El
sistema la utiliza para autenticar a un usuario y franquearle el acceso al sistema. Puesto
que las contraseñas son susceptibles a su divulgación cuando se utilizan, almacenan o
conocen, deben mantenerse en secreto en todo momento.
Para obtener información sobre las contraseñas, consulte también el Capítulo 2.
Responsabilidades del administrador de la seguridad
El responsable de la seguridad y todos los usuarios del sistema deben compartir la
responsabilidad de la seguridad de las contraseñas. Al responsable de la seguridad le
competen las siguientes funciones relacionadas con la seguridad:
•
Crear contraseñas provisionales para los usuarios nuevos. Esta contraseña debe
utilizarse durante el primer inicio de sesión. El sistema, después de comprobar este
número, le pide al usuario nuevo que escriba una contraseña nueva.
•
Mantener los permisos de acceso apropiados en todos los archivos del sistema,
incluidos el archivo estándar de contraseñas, /etc/passwd, y los archivos de la
base de datos de confianza, /tcb/files/auth/*.
•
Fijar la caducidad de las contraseñas.
•
•
Manejar la reutilización de contraseñas.
Eliminar o anular las contraseñas caducadas y los números de identificación y las
contraseñas de los usuarios que ya no sean aptos para obtener acceso al sistema.
A.2 Auditoría de un sistema de confianza 203
Responsabilidades del usuario
Todos los usuarios deben atenerse a las siguientes reglas:
•
Recordar la contraseña y guardarla en secreto en todo momento.
•
Cambiar la contraseña inicial de inmediato y, en lo sucesivo, modificar la contraseña
cada cierto tiempo.
•
Informar de los cambios de estado y de las presuntas infracciones de seguridad
que se produzcan.
•
Asegurarse de que nadie les observa mientras escriben la contraseña.
•
Elegir una contraseña distinta para cada equipo en el que tengan una cuenta.
A.3.1 Archivos de contraseñas
Un sistema de confianza mantiene varios archivos de contraseñas: el archivo /etc/
passwd y los archivos de la base de datos protegida de contraseñas /tcb/files/
auth/ (consulte la sección «La base de datos /tcb/files/auth/»). Cada usuario tiene
una entrada en dos archivos y el comando login examina ambas entradas para
autenticar las solicitudes de inicio de sesión.
Todas las contraseñas se cifran inmediatamente después de la entrada y se almacenan
en el archivo /tcb/files/auth/carácter_usuario/nombre_usuario, el archivo
de la base de datos protegida de contraseñas. En las comparaciones sólo se utilizan
contraseñas cifradas.
Ninguno de los dos archivos de contraseñas debe contener ningún campo vacío (nulo).
En los sistemas de confianza, se hace caso omiso del campo de contraseña del archivo
/etc/passwd. Un usuario con un campo de contraseña vacío tendrá que definir una
contraseña al iniciar una sesión en un sistema de confianza. Sin embargo, incluso con
esta medida de protección existe la posibilidad de que se produzca una infracción de
la seguridad, porque se requerirá a cualquier usuario que inicie una sesión en esta
cuenta que defina la contraseña.
No modifique directamente los archivos de contraseñas. Utilice la interface HP SMH o
los comandos useradd, userdel o usermod para modificar las entradas de los
archivos de contraseñas.
A.3.1.1 El archivo /etc/passwd
Un sistema de confianza utiliza el archivo /etc/passwd para identificar a un usuario
en el momento de iniciar una sesión. Dicho archivo contiene una entrada para cada
cuenta del sistema HP-UX. Cada entrada consta de siete campos separados por dos
puntos. Una entrada típica del archivo /etc/passwd en un sistema de confianza
presenta este aspecto:
robin:*:102:99:Robin Hood,Rm 3,x9876,408-555-1234:/home/robin:/usr/bin/sh
Los campos contienen los siguientes datos (enumerados en orden de aparición) separados
por dos puntos:
204 Sistemas de confianza
1.
El nombre de usuario (inicio de sesión), que consta de un máximo de ocho
caracteres. (En el ejemplo: robin.)
2. El campo de contraseña no utilizado, que está ocupado por un asterisco en lugar
de por una contraseña real. (*)
3. El número de identificación de usuario, un número entero que varía entre 0 y
MAXINT-1, igual a 2.147.483.646 o 231 -2. (102)
4. La identificación de grupo, un número entero guardado en el archivo /etc/group
que varía entre 0 y MAXINT-1. (99)
5. El campo de comentario, que se utiliza para escribir información de identificación,
como el nombre completo del usuario, la ubicación y los números de teléfono. Por
motivos históricos, este campo también se llama gecos.
(Robin Hood,Rm 3,x9876,408-555-1234)
6. El directorio inicial, es decir, el directorio de inicio de sesión original del usuario.
(/home/robin)
7. El nombre de ruta del programa de inicio de sesión, que se ejecuta cuando el
usuario inicia una sesión. (/usr/bin/sh)
El usuario puede cambiar el campo de comentario (el quinto campo) con el comando
chfn y el nombre de ruta del programa de inicio de sesión (el séptimo campo) con el
comando chsh. El administrador del sistema configura el resto de los campos. El número
de identificación de usuario debe ser único. Para obtener más información, consulte las
páginas de manual de chfn(1), chsh(1), passwd(1) y passwd(4). El usuario puede
modificar la contraseña de la base de datos protegida de contraseñas con el comando
passwd.
A.3.1.2 La base de datos /tcb/files/auth/
Cuando un sistema se convierte en un sistema de confianza, la contraseña cifrada, que
en general se ubica en el segundo campo del archivo /etc/passwd, se traslada a la
base de datos protegida de contraseñas y un asterisco le guarda el sitio en el archivo
/etc/passwd.
Los archivos de la base de datos protegida de contraseñas se almacenan en la jerarquía
/tcb/files/auth/. Los perfiles de autenticación de usuario se almacenan en estos
directorios en función de la inicial del nombre de cuenta del usuario. Por ejemplo, el
perfil de autenticación del usuario david se almacena en el archivo /tcb/files/
auth/d/david.
En los sistemas de confianza, los elementos de seguridad principales se guardan en la
base de datos protegida de contraseñas, cuyo acceso es exclusivo de los superusuarios.
Las entradas de datos de contraseñas deben definirse con la interface HP SMH. Los
datos de contraseñas que no se definan para un usuario adoptarán por defecto los
valores por defecto del sistema almacenados en el archivo /tcb/files/auth/
system/default.
Responsabilidades del usuario 205
La base de datos protegida de contraseñas contiene muchas entradas de autenticación
del usuario. Consulte la página de manual de prpwd(4) para ampliar la información
sobre dichas entradas, que incluyen:
•
El nombre de usuario y el número de identificación de usuario
•
Una contraseña cifrada
•
El propietario de la cuenta
•
La autenticación de inicio para permitir que usuarios especificados puedan iniciar
el sistema; consulte la página de manual de security(4).
•
El número de identificación de auditoría y el indicador de auditoría del usuario
(define si la auditoría está activada o no)
•
El intervalo de tiempo mínimo entre los cambios de contraseña
•
La longitud máxima de la contraseña
•
La fecha de caducidad de la contraseña (después de la cual debe cambiarse la
contraseña)
•
La duración de la contraseña (a su conclusión, la cuenta se bloquea)
•
La fecha de las últimas modificaciones fructuosas e infructuosas de la contraseña
•
La hora (fecha) ineludible a la que caduca la cuenta
•
El tiempo máximo que se permite entre inicios de sesión antes de bloquear la cuenta
•
El número de días previos a la fecha de caducidad en que se mostrará un mensaje
de advertencia
•
La generación de contraseñas por parte del usuario o por parte del sistema
•
La comprobación de denominación común de contraseñas para evitar que se utilicen
como contraseñas palabras demasiado comunes o términos muy conocidos
•
El tipo de contraseñas generadas por el sistema
•
Las contraseñas nulas
•
El número de identificación de usuario de la última persona que cambió la
contraseña (si no es el propietario de la cuenta)
•
Los intervalos durante los cuales esta cuenta se puede utilizar para iniciar una sesión
•
La identificación del terminal o los sistemas host remotos asociados a los últimos
inicios de sesión fructuosos e infructuosos en esta cuenta
•
El número de intentos de inicio de sesión infructuosos (se borra al producirse un
inicio de sesión fructuoso)
•
El número máximo de intentos de inicio de sesión permitidos antes de bloquear la
cuenta
206 Sistemas de confianza
A.3.2 Selección y generación de contraseñas
En los sistemas de confianza, se dispone de las siguientes opciones para generar
contraseñas:
•
Contraseñas generadas por el usuario.
Se facilita una opción de filtrado de las contraseñas para comprobar el uso de
nombres de inicio de sesión y grupo, permutaciones de nombres de inicio de sesión
y grupo, y palíndromos.
Una contraseña nueva y la antigua deben diferir en al menos tres caracteres.
•
Contraseñas generadas por el sistema sólo mediante la combinación de letras.
•
Contraseñas generadas por el sistema mediante la combinación de letras, números
y caracteres de puntuación.
•
Contraseñas generadas por el sistema mediante la combinación de sílabas
pronunciables sin sentido.
Se pueden definir las opciones de generación de contraseñas para un sistema. También
se pueden definir opciones de generación de contraseñas en función de cada usuario,
lo que anula la definición por defecto del sistema.
Se debe definir al menos una opción de generación de contraseñas para cada usuario.
Si un usuario dispone de más de una opción, cuando dicho usuario cambie la contraseña,
se mostrará un menú de generación de contraseñas.
A.3.3 Caducidad de las contraseñas
Se puede habilitar o deshabilitar la caducidad de las contraseñas para cada usuario.
Cuando la caducidad de las contraseñas está habilitada, el sistema conserva los
siguientes datos en relación con la contraseña:
Intervalo mínimo
El intervalo mínimo obligatorio que debe transcurrir
entre los cambios de contraseña. Esto impide que un
usuario cambie la contraseña y, acto seguido, dé
marcha atrás para evitar tener que memorizar la
contraseña nueva.
Fecha de caducidad
Una fecha después de la cual un usuario debe cambiar
la contraseña en el momento del inicio.
Fecha de advertencia
La fecha anterior a la fecha de caducidad en que se
emitirá un mensaje de advertencia.
Duración
Intervalo al final del cual la cuenta asociada a la
contraseña se bloquea si la contraseña no se cambia.
Una vez bloqueada una cuenta, el único con capacidad
para desbloquearla es el administrador del sistema.
Una vez desbloqueada la cuenta, antes de que el
usuario pueda iniciar una sesión en ella, la contraseña
aún debe cambiarse.
Responsabilidades del usuario 207
Los valores de fecha de caducidad y duración se restablecen al cambiar una contraseña.
Un valor de duración igual a cero indica que las contraseñas no caducan; en este caso,
los demás valores de caducidad de contraseñas no tienen ningún efecto.
A.3.4 Historial y reutilización de las contraseñas
Se puede habilitar la característica de historial de contraseñas en todo el sistema con
el fin de disuadir a los usuarios de que reutilicen contraseñas anteriores.
La comprobación de la reutilización de contraseñas se habilita definiendo el atributo
PASSWORD_HISTORY_DEPTH en el archivo /etc/default/security:
PASSWORD_HISTORY_DEPTH=n
donde n es un número entero que indica el número de contraseñas anteriores para
comprobar.
Cuando un usuario cambia la contraseña, esta nueva contraseña se coteja con las n
contraseñas anteriores empezando por la actual. Si el sistema encuentra una
coincidencia, rechazará la contraseña nueva. Si n es igual a 2, se impide que los
usuarios alternen entre dos contraseñas.
Para obtener más información, consulte las páginas de manual de passwd(1) y security(4).
A.3.5 Control del acceso en función del tiempo
En los sistemas de confianza, se pueden precisar para cada usuario horas del día y
días de la semana en los que se le permite iniciar una sesión. Cuando un usuario intente
iniciar una sesión fuera del tiempo de acceso permitido, el suceso se registrará (si se
ha habilitado la auditoría para los intentos de inicio de sesión fructuosos e infructuosos)
y el inicio de sesión se interrumpirá. Los superusuarios pueden iniciar una sesión fuera
del tiempo de acceso permitido, pero el suceso se registra. El margen permitido de
tiempos de acceso se almacena en la base de datos protegida de contraseñas para los
usuarios y se puede definir con la interface HP SMH. Los usuarios que tengan una sesión
iniciada cuando se agote un margen no serán desconectados.
A.3.6 Control del acceso en función del dispositivo
En los sistemas de confianza, se puede especificar una lista de usuarios con permiso de
acceso para cada puerto MUX y puerto DTC dedicado. Cuando la lista asociada a un
dispositivo es nula, se permite el acceso a todos los usuarios.
La información de acceso a los dispositivos se almacena en la base de datos de
asignación de dispositivos, /tcb/files/devassign, que contiene una entrada para
cada dispositivo de terminal que contenga el sistema de confianza. Un campo de la
entrada enumera los usuarios con permiso de acceso al dispositivo.
La información de inicio de sesión en los terminales de un sistema de confianza se
almacena en la base de datos de control de los terminales, /tcb/files/ttys, que
facilita los siguientes datos para cada uno de ellos:
208 Sistemas de confianza
•
El nombre de dispositivo
•
•
El número de identificación de usuario del último usuario que haya iniciado con
éxito una sesión en el terminal
La hora del último inicio de sesión fructuoso en el terminal
•
La hora del último inicio de sesión infructuoso en el terminal
•
El número de inicios de sesión infructuosos y consecutivos antes de producirse el
bloqueo del terminal
El indicador del bloqueo del terminal
•
Los superusuarios son los únicos que pueden obtener acceso a estas bases de datos de
los sistemas de confianza y definir las entradas con HP SMH. Consulte las páginas de
manual de devassign(4) y ttys(4).
A.3.7 Manejo de las bases de datos de un sistema de confianza
Las rutinas de las bibliotecas descritas en las siguientes páginas de manual se pueden
utilizar para obtener acceso a la información que contienen los archivos de contraseñas
y otras bases de datos de los sistemas de confianza:
getdvagent(3)
Maneja las entradas de dispositivo contenidas en el archivo /tcb/
files/devassign.
getprdfent(3)
Maneja los valores por defecto del sistema contenidos en el archivo
/tcb/files/auth/system/default.
getprpwent(3)
Obtiene las entradas de contraseñas del archivo /tcb/files/
auth/.
getprtcent(3)
Maneja la base de datos de control de acceso a terminales: /tcb/
files/ttys.
getpwent(3C)
Obtiene las entradas de contraseñas del archivo /etc/passwd.
putpwent(3C)
Escribe las entradas del archivo de contraseñas en el archivo
/etc/passwd.
getspwent(3X)
Obtiene las entradas de contraseñas del archivo /tcb/files/
auth/ (a efectos de compatibilidad retroactiva).
putspwent(3X)
Escribe las entradas de contraseñas en el archivo /tcb/files/
auth/ (a efectos de compatibilidad retroactiva).
putprpwnam(3)
Escribe las entradas del archivo de contraseñas en el archivo
/tcb/files/auth/.
A.4 Pautas para realizar copias de seguridad y recuperaciones de confianza
A continuación, se indican algunas pautas para realizar copias de seguridad y
recuperaciones en sistemas de confianza:
•
Utilice sólo los comandos fbackup y frecover para realizar copias de seguridad
y recuperar archivos de forma selectiva. Los comandos fbackup y frecover son
los únicos que retienen las listas de control de acceso (ACL). Utilice la opción -A
de estos comandos cuando realice una copia de seguridad de los archivos y los
A.4 Pautas para realizar copias de seguridad y recuperaciones de confianza 209
recupere para utilizarlos en sistemas que no apliquen listas ACL. Para obtener más
información, consulte las páginas de manual de fbackup(1M) y frecover(1M).
210
•
Si prevé recuperar los archivos en otro sistema, asegúrese de que el nombre de
usuario del propietario y el nombre de grupo concuerdan en ambos sistemas.
•
No olvide que los medios de copia de seguridad contienen datos confidenciales.
Restrinja el acceso a los medios a los casos de necesidad probada.
•
Etiquete las cintas de copia de seguridad y almacénelas en lugar seguro. El
almacenamiento fuera de las instalaciones ofrece la máxima seguridad. Guarde
los archivos durante un mínimo de seis meses y, al cumplirse el plazo, recicle los
medios.
•
Aplique los procedimientos adecuados para limpiar los medios magnéticos y eliminar
los datos antes de volver a utilizarlos.
•
Realice copias de seguridad incrementales diarias y copias de seguridad completas
semanales.
Sincronice el programa de copia de seguridad con el flujo de información de la
empresa. Por ejemplo, si se actualiza una base de datos importante todos los viernes,
podría programar la copia de seguridad semanal para los viernes por la noche.
•
Si en el momento debido debe hacerse una copia de seguridad de todos los
archivos, pida a todos los usuarios que cierren su sesión antes de proceder a realizar
la copia. De todas formas, fbackup le avisa si se cambia un archivo mientras se
realiza la copia de seguridad.
•
Examine el archivo de registro de las copias de seguridad más recientes para
identificar los problemas que se produzcan durante la copia de seguridad. Defina
permisos restrictivos para el archivo de registro de copia de seguridad.
•
El comando frecover permite sobrescribir un archivo. No obstante, el archivo
retiene los permisos de acceso y las listas ACL definidos al realizar la copia de
seguridad del archivo.
•
Debe probar de antemano el proceso de recuperación a fin de asegurarse de que
puede recuperar por completo los datos en el caso de producirse una emergencia.
•
Al recuperar archivos procedentes de otro equipo, es posible que tenga que ejecutar
el comando chown para definir el número de identificación de usuario y la
identificación de grupo para el sistema en el que residan ahora dichos archivos,
si el usuario y el grupo no existen en el sistema nuevo. Si los archivos se recuperan
en un sistema nuevo que no tenga el grupo especificado, los archivos asumen la
propiedad de grupo de la persona que ejecute el comando frecover. Si los
nombres de propietario y grupo tienen significados diferentes en sistemas diferentes,
los resultados de la recuperación pueden ser inesperados.
•
Los errores de alimentación no deberían conllevar la pérdida de archivos. No
obstante, si alguien informa de la pérdida de un archivo después de un error de
alimentación, búsquelo en el directorio /lost+found antes de restaurarlo a partir
de una cinta de copia de seguridad.
Sistemas de confianza
•
Para comprobar el contenido de la cinta desde la que se vaya a realizar la
recuperación, utilice la opción -I del comando frecover para obtener una vista
preliminar del índice de archivos de la cinta. No obstante, tenga en cuenta que la
copia de seguridad mantiene intactos los permisos existentes de un sistema de
archivos; frecover impide la lectura del archivo si los permisos de acceso del
archivo lo prohíben.
•
No recupere nunca ningún archivo crítico, como /etc/passwd, ni los que contenga
/tcb/files. En su lugar, restaure el archivo en un directorio temporal (no utilice
/tmp) y conceda a este directorio permisos drwx------, lo que impide que nadie
más lo utilice. Compare los archivos restaurados con los archivos que hayan de
reemplazarse. Efectúe los cambios necesarios.
•
La auditoría no se activa automáticamente después de recuperar el sistema.
Asegúrese de que la habilita con el comando audsys.
A.4 Pautas para realizar copias de seguridad y recuperaciones de confianza
211
212
B Otros productos de seguridad
Este apéndice menciona otros productos de seguridad que hay disponibles para HP-UX.
Puede descargar estos productos gratuitamente desde el almacén de software de HP en
http://www.hp.com/go/softwaredepot.
B.1 HP-UX HIDS
El sistema de detección de intrusos en sistemas host HP-UX HIDS (HP-UX Host Intrusion
Detection System) permite a los administradores de la seguridad supervisar, detectar y
responder a ataques de forma proactiva en la red, como sigue:
•
Protege tanto contra marcos hipotéticos de ataque existentes como contra algunos
marcos hipotéticos todavía no conocidos. Busca pautas que indiquen infracciones
de seguridad o un mal uso mediante el análisis de la información sobre la actividad
del sistema obtenida de diversas fuentes de datos. Algunas de estas actividades
ilícitas son: un pirata informático que intenta entrar en el sistema o interrumpirlo,
actividades subversivas de «infiltrados» o alguien que intenta propagar un virus.
•
Detecta mejoras de productos de la seguridad local en los sistemas host integrantes
de la red. Controla automáticamente cada sistema host configurado en la red a fin
de detectar indicios de intrusiones no deseadas y potencialmente perjudiciales. De
no existir este control, puede producirse la pérdida de la disponibilidad de sistemas
clave o verse comprometida la integridad del sistema. HP-UX HIDS avisa de muchos
tipos de ataques.
•
Proporciona una protección continua tanto contra marcos hipotéticos de ataque
existentes como contra marcos hipotéticos no conocidos, a diferencia de otros
sistemas de detección de intrusos. Utiliza plantillas de detección para detectar a
los intrusos. Estas plantillas de detección constituyen los bloques componentes que
permiten identificar los tipos básicos de actividades no autorizadas en el sistema
o de ataques contra la seguridad que sufren habitualmente las redes de las empresas.
•
Notifica actividades sospechosas que puedan ser preludio de un ataque. Por el
contrario, otros sistemas de detección de intrusos se basan totalmente en un análisis
iniciado por el operador de los archivos de registro del sistema. Normalmente, el
operador analiza estos archivos del sistema al final del día. Este retardo en el
análisis del ataque permite un tiempo considerable para que el sistema sufra daños.
B.2 Parches de seguridad
HP-UX Software Assistant (SWA) es una herramienta basada en la línea de comandos
que consolida y simplifica la administración de parches y la administración de boletines
de seguridad en los sistemas HP-UX. La herramienta SWA es una novedad de las
revisiones de HP-UX a partir de enero de 2007, sustituyendo a Security Patch Check
(SPC), y es la utilidad cuyo uso recomienda HP para mantenerse actualizado en relación
con los boletines de seguridad publicados por HP para el software HP-UX.
B.1 HP-UX HIDS
213
HP ofrece parches de software actualizados para los problemas de seguridad conocidos
que posibilitan el acceso no autorizado al directorio raíz del sistema. Para obtener más
información, consulte el Capítulo 1.
B.3 HP-UX IPFilter
HP-UX IPFilter es un servidor de seguridad de sistemas que filtra los paquetes IP para
controlar el flujo de los paquetes que entran y salen de un equipo. Actúa como defensa
de la seguridad al reducir el número de puntos vulnerables en un equipo.
B.4 HP-UX Secure Shell
HP-UX Secure Shell utiliza «hashing» para garantizar la integridad de los datos e incluye
características para la creación de túneles seguros, el reenvío a través de puertos y un
agente SSH para mantener las claves privadas en el cliente.
HP-UX Secure Shell permite iniciar sesiones seguras en otro sistema a través de la red
y ejecutar comandos en un sistema remoto, así como trasladar archivos de un sistema
a otro. HP-UX Secure Shell proporciona un conjunto de comandos que sustituyen a
comandos no seguros, como rlogin, rsh, rcp, ftp y telnet. Asimismo, HP-UX
Secure Shell protege la red contra los siguientes riesgos para la seguridad:
Simulación de direcciones IP
Técnica empleada para obtener acceso no
autorizado a los equipos. Un intruso envía
mensajes a un equipo con una dirección IP que
indica que el mensaje procede de un host de
confianza.
Escucha furtiva
Búsqueda de contraseñas, números de tarjetas
de crédito o secretos comerciales en un sistema.
Piratería
Técnica empleada para apropiarse de la
comunicación por la red de manera que el
agresor pueda inspeccionar y modificar los datos
transmitidos entre las partes comunicantes.
214
Otros productos de seguridad
Glosario
3DES
Norma de cifrado triple de datos. Algoritmo de cifrado de bloques de claves
simétricas que cifra los datos tres veces, con una clave de 56 bits distinta cada
vez (168 bits para claves). 3DES resulta adecuado para el cifrado masivo de
datos.
ACL
Sigla en inglés de Access Control List (Lista de control de acceso). Lista o base
de datos que define los recursos a los que pueden tener acceso los usuarios u
otros principales, así como el tipo de acceso permitido.
AES
Sigla en inglés de Advanced Encryption Standard (Norma de cifrado avanzado).
Algoritmo de cifrado de bloques de claves simétricas. HP-UX IPSec admite AES
con una clave de 128 bits. AES resulta adecuado para el cifrado masivo de
datos.
AH
Sigla en inglés de Authentication Header (Encabezado de autenticación). AH
ofrece la autenticación en el sistema con integridad de los datos y puede
proporcionar protección contra reproducciones. AH forma parte de la serie de
protocolos IPsec.
ataque «man-in-the-middle» (hombre en el medio)
Ver ataque de terceros.
ataque de
denegación de
servicio
Ataque que impide que un sistema responda a los paquetes de red, por lo que
el sistema no puede atender las solicitudes. Los ataques de denegación de servicio
pueden producirse inundando un sistema vulnerable de solicitudes falsas que
consuman gran cantidad de recursos. Estos ataques se combinan a menudo con
la simulación de host para impedir que el host que sufre el ataque (el host con
la dirección IP que el simulador está asumiendo) participe en el intercambio entre
el simulador y el sistema al que está intentando tener acceso el simulador.
ataque de
desbordamiento
del búfer
Método para atacar un sistema que consiste en provocar errores de proceso o
en hacer que un proceso ejecute código malintencionado. El ataque suele
conseguirse desbordando un búfer de entrada en la pila. Esto ocasiona una
infracción de la memoria u otro tipo de error que provoca que el proceso se
interrumpa o que ejecute código malintencionado. Ver también ataque de
desbordamiento del búfer en la pila.
ataque de
desbordamiento
del búfer en la
pila
Método de ataque a un sistema que causa que un proceso ejecute código
malintencionado. El ataque suele conseguirse desbordando un búfer de entrada
en la pila para insertar código malintencionado y modificando posteriormente
el puntero de la pila para ejecutar dicho código. Ver también ataque de
desbordamiento del búfer.
ataque de
terceros
En un ataque de terceros, el agresor intercepta paquetes entre las dos partes
agredidas, A y B. A y B creen que están intercambiando mensajes entre sí, pero
en realidad están intercambiando mensajes con el tercero. El agresor asume la
identidad de A para intercambiar mensajes con B y la identidad de B para
intercambiar mensajes con A. También recibe el nombre de ataque
«man-in-the-middle» (hombre en el medio).
auditoría
Registro selectivo de sucesos con el propósito de analizar y detectar infracciones
de seguridad. El sistema de auditoría de HP-UX incluye un mecanismo para
auditar usuarios y procesos.
215
autenticación
Proceso que comprueba la identidad de un sujeto (usuario, sistema host,
dispositivo u otra entidad en una red de equipos). A menudo se trata de un
requisito previo para permitir el acceso a los recursos de un sistema. También
permite comprobar la integridad de los datos o la identidad de la parte que los
envía.
autenticación
desafíorespuesta
Forma de autenticación según la cual el autenticador envía un valor aleatorio
(el desafío) al usuario o principal sometido a autenticación. El usuario devuelve
una respuesta basada en el valor de desafío y un valor secreto compartido
previamente establecido con el autenticador, por ejemplo, un valor hash MD5.
A diferencia del intercambio normal de contraseñas, el diálogo desafío-respuesta
varía, para que así un intruso no pueda reproducir la respuesta del usuario para
obtener autenticación.
autorización
Proceso que evalúa la información de control del acceso y determina si un sujeto
(usuario, sistema host, dispositivo u otra entidad en una red de equipos) está
autorizado para realizar una operación en un determinado recurso u objeto. Se
suele efectuar después de que se autentique la identidad de un sujeto.
En el contexto de RBAC, la autorización se refiere específicamente a la unión
de una operación y un objeto, y también se denomina permiso. Ver RBAC.
216
Glosario
CA
Sigla en inglés de Certificate Authority (Entidad emisora de certificados). Tercero
de confianza que autentica usuarios y emite certificados. Además de establecer
una relación de confianza en la vinculación entre la clave pública de un usuario
y otro tipo de información relativa a la seguridad contenida en un certificado,
la entidad emisora de certificados firma digitalmente la información del certificado
con su clave privada.
cárcel chroot
Método que restringe los archivos y directorios a los que tiene acceso un proceso
y los usuarios de dicho proceso. El proceso se inicia en un directorio base
especificado (la raíz) y no puede tener acceso a ningún directorio o archivo que
esté por encima del directorio raíz.
carga de
seguridad
encapsuladora
Ver ESP.
certificado
Un certificado de seguridad asocia (o vincula) una clave pública a un principal
(persona concreta, sistema, dispositivo u otra entidad). Este tipo de certificados
son emitidos por una entidad, en la que confían los usuarios y que recibe el
nombre de entidad emisora de certificados (CA), la cual garantiza o confirma
la identidad del titular (persona, dispositivo u otra entidad) de la clave privada
correspondiente. La entidad emisora de certificados firma digitalmente el
certificado con su clave privada, de manera que el certificado se pueda
comprobar utilizando su clave pública. El formato más habitual de certificados
con claves públicas es la norma X.509, versión 3, de la Organización
Internacional de Normalización (ISO).
certificado de
seguridad
Ver certificado.
cifrado
Proceso que convierte los datos de un formato legible a un formato no legible
para su confidencialidad. Las funciones de cifrado normalmente utilizan los datos
y una clave de cifrado (secuencia de valores o bits) como entrada.
clave
previamente
compartida
Clave de cifrado acordada previamente por dos sistemas para el cifrado o la
autenticación. La clave se intercambia antes de la comunicación de los datos
informáticos, normalmente mediante un intercambio de claves fuera de banda
(como el intercambio verbal o presencial). Ver también criptografía de claves
compartidas.
claves
manuales
Claves de cifrado configuradas manualmente para IPSec. Consisten en una
alternativa al uso del protocolo de intercambio de claves de Internet (IKE) para
generar claves de cifrado y otra información para las asociaciones de seguridad
(SA) de IPSec.
compartimentos
Método que permite aislar entre sí diversos componentes del sistema. Si están
configurados correctamente, los componentes constituyen un método eficaz para
proteger el sistema HP-UX y los datos que éste contiene.
confidencialidad directa perfecta (PFS - Perfect Forward Secrecy)
Con la confidencialidad directa perfecta, la exposición de una clave permite
únicamente el acceso a los datos protegidos por dicha clave.
contención
Mecanismo o conjunto de mecanismos para restringir los derechos de acceso
de los procesos.
En el contexto de RBAC, la contención combina el control de acceso obligatorio
y los privilegios expresos. Ver RBAC.
contraseña
oculta
Estructura que proporciona seguridad adicional a las contraseñas de los usuarios.
La estructura de la contraseña oculta (spwd) contiene contraseñas de usuario
cifradas y otra información utilizada con esta estructura. La estructura de la
contraseña oculta se almacena en un archivo que normalmente sólo es legible
para los usuarios con privilegios.
criptografía
Proceso de codificación de datos normales (o texto no cifrado) para que sólo
puedan descodificarlos los propietarios de información específica.
criptografía de claves asimétricas
Ver criptografía de claves públicas.
criptografía de
claves
compartidas
Método de cifrado en el que las dos partes utilizan la misma clave (las dos partes
comparten la misma clave) para cifrar o autenticar datos. Para proporcionar la
confidencialidad o autenticación de los datos, sólo las dos partes pueden conocer
el valor de la clave (la clave debe ser privada). La criptografía de claves
compartidas resulta más eficaz que la criptografía de claves públicas-privadas
para cifrar los datos, por lo que se utiliza a menudo para el cifrado masivo de
datos. No obstante, para distribuir o establecer la clave compartida se requiere
un intercambio de claves fuera de banda (como el intercambio verbal o
presencial), el intercambio Diffie-Hellman u otro mecanismo.
También recibe el nombre de criptografía de claves privadas o criptografía de
claves simétricas.
criptografía de
claves privadas
Ver criptografía de claves compartidas.
criptografía de
claves públicas
Método de cifrado que utiliza dos claves relacionadas matemáticamente (por
ejemplo, k1 y k2) de manera que los datos cifrados con k1 se pueden descifrar
sólo con k2. Además, la mayoría de los algoritmos garantizan que sólo el
propietario de k1 puede cifrar correctamente los datos que se pueden descifrar
con k2.
217
Una de las claves debe ser privada (sólo la conoce el propietario), pero la
segunda puede ser muy conocida (pública), lo que permite administrar fácilmente
la distribución de claves. El cifrado de claves públicas es costoso desde el punto
de vista computacional, por lo que no resulta práctico para el cifrado masivo de
datos. En su lugar, se suele utilizar la criptografía de claves públicas para
autenticar los datos.
También recibe el nombre de criptografía de claves asimétricas (las dos claves
son distintas) o criptografía de claves públicas-privadas.
criptografía de claves públicas-privadas
Ver criptografía de claves privadas.
criptografía de claves simétricas
Ver criptografía de claves compartidas.
CRL
Sigla en inglés de Certificate Revocation List (Lista de revocación de certificados).
Los certificados se emiten con una duración determinada, definida por una
fecha/hora de inicio y una fecha/hora de caducidad. No obstante, pueden
darse situaciones, como un valor de clave comprometido, en las que sea necesario
revocar el certificado. En este caso, la entidad emisora de certificados puede
revocar el certificado. Para ello, se incluye el número de serie del certificado en
una lista de revocación de certificados actualizada y publicada periódicamente
por la entidad emisora de certificados y facilitada para certificar usuarios. Ver
CA.
DES
Sigla en inglés de Data Encryption Standard (Norma de cifrado de datos). Utiliza
una clave de 56 bits para el cifrado de bloques de claves simétricas. La norma
de cifrado de datos resulta adecuada para el cifrado masivo de datos.
La norma de cifrado de datos ha sido convertida (un tercero ha descodificado
los datos codificados con esta norma).
DIAMETER Base
Protocolo que ofrece servicios de autenticación, autorización y contabilidad
(AAA - Authentication, Authorization, Accounting) basándose en el protocolo
RADIUS. El protocolo DIAMETER proporciona la misma funcionalidad que RADIUS,
pero con mejoras en confiabilidad, seguridad e infraestructura. Ver también
RADIUS.
Diffie-Hellman
Método de clave pública para generar una clave simétrica según el cual dos
partes pueden intercambiar públicamente valores y generar la misma clave
simétrica. Se comienza con el primo p y el generador g, que pueden ser
conocidos por el público (normalmente, estos números proceden de un grupo
Diffie-Hellman muy conocido). Cada parte selecciona un valor privado (a y b) y
genera un valor público (g**a mod p) y (g**b mod p). Ambas partes
intercambian los valores públicos. Posteriormente, cada parte utiliza su valor
privado y el valor público de la otra parte para generar la misma clave simétrica,
(g**a)**b mod p y (g**b)**a mod p, que ambas evalúan como g**(a*b)
mod p para la comunicación en el futuro.
El método Diffie-Hellman debe combinarse con la autenticación para evitar
ataques «man-in-the-middle» (hombre en el medio) o de terceros (simulación).
Por ejemplo, se puede utilizar el método Diffie-Hellman con la autenticación
mediante certificados o claves previamente compartidas.
218
Glosario
directiva IPSec
Las directivas IPSec especifican las reglas para la transferencia segura de los
datos. Estas directivas contienen generalmente información del filtro de paquetes
y una acción. El filtro de paquetes se utiliza para seleccionar una directiva para
un paquete y la acción se aplica a los paquetes que utilizan esa directiva.
EAP
Sigla en inglés de Extensible Authentication Protocol (Protocolo de autenticación
extensible). Protocolo que proporciona un marco para utilizar varios protocolos
y métodos de autenticación, entre ellos, las contraseñas, Kerberos y protocolos
de desafío-respuesta.
encabezado de
autenticación
Ver AH.
entidad emisora de certificados
Ver CA.
ESP
Sigla en inglés de Encapsulating Security Payload (Carga de seguridad
encapsuladora). Forma parte de la serie de protocolos IPsec. ESP proporciona
confidencialidad (cifrado) y un servicio contra reproducciones. Debe utilizarse
con la autenticación, ya sea con el campo de autenticación ESP opcional (ESP
autenticado) o anidado en un mensaje con encabezado de autenticación. ESP
autenticado también proporciona la autenticación del origen de los datos, así
como la integridad sin conexión. Cuando se utiliza en el modo de túnel, ESP
también proporciona confidencialidad con límite del flujo de tráfico.
filtro
Mecanismo que permite filtrar los objetos no deseados o los parámetros que
especifican los objetos a los que se permite o se deniega el acceso. Normalmente
se utiliza un filtro para filtrar los paquetes de red no deseados (un filtro de
paquetes).
filtro de
paquetes
Filtro utilizado para seleccionar o restringir los paquetes de red. Los filtros de
paquetes especifican las características de los paquetes de red. Estos filtros
normalmente especifican las direcciones IP de origen y destino, los protocolos
de capas superiores (como TCP o UDP) y los números de puertos TCP o UDP.
Asimismo, estos filtros pueden definir otros campos de paquetes, como los tipos
de encabezados IPv6, los tipos de mensajes de capas superiores (por ejemplo,
los tipos de mensajes ICMP) y los estados de conexión TCP.
filtro de
paquetes con
estado
Tipo de filtrado de paquetes que utiliza campos de protocolos de capas superiores
e información de estado, como los estados de conexión TCP.
firma digital
Las firmas digitales constituyen una variante de los algoritmos hash que utilizan
pares de claves pública/privada. El remitente utiliza su clave privada y los datos
como entrada para crear un valor de firma digital.
función
Función del trabajo, dentro del contexto de una empresa, con semántica asociada
respecto a la autoridad y la responsabilidad dada a los usuarios que tienen
asignada la función.
HMAC
Sigla en inglés de Hashed Message Authentication Code (Código de autenticación
de mensajes indexados por tabla de dispersión (hashed)). Ver también MAC.
host bastión
Sistema computacional que protege una red interna contra los intrusos. Ver
también servidor de seguridad y sistema fortalecido.
IKE
El protocolo de intercambio de claves de Internet (IKE - Internet Key Exchange)
forma parte de la serie de protocolos IPsec. IKE se utiliza antes de los intercambios
del protocolo ESP o AH de IPsec para determinar los servicios de cifrado y/o
219
autenticación que se van a utilizar. IKE también administra la distribución y
actualización de las claves de cifrado simétricas (compartidas) que utilizan los
protocolos ESP y AH. Ver también ESP y AH.
intercambio de
claves fuera de
banda
Intercambio de claves mediante un canal de comunicación seguro que no
pertenece a los canales de comunicación habituales de los equipos, como una
reunión presencial o una llamada telefónica.
Kerberos
Protocolo de autenticación de red diseñado para proporcionar una autenticación
severa para aplicaciones cliente o servidor. Kerberos permite a los usuarios
autoautenticarse sin transmitir contraseñas no cifradas a través de la red.
LDAP
El protocolo LDAP (Lightweight Directory Access Protocol - Protocolo ligero de
acceso a directorios) proporciona acceso a los directorios de la red. LDAP utiliza
una estructura de directorios parecida al servicio de directorios OSI X.500, pero
almacena los datos como cadenas y usa la pila de red TCP/IP en lugar de la
pila de red OSI.
lista de revocación de certificados
Ver CRL.
MAC
Un código de autenticación de mensajes (MAC - Message Authentication Code)
consiste en una etiqueta de autenticación (también llamada suma de
comprobación) obtenida de aplicar un algoritmo de autenticación, junto con una
clave secreta, a un mensaje. Los MAC se computan y comprueban con la misma
clave de manera que sólo puedan ser comprobados por el destinatario específico,
a diferencia de las firmas digitales.
Los MAC basados en una función hash (HMACS) utilizan una o varias claves
junto con una función hash para generar una suma de comprobación que se
adjunta al mensaje. Un ejemplo es el método MD5 con claves para la
autenticación de mensajes.
Los MAC también pueden obtenerse de codificadores de bloques. Los datos se
cifran en bloques de mensajes con DES CBC y el bloque final en el texto cifrado
se utiliza como la suma de comprobación. El MAC DES-CBC es una norma de
uso generalizado en EE. UU. y en el ámbito internacional.
MD5
Message Digest-5. Algoritmo de autenticación desarrollado por RSA. MD5 genera
una síntesis del mensaje de 128 bits con una clave de 128 bits. IPSec trunca la
síntesis del mensaje a 96 bits.
módulo de autenticación enchufable
Ver PAM.
NAT
Sigla en inglés de Network Address Translation (Conversión de direcciones de
red). Método que permite que varios sistemas de una red privada interna
compartan una dirección IP de Internet pública. Una puerta de enlace NAT
reemplaza (convierte) los puertos y las direcciones IP internas por su dirección
IP pública al reenviar paquetes desde la red interna a la red Internet pública, y
realiza la traducción inversa para la ruta de retorno.
norma de cifrado de datos
Ver DES.
objeto
220 Glosario
Recurso de la red o el sistema, por ejemplo, un sistema, un archivo, una
impresora, un terminal o un registro de base de datos. En lo que respecta a la
autorización, ésta se concede para la operación de un sujeto sobre un objeto.
operación
Modo específico de acceso a uno o varios objetos. Por ejemplo, escribir en un
archivo. En lo que respecta a la autorización, ésta se concede para la operación
de un sujeto sobre un objeto.
PAM
Sigla en inglés de Pluggable Authentication Module (Módulo de autenticación
enchufable). Consiste en un marco de autenticación que permite a los
administradores de sistemas configurar servicios de autenticación y administración
de cuentas, sesiones y contraseñas para las utilidades de HP-UX, como la utilidad
de inicio de sesión en el sistema.
principal
Persona, sistema, dispositivo u otra entidad.
privilegio
Permiso para realizar una acción en un sistema computacional.
privilegio
expreso
Permiso para realizar una operación específica de nivel inferior (por ejemplo,
permiso para ejecutar una determinada llamada del sistema).
protocolo de autenticación extensible
Ver EAP.
RADIUS
El protocolo de servicio de usuario de acceso telefónico de autenticación remota
(RADIUS - Remote Authentication Dial-In User Service) es ampliamente utilizado
y se implementa para administrar el acceso a los servicios de red. Este protocolo
define una norma para el intercambio de información entre un dispositivo de
acceso a la red y un servidor de autenticación, autorización y contabilidad (AAA)
para realizar operaciones de autenticación, autorización y contabilidad. Un
servidor AAA RADIUS puede administrar los perfiles de usuario para la
autenticación (comprobar el nombre de usuario y la contraseña), información
de configuración que especifica el tipo de servicio que se va a proporcionar y
las directivas que se van a aplicar que pueden restringir el acceso de los usuarios.
El protocolo RADIUS proporciona únicamente el marco para el intercambio de
autenticación y se puede utilizar con numerosos métodos de autenticación.
RBAC
Sigla en inglés de Role-Based Access Control (Control del acceso según la
función). Mecanismo de HP-UX para aportar acceso expreso a los recursos del
sistema, los comandos y las llamadas de sistema. Se asignan funciones a los
usuarios y éstos obtienen privilegios de acceso según dichas funciones.
relación de
confianza
transitiva
Ampliación de una relación de confianza a través de otras entidades de
confianza. Si A y B confían en C, A y B pueden tener confianza mutua mediante
una relación de confianza transitiva a través de C. En una estructura jerárquica,
A y B pueden entablar una relación de confianza transitiva si pueden establecer
una cadena de confianza con una raíz común.
Role-Based
Access Control
Ver RBAC.
RSA
Rivest, Shamir y Adelman. Sistema de cifrado de claves públicas-privadas que
se puede utilizar para la confidencialidad (cifrado) y la autenticación (firmas).
En lo que respecta al cifrado, el sistema A puede enviar datos cifrados con la
clave pública del sistema B. Sólo la clave privada del sistema B puede descifrar
los datos. En lo que respecta a la autenticación, el sistema A envía los datos con
una firma digital, una síntesis o un hash cifrados con la clave privada del sistema
A. Para comprobar la firma, el sistema B utiliza la clave pública del sistema A
para descifrar la firma y comparar la síntesis o el hash descifrados con la síntesis
o el hash que computa para el mensaje.
221
222 Glosario
SASL
Sigla en inglés de Simple Authentication and Security Layer (Nivel de autenticación
y seguridad simples). Protocolo utilizado para agregar servicios de autenticación
a aplicaciones de red basadas en conexiones. La interface API de SASL
proporciona un marco flexible que permite a los programadores utilizar una
interface común para el acceso a varios servicios de autenticación.
secure shell
Ver SSH.
Secure Sockets
Layer
Ver SSL.
servidor AAA
Servidor de autenticación, autorización y contabilidad (AAA: Authentication,
Authorization, Accounting). Un servidor AAA ofrece servicios de autenticación,
autorización y contabilidad del acceso de los usuarios a la red en los puntos de
entrada a una red. HP-UX proporciona servidores AAA basados en los protocolos
RADIUS y DIAMETER base.
servidor de
seguridad
Uno o varios dispositivos o sistemas computacionales utilizados a modo de
barrera para proteger una red contra usuarios no autorizados o aplicaciones
intrusas perjudiciales. Ver también host bastión y sistema fortalecido.
SHA1
Sigla en inglés de Secure Hash Algorithm-1 (Algoritmo hash seguro-1). Algoritmo
de autenticación que genera una síntesis del mensaje de 160 bits con una clave
de 160 bits.
sistema
fortalecido
Sistema computacional con el número mínimo de características del sistema
operativo, usuarios y aplicaciones que se utiliza a modo de barrera para proteger
una red contra usuarios no autorizados o aplicaciones intrusas perjudiciales.
También recibe el nombre de host bastión.
SSH
Sigla en inglés de Secure Shell. Conjunto de servicios de red que proporciona
sustituciones seguras para el inicio de sesión remoto, la transferencia de archivos
y la ejecución remota de comandos. SSH también incluye características para
la creación de túneles seguros, el reenvío a través de puertos y un agente SSH
para mantener las claves privadas en el cliente.
SSL
Sigla en inglés de Secure Sockets Layer. Protocolo que se utiliza para cifrar datos
de red. El protocolo SSL está por encima de TCP en la pila de datos. SSL utiliza
claves públicas/privadas para la autenticación de principales y el intercambio
de claves privadas (compartidas). Posteriormente, SSL utiliza la clave privada
para cifrar los datos.
suceso
Acción que consiste en, por ejemplo, crear un archivo, abrir un archivo o iniciar
una sesión en el sistema.
sujeto
Usuario, sistema host, dispositivo u otra entidad en una red computacional. En
lo que respecta a la autorización, se refiere al iniciador de una operación sobre
un objeto que requiere una decisión sobre la autorización.
VPN
Sigla en inglés de Virtual Private Network (Red privada virtual). Red privada
incluida en una red pública, como Internet. Una red VPN es virtual porque utiliza
túneles para crear de forma eficaz una red lógica independiente dentro de una
red física. Una red VPN es privada porque los usuarios externos no pueden ver
ni modificar los datos que se transmiten. Las redes VPN que utilizan la
autenticación de la identidad de sistemas host también proporcionan protección
contra la simulación de direcciones IP.
Índice
Símbolos
/dev, archivo especial de dispositivo
consideraciones sobre la seguridad, 117
/etc/d_passwd, archivo
controlar acceso, 56
/etc/default/security, 21
/etc/dialups, archivo
controlar acceso, 56
/etc/ftpd/ftpusers, archivo
cambiar el acceso, 80
/etc/group, archivo, 204
/etc/inetd.sec, archivo, 83
/etc/pam_user.conf, archivo, 32
/etc/pam.conf, archivo, 32
configurar todo el sistema, 34
/etc/passwd, archivo, 201, 203–204
cambiar, 40
cuenta restringida, 27
cuentas de usuario de aplicaciones, 27
ejemplo de seudocuenta, 43
formato, 41
recuperar, 24
/etc/rbac/aud_filter, 199
/etc/rbac/cmd_priv, 175
entradas, 177
/etc/security.dsc, archivo, 46
/etc/shadow, archivo de contraseñas ocultas, 41
/sbin/rc2.d/S760auditing, 202
/tcb/files/auth/, base de datos protegida de contraseñas, 203–
204
/tcb/files/auth/*/*, 202, 205, 208–209
/tcb/files/ttys, 208
/tmp, 211
/var.adm/userdb, archivo, 47, 73
/var/adm/inetd.sec, archivo
configurar, 83
A
acceso
contraseña, 206
control de acceso al terminal, 206
en función del dispositivo, 208
en función del tiempo, 206, 208
acceso a los archivos
definir permisos de acceso, 101
acceso a los directorios
asegurar, 102
acceso al sistema
pautas de seguridad para acceso remoto, 55
acceso al terminal, 206
acceso de los usuarios
administrar, 25
acceso de superusuario
proteger, 58
revisar, 60
supervisar, 59
utilizar Restricted SMH Builder para acceso limitado, 60
acceso remoto
pautas de seguridad para administrar, 55
Access Control Policy Switch, 161
interfaces, 161
personalizar, 182
ACL
comparación de JFS y HFS, 116
copia de seguridad/recuperación de un sistema de confianza,
209
definir, 104
definir HFS, 104
definir JFS, 108
ejemplo de modificación de una lista JFS mínima, 111
entradas JFS por defecto, 113
y NFS, 117
administración de la red
administrar un dominio administrativo, 85
administración de una red, 86
controlar la seguridad de los archivos, 121
administración del sistema
administrar acceso remoto, 55
administrar contraseñas, 38
administrar el acceso de los usuarios, 25
administrar un dominio administrativo, 85
auditar usuarios, 185
autenticar usuarios con PAM, 31
autenticar usuarios durante el inicio de sesión, 28
controlar la seguridad de los archivos en una red, 121
definir atributos de seguridad, 45, 72
definir opciones de seguridad en el momento de la
instalación, 21
evitar ataques de desbordamiento del búfer en la pila, 52
infracciones de seguridad , 20
instalar HP-UX de forma segura, 19
instalar parches de seguridad, 22
manejar los programas setuid y setgid, 49
montar y desmontar un sistema de archivos sin riesgo, 119
pautas de auditoría, 190
pautas de seguridad, 23
proteger acceso de usuario root, 58
proteger el sistema de archivos HP-UX, 99
proteger estaciones de trabajo y terminales sin vigilancia, 53
proteger FTP, 78
proteger inetd, 82
proteger Internet Services, 77
proteger titulares de inicio de sesión, 57
223
usar la autenticación de inicio para impedir el acceso no
autorizado, 21
administrador de bloqueos del entorno CDE
configurar, 55
administrar contraseñas, 38
administrar el acceso a los archivos, 99
administrativo, dominio
administrar, 85
AES (Advanced Encryption Standard - Norma de cifrado
avanzado), 215
AH (Authentication Header - Encabezado de autenticación)
definición, 215
archivo
/etc/group, 204
/etc/passwd, 201, 203–204
archivo de control de red
comprobar permisos, 86, 121
archivo de dispositivo de terminal
proteger, 54
archivo de registro
auditar, 193
archivo de registro auxiliar de auditoría, 194
archivo de registro de auditoría, 193
consultar, 196
racionalizar datos, 198
sobrescribir existente, 195
archivo de registro principal de auditoría, 194
archivo de seguimiento de inicios de sesión, 29
at, comando, 202
atributo de seguridad
definir, 45, 72
audisp, comando
consultar salida del registro de auditoría, 196
auditar
comandos, 186
habilitar, 186
perfil básico, 192
usuarios, 185
auditar suceso, 191
tipo, 193
auditoría
activar después de la recuperación, 24
autenticación, 203
con PAM, 31
durante el inicio de sesión, 28
ejemplo de inicio de sesión de PAM, 37
usar inicio, 21
utilizada por SSH, 92
autenticación basada en claves públicas
utilizada por SSH, 93
y autenticación basada en host, 93
autenticación basada en host
utilizada por SSH, 93
y autenticación basada en claves públicas, 93
autenticación de inicio
utilizar, 21
authadm, 172
224 Índice
ejemplos, 173
sintaxis, 172
autorizaciones, 158
configurar, 172
objeto, 158
operación, 158
B
base de datos de asignación de dispositivos
sistema de confianza, 209
base de datos de contraseñas de un sistema de confianza, 209
base de datos de control de acceso a terminales
sistema de confianza, 209
base de datos protegida de contraseñas
/tcb/files/auth/, 203–204
Bastille (ver HP-UX Bastille)
batch, 202
bit de permanencia
definir, 102
bloqueo de pantalla
configurar, 54
btmp, archivo
realizar seguimiento de inicios de sesión infructuosos, 29
C
CA (entidad emisora de certificados)
definición, 216, 219
campo de contraseña cifrada, 204–205
cárcel chroot, 96
CDE Login Manager
iniciar una sesión, 28
chfn, 205
chmod, comando
cambiar permisos de acceso a los archivos, 101
efecto en las entradas class, 111
chown, 24, 205, 210
chsh, 205
cifrado
definición, 216, 219
claves previamente compartidas
definición, 217, 219, 221
cmdprivadm, 173
ejemplos, 174
sintaxis, 173
comando
login, 204
swlist, 202
compartimentos, 125
activar, 129
crear reglas, 133
modificar reglas, 133
planificar una estructura, 127
regla para la limitación de los privilegios, 140
reglas de interface de red, 139
reglas de red, 137
reglas de sistema de archivos, 134
reglas IPC, 135
solucionar problemas, 141, 152
comprobar permisos en archivos de control de red, 86
conexión móvil
proteger, 56
confidencialidad directa perfecta (PFS - Perfect Forward Secrecy)
definición, 217
conjunto de archivos
SecurityMon, 202
contraseña, 207
administración, 38
archivo
base de datos protegida de contraseñas, 202–203, 206
campos, 204
autenticación
utilizada por SSH, 94
base de datos, 202–203, 206
/tcb/files/auth/, 203–204
caducidad, 203, 205–207
duración, 207
fecha de caducidad, 207
intervalo mínimo, 207
cifrada, 204
cifrada, campo, 204–205
criterios para establecer correctamente, 39
entrada
manipular, 209
generación, 206
historial, 208
integridad, 204
oculta, 41
reutilización, 208
seguridad, 203
tipos, 206
contraseña de confianza, 207
control del acceso en función del dispositivo, 208
control del acceso en función del tiempo, 208
copia de seguridad
pautas de seguridad, 23
sistema de confianza, 201, 209
crontab, 202
cuenta de grupo
administrar, 28
cuenta de invitado
supervisar, 26
cuenta de usuario
restringida, 27
cuenta de usuario root
proteger, 58
cuenta temporal
deshabilitar, 26
CH
chfn, 205
chmod, comando
cambiar permisos de acceso a los archivos, 101
efecto en las entradas class, 111
chown, 24, 205, 210
chsh, 205
D
daños del archivo
localizar y reparar con el comando fsck, 103
de confianza, 207
definir id. de grupo, programa
Ver setgid, programas, 49
definir id. de usuario, programa
Ver setuid, programas, 49
demonio de Internet
Ver inetd, demonio, 81
DES (Data Encryption Standard - Norma de cifrado de datos),
215, 217–218
desmontar un sistema de archivos sin riesgo, 119
Diffie-Hellman, 218
grupo, 218
dominio
administrar uno administrativo, 85
duración
caducidad de contraseña, 207
E
error de alimentación, 24, 210
pérdida de archivos, 24
ESP (Encapsulating Security Payload - Carga de seguridad
encapsuladora)
definición, 219
estación de trabajo
proteger, sin vigilancia, 53
/etc/ftpd/ftpusers, 80
/etc/inetd.sec, 83
/etc/passwd, 24
F
fbackup, comando, 23
copia de seguridad de confianza, 209
fecha de caducidad
caducidad de contraseña, 207
filtro
definición, 219, 221–222
fortalecimiento de la seguridad (ver HP-UX Bastille)
frecover, comando, 23
recuperación de confianza, 209
fsck, comando
reparar daños del archivo, 103
FTP
proteger, 78
proteger anónimo, 79
FTP anónimo
proteger, 79
ftpd, servidor, 80
función
getdvagent, 209
getprdfent, 209
225
getprpwent, 209
getprtcent, 209
getpwent, 209
getspwent, 209
putprpwnam, 209
putpwent, 209
putspwent, 209
funciones
configurar, 170
grupos, 172
pautas para crear, 166
por defecto, 170
G
generador de números aleatorios, 96
generador de números aleatorios robusto, 96
getacl, comando
ver listas ACL, 110
getdvagent, función, 209
getfilexsec, comando, 132, 146
getprdfent, función, 209
getprocxsec, comando, 132, 146
getprpwent, función, 209
getprtcent, función, 209
getpwent, función, 209
getspwent, función, 209
GSS-API
SSH, 92
H
herramienta de cierre (ver HP-UX Bastille)
HFS, 104
HFS, ACL
comandos y llamadas con los que funcionan, 106
comparadas con listas ACL del HFS, 116
definir, 104
y NFS, 117
High Performance File System
Ver HFS, 104
historial
contraseña, 208
host bastión, 61
HP-UX Bastille, 61
archivo de configuración
crear, 62, 64
duplicar, 62
archivos
consultar archivos de registro, 66
ubicación y descripción, 67
consejos y solución de problemas, 69
deriva
comparar estados, 62
obtener acceso al archivo de deriva de configuración, 69
utilizar bastille_drift, 62
descargar, 62
eliminar, 70
226 Índice
informes
generar, 62
obtener acceso a los archivos, 68
instalar, 62
lista de tareas pendientes
llevar a cabo, 64
utilizar, 67
revocación de los cambios, 67
uso interactivo, 63
uso no interactivo, 64
utilizar
interactivamente, 63
no interactivamente, 64
HP-UX RBAC
archivos de configuración, 162
arquitectura, 163
auditoría, 199
comandos, 162
empaquetar, 169
componentes, 160
configurar compartimentos, 177
funcionamiento, 164
páginas de manual, 163
solucionar problemas, 183
usuario por defecto, 171
HP-UX, instalación
consejos sobre la seguridad posterior a la instalación, 23
consideraciones sobre la seguridad, 19
definir opciones de seguridad en el momento de la
instalación, 21
instalar parches de seguridad, 22
prevenir infracciones de seguridad durante el inicio, 20
I
identificación de grupo (gid), 204
IKE (Internet Key Exchange - Intercambio de claves de Internet)
protocolo, 219
indicador de auditoría, 206
inetd, demonio
descripción general, 81
proteger, 82
TCP Wrappers, 83
iniciar
prevenir infracciones de seguridad durante el inicio, 20
instalación de parches
mediante Software Assistant, 22
instalar HP-UX
consejos sobre la seguridad posterior a la instalación, 23
consideraciones sobre la seguridad, 19
definir opciones de seguridad en el momento de la
instalación, 21
instalar parches de seguridad después, 22
prevenir infracciones de seguridad durante el inicio, 20
instalar parches de seguridad
mediante Software Assistant, 22
Internet Services, 77
descripción general, 77
intervalo mínimo
caducidad de contraseña, 207
IPSec, directiva
definición, 219
J
JFS, 104
JFS ACL
ejemplo de modificación de una lista mínima, 111
JFS, ACL
comparadas con listas ACL del JFS, 116
definir, 108
modificar con el comando setacl, 114
utilizar entradas por defecto, 113
y NFS, 117
Journaled File System
Ver JFS, 104
L
last, comando
ejemplos de uso, 30
LDAP, servidor de directorio
asegurar contraseñas almacenadas, 45
lista de control de acceso
Ver ACL, 104
lista de revocación de certificados (CRL), 217–218
llamada a procedimiento remoto
Ver RPC, 84
Logical Volume Manager
Ver LVM, 118
login, comando, 28, 204
lost+found, directorio, 24
LVM, 118
LL
llamada a procedimiento remoto
Ver RPC, 84
M
MAC, 220
medios de copia de seguridad
seguridad, 209
módem, acceso
pautas de seguridad para administrar, 55
modo monousuario
iniciar, 20
montar un sistema de archivos sin riesgo, 119
N
NFS, 121
proteger archivos montados con NFS, 123
proteger el cliente, 122
proteger el servidor, 122
y listas ACL, 117
NIS
asegurar contraseñas almacenadas, 44
nivel de ejecución
cambiar, 53
controlar acceso, 53
nivel de seguridad
elegir durante la instalación, 21
nombre de usuario
crear único, 28
número de autorización, 203
número de identificación de auditoría (aid), 202, 205–206
número de identificación de usuario (uid), 204, 206
O
oculta, contraseña, 41
operaciones
pautas para crear, 167
P
PAM
autenticar usuarios, 31
configurar todo el sistema, 34
descripción general, 32
PAM, autenticación
ejemplo de inicio de sesión, 37
PAM, biblioteca, 33
PAM, módulo de servicios, 32
parámetro
PASSWORD_HISTORY_DEPTH, 208
parche de seguridad
instalar, 22
particiones de disco
consideraciones sobre la seguridad, 118
passwd, comando, 205
ejemplos, 40
PASSWORD_HISTORY_DEPTH, parámetro, 208
permisos
comprobar archivo de control de red, 121
comprobar para archivos de control de red, 86
privedit, 181
opciones, 182
sintaxis, 181
privilegios expresos, 145
configurar, 175
privrun, 178
-p, 176
ejemplos, 180
funcionamiento, 164
opciones, 178
sintaxis, 178
proceso de inicio
obtener, 20
proceso de inicio de sesión
explicación, 28
programa de autoauditoría, 198
propiedad de los archivos
definir, 101
227
protección contra desbordamiento del búfer en la pila, 52
proteger sesiones remotas, 87
prpwd, 206
putprpwnam, función, 209
putpwent, función, 209
putspwent, función, 209
R
recuperación
pautas de seguridad, 23
reutilización
contraseña, 208
roleadm, 170
ejemplos, 170–171
sintaxis, 170
root
inconvenientes, 157
root, acceso
obtener, 20
revisar, 60
supervisar, 59
utilizar Restricted SMH Builder para acceso limitado, 60
RPC
y TCP Wrappers, 84
RSA, sistema de cifrado, 221
rsh, comando
limitar el acceso al sistema, 26
S
Sec00Tools, nivel de seguridad, 21
Sec20MngDMZ, nivel de seguridad, 21
Sec30DMZ, nivel de seguridad, 21
Secure Shell
Ver SSH, 87
SecurityMon, conjunto de archivos, 202
seguridad de archivos
consideraciones para archivos especiales /dev, 117
controlar el acceso a los archivos, 99
controlar en una red, 121
proteger archivos montados con NFS, 123
proteger archivos relacionados con cuentas de usuario, 102
proteger particiones de disco y volúmenes lógicos, 118
seguridad del sistema
definir atributos de seguridad, 45, 72
seguridad del usuario
administrar, 25
seleccionar y generar, 207
servicios de acceso remoto, 77
descripción general, 77
sesiones remotas
proteger mediante SSH, 87
setacl, comando
cambiar listas ACL, 110
cambiar listas ACL del JFS, 114
setfilexsec, comando, 131, 146
setgid, programas, 24, 210
228 Índice
administrar, 49
setuid, programas, 24, 210
administrar, 49
seudocuenta
ejemplo, 43
simulación
definición, 80
proteger con TCP Wrappers, 83
SIS, 84
sistema de archivos
pautas de seguridad para montar y desmontar, 119
sistema de confianza
bases de datos, 209
convertir, 202–203
sistema, nivel de ejecución
cambiar, 53
controlar acceso, 53
Software Assistant
utilizar, 22
SSH, 44
autenticación, 88, 92
autenticación basada en claves públicas, 93
autenticación con contraseñas, 94
características, 87
cifrado, 87
compatibilidad con TCP Wrappers, 96
componentes de software, 88
ejecución en modo de privilegios, 91
ejecutar, 89
ejecutar cliente scp, 91
ejecutar cliente sftp, 90
ejecutar cliente ssh, 89
generador de números aleatorios robusto, 96
GSS-API, 92
proteger sesiones remotas, 87
reenvío a través de un puerto, 88
sistema HP-UX, 94
tecnologías asociadas, 95
SSH-1, protocolo, 94
SSH-2, protocolo, 94
swlist, comando, 202
T
TCP Wrappers
proteger contra simulación, 83
y SSH, 96
teléfono
proteger, 56
terminal
configurar bloqueo de pantalla, 54
proteger, sin vigilancia, 53
titulares de inicio de sesión
asegurar, 57
TMOUT, variable
configurar, 55
U
umask, comando
cambiar permisos de acceso a los archivos por defecto, 101
único, nombre de usuario
importancia, 28
userdbset, comando
ejemplos de definición de atributos de usuarios, 48
usuario, autenticación
con PAM, 31
durante el inicio de sesión, 28
ejemplo de inicio de sesión de PAM, 37
V
/var/adm/inetd.sec, 83
volumen lógico
consideraciones sobre la seguridad, 118
W
who, comando
obtener información de inicio de sesión de usuarios, 31
wtmp, archivo
realizar seguimiento de inicios de sesión fructuosos, 29
WU-FTPD, 80
229
Descargar