Gestión de los clientes de red
Requisitos y objetivosS
1. Requisitos
Los conocimientos necesarios para la certificación LPIC-1:
Comandos de seguimiento de los procesos.
Edición de archivos.
Comandos de gestión de directorios y archivos.
Los conocimientos adquiridos en los anteriores capítulos, especialmente:
Gestión de la red local.
Gestión de los servicios.
Gestión de DNS.
2. Objetivos
Al final de este capítulo, deberá poder:
Conocer los principios y el funcionamiento de DHCP.
Configurar y administrar un servidor DHCP.
Administrar los rangos de direcciones DHCP y sus opciones, incluyendo las necesarias para BOOTP.
Configurar un cliente DHCP.
Configurar PAM para la autenticación.
Conocer las funcionalidades de base de SSSD.
Interrogar a servidor LDAP y actualizar sus datos.
Configurar un servidor OpenLDAP simple.
Conocer los principios del formato LDIF y las bases del control de acceso LDAP.
Gestión de los clientes de red
Este tema está divido en dos partes con pesos diferentes.
1. Configuración DHCP
Peso |
2 |
Objetivos |
Configurar un servidor DHCP. Configurar las opciones por defecto y para cada cliente, las direcciones estáticas y los puestos clientes BOOTP. Configurar los agentes de retransmisión DHCP y asegurar el mantenimiento de los servidores DHCP. |
a. Competencias principales
-
Archivos, términos y herramientas de configuración de DHCP.
-
Configuración de rangos de direcciones por subred y dinámicos.
-
Conocimientos básicos de DHCPv6 y de las señales IPv6 de los routers.
b. Elementos empleados
-
dhcpd.conf
-
dhcpd.leases
-
Registros DHCP en syslog o en el registro systemd
-
arp
-
dhcpd
-
radvd
-
radvd.conf
2. Autenticación usando PAM
Peso |
3 |
Objetivos |
Configurar PAM para la autenticación a partir de diferentes métodos. Funcionalidades básicas de SSSD. |
a. Competencias principales
-
Archivos, términos y herramientas de configuración de PAM.
-
Contraseñas passwd y shadow.
-
Uso de sssd para la autenticación LDAP.
b. Elementos empleados
-
/etc/pam.d/
-
pam.conf
-
nsswitch.conf
-
pam_unix, pam_cracklib, pam_limits, pam_listfile, pam_sss
-
sssd.conf
c. Uso de un cliente LDAP
Peso |
2 |
Objetivos |
Interrogar un servidor LDAP y actualizar sus datos. Importar y añadir elementos, incorporación y gestión de usuarios. |
d. Competencias principales
-
Herramientas LDAP...
Configuración DHCP
DHCP (Dynamic Host Configuration Protocol) es un protocolo cliente-servidor concebido para facilitar la gestión de grandes parques de puestos de trabajo y de equipos que utilicen direcciones IP. Permite asignar automáticamente una dirección IP y los parámetros asociados a los hosts de una red IP.
1. El protocolo DHCP
El protocolo DHCP, definido primero en la RFC 1531, es un derivado de un protocolo más antiguo, BOOTP. Funciona esencialmente a través de mensajes UDP en difusión (broadcast), del puerto cliente 68 hacia el puerto servidor 67, opcionalmente reenviados por agentes de retransmisión DHCP (rol generalmente asumido por routers).
Los cuatro paquetes IP que realizan la atribución al cliente DHCP de una concesión de dirección mediante un servidor DHCP se detallan a continuación.
a. Búsqueda de un servidor DHCP: DHCPDISCOVER
El cliente DHCP emite una solicitud en su red, en modo difusión, para buscar un servidor DHCP. La solicitud, llamada DHCPDISCOVER, contiene la dirección MAC del cliente emisor, así como la última dirección IP que le fue atribuida, en el caso de que hubiera alguna (incluso si la concesión de la dirección ha expirado).
b. Oferta de concesión hecha por el servidor: DHCPOFFER
Cada servidor DHCP presente en la red trata la solicitud del cliente. Consulta su base de direcciones IP. Si hubiera alguna dirección disponible para la red en la que ha recibido la solicitud, la reservará para proponérsela al cliente, dando preferencia a la dirección actual del cliente, si tuviera alguna y en el caso de que formará parte de la base de direcciones del servidor y además estuviera disponible. Propondrá la dirección en la respuesta al cliente, un paquete en modo unicast que contiene un mensaje DHCPOFFER.
Si el servidor no dispone de una dirección IP que dar al cliente, no responderá a esta solicitud.
c. Aceptación de la oferta: DHCPREQUEST
El cliente DHCP recibe la oferta de uno o varios servidores DHCP. Si alguna proposición contuviera la última dirección IP que tuvo, la seleccionaría preferentemente.
Una vez que una respuesta haya sido seleccionada por el cliente, este último envíará un paquete en modo difusión, que contendrá...
Autenticación usando PAM
Sea cual sea el sistema operativo usado, múltiples aplicaciones y servicios necesitan una identificación y una autenticación del usuario, es decir, comprobar que el usuario está autorizado a acceder a un servicio o a una aplicación, y que este usuario prueba su identidad.
Al principio, en entorno Unix, las aplicaciones y los servicios desarrollaban su propio método de identificación y de autentificación del usuario y de control de acceso. Algunos programas validaban la cuenta del usuario a partir de la base de cuentas local (/etc/passwd) y otros a partir de una base de cuentas distribuida (NIS, LDAP). Algunas aplicaciones comprobaban que la cuenta que presentaba el usuario no era la cuenta del superusuario, o al contrario que se trataba del superusuario, otras aplicaciones daban el acceso a los usuarios según que existiera o no el archivo (/etc/nologin, por ejemplo), o la declaración de su terminal en otro archivo (/etc/securettys), etc.
En las primeras versiones Unix, la contraseña estaba almacenada directamente en la línea de la cuenta del usuario, cifrada, en el archivo /etc/passwd. No obstante, como todos los usuarios debían poder acceder a este archivo en lectura, se creó un archivo específico de gestión de contraseñas, /etc/shadow, con funcionalidades suplementarias (duración mínima, máxima, etc.). Es el método implementado en Linux.
Para simplificar y racionalizar los métodos de control de acceso de las aplicaciones, se concibió una capa intermediaria, que permite a las aplicaciones y los servicios delegarle estas operaciones: PAM (Pluggable Authentication Modules). Creada por Unix, ha sido implementada en Linux.
PAM está compuesta por un conjunto de módulos de software especializados, que podemos combinar en un orden específico y según reglas precisas, a través de archivos de configuración que son asociables a las diferentes aplicaciones.
Este método permite a los administradores de sistemas configurar las reglas de control de acceso a los servicios que utilizan PAM, independientemente de los propios programas, para adaptarlos a la política de seguridad de su organización.
1. El principio
PAM es una capa de software que asegura la interfaz entre las aplicaciones y los diversos métodos...
Configuración de un servidor OpenLDAP
LDAP (Lightweight Directory Access Protocol) es un protocolo estándar de acceso a un servicio de Aller directorio distribuido, definido por la RFC 4511. Permite juntar en un arborescencia de directorio el conjunto de datos que conciernen a los diferentes objetos de una organización (cuentas de usuario, grupos, máquinas, servicios de red, edificios, etc.), y permite a los clientes LDAP acceder a los datos a través de solicitudes normalizadas.
Linux puede ser servidor y/o cliente LDAP.
1. Generalidades
En 1988, la ITU (International Telecommunication Union, ex-CCITT) implementó una norma que cubría los diferentes elementos necesarios para proporcionar servicios de directorio electrónico, que pudieran ser utilizables a través de una red: la norma X.500, validada a continuación por la ISO (norma ISO/IEC 9594).
Esta norma era particularmente compleja, un protocolo más simple de acceso a los servicios de mensajería derivó de ella, LDAP (Lightweight Directory Access Protocol). Este protocolo a continuación fue extendido para considerar un modelo completo de directorios.
Los servicios de directorios compatibles LDAP más utilizados hoy día son Microsoft ADS (Active Directory Services), Oracle Directory Server Enterprise Edition, IBM Tivoli Directory Server y, en el mundo del software libre, OpenLDAP y Apache Directory Server.
a. Estructura y terminología
Los directorios electrónicos de tipo X.500 se basan en una estructura jerárquica, en arborescencia.
Un directorio está compuesto por objetos, que pueden contener otros objetos opcionalmente. Los objetos de estructura se llaman contenedores y pueden ser de diferentes tipos: organización, dominio y unidad organizativa. Un objeto no estructurante se llama hoja (leaf object). Los diferentes datos asociados a un objeto son sus atributos.
Ejemplo
Directorio LDAP basado en una estructura de tipo dominio DNS.
b. Esquema
El conjunto de los tipos de objetos y de los atributos de objeto que pueden figurar en un directorio están definidos en el esquema del directorio.
El esquema de base del directorio puede ser extendido, para definir nuevos tipos de objetos o nuevos atributos para un tipo de objeto existente.
El tipo de un objeto (unidad organizativa OU, componente de dominio DC, etc.) se llama clase. Una clase...
Uso de un cliente LDAP
Además de sus funcionalidades de cliente LDAP, para la identificación y la autenticación de los usuarios, Linux dispone de comandos que permiten interactuar con el servidor LDAP. Estos comandos se proporcionan con el paquete de software ldap-utils (Debian) o openldap-clients (Red Hat).
1. Archivo de configuración del cliente
Aunque no sea obligatorio, el archivo de configuración permite definir opciones y valores por defecto, que pueden ser usados por la biblioteca LDAP. Este archivo, slapd.conf (o, en versiones recientes, ldap.conf), se encuentra, por defecto, en el directorio /etc/ldap o /etc/openldap.
El archivo permite definir variables, valores por defecto para los comandos que usan la biblioteca, entre ellos:
BASE |
Sufijo del directorio por defecto. |
URI |
URI de los servidores LDAP por defecto. |
HOST |
Nombre de host o dirección de los servidores LDAP por defecto. |
Ejemplo
Valores por defecto para los comandos LDAP de un cliente LDAP:
BASE dc=intra,dc=es
URI ldap://servldap.intra.es ldap:// servldap1.intra.es:666
HOST servldap.intra.es
2. Interrogación del directorio: ldapsearch
El comando ldapsearch permite efectuar solicitudes de interrogación al directorio LDAP y recuperar el resultado en el formato normalizado LDIF (LDAP Data Interchange Format).
Este comando admite múltiples opciones. Permite obtener toda la información o una parte de ella almacenada en la arborescencia del directorio LDAP del servidor.
El caso más simple consiste en solicitar la exportación total de toda la información del directorio local (equivalente del comando slapcat). Esto permite comprobar la presencia de un objeto o que el servidor de directorio responde a la solicitudes.
Sintaxis para mostrar el contenido de un directorio
ldapsearch [-x] - b Sufijo
Donde:
-x |
Solicitud anónima (sin contraseña). |
-b Sufijo |
Identificador del directorio que se va a interrogar. |
Ejemplo
ldapsearch -x -b dc=midns,dc=es
# extended LDIF
#
# LDAPv3
# base <dc=midns,dc=es> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# midns.es
dn: dc=midns,dc=es
objectClass: top
objectClass: dcObject
objectClass: organization
o: midns.es ...
Validación de lo aprendido: preguntas/respuestas
Responda a estas preguntas abiertas, parecidas a las que le harán en el examen de la certificación, pero estas últimas serán de tipo test o pidiéndole una respuesta corta que introducirá mediante el teclado.
1. Preguntas
1 ¿En qué orden se intercambian los mensajes DHCPOFFER y DHCPREQUEST entre un cliente y un servidor DHCP?
2 ¿Qué sección del archivo de configuración de un servidor DHCP permite definir un rango de direcciones?
3 ¿Cuáles son los diferentes valores del parámetro tipo de acción en un archivo de configuración PAM?
4 ¿Para qué sirve el módulo PAM pam_unix.so?
5 ¿Qué diferencia hay entre los controles required y requisite en un archivo de configuración PAM?
6 ¿Qué significa LDAP?
7 ¿Cuál es el rol de un DN en un directorio LDAP?
8 ¿Qué línea de comandos permite arrancar el servidor OpenLDAP usando systemd?
9 ¿Qué comando permite comprobar el archivo de configuración del servidor OpenLDAP?
10 ¿Qué hace el comando ldapsearch -x -b dc=socx,dc=es?
11 ¿Qué comando permite a un usuario cambiar su contraseña LDAP?
2. Resultado
En las páginas siguientes encontrará las respuestas a estas preguntas. Por cada respuesta...
Trabajos prácticos
Aquí se proponen ejercicios para implementar algunos de los puntos abordados en el capítulo. En cada uno de ellos se da un ejemplo comentado de la realización del ejercicio, que deberá adaptar a la configuración de sus sistemas.
Para las pruebas, podemos desactivar temporalmente el firewall y SELinux, para evitar interacciones difíciles de diagnosticar:
systemctl stop firewalld
setenforce 0
1. Configuración y uso de un servidor DHCP
Instalamos un servidor DHCP en una distribución RHEL 8.5. El servidor gestionará un rango de diez direcciones que pertenecen a la misma red. Para cada una de ellas, proporcionará una concesión de tres días, y configurará la máscara de red, la pasarela por defecto y el servidor DNS.
Este ejercicio deberá hacerse en una red de pruebas, sin otro servidor DCHP.
Comandos y archivos útiles
-
yum
-
/etc/dhcp/dhcpd.conf
-
/var/lib/dhcpd/dhcpd.leases
-
systemctl
Etapas
1. |
Compruebe que el paquete del servidor DHCP está instalado. |
2. |
Configure el servidor DHCP para administrar un rango de direcciones. |
3. |
Inicio o reinicie el servidor DHCP. |
4. |
Compruebe el servidor desde un cliente DHCP remoto. |
5. |
Compruebe el estado de la concesión en el servidor DHCP. |
Resumen de los comandos y resultado en pantalla
1. |
Compruebe que el paquete del servidor DHCP está instalado. |
Comprobamos que el paquete esté instalado:
[root@srvrh ~]# yum list dhcp-server
Paquetes instalados
dhcp-server.x86_64 12:4.3.6-47.el8 @rhel-8-for-x86_64-baseos-rpms
Comprobamos si el servidor DHCP se está ejecutando:
[root@srvrh ~]# systemctl status dhcpd
? dhcpd.service - DHCPv4 Server Daemon
Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled;
vendor preset: disabled)
Active: inactive (dead)
Docs: man:dhcpd(8)
man:dhcpd.conf(5)
El servidor no está activo.
2. |
Configure el servidor DHCP para administrar un rango de direcciones. |
Comprobamos la dirección IPv4 y la interfaz de red del servidor:
[root@srvrh ~]# ip -4 -br a
lo UNKNOWN 127.0.0.1/8
enp38s0 UP 192.168.1.202/24...