Administración de Sistemas 06 07
Administración de Sistemas 06 07
Administración de Sistemas 06 07
Administración de Sistemas
Linux CentOS 5 y Windows Server 2003 R2
v
Administración de Sistemas
ix
Lista de tablas
1.1. Horarios de la asignatura ASO (FIV) en el curso 2008/2009. ................................ 4
1.2. Horarios de la asignatura ADS (ETSIAp) en el curso 2008/2009. .......................... 4
2.1. Elementos de la tabla de usuarios ...................................................................... 9
2.2. Extensión de la tabla de usuarios ...................................................................... 9
2.3. Elementos de la tabla de grupos ...................................................................... 10
2.4. Mandatos para gestión de usuariosy grupos .................................................... 11
2.5. Significado de los bits de permiso en Unix ....................................................... 12
3.1. Principales derechos de usuario en Windows 2003 ........................................... 27
3.2. Permisos estándar sobre carpetas y archivos en Windows 2003 ......................... 31
3.3. Permisos individuales en Windows 2003 ......................................................... 31
3.4. Correspondencia entre permisos estándar e individuales en Windows 2003 ....... 33
7.1. Principales políticas que afectan el comportamiento de los scritps ..................... 94
9.1. Resumen de los accesos como invitado en modo "domain" ............................. 112
9.2. Opciones de montaje del sistema de archivos CIFS ......................................... 114
9.3. Principales opciones de la sección [global] de Samba ...................................... 114
9.4. Principales opciones de los recursos en Samba ............................................... 115
A.1. Principales tipos de particiones soportados por Linux ................................... 129
A.2. Interpretación del fichero /etc/fstab .............................................................. 131
A.3. Opciones más comunes en el montaje de dispositivos en Linux. ..................... 131
B.1. Niveles de ejecución en RedHat/Fedora Linux ............................................... 133
xi
1
Introducción
Indice
1.1. Profesorado ..................................................................................................... 3
1.2. Programa ........................................................................................................ 3
1.3. Reglas de evaluación ........................................................................................ 3
1.4. Documentación y páginas Web ......................................................................... 4
1.5. Horarios .......................................................................................................... 4
1
1.1. Profesorado
1.1. Profesorado
1.2. Programa
• Individual.
• Debe aprobarse el examen escrito para aprobar la asignatura.
• Examen escrito (30% para ASO, 50% para ADS) para alumnos con prácticas aproba-
das en enero.
• Examen escrito (100%) con ejercicio práctico para el resto.
Las páginas web de las asignaturas se encuentran dentro de la plataforma virtual "Polifor-
maT" [http://poliformat.upv.es]. Se requiere acreditación como alumno matriculado para po-
der acceder a dichas páginas.
1.5. Horarios
LABORATORIO
Grupo Día Hora Aula Profesor
PL-1 Viernes 10:30 a 12:30 DSIC, lab. 4 Andrés Terrasa
PL-2 Viernes 15:00 a 17:00 DSIC, lab. 4 Alvaro Alvarez
LABORATORIO
Grupo Día Hora Aula Profesor
PL-1 Jueves 17:00 a 19:00 DSIC, lab. 4 Alvaro Alvarez
LABORATORIO
Grupo Día Hora Aula Profesor
PL-2 Jueves 19:00 a 21:00 DSIC, lab. 4 Alvaro Alvarez
PL-3 Viernes 17:00 a 19:00 DSIC, lab. 4 Alvaro Alvarez
PL-4 Miércoles 19:00 a 21:00 DSIC, lab. 4 Alvaro Alvarez
PL-5 Viernes 12:30 a 14:30 DSIC, lab. 4 Agustín Espinosa
PL-6 Viernes 8:30 a 10:30 DSIC, lab. 4 Agustín Espinosa
Indice
2.1. La tabla de usuarios ......................................................................................... 9
2.2. La extension de la tabla de usuarios .................................................................. 9
2.3. La tabla de grupos ......................................................................................... 10
2.4. Procedimientos para crear grupos y usuarios ................................................... 11
2.5. Atributos de protección de los procesos ........................................................... 11
2.6. Atributos de protección de los ficheros ............................................................ 12
2.7. Las reglas de protección básicas ...................................................................... 13
2.8. Cambio de atributos de protección en ficheros ................................................. 14
2.9. Los bits SETUID y SETGID en ficheros ejecutables ........................................... 14
2.10. El bit SETGID en directorios .......................................................................... 15
2.11. La máscara de creación de ficheros ................................................................ 15
2.12. La estrategia de los grupos privados .............................................................. 16
2.13. Mandatos Unix relacionados ......................................................................... 16
7
2.1. La tabla de usuarios
usu1:$1$ZtoHwEykKW/eCLHzSUigg5KAEy:1002:2000:Usuario 1:/home/usu1:/bin/bash
Cada línea de este fichero se corresponde con una línea del fichero /etc/passwd y la in-
formación que contiene es la siguiente (de acuerdo con el ejemplo anterior):
usu1:$1$ZtoHwEykKW/eCLHzSUigg5KAEy:10989:0:99999:7:-1:-1:134538436
Elemento Significado
usu1 Nombre de usuario ( login name)
$1$ZtoHwEykK/eCLH Contraseña cifrada
zSUigg5KAEy
10989:0:99999:7:- Información de caducidad de la contraseña
1:-1:134538436
Cuando el sistema emplea esta tabla, la contraseña que debería estar almacenada en el fi-
chero /etc/passwd se sustituye por una 'x'. Dado que el fichero /etc/passwd es legible
por todos los usuarios mientras que /etc/shadow sólo es legible por el administrador, me-
diante este cambio se consigue que ningún usuario tenga acceso a las contraseñas cifradas.
proy1::65534:usu1,usu2,usu3
Como se deduce del ejemplo, un usuario puede figurar en la lista de distintos grupos, es
decir, puede pertenecer a varios grupos. De todos esos grupos, aquél cuyo GID figura en la
entrada correspondiente al usuario en el fichero /etc/passwd se considera el grupo primario
de dicho usuario. El resto de grupos se denominan grupos suplementarios.
Al igual que sucede con los usuarios, existen ciertos grupos que son especiales, en concre-
to aquellos cuyo GID es menor que 500. De forma análoga a los usuarios especiales, repre-
sentan servicios, usuarios anónimos, etc. No deben, por tanto, ser modificados.
Estos mandatos son especialmente útiles cuando la gestión de usuarios debe realizarse
desde scripts del shell, por ejemplo, cuando debe crearse una gran cantidad de usuarios de
forma automática. La sintaxis y opciones más usuales de estos mandatos se citan en la Sec-
ción 2.13, “Mandatos Unix relacionados” al final de este capítulo.
1. Identificadores del usuario propietario del proceso. En realidad, cada proceso contiene
dos versiones del identificador de usuario, la denominada versión real (rUID) y la ver-
sión efectiva (eUID).
La versión real siempre corresponde al usuario que creó el proceso. La versión efecti-
va corresponde al usuario bajo el cual se comporta el proceso y es el utilizado en el me-
canismo de protección. Ambos identificadores suelen ser iguales, salvo que intervenga
el denominado bit SETUID en el fichero ejecutable que está ejecutando el proceso, tal co-
mo se describe más adelante en este documento (ver Sección 2.9, “Los bits SETUID y
SETGID en ficheros ejecutables ”).
2. Identificadores del grupo propietario del proceso.En este caso, el proceso también con-
tiene una versión real (rGID) y otra efectiva (eGID) del identificador.
La versión real corresponde al grupo primario al que pertenece el usuario que creó el
proceso. La versión efectiva corresponde al grupo bajo el cual se comporta el proceso y
3. Lista de grupos suplementarios. Es la lista formada por los grupos suplementarios del
usuario que creó el proceso.
3. Bits de permiso. Un total de 12 bits que expresan las operaciones del fichero que son
permitidas en función del proceso que acceda a este fichero. La Tabla 2.5, “Significado
de los bits de permiso en Unix” a continuación muestra el significado de cada uno de es-
tos bits.
El significado de los bits de lectura, escritura y ejecución es diferente en función del tipo
de archivo que los defina. Para ficheros regulares, su significado es el esperable (permiten
leer, modificar y ejecutar el fichero respectivamente). Evidentemente, el bit de ejecución sólo
tiene sentido si el fichero es un binario ejecutable o contiene un shellscript.
3. Ejecución. Permite la utilización del directorio al cual se aplica este bit para formar par-
te de un nombre de ruta, es decir, puede utilizarse el directorio para nombrar un fiche-
ro.
• Si el eUID del proceso es igual al ownerUID del fichero, se autoriza la operación si está
permitida en el grupo de bits 6 al 8, los que corresponden al propietario. Si no...
• Si el eGID del proceso o alguno de los grupos suplementarios del proceso es igual al ow-
nerGID del fichero, se autoriza la operación si está permitida en el grupo de bits 3 al 5,
los que corresponden al grupo. Si no...
Debe notarse que sólo se aplica una regla, aquella que corresponde a la primera condi-
ción que se cumple para los atributos del proceso. Es decir, el sistema determina primero qué
grupo de tres bits debe aplicar y después autoriza (o deniega) la operación en función del tipo
de operación requerida y del estado de dichos tres bits.
1. Cambio en los bits de permiso. Un proceso puede cambiar los bits de permiso de un fi-
chero sólo si:
3. Cambio de grupo propietario. El cambio del grupo propietario de un fichero puede rea-
lizarse sólo si:
• Si el fichero ejecutable tiene el bit SETUID activo, el eUID del proceso que ejecuta el fiche-
ro es hecho igual al ownerUID del fichero.
• Si el fichero ejecutable tiene el bit SETGID activo, el eGID del proceso que ejecuta el fiche-
ro es hecho igual al ownerGID del fichero.
• si se crea un fichero dentro de D, el ownerGID del nuevo fichero es hecho igual al ow-
nerGID del directorio D.
Para modificar este funcionamiento, cada usuario puede especificar al sistema aquellos
bits que no desea que sean activados, mediante la máscara de creación de ficheros. La másca-
ra se establece mediante el mandato umask. Cada bit activo en la máscara es un bit que será
desactivado cuando se cree un fichero. Por ejemplo, una máscara 022 desactivaría los bits de
escritura para el grupo y el resto de usuarios.
El administrador debe velar porque exista una máscara de creación de ficheros razonable
por defecto para cualquier usuario. Esto puede conseguirse fácilmente utilizando el fichero /
etc/profile, el cual sirve para personalizar el entorno de los usuarios en el momento de
su conexión, independientemente del shell que utilicen. Sin embargo, en sistemas Linux co-
mo RedHat/Fedora, que por defecto utilizan bash como shell por defecto para todos los
usuarios, el establecimiento de la máscara inicial se realiza en /etc/bashrc.
• Crear un grupo privado para cada usuario (utilizando para ello el mismo nombre del
usuario), y hacer que éste sea el grupo primario del usuario.
• Asignar como máscara por defecto para todos los usuarios 00X, es decir, todos los permi-
sos activos para el propietario y para el grupo y lo que se considere oportuno para el res-
to de usuarios.
userdel
usermod
groupadd
groupmod
groupdel
groupdel group
passwd
chage
chown
chgrp
chmod
MODE indica como deben modificarse los bits de permiso. Su sintaxis es:
[ugoa][+-=][rwxXstugo]
[rwxXstugo] r lectura
w escritura
x ejecución
X ejecución si activo para el propietario
s SETUID o SETGID
t sticky
u igual al propietario
g igual al grupo
o igual a otros
Indice
3.1. Concepto de usuario ...................................................................................... 23
3.2. Grupos de Usuarios ....................................................................................... 24
3.3. El modelo de protección ................................................................................. 25
3.4. Atributos de protección de los procesos ........................................................... 26
3.5. Derechos de usuario ....................................................................................... 26
3.5.1. Otras directivas de seguridad ............................................................... 28
3.6. Atributos de protección de los recursos ........................................................... 28
3.6.1. Asociación de permisos a recursos ........................................................ 29
3.6.2. Permisos estándar e individuales .......................................................... 30
3.6.3. Modificación de atributos de protección ................................................ 33
3.7. Reglas de protección ...................................................................................... 34
21
3.1. Concepto de usuario
Windows 2003 denomina usuario a cada persona que puede entrar en el sistema. Para po-
der controlar la entrada y las acciones de cada usuario utiliza básicamente el concepto de
cuenta de usuario (user account). Una cuenta de usuario almacena toda la información que el
sistema guarda acerca de cada usuario. De entre los numerosos datos que Windows 2003 al-
macena en cada cuenta de usuario, los más importantes son los siguientes:
• Directorio de conexión. Es el lugar donde (en principio) residirán los archivos personales
del usuario. El directorio de conexión de cada usuario es privado: ningún otro usuario
puede entrar en él, a menos que su propietario conceda los permisos adecuados.
• Horas de conexión. Se puede controlar a qué horas un usuario puede conectarse para tra-
bajar en el sistema. Inclusive se puede especificar un horario distinto para cada día de la
semana.
• Activada. Esta característica permite inhabilitar temporalmente una cuenta. Una cuenta
desactivada sigue existiendo, pero no puede ser utilizada para acceder al sistema, ni si-
quiera conociendo su contraseña.
Existe un dato especial que se asocia a cada cuenta, pero que a diferencia de todos los ex-
puestos arriba, no puede ser especificado manualmente cuando se da de alta la cuenta. Se
trata del identificador seguro (Secure Identifier, o SID). Este identificador es interno y el siste-
ma lo genera automáticamente cuando se crea una nueva cuenta. Además, los SIDs se gene-
ran de tal forma que se asegura que no pueden existir dos iguales en todas las instalaciones
de Windows 2003 del mundo (son identificadores únicos). Windows 2003 utiliza siempre el
SID (y no el nombre de usuario) para controlar si un usuario tiene o no permisos suficientes
para llevar a cabo cualquiera de sus acciones. La ventaja de este modelo es que el SID es un
dato completamente interno del sistema operativo, es decir, ningún usuario puede estable-
cerlo en ningún sitio (ni siquiera el administrador del sistema). Por tanto, nadie puede obte-
ner un mayor grado de privilegio intentando suplantar la identidad de otro usuario.
Cuando en un equipo se instala Windows 2003, existen de entrada las cuentas de dos
Al igual que existen usuarios integrados, en todo sistema 2003 existen una serie de gru-
pos integrados (built-in groups): Administradores, Operadores de Copia, Usuarios Avanza-
dos, Usuarios, e Invitados. El grupo Administradores recoge a todos aquellos usuarios que
deban poseer derechos administrativos completos. Inicialmente posee un solo usuario, el
Administrador. De igual forma, el grupo Invitados posee al Invitado como único miembro.
Los otros tres grupos están vacíos inicialmente. Su uso es el siguiente:
• Usuarios. Son los usuarios normales del sistema. Tienen permisos para conectarse al sis-
tema interactivamente y a través de la red.
• Operadores de copia. Estos usuarios pueden hacer (y restaurar) una copia de todo el sis-
tema.
• Usuarios avanzados. Son usuarios con una cierta capacidad administrativa. Se les permi-
te cambiar la hora del sistema, crear cuentas de usuario y grupos, compartir ficheros e
impresoras, etc.
El Administrador, al ir creando las cuentas de los usuarios, puede hacer que cada una
pertenezca al grupo (o grupos) que estime conveniente. Asimismo, puede crear nuevos gru-
pos que refinen esta estructura inicial, conforme a las necesidades particulares de la organi-
zación donde se ubique el sistema.
Finalmente, Windows 2003 define una serie de grupos especiales, cuyos (usuarios) miem-
bros no se establecen de forma manual, sino que son determinados de forma dinámica y au-
tomática por el sistema. Estos grupos se denominan genéricamente identidades especiales
(special identities) y se utilizan normalmente para facilitar la labor de establecer la protección
del sistema. De entre estos grupos, destacan:
• Usuarios Interactivos (Interactive). Este grupo representa a todos aquellos usuarios que
tienen el derecho de iniciar una sesión local en la máquina.
• Usuarios de Red (Network). Bajo este nombre se agrupa a todos aquellos usuarios que tie-
nen el derecho de acceder al equipo desde la red.
• Todos (Everyone). Agrupa a todos los usuarios que el sistema conoce. Puede agrupar a
usuarios existentes localmente y de otros sistemas (conectados a través de la red). A par-
tir de Windows 2003, este grupo no incluye las conexiones anónimas (sin aportar usuario
y contraseña).
• Usuarios autentificados (Authenticated Users). Agrupa a todos los usuarios que poseen
una cuenta propia para conectarse al sistema. Por tanto, aquellos usuarios que se hayan
conectado al sistema utilizando la cuenta de "invitado" pertenecen a "Todos" pero no a
"Usuarios autentificados".
2. SIDs de sus grupos. Lista de los SIDs de los grupos a los que pertenece el usuario.
3. Derechos. Lista de derechos del usuario. Esta lista se construye mediante la inclusión de
todos los derechos que el usuario tiene otorgados por sí mismo o por los grupos a los
que pertenece (ver Sección 3.5, “Derechos de usuario”).
Windows 2003 distingue entre dos tipos de derechos: los derechos de conexión (logon rights)
y los privilegios (privileges). Los primeros establecen las diferentes formas en que un usuario
puede conectarse al sistema (de forma interactiva, a través de la red, etc.), mientras que los
segundos hacen referencia a ciertas acciones predefinidas que el usuario puede realizar una
vez conectado al sistema. La Tabla 3.1, “Principales derechos de usuario en Windows 2003”
presenta los derechos más destacados de cada tipo, junto con su descripción.
Es importante hacer notar lo siguiente: cuando existe un conflicto entre lo que concede o
deniega un permiso y lo que concede o deniega un derecho, este último tiene prioridad. Por
ejemplo: los miembros del grupo Operadores de Copia poseen el derecho de realizar una co-
pia de seguridad de todos los archivos del sistema. Es posible (y muy probable) que existan
archivos sobre los que no tengan ningún tipo de permiso. Sin embargo, al ser el derecho más
prioritario, podrán realizar la copia sin problemas. De igual forma, el administrador tiene el
derecho de tomar posesión de cualquier archivo, inclusive de aquellos archivos sobre los que
no tenga ningún permiso. Es decir, como regla general, los derechos y privilegios siempre
prevalecen ante los permisos particulares de un objeto, en caso de que haya conflicto.
PRIVILEGIOS
Nombre Significado
Añadir estaciones al dominio Permite al usuario añadir ordenadores al dominio ac-
tual.
Hacer copias de seguridad Permite al usuario hacer copias de seguridad de archi-
vos y carpetas.
Restaurar copias de seguridad Permite al usuario restaurar copias de seguridad de ar-
chivos y carpetas.
Atravesar carpetas Permite al usuario acceder a archivos a los que tiene
permisos a través de una ruta de directorios en los que
puede no tener ningún permiso.
Cambiar la hora del sistema Permite al usuario modificar la hora interna del ordena-
dor.
Instalar manejadores de dispositi- Permite al usuario instalar y desinstalar manejadores
vo de dispositivos Plug and Play.
Apagar el sistema Permite al usuario apagar el ordenador local.
Tomar posesión de archivos y Permite al usuario tomar posesión (hacerse propietario)
otros objetos de cualquier objeto con atributos de seguridad del sis-
tema (archivos, carpetas, objetos del Directorio Activo,
etc.).
Dentro de esta herramienta de administración podemos establecer, entre otras, los si-
guientes tipos de reglas de seguridad para el equipo local:
2. Directiva local. Dentro de este apartado se encuentra, por una parte, la Auditoría del
equipo, que permite registrar en el visor de sucesos ciertos eventos que sean interesan-
tes, a criterio del administrador (por ejemplo, inicios de sesión local). Por otra parte, este
apartado incluye los derechos y privilegios que acabamos de explicar.
3. Claves públicas. Este apartado permite administrar las opciones de seguridad de las
claves públicas emitidas por el equipo.
2. Lista de control de acceso de protección. Esta lista incluye los permisos que los usuarios
tienen sobre el archivo o carpeta. La lista puede contener un número indefinido de en-
tradas, de forma que cada una de ellas concede o deniega un conjunto concreto de per-
misos a un usuario o grupo conocido por el sistema. Por tanto, Windows 2003 permite
definir multitud de niveles de acceso a cada objeto del sistema de archivos, cada uno de
los cuales puede ser positivo (se otorga un permiso) o negativo (se deniega un permiso).
3. Lista de control de acceso de seguridad. Esta segunda lista se utiliza para definir qué
acciones sobre un archivo o carpeta tiene que auditar el sistema. El proceso de auditoría
supone la anotación en el registro del sistema de las acciones que los usuarios realizan so-
bre archivos o carpetas (las entradas de este registro, denominado registro de seguridad,
La lista de control de acceso de protección se divide realmente en dos listas, cada una de
ellas denominada Discretionary Access Control List (lista de control de acceso discrecional) o
DACL. Cada elemento de una DACL se denomina Access Control Entry (entrada de control
de acceso) o ACE. Cada entrada liga a un SID de usuario o grupo con la concesión o denega-
ción de un permiso concreto (o conjunto de permisos), tal como se ha descrito arriba. Los di-
ferentes permisos que se pueden asignar a usuarios o grupos en Windows 2003 se explican
en la Sección 3.6.2, “Permisos estándar e individuales”.
El hecho de que cada archivo o carpeta tenga dos DACL en vez de una tiene que ver con
el mecanismo de la herencia de permisos que ha incorporado Windows 2003: cada archivo o
carpeta puede heredar implícitamente los permisos establecidos para la carpeta que lo con-
tiene y puede además definir permisos propios (denominados explícitos en la jerga de Win-
dows 2003). Es decir, que cada archivo o carpeta puede poseer potencialmente una DACL he-
redada y una DACL explícita (aunque no está obligado a ello, como veremos). De esta forma,
si una cierta carpeta define permisos explícitos, éstos (junto con sus permisos heredados) se-
rán a su vez los permisos heredados de sus subcarpetas y archivos (y así sucesivamente). El
mecanismo de herencia de permisos es dinámico, queriendo decir que la modificación un
permiso explícito de una carpeta se refleja en el correspondiente permiso heredado de sus
subcarpetas y archivos.
• Cuando se crea un nuevo archivo o carpeta, éste no posee ningún permiso explícito y ad-
quiere como permisos heredados los permisos heredados y explícitos de su carpeta pa-
dre.
• Si se desea añadir permisos sobre un archivo o carpeta, éstos se añaden siempre a la lista
de permisos explícitos. De igual forma, sólo se puede modificar o eliminar individualmen-
te un permiso si éste es explícito.
• El control sobre la herencia de permisos (i.e., qué recursos heredan y qué permisos se he-
redan) se puede realizar a dos niveles de forma independiente:
1. Cada carpeta o archivo tiene la potestad de decidir si desea o no heredar los permi-
sos de su carpeta padre (herencia "desde arriba"). Es decir, en cada recurso se puede
desactivar la herencia, con lo que los permisos definidos por encima del recurso en la
jerarquía de archivos no se le aplican. Desactivar la herencia no es una acción irre-
versible: la herencia puede volver a activarse más tarde si se desea, sin que ello mo-
difique los permisos explícitos que pueda tener el recurso.
2. Cada permiso lleva asociada una regla que indica qué recursos van a poder heredar-
lo (herencia "hacia abajo"). Esta regla sólo interviene cuando se asocia un permiso a
una carpeta, puesto que sólo las carpetas poseen recursos dentro de ellas
(subcarpetas y archivos) que puedan heredar el permiso. Por tanto, cuando en una
carpeta se define un permiso explícito, su regla de la herencia puede utilizarse para
restringir qué recursos por debajo de dicha carpeta van a poder heredarlo.
Concretamente, la regla permite establecer que el permiso sea aplicable: (a) sólo
en la propia carpeta, (b) sólo en las subcarpetas, (c) sólo en los archivos, o cualquier
combinación entre estas tres opciones. La regla por defecto al crear un nuevo permi-
so explícito es que dicho permiso sea heredable por la carpeta y todas sus subcarpe-
tas y archivos.
• Copiar un archivo o carpeta a otra ubicación se considera una creación, y por tanto el ar-
chivo copiado recibe una lista de permisos explícitos vacía y se activa la herencia de la
carpeta padre correspondiente a la nueva ubicación.
• Mover un archivo distingue dos casos: si movemos una carpeta o archivo a otra ubica-
ción dentro del mismo volúmen (partición) NTFS, se desactiva la herencia y se mantienen
los permisos que tuviera como explíticos en la nueva ubicación. Si el volúmen destino es
distinto, entonces se actúa como en una copia (sólo se tienen los permisos heredados de
la carpeta padre correspondiente a la nueva ubicación).
En la Tabla 3.2, “Permisos estándar sobre carpetas y archivos en Windows 2003” se mues-
tran los permisos estándar de carpetas y archivos junto con su significado cualitativo. La
descripción de las tablas hacen referencia a las acciones que cada permiso concede, pero no
olvidemos que en Windows 2003 cada permiso puede ser positivo o negativo, es decir, que
realmente cada permiso permite o deniega la acción correspondiente. Como puede verse en
ambas tablas, muchos de los permisos estándar se definen de forma incremental, de forma
que unos incluyen y ofrece un nivel de acceso superior que los anteriores. La herencia de
permisos se establece de forma natural: las carpetas heredan directamente los permisos es-
tándar establecidos en la carpeta padre, mientras que los archivos heredan cualquier permi-
so excepto el de Listar (sólo definido para carpetas).
ARCHIVOS
Nombre Significado
Leer Permite ver el contenido del archivo, así como su propietario, permi-
sos y atributos (sistema, sólo lectura, oculto, etc.).
Escribir Permite sobreescribir el archivo, modificar sus atributos y ver su pro-
pietario, permisos y atributos.
Leer y Ejecutar Permite ejecutar el archivo más todos los permisos de Leer.
Modificar Permite modificar y eliminar el archivo más todos los permisos de
Escribir y de Leer y Ejecutar.
Control Total Permite cambiar permisos y tomar posesión del archivo, más todos
los permisos anteriores.
Nombre Significado
Leer atributos extendidos Permite ver los atributos extendidos del archivo o car-
peta. (Estos atributos están definidos por los progra-
mas y pueden variar).
Crear ficheros/escribir datos Aplicado a una carpetas, permite crear archivo en ella.
Aplicado a un archivo, permite modificar y sobreescribir
su contenido.
Crear carpetas/anexar datos Aplicado a una carpeta, permite crear subcarpetas en
ella. Aplicado a un archivo, permite añadir datos al mis-
mo.
Escribir atributos Permite modificar los atributos de un archivo o carpeta.
Escribir atributos extendidos Permite modificar los atributos extendidos de un archi-
vo o carpeta.
Borrar subcarpetas y archivos Sólo se puede aplicar a una carpeta, y permite borrar
archivos o subcarpetas de la misma, aun no teniendo
permiso de borrado en dichos objetos.
Borrar Permite eliminar la carpeta o archivo.
Leer permisos Permite leer los permisos de la carpeta o archivo.
Cambiar permisos Permite modificar los permisos de la carpeta o archivo.
Tomar posesión Permite tomar posesión de la carpeta o archivo.
En concreto, las reglas que dictan quién puede modificar los diferentes atributos de pro-
tección de los recursos (archivos y carpetas) son:
2. Lista de control de acceso de protección. Cualquier usuario que posea el permiso indi-
vidual Cambiar Permisos (incluido dentro de Control Total) sobre un recurso
concreto, puede modificar sus permisos. De forma independiente, el propietario de un re-
curso siempre puede cambiar los permisos del mismo.
3. Lista de control de acceso de seguridad. Se aplican las mismas reglas que en el caso an-
terior.
• Una única acción de un proceso puede involucrar varias acciones individuales sobre va-
rios archivos y/o carpetas. En ese caso, el sistema verifica si el proceso tiene o no permi-
sos para todas ellas. Si le falta algún permiso, la acción se rechaza con un mensaje de
error genérico de falta de permisos.
• Los permisos en Windows 2003 son acumulativos: un proceso de usuario posee implícita-
mente todos los permisos correspondientes a los SIDs de su acreditación (ver Sección 3.4,
“Atributos de protección de los procesos”), es decir, los permisos del usuario y de todos
los grupos a los que pertenece.
Estas reglas son más fáciles de recordar si se conoce el algoritmo que sigue Windows 2003
para conceder o denegar una acción concreta sobre un archivo o directorio concreto. Para
ello, el sistema explora secuencialmente las entradas de las DACLs de protección de dicho
objeto hasta que se cumple alguna de las condiciones siguientes:
2. Alguno de los permisos involucrados está explícitamente denegado para el SID del
usuario o para alguno de sus grupos. En este caso, se deniega la acción.
Este algoritmo realmente produce el comportamiento descrito por las reglas anteriores
debido al orden en que Windows 2003 establece las entradas de las DACLs de cada objeto.
Este orden es siempre el siguiente: permisos negativos explícitos, permisos positivos explíci-
tos, permisos negativos heredados y permisos positivos heredados.
Indice
4.1. Introducción .................................................................................................. 39
4.2. Concepto de dominio ..................................................................................... 39
4.3. Servicios de directorio y LDAP ....................................................................... 39
4.4. Visión general de la implementación de un dominio Linux con OpenLDAP ....... 42
4.5. Instalación del servidor OpenLDAP ................................................................ 43
4.6. Instalación de las herramientas cliente de OpenLDAP ...................................... 44
4.7. Migración de la información del servidor ........................................................ 46
4.8. Autenticación basada en OpenLDAP ............................................................... 48
4.9. Permisos de acceso ......................................................................................... 49
4.10. Configuración de OpenLDAP con varios servidores ....................................... 51
4.11. Herramientas gráficas de administración ....................................................... 52
37
4.1. Introducción
4.1. Introducción
En el mundo Linux no existe un concepto de dominio tan elaborado como en el mundo de
Windows 2003. Sin embargo, se consigue un efecto similar al activar un servicio en una má-
quina Linux (que actuaría como "servidor" de cuentas y grupos) y otro servicio que permite
la exportación de directorios a máquinas remotas. En concreto, dichos servicios se denomi-
nan LDAP y NFS, respectivamente. Ambos son explicados en este capítulo y en el siguiente,
respectivamente.
Este capítulo describe cómo una implementación libre del protocolo LDAP para Unix, de-
nominada OpenLDAP (www.openldap.org), puede utilizarse para implementar dominios
en Centos Linux.
El estándar X.500 define de forma nativa un protocolo de acceso denominado DAP (Di-
rectory Access Protocol) que resulta muy complejo (y computacionalmente pesado) porque es-
tá definido sobre la pila completa de niveles OSI. Como alternativa a DAP para acceder a di-
rectorios de tipo X.500, LDAP (Lightweight Directory Access Protocol) ofrece un protocolo "lige-
ro" casi equivalente, pero mucho más sencillo y eficiente, diseñado para operar directamente
sobre TCP/IP. Actualmente, la mayoría de servidores de directorio X.500 incorporan LDAP
como uno de sus protocolo de acceso.
Internamente, el modelo de datos de LDAP (derivado de X.500, pero algo restringido) de-
fine una estructura jerárquica de objetos o entradas en forma de árbol, donde cada objeto o
entrada posee un conjunto de atributos. Cada atributo viene identificado mediante un nom-
bre o acrónimo significativo, pertenece a un cierto tipo y puede tener uno o varios valores aso-
ciados. Toda entrada viene identificada unívocamente en la base de datos del directorio me-
diante un atributo especial denominado nombre distinguido o dn (distinguished name). El resto
de atributos de la entrada depende de qué objeto esté describiendo dicha entrada. Por ejem-
plo, las entradas que describen personas suelen tener, entre otros, atributos como cn (com-
mon name) para describir su nombre común, sn (surname) para su apellido, mail para su di-
rección de correo electrónico, etc. La definición de los posibles tipos de objetos, así como de
sus atributos (incluyendo su nombre, tipo, valor(es) admitido(s) y restricciones), que pueden
ser utilizados por el directorio de un servidor de LDAP la realiza el propio servidor median-
te el denominado esquema del directorio. Es decir, el esquema contiene las definiciones de los
objetos que pueden darse de alta en el directorio.
El nombre distinguido de cada entrada del directorio es una cadena de caracteres forma-
da por pares <tipo_atributo>=<valor> separados por comas, que representa la ruta in-
vertida que lleva desde la posición lógica de la entrada en el árbol hasta la raíz del mismo.
Puesto que se supone que un directorio almacena información sobre los objetos que existen
en una cierta organización, cada directorio posee como raíz (o base, en terminología LDAP)
la ubicación de dicha organización, de forma que la base se convierte de forma natural en el
sufijo de los nombres distinguidos de todas las entradas que mantiene el directorio. Existen
dos formas de nombrar, o estructurar, la raíz de un directorio LDAP:
2. Nombrado basado en nombres de dominio de Internet (es decir, en DNS): este nombra-
do utiliza los dominios DNS para nombrar la raíz de la organización. En este caso, la ba-
se de la UPV sería: "dc=upv, dc=es". Este es el nombrado que vamos a utilizar puesto
que permite localizar a los servidores de LDAP utilizando búsquedas DNS.
A partir de esa base, el árbol se subdivide en los nodos y subnodos que se estime oportu-
no para estructurar de forma adecuada los objetos de la organización, objetos que se ubican
finalmente como las hojas del árbol. De esta forma, el nombre distinguido de cada entrada
De acuerdo con dicha figura, la entrada correspondiente al usuario "pepe" tendría como
nombre distinguido "uid=pepe, ou=People, dc=admon, dc=com". Al margen de ese
identificador único, cada entrada u objeto en el directorio puede tener, como hemos dicho,
un conjunto de atributos tan descriptivo como se desee. Cada objeto necesita, al margen de
su nombre distinguido, su "clase de objeto", que se especifica mediante el atributo Object-
Class (un mismo objeto puede pertenecer a diferentes clases simultáneamente, por lo que
pueden existir múltiples atributos de este tipo para un mismo objeto en el directorio). Este
atributo especifica implícitamente el resto de atributos de dicho objeto, de acuerdo con la de-
finición establecida en el esquema. Siguiendo con el ejemplo anterior, a continuación se
muestra un subconjunto de los atributos del usuario "pepe":
El formato en el que se han mostrado los atributos del objeto se denomina LDIF (LDAP
Data Interchange Format), y resulta útil conocerlo porque es el formato que los servidores
LDAP (y OpenLDAP entre ellos) utilizan por defecto para insertar y extraer información del
directorio.
Puesto que nosotros vamos a utilizar el directorio con un uso muy específico (centralizar
la información administrativa de nuestro dominio para autentificar usuarios de forma glo-
bal) deberíamos asegurarnos que en el esquema de nuestro directorio existen los tipos de ob-
jetos (y atributos) adecuados para ello. Afortunadamente, OpenLDAP posee por defecto un
esquema suficientemente rico para cubrir este cometido. Por ejemplo, cada usuario puede
definirse mediante un objeto de tipo posixAccount, que posee entre otros atributos para
almacenar su UID, GID, contraseña, etc. A título de curiosidad, la entrada en el esquema que
define el atributo para la contraseña (userPassword) se muestra a continuación:
El primer paso consiste en elegir uno de los ordenadores de la red para que actue co-
mo servidor OpenLDAP, e instalar y configurar en dicho ordenador este servicio de red,
tal como se describe en la sección Sección 4.5, “Instalación del servidor OpenLDAP”. Fi-
nalizado este paso se dispone de un directorio operativo pero carente de información.
Una vez instalado, este paquete instala los ficheros de configuración por defecto bajo el
directorio /etc/openldap, crea un directorio vacío denominado /var/lib/ldap para al-
bergar la base de datos con la información del directorio y sus índices, y finalmente incorpo-
ra el servicio o "demonio" de LDAP, denominado slapd. Al igual que sucede con la mayoría
de servicios, sladp puede iniciarse y detenerse utilizando el mandado service:
y puede ser configurado para activarse cuando se inicia el sistema utilizando la orden
chkconfig:
De hecho, de los numerosos parámetros que pueden configurarse en este fichero, sólo va-
mos a comentar los estrictamente necesarios para configurar un servidor básico de LDAP
que luego haga de servidor de un dominio Linux. Para configurar cualquier otro parámetro
avanzado, se recomienda la lectura previa del documento "OpenLDAP Administrator's Guide"
[http://www.openldap.org/doc/admin22/].
En definitiva, los tres parámetros fundamentales que es necesario configurar son los si-
guientes (el resto pueden dejarse con sus opciones por defecto):
1. Sufijo. Este es el sufijo de las entradas del directorio, es decir, lo que hemos denomina-
do base o raíz del directorio. Por ejemplo, para el dominio "admon.com" deberíamos
configurar:
2. Cuenta del administrador (del directorio). Esta es la cuenta del usuario administrador
del directorio, lógicamente en formato de LDAP. Las credenciales que se sitúan en esta
opción (y la siguiente) tienen validez independientemente de que este usuario exista
realmente en la base de datos del directorio o no. El nombre por defecto es "manager",
pero si queremos lo podemos cambiar por "root" (a la UNIX):
rootpw <CONTRASEÑA>
Hay que tener en cuenta que la contraseña que pongamos aquí será visible por cual-
quier usuario que pueda leer el fichero (aunque por defecto, éste es un permiso sólo de
root). Por tanto, es conveniente ponerla cifrada. Para ello, podemos crear una contraseña
nueva mediante la orden:
slappasswd -h {MD5}
Esta orden nos pide una contraseña y nos la muestra cifrada. Luego simplemente
sustitiumos <CONTRASEÑA> por el resultado de dicha orden. Como ejemplo, la sen-
tencia rootpw quedaría como sigue:
rootpw {MD5}EDtdFIXDSXRdagNOPSXPvcTBbA==
BASE dc=admon,dc=com
HOST adlin.admon.com
Es importante hacer notar que OpenLDAP aún no soporta la localización del servidor ba-
sada en registros de servicio de DNS (como es el caso del Directorio Activo de Windows
2003). Por tanto, en la opción HOST es necesario especificar o bien una dirección IP o bien un
nombre de ordenador que pueda resolverse correctamente sin utilizar el propio directorio
(por ejemplo, que esté dado de alta en el fichero /etc/hosts del ordenador cliente, o que
pueda resolverse correctamente mediante una consulta DNS).
# filter: (objectclass=*)
# requesting: namingContexts
#
dn:
namingContexts: dc=admon,dc=com
# search result
search: 2
result: 0 Success
Para ello, OpenLDAP incorpora un conjunto de herramientas que pueden utilizarse para
realizar esta migración de forma automática. El paso previo para ello es editar el fichero /
usr/share/openldap/migration/migrate_common.ph. En concreto, tenemos que
editar las dos directivas siguientes:
$DEFAULT_MAIL_DOMAIN = "admon.com";
$DEFAULT_BASE = "dc=admon,dc=com";
Una vez modificadas ambas, tenemos diferentes opciones para incorporar la información
del sistema al directorio. Entre ellas, la más recomendable es realizar la migración por partes,
añadiendo primero la "base" (es decir, las entradas correspondientes a la organización y sus
unidades organizativas por defecto) y posteriormente migrando los usuarios, grupos, hosts,
etc., que se ubicarán dentro de dichas unidades.
Para todo ello existen scripts de Perl en el directorio mencionado arriba (donde se ubica
migrate_common.ph), que podemos utilizar de la siguiente forma (en todo el proceso, el
servicio ldap debe estar ejecutándose):
Una vez copiados todos los usuarios en format LDIF, tenemos que editar el fichero
usuarios.ldif y eliminar todos los registros que hacen referencia a usuarios especia-
les de Linux, incluyendo a "root" (no se recomienda en general exportar la cuenta de
"root" mediante LDAP, por cuestiones de seguridad). En definitiva, sólo deberían quedar
en el fichero los registros asociados a los usuarios comunes que hemos añadido al siste-
ma. Una vez editado el fichero, añadimos los registros al directorio:
Como con los usuarios, eliminamos del fichero grupos.ldif los grupos especiales, y
dejamos sólo los grupos privados de los usuarios comunes que hemos añadido al siste-
ma. Tras la modificación, añadimos esos grupos al directorio:
• Y así sucesivament con hosts, servicios, etc. De todas formas, para nuestros propósitos de
uso del directorio, con la migración hecha hasta aquí resultaría suficiente.
A partir de este momento, pueden utilizarse las utiliadades ldapadd para añadir entra-
das, ldapmodify y ldapmodrdn para modificar entradas o nombres relativos de entrada (el
nombre distinguido relativo de una entrada es el primer campo del nombre distinguido de
dicha entrada), ldapdelete para eliminar entradas, ldappasswd para modificar la contraseña
de una entrada y la ya mencionada ldapsearch para buscar entradas, desde cualquiera de los
clientes. Se recomienda visitar las páginas de manual correspondientes para más informa-
ción.
Es importante recordar que las órdenes de añadir y modificar entradas esperan recibir la
información en formato LDIF. Por ejemplo, para añadir una entrada de grupo denominada
"alumnos" con GID 1000 deberíamos crear primeramente un archivo (alumnos.ldif) con
el siguiente contenido (y al menos una línea en blanco al final):
dn: cn=alumnos,ou=Group,dc=admon,dc=com
objectclass: posixGroup
objectclass: top
cn: alumnos
userPassword: {crypt}x
gidNumber: 1000
Evidentemente, esto resulta muy tedioso y es fácil equivocarse. Por este motivo, se reco-
mienda la utilización de herramientas gráficas que faciliten la labor de crear, modificar y bo-
rrar entradas en el directorio. En Sección 4.11, “Herramientas gráficas de administración” se
amplía este aspecto.
Internamente, este proceso de autentificación y creación del contexto inicial que Linux lle-
va a cabo cuando un usuario desea iniciar una sesión interactiva utiliza dos bibliotecas dis-
tintas:
2. NSS (Name Service Switch) presenta una interfaz genérica para averiguar los parámetros
de una cuenta (como su UID, GID, shell inicial, directorio de conexión, etc.), y es utiliza-
da por el proceso de "login" para crear el proceso de atención inicial del usuario.
En CentOS Linux, esta configuración es muy sencilla. Primero instalamos (si no lo está
ya) un paquete denominado nss_ldap, que contiene los módulos de LDAP para PAM y
NSS. A partir de ahí, ejecutamos la herramienta de configuración system-con-
fig-authentication, que configura automáticamente los ficheros de PAM y NSS con los meca-
nismos de autentificación disponibles. En nuestro caso, basta habilitar el soporte LDAP en
los paneles "Información del usuario" y "Autenticación", configurando LDAP indicando la
dirección IP del servidor y el sufijo del directorio (en formato LDAP, claro). En principio, no
debemos activar la casilla de "Utilizar TLS" (que activaría conexiones seguras) ya que no he-
mos activado este tipo de conexiones en el servidor.
Es importante recordar que debemos realizar esta configuración en todos los clientes pri-
mero, y sólo iniciarla en el servidor cuando hayamos asegurado que todo funciona correcta-
mente. En cualquier caso, no resulta imprescindible configurar el servidor como cliente, si
siempre incluimos los usuarios y grupos nuevos tanto en el directorio como en los ficheros
locales del mismo (o bien si dichos usuarios nunca van a trabajar en el servidor).
La comprobación desde cualquier cliente que el dominio funciona es muy sencilla. Sim-
plemente ejecutamos:
donde:
• <what> es una expresión que especifica a qué entradas del directorio se aplica la regla.
Existen varias opciones, siendo las más comunes las siguientes: (1) puede indicarse todo
el directorio mediante un asterisco (*), (2) una entrada del directorio (por ejemplo,
dn="cn=jero,ou=people,dc=admon, dc=com" y (3) un subarbol de entradas del
directorio (por ejemplo, dn.subtree="ou=ventas,dc=admon, dc=com"). Por defec-
to, los permisos se aplican a todos los atributos de las entradas especificadas, pero es po-
sible seleccionar qué atributos que se verán afectados utilizando la opción attrs (por
ejemplo, dn.subtree="ou=People, dc=admon, dc=com"
attrs=userPassword).
• <who> indica a quién (a qué usuario(s)) se especifica la regla. Puede tomar diferentes va-
lores, siendo los más comunes los siguientes: self (el propietario de la entrada),
dn="..." (el usuario representado por el nombre distinguido), users (cualquier usua-
rio acreditado), anomymous (cualquier usuarios no acreditado) y * (cualquier usuario).
• <access_control> indica qué operación concede la regla: none (sin acceso), auth
(utilizar la entrada para validarse), compare (comparar), search (búsqueda), read
(lectura), y write (modificación).
Por tanto, el orden en que aparecen las reglas en el fichero, y el orden interno de las cláu-
sulas "by" dentro de cada regla, es relevante: si varias reglas afectan a los mismos objetos, las
reglas más específicas deberían ubicarse antes en el fichero; y, dentro de una regla, si inclui-
mos varias cláusulas by, también debemos situar las más específicas primero.
Es importante tener en cuenta que el administrador del directorio siempre tiene asignado
el permiso de escritura y, por defecto, el resto de usuarios tienen permiso de lectura. Un
ejemplo de reglas de acceso que modifica levemente el comportamiento por defecto podría
ser el siguiente:
access to *
by dn="cn=root,dc=admon,dc=com" write
by * read
En este ejemplo, la primera regla de acceso permite a cada usuario a cambiarse su propia
contraseña (la contraseña es el atributo userPassword en los objetos de tipo usuario, que se
sitúan por defecto dentro de la unidad organizativa "People"), al administrador cambiar la
de cualquier usuario y al resto de usuarios sólo pueden utilizar este campo para autentificar-
se. De esta forma se consigue que un usuario no pueda leer las contraseñas cifradas de otros
usuarios. La segunda regla de acceso permite al administrador cambiar cualquier entrada
del directorio y al resto de usuarios sólo leerlas, lo que corresponde realmente con el com-
portamiento por defecto excepto para el atributo userPassword.
Finalmente, es importante destacar que las reglas de acceso también permiten delegar la
administración de parte (o todo) el directorio a ciertos usuarios, de forma análoga a la dele-
gación de control en el Directorio Activo de Windows Server (ver Sección 6.5, “Delegación
de la administración”). En este caso, la delegación se traduce habitualmente en conceder per-
misos de escritura sobre los objetos situados en una cierta unidad organizativa, bien sea so-
bre todos los atributos de dichos objetos, o bien sobre alguno(s) en concreto.
access to dn.subtree="ou=People,dc=admon,dc=com"
by dn="cn=javier,ou=People,dc=admon,dc=com" write
by dn="cn=root,dc=admon,dc=com" write
by * read
access to *
by dn="cn=root,dc=admon,dc=com" write
by * read
Esta forma de construir las reglas viene determinada por la manera particular en que
OpenLDAP las evalúa, tal como se ha descrito arriba. En concreto, la primera regla del ejem-
plo permite que tanto javier como jose modifiquen las contraseñas de los usuarios de
People, mientras que la segunda permite que javier tenga permisos de modificación so-
bre el resto de los atributos de los usuarios de People.
Evidentemente, este esquema sólo funciona si todos los servidores (maestro y esclavos)
parten de un estado del directorio común. Por ese motivo, es necesario copiar manualmente
la base de datos del directorio (es decir, el contenido del directorio /var/lib/ldap del ser-
vidor maestro) a cada esclavo, estando los servicios slapd parados en todos ellos, por su-
puesto.
replica host=esclavo.admon.com:389
binddn="cn=Replicator,dc=admon,dc=com"
bindmethod=simple
credentials=CONTRASEÑA_PLANA
Y además hay que decirle a slapd en qué fichero de registro tiene que escribir los
cambios:
replogfile /var/lib/ldap/master-slapd.replog
2. Servidor esclavo. Por una parte, en el servidor esclavo hay que configurar el archivo /
etc/openldap/slapd.conf de la misma forma que en el maestro (ver Sección 4.5,
“Instalación del servidor OpenLDAP”), exceptuando las líneas expuestas en el apartado
anterior, que sólo corresponden al maestro.
Por otra parte, hay que incluir en dicho fichero las siguientes opciones:
rootdn "cn=Replicator,dc=admon,dc=com"
updatedn "cn=Replicator,dc=admon,dc=com"
updateref ldap://maestro.admon.com
La opción updatedn indica la cuenta con la que el servicio slurpd del servidor
maestro va a realizar las modificaciones en la réplica del esclavo. Como puede compro-
barse, hemos establecido que esta cuenta sea también el "rootdn" del servidor esclavo.
Esa es la forma más sencilla de asegurar que este usuario tendrá permisos para modifi-
car el directorio en este servidor (si no fuera así, deberíamos asegurarnos que esta cuen-
ta tuviera concedido permiso de escritura en el directorio del servidor esclavo, en direc-
tiva "access" correspondiente). Por su parte, updateref indica al servidor esclavo que
cualquier petición directa de modificación que venga de un cliente debe ser redireccio-
nada al servidor maestro del directorio.
Esta herramienta se ejecuta de forma indirecta a través de un servidor Web, Apache nor-
malmente. Una muestra de su interfaz la tenemos en la Figura 4.2, “Vista de la herramienta
phpLDAPadmin”.
Indice
5.1. Introducción .................................................................................................. 57
5.2. Acceso a directorios remotos mediante NFS ..................................................... 57
5.3. Usos típicos de NFS ....................................................................................... 57
5.4. Funcionamiento de NFS ................................................................................. 58
5.5. Instalación y configuración del cliente NFS ...................................................... 58
5.6. Instalación y configuración del servidor NFS ................................................... 59
55
5.1. Introducción
5.1. Introducción
Como es bien sabido por cualquier usuario de Linux, un sistema Linux puede trabajar única-
mente con una jerarquía de directorios, de tal forma que si se desea acceder a distintos siste-
mas de archivos (particiones de discos, cd-roms, disquetes, etc.), todos ellos deben montarse
primero en algún punto de dicha jerarquía única.
Siguiendo la misma filosofía, Network File System (NFS) es un servicio de red que permite
a un ordenador cliente montar y acceder a un sistema de archivos (en concreto, un directorio)
remoto, exportado por otro ordenador servidor. Este capítulo explica las bases de cómo ex-
portar directorios por NFS desde un sistema Linux y cómo acceder a ellos desde otros siste-
mas a través de la red.
Este mandato indica que el directorio /home/ftp/pub/, que debe ser exportado por el
ordenador cansado, va a montarse el directorio local /mnt/ de faemino. Es importante te-
ner en cuenta que este directorio local debe existir previamente para que el montaje pueda
realizarse. La opción -t nfs indica a mount el tipo de sistema de archivos que va a montar,
aunque en este caso podría omitirse, ya que mount detecta por el carácter que se trata de un
montaje remoto (por NFS) gracias al carácter ':' en la especificación del "origen" ("cansa-
do:/home/ftp/pub").
• Un cliente NFS puede montar directorios remotos exportados por diferentes servidores.
Teniendo esto en cuenta, existen varios usos típicos de NFS donde este servicio muestra
su utilidad (entre otros):
2. Por su parte, y una vez un directorio remoto ha sido montado con éxito, el servicio nfsd
se dedica a atender y resolver las peticiones de acceso del cliente a archivos situados en
el directorio.
ción. Los directorios remotos pueden importarse utilizando el mandato mount y el fichero
asociado /etc/fstab
En este sentido, recuérdese que en cada invocación al mandato mount (y/o en cada línea
del fichero /etc/fstab) se pueden establecer opciones de montaje. En ellas se particulariza
el comportamiento que tendrá el sistema de archivos una vez se haya montado en el directo-
rio correspondiente. En el caso de NFS, las opciones más importantes son las que gobiernan
el modo de fallo de las peticiones remotas, es decir, cómo se comporta el cliente cuando el
servidor no responde:
1. soft. Con esta opción, cuando una petición no tiene respuesta del servidor el cliente
devuelve un código de error al proceso que realizó la petición. El problema es que muy
pocas aplicaciones esperan este comportamiento y ello puede provocar situaciones en
las que se pierda información. Por tanto, no es aconsejable.
2. hard. Mediante esta opción, cuando el servidor no responde el proceso que realizó la
petición en el cliente se queda suspendido indefinidamente. Esta es la opción que se re-
comienda normalmente, por ser la que esperan las aplicaciones, y por tanto más segura
desde el punto de vista de los datos.
Esta opción se puede combinar con la opción intr, que permite matar el proceso
mediante el envío de una señal (de la forma tradicional en Linux).
Una vez activos los servicios NFS, el servidor tiene que indicar explícitamente qué direc-
torios desea que se exporten, a qué máquinas y con qué opciones. Para ello existe un fichero
de configuración denominado /etc/exports. A continuación se muestra uno de ejemplo,
sobre el que se explican las características más relevantes:
/ mio.dsic.upv.es(rw,no_root_squash)
/pub (rw,all_squash,anonuid=501,anongid=601)
/pub/nopublic (noaccess)
Cada línea especifica un directorio que se va a exportar, junto con una lista de autoriza-
ciones, es decir, qué ordenadores podrán montar dicho directorio y con qué opciones (desde
el punto de vista del servidor). Cada elemento de la lista de ordenadores puede especificar
un solo ordenador (mediante nombre simbólico o dirección IP) o un grupo de ordenadores
(mediante el uso de caracteres comodín como `*' ó `?'). Cuando el ordendor/rango no se espe-
cifica (por ejemplo, en las últimas dos líneas), esto significa que el directorio correspondiente
se exporta a todos los ordenadores del mundo (conectados a Internet). Por su parte, de entre
las posibles opciones de montaje que, entre paréntesis, pueden especificarse para cada orde-
nador/grupo, las más importantes se resumen a continuación:
() Esta opción establece las opciones que NFS asume por defecto.
all_squash Todos los accesos desde el cliente (con cualquier UID) se transfor-
man en accesos de usuario anónimo.
Es importante destacar que cada vez que se modifica este fichero, para que se activen los
cambios, el servidor NFS debe ser actualizado ejecutando el mandato exportfs -ra.
página de manual exports (5) de Linux. La mayoría de estas opciones establecen como
quién se comporta el proceso cliente cuando su petición de acceso llega al servidor. En prin-
cipio, cada petición lleva asociada el UID y GID del proceso cliente, es decir, se comporta co-
mo sí mismo. No obstante, si está activa la opción all_squash (o bien el UID es cero y
root_squash está activado), entonces el UID/GID se convierten en los del usuario anóni-
mo. De todas formas, hay que tener en cuenta que los permisos sobre cada acceso del cliente
se evalúan mediante los UID/GID que finalmente son válidos en el servidor (es decir, los ori-
ginales o los anónimos, según el caso).
Indice
6.1. Introducción .................................................................................................. 65
6.2. El Directorio Activo ....................................................................................... 65
6.2.1. Dominios Windows 2003 y el Directorio Activo ..................................... 65
6.2.2. Estándares relacionados ....................................................................... 66
6.2.3. El Directorio Activo y DNS .................................................................. 66
6.2.4. Estructura lógica ................................................................................. 67
6.2.5. Estructura física .................................................................................. 74
6.3. Objetos que administra un dominio ................................................................ 77
6.3.1. Usuarios globales ................................................................................ 78
6.3.2. Grupos ............................................................................................... 79
6.3.3. Equipos .............................................................................................. 80
6.3.4. Unidades Organizativas ....................................................................... 81
6.4. Compartición de recursos ............................................................................... 81
6.4.1. Permisos y derechos ............................................................................ 81
6.4.2. Compartición dentro de un dominio ..................................................... 82
6.4.3. Mandatos Windows 2003 para compartir recursos ................................. 83
6.5. Delegación de la administración ..................................................................... 84
63
6.1. Introducción
6.1. Introducción
Este capítulo introduce los conceptos fundamentales sobre dominios Windows 2003, sufi-
cientes para poder unificar y centralizar la administración de conjuntos de sistemas Win-
dows 2003 en organizaciones de cualquier tamaño.
Active Directory es el servicio de directorio de una red de Windows 2003. Este servicio
de directorio es un servicio de red que almacena información acerca de los recursos de la red
y permite el acceso de los usuarios y las aplicaciones a dichos recursos, de forma que se con-
vierte en un medio de organizar, controlar y administrar centralizadamente el acceso a los re-
cursos de la red.
Como veremos, al instalar el Directorio Activo en uno o varios sistemas Windows 2003
(Server) de nuestra red, convertimos a dichos ordenadores en los servidores del dominio, o
más correctamente, en los denominados Controladores de Dominio (Domain Controllers) o sim-
plemente "DCs". El resto de los equipos de la red pueden convertirse entonces en los clientes
de dicho servicio de directorio, con lo que reciben toda la información almacenada en los
controladores. Esta información incluye no sólo las cuentas de usuario, grupo, equipo, etc.,
sino también los perfiles de usuario y equipo, directivas de seguridad, servicios de red, etc.
El Directorio Activo se convierte así en la herramienta fundamental de administración de to-
da la organización.
Una de las ventajas fundamentales del Directorio Activo es que separa la estructura lógica
de la organización (dominios) de la estructura física (topología de red). Ello permite, por una
• DNS (Domain Name System). Servicio de nombres de dominio que permite la administra-
ción de los nombres de ordenadores. Este servicio constituye el mecanismo de asignación
y resolución de nombres (traducción de nombres simbólicos a direcciones IP) en Internet.
• SNTP (Simple Network Time Protocol). Protocolo simple de tiempo de red, que permite dis-
poner de un servicio de tiempo distribuido.
• LDAP (Lightweight Directory Access Protocol). Protocolo ligero (o compacto) de acceso a di-
rectorio. Este es el protocolo mediante el cual las aplicaciones acceden y modifican la in-
formación existente en el directorio.
• Certificados X.509. Estándar que permite distribuir información a través de la red de una
forma segura.
DNS es el sistema de nombres de facto para redes basadas en el protocolo TCP/IP y el ser-
vicio de nombres que se usa para localizar equipos en Internet. Windows 2003 utiliza DNS
para localizar equipos y controladores de dominio. Una estación de trabajo o servidor miem-
bro busca un controlador de dominio preguntando a DNS.
Como conclusión diremos que Directorio Activo utiliza DNS, para tres funciones princi-
pales:
2. Definición del espacio de nombres: Directorio Activo utiliza las convenciones de no-
menclatura de DNS para asignar nombre a los dominios.
3. Búsqueda de los componentes físicos de AD: para iniciar una sesión de red y realizar
consultas en Directorio Activo, un equipo con Windows 2003 debe encontrar primero
un controlador de dominio o servidor de catálogo global para procesar la autenticación
de inicio de sesión o la consulta. La base de datos DNS almacena información acerca de
qué equipos realizan estas funciones para que se pueda atender la solicitud adecuada-
mente. En concreto, esto se lleva a cabo mediante registros de recursos SRV que especifi-
can el servidor (o servidores) del dominio que proporcionan los servicios de directorio
correspondientes.
6.2.4.1. Dominios
La unidad central de la estructura lógica del Directorio Activo es el dominio. Un dominio es
un conjunto de equipos que comparten una base de datos de directorio común. Dentro de
una organización, el Directorio Activo se compone de uno o más dominios, cada uno de ellos
soportado, al menos, por un controlador de dominio. Como hemos visto, cada dominio se
identifica unívocamente por un nombre de dominio DNS, que debe ser el sufijo DNS princi-
pal de todos los ordenadores miembros del dominio, incluyendo el o los controladores.
• Replicar información. Un dominio es una partición del directorio, las cuales son unida-
des de replicación. Cada dominio almacena solo la información sobre los objetos localiza-
dos en este dominio. Active Directory utiliza un modelo de replicación con varios maes-
tros. Todos los controladores de dominio del dominio pueden recibir cambios realizados
sobre los objetos, y pueden replicar estos cambios a todos los controladores de dominio
en el dominio.
• Aplicar Políticas (o Directivas) de Grupo. Un dominio define un posible ámbito para las
políticas. Al aplicar un objeto de política de grupo (GPO) al dominio, este establece como
los recursos del dominio se configuran y se usan. Estas políticas se aplican dentro del do-
minio y no a través de los dominios.
• Delegar permisos administrativos. En las redes que ejecutan Windows 2003, se puede
delegar a medida la autoridad administrativa tanto para unidades organizativas (OUs)
individuales como a dominios individuales, lo cual reduce el número de administradores
necesarios con amplios permisos administrativos. Ya que un dominio representa un lími-
te de seguridad, los permisos administrativos se limitan al dominio.
Según los estándares de nombres DNS, los dominios de Active Directory se crean dentro
de una estructura de árbol invertida, con la raíz en la parte superior. Además, esta jerarquía
de dominios de Windows 2003 se basa en relaciones de confianza, es decir, los dominios se
vinculan por relaciones de confianza entre dominios.
dominios como subdominios de dicha raíz (árbol de dominios) o bien crear otros dominios
"hermanos" de la raíz (bosque de dominios), debajo del cual podemos crear subdominios, y
así sucesivamente.
Añadir nuevos dominios a un bosque es fácil. Sin embargo, existen ciertas li-
mitaciones que hemos de tener en cuenta al respecto:
Finalmente, debemos relacionar estos conceptos con el procedimiento para crear un do-
minio. Esto se hace mediante la ejecución de un asistente denominado dcpromo en el siste-
ma Windows 2003 Server que queramos promocionar a controlador de dominio. En concreto,
este asistente nos permite elegir entre las siguientes opciones de instalación:
2. En el segundo caso, el dominio (nuevo) puede ser un dominio secundario de otro domi-
nio existente (es decir, un subdominio en un árbol de dominios ya creado), o bien el do-
minio principal (raíz) de un nuevo árbol de dominios.
3. En este segundo caso, el dominio raíz puede ser de un bosque existente (agregamos una
raíz nueva a un bosque) o de un nuevo bosque (creación del bosque). Por tanto, el pri-
mer dominio que creemos en una organización siempre será un dominio nuevo de un
árbol nuevo de un bosque nuevo.
En concreto, Windows Server 2003 soporta cuatro niveles funcionales de dominio y tres ni-
veles funcionales de bosque, explicados a continuación.
1. Windows 2000 mixto. Este es el nivel funcional por defecto cuando se crea un nuevo do-
minio (o cuando se actualiza de un sistema anterior). En este nivel, los DCs de Windows
2003 son compatibles dentro del mismo dominio con DCs Windows NT4 y Windows
2000. Por este motivo, un conjunto significativo de opciones de configuración no están
disponibles (como por ejemplo el anidamiento de grupos, el cambio de ámbito de grupo
y los grupos universales).
2. Windows 2000 nativo. En este nivel funcional, los DCs de Windows 2003 son compati-
bles dentro del mismo dominio con DCs que ejecuten Windows 2000 pero no Windows
NT4. Se tiene una funcionalidad completa del Directorio Activo a nivel de Windows
2000, aunque se excluyen las nuevas opciones que Windows 2003 ha introducido en los
dominios (entre las cuales destaca la posibilidad de cambiar de nombre a un DC sin ne-
cesidad de despromocionarlo previamente).
3. Windows Server 2003 provisional. En este nivel funcional, los DCs de Windows 2003
son compatibles dentro del mismo dominio con DCs que ejecuten Windows NT4 pero
no Windows 2000. Se trata de un nivel funcional reservado únicamente para migracio-
nes directas de NT4 a Windows 2003, y se supone que es completamente transitorio.
4. Windows Server 2003. En este nivel funcional, los DCs de Windows 2003 son compati-
bles únicamente entre sí (sólo puede configurarse si todos los DCs del dominio son Win-
dows Server 2003). Este nivel ofrece la funcionalidad completa de dominios, incluyendo
todas las características definidas en Windows 2000 más las nuevas incluidas en Win-
dows Server 2003.
Por otro lado, un bosque de dominios Windows 2003 puede estar en tres niveles funciona-
les:
• Windows 2000. Este es el nivel por defecto al crear un nuevo bosque (o actualizar desde
un sistema anterior). En este nivel funcional, los DCs de Windows 2003 son compatibles
dentro del bosque con DCs que ejecuten Windows 2000 o Windows NT4. Se tiene una
funcionalidad completa del bosque a nivel de Windows 2000, aunque se excluyen las
nuevas opciones que Windows 2003 ha introducido a este nivel (incluyendo mejoras en la
replicación, las relaciones de confianza entre bosques y la posibilidad de renombrar do-
minios en lugar de eliminarlos y volverlos a crear).
• Windows Server 2003 provisional. En este nivel funcional, los DCs de Windows 2003
son compatibles dentro del bosque con DCs que ejecuten Windows NT4 pero no Win-
dows 2000. Se trata de un nivel funcional reservado únicamente para la migración directa
de NT4 a Windows 2003 en el primer dominio del bosque, y se supone que es completa-
mente transitorio.
• Windows Server 2003. En este nivel funcional, los DCs de Windows 2003 son compati-
bles únicamente entre sí (sólo puede configurarse si todos los DCs del bosque son Win-
dows Server 2003). Este nivel ofrece la funcionalidad completa para los bosques, inclu-
yendo todas las características definidas en Windows 2000 más las nuevas incluidas en
Windows Server 2003.
Por tanto, por defecto al crear un nuevo bosque, éste se sitúa en el nivel funcional "Win-
dows 2000", y al crear un nuevo dominio, éste se sitúa en el nivel funcional "Windows 2000
mixto", manteniendo, en ambos casos, la compatibilidad completa con sistemas anteriores.
Tanto a nivel de dominio como de bosque, la transición entre niveles funcionales sólo es
posible elevando el nivel actual, es decir, pasando a un nivel con mayor funcionalidad (a ex-
cepción de los niveles provisionales, reservados para casos poco frecuentes). La elevación de
nivel funcional es, por tanto, un paso irreversible, y sólo debe hacerse cuando se está seguro
de que no van a añadirse sistemas anteriores como DCs al dominio, o al bosque. La elevación
del nivel funcional de dominio o de bosque se realiza desde la herramienta "Dominios y
Confianzas de Active Directory".
Windows Server 2003 soporta varios tipos de relaciones de confianza, que veremos poste-
riormente. Al margen de su uso, los diferentes tipos de relaciones se diferencian en función
de tres rasgos característicos:
• Transitividad: algunos tipos de relaciones son transitivas y otras no. Una relación de con-
fianza transitiva es aquella que permite que si un dominio A confía en otro B, y éste con-
fía en un tercero C, entonces de forma automática, A confía en C. En las relaciones no
transitivas, la confianza entre A y C tendría que añadirse explícitamente.
• Confianza raíz de árbol. Esta relación se establece de forma automática entre los domi-
nios raíz del mismo bosque. Es bidireccional y transitiva.
• Confianza de acceso directo. Este tipo de relación debe establecerse de forma manual, y
tiene como objetivo mejorar la eficiencia en los inicios de sesión remotos. Si los usuarios
de un dominio A necesitan acceder frecuentemente a los recursos de un dominio B, y am-
bos dominios se encuentran "lejos" entre sí (con muchos dominios intermedios), la con-
fianza permite una relación directa que acorta el tiempo necesario para la autentificación
de los usuarios. Es transitiva y unidireccional (si se necesita en ambos sentidos, deben
crearse dos relaciones de confianza).
• Confianza de bosque . Este tipo de relación debe crearse de forma manual entre los do-
minios raíz de dos bosques distintos, y permite a los usuarios de cualquier dominio de un
bosque acceder a los recursos de cualquier dominio del otro bosque. Es unidireccional y
sólo es transitiva entre dos bosques. Este tipo de relaciones sólo están disponibles si am-
bos bosques se sitúan en el nivel funcional "Windows Server 2003".
• Confianza de territorio . Este tipo de relación debe crearse de forma manual entre un do-
minio Windows 2003 y un territorio (realm) Kerberos (versión 5) que no sea Windows, y
permite interoperabilidad entre ambos. Es unidireccional y puede ser transitiva o no.
Por tanto, las relaciones de confianza automáticas (implícitas) se crean por defecto al ir
añadiendo dominios al bosque, y mantienen relacionados todos esos dominios de forma bi-
direccional y transitiva. El efecto de estas relaciones es que de forma automática, los usuarios
de cualquier dominio del bosque son conocidos (y pueden acceder a los recursos) en todos
los dominios de dicho bosque. Las relaciones de confianza manuales (explícitas) están reser-
vadas para casos en donde se busca mejorar la eficiencia o permitir interactuar con otros bos-
ques o con dominios que no son Windows 2003.
De este modo, en muchas organizaciones de pequeño o medio tamaño resulta más ade-
cuado implementar un modelo de dominio único con múltiples unidades organizativas que
un modelo de múltiples dominios. Si es necesario, cada unidad puede administrarse inde-
pendientemente, con uno o varios administradores delegados y comportamientos (políticas)
diferentes.
6.2.5.1. Sitios
Un sitio es una combinación de una o varias subredes IP que están conectadas por un víncu-
lo de alta velocidad. Definir sitios permite configurar la topología de replicación y acceso a
Active Directory de forma que Windows 2003 utilice los vínculos y programas más efectivos
para el tráfico de inicio de sesión y replicación.
• Para permitir que los usuarios se conecten a un controlador de dominio mediante una co-
nexión confiable de alta velocidad.
Es decir, los sitios definen la estructura física de la red, mientras que los dominios definen
la estructura lógica de la organización.
1. Partición del directorio de esquema: contiene todos los tipos de objetos y atributos que
pueden ser creados en Active Directory. Estos datos son comunes a todos los dominios
en el bosque. Por tanto los datos del esquema se replican a todos los controladores de
dominio del bosque.
3. Partición de directorio de dominio: contiene todos los objetos del directorio para este
dominio. Dichos datos se replican a todos los controladores de ese dominio, pero no a
otros dominios.
Además de estas cuatro particiones de directorio de escritura, existe una cuarta categoría
de información almacenada en un controlador de dominio: el catálogo global. Un catálogo
global es un controlador de dominio que almacena las particiones de directorio de escritura,
así como copias parciales de sólo lectura de todas las demás particiones de directorio de do-
minio del bosque.
En Windows 2003, todos los controladores de dominio admiten cambios, y estos cambios
se replican a todos los controladores de dominio. Las operaciones de administración de
usuarios, grupos y equipos son operaciones típicas de múltiples maestros. Sin embargo no es
práctico que algunos cambios se realicen en múltiples maestros debido al tráfico de replica-
ción y a los posibles conflictos en las operaciones básicas. Por estas razones, las funciones es-
peciales, como la de servidor de catálogo global y operaciones de maestro único, se asignan
sólo a determinados controladores de dominio. A continuación veremos estas funciones.
Un servidor de catálogo global es un controlador de dominio que almacena una copia del
catálogo y procesa las consultas al mismo. El primer controlador de dominio que se crea en
Active Directory es un servidor de catálogo global. Se pueden configurar controladores de
dominio adicionales para que sean servidores de catálogo global con el fin de equilibrar el
tráfico de autenticación de inicios de sesión y la transferencia de consultas.
• Permite que un usuario inicie una sesión en la red mediante el suministro de la informa-
ción de pertenencia a grupos universales a un controlador de dominio cuando inicia un
proceso de sesión.
Todos los bosques de Active Directory deben tener controladores de dominio que cum-
plan dos de las cinco funciones de operaciones de maestro único. Las funciones para todo el
bosque son:
Todos los dominios de Active Directory deben tener controladores de dominio que cum-
plan tres de las cinco funciones de operaciones de maestro único:
Por tanto, en Windows 2003, la gestión de un dominio puede realizarse de forma centrali-
zada, administrando únicamente el Directorio Activo. En este contexto, "administrar" signifi-
ca crear y configurar adecuadamente los objetos del directorio que representan a las entida-
des o recursos que existen en el dominio (recursos como usuarios, grupos, equipos, etc.).
Este apartado expone con detalle los principales tipos de objetos que pueden crearse en el
Directorio Activo de Windows 2003, planteando en cada caso sus opciones de configuración
y su utilidad dentro de la administración del dominio.
1. identificar y autentificar a las personas (usuarios) que deben poder acceder al sistema, y
2. administrar los permisos y derechos que permitirán aplicar el control de acceso adecua-
do a dichos usuarios en el sistema.
Por lo tanto, utilizando únicamente protección local, si una persona debe trabajar en va-
rios ordenadores, necesita poseer una cuenta de usuario en cada uno de ellos. A continua-
ción explicaremos una alternativa a esto.
En un dominio Windows 2003, cualquier servidor que actúa como DC puede crear cuen-
tas de usuario global. En este caso, el término "global" debe interpretarse como global al domi-
nio. Los datos de una cuenta de usuario global se almacenan en el Directorio Activo y por
tanto son conocidos por todos los ordenadores del dominio (en realidad, por todos los orde-
nadores de bosque). Em otras palabras, no es que se cree una cuenta para ese usuario en cada
ordenador miembro, sino que existe una única cuenta (con un único SID) que es visible en to-
dos los ordenadores del dominio. En este caso, cuando una persona se conecta a cualquiera
de dichos ordenadores utilizando para ello su cuenta de usuario global, el ordenador en
cuestión realiza una consulta al Directorio Activo (i.e., a alguno de los DCs) para que se vali-
den las credenciales del usuario. El resultado de la validación es enviado al ordenador
miembro (y de éste al usuario), concediendo o rechazando la conexión.
Los ordenadores miembros de un dominio que no sean DCs, además de conocer a los
usuarios globales del dominio, pueden crear también sus propios usuarios locales. En este ca-
so, estos usuarios son únicamente visibles en el ordenador en el que han sido creados. Cuan-
do una persona desea entrar en el sistema utilizando una cuenta local, dicha cuenta se valida
contra la base de datos local de ese ordenador. Además, es importante resaltar que a dicho
usuario local no se le pueden asignar permisos sobre recursos que residan en otro sistema
Windows 2003 (puesto que allí no existe). Por el contrario, a un usuario global se le pueden
conceder permisos sobre cualquier recurso (archivo, directorio, impresora, etc.) de cualquier
ordenador miembro del dominio, puesto que es visible (y posee el mismo SID) en todos
ellos.
6.3.2. Grupos
De forma análoga a los usuarios globales, existen grupos que son almacenados en el Directo-
rio Activo y que por tanto son visibles desde todos los ordenadores del dominio (y, en algu-
nos casos, también de otros dominios del bosque). En el directorio pueden crearse dos tipos
de grupos: grupos de distribución y grupos de seguridad. Los primeros se utilizan exclusiva-
mente para crear listas de distribución de correo electrónico, mientras que los segundos son
los que se utilizan con fines administrativos. Por este motivo, a partir de ahora nos referire-
mos exclusivamente a los grupos de seguridad.
En concreto, en dominios Windows 2003 se definen tres clases de grupos de seguridad (o,
de forma más precisa, se pueden definir grupos de tres ámbitos distintos):
1. Grupos locales del dominio. En un dominio en nivel funcional Windows 2000 mixto,
pueden contener cuentas de usuario y grupo globales de cualquier dominio del bosque.
En un dominio en nivel Windows 2000 nativo o Windows Server 2003, pueden contener,
además, grupos universales y otros grupos locales del dominio. Sólo son visibles en el
dominio en que se crean, y suelen utilizarse para conceder permisos y derechos en cual-
quiera de los ordenadores del dominio (nótese que en modo mixto, sólo son visibles por
los DCs del dominio, y por tanto sólo se pueden utilizar para administrar permisos y
derechos en esos ordenadores).
2. Grupos globales. En un dominio en nivel funcional Windows 2000 mixto, pueden con-
tener cuentas de usuario globales del mismo dominio. En un dominio en nivel Windows
2000 nativo o Windows Server 2003, pueden contener, además, otros grupos globales
del mismo dominio. Son visibles en todos los dominios del bosque, y suelen utilizarse
para clasificar a los usuarios en función de las labores que realizan.
Por tanto, la administración de la protección en cada ordenador del dominio puede reali-
zarse mediante grupos locales del dominio o grupos locales del equipo en que reside el re-
curso a administrar. Por tanto, la recomendación que se hacía en la protección local respecto
a la asignación de permisos en base a grupos locales sigue siendo válida. En el caso más ge-
neral, la regla que recomienda Windows 2003 es la siguiente:
1. Asignar usuarios globales a grupos globales, según las labores que desempeñen en la
organización.
2. Incluir (usuarios y/o) grupos globales en grupos locales (del equipo o del dominio) se-
gún el nivel de acceso que vayan a tener.
3. Asignar permisos y derechos únicamente a estos grupos locales (del equipo o del domi-
nio).
En relación con esto, es importante saber que cuando un ordenador pasa a ser miembro
de un dominio, el grupo global Administradores del dominio se incluye automática-
mente en el grupo local Administradores de dicho ordenador. De igual forma, el grupo
global Usuarios del dominio se incluye dentro del grupo local Usuarios. De esta for-
ma, los administradores y usuarios normales del dominio tienen en cada miembro los mis-
mos derechos y permisos que los que tengan ya definidos los administradores y usuarios lo-
cales, respectivamente. El administrador local puede, si lo desea, invalidar esta acción auto-
mática, extrayendo posteriormente los grupos globales de los locales.
6.3.3. Equipos
Como hemos visto, en el Directorio Activo de un dominio se conserva toda la información
relativa a cuentas de usuarios y grupos globales. Esta misma base de datos de directoio reco-
ge también una cuenta de equipo por cada uno de los ordenadores miembro de un dominio.
Entre otras informaciones, en cada una de estas cuentas se almacena el nombre del orde-
nador, así como un identificador único y privado que lo identifica unívocamente. Este identi-
ficador es análogo al SID de cada cuenta de usuario o grupo, y sólo lo conocen los DCs y el
propio ordenador miembro. Es por tanto, un dato interno del sistema operativo, y ni siquiera
el administrador puede cambiarlo. Es precisamente este dato, propio de las cuentas de usua-
rio, grupo y equipo, lo que permite asignar permisos y derechos en los sistemas a estos tres
tipos de cuentas. Por este motivo, se denominan principales de seguridad (security principals).
Por tanto, la asignación de derechos y permisos (NTFS) a cuentas de equipo es posible, pero
se limita a situaciones muy poco frecuentes y está fuera del ámbito de este texto.
Windows 2003 puede utilizar distintos protocolos de comunicaciones seguros entre los
ordenadores miembro de un dominio y los DCs. Entre ellos los más importantes son NTLM
(el protocolo utilizado por versiones anteriores de Windows NT, que se mantiene por com-
patibilidad hacia atrás) y Kerberos V5. Kerberos presenta numerosas ventajas respecto a
NTLM, pero sólo es viable en la práctica si todas las máquinas del dominio son Windows
2000, Windows XP o Windows Server 2003. Estos protocolos se utilizan siempre que infor-
mación relativa a aspectos de seguridad se intercambia entre sistemas pertenecientes a algún
dominio y, en concreto, para autenticar usuarios (como se ha explicado arriba).
Si la carpeta reside en una partición FAT, este filtro de acceso será el único que determine
los usuarios que van a poder acceder al contenido de la carpeta, puesto que no es posible de-
terminar permisos sobre la misma o sus archivos. Es decir, el filtro sólo se establece para po-
der acceder al recurso. Si un usuario tiene permisos suficientes para conectarse a un recurso,
tendrá acceso sobre todos los archivos y subcarpetas del recurso. Concretamente, el tipo de
acceso sobre todos ellos será el que le permita el permiso sobre el recurso (Lectura, Es-
critura o Control Total).
Por el contrario, si la carpeta se encuentra en una partición NTFS, ésta tendrá unos permi-
sos establecidos (así como sus subcarpetas y archivos), al margen de estar o no compartida.
En este caso también es posible establecer permisos desde la ventana de Compartir..., pe-
ro entonces sólo los usuarios que puedan pasar ambos filtros podrán acceder a la carpeta
compartida y a su contenido. En este caso se recomienda dejar Control Total sobre To-
dos en los permisos asociados al recurso (opción por defecto), y controlar quién (y cómo)
puede acceder al recurso y a su contenido mediante los permisos asociados a dicha carpeta
(y a sus archivos y subcarpetas). Sin embargo, esta no es la opción por defecto en Windows
Server 2003 (aunque sí lo era en Windows 2000), que sólo concede inicialmente el permiso de
lectura al grupo Todos al compartir una carpeta.
Esta recomendación es muy útil, si tenemos en cuenta que de esta forma para cada carpe-
ta (y archivo) del sistema no utilizamos dos grupos de permisos sino uno solo, independien-
temente de que la carpeta sea o no compartida. Este forma de trabajar obliga al administra-
dor a asociar los permisos correctos a cada objeto del sistema (aunque no esté compartido),
pero por otra parte se unifica la visión de la seguridad de los archivos, con lo que a la larga
resulta más segura y más sencilla.
Primero, una vez se ha compartido físicamente una carpeta en la red (según el procedi-
miento descrito arriba), el administrador del dominio puede además publicar este recurso en
el directorio. Para ello debe crear un nuevo objeto, en la unidad organizativa adecuada, de ti-
po Recurso compartido. A este objeto se le debe asociar un nombre simbólico y el nom-
bre de recurso de red que representa (de la forma \\equipo\recurso). Es importante te-
ner en cuenta que cuando se publica el recurso de esta forma, no se comprueba si realmente
existe o no, por lo que es responsabilidad del administrador el haberlo compartido y que su
nombre coincida con el de la publicación. Una vez publicado, el recurso puede localizarse
mediante búsquedas en el Directorio Activo, como el resto de objetos del mismo. Windows
Server 2003 ha introducido otra forma de publicación: entre las opciones de la pestaña "Com-
partir" del explorador de archivos, puede publicarse dicha compartición en el directorio,
simplemente asignándole un nombre simbólico. Si se publica de esta forma, el proceso crea
automáticamente el objeto que representa la carpeta compartida en el directorio.
Y segundo, cuando un sistema Windows 2003 se agrega a un dominio, los siguientes re-
cursos se comparten de forma automática y por defecto (estas comparticiones no deben mo-
dificarse ni prohibirse):
• letra_de_unidad$. Por cada partición existente en el sistema Windows 2003 (C:, D:,
etc.) se crea un recurso compartido denominado C$, D$, etc. Los administradores del do-
minio, así como los operadores de copia del domino, pueden conectarse por defecto a es-
tas unidades.
• IPC$. Recurso que agrupa los tubos (colas de mensajes) utilizados por los programas pa-
ra comunicarse entre ellos. Se utiliza durante la administración remota de un ordenador
Windows 2003, y cuando se observa los recursos que comparte.
• SYSVOL. Recurso que exporta cada DC de un dominio. Contiene información del Directo-
rio Activo (por ejemplo, de directivas de grupo) que debe replicarse en todos los DCs del
dominio.
En relación con los nombres de estos recursos, es interesante saber que añadir el carácter
"$" al final de cualquier nombre de recurso tiene un efecto específico: prohibe que dicho re-
curso se visualice dentro de la lista de recursos que una máquina exporta al resto. Es decir,
convierte un recurso en "invisible" para al resto del mundo. En este caso, un usuario remoto
sólo podrá conectarse al recurso si conoce su nombre de antemano (y tiene suficientes permi-
sos, obviamente).
net share
net share recurso_compartido
net share recurso_compartido=unidad:ruta_de_acceso
[/users:número | /unlimited] [/remark:"texto"]
net share recurso_compartido [/users:número | unlimited]
[/remark:"texto"]
net share {recurso_compartido | unidad:ruta_de_acceso} /delete
Indice
7.1. Introducción .................................................................................................. 87
7.2. Objeto de Política de Grupo (GPO) .................................................................. 87
7.3. Aplicación de Políticas de Grupo .................................................................... 89
7.4. Políticas de Grupo y grupos de seguridad ....................................................... 90
7.4.1. Filtrar el ámbito de aplicación de un GPO ............................................. 90
7.4.2. Delegar la administración de un GPO ................................................... 91
7.5. Principales políticas incluidas en un GPO ........................................................ 92
7.5.1. Plantillas administrativas ..................................................................... 92
7.5.2. Configuraciones de seguridad .............................................................. 93
7.5.3. Instalación de software ........................................................................ 93
7.5.4. Guiones (Scripts) ................................................................................. 93
7.5.5. Redirección de carpetas ....................................................................... 95
7.5.6. Otras políticas ..................................................................................... 95
7.6. Recomendaciones de uso ................................................................................ 95
85
7.1. Introducción
7.1. Introducción
Este capítulo introduce una de las herramientas que incluye Windows Server 2003 para cen-
tralizar la administración y configuración de usuarios y equipos en un dominio: las Políticas o
Directivas de Grupo (Group Policies). Las políticas de grupo permiten establecer de forma cen-
tralizada múltiples aspectos de la configuración que reciben los usuarios cuando se conectan
a una máquina del dominio. Estos aspectos incluyen, entre otros, configuraciones del regis-
tro, políticas de seguridad, instalación automática de software, ejecución de scripts, redirec-
ción de carpetas locales a recursos de red, etc.
Dentro de cada GPO, las políticas se organizan jerárquicamente en un árbol temático que
permite una distribución lógica de las mismas (ver Figura 7.1, “Herramienta de configura-
ción de un GPO”). En este árbol de políticas, justo debajo del nodo raíz, existen dos nodos
principales que separan las configuraciones para equipos y para usuarios:
2. Las configuración de usuario agrupan los parámetros de configuración que pueden es-
tablecerse a nivel de usuario. Cuando un GPO afecta a un usuario, todas aquellas políti-
cas de usuario del GPO que el administrador haya configurado se aplicarán cuando di-
cho usuario inicie una sesión local (en cualquier equipo del dominio).
Además de esa aplicación inicial de las políticas (en el inicio de los equipos y en el inicio
de sesión de los usuarios), éstas se reevalúan automáticamente bajo demanda del adminis-
trador y, además, de forma periódica. Por defecto, la reevaluación periódica se produce cada
90 minutos, con un retraso aleatorio de hasta 30 minutos.
Por último, en cada GPO, el administrador puede deshabilitar selectivamente las políticas
de equipo y/o de usuario, lo cual evita que se procesen y puedan aplicarse. Esto resulta útil
en aquellos casos en los que en un GPO sólo se configuran políticas de uno de ambos tipos.
Supongamos, por ejemplo, que en un GPO se han configurado únicamente ciertas políticas
de equipo (y ninguna de usuario). Si el administrador no deshabilita la parte de políticas de
usuario, el sistema las seguirá procesando (aunque no las aplicará, al no estar configuradas)
para cada usuario al que afecte el GPO, con el consiguiente retraso (no útil) en el inicio de se-
sión de dicho usuario.
• Cada GPO se vincula a un contenedor del directorio activo (un sitio, un dominio o una
unidad organizativa), afectando implícitamente a todos los objetos que residen en él:
• Los equipos se verán afectados por las políticas de equipo del GPO.
• Los usuarios se verán afectados por las política de usuario del GPO.
• Los sub-contenedores heredarán el GPO completo.
Es decir, los GPOs vinculados a un sitio son heredados por su dominio. Estos GPOs,
más los vinculados al dominio, son heredados por las unidades organizativas de primer ni-
vel establecidas en el dominio. Todos ellos, más los vinculados a estas unidades organi-
zativas, son heredados por las unidades de segundo nivel ubicadas dentro de aquellas, y
así sucesivamente.
• Existe una relación "muchos a muchos" entre contenedores y GPOs: un mismo GPO pue-
de vincularse a múltiples contenedores y un contenedor puede tener vinculados múlti-
ples GPOs.
En resumen, las políticas de grupo son heredables y acumulativas. Eso quiere decir que,
desde el punto de vista de un equipo o de un usuario concretos, la lista de GPOs que les
afecta depende de su ubicación en Directorio Activo: esta lista incluye todos los GPOs vincu-
lados a los contenedores por los que hay que pasar para llegar desde el sitio (y dominio) has-
ta la unidad organizativa concreta donde ese equipo o usuario se ubica.
Puesto que cada GPO incorpora los mismos (posibles) parámetros de configuración, es
posible que se produzcan conflictos entre los distintos GPOs que afectan a un usuario/equi-
po. Resulta necesario que exista un orden de aplicación concreto y conocido, de forma que se
sepa finalmente qué politica(s) afectarán a cada usuario y equipo. Este orden es el siguiente:
1. Se aplica la política de grupo local del equipo (denominada Local Group Policy Object, o
LGPO).
Este orden de aplicación decide la prioridad entre los GPOs, puesto que una política que se
aplica más tarde prevalece sobre otras establecidas anteriormente (las sobreescribe). De forma
análoga a lo establecido para permisos en el sistema de archivos NTFS, podríamos decir que
las políticas explícitas de un contenedor tienen prioridad (se aplican más tarde) sobre las po-
líticas heredadas de contenedores superiores. Este comportamiento puede ser refinado me-
diante los siguientes dos parámetros:
2. Bloquear herencia de directivas (Block policy inheritance). Este parámetro pertenece a los
contenedores del Directorio Activo. En particular, si un contenedor tiene este parámetro
activado, se desactiva la herencia de las políticas establecidas en contenedores superio-
res, excepto aquellas que corresponden a GPOs vinculados con el parámetro "Forzado".
El comportamiento que se acaba de describir afecta a todos los equipos y a todos los
usuarios del dominio en función, exclusivamente, de su ubicación dentro del Directorio Acti-
vo. En el caso de las políticas de usuario, este comportamiento y la propia administración de
los GPOs puede refinarse aún más utilizando grupos de seguridad.
• El permiso Aplicar debe asignarse conjuntamente con el permiso Leer, ya que si no, el
GPO no se aplica al grupo correspondiente. Si asignamos Aplicar a grupos más restringi-
dos que el de Usuarios Autentificados, es recomendable que hagamos lo mismo con el
permiso Leer, puesto que el GPO se procesa para todos los usuarios que poseen este per-
miso, aunque sólo se aplica a los que poseen además el Aplicar.
• y el sistema (System).
A pesar de que estos grupos no tienen concedido el permiso "Aplicar a", los administra-
dores también reciben por defecto la política, puesto que forman parte del grupo Usuarios
Autentificados.
Es decir, en muchos casos, la misma política existe en ambos subárboles (equipo y usua-
rio), aunque generalmente en cada caso con significados y parámetros distintos. Por ejemplo,
bajo Configuración del Equipo--Configuración de Windows--Scripts podemos encontrar los scripts
que deben ejecutarse cada vez que el equipo se inicia o detiene, mientras que bajo Configura-
ción de Usuario--Configuración de Windows--Scripts se encuentran los scripts que deben ejecu-
tarse cada vez que el usuario inicia o finaliza una sesión local.
A continuación se exponen los grupos de políticas más importantes que pueden configu-
rarse mediante un GPO, independientemente de su ubicación concreta dentro de la jerar-
quía.
Estas políticas han sido rediseñadas respecto a sus homólogas en Windows NT 4.0, que
tenían un serio inconveniente: una vez se habían aplicado, su efecto era permanente porque
modificaban los valores del registro en su ubicación original, perdiéndose el valor anterior.
Por ello, al eliminar la política no se desactivaban y la única forma de hacerlo era establecien-
do políticas contrarias o editando el registro manualmente. En Windows Server 2003, las po-
líticas que afectan el registro se almacenan en un lugar del registro dedicado exclusivamente
a las Políticas de Grupo. Esto significa que dejan de tener efecto (y se recupera el valor por
defecto original del registro) si el GPO que las estableció deja de estar en uso. En la termino-
logía de Windows Server 2003, las nuevas políticas se denominan políticas verdaderas (true po-
licies), mientras que las que no cumplen con esta nueva filosofía se denominan preferencias
(Group policy preferences), y su uso está claramente desaconsejado. Por defecto, todas las polí-
ticas que pueden seleccionarse bajo el apartado de Plantillas Administrativas de un GPO son
verdaderas.
1. Políticas de Cuentas. Se pueden configurar todos los aspectos sobre el plan de cuentas
que se vieron en la Sección 3.5.1, “Otras directivas de seguridad”, tales como caducidad
de contraseñas, bloqueo de cuentas, configuración de Kerberos, etc.
2. Políticas Locales. Bajo este apartado se encuentran las configuraciones que correspon-
den a la denominada "Directiva local" de la Sección 3.5.1, “Otras directivas de seguri-
dad”, es decir, la configuración de la auditoría, la asignación de derechos y privilegios
de usuario y las opciones de seguridad.
1. Asignar una aplicación significa que los usuarios que la necesitan la tienen disponible
en su escritorio sin necesidad de que un administrador la instale. Cuando se asigna una
aplicación a un usuario o equipo, se crea una entrada para ella en el menú de inicio y se
configura el registro adecuadamente. La primera vez que el usuario ejecuta la aplica-
ción, ésta es automáticamente instalada en el equipo cliente.
3. Inicio de sesión (usuario). Se ejecuta cada vez que el usuario inicia una sesión interacti-
va (local) en un equipo.
4. Cierre de sesión (usuario). Se ejecuta cada vez que el usuario se finaliza una sesión inte-
ractiva en un equipo.
En todos esos casos, los scripts pueden implementarse en cualquiera de los lenguajes que
entiende el soporte de scripts independiente del lenguaje de Windows Server 2003, o Win-
dows Scripting Host. Actualmente existe soporte para Visual Basic Scripting Edition, Java
Script, PERL y los tradicionales archivos por lotes MS-DOS. Es posible que en el futuro se in-
cluya soporte para otros lenguajes como Tcl-Tk o Python.
El comportamiento de los scripts puede perfilarse mediante algunas políticas que se si-
túan en el apartado de Plantillas Administrativas. En la tabla a continuación se muestran al-
gunas que resulta útil conocer.
Un ejemplo útil de redirección sería que la carpeta "Mis documentos" apuntara a un di-
rectorio personal de cada usuario en la red, como por ejemplo el recurso
\\servidor\home\%username%. Esta aproximación resulta más últil que conectarle a di-
cho usuario ese recurso a una unidad de red, puesto que muchas aplicaciones abren automá-
ticamente la carpeta "Mis documentos" para buscar los archivos personales de ese usuario.
Para que dicha redirección funcione correctamente, es necesario que el usuario que recibe la
redirección sea el propietario de la carpeta compartida.
• Utilizar el proceso Loopback sólo cuando sea necesario. Aunque esta opción queda fue-
ra de los objetivos de este capítulo, se explicará brevemente a continuación. En algunas
ocasiones muy concretas, puede resultar conveniente para ciertos equipos en un dominio
que sólo se apliquen las políticas de equipo que les afecten. En otras palabras, conseguir
que nunca se apliquen las políticas de usuario, independientemente del usuario que inicie
una sesión local en dichos equipos. Esto puede conseguirse mediante la denominada Po-
lítica de Grupo "de bucle inverso" o Loopback, que puede configurarse en la política Con-
figuración del Equipo--Plantillas Administrativas-
-Sistema--Directivas de Grupo--Utilizar modo de proceso de bucle
inverso de directivas de grupo.. Puesto que esta opción se aleja bastante del
funcionamiento normal de los GPOs, se recomienda limitarlo a las ocasiones en que sea
estrictamente necesario.
Indice
8.1. Introducción .................................................................................................. 99
8.2. Uso de pam_script ......................................................................................... 99
97
8.1. Introducción
8.1. Introducción
La posibilidad de aplicar políticas de seguridad de una forma centralizada en un dominio re-
sulta de mucha utilidad para el administrador, ya que le permite controlar el comportamien-
to, el entorno de trabajo y las restricciones de los usuarios en función de sus necesidades y/o
de su posición en la organización.
Este capítulo expone cómo podemos implantar políticas de seguridad en dominios Linux,
de forma análoga a las GPOs de Windows 2003, pero mediante una tecnología mucho más
simple. En concreto, se trata de un módulo de PAM denominado "pam_script"
[http://freshmeat.net/projects/pam_script/] que permite ejecutar scripts escritos por el admi-
nistrador cuando los usuarios inician o terminan una sesión de trabajo en el sistema. Tenien-
do en cuenta la potencia que ofrecen de los lenguajes de scripting para la administración de
sistemas en Linux, es fácil imaginar el nivel de flexibilidad que esta solución plantea tanto
para la configuración del entorno de trabajo inicial del usuario como para las acciones auto-
máticas que deben ejecutarse cuando el usuario finaliza su sesión.
1. Autenticación. Si dentro del fichero de configuración del servicio PAM establecemos es-
te módulo en la sección auth, cada vez que un usuario se autentifique utilizando dicho
módulo se ejecutará un script, cuya ubicación por defecto es /etc/security/onauth.
2. Inicio de sesión. Si dentro del fichero de configuración del servicio PAM establecemos
este módulo en la sección session, cada vez que un usuario inicie una sesión utilizan-
do dicho módulo se ejecutará un script, cuya ubicación por defecto es /
etc/security/onsessionopen.
3. Fin de sesión. Si dentro del fichero de configuración del servicio PAM establecemos este
módulo en la sección session, cada vez que un usuario cierre una sesión utilizando di-
cho módulo se ejecutará un script, cuya ubicación por defecto es /
etc/security/onsessionclose.
#%PAM-1.0
auth required pam_env.so
auth required pam_stack.so service=system-auth
auth required pam_script.so expose=1 runas=root
auth required pam_nologin.so
En principio, los scripts se ejecutan con los atributos de protección del usuario implicado,
aunque se puede estableer que se ejecuten en el contexto de protección de otro usuario, me-
diante la opción runas=usuario. En el caso de gdm de arriba, los tres scripts se ejecutarán
como root.
Por otro lado, los scripts siempre reciben dos parámetros como argumentos: el primer ar-
gumento es el nombre del usuario implicado en la autenticación/sesión, y el segundo argu-
mento es el nombre del servicio para el que se está ejecutando el módulo PAM. Además,
existe una variable de entorno denominada PAM_AUTHTOK que contiene la contraseña de di-
cho usuario. Esto puede ser útil, por ejemplo, para realizar montajes de recursos SMB, que
requieren de dicha contraseña. El valor de retorno del script es significativo: un valor igual a
cero se entiende como éxito mientras que un valor diferente se supone fallido. Si el módulo
PAM es requerido, un módulo que falle supone que el proceso de autenticación o inicio de
sesión falla para el usuario. Por tanto, también se puede utilizar el script para realizar com-
probaciones de cualquier tipo que permitan o impidan al usuario entrar al sistema.
USER=$1
SERVICE=$2
if [ ! -d /home/$USER ]
then
mkdir /home/$USER 2>/dev/null
find /etc/skel -name ".*" -exec cp -r \{\} /home/$USER/ \;
chown -R $USER.g-$USER /home/$USER 2>/dev/null
fi
if [ ! -d /home/$USER/Personal ]
then
mkdir /home/$USER/Personal 2>/dev/null
chown $USER.g-$USER /home/$USER/Personal 2>/dev/null
fi
exit 0
Indice
9.1. ¿Qué es Samba? ........................................................................................... 105
9.2. El protocolo SMB ......................................................................................... 106
9.3. Configuración de Samba .............................................................................. 109
9.4. Niveles de seguridad ................................................................................... 110
9.5. Configuración de Samba en el nivel domain .................................................. 111
9.6. Tratamiento de los accesos como invitado ..................................................... 112
9.7. El sistema de ficheros CIFS para Linux .......................................................... 113
9.8. Opciones del servidor Samba ........................................................................ 114
9.9. Opciones del recurso .................................................................................... 115
103
9.1. ¿Qué es Samba?
El programa smbd se encarga de ofrecer los servicios de acceso remoto a ficheros e im-
presoras (implementando para ello el protocolo SMB), así como de autenticar y autorizar
usuarios. smbd ofrece los dos modos de compartición de recursos existentes en Windows,
basado en usuarios o basado en recursos. En el modo basado en usuarios (propio de los do-
minios Windows) la autorización de acceso al recurso se realiza en función de nombres de
usuarios registrados en un dominio, mientras que en el modo basado en recursos (propio de
Windows 3.11/95) a cada recurso se le asigna una contraseña, estando autorizado el acceso
en función del conocimiento de dicha contraseña.
El programa nmbd permite que el sistema UNIX participe en los mecanismos de resolu-
ción de nombres propios de Windows, lo cual incluye el anuncio en el grupo de trabajo, la
gestión de la lista de ordenadores del grupo de trabajo, la contestación a peticiones de reso-
lución de nombres y el anuncio de los recursos compartidos. De esta forma, el sistema UNIX
aparece en el "Entorno de Red", como cualquier otro sistema Windows, publicando la lista
de recursos que ofrece al resto de la red.
Adicionalmente a los dos programas anteriores, Samba ofrece varias utilidades. Algunas
de las más relevantes son las siguientes:
• smbclient. Una interfaz similar a la utilidad ftp, que permite a un usuario de un sistema
UNIX conectarse a recursos SMB y listar, transferir y enviar ficheros.
• swat (Samba Web Administration Tool). Esta utilidad permite configurar Samba de for-
ma local o remota utilizando un navegador de web.
• smbfs Sistema de ficheros SMB para Linux. Linux puede montar recursos SMB en su je-
rarquía, al igual que sucede con directorios compartidos vía NFS.
SMB es un protocolo de comunicación de alto nivel que puede implementarse sobre di-
versos protocolos como TCP/IP, NetBEUI y IPX/SPX, tal como muestra la Figura 9.1,
“Protocolos sobre los que puede implementarse SMB.”, junto con la ubicación de dichos pro-
tocolos en los niveles OSI y en la pila TCP/IP. Entre todas esas alternativas, tanto en el caso
de Samba como de Windows 2000/XP, SMB se implementa habitualmente encima de Net-
BIOS sobre TCP/IP (esta alternativa se ha convertido en el estándar de facto para compartir
recursos entre sistemas Windows). Sin embargo, no incidiremos más en los protocolos que
soportan SMB o en su implementación, puesto que todo ello queda fuera del contexto de este
tema.
Históricamente, este protocolo fue desarrollado inicialmente por IBM como el IBM PC
Network SMB Protocol o Core Protocol a principios de los años 80. Desde entonces, diversos fa-
bricantes (especialmente Microsoft) han ido ampliando su funcionalidad progresivamente,
creando diferentes variantes (versiones) de SMB. Desafortunadamente, en ocasiones el cam-
bio de versión ha conllevado el rebautizar el propio protocolo. En este sentido, SMB ha reci-
bido, entre otros, los siguientes nombres: Core Protocol, DOS Lan Manager, LAN Manager,
NTLM (NT Lan Manager), y en los últimos años, CIFS (Common Internet File System). Todos
ellos, por tanto, hacen referencia a SMB, aunque se diferencien en algunos detalles de su fun-
cionalidad y/o implementación.
• Sin embargo, en modo user, el servidor recibe inicialmente del sistema cliente unas cre-
denciales de usuario (nombre, dominio y contraseña), que debe autentificar para autori-
zar el acceso al recurso. Concretamente, si el dominio de las credenciales es conocido, la
autentificación se delega a algún controlador de dicho dominio; y en caso contrario, el
usuario y la contraseña se autentifican contra la base de datos local del equipo servidor.
En cualquier caso, en modo user, el control de acceso sobre el recurso se realiza en fun-
ción de qué permisos posee sobre dicho recurso el usuario cuyas credenciales se han en-
viado desde el cliente. En otras palabras, una vez el sistema servidor ha identificado y au-
tentificado al usuario que desea conectarse al recurso, este sistema dispone ya de un SID
válido con el que puede contrastar los permisos que dicho SID posee sobre el recurso. Es
conveniente recordar en este punto que si el recurso en cuestión es una carpeta comparti-
da, se tienen en cuenta tanto los permisos del recurso, como los permisos NTFS de la car-
peta y sus archivos. El modo user es el mecanismo de autentificación por defecto en las
versiones de SMB de sistemas Windows NT y posteriores.
1. Petición: Sesión NetBIOS. El objetivo de este mensaje es establecer una sesión fiable pa-
ra subsiguientes mensajes entre los ordenadores cliente y servidor. Es imprescindible
que el cliente conozca el nombre NetBIOS del servidor para poder alcanzarlo; el nombre
NetBIOS del cliente es parte del mensaje, por lo que ambos saben quién es el otro.
3. Petición: Dialecto SMB. El cliente envía en este mensaje una lista con los dialectos o va-
riantes de SMB que soporta, puesto que es habitual que un sistema Windows soporte
varias versiones de SMB simultáneamente.
4. Respuesta: Dialecto SMB. El servidor contesta con el dialecto que prefiere para la co-
municación subsiguiente, o un código de error si no soporta ninguna de las alternativas
ofrecidas por el cliente.
5. Petición: Inicio de sesión. El cliente envía las credenciales de usuario (usuario, dominio,
contraseña) con las que éste desea conectarse al servidor. Recuérdese que por defecto, se
emplean las credenciales con las que el usuario se conectó interactivamente al sistema
cliente, pero se pueden especificar otras explícitamente.
6. Respuesta: Inicio de sesión. El servidor autentifica las credenciales de usuario (ver mo-
do user descrito arriba). Si las credenciales son buenas, el servidor posee ya un SID váli-
do que le permite, antes que nada, comprobar si el usuario posee el derecho de conectar-
se al servidor (directiva "tener acceso a este equipo desde la red"). En caso afirmativo, se
acepta la conexión y el servidor construye un identificador numérico particular para esa
conexión (denominado User ID o UID) que devuelve al cliente. Los UIDs pueden ser
reutilizados durante la vida del sistema, pero son únicos para todas las conexiones si-
multáneas que mantiene el servidor en un momento dado, por lo que identifican unívo-
camente una conexión (aceptada). Todos los mensajes posteriores del cliente deben con-
tener este identificador para ser aceptados por el servidor.
Por otro lado, si las credenciales estaban mal (o si los derechos eran insuficientes), el
servidor envía un código de error en lugar del UID.
Tras esta secuencia típica de conexión al recurso (carpeta compartida), y si todo ha fun-
cionado correctamente, el sistema cliente ya está en condiciones de acceder a la carpeta. Me-
diante el envío de los SMBs correspondientes, el cliente ya puede abrir archivos, leerlos, mo-
dificarlos, etc., utilizando siempre los identificadores (UID y TID) que el servidor ha cons-
truido durante el intercambio de mensajes inicial.
[global]
[homes]
comment = Home Directories
[pub]
path = /espacio/pub
[global] Define los parámetros de Samba a nivel global del servidor, así como los
parámetros que se establecerán por defecto en el resto de las secciones.
Para cualquier otro recurso (directorio o impresora) que se quiera compartir hay que defi-
nir una sección adicional en el fichero de configuración. El encabezamiento de dicha sección
(pub en el ejemplo anterior) corresponderá al nombre que el recurso tendrá en la red.
Por otra parte, Samba ofrece una interfaz de edición de este fichero basada en web deno-
minada swat. Esta herramienta permite configurar Samba utilizando un navegador de red,
tanto de forma local como remota. Para ello, basta con acceder a la direción
http://nombre_de_ordenador_samba:901/ mediante cualquier navegador.
1. Modo Share. En modo share, cada vez que un cliente quiere utilizar un recurso ofrecido
por Samba, debe suministrar una contraseña de acceso asociada a dicho recurso.
2. Modo User. En modo user, el cliente debe establecer en primer lugar una sesión con el
servidor Samba, para lo cual le suministra un nombre de usuario y una contraseña. Una
vez Samba valida al usuario, el cliente obtiene permiso para acceder a los recursos ofre-
cidos por Samba.
En cualquiera de ambos, Samba tiene que asociar un usuario del sistema UNIX en el que
se ejecuta Samba con la conexión realizada por el cliente. Este usuario es el utilizado a la ho-
ra de comprobar los permisos de acceso a los ficheros y directorios que el sistema UNIX/
Samba comparte en la red.
La selección del nivel de seguridad se realiza con la opción security, la cual pertenece a
la sección [global]. Sus alternativas son las siguientes:
Desde la perspectiva del cliente, el nivel share corresponde al modo de seguridad share
y los niveles user, server y domain corresponden todos ellos al modo de seguridad user.
A continuación se describen someramente los cuatro niveles.
Desde la aparición de sistemas Windows como Windows 98, Windows NT 4.0 (a partir
del Service Pack 3), Windows 2000 y posteriores, la utilización de este nivel se ha vuelto com-
plicada, ya que dichos sistemas Windows transmiten las contraseñas cifradas por la red.
Puesto que Samba no posee acceso a las contraseñas cifradas por Windows, el sistema UNIX
ya no puede realizar la validación. Existen dos métodos para resolver este problema. El pri-
mero consiste en modificar el registro del sistema Windows para permitir la transferencia de
contraseñas sin cifrar por la red. El segundo método obliga a utilizar una tabla de contrase-
ñas adicional en el sistema UNIX, en la cual se almacenan las contraseñas cifradas de los
usuarios Windows.
En el nivel server, Samba delega la validación del usuario en otro ordenador, normal-
mente un sistema Windows. Cuando un cliente intenta iniciar una sesión con Samba, éste úl-
timo intenta iniciar una sesión en el ordenador en el cual ha delegado la validación con la
misma acreditación (usuario+contraseña) recibidos del cliente. Si la sesión realizada por
Samba es satisfactoria, entonces la solicitud del cliente es aceptada. Este método aporta la
ventaja de no necesitar que las contraseñas se mantengan sincronizadas entre los sistemas
Windows y UNIX, ya que la contraseña UNIX no es utilizada en el proceso de validación.
Adicionalmente, no hay inconveniente en utilizar contraseñas cifradas, ya que la validación
la realiza un sistema Windows.
Por último, existe la posibilidad de utilizar el nivel domain. Este nivel es similar al nivel
server, aunque en este caso el ordenador en el que se delega la validación debe ser un DC,
o una lista de DCs. La ventaja de este método estriba en que el ordenador Samba pasa a ser
un verdadero miembro del dominio Windows, lo que implica, por ejemplo, que puedan uti-
lizarse las relaciones de confianza en las que participa el dominio Windows. Esto significa,
en pocas palabras, que usuarios pertenecientes a otros dominios en los que los DCs confían
son conocidos por Samba.
Dadas las ventajas del nivel domain, este documento se centra fundamentalmente en este
método. Para detalles específicos de los otros niveles, se recomienda la consulta de la docu-
mentación original de Samba.
1. Desde alguno de los DCs del dominio, dar de alta el sistema UNIX donde se ejecuta
Samba en el dominio (si en dicho dominio ya existía una cuenta de máquina con el mis-
mo nombre, hay que borrar dicha cuenta y volver a crearla).
security = domain
workgroup = DOMINIO
encrypt passwords = yes
password server = DC1_DEL_DOMINIO, DC2_DEL_DOMINIO, ...
En esta configuración, la última línea hace referencia a los ordenadores que realiza-
rán la autenticación de los usuarios. Esta línea se puede simplificar, y sustituir por:
password server = *
1. Si el usuario que accede ha sido acreditado por el dominio Windows al cual pertenece el
servidor Samba.
3. El valor que tenga actualmente asignado la opción global de Samba map to guest.
La Tabla 9.1, “Resumen de los accesos como invitado en modo "domain"” a continuación
indica, en función de los tres factores anteriores, si Samba permite o no el acceso y, en caso
de permitirlo, si al usuario que accede se le considera como él mismo o como invitado.
En cualquier caso, para que el usuario "invitado" pueda acceder a un recurso compartido,
este acceso tiene que permitirse expresamente para el recurso con la opción guest ok (cuyo
valor por defecto es no).
No obstante, existe una diferencia significativa entre NFS y CIFS. En NFS no se requiere
autenticar al usuario que realiza la conexión; el servidor NFS utiliza el UID del usuario del
ordenador cliente para acceder a los ficheros y directorios exportados. Un servidor SMB, por
contra, requiere autenticar al usuario, para lo que necesita un nombre de usuario y una con-
traseña. Por ello, para montar un recurso SMB/CIFS se utiliza el mandato mount indicándole
un tipo de sistema de archivos específico, denominado cifs:
Si se omite la opción password, el sistema solicita al usuario que introduzca una contra-
seña. Si el servidor SMB valida al usuario, a partir del directorio /PUNTO/DE/MONTAJE se
consigue el acceso al recurso //ORDENADOR/RECURSO.
Como de costumbre en los montajes de sistemas de archivos, podemos optar por registrar
el montaje en el fichero /etc/fstab. Sin embargo, dicho registro presenta un problema en
el caso del sistema de archivos cifs, puesto que el montaje siempre supone la petición de
una contraseña, bien escrita en las opciones de montaje, bien solicitada por teclado en el mo-
mento de realizar dicho montaje. Obviamente, esto dificulta el montaje automático en tiem-
po de inicio, a menos que escribamos la contraseña en el fichero fstab, lo cual no resulta
muy buena idea por motivos de seguridad (dicho archivo puede ser leido por cualquier
usuario). La alternativa consiste en utilizar un fichero de credenciales (opción de montaje
credentials=FICHERO), donde escribimos el nombre del usuario y su contraseña. A pesar
de que la contraseña en dicho fichero también se escribe en texto plano, resulta suficiente
que dicho fichero pueda ser leído por el usuario que realiza el montaje (por ejemplo, root, si
es un montaje automático durante el inicio), lo cual permite un nivel de seguridad un poco
mayor. Se recomienda consultar la página de manual mount.cifs(8) para obtener detalles
A continuación se muestra una tabla con las principales opciones de montaje del sistema
de archivos CIFS:
Indice
10.1. Introducción .............................................................................................. 119
10.2. Aspectos básicos a considerar ..................................................................... 119
10.3. Modificaciones del Directorio Activo ........................................................... 120
10.4. Autentificación en los clientes Linux ............................................................ 122
10.4.1. Linux como cliente de OpenLDAP .................................................... 122
10.4.2. Linux como cliente del Directorio Activo ........................................... 124
117
10.1. Introducción
10.1. Introducción
Cuando una organización posee múltiples ordenadores en los que hay instalado el mismo
sistema operativo, la opción de administración más adecuada suele ser la creación de un do-
minio o conjunto lógico de sistemas que admite gestionarse de forma centralizada, típica-
mente mediante un esquema cliente/servidor. Para ello, es imprescindible que en dicho siste-
ma operativo exista alguna tecnología que permita esa centralización de aspectos como
cuentas de usuarios/grupos, autentificación, políticas de seguridad, etc. En la actualidad,
tanto en el caso de Windows Server 2003 como el de Linux, esta tecnología existe y está basa-
da en un servicio de directorio compatible con el estándar LDAP.
Sin embargo, es cada vez más habitual que las organizaciones posean simultáenamente
sistemas de diferentes tipos. En este tipo de escenarios, la opción más sencilla (y a menudo la
única posible) consiste en gestionar los sistemas de cada tipo de forma independiente, utili-
zando las herramientas administrativas que cada fabricante proporciona. En el caso más fa-
vorable, podemos crear un dominio que integre los sistemas de cada tipo (un dominio de sis-
temas Linux, un dominio de sistemas Windows (NT, 2000, 2004, XP), etc.), de forma que la
gestión está centralizada en cada dominio. Pero obviamente, eso aún supone la repetición de
acciones de administración en cada dominio: creación de los mismos usuarios y grupos, con-
figuración de permisos y políticas de seguridad, administración de recursos compartidos en-
tre sistemas, etc.
Es evidente que la opción más coherente en este tipo de entornos mixtos sería la creación
de un dominio heterogéneo (o multi-plataforma), que agrupara todos los sistemas de la organiza-
ción en una única administración centralizada. Lamentablemente, esta alternativa no es sen-
cilla, ya que los diferentes fabricantes de sistemas no suelen diseñarlos para que sean compa-
tibles entre sí. Incluso en el caso de sistemas que basan sus tecnologías en estándares (como
hemos dicho, Windows Server 2003 y Linux implementan sus dominios mediante LDAP),
esta integración no resulta trivial. Ello es debido fundamentalmente a diferencias de diseño
entre los sistemas y a que normalmente ningún sistema implementa los estándares de forma
completa y correcta hasta el último detalle.
Para el caso de clientes Linux, este objetivo global supone realizar ciertas configuraciones
tanto en el servicio de directorio Windows como en los sistemas Linux:
B. En los clientes Linux. Las modificaciones a realizar permitirán, por un lado, que los sis-
temas Linux puedan acceder al Directorio Activo de los controladores Windows para
consultar las listas de usuarios y grupos del dominio; y por otro lado, que los sistemas
Linux sean capaces de autentificar los inicios de sesión de dichos usuarios contra los
DCs Windows.
Las dos siguientes secciones se centran en discutir las configuraciones exactas que hay
que realizar en ambos tipos de sistemas.
• Un nombre de grupo.
Como es lógico, algunos de los atributos que el Directorio Activo almacena por defecto
para un usuario y grupo "Windows" pueden servir también para el caso de clientes Linux (es
el caso del nombre del usuario o del grupo y de la contraseña). Sin embargo, hay atributos
como el UID, GID, directorio home, etc., que no existen en el Directorio Activo simplemente
porque Windows no los utiliza. Por ello, si queremos ofrecérselos a los clientes Linux, necesi-
taremos incorporarlos primero al Directorio Activo. Esto puede conseguirse mediante la mo-
dificación del esquema del directorio. Una vez añadidos los nuevos atributos a los objetos de
tipo usuario y grupo, ya pueden crearse cuentas que contengan todos los datos necesarios
para clientes tanto Windows como Linux.
Hasta la primera versión de Windows Sever 2003, existían dos formas de realizar la mo-
dificación del esquema del Directorio Activo para añadir los "atributos UNIX" a los objetos
de tipo usuario y grupo: un parche de libre distribución denominado MKS AD4Unix y una
suite de utilidades de Microsoft denominadas genéricamente Windows Services for UNIX (o
SFU). En el primer caso, el parche realizaba la modificación del esquema y de la herramienta
Usuarios y Equipos de Active Directory para incluir dichos atributos UNIX. En el caso de las
SFU, además, se incluía un conjunto de servicios tales como cliente y servidor de NIS, NFS y
Telnet, varios shells, utilidades comunes en UNIX, etc.
A partir de Windows Server 2003 R2, las SFU vienen de serie en el sistema en lugar de en
un paquete aparte. Por tanto, no resulta necesario modificar el esquema del Directorio Acti-
vo para disponer de los atributos UNIX. Sin embargo, para poder acceder a esta funcionali-
dad, sí es necesario instalar el "servidor NIS", que incluye la pestaña "Atributos UNIX" para
usuarios y grupos en la herramienta Usuarios y Equipos de Active Directory. Esto se realiza
instalando un componente de Windows (desde el Panel de Control) denominado "Identity
Management for UNIX" dentro de los "Servicios de Active Directory". En la Figura 10.1,
“Pestaña de atributos UNIX en Usuarios y Equipos de Active Directory.” se muestran los
elementos de esta pestaña. Para poder acceder a los atributos es necesario seleccionar el "do-
minio NIS" (que coincide por defecto con el nombre NetBIOS del dominio), y ya se está en
condiciones de rellenar el resto de los atributos del usuario: UID, shell, directorio home y gru-
po primario (GID).
Como puede verse en la figura, la elección del grupo no es un número o identificador que
pueda teclearse, sino un desplegable de los grupos para los que previamente hemos activado
sus atributos UNIX. Esto obliga a activar primero los atributos UNIX de los grupos (que que-
ramos sean visibles desde UNIX) y luego hacer lo propio con los usuarios. A este respecto, es
importante destacar que en el Directorio Activo existe una limitación que impide a un grupo
llamarse igual que un usuario en el mismo dominio (aunque residan en unidades organizati-
vas distintas). Esto dificulta la implementación de la estrategia de grupos privados que man-
tienen los sistemas Linux basados en RedHat (en el ejemplo, el grupo primario del usuario
"andres" se ha denominado "g-andres" por este motivo).
múltiples fuentes alternativas (ficheros locales, servidores NIS, servidores LDAP, etc.). Si de-
seamos configurar el sistema Linux como cliente LDAP, debemos establecer que, para ambas
bibliotecas, la fuente de información debe ser un servidor LDAP.
# Base search
nss_base_passwd dc=admon,dc=lab?sub
nss_base_shadow dc=admon,dc=lab?sub
nss_base_group dc=admon,dc=lab?sub
# pam configuration
pam_login_attribute msSFU30Name
pam_filter objectclass=User
ssl no
pam_password md5
Para comprobar que efectivamente la asociación entre los atributos de los objetos del Di-
rectorio Activo y los atributos UNIX correspondientes es la adecuada, a continuación se
muestran los atributos del usuario del Directorio Activo "andres", correspondientes al usua-
rio de la Figura 10.1, “Pestaña de atributos UNIX en Usuarios y Equipos de Active Direc-
tory.”.
Por otro lado, existe un ligero problema relativo a la exploración anónima del directorio
que debemos resolver: por defecto, el Directorio Activo no permite realizar búsquedas anó-
nimas (de usuarios no autentificados) en la base de datos del directorio. Como la biblioteca
NSS de Linux realiza ese tipo de búsquedas, esto puede ocasionar algunos problemas a la
hora de visualizar los nombres de usuarios y grupos (por ejemplo, en el prompt del intérprete
de órdenes o al realizar un ls -l). Para solucionarlo tenemos dos alternativas: configurar el
Directorio Activo para que permita las consultas anónimas o configurar el cliente LDAP de
Linux para que haga todas las consultas como un usuario conocido por el dominio Windows
(ya que por defecto, el grupo Usuarios Autentificados tiene permisos de lectura en to-
do el directorio).
Ambas alternativas tienen sus problemas de seguridad. En el primer caso, admitir consul-
tas anónimas en el Directorio Activo no es buena idea si el DC es accesible por red desde el
exterior de la organización, puesto que el contenido del directorio quedaría público a todo el
mundo. En el segundo caso, el usuario como el que se realizarían las consultas desde el
cliente Linux debe tener sus credenciales (usuario y contraseña) en texto claro (sin cifrar) en
el fichero /etc/ldap.conf, que posee permisos de lectura para cualquier usuario conecta-
do localmente al sistema Linux.
Posteriormente, podemos restringir las acciones que dicho usuario pueda realizar en los
sistemas Windows del dominio (mediante directivas de seguridad o GPOs) y en los sistemas
Linux, especificando el fichero /bin/false como shell en sus atributos UNIX.
En los sistemas Linux, es posible configurar la biblioteca PAM para que utilice Kerberos y
realice la autenticación de usuarios mediante este protocolo en los inicios de sesión. Para
ello, se puede utilizar la misma herramienta de configuración descrita arriba (system-con-
fig-authentication), pero en la pestaña de autenticación debe seleccionarse la habilitación del
protocolo Kerberos en lugar de LDAP. La configuración de Kerberos tiene básicamente tres
apartados: el entorno o realm, el servidor KDC (Kerberos Distribution Center) y el servidor de
administración. En el primer caso, debe teclearse el nombre completo (DNS) del dominio
Windows pero en mayúsculas, y en los otros dos casos, el nombre completo o la dirección IP
de uno de los servidores (DCs) del dominio. La Figura 10.2, “Configuración de la autentica-
ción Kerberos en Linux.” muestra cómo realizar esta configuración para el dominio Win-
dows "admon.lab".
Por contra, en sistemas tipo Windows, el sistema presenta varias jerarquías, tantas como
unidades de almacenamiento (particiones, disquetes, cd-roms, unidades de red) tenga el or-
denador. Cada una de estas jerarquías es identificada por una letra de unidad seguida del
carácter ':', por ejemplo, D:.
Unix, en cambio, encadena todos los dispositivos que contienen sistemas de archivos en
una única jerarquía, siendo por tanto este acceso transparente al usuario. A esta técnica se le
denomina montaje de dispositivos.
En el ejemplo anterior, el directorio raíz del sistema de archivos que reside en el dispositi-
vo /dev/hdb6 (la segunda partición lógica del disco duro primario esclavo) se monta en el
directorio /mnt/. De esta forma, cualquier acceso que haga referencia a /mnt/ hace que
Unix acceda a la partición que ha sido montada.
Linux reconoce muchos tipos de sistemas de archivos, algunos nativos del propio Linux y
otros propios de otros sistemas operativos o estándares internacionales. Los más relevantes
son:
129
A.3. La tabla de montaje de dispositivos
Tipo Descripción
ext2 Sistema de archivos nativo de Linux
ext3 Sistema "ext2" con registro de transacciones
swap Area de intercambio en disco de Linux
proc Sistema de ficheros virtual que contiene una jerarquía de infor-
mación sobre el núcleo de Linux.
msdos Sistema FAT16 ó FAT32 con nombres cortos.
vfat Sistema FAT16 ó FAT32 con nombres largos.
iso9660 Sistema de archivos en CD-ROM
nfs Directorio remoto accesible vía NFS
Para indicar a mount el tipo del sistema de archivos, se utiliza la opción -t. Por ejemplo:
Al margen de los tipos anteriores puede utilizarse el tipo auto, el cual indica a mount
que reconozca de forma automática el tipo del sistema de archivos, opción que resulta espe-
cialmente útil en el fichero /etc/fstab, el cual se describe a continuación. Cuando se utili-
za mount sin la opción -t, se supone la opción -t auto.
Debe tenerse en cuenta que lo anteriormente expuesto incluye a todo tipo de dispositivos.
Por tanto, el acceso a medios no fijos como cd-rom o disquete se realiza igualmente utilizan-
do mount.
Una utilidad adicional mount consiste en visualizar la tabla de los dispositivos actual-
mente montados. Para ello, basta con ejectuar mount sin argumentos.
Cada línea de dicho fichero establece un dispositivo a montar junto con sus opciones. Por
ejemplo, la Tabla A.2, “Interpretación del fichero /etc/fstab” interpreta el significado de los
parámetros de la primera línea del fichero anterior.
Existe una gran cantidad de opciones de montaje, algunas de las cuales son dependientes
del tipo del sistema de archivos (consúltese el mandato mount en el manual). Las opciones
más comunes y su significado se presentan en la Tabla A.3, “Opciones más comunes en el
montaje de dispositivos en Linux.”.
Una de las ventajas de este fichero es que simplifica la utilización del mandato mount, el
cual puede utilizar un solo argumento, bien sea el nombre del dispositivo o, mejor aún, el
nombre del directorio. En estos casos, mount utiliza el tipo de sistema de archivos y las op-
ciones especificados en el fichero. Por ejemplo:
bash# mount /A
monta en el directorio /A el dispositivo /dev/fd0 de acuerdo con la última línea del fi-
chero /etc/fstab anterior. Puesto que se ha utilizado el tipo de sistema de archivos auto,
el disquete podría contener indistintamente un sistema de archivos msdos, ext2, vfat, etc.,
siendo la detección del tipo realizada por mount.
133
B.3. Ficheros de configuración de los niveles
Bajo esta perspectiva, un sistema Linux no se arranca o detiene, sino que simplemente se
cambia su nivel de ejecución. Algunas consideraciones importantes sobre los niveles son:
• Durante un arranque normal, los sistemas Linux basados en RedHat se colocan en el ni-
vel 3 (multiusuario con red) o en el nivel 5 (análogo al 3 pero con el sistema de ventanas
activo desde el inicio).
• Desde LILO puede expresarse el nivel de ejecución deseado tras la etiqueta del sistema
operativo (Linux) a cargar. Por ejemplo, para arrancar Linux en el nivel 1 se utiliza:
• Igualmente, desde GRUB también puede indicarse el nivel de ejecución en el que se de-
sea arrancar. En este caso, hay que seleccionar la entrada de Linux en el menú de GRUB y
pulsar la tecla 'e' para que GRUB entre en el modo de edición. En la línea que hace refe-
rencia al kernel de Linux hay que añadir al final el nivel de ejecución al que se desea en-
trar. Por ejemplo, dada la siguiente línea:
Una vez hecha esta modificación, se debe pulsar 'b' para que GRUB arranque en el ni-
vel indicado.
• Directorio /etc/rc.d/init.d/: Aquí residen todos los scripts reales que pueden ser
ejecutados cuando se entra en un nivel de ejecución.
No es normal tener que configurar esta secuencia de arranque, dictaminada por los fiche-
ros /etc/inittab y /etc/rc.d/rc.sysinit. Estos ficheros son configurados en origen
por quien distribuye el sistema operativo. No obstante, pueden ser necesarios para configu-
rar sistemas Linux con requerimientos muy específicos.
1. Se ejecutan, por orden de nombre, todos los scripts que comienzan por 'K' en el directo-
rio correspondiente al nivel, utilizando como argumento para dicho script la opción
stop.
2. Se ejecutan, por orden de nombre, todos los scripts que comienzan por 'S' en el directo-
rio correspondiente al nivel, utilizando como argumento para dicho script la opción
start.
bash# ls -l rc3.d/
total 0
lrwxrwxrwx 1 root root 13 Apr 1 1998 K15gpm -> ../init.d/gpm
lrwxrwxrwx 1 root root 13 Apr 1 1998 K60lpd -> ../init.d/lpd
lrwxrwxrwx 1 root root 15 Apr 1 1998 K95nfsfs -> ../init.d/nfsfs
lrwxrwxrwx 1 root root 17 Apr 1 1998 S01kerneld -> ../init.d/kerneld
lrwxrwxrwx 1 root root 17 Apr 1 1998 S10network -> ../init.d/network
lrwxrwxrwx 1 root root 16 Apr 1 1998 S20random -> ../init.d/random
lrwxrwxrwx 1 root root 16 Apr 1 1998 S30syslog -> ../init.d/syslog
lrwxrwxrwx 1 root root 13 Apr 1 1998 S40atd -> ../init.d/atd
lrwxrwxrwx 1 root root 15 Apr 1 1998 S40crond -> ../init.d/crond
lrwxrwxrwx 1 root root 18 Apr 1 1998 S75keytable -> ../init.d/keytable
lrwxrwxrwx 1 root root 11 Apr 1 1998 S99local -> ../rc.local
Puede observarse cómo en este directorio tan sólo existen enlaces simbólicos a los verda-
deros scripts que residen en el directorio /etc/rc.d/init.d/. Cada uno de estos scripts
acepta dos parámetros, start y stop, en función del cual inicia o detiene el servicio corres-
pondiente. En este ejemplo, la secuencia de entrada al nivel 3 sería:
gpm stop
lpd stop
nfsfs stop
kerneld start
network start
random start
syslog start
atd start
crond start
keytable start
rc.local start
De forma alternativa, puede utilizarse la orden service. Los siguientes mandatos son
equivalentes a los anteriores:
ra atender múltiples servicios. Cuando detecta una petición para un determinado servicio,
activa el programa concreto que debe atender realmente el servicio y le traslada la petición.
La consecuencia de este funcionamiento es que todos los servicios dependientes de xinetd
se activan en un determinado nivel de ejecución tan sólo si xinetd está activo en dicho ni-
vel de ejecución.
El mandato chkconfig permite añadir y eliminar servicios en los niveles de ejecución, así
como consultar la configuración de cada servicio. La sintaxis de este mandato es la siguiente:
Utilizado con la opción --list, este mandato visualiza la configuración de todos los ser-
vicios o de un nivel concreto. Las acciones on y off activan y desactivan respectivamente un
servicio en los niveles especificados. La acción reset reestablece los valores predetermina-
dos para este servicio.
Un método alternativo consiste en utilizar una herramienta gráfica que simplifique esta
labor, tal como la herramienta de configuración de servicios de Fedora, la cual permite tam-
bién configurar los servicios que dependen de xinetd y arrancar o detener servicios ma-
nualmente. La Figura B.1, “Editor gráfico de niveles de ejecución en Fedora Linux” muestra
el aspecto de dicha herramienta que puede invocarse directamente mediante el mandato /
usr/bin/serviceconf.
Administración de Sistemas
Copyright (c) 2003-2008 Agustín Espinosa, Andrés Terrasa, Fernando Ferrer y Alvaro Al-
varez
Este documento puede ser copiado y distribuido en cualquier medio con o sin fines co-
merciales, siempre que la licencia GNU Free Documentation License (FDL)
[http://www.gnu.org/copyleft/fdl.html], las notas de copyright y esta nota legal diciendo que
la GNU FDL se aplica al documento se reproduzcan en todas las copias y que no se añada
ninguna otra condición a las de la GNU FDL.
139