Mantenimiento del sistema
Mantenimiento del sistema
En este capítulo se estudia la instalación de aplicaciones a partir sus códigos fuente, las herramientas de respaldo y de restauración, así como los comandos y los archivos que permiten ofrecer información a los usuarios.
1. Compilación e instalación de programas a partir de sus archivos de código fuente
El objetivo de esta sección es de enseñarle a:
-
compilar e instalar un programa ejecutable a partir de su código fuente. Este objetivo incluye la extracción de código fuente desde un archivo comprimido.
a. Competencias principales
-
Extraer los archivos de código fuente desde los archivos generados por herramientas estándar de compresión.
-
Comprender el uso básico del comando make para compilar programas.
-
Utilizar argumentos en un script de configuración.
-
Conocer las ubicaciones por defecto de los archivos de código fuente.
b. Elementos empleados
-
/usr/src/
-
gunzip
-
gzip
-
bzip2
-
xz
-
tar
-
configure
-
make
-
uname
-
install
-
patch
2. Respaldos
El objetivo de esta sección es de enseñarle a:
-
utilizar herramientas del sistema para respaldar datos importantes.
a. Competencias principales
-
Conocer los directorios que se deben incluir en los respaldos.
-
Conocimientos de base de las soluciones de respaldo de red como Amanda, Bacula, Bareos y BackupPC.
-
Conocer las ventajas y desventajas de los soportes de respaldo, bandas...
Compilación e instalación de programas a partir de las fuentes
Las distribuciones Linux disponen de mecanismos que se ocupan de la instalación de paquetes de programas a partir de los repositorios (repositories) disponibles en la red. Esto permite una gestión completa de los elementos de software implementados en un sistema: listado, actualización y desinstalación.
Sin embargo, a veces es necesario instalar un programa a partir de sus archivos de código fuente, copiando estos últimos en el sistema local y compilándolos para poder generar los programas ejecutables correspondientes.
Este procedimiento solo debe ser utilizado como último recurso, cuando no exista ningún paquete para la distribución que estamos utilizando que contenga el programa que se quiere instalar o la versión deseada. Este tipo de instalación no será asumida por el gestor de aplicaciones estándar, que no conservará ninguna huella del elemento instalado y no podrá ni actualizarlo ni desinstalarlo.
También puede ser necesario aplicar parches (patches) a algunos programas instalados, en particular si son relativos a problemas de seguridad.
1. Instalación a partir de los archivos de código fuente
Para facilitar la instalación de una aplicación a partir de sus archivos de código fuente, un procedimiento estándar de compilación ha sido creado en el marco del proyecto GNU (Gnu is Not Unix). Este procedimiento uniformiza la operación para los diferentes programas de código libre y permite a usuarios que no tengan el perfil de programador poder hacerlo.
Este tipo de instalación generalmente requiere que las herramientas de desarrollo estén presentes en el sistema (paquete de software "build-essential" para distribuciones de tipo Debian, grupo de software "Development tools" para distribuciones de tipo Red Hat).
a. Búsqueda y descarga del código fuente
Generalmente, los archivos de código fuente de una aplicación pueden descargarse, bajo la forma de un archivo comprimido (tarball file).
La primera etapa consiste en descargar este archivo en el directorio donde se vaya a efectuar la compilación.
Después hay que descomprimir y restaurar el archivo, con el o los comandos estándares que soportan...
Respaldos
El respaldo de los sistemas y de los datos que se incluyen en ellos es una de las responsabilidades del administrador del sistema. Los procedimientos que se tienen que implementar y la elección de las herramientas dependen de numerosos factores, que pueden ser a menudo complejos.
Vamos a estudiar diferentes comandos y herramientas de Linux que permiten efectuar respaldos y restauraciones, totales o parciales, y también vamos a evocar algunas aplicaciones especializadas en este ámbito.
1. ¿ Qué hay que respaldar ?
Los respaldos deben incluir diferentes elementos: los datos de los usuarios, los datos de las aplicaciones (archivos y bases de datos), los archivos ejecutables y de configuración de las aplicaciones instaladas y los archivos ejecutables y de configuración del sistema operativo. Estos distintos elementos no necesitan las mismas estrategias de respaldo (frecuencia, tipo de respaldo y soportes que se deberán utilizar) ni las mismas herramientas de respaldo.
a. Sistemas de archivos
La mayoría de los sistemas Linux estructuran su arborescencia global de directorios y de archivos asociando diferentes sistemas de archivos. Una de las ventajas de esta organización es permitir respaldos autónomos de los diferentes sistemas de archivos. Podemos, prácticamente, desmontarlos todos y respaldarlos individualmente. Si se encuentran en volúmenes lógicos LVM o en sistemas de archivos que lo permiten, se puede usar la técnica de instantáneas (snapshots) para salvaguardar su estado en el momento del respaldo.
Sin embargo, algunos directorios necesarios para el arranque del sistema no pueden estar situados en los sistemas de archivos que no se encuentren en la raíz. Este es el caso particular del directorio /etc, que contiene archivos de configuraciones esenciales, y el directorio /bin que contiene ejecutables indispensables para inicializar el sistema (por ejemplo, el programa shell /bin/sh). Por lo tanto, no podemos desmontar el sistema de archivos que los contiene para hacer un respaldo.
b. Directorios
Los diferentes directorios en la raíz del sistema tienen que ser o no respaldados, y los que lo necesiten pueden serlo con una frecuencia diferente. He aquí una lista de los principales directorios y sus características de respaldo típicas:
/home |
Directorios de los usuarios, respaldo regular.... |
Informar a los usuarios
Esta parte punto explicamos los diferentes medios de comunicación que permiten al administrador del sistema informar a los usuarios conectados, o a los que quieran conectarse, con respecto a elementos o eventos del sistema.
Estas herramientas se utilizan cada vez menos, porque la mayoría de los sistemas funcionan en modo cliente/servidor y por lo tanto hay pocos usuarios conectados a un servidor a través de un terminal.
1. Los archivos /etc/issue y /etc/issue.net
El contenido de esos archivos se muestra en la pantalla del terminal antes de la conexión del usuario.
En los terminales locales de la máquina (incluyendo las consolas virtuales) se muestra el contenido de /etc/issue antes de la solicitud de identificación. Este archivo puede contener secuencias de caracteres que tengan un significado particular, dentro de las cuales:
\d |
Fecha. |
\s |
Nombre del sistema. |
\n |
Nombre de red del sistema. |
\r |
Versión del sistema. |
Se muestra el contenido de /etc/issue.net, antes de la solicitud de identificación, en los terminales conectados a través de telnet. No obstante, se desaconseja encarecidamente el uso de ese protocolo por razones de seguridad.
Por defecto, las conexiones a través de ssh no muestran el contenido de ese archivo. Se puede modificar la configuración del servidor ssh para que use ese archivo. Para ello hay que modificar la línea "Banner" del archivo de configuración de ssh, /etc/ssh/sshd_config:
Banner /etc/issue.net
Después habrá que reiniciar el servicio sshd.
Desafortunadamente, el servidor sshd no interpreta las secuencias especiales del archivo issue.net.
Ejemplo
Se implementa un archivo de encabezado para las conexiones ssh en el servidor srvrh RHEL 8.5:
vi /etc/issue.net
Bienvenido al servidor srvrh (RHEL 8.5).
El acceso está reservado a personas autorizadas.
vi /etc/ssh/sshd_config
[...]
#Banner none
Banner /etc/issue.net
[...]
Se reinicia el servidor sshd:
systemctl reload sshd
Nos conectamos al servidor srvrh RHEL 8.5 desde un sistema remoto:
ssh srvrh RHEL 8.5
Bienvenido al servidor...