Está en la página 1de 43

OBJETIVOS

I. Monitorización del sistema operativo

II. Administración remota

III. Realizar una correcta gestión de los


volúmenes lógicos.

IV. Implementar un servidor LDAP

V. Instalación y configuración software


LDAP en el cliente

Mantenimiento y monitorización de un
servidor Linux

Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux

Índice
ÍNDICE ............................................................................................................... 1

NOTAS DEL AUTOR ......................................................................................... 2

INTRODUCCIÓN ............................................................................................... 3

MONITORIZACIÓN DEL SISTEMA OPERATIVO............................................. 3

PROCESOS ........................................................................................................ 3
Gestión de procesos en modo texto ............................................................. 3
DISPOSITIVOS DE ALMACENAMIENTO .................................................................... 8
ARCHIVOS DE REGISTRO ................................................................................... 12

ACCESO REMOTO AL SISTEMA................................................................... 13

SSH ............................................................................................................... 13
VNC ............................................................................................................... 14

GESTIÓN DE VOLÚMENES LÓGICOS (LVM) ............................................... 17

SERVIDOR LDAP ............................................................................................ 19

INSTALACIÓN DEL SERVIDOR ............................................................................. 22


Configuración básica del servidor .............................................................. 22
Instalación de los paquetes necesarios ...................................................... 22
Configurar la autenticación para los clientes .............................................. 25
Configurar el demonio SLAPD ................................................................... 26
Crear la estructura del directorio ................................................................ 29
Añadir un usuario y un grupo ..................................................................... 30
Gestión del servidor LDAP en modo gráfico............................................... 31
Configuraciones finales .............................................................................. 34
CONFIGURACIÓN DEL CLIENTE ........................................................................... 34
Instalación del cliente ................................................................................. 34
Configuración del cliente ............................................................................ 37

BIBLIOGRAFÍA ............................................................................................... 39

1 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux

Notas del autor


El propósito de esta documentación es proporcionar al alumno una guía que
incluya los contenidos que considero necesarios para el desarrollo de esta
unidad de trabajo.

Estos contenidos han sido extraídos de diferentes libros, webs y revistas


citados todos en el apartado bibliográfico así como de experiencias personales.

Si llega a tu mano esta documentación, no dudes en usarla, ya que ese es el


objetivo que persigo al realizarla, sólo debes tener en cuenta una cosa,
aglutinar toda esta información lleva mucho tiempo por lo que si vas a
usar este documento ten el detalle de citar al autor del mismo.

Víctor Manuel Garrido Cases


Profesor Técnico de Formación Profesional
Sistemas y Aplicaciones Informáticas

2 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux

Introducción
Durante el ciclo de vida de un sistema operativo, es necesario realizar una
correcta monitorización de todos los servicios que está funcionando sobre el
mismo ya que es normal que el rendimiento del sistema se vaya degradando o
simplemente sea necesario añadir nuevas funcionalidades o actualizar las ya
existente.

En esta unidad vamos a estudiar las herramientas básicas que nos van a
permitir controlar el funcionamiento de nuestro sistema operativo

Monitorización del sistema operativo

Procesos
Un proceso es un programa en ejecución aunque el concepto de proceso y
programa es diferente ya que un mismo programa, cada vez que se ejecuta,
crea un proceso diferente, es más, puede haber distintos procesos o instancias
del mismo programa ejecutándose a la vez

Un proceso, tiene un contexto, que lo diferencia de otra instancia del mismo


programa en ejecución, como el usuario que lo ha lanzado, los permisos del
proceso, si ha sido llamado por otro proceso,…

Para identificar un proceso dentro del sistema se le asigna un número


entero llamado PID, que identifica de manera unívoca al proceso.

Gestión de procesos en modo texto


Para la gestión de los procesos en modo texto, disponemos de una serie de
comandos, vamos a ver algunos de ellos.

ps
Informa del estado de los procesos

Sintaxis ps [opciones]

Opciones -A Para ver de todos los procesos las columnas PID, TTY,
TIME y CMD
-ely  Estas opciones se usan unidas para ver de todos los
procesos, columnas como PID, PPID, TIME, CMD, NI, RSS,…

3 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


-fu <usuario>  Muestra información detallada de los procesos
de un usuario concreto. Si no se pone usuario lo hace del
usuario en con el que estemos trabajando.

Argumentos

Este comando muestra una serie de columnas que tienen el siguiente


significado:

 USER. Nombre del usuario que ha lanzado el proceso.

 PID. Identificador de proceso.

 PPID. Identificador del proceso padre.

 UID. Identificador del usuario dueño del proceso.

 TTY. Terminal dónde se está ejecutando.

 TIME. Tiempo de CPU usado.

 CMD. Nombre del programa que inició el proceso.

 RSS. Tamaño de la parte residente del proceso.

 SIZE. Tamaño de la imagen del proceso.

 NI. Prioridad del proceso.

 %CPU. Porcentaje de CPU utilizada.

 STAT. Estado del proceso, que puede ser: R ejecutándose, S


durmiendo, T detenido.

pstree
Informa del estado de los procesos de forma jerárquica

Sintaxis pstree [opciones]

Opciones

Argumentos

4 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux

&
Se utiliza para ejecutar procesos en segundo plano, con lo que el terminal
queda libre para seguir realizando tareas

Sintaxis comando &

Opciones

Argumentos

jobs
Muestra los procesos que se están ejecutando en segundo plano así como los
que están suspendidos

Sintaxis jobs

Opciones

Argumentos

kill
Envía información al proceso que le indiquemos. También se puede utilizar
para enviar otras señales a un proceso.

Sintaxis kill [opciones] PID

Opciones -l  Muestra todas las señales que se le pueden enviar a un


proceso. Entre las señales más importantes tenemos
-19 (STOP)  Permite suspender la ejecución de un proceso.
-18 (CONT)  Permite reanudar la ejecución de un proceso
-9 (KILL)  Mata el proceso cuyo PID le enviemos como
argumento.

Argumentos

top
Muestra los procesos y otra información sobre el sistema actualizada cada
cierto tiempo, por defecto es cada 3 segundos

Sintaxis top

5 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux

Opciones

Argumentos

Veamos un ejemplo del comando top:

En la primera línea el comando top muestra la hora, el tiempo que lleva el


sistema en funcionamiento (up), el número de usuarios (users), la carga media
de la CPU (load average) expresada por tres valores: carga en el último minuto,
en los últimos 5 minutos y en los últimos 15 minutos.

