1 00:00:01,010 --> 00:00:15,210 Buenos días. Hoy, a día 19 de mayo a las 11 y media, estamos convocados a través de Jefatura de Departamento para la Defensa del Módulo Profesional del Proyecto del Ciclo Formativo de Grado Superior de ASIR. 2 00:00:15,710 --> 00:00:30,309 Informo que esta defensa está siendo grabada y que esta grabación se usará en el entorno cerrado de Madrid con fines educativos y estará disponible a los profesores evaluadores del aula virtual para llevar a cabo la evaluación y calificación de la defensa del proyecto. 3 00:00:30,309 --> 00:00:50,229 En el aula virtual de proyectos habéis sido informados de los criterios de rúbrica y calificación. El orden de presentación del proyecto es el siguiente. 15 minutos máximo para defender el proyecto y 15 minutos máximo para preguntas por parte del tribunal. Dicho esto, tu tiempo de exposición comienza a partir de este momento. 4 00:00:50,229 --> 00:01:02,649 De acuerdo, buenas tardes. Mi nombre es Alfredo Salima. Voy a proceder a presentarles el proyecto final de mi grado. 5 00:01:02,649 --> 00:01:06,609 El tema elegido es implementación de un servidor completo en Linux. 6 00:01:08,810 --> 00:01:16,670 Como introducción, ¿qué es lo que se pretende con este servidor? Pues el despliegue de un servidor completo en Linux con servicios esenciales, 7 00:01:16,670 --> 00:01:24,209 optimizando su instalación y configuración y asegurando su disponibilidad, todo detallado y explicado por fases 8 00:01:24,209 --> 00:01:32,010 y también un poco poner en práctica los conocimientos adquiridos dentro de este ciclo formativo que estoy por finalizar. 9 00:01:32,489 --> 00:01:40,849 Los objetivos generales, como les he dicho, implementar un servidor completo en Linux, asegurando seguro y que ofrezca todos los servicios esenciales, 10 00:01:40,849 --> 00:01:48,489 documentar su instalación y configuración completa de todos los servicios, asegurar la disponibilidad y protección de los datos que se manejen dentro de él, 11 00:01:49,170 --> 00:01:57,189 evaluar el rendimiento del servidor siempre en constante momento y aplicar medidas de mejora en alguna irregularidad que se encuentre durante esa monitorización, 12 00:01:57,790 --> 00:02:01,609 implementar herramientas de automatización para agilizar tareas. 13 00:02:01,609 --> 00:02:22,310 Un poco los objetivos específicos, pues implementar unos servicios de red, luego configurar ciertas medidas de seguridad, la monitorización constante del servidor con diferentes herramientas, automatizar tareas y luego también aplicar o implementar un sistema de copia de seguridad. 14 00:02:22,310 --> 00:02:48,810 La metodología que he utilizado es una metodología en cascada, fue algo flexible. ¿Cómo fue? Primero hicimos un análisis general del proyecto, luego se implementó un diseño por fases funcionales, a medida que se fueron implementando esas fases se fueron realizando pruebas y por supuesto que en cada implementación de las diferentes fases, cada fase es donde se introdujeron los servicios, pues se fue documentando todo. 15 00:02:48,810 --> 00:03:04,490 Un poco las tecnologías y herramientas que he utilizado dentro del proyecto. Apache como servidor web, VirtualBox para las máquinas virtuales en modo laboratorio, entre otras que, como verán en la imagen, les puedo mostrar. 16 00:03:05,409 --> 00:03:18,189 Vamos a hablar un poco del diseño del proyecto. Esta arquitectura que muestro aquí es una arquitectura, digamos, una referencia ideal para cuando se ha implementado ya dentro de algún tipo de organización. 17 00:03:18,189 --> 00:03:38,590 Yo como ejemplo utilicé un centro educativo, pero esto puede ser implementado para muchas otras organizaciones. Pero esta sería una referencia ideal. Luego aquí un poco les hablo de la estructura del servidor. Se mencionan más que todos los servicios, pero también el software utilizado para cada servicio y la función principal que tiene cada servicio. 18 00:03:38,590 --> 00:03:44,810 Aquí es la parte de las fases de implementación, que es lo que venía comentando antes 19 00:03:44,810 --> 00:03:53,409 Cada fase se fue instalando un servicio específico y cada servicio fue explicado y documentado 20 00:03:53,409 --> 00:04:01,250 Las fases fueron implementadas en un orden, porque a la hora que vas implementando ciertos servicios, unos dependen de otros 21 00:04:01,250 --> 00:04:03,750 Entonces es importante seguir un orden 22 00:04:03,750 --> 00:04:09,110 Vamos a mencionar aquí entonces la parte del despliegue y las pruebas 23 00:04:09,110 --> 00:04:13,949 Voy a ser un poco rápido en esto porque hay mucho contenido en esta parte 24 00:04:13,949 --> 00:04:19,350 La primera parte es instalación del sistema operativo Ubuntu Server 24.04 25 00:04:19,350 --> 00:04:24,730 Se eligió esta versión porque en su momento era la más actualizada 26 00:04:24,730 --> 00:04:30,089 Con un sistema de interfaz gráfico 27 00:04:30,089 --> 00:04:44,310 No es lo ideal, sabemos que funciona mejor sin interfaz gráfica un servidor, pero bueno, hay veces que creo que como administrador de sistema el interfaz gráfico puede ayudar a resolver algunas incidencias si se presenta. 28 00:04:44,509 --> 00:04:51,170 La configuración de las redes de las máquinas, el servidor con dos adaptadores y algunas funciones de router. 29 00:04:51,170 --> 00:05:08,589 Como verán aquí en esta parte, estos fueron los archivos que se editaron para permitir el paso de esos datos y que tenga esas funciones de red, para que puedan tener internet y comunicación entre las máquinas clientes y el servidor. 30 00:05:08,589 --> 00:05:34,709 El servicio de red de HCP, básicamente como ya conocen, la asignación de IPs dinámicas para cada máquina cliente. Aquí como verán, una máquina con 192.168.1.8 de IP y luego después de haber configurado el grupo de red con el rango de IPs que se le asignan, pues tiene aquí el cambio de IP a la 1.50. El rango que yo puse fue de 1.50 a 1.100. 31 00:05:34,709 --> 00:05:39,470 El otro servicio de red fue el DNS, muy importante 32 00:05:39,470 --> 00:05:45,230 Esta parte me llevó, encontré una incompatibilidad con el Samba 33 00:05:45,230 --> 00:05:46,670 Que ahora más adelante explicaré 34 00:05:46,670 --> 00:05:49,389 Fue configurado el BIN 9 con DNS 35 00:05:49,389 --> 00:05:52,550 Porque se hizo las zonas directas, las zonas inversas 36 00:05:52,550 --> 00:05:54,250 Se configuraron los reenviadores 37 00:05:54,250 --> 00:05:57,029 Y todo funcionó correctamente 38 00:05:57,029 --> 00:06:01,610 Pero tuve que deshabilitarlo más adelante 39 00:06:01,610 --> 00:06:04,170 Que ahora lo voy a explicar en la parte del Samba 40 00:06:04,170 --> 00:06:14,430 La fase 3, los servicios base, un servidor web Apache y también una base de datos, ambas comunicadas entre sí, por supuesto. 41 00:06:14,430 --> 00:06:33,850 Luego un servidor de correos, se utilizaron los software Podfix, Devocode y Rankube. Aquí como verán se hicieron varias configuraciones dentro de este apartado para poder comunicar las máquinas entre ellas o poder alcanzar los correos entre cada una de ellas. 42 00:06:33,850 --> 00:06:50,850 Aquí se ve cómo hice una prueba entre las máquinas clientes con dos usuarios, Alfred y Yossi, enviando un correo entre ellos. Aquí ven en esta parte cómo llega el correo o hubo comunicación entre ellos o funcionó la configuración. 43 00:06:51,790 --> 00:07:09,709 Fase 4 es la compartición de archivos, el Samba. Esta es la parte que iba a mencionar. Inicialmente quería hacer una instalación del Samba con el objetivo de habilitar una compartición de archivos en Linux, pero mientras fui avanzando, como he dicho antes, tuve la necesidad de contar con una gestión más centralizada de los usuarios. 44 00:07:09,709 --> 00:07:22,370 Esto me llevó a hacer la instalación de Samba con características de controlador de dominio. Esto me permitió centralizar un poco el tema de los usuarios y grupos y también tener unas políticas de acceso más avanzadas. 45 00:07:22,370 --> 00:07:30,209 Durante la instalación de esta característica en el Samba con características de controlador de dominio 46 00:07:30,209 --> 00:07:33,550 Noté que tenía o viene ya con un DNS 47 00:07:33,550 --> 00:07:37,310 Aquí es donde hago énfasis en la parte del DNS 48 00:07:37,310 --> 00:07:41,069 Tuve que deshabilitar el BIN 9 y colocarla en el Samba integral 49 00:07:41,069 --> 00:07:42,529 ¿Se puede tener los dos? Sí 50 00:07:42,529 --> 00:07:48,189 Hay una característica del Samba con controlador de dominio que se llama el BIN 9 DLZ 51 00:07:48,189 --> 00:07:50,829 Que tú puedes configurar ambas cosas 52 00:07:50,829 --> 00:08:02,850 Entonces, técnicamente se puede tener ambas, pero opté por el Samba Integral, que es el DNS que viene con el Samba, porque fue más fácil instalarlo y fue para mi caso más rápido. 53 00:08:03,470 --> 00:08:14,790 Al final de la instalación, pues se agregó la máquina cliente al dominio y como verán aquí, pues el dominio de proyecto final punto local, que fue el que yo creé. 54 00:08:14,790 --> 00:08:20,689 Luego se hicieron la creación de las carpetas con los diferentes permisos 55 00:08:20,689 --> 00:08:23,410 Por ejemplo, aquí en mi caso, profesores, alumnos 56 00:08:23,410 --> 00:08:27,509 Los profesores podían acceder a las carpetas de los alumnos 57 00:08:27,509 --> 00:08:30,990 Los alumnos no podían acceder a las carpetas de los profesores, lógicamente 58 00:08:30,990 --> 00:08:35,070 Por lo tanto, aquí entró en juego la parte de los permisos 59 00:08:35,070 --> 00:08:39,269 La fase 5, seguridad y automatización 60 00:08:39,269 --> 00:08:44,509 Se utilizó el UFW con IP tables, algunas reglas agregadas en IP tables 61 00:08:44,509 --> 00:08:51,909 Se abrieron los puertos específicos de cada servicio para que se puedan hacer escuchas, para que puedan funcionar 62 00:08:51,909 --> 00:09:02,950 La siguiente parte fue la del fail to ban, esto es una herramienta de seguridad que es muy buena para intrusiones a fuerza bruta 63 00:09:02,950 --> 00:09:09,710 Hice una prueba de hecho con una de las máquinas clientes y aquí como verán bloqueó la IP 64 00:09:09,710 --> 00:09:15,190 Le puse tres intentos y en la configuración predeterminada del fail to ban lo bloquea por 10 minutos. 65 00:09:15,909 --> 00:09:22,309 Esto, repito, que se puede configurar de diferente manera o puede ser más estricta la configuración. 66 00:09:23,309 --> 00:09:28,769 Luego la parte de automatización. Opté por utilizar script en bash. 67 00:09:28,769 --> 00:09:46,850 El Ansible no llega a implementarlo porque era una instalación más compleja y Ansible utiliza una máquina adicional central, un nodo central. Por lo tanto, era un poco más compleja la implementación del Ansible. 68 00:09:46,850 --> 00:09:57,850 Por lo tanto, opté por script en bash. Genere un script. Se llama mantenimiento SH. Este script lo que hacía es que hacía una copia de seguridad de un archivo específico, actualizaba el sistema. 69 00:09:58,289 --> 00:10:12,850 Al actualizar el sistema, si se ejecutaba bien, te generaba un log. Incluso también si fallaba. En el fallo del script, si fallaba, tenía una característica adicional que era que te mandaba un correo a la cuenta administrador. 70 00:10:12,850 --> 00:10:19,350 administrador indicando que no se ha ejecutado ese script automatizado, te genera un log explicado 71 00:10:19,350 --> 00:10:25,809 del por qué y básicamente se pueden crear diferentes scripts, no solamente de esta manera, 72 00:10:25,929 --> 00:10:32,129 esto fue uno básico que utilicé para la demostración. La parte última, la de la fase 6, 73 00:10:32,250 --> 00:10:37,970 la monitorización, es el rendimiento del servidor con Grafana y Prometheus. Grafana tiene muchos 74 00:10:37,970 --> 00:10:59,490 Dashboards que puedes conseguir en su página web, que los puedes aplicar y cada Dashboard es un tablero, básicamente, que en la interfaz tú puedes ver el consumo de la RAM, el consumo de la CPU, la interfaz gráfica de red, perdón, la interfaz de red, perdón, qué consumo tiene en su momento, etc. 75 00:10:59,490 --> 00:11:13,950 Hay diferentes configuraciones. Finalmente, para hablar un poco de dónde puede ser implementado este servidor, no solamente en un centro educativo, puede ser una consultora, una gestoría, una ONG, ayuntamientos pequeños, etc. 76 00:11:13,950 --> 00:11:17,269 básicamente es donde puede ser 77 00:11:17,269 --> 00:11:18,429 implementado el servidor 78 00:11:18,429 --> 00:11:21,429 como conclusión ya, para finalizar 79 00:11:21,429 --> 00:11:23,330 se logró implementar 80 00:11:23,330 --> 00:11:25,309 el servidor completo con todos los servicios 81 00:11:25,309 --> 00:11:27,289 seguro 82 00:11:27,289 --> 00:11:28,769 monitorizado 83 00:11:28,769 --> 00:11:30,990 con partes de automatización 84 00:11:30,990 --> 00:11:33,289 la posibilidad de diferentes entornos 85 00:11:33,289 --> 00:11:34,970 no solo un centro educativo como he dicho antes 86 00:11:34,970 --> 00:11:37,330 sino una ONG o ayuntamientos pequeños 87 00:11:37,330 --> 00:11:39,289 se obtuvieron conocimientos de red 88 00:11:39,289 --> 00:11:40,789 y sobre el sistema operativo 89 00:11:40,789 --> 00:11:43,110 que era básicamente lo que mencionamos en la introducción 90 00:11:43,110 --> 00:11:45,230 el cambio a Samba 91 00:11:45,230 --> 00:11:47,309 con el tema del DNS 92 00:11:47,309 --> 00:11:49,070 y para una gestión mejor 93 00:11:49,070 --> 00:11:51,090 descentralizada de los usuarios, pues opté 94 00:11:51,090 --> 00:11:53,250 por el Samba Active Directory o con características 95 00:11:53,250 --> 00:11:54,230 de control de dominio 96 00:11:54,230 --> 00:11:57,009 y luego también se implementó la parte de 97 00:11:57,009 --> 00:11:59,169 los scripts automatizados con Bash 98 00:11:59,169 --> 00:12:01,210 si es verdad 99 00:12:01,210 --> 00:12:03,210 que la de Ansible no, porque lleva una configuración 100 00:12:03,210 --> 00:12:05,389 más compleja, pero esto puede ser implementado 101 00:12:05,389 --> 00:12:06,870 para una gestión futura 102 00:12:06,870 --> 00:12:08,990 o si se quiere escalar el servidor 103 00:12:08,990 --> 00:12:12,440 para algo más robusto 104 00:12:12,440 --> 00:12:29,080 Perfecto. Bueno, pues ahora pasamos al área de preguntas por parte del tribunal y te voy a hacer algunas preguntas. En este caso te voy a hacer unas cinco preguntas para que respondas en un minutito cada una. 105 00:12:29,080 --> 00:12:37,860 ¿Por qué decidiste sustituir BIM 9 y utilizar el servidor DNS interno de Samba al montar en el controlador de dominio? 106 00:12:38,559 --> 00:12:44,259 Esto está en la fase 4 de tu proyecto de comprobación de archivos con Samba y DNS interno 107 00:12:44,259 --> 00:12:46,299 Sí, correcto, en la compartición de archivos 108 00:12:46,299 --> 00:12:55,379 En su momento opté por el de Samba integral porque, como he dicho, técnicamente se pueden configurar ambos 109 00:12:55,379 --> 00:12:57,720 el BIN 9 con el Samba 110 00:12:57,720 --> 00:12:59,940 teniendo las características de control 111 00:12:59,940 --> 00:13:01,379 de dominio, pero 112 00:13:01,379 --> 00:13:03,740 era una configuración bastante 113 00:13:03,740 --> 00:13:05,919 compleja y me iba a imponer un tiempo 114 00:13:05,919 --> 00:13:07,840 que aplicando el 115 00:13:07,840 --> 00:13:09,879 Samba Integral, que es el DNS que viene 116 00:13:09,879 --> 00:13:11,820 con el Samba, pues era mucho 117 00:13:11,820 --> 00:13:13,720 más rápido y al final 118 00:13:13,720 --> 00:13:14,379 opté por eso. 119 00:13:15,639 --> 00:13:17,220 Bien, la segunda pregunta. 120 00:13:17,779 --> 00:13:19,639 En la parte de automatización, ¿qué 121 00:13:19,639 --> 00:13:21,480 ventajas te ofrecía usar Batch sobre 122 00:13:21,480 --> 00:13:23,879 Ansible y por 123 00:13:23,879 --> 00:13:26,799 ¿Por qué priorizaste uno frente a otro en la implementación final? 124 00:13:27,440 --> 00:13:31,019 Esto está en la parte de scripts, mantenimiento, tareas automatizadas. 125 00:13:31,159 --> 00:13:33,659 Sí, seguridad y automatización, correcto. 126 00:13:34,179 --> 00:13:35,820 He optado por script y bash. 127 00:13:37,100 --> 00:13:47,120 Un poco la ventaja es porque los scripts con bash es una solución más simple y rápida en comparación con Ansible. 128 00:13:47,120 --> 00:13:52,600 Ansible, como he dicho, lleva una máquina adicional como nodo central. 129 00:13:52,600 --> 00:14:08,720 Y luego con unos nodos clientes que van repartidos entre las máquinas que van a utilizar ese Ansible. Por lo tanto, fue básicamente por una cuestión de una solución más rápida, el script con Bash. 130 00:14:08,720 --> 00:14:21,399 Perfecto, la siguiente pregunta es que has configurado un entorno completo con múltiples servicios que tiene web, correo, archivos DNS 131 00:14:21,399 --> 00:14:25,120 ¿Cuál de ellos fue el más complejo de configurar y por qué? 132 00:14:26,799 --> 00:14:34,159 El más complejo de configurar creo que fue la parte del DNS la que más me llevó trabajo 133 00:14:34,159 --> 00:14:41,740 porque yo primero hice la instalación del BIM 9 en la parte de los servicios de red 134 00:14:41,740 --> 00:14:46,460 y no había llegado a la parte de la compartición de archivos. 135 00:14:47,399 --> 00:14:50,519 Entonces hice toda la configuración del BIM 9 y cuando llegué al Samba dije, 136 00:14:50,700 --> 00:14:55,840 mira, esto puede haber conflicto porque Samba como controlador de dominio me trae DNS. 137 00:14:56,399 --> 00:15:00,019 Entonces al momento de intentar implementarlo, técnicamente, como he dicho, 138 00:15:00,019 --> 00:15:02,240 que se pueden configurar entre ambos 139 00:15:02,240 --> 00:15:04,279 vi que el integrar 140 00:15:04,279 --> 00:15:06,100 el DNS del Samba era 141 00:15:06,100 --> 00:15:07,919 más fácil y al final pues 142 00:15:07,919 --> 00:15:10,200 opté por esa opción, básicamente porque 143 00:15:10,200 --> 00:15:12,159 por agilizar un poco el tiempo 144 00:15:12,159 --> 00:15:14,139 y fue una solución más rápida 145 00:15:14,139 --> 00:15:16,139 Perfecto 146 00:15:16,139 --> 00:15:18,000 La penúltima pregunta es 147 00:15:18,000 --> 00:15:20,379 ¿Cómo comprobaste que el sistema de monitorización 148 00:15:20,379 --> 00:15:22,299 Prometheus y Más Grafamana 149 00:15:22,299 --> 00:15:24,039 estaba funcionando correctamente 150 00:15:24,039 --> 00:15:25,820 y que métricas clave 151 00:15:25,820 --> 00:15:27,759 configuraste para visualizarlo 152 00:15:27,759 --> 00:15:30,379 de la fase de monitorización 153 00:15:30,379 --> 00:15:31,759 y paneles de grafana 154 00:15:31,759 --> 00:15:33,659 Sí, bueno 155 00:15:33,659 --> 00:15:36,139 primero elegí el de 156 00:15:36,139 --> 00:15:38,159 Prometheus y Grafana porque es 157 00:15:38,159 --> 00:15:40,559 en comparación 158 00:15:40,559 --> 00:15:42,500 con las otras herramientas era la más 159 00:15:42,500 --> 00:15:44,019 digamos intuitiva 160 00:15:44,019 --> 00:15:46,399 y me parecía que era la que mejor aspecto 161 00:15:46,399 --> 00:15:46,659 tenía 162 00:15:46,659 --> 00:15:50,000 ¿Cómo accedes a la parte 163 00:15:50,000 --> 00:15:51,799 ¿Cómo accedes al dashboard? 164 00:15:52,080 --> 00:15:53,360 Eso es a través de vía web 165 00:15:53,360 --> 00:15:55,720 en la página te metes 166 00:15:55,720 --> 00:16:12,320 Entonces introduces la dirección del servidor, especificándole el puerto 3000, que es por donde escucha Grafana. Y la interfaz que lleva, como he dicho, en la página web, Grafana tiene muchos diferentes tableros, o como ellos lo llaman, dashboard. 167 00:16:12,320 --> 00:16:22,840 Tiene diferentes configuraciones y puedes ver un sinfín de, digamos, de monitorización, de opciones de monitorización 168 00:16:22,840 --> 00:16:33,100 No solamente esa que elegí, hay un montón que puedes tú especificar y dependiendo de las funciones de tu servidor o de los servicios que tengas activos, pues elige una o la más adecuada 169 00:16:33,100 --> 00:16:43,840 Por último, ¿qué medidas específicas configuraste en File2Ban y por qué son relevantes en el servidor que ofrece múltiples servicios expuestos? 170 00:16:43,879 --> 00:17:00,200 El fail to bind fue elegido porque es una herramienta, como he dicho, según las que estudié, era la más adecuada para la intrusión de fuerza bruta. 171 00:17:00,200 --> 00:17:06,259 En el archivo de configuración de él tiene muchos parámetros de configuración 172 00:17:06,259 --> 00:17:12,059 Por ejemplo, como el que he dicho en la parte de la instrucción 173 00:17:12,059 --> 00:17:17,140 Tú puedes saber cuál es la IP que intentó ingresar en el servidor 174 00:17:17,140 --> 00:17:20,960 La cantidad de veces que intentó ingresar 175 00:17:20,960 --> 00:17:25,339 Y puedes configurarlo de diferentes maneras 176 00:17:25,339 --> 00:17:27,500 Puedes ponerle un número de accesos 177 00:17:27,500 --> 00:17:47,259 Puedes ponerle un tiempo limitado al baneo que le aplica a la IP que intenta ingresar. Básicamente fue porque también era mucho más fácil e intuitiva su configuración, la del fail to ban. 178 00:17:47,839 --> 00:17:52,279 Perfecto. Bueno, pues con esto quedaría finalizado la presentación.