###### tags: `ASO-GISI` # Administración de servicios de aplicación --- ![](https://i.imgur.com/AtqMdRD.jpg) [TOC] --- ## Funciones del administrador de sistemas El administrador de sistemas es el responsable de que el sistema informático sea fiable, seguro y funcione eficientemente. Para ello, combina conocimientos de sistemas operativos, arquitectura de computadores, redes, programación y seguridad. Su rol es muy importante en una empresa y se trata de una o varias personas de confianza dentro de la organización. Las principales tareas de un administrador de sistemas son: - Operaciones diarias: Algunas de estas tareas pueden automatizarse. - Administración de **usuarios**: altas o bajas, modificar sus características o privilegios. - **Monitorizar el sistema**: - Uso de recursos: CPU, memoria, discos, etc. - Actividades irregulares de los usuarios. - Problemas inesperados. - Realización de **copias de seguridad**. - Gestión de la **seguridad** y detección de intrusiones. - Hardware y software: - Evaluación y compra. - Administración del **sistema operativo**, **servicios** y **aplicaciones**. - Instalación y mantenimiento del **hardware**: impresoras, sistemas RAID, routers, etc. - Instalación, configuración y mantenimiento de la **red**, para permitir que los equipos se comuniquen correctamente. - **Inicio** y **apagado** del sistema, de modo ordenado, para evitar inconsistencias en el sistema de archivos. - Prevención de problemas. - Eliminación y migración de sistemas antiguos. - Organización y planificación de tareas: - Gestión del tiempo de trabajo. - Actualización de conocimientos. - Automatización de actividades repetitivas. - Soporte técnico, formación y asesoramiento a los usuarios. - Documentación: - Detalles de cada sistema particular: localización, detalles de compra, software instalado, usuarios, archivos de configuración, etc. - Etiquetado del hardware: información sobre el nombre, IP, MAC, etc. de cada sistema particular. - Libro de cambios en el sistema: modificaciones en los archivos de configuración, actualizaciones, etc. - Informes sobre las tareas realizadas, facilitan resolver un problema cuando ocurre por segunda vez. - Documentación para usuarios sobre uso de los sistemas. ## Centro de proceso de datos Un **centro de proceso de datos** (**CPD**) o **data center** es una instalación que centraliza las operaciones y la infraestructura de las tecnologías de información (TI) de una organización (o múltiples organizaciones), en la que se almacenan, procesan, tratan y difunden datos y aplicaciones. ![](https://i.imgur.com/LfUktjt.jpg) Hasta hace no mucho, las empresas tendían a construir sus propios centros de datos. Pero el auge de proveedores de servicios en la nube como Amazon Web Services, Google Cloud o Microsoft Azure, ha hecho que las empresas contraten CPD virtuales. Desde 2019, las empresas están incrementando sus gastos en servicios de infraestructura en la nube, que en hardware de centros de datos físicos. Más de la mitad de los servidores vendidos se destinaron a los centros de datos de los proveedores de la nube. Es necesario conocer las necesidades de una organización para poder dimensionar adecuadamente un sistema físico o virtualizando la infraestructura necesaria *(cloud computing)*. Los componentes de un CPD **físico** son: - Capacidad de computación, dada por la memoria y potencia de procesamiento para ejecutar aplicaciones, generalmente proporcionada por servidores de alta gama. - Almacenamiento de los datos importantes de una empresa, que se almacenan en diferentes soportes, desde cintas hasta unidades de estado sólido, con múltiples copias de seguridad. - Redes: interconexiones entre los componentes del CPD y el mundo exterior, incluidos enrutadores, conmutadores, controladores de entrega de aplicaciones, etc. - Switches, routers, firewalls, cableado, etc. - **Seguridad** de la propia instalación ante caídas de tensión, desastres naturales, incendios, robos o accesos no autorizados; además de la seguridad de todos los datos que gestionan y almacenan. (Filomena). - Control de acceso. - SAI. - Generadores de electricidad. - Sistemas de ventilación, humedad y control térmico. - Sistema antiincendios, antiseísmos. Los sistemas informáticos y de telecomunicaciones organizan en armarios metálicos de medidas estandarizadas, denominados racks, que alojan los servidores, switches, routers, servidores NAS, DAS, SAI, cableado de red, etc. Un ejemplo de CPD que ofrece servicios *cloud* ubicado en el Parque Científico Tecnológico TecnoAlcalá, es el *Data Center* [Nabiax](https://www.linkedin.com/posts/nabiax_datacenter-adc2-activity-6785859633945825280-vq4z). > * Xataka. CPD: qué es un centro de procesamiento de datos y cómo funciona. Ver [aquí.](https://www.xataka.com/pro/cpd-que-centro-procesamiento-datos-como-funciona) > * RedesZone. Qué es un armario rack y qué modelos puedes comprar. Ver [aquí.](https://www.redeszone.net/tutoriales/redes-cable/que-es-armario-rack-modelos) ## Software de un sistema En general, a la hora de seleccionar un sistema, tenemos que tener en cuenta el tipo de funciones que va a desempeñar. * Sistema de escritorio: usado en tareas rutinarias (ofimática, acceso a Internet, etc.). * Estación de trabajo (workstation): sistema de alto rendimiento, generalmente orientado a una tarea específica: estación dedicada al cálculo (p.e. aplicaciones científicas), estaciones gráficas (p.e. diseño 3D), entre otras. * Servidor: con servicios para otras máquinas de la red, tales como, servicios de disco, impresión, acceso a Internet, filtrado, etc. ### Servidor El término servidor puede tener un significado hardware o software, dependiendo del ámbito en el que se aplique. - Un servidor **hardware** es una máquina física integrada en una red informática en la que, además del sistema operativo, funcionan uno o varios servidores basados en software. Una denominación alternativa para un servidor basado en hardware es *host*. ![](https://i.imgur.com/MRbjFvu.jpg) - Un servidor **software** es un programa que ofrece un servicio especial que otros programas denominados clientes pueden usar a nivel local o a través de una red. La puesta a disposición de un servidor a través de una red informática se basa en el modelo cliente-servidor, de modo que cada servicio ofrecido por un servidor (software), puede ser accesible para múltiples clientes o usuarios finales. #### Tipos de servicios * Aplicaciones: * Terminales, conexión remota (telnet, ssh), aplicaciones gráficas a través de X-Windows, aplicaciones web, etc. * Ficheros: * Acceso a archivos a través de FTP. * Servicio transparente a través de NFS o Samba. * Impresión: * Gestionan impresoras locales o remotas a otros sistemas UNIX o Windows. * Servicios de información de red, por ejemplo, NIS, NIS+ o LDAP: * Permiten centralizar la información de las máquinas, usuarios y recursos. * Servicios de configuración dinámica de máquinas: * *Dynamic Host Configuration Protocol* (DHCP) configura dinámicamente la red de los clientes. * Correo electrónico: * Agentes *Mail Transfer Agent* (MTA) para recuperar y retransmitir correo, o servicios de POP o IMAP. * Otros servidores: web (p.e. Apache), nombres (DNS), base de datos, acceso a Internet: NAT, proxy, filtrado (*firewall*), etc. ### Distribuciones de Linux #### Versiones de escritorio *GNU/Linux es la denominación técnica y generalizada que reciben una serie de sistemas operativos de tipo Unix, que también suelen ser de código abierto, multiplataforma, multiusuario y multitarea. Estos sistemas operativos están formados mediante la combinación de varios proyectos, [...] el entorno GNU, encabezado por el programador estadounidense Richard Stallman junto a la Free Software Foundation, [...] así como también el núcleo de sistema operativo conocido como «Linux», encabezado por el programador finlandés Linus Torvalds.* [Wikipedia](https://es.wikipedia.org/wiki/GNU/Linux). ![](https://i.imgur.com/h7F90uh.png) Se trata de un sistema operativo libre, de código abierto bajo licencia *General Public License* (GPL). Esta licencia garantiza a los usuarios finales la libertad de ejecutar, estudiar, redistribuir y compartir copias y modificar el software, y presenta las siguientes caracterísiticas: - Código abierto. - Multiusuario y multitarea. - Su interfaz cumple con la norma de IEEE bajo el estándar POSIX *(Portable Operating System Interface Unix),* en la mayoría de las distribuciones. - Soporte multiprocesador y para múltiples sistemas de archivos. - *Kernel* monolítico con módulos cargables dinámicamente. - Portable para diferentes arquitecturas Intel x86, IA64, Sparc, PowerPC, dispositivos móviles, ... En la siguiente imagen se muestran algunas distribuciones de Linux, cuya lista puedes ampliar [aquí](https://en.wikipedia.org/wiki/List_of_Linux_distributions): ![](https://i.imgur.com/OawuUpS.png) Fuente: Bluehaidar [CC BY-SA 4.0.](https://https://commons.wikimedia.org/w/index.php?curid=107236261) #### Versiones servidor Linux es un sistema operativo ampliamente utilizado para servidores aunque, como se ha mostrado en el epígrafe anterior, también compite con Windows en sistemas de escritorio. Ofrece un mejor rendimiento, mayor estabilidad y máxima seguridad a la hora de montar un servidor. En general, las distribuciones de servidor son sistemas que solo incluyen el kernel y servicios esenciales para funcionar. Dependiendo de las preferencias del administrador, se podrían destacar las siguientes distros: - Red Hat Enteprise Linux Server (RHEL). Distribución comercial, con un 33,9% de la cuota de mercado de servidores y disponible bajo modelo de subscripción. - Fedora Server. Desarrollada por la comunidad, está patrocinada y es el campo de pruebas de RHEL, motivo por el cual permite probar las últimas tecnologías de Linux y del software libre. - Debian. Una de las mejores distribuciones y más estable, con repositorios muy completos y un excelente sistema de gestión de paquetes. - Ubuntu Server. Basada en Debian, es la distribución más extendida en sistemas de escritorio por su estabilidad y usabilidad. Integra tecnologías para la nube y virtualización, por ello se presenta en tres formatos: máquina virtual de servidor, ordenadores con servidor preinstalado ofrecidos bajo demanda y servidor para instalación. También, ofrece soporte LTS. - Oracle Linux: Distro de Oracle, especialmente diseñada para centros de datos, que ofrece una gran seguridad. - CloudLinux. Diseñada para proveedores de alojamiento web compartido. Su núcleo OpenVZ permite ejecutar de manera virtual y simultánea múltiples sistemas operativos. (Bajo licencia) - AlmaLinux. Proyecto de CloudLinux que sustituye a CentOS, proyecto comunitario basado en RHEL. > Puedes ampliar información sobre la evolución de sistemas operativos actuales en los siguientes enlaces: > - [Sistemas UNIX.](https://www.levenez.com/unix/unix.pdf) > - [GNU/Linux.](https://futurist.se/gldt/wp-content/uploads/12.10/gldt1210.png) > - [Historia de Linux. ](http://dis.um.es/~lopezquesada/documentos/IES_1314/LMSGI/curso/xhtml/xhtml10/Historia%20de%20Linux.html)*Historia de la Informática* [Blog]. > - [Windows.](https://www.levenez.com/windows/windows.pdf) ## Ejercicio guiado: Creación de una red virtual Se creará una red privada virtual formada por: - Un servidor con sistema operativo Ubuntu Server. - Un cliente con sistema operativo Lubuntu. - Un cliente con sistema operativo Windows. La máquina con Ubuntu Server proporcionará el servicio Cockpit, al que podrán acceder los clientes de la red privada utilizando el protocolo `http`. Asimismo, todos los equipos tendrán conexión a Internet mediante la red WiFi, a la que también se conectarán dispositivos móviles. ![](https://i.imgur.com/xOAMWSV.png) > Fuente: Elaboración propia. ### Instalación del software de virtualización La virtualización es la abstracción de un conjunto de recursos computacionales para que puedan ser utilizados de la forma más conveniente. Así, una máquina virtual es un entorno ubicado entre el sistema real y el usuario final, que permite la ejecución de un software determinado. Al sistema operativo que se ejecuta sobre la máquina real se le denomina anfitrión *(host)* y puede ejecutar uno o varios sistemas operativos simultaneamente, llamados huéspedes *(guests)* sobre el mismo hardware real. Usos de la virtualización: * Consolidación de servidores. * Ejecución de aplicaciones no fiables. * Recuperación de desastres. * Pruebas y desarrollo de software. * *Cloud computing*. Algunas herramientas de virtualización son: VirtualBox, QEMU, Parallels Desktop, etc. En este ejercicio se utilizará VMware Workstation Pro for PC o VMWare Fusion Pro for Mac. Es necesario haber creado previamente una cuenta en https://www.broadcom.com) y descargar la correspondiente versión [aquí](https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion). ### Instalación de las máquinas virtuales: servidor y clientes Una vez instalado VMware Player, se han de crear varias máquinas virtuales con los siguientes sistemas operativos: - Windows - (Descarga del portal Azure de Microsoft https://portal.azure.com -> Education -> Recursos de aprendizaje ->Software) y activa tu credencial de estudiante en la parte superior de la página, donde se indica: "¿Es alumno? Canjee la oferta de Azure for Students ...". - Lubuntu 20.04.5 LTS (Focal Fossa) - (Descarga el [archivo ISO](https://cdimage.ubuntu.com/lubuntu/releases/20.04.5/release), crea una nueva máquina y, después, haz clic en el icono del escritorio "Instalar Ubuntu 20.04 LTS"). - Ubuntu Server 20.04.3 LTS - (descarga el [archivo ISO](https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-live-server-amd64.iso?_ga=2.139113915.923375974.1636155356-1896738059.1632254435)). Durante la instalación, seleccione las opciones predeterminadas. ### Activación de la cuenta de administrador Una vez instalados los tres sistemas, habilite la cuenta de administrador para tener acceso a todos los recursos del sistema. #### Máquina Windows 1. Abra el "Símbolo del sistema" (`cmd`) y con el botón derecho seleccione "Ejecutar como administrador". 2. Escriba: `net user Administrador /active:yes`. 3. Comprobar que se ha activado la cuenta de Administrador y definir su contraseña (Panel de control -> Cuentas de usuario -> Administrar otra cuenta). 4. Configure el *User Account Control* (UAC) para indicar cuándo recibir notificaciones, en caso de que las aplicaciones intenten realizar cambios en el equipo. (Para ocultar la cuenta de Administrador, escriba en el símbolo del sistema `net user Administrador /active:no`). #### Máquinas Linux En algunas distribuciones de Linux es posible acceder directamente al sistema como usuario *root*, pero en el caso de Ubuntu no es posible, y se accede mediante un usuario que sea miembro del grupo `sudo`. Es decir, la cuenta de *root* no está activada por defecto debido a cuestiones de seguridad. Para ejecutar una orden con privilegios de administrador es necesario escribir en la *shell*: `$ sudo <orden>` La orden `sudo` (*superuser do* o *substitute user do*) es una utilidad de los sistemas operativos tipo Unix, que permite a los usuarios ejecutar programas con los privilegios de seguridad de otro usuario de manera segura (normalmente el usuario *root*) . Se puede habilitar la cuenta de administrador en el sistema, con todos los privilegios de configuración, escribiendo en el terminal: `$ sudo passwd root` Ahora se puede trabajar con la *shell* de administrador con: `$ su` Para el caso de Lubuntu, cierre la sesión de su usuario en la interfaz gráfica y acceda como *root*. Si lo desea, una vez terminadas las tareas a realizar en modo administrador, puede desactivar el superusuario con el flag `-l`: `# passwd -l root` `# exit` ### Instalación de X-Windows en el servidor X-Windows es el entorno gráfico usado por sistemas Unix, desarrollado por el *Massachussets Institute of Technology* (MIT). Por defecto, Ubuntu Server no utiliza modo gráfico y solo ofrece la terminal. Esto es debido a que no es común que el administrador utilice la interfaz gráfica de usuario (GUI), dado que los servidores suelen administrarse de forma remota, utilizando herramientas sencillas que permiten el acceso desde diferentes dispositivos, como tablets, smartphones u ordenadores con cualquier sistema operativo. Para instalar las X-Windows, puede seguir los siguientes pasos relativos a la instalación de paquetes en Ubuntu: 1. Actualizar la lista de paquetes de los repositorios: `# apt update` 2. Actualizar los paquetes instalados: `# apt upgrade` 3. Instalar XFCE: `# apt install xfce4` 4. Lanzar el servidor de x-Windows: `# startx` También puede instalar otros entornos gráficos ligeros. Por ejemplo, pruebe con LXDE: `# apt install lxde` ### Configuración de las interfaces de red Una vez realizada la instalación de las tres máquinas virtuales, se utilizará VMware para configurar una red privada en la que los equipos se conectan entre sí mediante una IP fija. Además, todos ellos accederán a la WiFi por DHCP, tal como se muestra en la figura anterior. Para ello, desde VMware Player: 1. Apague todas las máquinas virtuales. 2. Configure el adaptador de red, de cada una de las máquinas, en modo *bridge* para acceder a Internet (previamente elimine la configuración automática para el *bridge*). 3. Añada un nuevo adaptador de red con acceso privado. 4. Arranque las máquinas virtuales e inicie la sesión de administrador. A continuación, **para cada una de las máquinas virtuales**, realice las siguientes tareas (puede utilizar las herramientas del entorno gráfico): 1. Observe que la conexión del adaptador de red en modo bridge está configurada por DHCP. 2. Configure la red privada asignando las siguientes direcciones: - Dirección IP fija: `192.168.56.100-192.168.56.102` (dependiendo de la máquina). - Máscara de red: `255.255.255.0`. - Puerta de enlace: `192.168.56.1`. 3. Aplique la nueva conexión a la red. 4. Verifique la correcta configuración de las dos interfaces de red, utilizando la orden `ping`. > También puede realizar estas acciones desde la *shell*: > - Mostrar las interfaces de red: - Windows: `ipconfig`. - Linux `# ip addr`. > > - Configurar la interfaz de red en Ubuntu, utilizando la herramienta [*NetPlan*](https://netplan.io/examples/). Para ello, editar el archivo `.yaml` ubicado en el directorio `/etc/netplan` con la siguiente configuración: > ``` > network: > version: 2 > renderer: NetworkManager > ethernets: > nombre_interfaz_red: > dhcp4: true > nombre_interfaz_red_privada: > dhcp4: false > addresses: > - 192.168.56.102/24 > nameservers: > addresses: [8.8.8.8] > ``` > - Aplicar la nueva conexión de red: > `# netplan apply` Finalmente, compruebe que ha realizado correctamente la configuración de la red **con las tres máquinas virtuales**. 1. Compruebe que cada máquina virtual tiene acceso a Internet. Puede utilizar el sistema de nombres de dominio (DNS) público de Google: `# ping 8.8.8.8`. 2. Compruebe que pueden comunicarse las tres máquinas de la red privada entre sí: `# ping <dirección IP privada>` #### Permitir ping en el *firewall* de Windows `ping` envía paquetes para obtener una respuesta y, en base a ello, determina valores como: tiempo de respuesta, paquetes recibidos o fallidos, dirección IP, etc. El firewall de Windows está configurado por defecto para impedir que otro equipo pueda detectar si la máquina se encuentra activa, bloqueando las peticiones de `ping` provenientes del exterior. Para permitir el `ping` realice lo siguiente: 1. Acceda a la "Configuración avanzada" del firewall de Windows. 2. Seleccione "Reglas de entrada" en el panel izquierdo de la ventana. 3. Habilite una de las siguientes reglas, dependiendo de si la máquina se encuentra o no en un dominio: - Compartir archivos e impresoras (solicitud de eco - ICMPv4), para perfil Privado, público. - Compartir archivos e impresoras (solicitud de eco - ICMPv4), para perfil de dominio. ### Configuración del *firewall* en el servidor UFW *(Uncomplicated FireWall)* es la aplicación predeterminada de Ubuntu para configurar el firewall. Para la configuración, siga los siguientes pasos: 1. Instale el *firewall*, `ufw`, si no lo está. 4. Compruebe el estado del *firewall*, finalice su ejecución y vuelva a lanzarlo. 5. Habilite el puerto 9090. > Las funciones principales de `ufw` son: > - Restaurar a los valores predeterminados: `# ufw reset` > - Hablitar la conexión a un puerto: > `# ufw allow nro_puerto` > - Habilitar/deshabilitar el firewall: > `# ufw [enable/disable]` > - Verificar el estado del firewall: > `# ufw status [verbose]` ### *Snapshot* de las máquinas virtuales Un *snapshot* (o imagen instantánea) de un disco es una copia de la máquina virtual en un momento concreto. Conserva el sistema de archivos del disco y la memoria del sistema, permitiendo volver a esa imagen en caso de que algo vaya mal. ### Servicios y unidades de `systemd` En muchas distribuciones de Linux, tras arrancar el *kernel* se inicializan los componentes con `systemd`, que es el sistema `init` predeterminado, formado por un conjunto de demonios, bibliotecas y herramientas que permiten la administración y configuración del sistema, e interactuar con el núcleo de Linux. La orden `systemctl` es una herramienta de administración y se utiliza para controlar y gestionar servicios `systemd`. Su formato es: `# systemctl [opciones] orden [unidad]` A continuación, pruebe a administrar servicios y a comprobar estados, incluso a trabajar con los archivos de configuración. Para ello: 1. Observe el proceso de arranque del servidor e identifique algunas de las acciones del demonio `systemd`. 2. Identifique qué servicios se encuentran activos en el sistema. > Orden `systemctl`: > > - Verificar servicios: > `# systemctl status application.service`, o bien, > `# systemctl status application` > > - Iniciar, finalizar, reiniciar, recargar, activar y desactivar servicios: > `# systemctl [start/stop/restart/reload/enable/disable] application.service` > > - Listar servicios activos o inactivos: > `# systemctl list-units --type service –all [--state=active/inactive]` > > - Ver todos los archivos de módulo instalados: > `# systemctl list-unit-files` > > - Averiguar las dependencias de un servicio: > `# systemctl list-dependencies application.service` ### Instalación de `Cockpit` en el *host* Cockpit es una herramienta gratuita de administración de servidores de código abierto que permite supervisar y administrar fácilmente múltiples servidores utilizando un cliente web. Sus características principales son: * Gestionar servicios: iniciar, detener, reiniciar, recargar, deshabilitar, habilitar, enmascarar, etc. * Administrar cuentas de usuario: agregar usuarios, eliminarlos, bloquearlos, asignarles el rol de administrador, establecer la contraseña, forzar el cambio de contraseña, etc. * Gestionar el cortafuegos. * Apagar o reiniciar el sistema. * Diagnosticar problemas de red. * Gestionar dispositivos hardware. * etc. A continuación, en el anfitrión: 1. Instale el servicio de `cockpit`. 2. Inicie el servicio con `systemctl`. Desde el cliente: 1. Conéctese al servidor mediante un navegador: `http://[ip_servidor/nombre-de-host]:9090`. 2. Indique qué servicios se encuentran activos. 3. Cree una cuenta de usuario en el anfitrión y asigne privilegios de administrador. Compruebe en el servidor que se ha creado el nuevo usuario. 4. Desactive el cortafuegos. 5. Analice la información sobre la CPU, memoria, red y dispositivos de entrada/salida en el *Tablero*. 6. Reinicie el anfitrión. ## Bibliografía - Gómez López, J. (2014). *Administración de Sistemas Operativos. Un enfoque práctico*. Ed. RA-MA. - Hein, T.R., Nemeth, E. Snyder, G., Whaley, B. y Mackin, D. (2017). *UNIX and Linux System Administration Handbook*. Ed. Addison-Wesley Professional. - Fernández Pena, T. (2015). *Administración de Sistemas e Redes* [aquí](http://persoal.citius.usc.es/tf.pena/ASR/index.html). - [Server World](https://www.server-world.info/en/). Sitio para consultar cómo construir servidores de red con difrentes distros de Linux. - [Otros sitios similares a Server World](https://similargo.com/es/site/server-world.info).