La segunda línea muestra información sobre las tareas o procesos que se


están ejecutando en memoria, el primer valor es el número de procesos en
memoria, el resto de valores nos indican el número de procesos en ejecución
(running), dormidos (sleeping), parados (stopped) y zombies que son los
procesos que han finalizado de forma incorrecta y no se ha podido liberar la
memoria ocupada por ellos

La tercera línea ofrece información sobre el uso de la memoria. Esta


información no suele ser muy relevante ya que el kernel, para la gestión de
memoria la marca como usada casi toda, aunque no esté asignada a ningún
proceso.

6 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


La cuarta línea muestra información sobre la memoria swap, interesa que el
valor de la memoria swap usada sea lo más bajo posible

El resto de información nos muestra cada uno de los procesos que se están
ejecutando en ese momento. Esta información es en tiempo real y se irá
actualizando cada 3 segundos. Entre todos los procesos que vemos
podemos ver el proceso asociado al comando “top” que estamos ejecutando.

time
Ejecuta un comando y al terminar muestra información sobre el tiempo que ha
tardado en ejecutarse, los recursos utilizados,…

Sintaxis time comando

Opciones

Argumentos

nice
Permite cambiar la prioridad de un proceso antes de su ejecución. Por
defecto, todos los procesos tienen la misma prioridad ante la CPU que es 0.
Las prioridades van desde -20 la más alta a 19 la más baja. Solo root puede
establecer prioridades negativas

Sintaxis nice -n comando

Opciones -n  indicamos la prioridad que le queremos dar al proceso

Argumentos

renice
Permite cambiar la prioridad de un proceso en tiempo de ejecución, sin
necesidad de detenerlo. Este comando es necesario ejecutarlo como
administrador.

Sintaxis renice n PID

Opciones n  indicamos la prioridad que le queremos dar al proceso

Argumentos

7 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


Dispositivos de almacenamiento
Hoy en día, Linux reconoce directamente los discos duros, las unidades ópticas
y las memorias flash instaladas en el sistema.

Aun así, en determinadas ocasiones es necesario obtener determinada


información de dichos dispositivos, así como realizar accionas tales como crear
/ eliminar / modificar particiones, formatear, etc. Vamos a ver los comandos
más habituales utilizados para realizar dichas acciones.

df
Informa de la utilización del espacio de disco en los sistemas de archivos.
Si no se especifica ningún parámetro muestra información de todos los
sistemas de archivos.

Sintaxis df [sistema de archivos]

Opciones

Argumentos

du
Informa de la cantidad de espacio de disco usada por los archivos
especificados.

Sintaxis du [sistema de archivos]

Opciones -h  Muestra el tamaño con prefijos de unidades (Megas,


Kilos,..)
-s  Muestra solo el tamaño del directorio

Argumentos

mount
Permite montar un dispositivo de almacenamiento en el sistema principal de
archivos

Sintaxis mount [opciones][dispositivo] [directorioDeMontaje]

Opciones -t. Tipo de sistema de archivos. Este parámetro irá acompañado


del tipo del sistema de archivos que queremos montar: ext2,

8 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


ext3, fat32, iso9660, minix, xenix.

-r. Monta el dispositivo en solo lectura

Argumentos Dispositvo. El tipo de dispositvo que vamos a montar

directorioDeMontaje. El directorio de nuestro sistema de


archivos desde el que vamos a acceder a dicho dispositvo. Este
directorio será una carpeta vacía que crearemos a partir de
/media.

umount
Permite desmontar un dispositivo de almacenamiento del sistema principal de
archivos

Sintaxis umount [dispositivo]

Opciones

Argumentos

fdisk
Utilizado para mostrar la tabla de particiones, crear y eliminar particiones

Sintaxis fdisk [opciones] [dispositivo]

Opciones -l  Muestra la tabla de particiones

Argumentos

El comando fdisk se puede usar directamente con un dispositivo de


almacenamiento tecleando como superusuario la orden fdisk
[dispositivo] A partir de este momento abandonamos el prompt y
accedemos a la aplicación de fdisk. Nos aparecerá una pantalla similar a
esta:

9 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux

Si tecleamos “m” nos aparecerá el menú con todas las operaciones que nos
permite hacer este comando, entre todas ellas destacamos:

 Mostrar la tabla de partición actual. Muestra la tabla de partición


actual. para ello, escriba sudo fdisk -l /dev/sda (o el identificador
de dispositivo que proceda) en el prompt de comandos en lugar de pasar
al modo interactivo de fdisk. Este comando muestra la tabla de
partición y después finaliza. Si lo hacemos desde la propia aplicación de
fdisk, teclearemos la opción “p”.

 Crear una partición. Para crear una partición, escribimos la opción “n”.
El resultado es una serie de preguntas que solicitan información sobre la
partición: si debería ser primaria, extendida o lógica: el cilindro de inicio
de ésta; el cilindro o tamaño de finalización de ésta, etc. Los detalles de
las preguntas dependen en parte de lo que se haya definido. Por
ejemplo, fdisk no le preguntará si desea crear una partición
extendida si ya existe una. Una característica de fdisk que puede
parecernos extraña es que mide los puntos de inicio y finalización de la
partición de cilindros, en vez de megabytes. Esto es un vestigio de las
medidas CHS utilizadas por la tabla de partición de x86. Esto no tiene
por qué ser un problema; podemos elegir el punto de inicio por defecto y
especificar luego el tamaño de la partición en megabytes o gigabytes;
fdisk calculará correctamente el cilindro final.

 Eliminar una partición. Para eliminar una partición escriba d. El


programa le preguntará por el número de partición, que deberá
introducir.

10 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


 Cambiar el tipo de partición. Cuando crea una partición, fdisk le
asignará un código de tipo de 0x83, que corresponde a un sistema de
ficheros de Linux. Si desea crear una partición de intercambio de Linux o
una partición para otro SO, puede escribir t para cambiar un código
de tipo de partición. El programa le pedirá entonces un número de
partición y un código de tipo.

 Listar los tipos de partición. Existen decenas de códigos de tipo de


partición, por lo que se olvidan con facilidad. Escriba l (L minúscula) en
el prompt principal de fdisk para ver una lista de los más comunes.
También puede obtener esta lista escribiendo L cuando se le pregunte
por el tipo de partición cuando cambie un código de este tipo.

 Marcar una partición como arrancable. Algunos SO, como DOS y


