scieee AI-readable full text Open interactive document viewer

Repositorio Institucional de Documentos

Abstract

El Departamento de Informática e Ingeniería de Sistemas (DIIS) ha realizado un importante esfuerzo en la compra de varios dispositivos de red con el objetivo de adaptarse al espacio europeo de educación superior de las asignaturas de Redes. Aunque el presente proyecto está asociado principalmente a las asignaturas troncales de dicha área, se aplica también a otras materias del mismo ámbito (optativas y asignaturas de máster). En particular se han adquirido y fijado en el laboratorio L1.02: ocho encaminadores domésticos Linksys WRT54GL, un servidor Dell PowerEdge 860, una unidad de distribución de alimentación APC AP7922 (PDU), dos conmutadores Dell PowerConnect 3424 y un sistema de alimentación ininterrumpida APC Back-UPS RS 800 (SAI). El PFC consiste en la automatización de la configuración de todos estos dispositivos(puesta en marcha, interconexión y adaptación al ámbito docente de los mismos), así como el establecimiento de distintas topologías lógicas de red en función de prácticas docentes concretas, permitiendo el uso de distintos protocolos de encaminamiento y configuraciones de equipos, sin tener que modificar la topología física. Toda esta configuración puede ser creada, almacenada para su carga posterior, modificada y/o volver a su estado original al finalizar cada práctica con facilidad. Para ello se han desarrollado sencillas interfaces de usuario a utilizar por el profesorado para la ordenación del funcionamiento de los equipos o se han adaptado los que proporcionaba el fabricante. El objetivo final ha sido ajustarse a los requerimientos de cada práctica que se realice en el laboratorio. Olmeda Morgade, Brian; Segarra Flor, Juan

Full text

