Biblioteca Online : ¡La Suscripción ENI por 9,90 € el primer mes!, con el código PRIMER9. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Red Hat Enterprise Linux - CentOS
  3. CentOS
Extrait - Red Hat Enterprise Linux - CentOS Puesta en marcha y gestión de servidores
Extractos del libro
Red Hat Enterprise Linux - CentOS Puesta en marcha y gestión de servidores Volver a la página de compra del libro

Poner en marcha el sistema

La secuencia de arranque

1. Por qué hay que conocerla

Para otros sistemas, no es necesario conocer la secuencia de arranque, que sigue siendo relativamente opaca. Para Linux, sin embargo, es útil conocer los distintos pasos del arranque, desde que se pulsa el botón ON de la máquina hasta la aparición de un prompt de inicio de sesión. ¿Qué ha ocurrido mientras tanto?

Hay varias razones para plantearse esta pregunta. En primer lugar, como gestor del sistema, puede ser importante tener una visión general de su funcionamiento para comprender su filosofía.

Entonces, para obtener una configuración precisa de su sistema, tendrá que intervenir, por supuesto, en elementos de la vida del sistema en producción, es decir, una vez que se haya puesto en marcha. Sin embargo, tarde o temprano (relativamente pronto, de hecho), también tendrá que modificar la puesta en marcha de la máquina.

Tendrá que adaptar el sistema al uso requerido. Por ejemplo, ¿qué servicios desea iniciar en el arranque? En este caso, deberá modificar los archivos localizados en /etc/systemd/.

¿Quizás desea mejorar el rendimiento del sistema? ¿O mejorar la seguridad? Si es así, puede que necesite establecer una contraseña para el gestor de arranque o elegir el tipo de núcleo utilizado cuando se inicializa el sistema.

En última instancia...

BIOS

Esta parte no concierne directamente a Red Hat Enterprise Linux, pero interviene en el arranque de la máquina y, por tanto, en la gestión de su servidor.

El BIOS (Basic Input/Output System o sistema básico de entrada/salida) es un programa en memoria de solo lectura, cuyo objetivo principal es proporcionar acceso a los distintos elementos físicos de la máquina. Puede ser utilizado por el sistema operativo, pero es más conocido por su uso en el arranque de la máquina.

Al pulsar el botón de encendido del servidor, el BIOS realiza un POST (Power-On Self Test, autoprueba de encendido). Se comprueba la memoria, se declaran los discos y otros componentes y se realizan diagnósticos.

Si todo va bien, el BIOS lanza entonces el sistema operativo en el dispositivo de arranque, es decir, el dispositivo que lanzará el sistema operativo. En general, se busca primero en las unidades de disquete y CD-ROM y, después, en el disco duro.

El orden de los dispositivos de arranque lo configura el gestor en la interfaz del BIOS. Se puede acceder a esta interfaz en el momento del arranque, a menudo pulsando en la tecla [Supr] o en una combinación de teclas.

Concretamente, en el dispositivo de arranque, el «boot» necesario para poner en marcha el sistema operativo se denomina cargador de arranque (o bootloader).

El gestor de arranque instalado y utilizado por Red Hat Enterprise Linux se llama GRUB.

UEFI

La UEFI, cada vez más común en las máquinas recientes, es la sucesora del BIOS. La UEFI proporciona funciones muy necesarias, como una interfaz de alta resolución, admite red integrada y la posibilidad de acceder directamente a la partición de arranque, a diferencia del BIOS, que tiene que pasar por una zona específica y única del disco duro, invisible para el usuario.

La posibilidad de disponer de varias particiones de arranque, directamente accesibles desde la UEFI, implica el uso de GPT. Esta capacidad significa que diferentes sistemas operativos pueden coexistir fácilmente en el disco y que el sistema operativo puede seleccionarse directamente desde la UEFI y no desde el gestor de arranque (aunque esto sigue siendo posible).

La otra gran ventaja de la UEFI es el arranque seguro (secure boot), cuyo objetivo es impedir la instalación de un rootkit por parte de un pirata informático, instalando un núcleo que contenga fallos de seguridad en lugar del núcleo legítimo.

El arranque seguro (secure boot) requiere, por tanto, el lanzamiento de un núcleo firmado con una clave privada autorizada. La UEFI contiene un conjunto de claves públicas oficiales correspondientes.

Cuando esta función está activada, no se puede ejecutar un kernel sin firmar.

Sobra decir que solo los editores oficiales de sistemas operativos disponen de esta clave privada. Así que todos...

Cargador de arranque GRUB

1. Presentación

Generalmente, la mayoría de los cargadores de arranque son solo un trozo de código al principio del disco duro de arranque, utilizado para lanzar directamente el único sistema operativo instalado en el sistema. Por esta razón, a menudo pasan desapercibidos para el usuario.

GRUB permite seleccionar uno de los sistemas operativos presentes en el disco duro cuando se arranca. En el caso de Linux, también puede utilizarse para seleccionar el núcleo que se va a arrancar e incluso para pasarle opciones.