Windows, se basan en un indicador especial de sus particiones para
saber si pueden arrancar desde éstas. Puede definir este indicador
escribiendo la opción “a”, tras lo cual fdisk le pedirá un número de
partición.

 Salir. El comando fdisk de Linux admite dos modos de salida. Uno


consiste en escribir la opción “q” para salir del programa sin guardar
los cambios; todo lo que haya hecho con el programa se perderá. Esta
opción es especialmente útil si ha cometido algún error tremendo. El otro
modo de salir es escribiendo la opción “w”, con lo cual saldrá del
programa tras guardar sus cambios en el disco.

mkfs
Utilizado para formatear particiones con diferentes sistemas de archivos

Sintaxis mkfs [opciones] [partición]

Opciones -t  Nos permite indicar el tipo de sistema de archivos con el


que queremos formatear (ext2, ext3, ext4, nfs,…)

Argumentos

11 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux

Archivos de registro
Los archivos de registro son los archivos donde se almacena información sobre
la ejecución de los diferentes procesos que están operativos en el equipo. Su
objetivo es hacer el seguimiento y detectar posibles fallos en el funcionamiento
de dichos procesos.

En Ubuntu (y en otras muchas distribuciones Linux) los archivos de registro se


almacenan en el directorio /var/log. Son archivos de texto planos por lo que
se pueden visualizar con cualquier editor de textos y se puede buscar
información en ellos con el comando grep

Algunos de los archivos más importantes son:

syslog. Contiene información general del funcionamiento del sistema.

auth.log. Contiene información de todas las operaciones relacionadas con el


acceso al sistema.

dmesg. Contiene todos los mensajes generados en el arranque del sistema


operativo.

dpkg.log. Contiene todos los mensajes de las operaciones llevadas a cabo


con el comando dpkg.

/var/log/apt/term.log. Almacena toda la actividad relacionada con el


comando apt.

unattended-upgrades. Archivo de registro del proceso de actualización


automática.

12 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux

Acceso remoto al sistema


Los servicios más utilizados para acceder de forma remota a un sistema
GNU/Linux son:

 Telnet. Permite acceder al sistema de forma remota de una manera no


segura.

 Open SSH. Permite acceder al sistema por terminal, pero de forma


segura ya que se cifran las comunicaciones.

 VNC. Mientras que los servicios telnet y SSH permiten conectarse al


servidor por medio de un terminal, el servidor VNC permite utilizar el
servidor utilizando el escritorio instalado en el sistema: GNOME o KDE.

SSH
SSH es un protocolo que permite conectarse de forma segura a un
servidor para poder administrarlo. En realidad, es más que eso, ya que se
ofrecen más servicios como la transmisión de ficheros, el protocolo FTP seguro
e, incluso, se puede usar como transporte de otros servicios.

El protocolo SSH garantiza que la conexión se realiza desde los equipos


deseados (para lo que usa certificados) y establece una comunicación
cifrada entre el cliente y el servidor, mediante un algoritmo de cifrado
robusto (normalmente con 128 bits) que se utilizará para todos los intercambios
de datos.

La implementación más utilizada del servicio ssh es OpenSSH. Para instalarla


en el servidor teclearemos

apt-get install openssh-server

Para iniciar el servicio tecleamos

service ssh start

El servidor openSSH utiliza el fichero de configuración


/etc/ssh/sshd_config y normalmente no es necesario modificarlo. Los
parámetros más importantes son:

 Port y ListenAdress. Por defecto el servicio ssh trabaja en el


puerto 22 y responde por todas las interfaces del sistema. Los siguientes

13 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


parámetros permiten cambiar el puerto y la dirección, en las que
atenderá peticiones: Port 22 ListenAddress 0.0.0.0

 PermitRootLogin. Establece si se permite o no el acceso del usuario


root al servidor. PermitRootLogin no

 AllowUsers. Permite restringir el acceso a los usuarios del sistema. Al


utilizar el parámetro AllowUsers indica los usuarios que puedan acceder
al sistema. AllowUsers cesar sonia. También es posible indicar el
equipo anfitrión desde el que pueden conectarse. En el siguiente
ejemplo sólo los usuarios cesar y sonia pueden conectarse al servidor
desde el equipo 10.0.0.2. AllowUsers cesar@10.0.0.2
sonia@10.0.0.2b

En el cliente necesitamos el paquete openssh-client. Este paquete viene


instalado por defecto en Ubuntu.

Si desde el cliente tecleamos en una consola ssh IPServidor accedemos al


servidor y podemos administrarlo.

OJO. Si tienes el firewall activado (ufw en Ubuntu) tendrás que desactivarlo o


añadirle una regla que permita el tráfico ssh

VNC
Otra opción para llevar a cabo la administración remota de un equipo es utilizar
un escritorio remoto. Con esta característica podemos visualizar en una
ventana de otro equipo el escritorio completo del equipo que queremos
administrar y tener control absoluto sobre dicho equipo. Este tipo de acceso
consume más recursos de red que ssh.

El protocolo más utilizado en sistemas Linux para implementar un escritorio


remoto es VNC (Virtual Network Computing). Este servicio utiliza una
arquitectura cliente-servidor por lo que en el servidor tendremos que instalar el
software específico para de VNC para servidor y en el cliente el software
específico para el cliente.

Para instalar el servidor VNC teclearemos lo siguiente:

sudo apt-get install vino

Para instalar el cliente VNC teclearemos lo siguiente:


14 Víctor Manuel Garrido Cases
Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


sudo apt-get install vinagre

Este paquete suele venir instalado en Ubuntu.

Desde la opción Aplicaciones  Internet  Visor de Escritorios Remotos


accedemos a la ventana de control

Una vez instalado tanto cliente como servidor vamos a pasar a su


configuración.

Configuración del servidor VNC

Para acceder a la pantalla de configuración del servicio teclearemos desde el


terminal:

vino-preferences

Para activar el servicio hay que marcar la opción “Permitir a otros usuarios ver
mi escritorio” y si además se desea poder tomar el control de las acciones de
forma remota también habrá que marcar la opción “Permitir a otros usuarios
controlar su escritorio”. Es aconsejable por motivos de seguridad marcar la
opción “Requerir que el usuario introduzca una contraseña”.

Una vez hecho esto debemos hacer que el servicio VNC se cargue
automáticamente al iniciar el servidor, para ello iremos a la opción Startup
Applications o Aplicaciones de inicio y añadiremos una nueva

Nombre: Escritorio remoto

Comando: /usr/lib/vino/vino-server

