Universidad Tecnológica de León Ingeniería en Redes Inteligentes y Ciberseguridad
Asignatura: Cómputo en la Nube
Profesor: José Luis Alejandro Hernández Ramírez
Título: Instalación y Configuración de Ubuntu Server 20.04.1 LTS
Presenta: Fátima Abigail Porras Noriega
Matrícula: 18002125
Grupo: IRIC801
León, Guanajuato. A 12 de enero de 2021
INTRODUCCIÓN Ubuntu Server es una variante del Ubuntu estandar conocido normalmente, diseñado para redes y servicios y dedicada especialmente para su uso en servidores. En primera instancia es importante mencionar que un servidor es una máquina que nos proporciona algún servicio. Estos servidores pueden ser de tipo web, de base de datos, de archivos u otras diferentes funciones, incluso varias a la vez. Nos puede servir para tener almacenada toda la informacion importante y poder acceder a ella desde cualquier ordenador o dispositvo. Ubuntu Server es un sistema operativo tan capaz de ejecutar un servidor de archivos simple, como de ejecutar una nube de 50,000 nodos. A diferencia de la instalación de Ubuntu Desktop, Ubuntu Server no incluye un programa de instalación gráfico. En su lugar, utiliza un proceso basado en menús de texto, todas las acciones se realizan mediante la consola y normalmente ni siquiera a traves del propio servidor sino desde una conexión remota. Así pues, en el siguiente informe se explica el proceso que debe seguirse para la instalación y configuración de Ubuntu Server en la versión 20.04 por medio de una máquina virtual. Dentro del mismo, se mencionan conceptos importantes al momento del desarrollo de la práctica, por ejemplo, la definición y configuración de un contendor en Windows, la definición de una IP pública y una UP privada, el concepto de NAT, entre otros más. Por otra parte, se menciona también la parte teórica de un RAID, además del proceso que se debe de seguir para poder crear un RAID nivel 6 en el servidor.
CONTENEDOR DE LINUX EN WINDOWS En primer lugar es importante conocer el concepto de contenedor para así poder comenzar a explicar el desarrollo que se llevó a cabo. Del mismo modo que en el sector de transporte se usan contenedores físicos para aislar diferentes cargas, las tecnologías de desarrollo de software usan cada vez más un método denominado contenerización. Azure define: Un paquete de software estándar (conocido como “contenedor”) agrupa el codigo de una aplicación con las bibliotecas y los archivos de configuración asociados, junto con las dependencias necesarias para que la aplicación se ejecute. Esto permite a los desarrolladores y profesionales de TI implementar aplicaciones sin problemas en todos los entornos. Conociendo ya el concepto, se puede saber que un contenedor virtualiza un sistema operativo y hace que la aplicación en contenedor perciba que tiene el sistema operativo todo para ella sola y no necesitan cargar bibliotecas. De esta manera, los contenedores permiten a los desarrolladores y profesionales de TI implementar aplicaciones en entornos sin necesidad de realizar ningún cambio o sólo con cambios mínimos. Funcionamiento:
Imagen 1. Funcionamiento en diagrama de un contendor. Microsoft Azure.
Actualmente Windows incluye en su sistema operativo una opción que permite ejecutar Linux en Windows a través de un contenedor. El primer paso para poder activar esta característica es ingresar al Panel de Control de Windows:
Después, se debió ingresar al apartado Programas y posteriormente a la opción Activar o desactivar las características de Windows:
Al seleccionar esta opción, se pudo observar una ventana con todas las características de Windows tanto activadas como desactivadas, así que se activó la característica Subsistema de Windows para Linux la cual proporciona servicios y entornos para ejecutar shells y herramientas nativos de Linux en modo de usuario en Windows:
Al aceptar la modificación se observó cómo se aplicó la nueva característica y se pidió reiniciar el equipo posteriormente para que se pudiera aplicar eficazmente la característica:
Posteriormente, se debió ingresar a la aplicación Microsoft Store para poder realizar la descarga de Linux, en este caso, se descargó e instaló la distribución Ubuntu 20.04 LTS:
Depués de unos minutos, la instalación se completó y se solicitó crear tanto un usuario como una contraseña desde la terminal ya trabajando para el usuario de Windows que trabajaría con el contenedor y se terminaron de cargar algunas configuraciones más:
INSTALACIÓN Y CONFIGURACIÓN DE UBUNTU SERVE R Como se mencionó anteriormente, Ubuntu Server es una variante más de toda la distribución Ubuntu que está desarrollada más especialmente para el área de servidores. Para el desarrollo de esta práctica, la instalación se llevó a cabo en una máquina virtual mediante el software VirtualBox y con la versión Ubuntu Server 20.04.1 LTS.
Para la creación de la máquina virtual se dio clic a Nueva y se comenzó una creación típica de máquina virtual. En primera instancia se le asignó el nombre nextcloud de tipo Linux y con una versión Ubuntu (64-bit), con un tamaño de memoria de 1024 MB y con la selección de Crear un disco virtual ahora y se comenzó a crear:
Posteriormente se mostró una ventana en donde se seleccionó el tipo de archivo de disco duro que se quería crear. Como se está trabajando en VirtualBox, se seleccionó el tipo VDI (Virtualbox Disk Image):
La siguiente parte por configurar fue la del almacenamiento en unidad de disco duro física, en donde se seleccionó la opción de reservado dinámicamente, la cual indica que este tipo de almacenamiento sólo usará espacio en su disco físico a medida que se llena (hasta un máximo tamaño fijo), sin embargo no se reducirá de nuevo automáticamente cuando el espacio en él se libere. La otra opción de tamaño fijo puede tomar más tiempo para su creación en algunos sistemas, pero normalmente es más rápido al usarlo.
La siguiente parte por configurar fue la de la ubicación del archivo y tamaño, en donde se debió seleccionar la ubicación de la máquina virtual y también seleccionar el tamaño de disco duro, en donde se le dio un tamaño de 20.00 GB y al finalizar, se pudo observar la configuración general de la máquina virtual:
El siguiente paso por seguir fue la configuración de la máquina virtual creada anteriormente. Para comenzar a configurar, el primer paso que se siguió fue dirigirse al apartado de Configuración y posteriormente a la pestaña Red. Es importante aclarar lo siguiente: En este apartado de red, se pueden agregar dos o más adaptadores según las necesidades de la máquina que se esté creando, en este caso solamente se hará uso de uno. Por defecto, este adaptador viene conectado a NAT. NAT: En redes, NAT significa Network Adress Translation. Se trata de un sistema que se utiliza en las redes bajo el protocolo IP y que nos permite el intercambio de paquetes entre dos redes que tienen asignadas mutuamente direcciones IP incompatibles. Es decir, traduce las IPs privadas a públicas ya sea dinámicas o estáticas, de tal manera que se puedan reducir IPs. Antes de continuar, se debe responder la siguiente pregunta: ¿Cuál es la diferencia que existe entre una IP pública y una IP privada? Una IP pública es el identificador de nuestra red desde el exterior, es decir, la de nuestro router de casa, la cual es visible desde fuera. Una IP privada es la que identifica a cada uno de los dispositivos conectados a la red, por lo tanto, cada una de las direcciones que el router asigna a cada dispositivo que esté conectado a él.
En el caso de esta práctica, se hace uso de una conexión a Adaptador puente, este tipo de conexión refiere que se puede llevar la conexión de la máquina virtual con cualquier máquina externa, simula que la tarjeta virtual está conectada al mismo switch que la tarjeta física del anfitrión, por lo tanto, la máquina virtual se va a comportar como si fuese un equipo más dentro de la misma red física en la que está el equipo anfitrión, así que se seleccionó dicha conexión:
No obstante, cabe mencionar que existen otros modos de conexión, por ejemplo Red interna, el cual brinda una conexión sólo con la red privada a la que está conectada la máquina virtual, es decir, sólo habrá comunicación entre las máquinas que pertenezcan a la misma red. Y por otra parte, el modo Anfitrión, el cual crea una red interna a la que pertenecerá también el equipo anfitrión, algo que no sucede en el modo Red interna. Así pues, al seleccionar el modo puente, el siguiente paso fue dirigirse al apartado de Almacenamiento, en donde en primera instancia se debió eliminar el Controlador: SATA que estaba configurado por defecto:
Posteriormente se cargó el archivo ISO necesario para la instalacion de Ubuntu. Para esto, se seleccionó la opción Vacío y despues se eligió una Unidad óptica:
El siguiente paso fue crear un nuevo controlador de tipo LsiLogic SCSI dentro del cual más adelante se crearía un RAID de discos duros.
Para esto, es importante conocer y ahondar un poco más en el concepto de RAID, cómo funciona, para qué sirve y cuáles niveles existen. ¿Qué es un RAID de discos duros? Redundant Array of Independent Disks, traduciendo, es una matriz de discos independientes redundantes. Su finalidad es proteger los datos en caso de que un disco duro falle o también mejorar la velocidad de lectura de varios discos que conforman un único volumen. ¿En qué consiste? En crear un único volumen con varios discos duros funcionando en conjunto, y con este conjunto, se puede conseguir redundancia (disk mirroring) o mayor velocidad (disk striping). ¿Cómo funciona? Un sistema RAID funciona emplazando los datos en varios discos duros, y permitiendo que las operaciones de entrada y salida funcionen de manera balanceada, mejorando el rendimiento. En otras palabras, o bien los datos se escriben en ambos discos al mismo tiempo, o bien se escribe un dato en uno, y otro dato en otro para repartir el trabajo. Los sistemas RAID se presentan en el sistema operativo como si fueran un único disco lógico, dado que consisten en un solo volumen.
Para que un sistema RAID funcione es necesaria la presencia de una controladora RAID, y puede ser o bien por hardware o bien por software. Mediante hardware se tiene un servidor, el servidor tiene su controladora y esta tiene su propio sistema de creación o de administración de arreglos. Mientras que mediante Software, ya que no se tiene una controladora como tal, la creación es virtual, entonces no trae administración de creación de RAID pero Linux y Windows sí tienen una opción para crear un arreglo, así que eso es lo que se estará realizando en esta práctica. Hay muchos tipos de RAID, aunque la mayoría de ellos están ya en desuso por su poca o nula utilidad con respecto a otros, pero los más comunes son: RAID 0: Es el modo RAID más rápido, ya que escribe los datos en todas las unidades de disco duro de la matriz. Además, las capacidades de cada disco se añaden simultáneamente para un almacenamiento óptimo de los datos. Si se produce un error en la unidad de disco duro, dejará de poder acceder a los datos.
RAID 1: Proporciona una seguridad de los datos mejorada, ya que todos ellos se escriben en cada disco de la matriz. Si falla un solo disco, los datos seguirán estando disponibles en el otro disco de la matriz. No obstante, debido a la cantidad de tiempo necesario para escribir los datos varias veces, el rendimiento se ve reducido
RAID 5: Escribe los datos en todas las unidades de disco duro de la matriz y un bloque de paridad para cada bloque de datos. Si falla una unidad de disco duro física, los datos de la unidad averiada pueden reconstruirse en una unidad de disco duro de repuesto. Para crear una matriz RAID 5, se necesitan un mínimo de tres unidades de disco duro.
RAID 6: Este nivel de RAID es el que se trabajó en esta práctica, escribe los datos en todos los discos de la matriz y dos bloques de paridad para cada bloque de datos. Si falla un disco físico, es posible reconstruir los datos en un disco de repuesto. Con los dos bloques de paridad por bloque de datos, RAID 6 admite hasta dos fallos de disco sin pérdida de datos. Para crear una matriz RAID 6, se necesitan un mínimo de cuatro discos.
RAID 10: Combina la protección de RAID 1 con el rendimiento de RAID 0. Por ejemplo, si utiliza cuatro discos, RAID 10 crea dos segmentos de RAID 1 y, a continuación, los combina en una dispersión de RAID 0. Estas configuraciones ofrecen una protección de los datos excepcional, permitiendo que fallen dos discos en dos segmentos RAID 1. Además, RAID
10 escribe los datos en el nivel del archivo y, debido a la dispersión de RAID 0, ofrece a los usuarios un mayor rendimiento cuando se administran cantidades superiores de archivos de menor tamaño.
RAID 50: Combina la distribución en bandas de RAID 0 con la paridad de RAID 5. Debido a la velocidad de la distribución en bandas de RAID 0, RAID 50 supera el rendimiento de RAID 5, en especial durante la escritura. También ofrece una mayor protección que un único nivel de RAID. Para una matriz RAID 50, se necesitan un mínimo de seis unidades de disco duro.
RAID 60: Combina la distribución en bandas de RAID 0 con la doble paridad de RAID 6. Debido a la velocidad de la distribución en bandas de RAID 0, RAID 60 supera el rendimiento de RAID 6. También ofrece una mayor protección que un único nivel de RAID. Se utiliza cuando se necesita una tolerancia a los fallos mejorada, una gran capacidad y una impresionante velocidad de escritura.
RAID+Spare: Proporciona una unidad de “reserva activa” lista para sincronizar los datos inmediatamente en caso de que falle una unidad de disco duro. Si falla una unidad de disco duro de la matriz, los datos empiezan a sincronizarse con la unidad de reserva. La ventaja para una matriz RAID con una unidad de reserva es la inmediatez de la unidad de disco duro de repuesto. Puede sustituir la unidad de disco duro averiada inmediatamente, una vez completada la sincronización, y asignarla como una nueva unidad de reserva.
Al ya conocer dichos niveles de RAID, se continuó con la creación entonces de más discos duros. Esto se hizo seleccionando el controlador SCSI y seleccionando la opción Añadir disco duro:
Al estar dentro de dicha selección, se pudo observar que se mostró vacío el listado, por lo que se seleccionó la opción Crear:
Al seleccionar esta opción, se creó un disco duro virtual de la misma manera en la que se creó el del inicio, es decir, el disco duro por defecto. Las características que se le dieron fueron las mismas, tipo VDI, almacenamiento reservado dinámicamente, en la misma ubicación y con un tamaño de 20.00 GB:
Este proceso se llevó a cabo en 4 ocasiones más además del disco duro ya creado debido a que se pretendía desde un inicio crear un RAID 6, por lo que, para crearlo, naturalmente se necesita un mínimo de 4 discos, todos con las mismas especificaciones:
Posteriormente, se debió seleccionar cada uno de los discos incluyendo el creado inicialmente para agregarlos al controlador:
Al tener lista esta configuración, el siguiente paso fue iniciar la máquina virtual, en donde se mostró en primera instancia la instalación de todos los paquetes, la revisión de integridad, entre otros aspectos:
Al terminar este proceso, comenzó la configuración del servidor Ubuntu, en donde, se debió modificar en primer lugar el idioma:
Posteriormente, se debió seleccionar la disposición del teclado con la que se estaría trabajando en el servidor:
Si recordamos, al momento de configurar la máquina virtual se seleccionó una conexión modo puente para poder obtener una dirección IP, la cual, en este caso, se obtuvo como DHCP. Así pues, la siguiente ventana mostró la configuración de red:
El siguiente punto fue la configuración del Proxy, un servidor proxy es un ordenador que puede conectarse como interfaz entre dos ordenadores o redes. Asume una función de intermediario, recibiendo peticiones y transmitiéndolas con su propia dirección IP a otra red. Los servidores proxy se pueden utilizar en Internet para ocultar la dirección IP. Este punto se dejó vacío debido a que no era necesario en la práctica:
La siguiente ventana mostró una dirección web de consulta para la configuración de archivos espejo de Ubuntu:
La siguiente parte fue la configuración del esquema de almacenamiento, el cual se eligió personalizar para poder realizar las particiones del disco de la manera que se requiriera o bien, según las necesidades del servidor:
En primer lugar se pudieron observar los 5 discos creados, ordenados alfabéticamente por defecto por Ubuntu:
Como primer paso, se seleccionó el disco sda, el cual se utilizaría como dispositvo boot, por lo que, al elegirlo, se seleccionó la opción Use As Boot Device:
Posteriormente, se seleccionó la opción Add GPT Partition para comenzar con la partición que se le daría al disco sda:
Al seleccionarlo, se abrió una nueva ventana en donde se debieron dar las especificaciones para esa partición. Se le dio un tamaño de 1G, un formato ext4, y se seleccionó la carpeta /boot:
Después de esto, se mostró la partición creada y se seleccionó nuevamente el disco sda para añadir una partición más:
Esta siguiente partición se hizo para el root del servidor, en donde se le dio el tamaño restante, un formato ext4 y se montó en la carpeta /:
Así pues, pudieron observarse las dos particiones del disco creadas en el resumen del sistema de archivos. Posteriormente, se debió crear el RAID, para realizar esto, se seleccionó la opción Create a software RAID:
En esta parte, se le debió asignar un nombre md0, un nivel de RAID que se eligió 6, y los dispositivos que se agregarían a dicho RAID:
El siguiente punto fue crear un grupo de volúmenes, el cual sirve para llevar a cabo una mejor administración de las particiones, de tal manera que si se requiriera ampliar una partición, con el grupo de volúmenes sería una manera factible, ya que permite precisamente redimensionar particiones. Se seleccionó entonces la opción Crear grupo de volúmenes (LVM):
En esta selección se le debió asignar un nombre y además seleccionar el RAID creado previamente:
Al tenerlo creado, se debieron crear volúmenes lógicos. Esto se realizó seleccionando el grupo de volúmenes creado y seleccionando Create Logical Volume:
Para el primer volumen, se le asignó un nombre lv-0, un tamaño, el cual debió ser el doble del tamaño que se le dio a la memoria física. Como se le dio un tamaño de 1024 MB → 1 GB, se le tuvo que dar un tamaño de 2 GB y se le dio un formato swap:
El siguiente volumen lógico se llamó lv-1, al cual se le asignó el tamaño sobrante, es decir 38 GB y un formato ext4. Finalmente, se montó en la carpeta /home:
Finalmente, en el resumen de sistema de archivos, se pudieron observar las particiones creadas en el primer disco y las particiones que se le hicieron al grupo de volúmenes con dos volúmenes lógicos:
Al terminar dicha configuración, el siguiente paso fue configurar el perfil del servidor. Dentro de esta configuración, se asignó un nombre Abigail, se le asignó un nombre al servidor nextcloud, un nombre de usuario abiporrasn y finalmente una contraseña, todo esto para poder ingresar al servidor posteriormente:
El siguiente paso fue la configuración de SSH, en donde se debió seleccionar la opción Instalar servidor OpenSSH:
El paso final, fue seleccionar o deseleccionar diferentes paquetes que podrían servir para nuestra instalación. Sin emabrgo, no se seleccionó ninguno debido a que todas las intalaciones se harán posteriormente desde la temrinal:
Finalmente la instalación comenzó a ejecutarse hasta terminar y pedir un reinicio del sistema, debido a que se descargaron todas las actualizaciones de seguridad y todos los paquetes necesarios. Así pues, se pudo iniciar en la terminal con el perfil creado:
CONCLUSIÓN El tener un servidor funcionando dentro de la organización, puede servir para tener almacenada toda la informacion importante y poder acceder a ella desde cualquier ordenador o dispositvo, información que va desde una base de datos hasta cosas más complejas o incluso más sencillas. La protección de la información es de gran importancia para cualquier organización. Actualmente esta protección a los datos se da de diferentes maneras, ya sea almacenando toda la información en la nube, generando respaldos en la misma nube o en un dispositivo externo, obteniendo, por ejemplo en los centros de datos, algún UPS que permita la redundancia de los equipos o incluso haciendo copias de seguridad periodicamente para que toda esta información, en caso de haber alguna dificultad, no se pierda. Así pues, existe un sistema más, el llamado RAID como otro método de aseguramiento de la información. El sistema RAID hace referencia a un procedimiento de almacenamiento de datos que emplea múltiples unidades de discos duros entre los que se distribuyen o replican los datos. Es decir, el RAID se compone de dos o más soportes de almacenamiento con el objetivo de alcanzar una mayor velocidad, capacidad y seguridad en el almacenamiento de los datos. Se podría decir que es incluso más fiable que un disco duro convencional, sin embargo, que el sistema RAID sea más fiable y eficaz que un disco duro convencional no evita la aparición de problemas en el momento de almacenar o recuperar la información de forma segura. Al terminar esta primera práctica trabajando con un sistema RAID en servidor, pude concluir varias ventajas que otorga, por ejemplo: Una mayor fiabilidad, ya que gracias al uso de discos redundantes se refuerza la seguridad en cada disco duro dificultando, de esta manera, la pérdida total de los datos almacenados. Si uno de los discos sufre un daño, la información también se aloja en las demás unidades del disco, por lo que hay una alta probabilidad de no perder la información por completo. Una mayor capacidad de almacenamiento ya que al disponer de varios soportes de almacenamiento, la capacidad es mayor aún duplicándose la información por seguridad. Y finalmente una mayor seguridad ya que es posible que alguno de los discos falle. En este caso, el sistema de paridad de información facilitará la recuperación total de los datos almacenados ya que se encuentran en el resto de unidades del disco.
A pesar de que existen también desventajas como lo son la falta de facilitación de recuperación de los datos o que no se asegure la protección de estos por completo, considero que el uso de un RAID para proteger y recuperar los datos de cualquier organización que haga uso de este sistema, tiene más ventajas que desventajas y se afianza como uno de los metodos más utilizados por su seguridad, eficacia o incluso la velocidad de transferencia.