Por ejemplo, GRUB podría presentar las siguientes opciones:

  • Red Hat Linux

  • Red Hat Linux en modo de mantenimiento (opción pasada al núcleo)

  • Red Hat Linux SMP (elección de otro núcleo que admita multiprocesador)

  • Microsoft Windows 7 (elección de otro sistema operativo)

GRUB (GRand Unified Bootloader, cargador de arranque unificado) no está limitado a ningún sistema operativo en particular, aunque se instala con más frecuencia en sistemas Linux como Red Hat Enterprise Linux.

GRUB tiene muchas otras ventajas, como la posibilidad de cambiar las opciones de inicio del sistema.

Existen dos versiones:

  • GRUB 0.9x: primera versión de GRUB, instalada en RHEL 5/6, también conocida como GRUB Legacy (GRUB heredado).

  • GRUB 2: reescritura, a partir de RHEL 7.

2. GRUB Legacy

Nivel 1 y el Master Boot Record

El MBR (Master Boot Record) es el primer sector de 512 bytes del disco duro. Contiene el gestor de arranque GRUB de nivel 1 y la tabla de particiones del disco.

¿Por qué «nivel 1»?

Como el MBR es demasiado pequeño para contener un gestor de arranque «completo», es necesario cargar otro programa que contenga más funciones. Esta es la razón por la que GRUB está dividido en dos niveles.

El gestor de arranque de nivel 1 indica dónde encontrar el gestor de arranque de nivel 2. A continuación, se ejecuta este gestor de arranque.

Nivel 2

Este es el gestor de arranque que contiene todas las funciones de GRUB y tiene una interfaz. Por lo tanto, es de mayor tamaño y se encuentra en una partición llamada /boot/.