A continuación accederemos a la configuración del sistema operativo y en


Sistema  Compartir activaremos la opción “Compartir pantalla”

Y para finalizar nos aseguramos que el puerto 5900 que es el puerto por el que
funciona este servicio está activo, para ello desde el terminal tecleamos

nc –zv IPServidor Puerto

en mi caso

nc –zv 192.168.0.16 5900

La respuesta debe ser:

Connection to 192.168.0.16 5900 port [tcp/*] succeeded!

Ya tenemos configurado el servidor.


15 Víctor Manuel Garrido Cases
Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux

Configuración del cliente

Una vez instalado el paquete vinagre simplemente accedemos a la opción de


menú Aplicaciones  Internet  Visor de escritorios remotos. Pulsamos el
botón “Conectar” y en la ventana ponemos los datos tal y como aparecen en la
siguiente imagen.

Pulsamos “Conectar” y si todo ha ido correctamente el sistema nos pedirá la


contraseña de acceso y podremos administrar nuestro servidor de manera
remota.

OJO. Si tienes el firewall activado (ufw en Ubuntu) tendrás que desactivarlo o


añadirle una regla que permita el tráfico vnc.

16 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


Gestión de volúmenes lógicos (LVM)
El uso de volúmenes lógicos nos permite hacer más flexible el mantenimiento
de las unidades de almacenamiento. Vamos a ver en este apartado los
comandos utilizados para realizar este mantenimiento.

Lo primero que vamos a hacer es comprobar si tenemos el paquete lvm2


instalado, para ello ejecutaremos el comando

sudo dpkg –l | grep lvm2

Si no tenemos el paquete instalado este comando no nos devolverá nada por lo


que procederemos a instalarlo

sudo apt-get install lvm2

Con el comando pvdisplay se puede visualizar información sobre los


volúmenes físicos o PV de un sistema.

Con el comando vgdisplay se puede visualizar información sobre los grupos


de volúmenes o VG que hay en el sistema.

Con el comando lvdisplay se puede visualizar información de los volúmenes


lógicos (LV) del sistema (particiones lógicas).

Para crear un nuevo volumen físico se utiliza el comando pvcreate.


Necesitaremos un nuevo disco duro o alguna partición libre de un disco duro ya
existente. Por ejemplo, si añadimos un nuevo disco duro identificado como
sdb, teclearemos:

pvcreate /dev/sdb

Si lo que queremos es usar una partición libre de un disco duro ya creado,


entonces haremos referencia a dicha partición.

pvcreate /dev/sdb2

Para añadir un volumen físico a un grupo de volúmenes se utiliza el


comando vgextend, la sintaxis sería:

vgextend grupoDeVolumen volumenFisico

Después de añadir un volumen físico a un grupo de volúmenes ya disponemos


de espacio libre adicional que se puede emplear para aumentar la capacidad
de los volúmenes lógicos. Para ello se utiliza el comando lvresize. La

17 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


forma más habitual de utilizar este comando es especificar el tamaño que se
desea incrementar con el parámetro –L y el volumen lógico sobre el que se
quiere efectuar la ampliación. Para incrementar en 10GB el tamaño de un LV,
la sintaxis sería:

lvresize –L +10GB volumenLogico

Ya solo nos faltaría expandir la capacidad del sistema de archivos utilizado en


el volumen lógico para que reconozca el nuevo tamaño, para ello utilizaremos
el comando resize2fs. En algunos sistemas de archivos es necesario
desmontar el volumen lógico antes de realizarlo aunque cada vez es menos
habitual. La sintaxis sería:

resize2fs volumenLogico

Como hemos visto, aumentar el tamaño de una partición realizada mediante


volúmenes lógicos es relativamente sencillo no siendo necesario desmontar la
partición para incrementar su tamaño. Si lo que queremos es reducir el
tamaño de un volumen lógico (partición) la cosa se complica un poco más.
Las operaciones a realizar son relativamente sencillas salvo que es necesario
que el volumen lógico (partición) esté desmontado.

Lo que vamos a hacer es arrancar reiniciar nuestro sistema operativo con un


live-cd de Linux. Una vez arrancado y desde un terminal haremos lo siguiente:

Realizamos un chequeo del sistema de archivos sobre el que se va a


actuar. Para ello utilizaremos el comando e2fsck con el modificador –f para
que se fuerce el chequeo.

e2fsck –f volumenLogico

El siguiente paso es redimensionar el sistema de archivos mediante el


comando resize2fs al que le pasaremos como parámetro el nuevo tamaño
que tendrá el sistema de archivos. Nuevo tamaño

resize2fs volumenLogico 4G

Una vez redimensionado el sistema de archivos, ya podemos redimensionar


el volumen lógico con el comando lvreduce.

lvreduce -L 4G volumenLogico

18 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


Si reiniciamos nuestro servidor y hemos realizado todos los pasos
correctamente, el tamaño del volumen lógico del directorio raíz será de 4GB.

Existe una herramienta gráfica que se puede instalar en el escritorio GNOME


y que facilita la gestión de LVM. Para utilizar esta herramienta instalaremos el
paquete system-config-lvm.

Reducir el tamaño de un volumen lógico es una operación delicada ya


que podría destruir datos por lo que debemos asegurarnos de que las
copias de seguridad se estén realizando correctamente.

Servidor LDAP
LDAP son las siglas en inglés de Lightweight Directory Access Protocol
(Protocolo Ligero de Acceso a Directorios) y podemos considerarlo como un
sistema de almacenamiento de red (normalmente construido como una base
de datos) al que se pueden realizar consultas.

El protocolo LDAP se creó originalmente en la Universidad de Míchigan, que


publicó un primer desarrollo en 1993. Más tarde, Tim Howes y Steve Killela,
dos de los diseñadores originales del proyecto comienzan a trabajar en una
nueva versión bajo los auspicios de IETF (Internet Engineering Task Force)
completando el desarrollo original.

OpenLDAP es un desarrollo del protocolo LDAP, implementado con la filosofía


del software libre y código abierto.

El proyecto OpenLDAP se inició en agosto de 1998 y está sustentado por una


entidad sin ánimo de lucro llamada OpenLDAP Foundation, creada por el
desarrollador estadounidense Kurt D. Zeilenga para coordinar las actividades
del proyecto.

La principal utilidad de un directorio LDAP es como servidor de


autentificación para los distintos servicios de un sistema informático como
puedan ser: autentificación para entrar en un PC, para entrar en una aplicación
web, para acceder a un servidor ftp, para acceder a servidores de correo
entrante POP3 y saliente SMTP, etc...

Si en nuestra red disponemos de un servidor LDAP y configuramos todos los


PCs y todos los servicios de la red para que se autentifiquen en él, bastará con
crear las cuentas de usuario y grupos de usuarios en nuestro servidor LDAP
19 Víctor Manuel Garrido Cases
Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


para que los usuarios puedan hacer uso del sistema y de sus servicios desde
cualquier puesto de la red. Es un sistema ideal para centralizar la
administración de usuarios en un único lugar.

El modelo de información de LDAP se basa en entradas, entendiendo por


entrada un conjunto de atributos identificados por un nombre global único
(Distinguished Name – DN), que se utiliza para identificarla de forma
específica. Las entradas se organizan de forma lógica y jerárquica mediante un
esquema de directorio, que contiene la definición de los objetos que pueden
formar parte del directorio.

Cada entrada del directorio representa un objeto, que puede ser abstracto o
real: una persona, un mueble o una función en la estructura de una empresa,
etc

Cada atributo de una entrada tendrá un tipo y un valor con el formato


atributo/valor que permite caracterizar un aspecto del objeto que define la
entrada. Estos atributos tienen nombres que hacen referencia a su contenido y
pueden ser de dos tipos:

 Atributos normales. Son los atributos que identifican al objeto (nombre,


apellidos, etc.).

 Atributos operativos. Son los atributos que utiliza el servidor para


administrar el directorio (fecha de creación, tamaño, etc.).

Las entradas se indexan mediante el nombre completo (dn), que facilita la


identificación singular a cada elemento del árbol. El nombre completo se
formará con una serie de pares atributo/valor, separados por comas, que
reflejan la ruta inversa desde la posición lógica del objeto hasta la raíz del
árbol.

Para referirse al nombre completo suelen utilizarse las siglas RDN, que
provienen del inglés Relative Distinguished Name.

Entre los atributos que suelen emplearse habitualmente, encontramos los


siguientes, aunque puede haber muchos más:

 uid (user id). Identificación única de la entrada en el árbol.

 objectClass. Indica el tipo de objeto al que pertenece la entrada.

20 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


 cn (common name). Nombre de la persona representada en el objeto.

 givenname. Nombre de pila.

 sn (surname). Apellido de la persona.

 o (organization). Entidad a la que pertenece la persona.

 u (organizational unit). El departamento en el que trabaja la


persona.

 mail. dirección de correo electrónico de la persona.

De esta forma, una entrada almacenada en el directorio LDAP podría tener el


siguiente aspecto:

dn: uid=jlopez, ou=medio, dc=somebooks, dc=es

objectClass: person

cn: Juan Lopez

givenname: Juan

sn: Lopez

o: somebooks

u: medio

mail: juanlopez@somebooks.es

21 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


Las diferentes entradas se organizan a modo de árbol jerárquico que,
normalmente, representa una estructura organizativa o geográfica en particular.

En el caso anterior se definen dos tipos de objetos “medio” y “superior”

Así, por ejemplo, las entradas que representan comunidades autónomas


aparecerán en la parte superior del árbol, debajo estarán las que representan
provincias, después las ciudades, los departamentos, los usuarios, etc.

Instalación del servidor


Para llevar a cabo la instalación del servidor, realizaremos las siguientes
tareas:

 Instalar los paquetes necesarios.

 Realizar la configuración básica de OpenLDAP.

 Configurar la autenticación para los clientes.

 Configurar el demonio SLAPD.

 Crear la estructura del directorio.

 Añadir un usuario y un grupo.

 Comprobar que todo es correcto.

Configuración básica del servidor


Antes de comenzar con la instalación propiamente dicha, tenemos que
modificar unos ficheros de configuración del servidor. Comenzaremos
configurando el archivo /etc/hosts. En este archivo añadiremos una nueva
línea con la ip estática del servidor y el nombre lógico por el que vamos a hacer
referencia a nuestro servidor LDAP.

192.168.0.16 PurpleTentacle.somebooks.local PurpleTentacle

Comprobaremos que el contenido del fichero /etc/hostname contiene el


nombre del equipo PurpleTentacle

Instalación de los paquetes necesarios


El proceso de instalación es realmente sencillo. Básicamente consiste en
instalar el paquete slapd, aunque nosotros también instalaremos el
paquete que contiene las utilidades de administración de LDAP: ldap-utils.
22 Víctor Manuel Garrido Cases
Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


Durante la instalación, aparece en la consola un mensaje que nos solicita la
contraseña de administración para LDAP. Es muy importante añadir una
contraseña segura.

A continuación, instalaremos la librería NSS para LDAP. Esta librería ofrece


una interfaz para acceder y configurar distintas bases de datos utilizadas para
almacenar cuentas de usuario.

Instalamos el paquete libnss-ldap con el modificador –y

sudo apt-get install libnss-ldap –y Instala dependencias sin preguntas

En la primera pantalla que aparece insertamos la IP del servidor de la siguiente


forma ldap://192.168.0.16/

A continuación escribimos el nombre global único DN, en nuestro caso


pondremos (dc=somebooks,dc=local)

En el siguiente paso, indicaremos la versión del protocolo LDAP que vamos a


utilizar. Salvo que dispongamos en nuestra red de clientes muy antiguos, lo
normal será elegir el valor más alto.

23 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux

A continuación, indicaremos si las utilidades que utilicen PAM deberán


comportarse del mismo modo que cuando cambiamos contraseñas locales.
Esto hará que las contraseñas se guarden en un archivo independiente que
sólo podrá ser leído por el superusuario. Marcamos Yes.

A continuación, el sistema nos pregunta si queremos que sea necesario


identificarse para realizar consultas en la base de datos de LDAP. Marcamos
No.

Ya sólo nos queda indicar el nombre de la cuenta LDAP que tendrá privilegios
para realizar cambios en las contraseñas. Como antes, deberemos escribir un
nombre global único (Distinguished Name – DN) siguiendo las indicaciones que
vimos al principio de este capítulo (cn=admin,dc=somebooks,dc=local)

En el último paso, el asistente nos solicita la contraseña que usará la cuenta


anterior. Deberá coincidir con la que escribimos en el apartado Instalar
OpenLDAP en el servidor.

Si hemos sido cuidadosos en la inserción de los datos solicitados durante la


instalación, el proceso finalizará correctamente.

Si algo no se ha escrito bien tendremos que ejecutar el siguiente comando:

sudo dpkg-reconfigure ldap-auth-config

24 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


Configurar la autenticación para los clientes

Lo primero que haremos será utilizar auth-client-config, un script que


nos ayuda a modificar los archivos de configuración de PAM y NSS. Para
conseguirlo, ejecutamos el siguiente comando en la terminal.

sudo auth-client-config -t nss -p lac_ldap

La ejecución de este comando no debe ofrecer ningún tipo de error

Como puede verse, en nuestro caso hemos utilizado dos atributos:

 -t nss, con el que le indicamos que los archivos que vamos a modificar
son los correspondientes a NSS

 -p lac_ldap, con el que indicamos que los datos para la configuración


debe tomarlos del archivo lac_ldap. Este archivo se habrá generado
durante la ejecución de ldap-auth-config en el punto anterior.

A continuación, deberemos actualizar la configuración de las políticas de


autenticación predeterminadas de PAM, lo que conseguimos con el siguiente
comando:

sudo pam-auth-update

Dejamos los datos por defecto en la ventana que nos aparece

En la siguiente ventana deberemos escribir el nombre DNS que utilizamos para


crear el DN base (Distinguished Name) del directorio LDAP.

25 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


Una vez acabada la configuración automática, editamos el archivo
/etc/ldap.conf y comprobamos los siguientes datos

base dc=somebooks,dc=local

uri ldap://192.168.0.16/

rootbinddn cn=admin,dc=somebooks,dc=local

ldap_version 3

bind_policy soft

Con esto habremos terminado la configuración del servidor LDAP. Ahora está
listo para autenticar usuarios.

Nos aseguramos que el fichero /etc/ldap/ldap.conf tiene todas las líneas


comentadas excepto la última

Nos aseguramos que el fichero /etc/nsswitch.conf tiene estas líneas:

passwd: files ldap

group: files ldap

shadow: files ldap

Configurar el demonio SLAPD


El último paso en la configuración del servidor LDAP será establecer algunos
parámetros en la configuración de este demonio. Para conseguirlo,
ejecutaremos el siguiente comando:

sudo dpkg-reconfigure slapd

Aparecerá un asistente cuyo cometido es evitar que tengamos que cambiar a


mano el archivo slapd.conf.

La primera pantalla que se muestra, actúa como medida de seguridad, para


asegurarse de que no hacemos cambios por error. Hay que tener cuidado
porque la pregunta se hace al revés, es decir, nos pregunta si queremos omitir
la configuración del servidor OpenLDAP, elegimos la opción No.

Como nombre de dominio escribimos somebooks.local tal y como aparece


en la siguiente pantalla

26 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux

Después, escribiremos el nombre de la entidad en la que estamos instalando el


directorio LDAP. Escribiremos SomeBooks (que es un nombre cualquiera
asociado al nombre de nuestro directorio).

27 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


Ahora el sistema nos pide la contraseña de administración del directorio. Debe
coincidir con la que escribimos en los apartados anteriores.

A continuación, elegiremos el motor de la base de datos que usaremos para el


directorio. Se recomienda HDB porque nos permitirá, en el futuro, cambiar los
nombres de los subárboles si fuese necesario.

Lo siguiente que nos pregunta el asistente es si queremos que se borre la


base de datos anterior del directorio cuando terminemos la configuración de
slapd. Elegimos No.

A continuación, como hemos decidido no borrar la base de datos antigua, el


asistente nos pregunta si queremos cambiarla de sitio. Elegimos Si.

En algunas redes, con clientes muy antiguos, puede ser necesario mantener la
versión 2 del protocolo LDAP. Por ese motivo, antes de terminar, el asistente
nos pregunta queremos permitir el protocolo LDAPv2. Elegimos No.

Después de este último paso, se cierra el asistente y volvemos a la consola

Instalamos ahora el paquete nscd.

Con esto habremos terminado la configuración del servidor LDAP. Ahora


está listo para autenticar usuarios.

Para arrancar el servicio ejecutaremos sudo /etc/init.d/slapd start.

28 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


Para parar el servicio ejecutaremos sudo /etc/init.d/slapd stop.

Para ver el estado del servicio ejecutaremos service slapd status.

Crear la estructura del directorio


Una vez configurado el servidor, deberemos configurar la estructura básica del
directorio. Es decir, crearemos la estructura jerárquica del árbol (DIT –
Directory Information Tree).

Una de las formas más sencillas de añadir información al directorio es utilizar


archivos LDIF (LDAP Data Interchange Format). En realidad, se trata de
archivos en texto plano, pero con un formato particular que debemos conocer
poder construirlos correctamente

El formato básico de una entrada es así:

# comentario

dn: <nombre global único>

<atributo>: <valor>

<atributo>: <valor>

...

Las líneas que comienzan con un carácter # son comentarios.

<atributo> puede ser un tipo de atributo como cn o objectClass, o puede incluir


opciones como cn;lang_en_US o userCertificate;binary.

Entre dos entradas consecutivas debe existir siempre una línea en blanco.

Si una línea es demasiado larga, podemos repartir su contenido entre varias,


siempre que las líneas de continuación comiencen con un carácter de
tabulación o un espacio en blanco.

podemos asignar varios valores a un mismo atributo utilizando varias líneas

dn: uid=jlopez, ou=medio, dc=somebooks, dc=es

cn: Juan Jose Lopez

cn: Juan Lopez

Vamos a escribir ahora un archivo llamada base.ldif con este


contenido
29 Víctor Manuel Garrido Cases
Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


dn: ou=usuarios,dc=somebooks,dc=local

objectClass: organizationalUnit

ou: usuarios

dn: ou=grupos,dc=somebooks,dc=local

objectClass: organizationalUnit

ou: grupos

Lógicamente, los valores dc=somebooks,dc=local serán sustituidos en


cada implementación por los valores adecuados, en nuestro caso los dejamos
ya que son los valores que se están utilizando.

Una vez creado este archivo, debemos añadir la información a la base de


datos. Haremos lo siguiente:

sudo ldapadd -x -D cn=admin,dc=somebooks,dc=local -W -f base.ldif

Añadir un usuario y un grupo

Para crear un usuario creamos un fichero llamada usuario.ldif y


escribimos el siguiente contenido

dn: uid=jlopez,ou=usuarios,dc=somebooks,dc=local

objectClass: inetOrgPerson

objectClass: posixAccount

objectClass: shadowAccount

uid: jlopez

sn: Lopez

givenName: Juan

cn: Juan Lopez

displayName: Juan Lopez

uidNumber: 1060

gidNumber: 1060

userPassword: mi_password

gecos: Juan Lopez

loginShell: /bin/bash

homeDirectory: /home/jlopez

30 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


shadowExpire: -1

shadowFlag: 0

shadowWarning: 7

shadowMin: 8

shadowMax: 999999

shadowLastChange: 10877

mail: juan.lopez@somebooks.com

postalCode: 29000

o: somebooks

initials: JL

Ahora añadimos este fichero a la base de datos.

sudo ldapadd -x -D cn=admin,dc=somebooks,dc=local -W -f usuario.ldif

Para crear un grupo repetimos el proceso. Creamos un fichero llamado


grupo.ldif y añadimos el siguiente contenido

dn: cn=SMR2,ou=grupos,dc=somebooks,dc=local

objectClass: posixGroup

cn: SMR2

gidNumber: 1060

Y añadimos el fichero a la base de datos

sudo ldapadd -x -D cn=admin,dc=somebooks,dc=local -W -f grupo.ldif

Como podemos observar tanto en el fichero de usuarios como en el de grupos


existen valores como el UID, el Shell, el GID que están relacionados con los
campos del sistema. Lógicamente, los valores de algunos de estos campos,
por ejemplo el UID, deben ser únicos para cada usuario.

Gestión del servidor LDAP en modo gráfico


Existe un cliente para LDAP, basado en una interfaz web, que permite
administrar de una forma sencilla un servidor LDAP desde cualquier lugar, a
través de un sencillo navegador web. Este cliente es phpLDAPadmin, aunque
también se conoce de forma abreviada como PLA.

Para instalar esta aplicación tecleamos

31 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


sudo apt-get install phpldapadmin –y Instala dependencias sin preguntas

Una vez instalado podremos acceder a esta aplicación vía web. Abrimos un
navegador y tecleamos http://IPServidor/phpldapadmin, en mi caso será:

http://192.168.0.16/phpldapadmin

Vamos a modificar el fichero de configuración para que nos cargue los datos de
nuestro dominio automáticamente, para ello editamos el fichero
/etc/phpldapadmin/config.php y modificamos las siguientes líneas.

Nos aseguramos de las siguientes líneas.

32 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux

Reiniciamos el servidor apache, para ello desde un terminal tecleamos

33 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


systemctl restart apache2

Configuraciones finales

Editamos el fichero /usr/share/pam-configs/mkhomedir y lo dejamos


con los valores indicados a continuación

Name: activate mkhomedir

Default: yes

Priority: 900

Session-Type: Addittional

Session:

required pam_mkhomedir.so umask=0022 skel=/etc/skel

Tecleamos ahora pam-auth-update y en la ventana que nos aparece


marcamos todas las opciones.

Reiniciamos el servicio /etc/init.d/nscd restart

Cambiamos nuestra máquina virtual a Red Interna, en el caso de que no


estuviese ya (modificar /etc/network/interfaces) y reiniciamos.

Si tecleamos getent passwd nos tiene que aparecer además de los usuarios
locales, el usuario creado en LDAP.

Con esto ya tendríamos configurado nuestro servidor LDAP.

Configuración del cliente


Una vez configurado el servidor pasamos a configurar los equipos cliente que
serán los que van a realizar la validación de usuarios mediante el acceso al
servidor LDAP.

Instalación del cliente


Los paquetes necesarios para configurar un equipo cliente son:

 libpam-ldap. facilitará la autenticación con LDAP a los usuarios que


utilicen PAM

34 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


 libnss-ldap. Permitirá que NSS obtenga de LDAP información
administrativa de los usuarios (Información de las cuentas, de los
grupos, información de la máquina, los alias, etc.

 nss-updatedb. Mantiene una caché local del de la información del


usuario y grupo en el directorio LDAP

 libnss-db. Incluye extensiones para usar bases de datos de red.

 nscd. Es un demonio que ofrece una caché para muchas de las


peticiones más frecuentes del servicio de nombres

 ldap-utils. Facilita la interacción don LDAP desde cualquier máquina


de la red.

Por tanto, ejecutamos desde un terminal

sudo apt-get install libpam-ldap libnss-ldap nss-updatedb


libnss-db nscd ldap-utils -y Instala dependencias sin preguntas

En la primera ventana que nos aparece indicamos la IP del servidor, en mi


caso, 192.168.0.16.

ldap://192.168.0.16/

Ahora indicamos el nombre global único (Distinguished Name – DN), en


nuestro caso dc=somebooks,dc=local

35 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux

En la siguiente pantalla nos pide la versión del protocolo, que en nuestro caso
será la versión 3

A continuación, indicaremos si las utilidades que utilicen PAM deberán


comportarse del mismo modo que cuando cambiamos contraseñas locales.
Esto hará que las contraseñas se guarden en un archivo independiente que
sólo podrá ser leído por el superusuario. Marcamos Yes.

A continuación, el sistema nos pregunta si queremos que sea necesario


identificarse para realizar consultas en la base de datos de LDAP. Marcamos
No.

Ya sólo nos queda indicar el nombre de la cuenta LDAP que tendrá privilegios
para realizar cambios en las contraseñas. Como antes, deberemos escribir un
nombre global único (Distinguished Name – DN) siguiendo las indicaciones que
vimos al principio de este capítulo (cn=admin,dc=somebooks,dc=local)

36 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux

En el último paso, el asistente nos solicita la contraseña que usará la cuenta


anterior. Deberá coincidir con la que escribimos en el apartado Instalar
OpenLDAP en el servidor.

Configuración del cliente


Una vez instalados los paquetes debemos realizar una serie de modificaciones
en algunos de los ficheros de configuración que intervienen en el proceso.

Fichero /etc/ldap.conf

Buscamos una línea como esta #bind_policy hard y la sustituimos por


esta bind_policy soft (recuerda eliminar el carácter #, que haría que la
línea fuese ignorada).

Buscamos una línea como esta pam_password md5 y la sustituimos por esta

pam_password crypt

Nos aseguramos que está descomentado la línea uri


ldap://192.168.0.16

Fichero /etc/ldap/ldap.conf

Editamos este fichero y lo dejamos con el siguiente aspecto

37 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux

Fichero /etc/nsswitch.conf

Editamos este fichero y lo dejamos con el siguiente aspecto

Ejecutamos ahora desde el terminal sudo nss_updatedb ldap con lo que


conseguimos actualizar la caché local con la información de usuarios y grupos
correspondientes a LDAP.

38 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


Si todo ha ido bien, podemos utilizar el comando getent, que nos permite
obtener entradas de varios archivos de texto del sistema, por ejemplo, de
passwd y group. La ventaja es que consolida la información local con la
obtenida a través de la red.

Así pues, desde la consola ejecutamos el siguiente comando

getent passwd

Como vemos, la salida del comando ofrece al mismo tiempo información sobre
los usuarios locales y los usuarios LDAP.

Configuraciones finales
Vamos a configurar las políticas de autenticación predeterminadas de PAM,
para ello ejecutamos desde el terminal

sudo pam-auth-update

En la ventana que nos aparece nos aseguramos de que todas las opciones
están marcadas.

Ahora mismo, el cliente ya está listo para que nos autentiquemos con una
cuenta de usuario LDAP, sin embargo, al identificarnos con el usuario LDAP
jlopez, no encontraremos la carpeta /home/jlopez en el equipo cliente.
Podíamos crear dicha carpeta a mano, pero tendríamos que repetir el proceso
para cada usuario LDAP y para cada cliente en el que se quisiera conectar.

Si queremos que se cree la carpeta automáticamente cuando el usuario inicie


por primera vez sesión en su equipo, tendremos que hacer lo siguiente.

Editamos el fichero /etc/pam.d/common-session del equipo cliente y


añadimos como primera línea del fichero el siguiente texto:

session required pam_mkhomedir.so skel=/etc/skel/


umask=0022

Una vez hecho este cambio, si reiniciamos sesión e intentamos acceder con el
usuario LDAP veremos que se creará automáticamente su carpeta HOME.

Iniciar sesión gráfica en el cliente con un usuario OpenLDAP


El programa encargado de presentarnos la pantalla de autenticación recibe el
nombre de gestor de sesiones. Ubuntu utiliza LigthDM, este gestor tiene la

39 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


particularidad de que solamente nos muestra la lista de usuarios que ya conoce
por lo que en el caso de usuarios de OpenLDAP no nos aparecen en esa lista y
por tanto no podemos acceder a ellos en el entorno gráfico.

Vamos a configurar LigthDM para que solicite el nombre de usuario y así poder
autenticarnos con usuarios OpenLDAP.

Creamos un directorio que cuelgue de /etc/lightdm llamado


lightdm.conf.d

Creamos dentro de este nuevo directorio un fichero llamo 50-my-custom-


config.conf

Dentro de este fichero añadimos el siguiente contenido

[SeatDefaults]

greeter-hide-users=true

greeter-show-manual-login=true

Si cerramos sesión veremos que podemos ingresar el Login en la pantalla de


acceso, por lo que podremos insertar el nombre del usuario LDAP.

Perfiles móviles con NFS y OpenLDAP


En muchos contextos de red, el apartado anterior puede plantear más dudas
que soluciones, ya que un usuario que vaya cambiando entre varios equipos
cliente acabará teniendo una carpeta para su perfil en cada uno de dichos
clientes y estos no van a estar sincronizados, o lo que es lo mismo, si crea un
archivo en el cliente A, no lo encontrará en su carpeta cuando inicie sesión
desde el cliente B. El motivo es que LDAP sólo se encarga de autenticar a los
usuarios.

Vamos a utilizar NFS para compartir las carpetas de perfil de cada usuario
desde el servidor por lo que todos los datos estarán centralizados evitándose el
problema planteado anteriormente

A este concepto se le denomina perfiles móviles de usuario. Es decir, un


usuario encontrará su carpeta personal (el equivalente a /home/usuario) en
todos los equipos cliente donde inicie sesión y será siempre la misma ya que
dicha carpeta estará en el servidor y no en cada uno de los clientes.

40 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux


Las tareas que deberemos completar para resolverlo son estas:

1. Crear una carpeta en el servidor para guardar la carpeta /home de los


usuarios móviles (el equivalente a /home/usuario de cada usuario en
el servidor). En este ejemplo, en lugar de la carpeta /home crearemos
una específicamente para perfiles móviles a la que llamaremos
/moviles. A continuación cambiamos el propietario y el grupo de dicha
carpeta a nobody y nogroup, teclearemos chown nobody:nogoup
/móviles.

2. Modificar el archivo /etc/exports para compartir el directorio


anterior con permisos de lectura/escritura para todos los usuarios.
Reiniciamos el servicio service nfs-server restart

3. Crear una carpeta en los equipos cliente para montar los perfiles
móviles (el equivalente a /home/usuario de cada usuario en cada
cliente). Para este ejemplo, la carpeta de los clientes también se llamará
/móviles, esta carpeta tendrá todos los permisos para todos los tipos
de usuarios (chmod 777 /moviles). Esta carpeta la hemos llamado
igual que la del servidor aunque no es necesario que su nombre
coincida.

4. Modificar el archivo /etc/fstab de cada cliente para que monte la


carpeta que hemos creado en el paso 1 en el punto de montaje
establecido en el paso 3 y reiniciar el equipo.

192.168.0.16:/moviles /moviles nfs defaults 0 0

5. Modificar las cuentas de usuario LDAP para indicar que la carpeta


donde deben tener su perfil se encuentra dentro de la carpeta creada
en el paso 3 (la que montamos en el cliente)

41 Víctor Manuel Garrido Cases


Sistemas Informáticos 1º Desarrollo de Aplicaciones Web.

Unidad 12. Administración de redes en un SO GNU Linux

Bibliografía
Configuración de servicios de red en Ubuntu

http://www.forat.info/2008/08/12/servidor-en-linux-ubuntu-server-manual-
completo/

Configuración de servicios de red en Ubuntu

Mauricio Escribano. Profesor de la especialidad de Informática CIFP Carlos III

Uso de fdisk

https://baulderasec.wordpress.com/linux/3-configurar-el-hardware/3-11-
particionar-un-disco/uso-de-fdisk/

Instalar y configurar OpenLDAP en el servidor Ubuntu

http://somebooks.es/12-4-que-es-ldap/

Sistemas Operativos en Red

Editorial RAMA. José Luis Raya Cabrera y Manuel Santos González

Instituto Nacional de Tecnologías educativas. Aulas en red. OpenLDAP

http://www.ite.educacion.es/formacion/materiales/85/cd/linux/m6/openldap.html

Configuración servidor LDAP

https://www.youtube.com/watch?v=zNzRNgSbDPs

42 Víctor Manuel Garrido Cases

También podría gustarte