Proyecto de Fin de Carrera RE-CONFIGURACIÓN DINÁMICA DE REDES EN UN LABORATORIO DOCENTE Autor: Brian Olmeda Morgade Director: Juan Segarra Flor Centro Politécnico Superior Universidad de Zaragoza Departamento de Informática e Ingeniería de Sistemas gaZ Grupo de Arquitectura de Computadores Ingeniería en Informática Curso 2009 / 2010 Agradecimientos: A mi director de Proyecto, Juan Segarra Flor, por su inestimable ayuda, a Enrique Torres y Unai Arronategui por aportar sus ideas y opiniones, y a Pedro Sanz por facilitarme los medios necesarios para salir adelante con el proyecto. A mis grandes amigos con los que he compartido estos años, con sus momentos buenos y otros más duros. A mi hermana por tener siempre una sonrisa cuando más lo necesitaba. Muy especialmente a Padre y a Madre, que me han formado, educado y querido durante esta carrera de fondo. RE-CONFIGURACIÓN DINÁMICA DE REDES EN UN LABORATORIO DOCENTE RESUMEN El Departamento de Informática e Ingeniería de Sistemas (DIIS) ha realizado un importante esfuerzo en la compra de varios dispositivos de red con el objetivo de adaptarse al espacio europeo de educación superior de las asignaturas de Redes. Aunque el presente proyecto está asociado principalmente a las asignaturas troncales de dicha área, se aplica también a otras materias del mismo ámbito (optativas y asignaturas de máster). En particular se han adquirido y fijado en el laboratorio L1.02: ocho encaminadores domésticos Linksys WRT54GL, un servidor Dell PowerEdge 860, una unidad de distribución de alimentación APC AP7922 (PDU), dos conmutadores Dell PowerConnect 3424 y un sistema de alimentación ininterrumpida APC Back-UPS RS 800 (SAI). El PFC consiste en la automatización de la configuración de todos estos dispositivos (puesta en marcha, interconexión y adaptación al ámbito docente de los mismos), así como el establecimiento de distintas topologías lógicas de red en función de prácticas docentes concretas, permitiendo el uso de distintos protocolos de encaminamiento y configuraciones de equipos, sin tener que modificar la topología física. Toda esta configuración puede ser creada, almacenada para su carga posterior, modificada y/o volver a su estado original al finalizar cada práctica con facilidad. Para ello se han desarrollado sencillas interfaces de usuario a utilizar por el profesorado para la ordenación del funcionamiento de los equipos o se han adaptado los que proporcionaba el fabricante. El objetivo final ha sido ajustarse a los requerimientos de cada práctica que se realice en el laboratorio. TABLA DE CONTENIDOS CAPÍTULO 1. INTRODUCCIÓN ................................................................................................... 8 1.1. Objetivo y alcance del proyecto ............................................................................................. 8 1.2. Situación previa ...................................................................................................................... 8 1.3. Contexto profesional .............................................................................................................. 9 1.4. Contexto tecnológico .............................................................................................................. 9 1.4.1. Contexto hardware ................................................................................................. 9 1.4.2. Contexto software ................................................................................................... 9 1.4. Estructura de la memoria ..................................................................................................... 12 CAPÍTULO 2. DESCRIPCIÓN DEL TRABAJO REALIZADO ................................................... 14 2.1. Estudio alternativas de diseño ............................................................................................. 14 2.1.1. Interfaces de usuario ............................................................................................ 14 2.1.2. Scripts mediante el protocolo SSH ....................................................................... 14 2.1.3. Elección final ........................................................................................................ 15 2.2. Fase de documentación ....................................................................................................... 15 2.3. Diseño y desarrollo ............................................................................................................... 16 2.3.1. Conexiones entre dispositivos .............................................................................. 16 2.3.2. Servidor Dell PowerEdge 860 .............................................................................. 17 2.3.3. Switches Dell PowerConnect 3424 (conmutadores) ............................................ 18 2.3.4. Unidad de distribución de alimentación APC AP7922 (PDU) .............................. 19 2.3.5. Routers Linksys WRT54GL (encaminadores) ...................................................... 20 2.3.6. Ordenadores ......................................................................................................... 21 2.3.7. Sistema de alimentación ininterrumpida APC Back-UPS RS 800 (SAI) .............. 22 2.3.8. Interfaces de usuario ............................................................................................ 22 2.4. Principales problemas encontrados ..................................................................................... 31 CAPÍTULO 3. CONCLUSIONES ................................................................................................ 34 3.1. Cumplimiento de objetivos y resultados ............................................................................... 34 3.2. Líneas futuras ....................................................................................................................... 34 3.3. Motivaciones que han llevado a su realización .................................................................... 34 3.4. Conclusiones personales ..................................................................................................... 34 ANEXO A. PLANIFICACIÓN ...................................................................................................... 36 A.1. Estimación inicial ................................................................................................................. 36 A.2. Tiempos finales .................................................................................................................... 37 ANEXO B. ANÁLISIS ................................................................................................................. 38 B.1. Análisis de requisitos ........................................................................................................... 38 B.1.1. Análisis de requisitos funcionales ........................................................................ 38 B.1.2. Análisis de requisitos no funcionales ................................................................... 38 B.2. Casos de uso ....................................................................................................................... 38 ANEXO C. ESQUEMAS DE CONEXIONES .............................................................................. 42 ANEXO D. MANUAL DE USUARIO ........................................................................................... 47 D.1. Interfaz de usuario inicial ..................................................................................................... 47 D.2. Configuración interfaz web de usuario + VLANs routers Linksys WRT54GL ..................... 48 D.3. Selección script Linksys ....................................................................................................... 53 D.4. Configuración router X Linksys WRT54GL .......................................................................... 53 D.5. Configuración unidad de distribución de alimentación AP7922 .......................................... 57 D.6. Configuración switch X Dell PowerConnect 3424 ............................................................... 60 D.7. Test de conexiones .............................................................................................................. 66 ANEXO E. DETALLES DE CONFIGURACIÓN E IMPLEMENTACIÓN .................................... 67 E.1. Servidor Dell PowerEdge 860 .............................................................................................. 67 E.2. Switches Dell PowerConnect 3424 (conmutadores) ........................................................... 72 E.3. Unidad de distribución de alimentación APC AP7922 (PDU) .............................................. 74 E.4. Routers Linksys WRT54GL (encaminadores) ..................................................................... 76 E.5. Interfaces de usuario ........................................................................................................... 78 E.5.1. Interfaz inicial (inicio.html) .................................................................................... 78 E.5.2. Configuración interfaz web de usuario + VLANs routers Linksys WRT54GL (linksys.php y configurar.php) ......................................................................................... 78 E.5.3. Selección script Linksys (renombra_scripts_Linksys.php y renombra.php) ........ 80 E.5.4. Test de conexiones (test_cableado.php) ............................................................. 80 ÍNDICE DE ILUSTRACIONES .................................................................................................... 81 BIBLIOGRAFÍA........................................................................................................................... 83 8 CAPÍTULO 1. INTRODUCCIÓN Dado que normalmente no se pueden utilizar dispositivos de red profesionales como encaminadores, servidores, conmutadores, etc. para la docencia, se recurre frecuentemente al uso de animaciones y simuladores para explicar conceptos relacionados con las redes de comunicaciones, como el protocolo TCP, enrutamiento y similares. Por contra, desde el punto de vista del alumnado, estas herramientas acaban siendo vistas como un simple juego de ordenador, ocultando problemas reales. Sin embargo, si se les da la oportunidad de explorar los aparatos físicamente, enfrentarse a problemas reales y que lo puedan poner en práctica in-situ es mucho más interesante desde el punto de vista educativo, ya que se asientan mejor los conceptos al asociar imagen y tacto con lo que previamente han visto en las clases de teoría. Afortunadamente, se ha podido hacer el esfuerzo económico para la compra de todos estos dispositivos físicos con el objetivo de adaptarse al espacio europeo de educación superior de las asignaturas troncales de Redes. 1.1. Objetivo y alcance del proyecto El objetivo final de este proyecto es automatizar la configuración de todos los dispositivos que componen el laboratorio de prácticas L1.02. Las tareas que se han realizado son las siguientes: • Puesta en marcha e interconexión entre dispositivos buscando una topología adecuada al desarrollo de las diferentes prácticas, así como la adaptación de los mismos al ámbito docente. • Automatizar la configuración de los citados dispositivos para su uso de una manera sencilla por parte del profesorado, para empezar en un estado deseado dependiendo de la práctica a desarrollar permitiendo el uso de distintos protocolos de encaminamiento y configuraciones de equipos, sin tener que modificar la topología física. Se ha realizado a través de sencillas interfaces de usuario o se han adaptado las que proporciona el fabricante. 1.2. Situación previa Para comprender verdaderamente la dimensión del trabajo llevado a cabo en este proyecto final de carrera, se empieza por explicar el trabajo existente sobre el que se comenzó: • Se parte de una modificación inicial del firmware de fábrica de cada uno de los encaminadores Linksys por parte de un anterior trabajo fin de carrera. Se usa como sistema base OpenWrt [1] en su versión WhiteRussian RC6 con las siguientes modificaciones:  Cada vez que el dispositivo se reinicia, ya sea bien vía hardware o vía software, se vuelve a cargar un estado inicial predefinido.  Admite la carga de un script en el proceso de inicio que sea leído de un servidor externo y que ejecute las modificaciones necesarias. La dirección del servidor se puede cambiar sin modificar el firmware instalado.  El firmware modificado admite dos usuarios: Un usuario root que dispone de todos los permisos y tiene acceso total a todas las funcionalidades del dispositivo. El otro, usuario, no tiene acceso a aquellos comandos o interfaces que permiten cambiar permanentemente el estado del dispositivo. 9 • Emplazamiento físico de los dispositivos en un armario rack por parte del personal responsable del mantenimiento del laboratorio, así como la instalación física de las redes A, B y C a lo largo del mismo, unido a la existente instalación y configuración para la docencia de veinte ordenadores distribuidos en cuatro bancadas. 1.3. Contexto profesional Este proyecto se ha realizado dentro del Departamento de Informática e Ingeniería de Sistemas, concretamente en el Área de Arquitectura de Computadores, bajo la dirección del profesor Juan Segarra Flor, en paralelo con una Beca de colaboración "Materia troncal de Redes en Ingeniería Informática III" del Programa de Incentivación de la Innovación Docente de la Universidad de Zaragoza PIIDUZ-2008-2-241. 1.4. Contexto tecnológico 1.4.1. Contexto hardware Para situar la tecnología estudiada y la metodología utilizada se ofrece en primer lugar un listado del inventario de elementos hardware utilizados: • 1 Switch (conmutador) que permite conectar el laboratorio a la red Unizar. • 3 Redes independientes con topología en árbol (conmutadores): A, B y C. • 1 Servidor Dell PowerEdge 860 [2]. • 8 Routers (encaminadores) Linksys WRT54GL con firmware modificado: Linksys 1, Linksys 2, Linksys 3, Linksys 4, Linksys 5, Linksys 6, Linksys 7 y Linksys 8 [3]. • 2 Switches (conmutadores) Dell PowerConnect 3424: switch 1 y switch 2. • 1 Unidad de distribución de alimentación APC AP7922 (PDU) [4]. • 1 Sistema de alimentación ininterrumpida APC Back-UPS RS 800 (SAI). • 20 Ordenadores completamente equipados (dos tarjetas de red en cada uno). 1.4.2. Contexto software El objetivo secundario ha sido realizar todo el proceso de análisis, desarrollo y documentación del proyecto con herramientas libres siempre que ha sido posible como se detalla seguidamente. Se está ante una continua explosión de las aplicaciones Web ya que en los últimos años han surgido multitud de estándares y tecnologías que facilitan la tarea. A continuación se nombran los más interesantes a la hora de realizar el presente proyecto: • HTML (HyperText Markup Language) es el lenguaje de marcado predominante para la elaboración de páginas web. Usado para describir la estructura y el contenido en forma de texto, así como para complementar el texto con objetos tales como imágenes [5]. • PHP (PHP Hypertext Pre-processo) es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas. Es usado principalmente en interpretación del lado del servidor [6]. 16 2.3. Diseño y desarrollo El proyecto puede dividirse en dos grandes partes: instalación, configuración y adaptación al ámbito docente de cada uno de los dispositivos por una parte y por otra, la automatización del control vía interfaces de usuario de todos ellos. A continuación se explican con detalle: 2.3.1. Conexiones entre dispositivos Ante el problema complejo que se presentaba debido a las múltiples opciones de conectar todos los dispositivos entre sí, tras consultar las necesidades de las prácticas a desarrollar en el laboratorio, se decidió la conexión física como se muestra en los esquemas del anexo C, intentando cubrir el máximo número de topologías alcanzables o fácilmente modificables. Se aprovecharon las cuatro interfaces del servidor para conectar la primera (eth0) con la red de redes, la segunda y la tercera (eth1 y eth2) con cada uno de los dos conmutadores Dell, quedando libre una tercera (eth3) para futuras ampliaciones del laboratorio. Así se consiguen dos redes locales fácilmente independientes o dependientes según se requiera, y acceso a internet. A su vez, a uno de estos conmutadores (switch 1) se conectaron la primera mitad de los ordenadores del laboratorio, y tres de los cinco puertos (puertos WAN, LAN 1 y 2) de los cuatro primeros encaminadores Linksys buscando de nuevo el mayor juego posible de topologías, quedando al otro conmutador (switch2) la conexión de los restantes ordenadores y encaminadores de la misma manera. El primer objetivo de esta conexión es que no haga falta tener acceso físico a los diferentes encaminadores para configurar las distintas redes entre los mismos, ya que se gestionarán a través de ambos conmutadores. Adicionalmente, se conectaron los dos puertos restantes (puertos LAN 3 y 4) de todos los encaminadores Linksys a la red C con la finalidad de alcanzar una nueva y alternativa topología fuera de los conmutadores. Con esto conseguimos que los encaminadores se puedan configurar adecuadamente entre varias y distintas preferencias según la distribución de sus puertos. En el caso del dispositivo de distribución de alimentación (PDU) fue mucho más fácil la elección debido a que, como su propio nombre indica, todos los dispositivos debían ir conectados a él vía cable eléctrico, decidiéndose conectarse adicionalmente vía red para tener acceso remoto al mismo con el segundo conmutador (switch2), y no con el primero, por una simple cuestión de cercanía entre ambos dispositivos. Por último, el sistema de alimentación ininterrumpida (SAI) se conecta con el servidor y con el PDU por ser los equipos con cargas críticas, debido a la necesidad de estar en todo momento operativos y sin fallos (picos o caídas de tensión). En el caso del servidor, esta conexión se hace vía USB con la intención de monitorizar y controlar remotamente el dispositivo. Ilustración 2.1: Parte superior armario rack laboratorio L1.02 Ilustración 2.2: Parte inferior armario rack laboratorio L1.02 17 2.3.2. Servidor Dell PowerEdge 860 Es un servidor en rack de uso general y de bajo coste, procesador único y formato 1U. Proporciona un rendimiento asequible para sustentar aplicaciones de desarrollo web y de infraestructura de red. Se ha llevado a cabo una instalación de CentOS versión 5 por ser el sistema operativo Linux usado por los administradores en las diferentes salas de prácticas del edificio Ada Byron, facilitando su posterior mantenimiento. Por ser un dispositivo a ser accesible sólo por el profesorado o personal de administración, se crea una sola cuenta adicional con privilegios de “root” por motivos de seguridad. Algunos paquetes que pueden resultar útiles no se encuentran en los repositorios oficiales de CentOS, por lo que se han añadido repositorios estables extra de third-party- applications, pero que son conocidos y declarados por la comunidad como seguros y fiables [27]. Una vez instalado el sistema operativo y sus complementos, se procede a configurar los parámetros de red: • En primer lugar se define el nombre de host con la dirección de loopback (127.0.0.1) utilizada para el correcto funcionamiento de varias aplicaciones posteriores, como por ejemplo el servidor web Apache. • A continuación se configuran los parámetros de cada una de las interfaces: Dirección IP, máscara de subred y puerta de enlace, proporcionado por los administradores del laboratorio en el caso de la interfaz con salida a internet (eth0) y con valores locales para las otras dos interfaces, dejando una libre para futuras ampliaciones. Para completar la conexión al exterior, se definen las direcciones del servidor DNS. • Al requerirse establecer encaminamientos adicionales para obtener conectividad entre las dos redes locales, se generan ficheros para cada interfaz local, en donde se establecen los valores para la puerta de enlace, red a la que se quiere acceder y la máscara de subred correspondiente. En el paso siguiente, se configura el acceso al servidor vía SSH desde cualquier dispositivo remoto mediante la instalación del paquete OpenSSH. Tras adaptarse el fichero de configuración del mismo se generan las claves pública y privada necesarias para el correcto funcionamiento del protocolo. Destacar el hecho adicional de habilitar la ejecución remota de aplicaciones gráficas, ya que, cuando se tienen distintas máquinas en una red local y se desea aprovechar el poder y recursos de éstas y ahorrar trabajo, una sesión gráfica remota es de gran utilidad. Desde un principio se pensó en que una de las funciones principales del servidor sería dar direcciones IP a los diferentes dispositivos de red del laboratorio para que se autoconfiguren siempre de la misma forma tras reiniciarse. Para ello, se instala y configura como servidor DHCP con asignación manual, es decir, sólo los anfitriones con una dirección MAC definida en dicho servidor recibirán la dirección IP asignada, evitándose conflictos por cambios de direcciones. Sin la ayuda de un servidor DHCP, tendría que configurarse de forma manual cada dirección IP de cada anfitrión. Es importante destacar que, por motivos de seguridad, el servidor DHCP sólo debe funcionar por las interfaces locales (eth1 y eth2). Ilustración 2.3: Vista de frente Servidor Dell PowerEdge 860 18 Ya que el objetivo final del proyecto es la automatización de dispositivos vía interfaces web, se hace necesario la instalación de un navegador web, eligiendo Mozilla Firefox (y activando el complemento Javascript) por ser multiplataforma y libre. Otro de los aspectos a instalar y configurar es el servidor web para poder ejecutar los menús de configuración del laboratorio mediante interfaces web de usuario. Se elige Apache por ser de código abierto, fiable y tener gran extensibilidad, ya que se instala junto a su complemento PHP. Por motivos de seguridad, es muy importante configurar el acceso a dicho servidor de una manera adecuada, permitiendo su acceso sólo desde la red local y/o universitaria. A medida que se avanzaba en la realización del proyecto, se vio necesaria la instalación y configuración del servidor TFTP, ya que una de las formas de comunicación de los conmutadores con el servidor requiere de este protocolo. Como se comentó anteriormente, el servidor controla remotamente al sistema de alimentación ininterrumpida (SAI). Debido a que el software para este objetivo facilitado por el fabricante sólo es gratuito para plataformas Windows, se instala y configura uno de licencia libre para Linux: Apcupsd Daemon. Por último se configuró la necesidad de que todos los cambios comentados hasta ahora se ejecutasen de forma automática al iniciarse el servidor, de una manera transparente al usuario. 2.3.3. Switches Dell PowerConnect 3424 (conmutadores) PowerConnect 3424 tiene 24 puertos 10/100 Mbps y dos puertos SFP (Small Form Factor Pluggable es un transceptor modular óptico de intercambio dinámico que ofrece una gran velocidad), además de dos puertos de cobre que pueden utilizarse para reenviar tráfico en el caso de un dispositivo independiente, o bien como puertos de apilamiento cuando el dispositivo está apilado. Este dispositivo también cuenta con un puerto de consola RS-232. PowerConnect 3424 es un dispositivo apilable, pero también puede funcionar como unidad independiente. Ilustración 2.4: Vista de frente conmutador Dell PowerConnect 3424 Para configurar por primera vez el conmutador es necesario hacerlo directamente por el puerto de consola mediante el cable de serie proporcionado por el fabricante a través de un terminal. Una vez conectado, se accede al firmware del dispositivo con el fin de crear un nombre de usuario y contraseña de acceso, y seguido, se configuran los parámetros de red según las necesidades del laboratorio. Se decide dar una dirección IP fija y no por servidor DHCP por cuestiones de uso, ya que este dispositivo funcionará principalmente con VLANs configuradas desde el propio conmutador. Se decide que funcione como unidad independiente, quedándose la opción de apilarse con otros conmutadores para futuras ampliaciones, ya que en el momento actual con sólo dos 19 en el laboratorio y fácilmente accesibles a través del servidor, no cumpliría función alguna. Adicionalmente, se configuran los puertos permitiendo la detección automática de la velocidad, el modo dúplex y el control de flujo en todos ellos. A continuación se configura el acceso vía SSH para trabajar remotamente con el dispositivo sin necesidad de estar conectado vía cable. Para ello se crean las claves correspondientes, contraseña y parámetros de dicho protocolo. Una vez configurado, se adapta el dispositivo para su uso vía interfaz web. Se configuran los protocolos HTTP y HTTPS para permitir el acceso vía web, ya que el dispositivo facilita la posibilidad de utilizar ambos, y se establece usuario y contraseña. Aunque Mozilla Firefox no está homologado por el fabricante, no muestra ningún comportamiento anormal y se decide continuar con el mismo. Se observa que la interfaz de usuario proporcionada por el fabricante es bastante completa, y tras su minucioso estudio, se comprueba que el dispositivo se puede reiniciar sin guardar los cambios, o guardándolos, además de permitir guardar y cargar configuraciones para su posterior uso, funcionalidades éstas buscadas en el objetivo final de automatización. Estas operaciones se realizan bien vía TFTP o vía HTTP, ambos protocolos instalados y configurados en el servidor. Aunque todas estas tareas también se han configurado para realizarse vía SSH a través del firmware del dispositivo de cara a futuras ampliaciones, se recomienda el uso del acceso vía web por su sencillez si se desconoce el modo de comandos del dispositivo por ser bastante complejo. Por último, con la finalidad de evitar bucles por la topología del laboratorio con sus consiguientes problemas, se instala y configura el protocolo STP. 2.3.4. Unidad de distribución de alimentación APC AP7922 (PDU) Es un dispositivo que permite el control programable de tomas de corriente. Tiene como funciones: • Establecer los siguientes valores para cada toma de manera independiente:  Demora de conexión  Demora de desconexión  Duración del reinicio • Configurar la secuenciación de alimentación para evitar la entrada de corriente mientras se inicia el sistema. Para configurar por primera vez el dispositivo es necesario hacerlo directamente por el puerto de consola mediante un cable de serie facilitado por los administradores del laboratorio y conectado a un terminal. Una vez conectado, se accede al firmware del dispositivo introduciendo el nombre de usuario y contraseña que vienen por defecto. Por motivos de seguridad, el primer paso es cambiar estos parámetros de acceso. Seguido, se configuran los parámetros de red según las necesidades del laboratorio. Se decide dar una dirección IP fija y no por servidor DHCP por razones de comodidad, ya que el dispositivo exige que el servidor de direcciones responda con una oferta de DHCP que incluya la opción Vendor Specific Information (cookie de APC). Ilustración 2.5: Vista de frente Unidad de distribución de alimentación APC AP7922 20 A continuación se configura el acceso vía SSH para trabajar remotamente con el dispositivo sin necesidad de estar conectado vía cable. Para ello se crean las claves correspondientes, contraseña y parámetros de dicho protocolo. Una vez configurado, se adapta el dispositivo para su uso vía interfaz web. Se configuran los protocolos HTTP y HTTPS para permitir el acceso vía web, ya que el dispositivo facilita la posibilidad de utilizar ambos con la salvedad de que sólo uno de ellos puede estar activo a la vez (mutuamente excluyentes), eligiéndose HTTPS por razones de seguridad, y se establece usuario y contraseña. Adicionalmente, se crea una cuenta de usuario, con permisos de sólo lectura, para facilitar el acceso al alumnado con el fin de conocer en todo momento el estado de los dispositivos del laboratorio. Es importante comentar que, tanto para crear las claves utilizadas por el protocolo SSH, como para la obtención del certificado HTTPS, se necesita de programas auxiliares como APC Security Wizard facilitado libremente en la web del fabricante, ya que la capacidad de cálculo del dispositivo es bastante limitada. Por este motivo, la verificación del acceso vía SSH es algo más lento, aunque una vez autentificado funciona correctamente. Se observa que la interfaz de usuario proporcionada por el fabricante es sencilla pero bastante completa, y tras su minucioso estudio, se comprueba que el dispositivo permite iniciar y guardar la configuración que se desee, funcionalidades principales en el objetivo final de automatización. Esto se realiza descargando o guardando un fichero de configuración inicial (config.ini) vía ftp con el servidor. Todas estas tareas también se han configurado para realizarse vía SSH a través del firmware del dispositivo de cara a futuras ampliaciones. Aunque el modo de comandos no es tan complejo como en los conmutadores Dell, se recomienda el uso del acceso vía web por su sencillez. Por último, se renombran los enlaces de las tomas de corriente de la interfaz de usuario con los nombres y direcciones de cada uno de los dispositivos conectados facilitando una rápida detección y/o acceso a los mismos por parte del usuario. 2.3.5. Routers Linksys WRT54GL (encaminadores) El Linksys WRT54GL es un encaminador doméstico que permite interconectar varios dispositivos mediante enlaces Ethernet. Este dispositivo permite configurar una red de hasta cuatro dispositivos a través de sus puertos LAN, ofreciendo una amplia flexibilidad y adicionalmente, se puede conectar a otras redes mayores o a Internet mediante un quinto puerto WAN. Dispone también de facilidades inalámbricas. Como se comentó al inicio de esta memoria, el software de gestión (firmware) fue modificado por un compañero en un proyecto anterior adaptando su uso a la docencia. Se estudia las necesidades del dispositivo para su uso en prácticas y se extrae la conclusión de que se deben hacer varios cambios en su comportamiento. Con el fin de no rectificar este firmware modificado, por el trabajo laborioso que conllevaría, se comprueba que el dispositivo almacena sus parámetros de configuración en memoria RAM, que se borra al reiniciar, y memoria flash (NVRAM), que es persistente. Por ello, se identifican y clasifican todas estas modificaciones exigidas según su necesidad de ser temporales o permanentes. Ilustración 2.6: Vista posterior router Linksys WRT54GL 21 Se decide hacer en cada uno de los encaminadores los siguientes cambios de una manera permanente (no olvidar que la vida media de escrituras en la memoria flash es aproximadamente 10.000 veces, por lo que no conviene abusar): • Desactivar la interfaz inalámbrica por no ser de utilidad en el uso de las futuras prácticas, ya que ningún otro dispositivo del laboratorio dispone de herramientas wireless. • Desactivar la función de servidor DHCP que realiza automáticamente el dispositivo a través de sus puertos LAN. La función de dar direcciones IP ya la cumple el propio servidor del laboratorio como se comentó con anterioridad, no pudiendo disponer de dos servidores DHCP diferentes en una misma red. • Configurar la variable “servidor” con la ruta correcta para que el encaminador acceda a la carga del script de inicio almacenado previamente en dicha ruta del servidor. • Se decide dar direcciones IP mediante servidor DHCP al puerto WAN por ser una variable a configurar principalmente por los administradores, mientras que la dirección IP de los puertos LAN se almacena fija pero fácilmente modificable por los usuarios según las configuraciones de VLANs que se adapte en la sesión de prácticas correspondiente. Los restantes cambios se pueden llevar a cabo de una manera temporal, es decir, a nivel de sesión al comienzo de cada práctica, por lo que se decide aprovechar la opción de cargar un script al iniciarse el dispositivo, para activar con él todos estos cambios. Debido a que las modificaciones pueden ser múltiples y variadas, se desarrolla un formulario HTML y su procesamiento encargado de generar este script según las necesidades de cada práctica como se explica en el apartado de interfaces de más adelante. Por último comentar que el diseño del firmware modificado contiene un problema con el protocolo SSH, ya que el dispositivo no almacena las claves privadas tras reiniciarse tanto al actuar como cliente o como servidor remoto en dicho protocolo, es decir, sólo las guarda a nivel de sesión. Es especialmente crítico en el caso de actuar como servidor remoto ya que bloquea una nueva conexión, mientras que al actuar como cliente, es suficiente con aceptar la nueva clave como si fuera la primera vez que se conectara con el dispositivo remoto. Partiendo de la base de no modificar el firmware, este problema se puede solucionar de dos formas explicadas en la sección de Principales problemas encontrados. 2.3.6. Ordenadores Como se comentó con anterioridad, el laboratorio dispone de veinte ordenadores con su hardware y software preinstalado para su uso en la docencia, distribuidos en cuatro bancadas como se puede observar en el anexo C. La única característica a modificar en los mismos es la activación de la segunda tarjeta de red, conexión de la misma con la red A y su configuración para que tome la dirección IP a través del servidor DHCP del armario. Así se obtiene una dirección IP fija con el fin de tener siempre la misma para cada ordenador. Uno de los problemas encontrados al conectar los ordenadores a la infraestructura de red ha sido el poseer dos tarjetas de red configuradas por diferentes servidores DHCP en cada dispositivo. En la sección Principales problemas encontrados se detalla el problema y la solución adoptada. 22 2.3.7. Sistema de alimentación ininterrumpida APC Back-UPS RS 800 (SAI) El SAI es un dispositivo que gracias a sus baterías, puede proporcionar energía eléctrica tras un apagón a todos los dispositivos que tenga conectados y mejorar la calidad de la energía eléctrica que llega a los aparatos, filtrando subidas y bajadas de tensión y eliminando armónicos de la red. En el caso particular del laboratorio L1.02, estos aparatos críticos son el servidor y el PDU. Como se ha comentado anteriormente, es controlado remotamente por el servidor (al que está conectado a través de cable USB) mediante el uso del demonio apcupsd, correctamente configurado con los parámetros propios del laboratorio. 2.3.8. Interfaces de usuario La Real Academia Española define el término interfaz (del inglés interface, superficie de contacto) como una conexión física y funcional entre dos aparatos o sistemas independientes [28]. Cuando uno de los sistemas que se comunican es un ser humano pasamos al concepto de interfaz de usuario. Este tipo de interfaces deben servir de intermediarias entre unos usuarios genéricos y unos sistemas de información y procesos transaccionales que corren por debajo, debiendo posibilitar la localización de la información deseada, el entendimiento claro de las funcionalidades ofrecidas, la realización práctica de tareas específicas por parte de los usuarios y la navegación intuitiva por las diferentes páginas que forman el sitio web. Una vez instalados, conectados y adaptado su uso a la docencia cada uno de los dispositivos como se ha explicado en las secciones anteriores, se llega al objetivo final, la automatización vía interfaces de usuario de todos ellos para empezar en un estado deseado dependiendo de la práctica a desarrollar permitiendo el uso de distintos protocolos de encaminamiento y configuraciones de equipos, sin tener que modificar la topología física. Para dicha automatización, el propósito de todas las interfaces creadas desde cero o adaptadas a la docencia es la posibilidad de crear y guardar una configuración determinada de cada dispositivo, así como poder cargarla de una manera sencilla al inicio de cada sesión por parte del profesorado (administrador). La siguiente ilustración da una visión general pero clara de qué camino va a seguir el flujo de información para dicha automatización. Menú inicial En primer lugar se necesita una pantalla inicial a través de la cual se acceda a todas las opciones de configuración del laboratorio de una manera intuitiva. Ilustración 2.7: Vista de frente Sistema de alimentación ininterrumpida Back- UPS RS 800 Ilustración 2.8: Flujo de la información automatización 23 Ilustración 2.9: Interfaz de usuario inicial Destacar que el acceso a cada una de estas opciones está restringido mediante nombre de usuario y contraseña de usuario administrador (profesor), aunque en el caso de la configuración de cada encaminador Linksys y la unidad de distribución de alimentación (PDU) sean accesibles también con cuenta de usuario (alumno) con sus respectivas restricciones. Ilustración 2.10: Ejemplo acceso a configuración restringido 24 En los siguientes apartados se definen brevemente cada una de las opciones de este menú inicial, cuyo funcionamiento es explicado con amplio detalle en el anexo D (manual de usuario) junto con los detalles de su implementación en el anexo E. Para comenzar, se expone una visión general de la estructura de dichas interfaces: Ilustración 2.11: Visión general de la estructura de las interfaces de usuario Comentar también, que aunque se han desarrollado estas interfaces y/o adaptado las proporcionadas por el fabricante con el objetivo final de automatizar el control de los diferentes dispositivos del laboratorio, no se ha restringido a sólo esta funcionalidad la administración de los ficheros de configuración de cada dispositivo, ya que se ha dotado al servidor de la herramienta gráfica de gestión de ficheros Nautilus, permitiéndose copiar, mover, editar, etc. cualquier fichero de forma manual por parte del usuario. 25 Ilustración 2.12: Vista del administrador de archivos Nautilus Configuración interfaz web de usuario + VLANs routers Linksys WRT54GL Al entrar en esta opción se accede a un formulario HTML mejorado con Javascript. Los usuarios administradores completan dicho formulario modificando sus controles de una manera sencilla (introduciendo texto, seleccionando objetos de un menú, etc.) según las características de configuración de los encaminadores que se deseen, antes de enviar el resultado mediante un simple botón al servidor para que lo procese. El servidor cuando recibe los datos, los interpreta mediante un programa PHP encargado de generar el script correspondiente para la posterior configuración de los encaminadores según los datos introducidos. Con este formulario y su procesamiento podemos crear cientos de scripts diferentes y almacenarlos en el servidor con el objetivo final de utilizarlos al comienzo de cada práctica. Tener en cuenta que este script será el mismo para todos los encaminadores, por lo que en este formulario sólo se han tratado aspectos globales como la configuración de la interfaz web del usuario (eliminar y añadir pestañas) o la distribución de las posibles VLANs, dejando los posibles cambios de aspectos específicos a modificar durante el desarrollo de la práctica, como la dirección IP, puerta predeterminada, etc. de cada dispositivo para realizarse de forma individual en los menús web de cada uno o mediante scripts/comandos que afecten a un sólo dispositivo, todo esto explicado con detalle en los anexos D y E. 32 Ilustración 2.20: Mensaje de error al conectarse con los router Linksys vía SSH Partiendo de la base de no modificar el firmware, este problema se puede solucionar de dos formas:  Modificar el fichero de configuración del protocolo SSH (ssh_config desactivando “StrictHostKeyChecking no”) permitiendo la conexión de todos los dispositivos sin comprobar si ha habido cambios en sus claves públicas y privadas, con el consiguiente riesgo de seguridad de conlleva.  Borrar la entrada del encaminador correspondiente del fichero de claves almacenadas en el servidor. Se elige esta segunda opción por motivos de seguridad, y ya que sería molesto ir borrando una por una todas las entradas, se diseña un pequeño script en el servidor, que borre automáticamente todas las entradas de los encaminadores cada vez que se reinicien (borraKeys.sh). • Los ordenadores disponen de dos tarjetas de red, ambas toman la dirección IP mediante servidor DHCP, una vía servidor de la red Unizar y la otra, vía servidor del laboratorio. El problema está en que cierta información del DHCP sobre el encaminamiento del laboratorio ha de prevalecer sobre la del DHCP de la red Unizar y viceversa. Esta decisión acerca de qué prevalece no es fácilmente automatizable en Windows XP. Para solucionarlo, hay que modificar la métrica en ambas para definir qué tarjeta de red es la que más se usa por defecto de la siguiente manera:  Tarjeta de red con acceso a Internet: Ir a Conexiones de red y acceder a las propiedades de la tarjeta, luego seleccionar Protocolo Internet (TCP/IP) y pinchar en Propiedades y después en Opciones Avanzadas. Desmarcar métrica automática, y poner un "1" en Métrica de interfaz. Aceptar todo. 33 Ilustración 2.21: Pantalla modificación métrica  Tarjeta de red con acceso red local: es necesario configurar esta segunda tarjeta de red como un adaptador secundario. Para ello repetimos los pasos anteriores con la salvedad de poner un "40" en Métrica de interfaz. Aceptar todo. Por último, hace falta indicarle la ruta de acceso a esta segunda red, ya que por defecto siempre utilizaría la red con acceso a internet. Tras consultar a los administradores del laboratorio se decidió que la manera más sencilla de añadir esta ruta es mediante un archivo .bat al configurar la imagen de cada ordenador: route –p add 192.168.0.0 mask 255.255.255.0 192.168.1.102 route –p add 192.168.1.0 mask 255.255.255.255 192.168.0.100 • Se tuvieron problemas iniciales con el servidor DHCP, ya que los encaminadores Linksys realizaban por defecto también este papel y había mezclas de direcciones IP erróneas. Es importante recordar que en la red del laboratorio sólo puede haber un servidor DHCP activo, es decir, se desactivó esta función en los encaminadores. • Es importante señalar que el servidor posee una cuenta con privilegios de root pero que no es el propio root. Esto conlleva anteponer en la mayoría de comandos de administración o configuración del propio servidor sudo. El olvidarlo, puede inducir a errores. • Cuidado con escribir a mano el script.sh de configuración de los encaminadores en entornos Windows sin usar las interfaces de usuario desarrolladas para este fin, ya que las tabulaciones puede que sean diferentes en Linux y no cargarán correctamente. La solución es borrar o modificar estas tabulaciones con un editor de texto en entornos Linux, como por ejemplo Vi. 34 CAPÍTULO 3. CONCLUSIONES En este capítulo se analiza el grado de cumplimiento de los objetivos marcados al inicio, se propondrán líneas futuras de trabajo, y por último se expondrán las motivaciones que han llevado a su realización así como las conclusiones personales. 3.1. Cumplimiento de objetivos y resultados Si se analizan los objetivos planteados y los resultados obtenidos se puede comprobar que el grado de cumplimiento es prácticamente total. Durante este proyecto, se han realizado instalaciones, configuraciones, modificaciones y se han implementado funciones nuevas que afectaban a distintas áreas de lo que es la estructura de estos dispositivos. Durante el desarrollo, surgieron nuevos problemas a resolver que fueron analizados y propuestos como objetivos a cumplir. Desde un punto de vista global, se puede decir que el proyecto ha conseguido transformar una serie de dispositivos vírgenes en unos cuyas funcionalidades se asemejan más a los de modelos profesionales, así como se ha conseguido aumentar la integridad y la versatilidad de los mismos, haciéndolos aptos para su uso en las sesiones de prácticas. El objetivo de facilitar notablemente la tarea al profesorado también se ha conseguido a través de sencillas interfaces de usuario y adaptando los que proporcionaba el fabricante. Crear una nueva configuración de todos los dispositivos o cargar una existente para comenzar una práctica determinada en el laboratorio se realiza de una manera rápida, sencilla y sin necesidad de modificar físicamente la topología de la sala. 3.2. Líneas futuras Como trabajo a realizar para futuros proyectos final de carrera, o simplemente como ampliación de los dispositivos se propone: • Ampliar la conexión del laboratorio con nuevos dispositivos, utilizando la interfaz libre (eth3) del servidor y consiguiendo nuevas topologías. • Como se ha comentado a la largo de la memoria y estudiado como alternativa, mejorar la seguridad en la configuración de los dispositivos con la ejecución de scripts mediante el protocolo SSH buscando alternativas para realizarse de una manera sencilla. • Apilar conmutadores, en esta primera versión al poseer dos unidades únicamente, no es necesario, pero sí que sería muy útil si el número de unidades incrementara. Del mismo modo, si se llevara a cabo esta ampliación, mejorar las características del protocolo STP por estar configurado para un funcionamiento básico. 3.3. Motivaciones que han llevado a su realización Desde que era pequeño, siempre me han gustado las redes, y siempre me preguntaba como funcionarían los servidores, el módem, los cables, los conmutadores, etc. Este proyecto era una oportunidad única para comprender el funcionamiento interno de todos estos dispositivos, así como una ocasión para poner en práctica todos los conocimientos aprendidos tanto dentro como fuera de la carrera. Trabajar con interfaces web de usuario, sobre Linux, y que además estuviera orientado a las redes, suponía juntar tres de las cualidades que más me atraen del mundo de la informática. El hecho de que sirviera además para una posible mejora de las sesiones de prácticas sobre Redes, suponía un punto adicional. 3.4. Conclusiones personales En general estoy bastante contento con el resultado obtenido y de cómo se ha ido desarrollando el proyecto. 35 El proceso de desarrollo basado en invertir la mayor parte del tiempo en análisis antes de empezar a configurar o programar nada dio su fruto, ya que era crucial entender cómo funcionaban todos los dispositivos para aprovechar mejor el tiempo. Asimismo cabe destacar la importancia de usar una buena metodología, así como tener claras las fases a seguir del proyecto. El hecho de fijar unas fechas tope para acabar ciertas fases es de vital importancia para que no se perpetúen eternamente durante la vida del proyecto. En un plano más personal, he disfrutado haciendo este proyecto final de carrera. Siempre he pensado que a los informáticos lo que nos gusta no es programar, sino resolver problemas. Implementar la solución, o programar como se suele llamar, es casi siempre trivial, y personalmente, aburrido. Por ello, este proyecto me ofrecía retos de diversa índole que requería mucho tiempo pensando la solución, innovando y creando caminos donde no los había, y tan sólo una parte de implementación. He visto como compañeros míos estaban horas y horas delante del ordenador depurando y programando código, mientras que yo he pasado las mismas horas con lápiz y papel, leyendo ficheros y dibujando esquemas. Asimismo, me ha servido también para entender y comprender muchos de los conceptos vistos en clase, de los cuales algunos nunca creí que tuvieran aplicación. También es una experiencia el realizar una tarea en el que tú mismo eres tu máximo evaluador, y posiblemente la persona que más sepa sobre lo que estás haciendo. Y por una vez, me he sentido parte de un equipo de trabajo que intenta mejorar la docencia, he saltado la valla que separa a los alumnos con sus exámenes y a los profesores con sus tutorías. Ya empiezo a notar que la vida de estudiante se acaba y empieza el asumir responsabilidades y tomar decisiones de verdad. 36 ANEXO A. PLANIFICACIÓN A.1. Estimación inicial Las tareas a desarrollar a lo largo de la vida del proyecto han sido divididas en tres grupos principales atendiendo a su función dentro del mismo: • Investigación y Formación: su función es la de aportar los conocimientos necesarios al autor del proyecto para garantizar la consecución de los objetivos. Consta de una primera fase de documentación y estudio sobre aspectos generales de sistemas operativos, de áreas más concretas como son los protocolos de autentificación o la gestión de paquetes y totalmente específicos como los manuales de usuario de cada dispositivo. Su objetivo es profundizar acerca de su funcionamiento, arquitectura, algoritmos, etc. • Desarrollo: esta fase encapsula las tareas necesarias para la puesta en marcha, interconexión, adaptación al ámbito docente de los diferentes dispositivos y la automatización final del laboratorio mediante interfaces de usuario. Se realizará una fase de análisis inicial para definir claramente los objetivos. Posteriormente se diseñará e implementará cada una de las funcionalidades de las que consta el PFC. Las fases de diseño e implementación no tienen definido un límite estricto debido a que suele requerirse realimentación en el diseño. Se completará con el planteamiento y ejecución de las pruebas correspondientes. • Gestión del proyecto: incluye todas aquellas tareas que no forman parte del sistema a desarrollar de forma directa, pero que son igualmente necesarias para garantizar un producto de calidad. Consta de tareas como el estudio de metodologías, reuniones, planificaciones o documentación. En la siguiente ilustración se representa el diagrama Gantt con las distintas tareas del proyecto junto con su duración estimada, de forma que ayuda a tener una concepción aproximada de la duración del proyecto. El objetivo de esta herramienta es servir de guía con la idea de conseguir los hitos en las fechas planificadas o al menos tratar de minimizar los retrasos (los períodos en blanco son fechas de exámenes y período de vacaciones): Ilustración A.1: Diagrama de Gantt de la planificación inicial 37 A.2. Tiempos finales En esta sección se muestran los tiempos reales dedicados al proyecto. Definitivamente se han sucedido diversos imprevistos que han provocado desviaciones significativas respecto a las estimaciones iniciales. Para comenzar, la primera fase de investigación y formación llevó más tiempo del previsto, provocado en gran parte por la poca experiencia del autor en las tecnologías utilizadas y la dificultad de conseguir manuales de calidad de los diferentes dispositivos. Otra de las variaciones interesantes a comentar es la que afecta a la configuración de dispositivos, ya que ha sido complicado trabajar con ellos mientras se realizaban sesiones de prácticas en el laboratorio para no interferir en las mismas. Adicionalmente, la fase de desarrollo de las interfaces de usuario se alargó en el tiempo debido a las continuas mejoras introducidas y a la necesidad de realizar pruebas simultáneas para comprobar que se estaba en el buen camino. Por último, por motivos de salud se ha tenido que hacer un paréntesis forzoso entre mediados de septiembre y finales de febrero. Evidentemente, este fue el punto del proyecto en el que se acumuló mayor retraso respecto a la previsión inicial ya que es una circunstancia que está fuera del alcance de cualquier previsión inicial. Ilustración A.2: Diagrama Gantt de los tiempos reales 38 ANEXO B. ANÁLISIS En este apéndice se detalla de forma exhaustiva las características que debe cumplir el proyecto una vez finalizado. En primer lugar se definen los requisitos funcionales y no funcionales exigidos, posteriormente se detallan los casos de uso. B.1. Análisis de requisitos B.1.1. Análisis de requisitos funcionales A continuación se describen los requisitos funcionales, encargados de especificar las funciones que las actividades a desarrollar deben ser capaz de realizar: • RF-1 Puesta en marcha, interconexión y adaptación al ámbito docente de cada uno de los dispositivos del laboratorio L1.02. • RF-2 Establecer distintas topologías lógicas de red en función de prácticas docentes concretas, permitiendo el uso de distintos protocolos de encaminamiento y configuraciones de equipos, sin tener que modificar la topología física. • RF-3 Automatizar de una manera sencilla la configuración de cada dispositivo. Dicha configuración debe poder cambiarse con facilidad y/o volver a su estado original al finalizar cada práctica. • RF-4 Diseñar e implementar sencillas interfaces de usuario a usar por el profesorado para la ordenación del funcionamiento de los equipos o adaptar las que proporcionaba el fabricante. • RF-5 Ajustarse a los requerimientos de cada práctica que se realice en el laboratorio. B.1.2. Análisis de requisitos no funcionales Los requisitos no funcionales son aquellos que describen atributos del sistema o atributos del entorno del sistema. A continuación se detallan los requisitos no funcionales que se han intentado cumplir: • RNF-1 Trabajar en un entorno multiplataforma. • RNF-2 Rapidez y seguridad en la comunicación entre dispositivos. • RNF-3 Las interfaces de usuario estarán basadas en sencillas páginas web que permitirán acceder a cualquier funcionalidad. • RNF-4 Documentar el modo de utilización de las interfaces de usuario para su posterior uso por parte del profesorado. B.2. Casos de uso Los casos de uso son descripciones de la interacción que deberá haber entre el usuario (actor) y el programa (sistema) para conseguir objetivos específicos. A continuación definiremos la comunicación y el comportamiento de las interfaces mediante su interacción con usuarios (profesores) y dispositivos. Para ello, se detallan los casos de uso, divididos para cada uno de los posibles escenarios: 39 1. Caso de uso “Crear script configuración Linksys” • Descripción: Permite crear la configuración deseada para la interfaz web de usuario (alumnos) y para la distribución de los puertos creando VLANs de todos los encaminadores Linksys. • Actores: Usuario. • Precondiciones: La interfaz y el servidor web están activos y el usuario se ha autentificado. • Flujo:  El usuario selecciona e introduce la configuración deseada atendiendo a una serie de opciones ofrecidas por el formulario de la interfaz.  Una vez que el usuario finaliza, envía los datos al servidor.  El servidor recibe y procesa los datos del formulario creando un script. • Postcondición: Un script, script.sh, es creado. Los dispositivos deben ser reiniciados para auto configurarse con la carga del citado script. 2. Caso de uso “Configuración de un Linksys determinado” • Descripción: permite modificar la configuración de un encaminador Linksys determinado. • Actores: Usuario. • Precondiciones: La interfaz y el servidor web están activos y el usuario se ha autentificado. • Flujo:  Mediante la interfaz del dispositivo, el usuario modifica las opciones de configuración que desee. • Postcondición: El dispositivo se configura según los cambios introducidos por el usuario, perdiéndose los mismos al reiniciarse el encaminador si no se indica que dichos cambios sean permanentes. 3. Caso de uso “Crear configuración conmutadores Dell PowerConnect 3424” • Descripción: permite crear la configuración deseada para cada conmutador. • Actores: Usuario. • Precondiciones: La interfaz y el servidor web están activos y el usuario se ha autentificado. • Flujo:  El usuario selecciona e introduce la configuración deseada en la interfaz de usuario.  Guarda la configuración en un fichero de texto y la envía al servidor vía HTTP o TFTP (o la guarda en el propio dispositivo) a través de la interfaz. 40 • Postcondición: Un fichero de texto con los datos de configuración introducidos por el usuario es creado y almacenado en el servidor o en el propio dispositivo. Si no se indica expresamente que dicha configuración sea almacenada, los cambios se pierden al reiniciar el dispositivo. 4. Caso de uso “Crear configuración Unidad de distribución de alimentación APC AP7922” • Descripción: permite crear la configuración deseada para la PDU. • Actores: Usuario. • Precondiciones: La interfaz y el servidor web están activos y el usuario se ha autentificado. • Flujo:  El usuario selecciona e introduce la configuración deseada en la interfaz de usuario.  Guarda la configuración en un fichero (config.ini) y la envía al servidor vía FTP a través de la interfaz. • Postcondición: Un fichero config.ini es almacenado en el servidor con los datos de configuración introducidos por el usuario. 5. Caso de uso “Seleccionar script configuración Linksys” • Descripción: permite seleccionar el script almacenado con anterioridad en el servidor para que se convierta en script.sh. • Actores: Usuario. • Precondiciones: La interfaz y el servidor web están activos y el usuario se ha autentificado. • Flujo:  El usuario selecciona el script que desea utilizar de los mostrados por pantalla. • Postcondición: El script seleccionado cambia de nombre a script.sh conservando el original. Los encaminadores deben ser reiniciados para configurarse con dicho script. 6. Caso de uso “Cargar configuración conmutadores Dell PowerConnect 3424” • Descripción: permite configurar el dispositivo mediante un archivo de configuración creado con anterioridad. • Actores: Usuario. • Precondiciones: La interfaz y el servidor web están activos y el usuario se ha autentificado. Se posee un archivo de configuración en formato de texto. • Flujo:  El usuario selecciona y carga el archivo de configuración que desee mediante la interfaz de usuario. 41 • Postcondición: El dispositivo se configura según las características del archivo cargado. Dicha configuración es eliminada tras un reinicio del dispositivo o la carga de un nuevo archivo. 7. Caso de uso “Cargar configuración Unidad de distribución de alimentación APC AP7922” • Descripción: permite configurar el dispositivo mediante un archivo de configuración creado con anterioridad. • Actores: Usuario. • Precondiciones: La interfaz y el servidor web están activos y el usuario se ha autentificado. Se posee un archivo de configuración config.ini. • Flujo:  El usuario selecciona y carga el archivo de configuración que desee mediante la interfaz de usuario. • Postcondición: El dispositivo se configura según las características del archivo cargado. Dicha configuración permanece hasta la carga de un nuevo archivo. 8. Caso de uso “Chequear conexiones físicas” • Descripción: permite un test de las conexiones entre dispositivos a través del servidor, similar al comando ping. • Actores: Usuario. • Precondiciones: La interfaz y el servidor web están activos y el usuario se ha autentificado. • Postcondición: Se muestra por pantalla el resultado del test, mostrando el estado de todos los dispositivos (activo o inactivo). 48 de indicarle expresamente al navegador que abra en otra pestaña (o ventana) la interfaz de configuración en el caso de los conmutadores Dell PowerConnect 3424. Las opciones que presenta dicha interfaz, explicadas con detalle a continuación, son: • Configuración interfaz web de usuario + VLANs routers Linksys WRT54GL • Selección script Linksys • Configuración router 1 Linksys WRT54GL • Configuración router 2 Linksys WRT54GL • Configuración router 3 Linksys WRT54GL • Configuración router 4 Linksys WRT54GL • Configuración router 5 Linksys WRT54GL • Configuración router 6 Linksys WRT54GL • Configuración router 7 Linksys WRT54GL • Configuración router 8 Linksys WRT54GL • Configuración unidad de distribución de alimentación AP7922 • Configuración switch 1 Dell PowerConnect 3424 • Configuración switch 2 Dell PowerConnect 3424 • Test de conexiones Ilustración D.2: Vista de la interfaz de usuario inicial D.2. Configuración interfaz web de usuario + VLANs routers Linksys WRT54GL Al hacer clic para acceder a dicha interfaz lo primero es autentificarse con nombre de usuario y contraseña (root/PacoRedes1). 49 Se accede a un formulario web (http://localhost/linksys.php) dividido en dos secciones, la primera de ellas dedicada a la configuración de la interfaz web de usuario (alumno) y la segunda a la distribución de los puertos del dispositivo formando VLANs. La configuración de la interfaz web de usuario es fundamentalmente añadir, hacer visibles u ocultar pestañas y sub-pestañas de la interfaz web por defecto, restringiendo su uso al alumnado según sea necesario en la práctica. A continuación se expone una breve descripción de las citadas pestañas y subpestañas por defecto, explicadas también en la propia interfaz de usuario del formulario: • Info: Información sobre el dispositivo.  Status: Muestra información general sobre el dispositivo, la versión del kernel, del firmware y de la interfaz web.  About: Muestra información sobre los desarrolladores de OpenWrt. • Status: Muestra información sobre procesos, carga, conexiones, etc.  System: Información sobre los recursos disponibles del dispositivo, espacio ocupado/libre, porcentaje de uso de la RAM, etc.  Interfaces: Información sobre la red LAN, WAN, y WLAN: Direcciones MAC, servidores DNS, paquetes transmitidos, recibidos, etc.  DHCP Clients: En caso de que el servidor DHCP del encaminador este habilitado, aquí se puede encontrar los clientes que han pedido y se les ha asignado una dirección IP, así como el tiempo restante hasta la renovación de la misma.  Netstat: Muestra un listado de las conexiones activas de un ordenador, tanto entrantes como salientes. La información que resulta del uso del comando incluye el protocolo en uso, las direcciones IP tanto locales como remotas, los puertos locales y remotos utilizados y el estado de la conexión.  Diagnostics: Permite ejecutar las herramientas ping y traceroute para evaluar el estado de la red. • Syslog: Configuración del estándar para el envío de mensajes de registro.  Syslog settings: Permite configurar los parámetros del protocolo Syslog.  Syslog: Muestra los mensajes prefijados del protocolo Syslog.  Firewall log view: Permite añadir y listar las direcciones IP del cortafuegos correspondiente al protocolo syslog. • System: Configuración del sistema en general.  Settings: Posibilidad de ajustar la hora, la fecha, el idioma, etc.  Backup: Realiza una copia de seguridad de todas los archivos de configuración (existentes en /etc) y de las variables de entorno. Permite cargar una copia salvada anteriormente. • Network: Permite configurar la red. 50  WAN-LAN: Permite configurar el puerto WAN (Wide Area Network) y su relación con la red local LAN (Local Area Network), así como la IP que tiene el encaminador dentro de esta red.  VLAN: Permite añadir, editar, y borrar redes de área local virtuales.  Firewall: Permite añadir, modificar, y borrar las reglas del cortafuegos, consiguiendo de esta manera filtrar paquetes o incluso redireccionar paquetes a otras máquinas dependiendo de la dirección IP de origen, puerto, dirección IP destino, etc.  DHCP: aquí se puede configurar el servidor DHCP y a que redes va a servir direcciones.  Dnsmasq: configuración extendida del servidor DHCP.  Hosts: Permite añadir, modificar y borrar los nombres de dominio conocidos y su dirección IP equivalente.  Tweaks: Configuración avanzada de la red: Tamaño de los paquetes, número máximo de conexiones, etc. • Reboot: Desde aquí se puede reiniciar el dispositivo (se perderán todos los cambios). En el formulario el nombre de cada pestaña aparece en color morado, seguido se sitúan tres botones de opciones mutuamente excluyentes y a continuación un cuadro con todas las sub-pestañas ofrecidas por defecto. Para cada pestaña se puede señalar: • Selección manual: si se elige esta opción la pestaña correspondiente será visible con las sub-pestañas que se seleccionen manualmente con el botón Activar/Desactivar. • Deseleccionar todas: no aparecerá ni la pestaña correspondiente ni las consiguientes sub-pestañas. • Seleccionar todas: si se elige esta opción aparecerán todas las pestañas y subpestañas ofrecidas por defecto en la interfaz. 51 Ilustración D.3: Vista selección de pestañas interfaz web de usuario Posteriormente, en esta misma sección, aparece en el formulario un campo de texto para introducir pequeños comentarios acerca de la práctica a desarrollar, texto que se mostrará en una nueva pestaña de la interfaz de usuario (alumno) llamada Práctica. Ilustración D.4: Campo de texto para introducir comentarios de la práctica Adicionalmente, se puede adjuntar un archivo de texto con el formato explicado en el anexo E para que aparezca una nueva pestaña denominada Nueva. Para ello pulsar Browse y buscar el archivo en la carpeta correspondiente. 52 Ilustración D.5: Campo para añadir una nueva pestaña En la segunda parte del formulario, se puede configurar la composición de los puertos a la hora de trabajar con VLANs. En primer lugar, como se puede ver en la siguiente ilustración, comentar que existen cuatro puertos LAN (1, 2, 3 y 4), un puerto WAN (0) y un puerto interno (5). Existen dos VLANs por defecto (vlan0 y vlan1), por lo que existen amplias posibilidades de configuración según la distribución de los puertos [29]. Ilustración D.6: Distribución de puertos encaminador Linksys WRT54GL En el formulario basta con introducir la distribución deseada en el campo texto (sin espacios) como se muestra en la siguiente ilustración, o no modificar nada si se elige la que tiene el firmware por defecto. Los números de los puertos son los correspondientes a la ilustración anterior y adicionalmente se puede incluir los siguientes parámetros a continuación del número de puerto: • '*': si los puertos están en múltiples VLANs, paquetes sin etiquetar se añadirán a esta VLAN. • 't': puerto tagged; los paquetes serán etiquetados (por defecto puerto 5). • 'u': puerto untagged; los paquetes no serán etiquetados. Ilustración D.7: Campo para modificar la composición de las VLANs 53 Una vez finalizado el formulario, pulsar el botón Enviar y aparece un mensaje en pantalla avisando de que el envío de datos al servidor se ha realizado correctamente, y adicionalmente, si se ha adjuntado un archivo, que éste se ha cargado correctamente. Si ha habido algún error en estas dos operaciones también se muestra por pantalla. Si por el contrario se desee empezar de nuevo, pulsar el botón Restablecer. Finalmente, el servidor ejecuta configurar.php de una manera transparente al usuario y un script.sh es creado en la carpeta /var/www/html del servidor con los comandos necesarios para la configuración del encaminador según los datos introducidos y seleccionados en el formulario. D.3. Selección script Linksys Al hacer clic para acceder a dicha interfaz lo primero es autentificarse con nombre de usuario y contraseña (root/PacoRedes1). A continuación, aparecen en pantalla enumerados todos los scripts almacenados en el servidor en la carpeta /var/www/html. Ilustración D.8: Interfaz de elección del script a utilizar como script.sh Basta con seleccionar aquél que se desee utilizar para la configuración de los encaminadores Linksys con un simple clic y automáticamente cambiará de nombre a script.sh conservando siempre el archivo y nombre original. Aparece un mensaje por pantalla confirmando que el cambio se ha realizado correctamente. D.4. Configuración router X Linksys WRT54GL Al hacer clic para acceder a dicha interfaz lo primero es autentificarse con nombre de usuario y contraseña (root/PacoRedes1). Adicionalmente, los usuarios (alumnos) también 54 pueden autentificarse (usuario/usuario) entrando a una interfaz web configurada por el formulario anterior o sin modificar (por defecto) sino se ha creado ningún script. Esta interfaz (http://@IP_encaminadorX , donde @IP_encaminador1 es 192.168.1.144, @IP_encaminador2 es 192.168.1.145, @IP_encaminador3 es 192.168.1.146, @IP_encaminador4 es 192.168.1.147, @IP_encaminador5 es 192.168.0.101, @IP_encaminador6 es 192.168.0.102, @IP_encaminador7 es 192.168.0.103, @IP_encaminador8 es 192.168.0.104) es útil si se requiere hacer cambios específicos durante una sesión de prácticas sin necesidad de reiniciar el dispositivo. A continuación se explican brevemente las pestañas y sub-pestañas más importantes de la misma, hacer modificaciones en la configuración del dispositivo será seleccionar o modificar los campos correspondientes. Para más detalle consultar la documentación de OpenWrt web interface (Webif): • Info: Información sobre el dispositivo.  Status: Muestra información general sobre el dispositivo, la versión del kernel, del firmware y del interfaz web.  About: Muestra información sobre los desarrolladores de OpenWrt. • Graphs: Muestra gráficas en tiempo real sobre la carga del sistema y el tráfico de los distintos interfaces del dispositivo. • Status: Muestra información sobre procesos, carga, conexiones, etc.  System: Información sobre los recursos disponibles del dispositivo, espacio ocupado/libre, porcentaje de uso de la RAM, etc.  Interfaces: Información sobre la red LAN, WAN, y WLAN: Direcciones MAC, servidores DNS, paquetes transmitidos, recibidos, etc.  DHCP Clients: En caso de que el servidor DHCP del encaminador este habilitado, aquí se puede encontrar los clientes que han pedido y se les ha asignado una dirección IP, así como el tiempo restante hasta la renovación de la misma.  Netstat: Muestra un listado de las conexiones activas de un ordenador, tanto entrantes como salientes. La información que resulta del uso del comando incluye el protocolo en uso, las direcciones IP tanto locales como remotas, los puertos locales y remotos utilizados y el estado de la conexión.  Diagnostics: Permite ejecutar las herramientas ping y traceroute para evaluar el estado de la red. • Syslog: Configuración del estándar para el envío de mensajes de registro.  Syslog settings: Permite configurar los parámetros del protocolo Syslog.  Syslog: Muestra los mensajes prefijados del protocolo Syslog.  Firewall log view: Permite añadir y listar las direcciones IP del cortafuegos correspondiente al protocolo syslog. • System: Configuración del sistema en general. 55  Settings: Posibilidad de ajustar la hora, la fecha, el idioma, etc.  Cron: permite habilitar/deshabilitar el servicio de planificar la ejecución de comandos usando cron4.  Crontabs: Muestra la ruta donde se guardan los archivos que contienen las listas de tareas y otras instrucciones planificadas para ser ejecutadas por el servicio cron.  NVRAM: Significa No Volatile RAM. Es la memoria flash que almacena las variables de entorno usadas por el firmware. Contiene, entre otras variables, la dirección MAC, IP, la configuración de las VLANs, etc. Permite escribir los cambios permanentemente en el dispositivo. Si no se activa el escribir permanentemente, los cambios permanecen en memoria RAM, y cuando se reinicie el dispositivo, volverán a tener el valor original. Hay que tener en cuenta que volver a flashear el dispositivo no modifica el contenido de la NVRAM, por lo tanto hay que tener un cuidado especial cuando se realizan cambios permanentes en la NVRAM.  File editor: es un editor de archivos vía web. Permite navegar por los directorios y editar los archivos que no sean binarios.  Password: permite cambiar la contraseña de administrador temporalmente, ya que al reiniciar volverá la contraseña original. Para cambiar la contraseña original, es necesario realizar el cambio en el código fuente.  Packages: permite instalar paquetes temporalmente bien indicando su fuente manualmente o eligiendo el paquete a instalar desde una lista de repositorios oficiales. Permite añadir más repositorios.  Backup: Realiza una copia de seguridad de todas los archivos de configuración (existentes en /etc) y de las variables de entorno. Permite cargar una copia salvada anteriormente.  Upgrade: Permite instalar otro firmware en el dispositivo seleccionando previamente la imagen a cargar. Este proceso ha de ser ejecutado con cuidado, puesto que si en el proceso de carga del nuevo firmware, se produce cualquier tipo de error, como una pérdida de conexión por ejemplo, hará que el dispositivo se vuelva irrecuperable, ya que no podrá volver a reiniciar. Se recomienda encarecidamente evitar actualizar el firmware vía wireless, ya que la tasa de error es mucho mayor que la conexión por cable Ethernet. Se recomienda activar la casilla “Turn Boot Wait ON” ya que esto hará que el dispositivo espere 5 segundos cuando inicia por si recibe un firmware vía TFTP. Es útil para intentar recuperar el encaminador en el que no podamos acceder a él. • Network: Permite configurar la red.  WAN-LAN: Permite configurar el puerto WAN (Wide Area Network) y su relación con la red local LAN (Local Area Network), así como la IP que tiene el encaminador dentro de esta red.  VLAN: Permite añadir, editar, y borrar redes de área local virtuales. 56  Firewall: Permite añadir, modificar, y borrar las reglas del cortafuegos, consiguiendo de esta manera filtrar paquetes o incluso redireccionar paquetes a otras máquinas dependiendo de la dirección IP de origen, puerto, dirección IP destino, etc.  DHCP: aquí se puede configurar el servidor DHCP y a que redes va a servir direcciones.  Dnsmasq: configuración extendida del servidor DHCP.  Hosts: Permite añadir, modificar y borrar los nombres de dominio conocidos y su dirección IP equivalente.  Tweaks: Configuración avanzada de la red: Tamaño de los paquetes, número máximo de conexiones, etc. • Reboot: Desde aquí se puede reiniciar el dispositivo. Se perderán todos los cambios. Para guardar una configuración usar la herramienta de backup de la pestaña System. Ilustración D.9: Vista del menú de configuración web del administrador Estas modificaciones se perderán al reiniciar el dispositivo, a no ser que se pulsen los botones de Save changes y Apply changes en la parte inferior derecha de la interfaz web para que sean permanentes. Por último comentar que si por cualquier razón se requiere configurar mediante un script un solo encaminador en lugar de hacerse vía interfaz, en el anexo E se dan los detalles 57 para diseñar a mano este sencillo script, teniendo en cuenta que sólo el citado encaminador podrá ser reiniciado al mismo tiempo para completar correctamente la carga del script. D.5. Configuración unidad de distribución de alimentación AP7922 Al hacer clic para acceder a dicha interfaz lo primero es autentificarse con nombre de usuario y contraseña (root/PacoRedes1). Adicionalmente, los usuarios (alumnos) también pueden autentificarse (usuario/usuario) accediendo a la misma interfaz pero con permiso de sólo lectura. Antes, como esta interfaz funciona con el protocolo HTTPS (https://@IP_PDU , donde @IP_PDU es 192.168.0.223) si esta configuración se realiza fuera del servidor desde cualquier ordenador con según qué tipo de navegador web, es necesario crear excepción de seguridad sino ha sido creada y guardada con anterioridad, por ejemplo en Mozilla Firefox: • Aparece una ventana como la siguiente, hacer clic en O puede añadir una excepción... Ilustración D.10: Paso 1 para crear excepción de seguridad • A continuación hacer clic en el botón Añadir excepción... para instalar el certificado necesario: Ilustración D.11: Paso 2 para crear excepción de seguridad • Después de esto aparecerá la ventana Añadir una excepción de seguridad, hacer clic en el botón Obtener Certificado. 64 • Hacer clic en System → File Management → File Upload en la interfaz de usuario. En la página File Upload seleccionar y completar los campos siguientes:  Configuration Upload: se carga el archivo de configuración al servidor. Seleccionar este campo y se atenúan los campos de Firmware Upload. En la parte derecha seleccionar el protocolo a usar para este almacenamiento de fichero en el servidor.  Upload vía TFTP: si se selecciona esta opción la carga en el servidor se hará mediante este protocolo, completar los campos TFTP Server IP Address con la dirección del servidor, Destination File Name con la ruta del archivo de configuración en el que se carga el archivo y Transfer File Name con el archivo del dispositivo en el que se va a cargar la configuración (Running configuration).  Upload vía HTTP: con esta opción la carga del archivo puede hacerse al servidor o al mismo ordenador del laboratorio desde el que estemos accediendo vía HTTP. Basta con indicar en el campo Transfer File Name el nombre del archivo del dispositivo (Running configuration) a almacenar en el servidor o en el ordenador desde el que se está accediendo. • Hacer clic en Apply Changes. Se transfiere el archivo especificado a la carpeta indicada del servidor o del ordenador de la sala por el protocolo seleccionado. Ilustración D.19: Vista del menú File Upload de la interfaz de usuario del switch Por último se explica cómo cargar una configuración guardada previamente en el servidor, en un ordenador del laboratorio o en el propio conmutador, para que el dispositivo se configure adecuadamente. En primer lugar se detallan los pasos a seguir si la configuración está almacenada en el servidor o en un ordenador de la sala. Para ello se necesita descargarla del mismo: 65 • Hacer clic en System → File Management → File Download en la interfaz de usuario. En la página File Download from Server seleccionar y completar los campos siguientes:  Configuration Download: se descarga el archivo de configuración desde el servidor. Seleccionar este campo y se atenúan los campos de Firmware Download. En la parte derecha seleccionar el protocolo a usar para esta descarga.  Download vía TFTP: si se selecciona esta opción la descarga de la configuración en el conmutador se hará mediante este protocolo, completar los campos Server IP Address con la dirección del servidor, Source File Name con el nombre del archivo a descargar y Destination File con el tipo de archivo de destino en el que se va a descargar el archivo (Running configuration).  Download vía HTTP: con esta opción la carga del archivo puede hacerse desde el servidor o desde el mismo ordenador de la sala desde el que estemos accediendo vía HTTP. Aparecen dos campos, Source File y Destination File. En el primero seleccionar la ruta del fichero pulsando el botón Browse y en el segundo indicar que la carga del fichero se realice a la configuración actual (Running configuration). • Hacer clic en Apply Changes. Se carga el archivo especificado del servidor con la configuración deseada en el conmutador. Es necesario reiniciar el dispositivo. Ilustración D.20: Vista del menú File Download de la interfaz de usuario del switch Si por el contrario el fichero de configuración está almacenado en el propio conmutador, la carga de dicha configuración se debe realizar mediante la opción del menú de la interfaz de usuario Copy Files: • Hacer clic en System → File Management → Copy Files en la interfaz de usuario. En la página Copy Files seleccionar y completar los campos siguientes:  Copy Configuration 66  Source: Indica el tipo de archivo que va a copiarse en el archivo de destino. Seleccionar el archivo almacenado previamente que se desee cargar.  Destination: Indica el archivo de configuración de destino en el que se va a copiar el archivo de origen (Running Configuration). • Hacer clic en Apply Changes. Se carga el archivo seleccionado a la configuración actual. D.7. Test de conexiones Al hacer clic para acceder a dicha interfaz lo primero es autentificarse con nombre de usuario y contraseña (root/PacoRedes1). Automáticamente se ejecuta el programa PHP correspondiente, informando por pantalla al usuario del estado de todos los dispositivos del laboratorio (ACTIVO en color verde, CAÍDO en color rojo). Ilustración D.21: Vista de la pantalla resultado tras ejecutar el test de conexiones 67 ANEXO E. DETALLES DE CONFIGURACIÓN E IMPLEMENTACIÓN Con el objetivo de facilitar una futura ampliación de los dispositivos del laboratorio o de las interfaces de usuario por parte de un programador completamente ajeno a este proyecto se ha escrito este manual. En él se describen de una manera técnica las principales instalaciones o modificaciones llevadas a cabo en cada uno de los dispositivos, así como los cambios que habrá que realizar en él código para extender o redefinir las funcionalidades de la interfaz de usuario en los puntos que se prevén más probables. E.1. Servidor Dell PowerEdge 860 Para instalar centOS 5 como sistema operativo mediante el DVD de instalación, tiene el pequeño inconveniente de necesitarse una unidad externa de DVD vía USB porque el servidor sólo posee lector de CD. La instalación de todos los protocolos o aplicaciones necesarias en el servidor se han llevado a cabo desde el repositorio oficial de CentOS, Yum, al que se le añadido paquetes RPMforge. Se expone un pequeño resumen de su gestión para posteriores actualizaciones o instalaciones: • Actualización del sistema con todas las dependencias que sean necesarias: yum update • Realizar una búsqueda de algún paquete o término en la base de datos en alguno de los depósitos configurados en el sistema: yum search cualquier_paquete • Consultar la información contenida en un paquete en particular: yum info cualquier_paquete • Instalación de paquetería con resolución automática de dependencias: yum install cualquier_paquete • Desinstalación de paquetes junto con todo aquello que dependa de los mismos: yum remove cualquier_paquete • Listar todos los paquetes disponibles en la base de datos yum y que pueden instalarse: yum list available | less • Lo siguiente lista todos los paquetes instalados en el sistema: yum list installed | less • Lo siguiente listará todos los paquetes instalados en el sistema y que pueden (y deben) actualizarse: yum list updates | less • Yum proporciona como resultado de su uso cabeceras y paquetes RPM almacenados en el interior del directorio localizado en la ruta /var/cache/yum/. Particularmente los paquetes RPM que se han instalado pueden ocupar mucho espacio y, es por tal motivo, que conviene eliminarlos una vez que ya no tienen utilidad. Igualmente conviene hacer lo mismo con las cabeceras viejas de paquetes que ya no se encuentran en la base de datos. A fin de realizar la limpieza correspondiente, puede ejecutarse lo siguiente: yum clean all Comentar que la mayoría de la configuración del servidor se realiza a través de servicios y demonios (dhcpd, httpd, sshd…) por lo que se expone una pequeña guía de utilización: • Para iniciar: service nombre_servicio start 68 • Para reiniciar: service nombre_servicio restart • Para detener el servicio: service nombre_servicio stop • Si el servicio ya está trabajando, también se puede utilizar reload a fin de que vuelva a leer y cargar la configuración sin interrumpir el servicio, y, por ende, las conexiones establecidas: service nombre_servicio reload • Para añadir el servicio al arranque del sistema en todos los niveles de corrida: chkconfig nombre_servicio on Si es necesario modificar cualquier fichero, una vez realizada una conexión gráfica remota al servidor, ejecutar el editor de textos libre gedit. Así mismo, es posible navegar por las diferentes carpetas y ficheros ejecutando nautilus&. Ilustración E.1: Vista del administrador de archivos Nautilus Con esto, el modificar los parámetros de red generales es editar los ficheros: • /etc/hosts: Este archivo asocia las direcciones IP con el nombre del equipo (hostname). En este fichero se encuentra la dirección de loopback (127.0.0.1). • /etc/sysconfig/network: Este archivo de configuración es utilizado para definir las características de red deseadas. • /etc/resolv.conf: Este archivo especifica las direcciones IP de los servidores DNS. • /etc/sysconfig/network-scripts/ifcfg-[nombre_interfaz]: Estos archivos de configuración son utilizados para especificar la configuración de la tarjeta de red. A continuación se detalla la estructura de este último por posibles modificaciones:  DEVICE: Define el nombre del dispositivo físico. 69  BOOTPROTO:  None: No utiliza ningún protocolo de arranque.  Static: Se define de forma manual los parámetros de red.  Dhcp: Obtiene los parámetros de red por medio de un servidor de DHCP.  IPADDR: Define la dirección IP asignada a ese dispositivo.  NETMASK: Define la máscara de red.  NETWORK: Define el segmento de red.  HWADDR: Define la dirección MAC del dispositivo de red.  GATEWAY: Define la Dirección IP del Gateway en la red.  ONBOOT: Establece si el dispositivo debe activarse con los servicios de red. A continuación se explica con detalle las modificaciones de los ficheros de configuración de los servicios instalados. Comenzamos con el servicio DHCP (demonio dhcpd). El primer paso para configurar el servidor de DHCP será editar el fichero etc/dhcp.conf al cual se le añade la información de la red del laboratorio. El archivo de configuración puede contener tabulaciones o líneas en blanco adicionales para facilitar el formato. Las palabras clave no distinguen entre mayúsculas y minúsculas. Las líneas que empiezan con el símbolo numeral (#) se consideran comentarios. Los parámetros de configuración son: • Subnet: Segmento de subred sobre el cual actúa el DHCP. • Netmask: Máscara de red de la subred. • Option routers: Parámetro que especifica mediante IP la ubicación del router. • Option subnet-mask: Máscara de red de la subred. • Option domain-name: Parámetro que describe el nombre del dominio. • Option domain-name-servers: Parámetro que especifica mediante IP la ubicación del servidor DNS. • Asignación manual de cada dispositivo: host nombre_dispositivo { hardware Ethernet @MAC_dispositivo; fixed-address @IP_a_asignar; } Adicionalmente, como se requiere que este servidor sólo actúe en las interfaces locales del servidor, se edita el fichero /etc/sysconfig/dhcpd y se agrega como argumento del parámetro DHCPDARGS el valor de las interfaces que corresponda. DHCPDARGS=”eth1 eth2” Otro de los servicios es Apache con su complemento PHP. El fichero de configuración se encuentra en /etc/httpd/conf/httpd.conf y está compuesto por un gran número de secciones, es por ello que solo se describen las más relevantes del mismo. • User paco: Esta directiva especifica qué usuario es el que ejecuta los procesos del servidor web y en consecuencia los permisos de lectura y escritura que se aplican sobre los recursos. Es importante no poner al usuario root por motivos de seguridad. 70 • DocumentRoot "/var/www/html": Esta directiva indica al servidor web la ruta en donde se encuentran almacenados los ficheros web. • Allow from 155.210.0.0/16 192.168.0.0/16 127.0.0.1: La directiva Allow indica al sistema los equipos que tienen permiso de acceso, permitiendo el acceso desde el laboratorio y cualquier ordenador de la red Unizar. CentOS 5 incluye SELinux que añade seguridad adicional a Apache, sin embargo algunas opciones impedirán utilizar ciertas funciones en Apache, como directorios virtuales. Se ejecuta system-config-securitylevel desde el modo gráfico y se activa la casilla Disable SELinux Protection for httpd daemon. Ilustración E.2: Vista de la ventana para desactivar SELinux El siguiente servicio comentado es OpenSSH con sus versiones OpenSSH-server y OpenSSH-clients. La ubicación de los ficheros de configuración referentes al servidor OpenSSH se encuentran en la siguiente ruta: /etc/ssh/. Dentro del directorio podemos encontrar los siguientes ficheros de configuración: • moduli: Contiene grupos Diffie-Hellman usados para el intercambio de la clave Diffie- Hellman que es imprescindible para la construcción de una capa de transporte seguro.. • ssh_config: El archivo de configuración del sistema cliente SSH por defecto. • sshd_config: El archivo de configuración para el demonio sshd. A continuación se analizarán algunos de los parámetros a configurar:  Parámetro Port: SSH trabaja a través del puerto 22 por TCP: Port 22  Parámetro ListenAddress: El servicio de SSH responderá peticiones a través de todas las interfaces del sistema: ListenAdress yes  Parámetro PermitRootLogin: Establece que se va a permitir el acceso directo del usuario root al servidor SSH: PermitRootLogin yes 71  Parámetro X11Forwarding: Establece que se permita la ejecución remota de aplicaciones gráficas: X11Forwarding yes • ssh_host_dsa_key: La clave privada DSA usada por el demonio sshd. • ssh_host_dsa_key.pub: La clave pública DSA usada por el demonio sshd. • ssh_host_key: La clave privada RSA usada por el demonio sshd para la versión 1 del protocolo SSH. • ssh_host_key.pub: La clave pública RSA usada por el demonio sshd para la versión 1 del protocolo SSH. • ssh_host_rsa_key: La clave privada RSA usada por el demonio sshd para la versión 2 del protocolo SSH. • ssh_host_rsa_key.pub: La clave pública RSA usada por el demonio sshd para la versión 2 del protocolo SSH. La ubicación de los ficheros de configuración referentes al cliente OpenSSH se encuentran en la siguiente ruta: /home/paco/. Dentro del directorio podemos encontrar los siguientes ficheros de configuración: • authorized_keys: Este archivo contiene una lista de claves públicas autorizadas. Cuando un cliente se conecta al servidor, el servidor autentica al cliente chequeando su clave pública firmada almacenada dentro de este archivo. • id_dsa: Contiene la clave privada DSA del usuario. • id_dsa.pub: La clave pública DSA del usuario. • id_rsa: La clave RSA privada usada para la versión 2 del protocolo SSH. • id_rsa.pub: La clave pública RSA usada para la versión 2 del protocolo SSH. • Identity: La clave privada RSA usada para la versión 1 del protocolo SSH. • identity.pub: La clave pública RSA usada para la versión 1 del protocolo SSH. • known_hosts Este archivo contiene las claves de host DSA de los servidores SSH a los cuales el usuario ha accedido. Este archivo es muy importante para asegurar que el cliente SSH está conectado al servidor SSH correcto. La primera vez que se usa SSH en una máquina remota, aparecerá el siguiente mensaje advirtiendo de que no se puede comprobar la autenticidad del servidor y preguntando si se acepta continuar la sesión a pesar de dicha circunstancia: The authenticity of host 'example.net' can't be established. DSA key fingerprint is 94:68:3a:3a:bc:f3:9a:9b:01:5d:b3:07:38:e2:11:0c. Are you sure you want to continue connecting (yes/no)? Se debe pulsar yes para continuar. Con esto se ha añadido a la lista de hosts conocidos del servidor la nueva máquina (home/paco/known_hosts) mostrándose el siguiente mensaje: Warning: Permanently added 'example.net' (RSA) to the list of known hosts. El siguiente servicio comentado es el protocolo TFTP. El fichero de configuración se encuentra en /etc/xinetd.d/tftp. Destacar la obligación de activarlo manualmente tras su instalación porque está desactivado por defecto: disable = no 72 Por último se comenta el demonio apcupsd. En primer lugar hay que montar una unidad USB en nuestro servidor, y después modificar los siguientes parámetros en el fichero de configuración /etc/apcupsd/apcupsd.conf: • UPSCABLE usb: define el tipo de cable utilizado en la conexión • UPSTYPE usb: tipo de conexión en el SAI • DEVICE /dev/usb/hid/hiddev[0-15]: ruta de las unidades USB montadas en el servidor. Ejecutar desde la línea de comandos apcaccess, y aparece el estado del SAI (STATUS), y el tiempo que puede dar corriente eléctrica a través de sus baterías a los dispositivos conectados en caso de fallo (TIMELEFT) entre otras informaciones. Ilustración E.3: Vista de la información general del SAI E.2. Switches Dell PowerConnect 3424 (conmutadores) El dispositivo dispone de un puerto de consola que permite la conexión con un sistema de escritorio que ejecute software de emulación de terminal configurar por primera vez el dispositivo. Este conector de puerto de consola es un conector DB-9 macho instalado como un conector de equipo terminal de datos (DTE). Para conectar un terminal al puerto de la consola del dispositivo: • Conectar el cable cruzado RS-232 al terminal que está ejecutando el software de emulación. El puerto de consola del switch se encuentra en el panel posterior por lo que se necesita abrir el armario por la puerta trasera. • Seleccionar el puerto serie apropiado (puerto serie 1 o puerto serie 2) para conectar a la consola. 73 • Establecer la velocidad de datos en 9600 baudios. • Establecer el formato de datos en 8 bits de datos, 1 bit de parada y sin paridad. Así mismo, establezca el control de flujo en ninguno. • Pulsar Intro y entrar en el modo de comandos. Al conectarse de esta forma se inicia la interfaz de la línea de comandos (CLI), a la que también se puede acceder una vez configurado su acceso vía SSH, que se divide en tres modos de comandos: • Modo User EXEC: Se activa después de iniciar sesión en el dispositivo La petición del nivel de usuario consta del nombre host seguido del paréntesis angular (>). Los comandos de este modo permiten establecer conexión con los dispositivos remotos, modificar temporalmente la configuración del terminal, realizar pruebas básicas y enumerar la información del sistema. • Modo Privileged EXEC: Para acceder a este modo escribir enable en la línea de comandos y pulsar Intro. A continuación introducir la contraseña y volver a pulsar Intro. La línea de comandos del modo Privileged EXEC consta del nombre de host del dispositivo seguido del símbolo de almohadilla (#). Para volver del modo Privileged EXEC al modo User EXEC, escribir disable y pulsar Intro o utilizar el comando exit. • Modo Global Configuration: Los comandos de este modo se aplican a las características del sistema en vez de a una interfaz o un protocolo específico. Para acceder al modo Global Configuration, en la línea de comandos del modo Privileged EXEC, escribir el comando configure y pulsar Intro. El modo Global Configuration consta del nombre de host del dispositivo seguido de (config) y el símbolo de almohadilla (#). Para volver del modo Global Configuration al modo Privileged EXEC, escribir el comando exit o utilizar la combinación de teclas Ctrl+Z. La seguridad del sistema se gestiona mediante el mecanismo de autenticación, autorización y administración de cuentas (AAA), que administra los derechos de acceso, los privilegios y los métodos de administración de los usuarios. El sistema se entrega sin una contraseña predeterminada configurada: todas las contraseñas las definen los usuarios. Si se pierde una contraseña definida por el usuario, puede ejecutarse un procedimiento de recuperación de contraseña desde el menú Inicio a través de la conexión vía cable de serie. • Para configurar una contraseña inicial de terminal, escribir los comandos siguientes: console(config)# aaa authentication login default line console(config)# aaa authentication enable default line console(config)# line console console(config-line)# login authentication default console(config-line)# enable authentication default console(config-line)# password user • Para configurar una contraseña inicial de SSH y trabajar desde el servidor, escribir los comandos siguientes: console(config)# aaa authentication login default line console(config)# aaa authentication enable default line console(config)# line ssh 80 <input type="text" name="vlan0ports" id="vlan0ports" class="texto" value="32105*" onfocus="if(this.value=='32105*')this.value=''" /> Una vez complementado el formulario es enviado y procesado por otro programa PHP encargado de crear el script correspondiente. Si se requiere que el script generado tenga otro nombre o se almacene en otra ruta modificar las siguientes líneas de código: $archivo = "script.sh"; // el nombre de archivo $ruta = "$archivo"; //ruta donde guardamos el archivo El resto del código va dirigido a comprobar los valores introducidos por el usuario en el formulario para generar las diferentes líneas del script. Por ejemplo, en esta caso concreto se comprueba si el usuario ha elegido deseleccionar todas las sub-pestañas del menú Network, de ser así busca la pestaña correspondiente en el archivo categorías del encaminador Linksys, la cual almacena toda lista de pestañas, y la elimina. if ($_POST[Network] == 0) { //deseleccionar todas fwrite ($fd,'sed "/Network/d" /www/cgi-bin/test/.categories > /www/cgibin/test/.categoriesAux' . "\n"); fwrite ($fd,"mv /www/cgi-bin/test/.categoriesAux /www/cgi-bin/test/.categories \n"); } E.5.3. Selección script Linksys (renombra_scripts_Linksys.php y renombra.php) Si se desea cambiar el directorio a mostrar por pantalla introducir la ruta elegida en la variable $path: $path = "/var/www/html"; Del mismo modo, se puede modificar el código para que el tipo de ficheros a mostrar por pantalla sean de varias extensiones además de .sh en la siguiente línea: if ($file != "." && $file != ".." && strops ($file, '.sh',1)) { E.5.4. Test de conexiones (test_cableado.php) Si se amplían los dispositivos del laboratorio L1.02 bastaría con añadir el número de máquinas nuevas a las existentes en la siguiente variable $NumMaquinas y adicionalmente poner su dirección IP y su comentario en los siguientes registros, poniendo como índice el correspondiente de la lista de máquinas existente. $Maquinas[i]="@IP_nuevoDispositivo"; $aux[i]="(comentario)"; Adicionalmente, se puede actuar de la misma manera con los puertos, añadiendo el número de puertos nuevos a la variable $NumPuertos=1; y colocando en una variable registro con su índice correspondiente el tipo de puerto a testear. $Puertos[i]=NumPuerto; 81 ÍNDICE DE ILUSTRACIONES Ilustración 2.1: Parte superior armario rack laboratorio L1.02 .................................................... 16 Ilustración 2.2: Parte inferior armario rack laboratorio L1.02 ...................................................... 16 Ilustración 2.3: Vista de frente Servidor Dell PowerEdge 860 .................................................... 17 Ilustración 2.4: Vista de frente conmutador Dell PowerConnect 3424........................................ 18 Ilustración 2.5: Vista de frente Unidad de distribución de alimentación APC AP7922 ............... 19 Ilustración 2.6: Vista posterior router Linksys WRT54GL ........................................................... 20 Ilustración 2.7: Vista de frente Sistema de alimentación ininterrumpida Back-UPS RS 800 ..... 22 Ilustración 2.8: Flujo de la información automatización .............................................................. 22 Ilustración 2.9: Interfaz de usuario inicial .................................................................................... 23 Ilustración 2.10: Ejemplo acceso a configuración restringido ..................................................... 23 Ilustración 2.11: Visión general de la estructura de las interfaces de usuario ............................ 24 Ilustración 2.12: Vista del administrador de archivos Nautilus .................................................... 25 Ilustración 2.13: Interfaz de usuario configuración script Linksys WRT54GL ............................. 26 Ilustración 2.14: Interfaz de usuario selección script.sh ............................................................. 27 Ilustración 2.15: Interfaz de usuario configuración Linksys WRT54GL ...................................... 28 Ilustración 2.16: Interfaz de configuración unidad de distribución de alimentación AP7922 ...... 29 Ilustración 2.17: Interfaz de usuario configuración Switch Dell PowerConnect 3424 ................. 30 Ilustración 2.18: Interfaz resultado tras ejecutar test de conexiones .......................................... 30 Ilustración 2.19: Ejecución botón derecho para acceso configuración switches ........................ 31 Ilustración 2.20: Mensaje de error al conectarse con los router Linksys vía SSH ...................... 32 Ilustración 2.21: Pantalla modificación métrica ........................................................................... 33 Ilustración A.1: Diagrama de Gantt de la planificación inicial ..................................................... 36 Ilustración A.2: Diagrama Gantt de los tiempos reales ............................................................... 37 Ilustración C.1: Esquema general laboratorio L1.02 ................................................................... 42 Ilustración C.2: Conexiones físicas entre dispositivos ................................................................ 43 82 Ilustración C.3: Conexiones físicas conmutadores ..................................................................... 44 Ilustración C.4: Conexiones físicas PDU .................................................................................... 45 Ilustración D.1: Permitir conexión gráfica remota con el servidor ............................................... 47 Ilustración D.2: Vista de la interfaz de usuario inicial .................................................................. 48 Ilustración D.3: Vista selección de pestañas interfaz web de usuario ........................................ 51 Ilustración D.4: Campo de texto para introducir comentarios de la práctica .............................. 51 Ilustración D.5: Campo para añadir una nueva pestaña ............................................................. 52 Ilustración D.6: Distribución de puertos encaminador Linksys WRT54GL ................................. 52 Ilustración D.7: Campo para modificar la composición de las VLANs ........................................ 52 Ilustración D.8: Interfaz de elección del script a utilizar como script.sh ...................................... 53 Ilustración D.9: Vista del menú de configuración web del administrador.................................... 56 Ilustración D.10: Paso 1 para crear excepción de seguridad ..................................................... 57 Ilustración D.11: Paso 2 para crear excepción de seguridad ..................................................... 57 Ilustración D.12: Paso 3 para crear excepción de seguridad ..................................................... 58 Ilustración D.13: Paso 4 para crear excepción de seguridad ..................................................... 58 Ilustración D.14: Vista general de la interfaz de usuario de la PDU ........................................... 59 Ilustración D.15: Vista del proceso de carga de un fichero de configuración ............................. 60 Ilustración D.16: Mensaje advertencia por el uso de Mozilla Firefox .......................................... 60 Ilustración D.17: Vista general de la interfaz de usuario del switch ............................................ 61 Ilustración D.18: Vista del menú Copy Files de la interfaz de usuario del switch ....................... 63 Ilustración D.19: Vista del menú File Upload de la interfaz de usuario del switch ...................... 64 Ilustración D.20: Vista del menú File Download de la interfaz de usuario del switch ................. 65 Ilustración D.21: Vista de la pantalla resultado tras ejecutar el test de conexiones ................... 66 Ilustración E.1: Vista del administrador de archivos Nautilus ..................................................... 68 Ilustración E.2: Vista de la ventana para desactivar SELinux ..................................................... 70 Ilustración E.3: Vista de la información general del SAI ............................................................. 72 83 BIBLIOGRAFÍA [1] Sitio web oficial de OpenWrt: http://openwrt.org [2] Sitio web oficial de Dell: http://www.dell.es [3] Sitio web oficial de Linksys: http://www.linksysbycisco.com [4] Sitio web oficial de APC: http://www.apcc.com [5] Página principal de HTML: http://www.w3.org/html [6] Sitio web oficial de PHP: http://www.php.net [7] Página principal de HTTP: http://www.w3.org/Protocols [8] Estándar protocolo HTTPS - RFC 2818: http://tools.ietf.org/html/rfc2818 [9] Sitio web oficial de Apache: http://www.apache.org [10] Sitio web oficial de Mozilla Firefox: http://www.mozilla.org [11] Estándar protocolo TCP - RFC 793: http://tools.ietf.org/html/rfc793 [12] Estándar protocolo SSH - RFC 4819: http://tools.ietf.org/html/rfc4819 [13] Sitio web oficial de OpenSSH: http://www.openssh.org [14] Estándar protocolo FTP - RFC 959: http://tools.ietf.org/html/rfc959 [15] Estándar protocolo TFTP - RFC 1350: http://tools.ietf.org/html/rfc1350 [16] Estándar protocolo DHCP - RFC 2131: http://tools.ietf.org/html/rfc2131 [17] Sitio web oficial de CentOS: http://www.centos.org [18] Sitio web oficial de Windows: http://www.microsoft.com/windows [19] Sitio web oficial de Kompozer: http://www.kompozer.net [20] Sitio web oficial de Eclipse: http://www.eclipse.org [21] Sitio web oficial de PuTTY: http://www.putty.org [22] Sitio web oficial de Xming: http://www.straightrunning.com/XmingNotes [23] Sitio web oficial de Dia: http://live.gnome.org/Dia [24] Sitio web oficial de OpenOffice: http://www.openoffice.org [25] Sitio web oficial de Gantt Project: http://www.ganttproject.biz [26] Sitio web oficial de UPS APC Daemon: http://www.apcupsd.com [27] Sitio web oficial del repositorio RPMforge: http://www.rpmrepo.org/RPMforge [28] Sitio web oficial de la Real Academia Española: http://www.rae.es [29] VLANs Linksys WRT54GL: http://nuwiki.openwrt.org/oldwiki/openwrtdocs/networkinterfaces 84 [30] OpenWrt Webif: http://wiki.x-wrt.org/index.php/Programmer%27s_Guide_to_the_Webif [31] NVRAM: http://nuwiki.openwrt.org/oldwiki/openwrtdocs/whiterussian/configuration