Tenga en cuenta que GRUB Legacy solo puede leer los sistemas de archivos ext2, ext3 y ext4. Esta es la razón por la que la partición /boot/ no se puede formatear en NTFS (sistema de archivos...

Lanzar el núcleo y el proceso padre

1. El papel del núcleo (kernel)

Una vez elegido el sistema operativo, si se trata de un sistema Linux, el gestor de arranque lanza el núcleo, que se encarga de las operaciones de arranque.

Como su nombre indica, el núcleo es el componente esencial del sistema operativo. Su función es actuar como interfaz entre el hardware, la máquina y el software, es decir, los componentes de software del sistema operativo como el intérprete de comandos (para controlar la máquina) y los distintos programas que se ejecutan.

Como interfaz, el núcleo proporciona una capa de abstracción para el software. El software no puede gestionar directamente la memoria, el procesador y los medios de almacenamiento. Así que es tarea del núcleo proporcionar conexiones «universales» para que el software acceda a los recursos físicos. Por supuesto, gracias al núcleo, los programas también pueden comunicarse entre ellos.

El núcleo es un conjunto de mecanismos que gestionan:

  • funciones:

  • gestión del sistema de archivos,

  • gestión de procesos (software),

  • funciones de red: implementación de IPv4 e IPv6, cortafuegos, etc.

  • etc.

Estas funciones pueden ser parte integrante del núcleo o añadirse dinámicamente mediante la carga de módulos de ampliación.

  • acceso a los componentes de hardware mediante controladores:

  • medios de almacenamiento (discos duros SATA/SCSI, USB, etc.),

  • interfaces de red,

  • tarjeta de sonido,

  • etc.

Los controladores estándar son parte integrante del núcleo (por ejemplo, el soporte SATA) o se pueden cargar.

El gestor de arranque también coloca una imagen initramfs (Initial RAM Filesystem, sistema de archivos RAM inicial) en la memoria. La imagen en cuestión es un sistema de archivos virtual, es decir, contiene directorios y archivos a los que el núcleo accede como si estuvieran en un disco duro desde la ruta /sysroot/.

La imagen initramfs contiene controladores y módulos que el núcleo necesita para arrancar el sistema. Como estos controladores y módulos no son estándar, se prefiere no incluirlos de forma permanente y estática en el núcleo, que puede cargarlos cuando sea necesario y mantener un tamaño reducido. De hecho, el tamaño de un núcleo no supera unos cuantos megabytes....

Arrancar el sistema

1. Con /sbin/init (RHEL 5 y 6)

a. Puesta en marcha general

Advertencia: esta sección cubre una característica de RHEL ya obsoleta. Sin embargo, la hemos incluido en este libro, no tanto por cultura general, que sigue siendo interesante, sino porque algunos de los comandos que se explican a continuación siguen existiendo en versiones recientes de RHEL, por compatibilidad histórica. Así, el usuario no se sorprenderá al encontrarse con el comando service, por ejemplo, aunque sea absolutamente desaconsejable utilizarlo.

El primer proceso lanzado por el núcleo es /sbin/init. Como su nombre indica, se trata del primer programa ejecutado y que, a su vez, lanzará todos los demás programas, en un orden específico. Como programa inicial, su número de proceso es 1, y es el padre (o abuelo, indirectamente) de todos los demás procesos ejecutados posteriormente en la máquina.

/sbin/init ejecuta sucesivamente varios scripts de arranque. La primera parte de estos scripts define la configuración general del sistema. La segunda parte se refiere a los scripts que se lanzan en función del nivel de ejecución de la máquina, de los que hablaremos con más detalle más adelante.

Todos estos scripts de arranque se encuentran en el directorio /etc/rc.d/.

El primer script lanzado por /sbin/init es /etc/rc.d/rc.sysinit, configura varios elementos, como, por ejemplo:

  • montar en el sistema de archivos el procesador de los entornos virtuales (/proc) y los periféricos del sistema (/sys),

  • cargar los controladores para acceder a periféricos externos en forma de complementos del núcleo,

  • definir el nombre de la máquina,

  • iniciar el archivo de intercambio de memoria swap,

  • montar las diferentes particiones según el archivo /etc/fstab,

  • ejecutar otras tareas necesarias para inicializar el sistema.

Una vez completada la configuración general del sistema, pasamos a la configuración del sistema según el nivel de ejecución.

Una vez lanzados los servicios, se ejecutan los gettys. El propósito de los programas gettys (literalmente Get TTY o atrapa los TTY) es esperar a que un usuario se conecte a cualquiera de las consolas 1 a 6 en modo texto. Una vez que el usuario se ha conectado, el getty inicializa el entorno del usuario y lanza el intérprete de comandos asociado, normalmente...

Apagar el sistema

El sistema se apaga con el comando /sbin/shutdown. Los dos usos principales de shutdown son:

  • Apagar la máquina:

shutdown -h now 
  • La opción -h significa halt: la máquina se apaga después de apagar el sistema operativo.

  • now: puede especificar la hora de apagado. now (ahora) significa que el sistema debe apagarse inmediatamente.

  • También se puede utilizar el comando halt.

  • Reiniciar la máquina:

shutdown -r now 
  • La opción -r significa reboot: la máquina se reinicia después de apagar el sistema operativo.

  • También se puede utilizar el comando reboot (reiniciar).

  • Programar un apagado o un reinicio: solo tiene que especificar la hora o el retraso (precedido de un +).

Para reiniciar a las 07:05 (especifique la hora en formato 24h):

shutdown -r 07:05 

Para apagar la máquina en 10 minutos:

shutdown +10 

Para cancelar un shutdown, utilice la opción -c (cancel, cancelar, abandonar):

shutdown -c 

Por supuesto, el apagado del sistema operativo debe realizarse correctamente. Además de apagar los servicios, al hacer esta acción el sistema desmonta las particiones, lo que garantiza que no se corrompa ningún dato.

En RHEL, cuando se teclea el comando shutdown, el sistema realiza un poweroff predefinido: la máquina se apaga.

Nociones de criptografía

La criptografía es la disciplina que utiliza las matemáticas para reforzar la seguridad informática. Implica una serie de principios que se utilizan en muchos lugares de un sistema operativo: para la autenticación del usuario, por supuesto, pero también para la autenticación de la máquina, las VPN, la verificación del software, el arranque del sistema (UEFI), etc.:

  • criptografía simétrica o cifrado de clave secreta compartida,

  • criptografía asimétrica o cifrado de clave pública/privada,

  • hashing o huella digital,

  • firma digital,

  • certificados,

  • validación por un tercero de confianza.

Estos principios pretenden alcanzar los siguientes objetivos:

  • confidencialidad: ocultar los datos, encriptarlos,

  • autenticidad: verificar que una persona es quien dice ser (y, por tanto, que está autorizada a ver los datos),

  • integridad: comprobar que los datos no han sido modificados.

Criptografía simétrica

La criptografía simétrica es la forma más conocida. Consiste en utilizar la misma clave para cifrar y descifrar datos. En términos generales, el cifrado implica dos elementos: un algoritmo de cifrado y una clave de cifrado.

El algoritmo es la fórmula matemática utilizada para obtener un mensaje cifrado a partir de un mensaje en texto sin cifrar. El objetivo del algoritmo es ser robusto, es decir, no debe tener ningún fallo que permita descifrar un mensaje sin la clave de descifrado. Sin embargo, el algoritmo puede ser de dominio público. La clave, por su parte, permite modificar el resultado del algoritmo sobre un mensaje en texto sin cifrar.

Dos mensajes absolutamente idénticos, encriptados utilizando el mismo algoritmo, pero claves diferentes, producirán mensajes encriptados completamente distintos.

Por lo tanto, no basta con conocer el algoritmo para descifrar el mensaje; también se necesita la clave correcta.

El principal inconveniente de la criptografía simétrica es que la clave utilizada para cifrar y descifrar el mensaje es la misma, por lo que es especialmente confidencial y debe permanecer secreta. Se dice que es compartida, ya que la poseen tanto el emisor del mensaje (que cierra el mensaje con la clave) como el destinatario (que abre el mensaje con la misma clave). Sin embargo, este tipo de criptografía requiere muy poca potencia...