UNIVERSIDAD AUTÓNOMA DE CIUDAD JUÁREZ

Instituto de Ingeniería y Tecnología Departamento de Ingeniería Eléctrica y Computación

SOLUCIÓN AUTOCONTENIDA PARA LAS FUNCIONES Y SERVICIOS REQUERIDOS POR LOS SITIOS DEL PROGRAMA MÉXICO CONECTADO

Reporte Técnico de Investigación presentado por: Alberto Torres Chávez 98018 Christian Eder Gastélum Reyes 118339

Requisito para la obtención del título de

INGENIERO EN SISTEMAS COMPUTACIONALES

Profesor Responsable: Dr. Ramón Parra Loera

Noviembre de 2014

i

ii

Declaración de Originalidad

Nosotros, Christian Eder Gastélum Reyes y Alberto Torres Chávez, declaramos que el material contenido en esta publicación fue generado con la revisión de los documentos que se mencionan en la sección de Referencias y que el Programa de Cómputo (software) desarrollado es original y no ha sido copiado de ninguna otra fuente, ni ha sido usado para obtener otro título o reconocimiento en otra Institución de Educación Superior.

Christian Eder Gastélum Reyes Alberto Torres Chávez

iii

Autorización de Impresión

Los abajo firmantes, miembros del comité evaluador autorizamos la impresión del proyecto de titulación

SOLUCIÓN AUTOCONTENIDA PARA LAS FUNCIONES Y SERVICIOS REQUERIDOS POR LOS SITIOS DEL PROGRAMA MÉXICO CONECTADO

Elaborado por los alumnos:

Alberto Torres Chávez 98018

Christian Eder Gastélum Reyes 118339

Fernando Estrada Ramón Parra Loera

iv

Índice de contenidos

Declaración de Originalidad ...... iii

Autorización de Impresión ...... iv

Índice de contenidos ...... v

Índice de Figuras ...... viii

Introducción ...... 1

Capítulo 1. Planteamiento del problema ...... 2

1.1 Antecedentes ...... 2

1.2 Definición del problema ...... 4

1.3 Objetivos de la investigación ...... 4

1.3.1 Objetivo General...... 4

1.3.2 Objetivos específicos ...... 5

1.4 Preguntas de investigación ...... 5

1.5 Justificación de la investigación ...... 5

1.6 Limitaciones y delimitaciones de la investigación ...... 6

Limitación ...... 6

Delimitaciones ...... 6

Capítulo 2. Marco Teórico...... 7

2.1 Virtualización ...... 7

2.1.1 Conceptos Básicos ...... 7

2.1.2 Ventajas ...... 8

2.1.3 Retos ...... 9

2.1.4 Tipos de virtualización ...... 9

2.1.5 XenServer ...... 12

2.2 Redes definidas por software ...... 16

2.2.1 VyOS ...... 17 v

2.3 Servicios adicionales ...... 17

2.3.1 Servidor de archivos ...... 17

2.3.2 Servidor web ...... 19

2.3.3 Telefonía de voz sobre IP ...... 19

Capítulo 3. Materiales y Métodos ...... 20

3.1 Descripción del área de estudio ...... 20

3.2 Materiales ...... 20

3.2.1 Hardware ...... 20

3.2.2 Software ...... 21

3.3 Métodos ...... 22

3.3.1 Periodo y lugar ...... 22

3.3.2 Metodología ...... 22

3.3.3 Metodología pruebas ...... 58

Capítulo 4. Resultados de la investigación ...... 72

4.1 Presentación de resultados ...... 72

4.1.1 Autoencendido ...... 72

4.1.2 Conectividad interna de la red ...... 72

4.1.3 Conectividad a Internet ...... 73

4.1.4 Acceso remoto ...... 74

4.1.5 Conexión a Red Privada Virtual ...... 76

4.1.6 Web caché y filtrado web ...... 76

4.1.7 Servidor de archivos ...... 78

4.1.8 Servidor web ...... 79

4.1.9 Telefonía de voz sobre IP (Asterisk)...... 80

4.2 Análisis e interpretación de resultados ...... 80

Capítulo 5. Discusiones, conclusiones y recomendaciones ...... 82

5.1 Con respecto a las preguntas de investigación ...... 82

vi

5.2 Con respecto al objetivo de la investigación ...... 84

5.3 Recomendaciones para futuras investigaciones ...... 85

ANEXO A ...... 86

Protocolo corto ...... 86

ANEXO B ...... 90

Instalación de XenServer ...... 90

Descarga de imagen ...... 90

Creación de la USB Booteable ...... 90

Ejecutar desde USB ...... 90

Instalación de XenServer ...... 91

ANEXO C ...... 93

Instalación de XenCenter ...... 93

ANEXO D ...... 94

Instalación de CentOS 7 ...... 94

ANEXO E ...... 97

Plan de contingencia ...... 97

ANEXO F ...... 99

Conexión de escritorio remoto ...... 99

Bibliografía ...... 101

vii

Índice de Figuras

Figura 2.1 Virtualización tipo 1 ...... 10 Figura 2.2 Virtualización tipo 2 ...... 10 Figura 2.3 Virtualización a nivel sistema operativo ...... 11 Figura 2.4 Descripción del funcionamiento de paravirtualización ...... 11 Figura 2.5 Arquitectura de Virtualización completa ...... 12 Figura 2.6 Arquitectura de Xenserver...... 13 Figura 2.7 Arquitectura de dispositivos de almacenamiento ...... 14 Figura 2.8 Interfaces de red virtuales ...... 15 Figura 2.9 Red privada dentro de XenServer ...... 15 Figura 2.10 Varios dominios (domU) conectados a diferentes redes utilizando interfaces de red virtuales y físicas...... 16 Figura 2.11 Arquitectura de redes definidas por software ...... 16 Figura 3.1 Configuración dentro de XenServer...... 23 Figura 3.2 Administración del poder dentro del BIOS ...... 24 Figura 3.3 Opciones de recuperación de energía ...... 24 Figura 3.4 Comando de autoinicio del POOL ...... 24 Figura 3.5 XenCenter ...... 25 Figura 3.6 Topología de red ...... 26 Figura 3.7 Funcionalidad de VyOS ...... 27 Figura 3.8 Selección de tipo de máquina virtual para VyOS ...... 27 Figura 3.9. Selección de la imagen de VyOS ...... 28 Figura 3.10. Selección de cantidad de recursos para VyOS ...... 28 Figura 3.11 Almacenamiento virtual para VyOS ...... 28 Figura 3.12 Interfaces de red para VyOS ...... 29 Figura 3.13 Inicio de sesión de VyOS ...... 29 Figura 3.14 Configuración de la VPN ...... 32 Figura 3.15 Configuración del túnel L2TP ...... 33 Figura 3.16 Configuración del web caché ...... 34 Figura 3.17 Configuración del ...... 37 Figura 3.18 Selección de plantilla de sistema operativo ...... 38 Figura 3.19 Repositorio de sistemas operativos que se encuentran dentro del prototipo38 Figura 3.20 Asignación de recursos a la máquina virtual ...... 39 Figura 3.21 Ventana de asignación de espacio de disco duro ...... 39 Figura 3.22 Resultados de instalación de Samba ...... 40 Figura 3.23 Configuración de archivo smb.conf ...... 40 Figura 3.24 Muestra los comando de nmb, smb y como se agrega un servicio al firewall ...... 41 Figura 3.25 Configuración de archivo ifcfg-eth0 ...... 42 Figura 3.26 UUID de Samba ...... 42 Figura 3.27 Comando para auto inicio de SAMBA ...... 43 Figura 3.28 Selección de plantilla de sistema operativo ...... 43 Figura 3.29. Muestra repositorio de imágenes de sistemas operativos ...... 44 Figura 3.30 Asignación de recursos a la máquina virtual ...... 44 Figura 3.31 Ventana de asignación de espacio de disco duro ...... 45 Figura 3.32 Comando utilizado para actualizar el sistema operativo ...... 45 Figura 3.33 Muestra el estatus del servicio Apache HTTP ...... 45

viii

Figura 3.34 Muestra el estatus del servicio MariaDB database server ...... 46 Figura 3.35 Instalación de MariaDB ...... 47 Figura 3.36 Muestra que la base de datos está correctamente instalada...... 48 Figura 3.37 Instancias instaladas por el comando yum install php php-mysql ...... 48 Figura 3.38 Comando utilizado para reiniciar Apache ...... 48 Figura 3.39 Comandos utilizados para agregar el script que muestra la información del servidor...... 48 Figura 3.40 Configuración de archivo ifcfg-eth0 ...... 49 Figura 3.41 UUID de webserver ...... 49 Figura 3.42 Comando para auto inicio ...... 49 Figura 3.43 Comandos utilizados para agregar servicios http(s) ...... 50 Figura 3.44 Configuración de página web ...... 50 Figura 3.45 Selección de plantilla de sistema operativo ...... 51 Figura 3.46 Repositorio de sistemas operativos que se encuentran en el prototipo ...... 52 Figura 3.47 Asignación de recursos a la máquina virtual ...... 52 Figura 3.48 Ventana de asignación de espacio de disco duro ...... 53 Figura 3.49 Comando utilizado para actualizar el sistema operativo ...... 53 Figura 3.50 Comandos utilizados para desactivar SELinux y reiniciar el sistema ...... 53 Figura 3.51 Software necesario para la instalación de Asterisk ...... 54 Figura 3.52 Archivos necesarios para el servicio Asterisk ...... 54 Figura 3.53 Descompresión de archivo de instalación de dahdi ...... 54 Figura 3.54 Muestra donde se encuentran los archivos de configuración y los archivos utilizados para instalarlo ...... 54 Figura 3.55 Descompresión de archivo de instalación de libpri ...... 54 Figura 3.56 Muestra donde se encuentran los archivos de configuración y los archivos utilizados para instalar el servicio ...... 54 Figura 3.57. Muestra el directorio donde se encuentran los archivos de configuración y los archivos utilizados para instalar el servicio ...... 55 Figura 3.58 Muestra mensaje de instalación exitosa ...... 55 Figura 3.59 Consola de Asterisk ...... 55 Figura 3.60 Configuración de extensiones ...... 56 Figura 3.61 Configuración de contexto ...... 56 Figura 3.62 Configuración de archivo ifcfg-eth0 ...... 57 Figura 3.63 UUID de Asterisk ...... 57 Figura 3.64 Comando para auto inicio ...... 57 Figura 3.65 Navegación por Internet ...... 59 Figura 3.66 Conectando XenCenter a XenServer...... 59 Figura 3.67 Conectando a XenServer utilizando VPN...... 60 Figura.3.68 Conectando a Asterisk utilizando VPN...... 60 Figura 3.69 Conectando a Samba utilizando VPN...... 61 Figura 3.70 Conectando a Webserver utilizando VPN...... 61 Figura 3.71 Centro de Redes y Recursos Compartidos ...... 62 Figura 3.72 Preparación de la red o conexión ...... 62 Figura 3.73 Crear una nueva conexión VPN ...... 63 Figura 3.74 Conectando a un lugar de trabajo ...... 63 Figura 3.75 Dirección IP de la VPN ...... 64 Figura 3.76 Icono de las “redes disponibles” ...... 64 Figura 3.77 Conexiones disponibles en Windows 8 ...... 64 Figura 3.78 Propiedades de la VPN ...... 65 Figura 3.79 Configuración de la llave PSK ...... 66

ix

Figura 3.80 Conexión a la VPN específica ...... 66 Figura 3.81 Filtrado web ...... 67 Figura 3.82 Archivo creado por servidor Samba ...... 67 Figura 3.83 Configuración de usuarios Apache Jmeter ...... 68 Figura 3.84 Página web de prueba...... 68 Figura 3.85 Interfaz X-Lite...... 69 Figura 3.86 Detalles de usuarios...... 69 Figura 3.87 Interfaz Zoiper...... 70 Figura 3.88 Tipo de cuenta...... 70 Figura 3.89 Credenciales de extensión...... 70 Figura 4.1 Ping a los gateways ...... 72 Figura 4.2 Probando conectividad entre servidores...... 73 Figura 4.3 Dirección IP del dispositivo ...... 73 Figura 4.4 Navegador Firefox dentro del sitio “google.com” ...... 73 Figura 4.5. Xencenter conectado a XenServer...... 74 Figura 4.6 Conexión SSH a XenServer ...... 74 Figura 4.7 Conexión SSH a Asterisk ...... 75 Figura 4.8 Conexión SSH a Samba ...... 75 Figura 4.9 Conexión SSH a webserver ...... 75 Figura 4.10 Usuarios conectados a la VPN...... 76 Figura 4.11 Dirección IP del cliente Windows 8...... 76 Figura 4.12 Resultado de conectividad interna del cliente VPN...... 76 Figura 4.13 Registro de web caché...... 77 Figura 4.14 Intentando acceder al sitio “youtube.com” ...... 77 Figura 4.15 Resultado de redireccionamiento web...... 78 Figura 4.16 Acceso a archivo creado por usuario “root”...... 78 Figura 4.17 Archivo creado por usuario en Windows 10...... 79 Figura 4.18 Resultados obtenidos en Apache Jmeter...... 79 Figura 4.19 Resultados obtenidos en Apache Server...... 79 Figura 4.20 Los softphones fueron configurados exitosamente...... 80 Figura 4.21 Extensiones activas dentro de asterisk...... 80 Figura 4.22 Softphone recibiendo llamada...... 80 Figura A1 Pantalla inicial de XenServer ...... 91 Figura A2. Pantalla de configuración de XenServer...... 92 Figura B1. Página para descargar XenCenter ...... 93 Figura C1 Instalación de CentOS 7...... 94 Figura C2 Prueba de disco duro...... 95 Figura C3 Selección de lenguaje de sistema operativo...... 95 Figura C4 Configuración básica de CentOS 7...... 96 Figura C5 Introducción de contraseña a “root”...... 96 Figura E1 Conexión de escritorio remoto ...... 99 Figura E2 Credenciales de usuario para conexión remota ...... 99 Figura E3 Windows XP desde escritorio remoto ...... 100

x

Introducción

“México Conectado” es un programa del gobierno federal, que está siendo realizado y tiene como objetivo ofrecer Internet de banda ancha conectando los sitios públicos del país (escuelas, hospitales, oficinas gubernamentales, centros comunitarios, bibliotecas).

Este proyecto de investigación tiene como objetivo crear un prototipo de dispositivo, el cual ayudará en la reducción de posibles fallas en la conectividad de los sitios del programa “México Conectado”, reemplazando a los dispositivos entregados. Este prototipo utiliza la virtualización como principal herramienta. La virtualización es la creación de una versión virtual de un dispositivo (sistema operativo, un servidor, un dispositivo de almacenamiento o algún recurso de red) simultáneamente, aprovechando al máximo los recursos de hardware.

“México Conectado” ofrece conectividad a Internet como servicio básico, en el prototipo se virtualizó dicho servicio, y además se añadieron servicios adicionales, los cuales son: almacenamiento de archivos, telefonía de voz sobre IP y servidor web. La virtualización de los servicios permite una reducción de dispositivos a entregar para cada sitio público, lo cual se traduce en una reducción de la posibilidad de fallas.

1

Capítulo 1. Planteamiento del problema

En este capítulo se describirá el programa del gobierno federal llamado “México Conectado”, cuyo objetivo principal es garantizar el acceso universal a Internet de banda ancha a todos los mexicanos. Además, se mencionarán algunas características importantes de este programa, sus beneficios, tecnologías utilizadas y el impacto social. Se definirán los aspectos por el cual “México Conectado” presenta algunas limitaciones, seguido de los objetivos para corregir a dichos problemas. Posteriormente se indicaran las preguntas de investigación. Por último, se establecerán las delimitaciones del proyecto.

1.1 Antecedentes

El gobierno federal está llevando a cabo un programa llamado “México Conectado”, el cual tiene como misión brindar acceso a Internet de banda ancha a los sitios públicos del país. Los sitios públicos beneficiados por este programa serán todos aquellos espacios públicos, en los que la conectividad resulte necesaria o útil para la operación de al menos uno de los programas federales. "México Conectado" promueve la conectividad en los sitios y espacios públicos tales como escuelas, centros de salud, bibliotecas, centros comunitarios o parques, en los tres ámbitos de gobierno: federal, estatal y municipal; garantizando el derecho de los ciudadanos al acceso universal a Internet [1].

La constitución política de los estados unidos mexicanos establece en el artículo 6 "Es derecho de todos los mexicanos contar con acceso a los servicios de radiodifusión y telecomunicaciones, incluido el de banda ancha e Internet" [2]. Hoy en día solo el 43.5% de la población mexicana usa Internet, la otra parte no lo considera necesario o simplemente no cuenta con los recursos económicos suficientes. En México el promedio de la velocidad de banda ancha es de 3 Mbps, mientras que en los países desarrollados la velocidad es de 30 Mbps [3].

Los sitios y los espacios públicos conectados a través de México conectado son más de 36 mil y van en aumento constantemente, se puede consultar la página oficial en el sitio oficial de “México Conectado” [4]. Además, cada sitio cuenta con la funcionalidad de ser un punto de acceso inalámbrico (Access Point) o comúnmente conocido como “HotSpot”.

La cantidad total de los sitios y espacios públicos en México es de más de 250 mil, por lo que se pretende que todos estos cuenten con acceso de banda ancha [5]. 2

El proyecto tendrá bastantes efectos positivos, entre los cuales sobresalen los siguientes:

● Disminuir la brecha digital, en mejorar la cobertura y calidad de los servicios públicos, y en el ahorro de recursos. El disminuir la brecha digital es el eliminar o desaparecer las desigualdades sociales en el país, por lo que al tener más mexicanos con acceso a Internet ejercerán sus derechos fundamentales, tales como la libertad de expresión, el derecho a la educación, servicios de salud, entre otros.

● Disminuir los costos conforme más espacios públicos como escuelas, hospitales, centros de salud, oficinas gubernamentales cuenten con el servicio de banda ancha, se ampliará la cobertura y la calidad de los servicios ofrecidos. Se disminuyen los costos de conectividad a Internet aprovechando la tecnología existente centralizándola con el proyecto de “México Conectado”, lo que genera ahorros considerables en los recursos públicos.

● Para lograr la conectividad de los sitios se utiliza una de dos tecnologías, puede ser la tecnología satelital o por medio de las redes terrestres. La tecnología satelital es usada para la conectividad de sitios en localidades remotas, de difícil acceso y/o de muy alta marginación. En cambio las redes terrestres son usadas en la conectividad en localidades urbanas, como lo son ciudades y pueblos con más de cinco mil habitantes [4].

“México Conectado” es operado por la Secretaría de Comunicaciones y Transportes (SCT) en conjunto con la instancia de Coordinación para la Sociedad de la Información y el Conocimiento (CSIC) encargada de la coordinación general y la operación. Para lograr el éxito en el programa se cuenta con una mesa de coordinación en cada estado de la república Mexicana [3].

Los sitios requieren de varios dispositivos para ser conectados, además algunos necesitan servicios adicionales a la conectividad a Internet, estos servicios pueden estar centralizados dentro de un solo dispositivo si se utilizara la virtualización.

Virtualización permite la partición y división de recursos de un solo servidor en múltiples medios. Estos medios son ejecutados independientemente de los otros, lo que permite ejecutar a múltiples sistemas operativos dentro del mismo hardware [6]. Lo anterior permite el mejor aprovechamiento y administración de los dispositivos.

3

Existen varios dispositivos que utilizan virtualización para brindar servicios: El dispositivo de Oracle® Crossbow Virtual Wire [7], provee tarjetas de red virtuales que puede tener dispositivos dedicados. Las tarjetas virtuales pueden ser asignadas en zonas que crean redes virtuales las cuales proveen enrutamiento virtual, balanceo de cargas, etc. Tiene herramientas administrativas que se utilizan para realizar análisis de rendimiento y cuello de botella. Otra solución de Oracle es Network Fabric [8]. El cual provee una nube privada para la organización, en el cual se podrán dar servicios de servidores, almacenamiento y máquinas virtuales y red, lo cual hará más sencilla la administración de centro de datos gracias a la simplificación de infraestructura. Internet-in-a-Box [9], emula enrutadores, conmutadores, servidores, para facilitar la administración de redes, además de reducción de costos de infraestructura. [10] ofrece un sistema operativo de red totalmente virtual para redes integrales para ofrecer servicios de firewall y VPN administrados tanto en entornos VMware y XenServer.

1.2 Definición del problema

La conexión de un nuevo sitio público requiere integrar una gran cantidad de dispositivos, los cuales deben ser instalados y administrados. Lo anterior implica que los dispositivos se deben mantener, operar e inclusive reparar por las personas encargadas del sitio. Sin embargo, estas personas generalmente no cuentan con el conocimiento suficiente para llevar a cabo estas actividades.

Por lo que, la confiabilidad en la conectividad de estos sitios, las funciones y servicios básicos otorgados se pueden ver afectados, poniendo en riesgo el funcionamiento del programa “México Conectado”.

1.3 Objetivos de la investigación

1.3.1 Objetivo General Crear una solución autocontenida la cual consistirá en ofrecer el servicio básico ofrecido por el programa “México Conectado” y además centralizar la mayor cantidad de servicios adicionales dentro de esta, permitiendo así la reducción de riesgos de que los sitios públicos beneficiados por el programa pierdan conectividad y no otorguen los servicios básicos que deben proporcionar.

4

1.3.2 Objetivos específicos ● Requerir conocimientos mínimos para ser instalado. ● Poder ser administrado remotamente. ● Proporcionar una reducción de la posibilidad de fallas. ● Facilitar la reparación, para que cualquier persona pueda realizar dicha tarea. ● Proveer escalabilidad y adaptabilidad, según las necesidades de cada sitio. ● Proporcionar flexibilidad, agregando servicios adicionales según lo requieran los sitios públicos.

1.4 Preguntas de investigación Para poder llevar a cabo este proyecto, se contestarán unas preguntas en base a conocimientos por adquirir. Las siguientes preguntas necesitan ser resueltas antes o durante el desarrollo de la solución autocontenida:

¿Cuáles son los servicios básicos que los sitios públicos deben de otorgar?

¿Cuáles serán los métodos para administrar el dispositivo remotamente?

¿Cuáles serán las soluciones virtualizables para cada función y servicio?

¿Cuál va a ser la plataforma de integración (hardware y software)?

¿Cómo se creará el esquema de integración y conexiones lógicas el interior de la solución autocontenida?

¿Cuál será la cantidad de usuarios conectados simultáneamente, que podrá soportar la solución autocontenida?

1.5 Justificación de la investigación

Las ventajas de una solución autocontenida, no solamente reducen el riesgo de fallas, sino también reduce costos, puede ser monitoreada y administrada remotamente, y en caso de falla puede volver a la operatividad en un tiempo mucho más corto que una solución compleja. Además, si esta solución autocontenida utiliza hardware convencional, en caso de una falla catastrófica, se podrá reparar con pocos recursos económicos y en poco tiempo.

5

1.6 Limitaciones y delimitaciones de la investigación

Limitación ● Debido al tiempo para realizar la solución autocontenida, solo se ofrecerán algunos servicios adicionales (telefonía de voz sobre IP, servidor web, almacenamiento de archivos). ● No siempre se tendrá el acceso físico al servidor. ● Se utilizará una topología de red sencilla, ya que no se cuenta con el tiempo necesario para ofrecer una mayor complejidad. ● La configuración de los servicios adicionales será básica, solo para demostrar su funcionalidad.

Delimitaciones

● Que el sistema donde se instale la solución autocontenida soporte Intel VT-x. ● Verificar que los sistemas operativos sean compatibles con el hipervisor a utilizar. ● El espacio de trabajo está contemplado en el cubículo C-103 dentro del Instituto de Ingeniería y Tecnología de la U.A.C.J. ● El equipo físico tales como el servidor, las tarjetas de red, monitores, teclados, etc. Será proporcionado por el asesor de tesis. ● No se contempla el hacer un gasto económico mayor a mil pesos por persona involucrada durante el desarrollo del proyecto. ● El tiempo previsto para concluir el proyecto será hasta noviembre del año 2014. ● Todo el software utilizado para brindar los servicios, será de código abierto y gratuito.

6

Capítulo 2. Marco Teórico

A lo largo de este capítulo se desarrolla el tema de virtualización, el cual es la base del desarrollo del proyecto. Se describe lo que es virtualización, sus ventajas y retos de implementación. Se mencionan los tipos de virtualización y cuál de estas será la adecuada a implementar. Así mismo se describen los tipos de hipervisores (virtualizadores) disponibles en el mercado, sus ventajas y desventajas; eligiendo el mejor de estos. Se analizan las redes definidas por software, su implementación y el software disponible. Por último, se describe los servicios adicionales que se agregaron al prototipo tales como servidor de archivos utilizando Samba, que permite compartir directorios, telefonía de voz sobre IP que permite realizar llamadas dentro y fuera de la red utilizando el software libre Asterisk y servidor web en el cual se implementó el conjunto de tecnologías LAMP.

2.1 Virtualización La virtualización es el tener máquinas (computadoras) virtuales emulándose o corriendo a la par sobre otra computadora física [11]. El origen de “máquina virtual” fue desarrollado por IMB en los años 60’s, en el cual se tenía el acceso concurrente e interactivo a una computadora central desde varias terminales (monitores remotos), aunque en este tiempo cada máquina virtual era una réplica representativa de la computadora central; es decir, se daba la impresión de estar físicamente en una computadora real [12].

En otras palabras, la virtualización es la abstracción de software en una computadora y desplegarla en otra, donde a su vez pueden existir N (n) cantidad de máquinas virtualizadas. Esto a su vez puede verse como una abstracción de los recursos de cómputo, es decir, el software se encarga de administrar los recursos y entregárselos a las máquinas virtuales inteligentemente.

2.1.1 Conceptos Básicos

Para llevar a cabo la virtualización se necesita de por lo menos una computadora anfitrión y un software virtualizador, la máquina anfitrión es en la cual se administrarán a las demás computadoras virtuales (también conocidas como máquinas huéspedes). La máquina

7 anfitrión debe ser una máquina física con una gran cantidad de memoria RAM, y uno o varios procesadores veloces de preferencia; esto es debido a que debe de asignar los recursos necesarios a cada una de las máquinas huéspedes [11]. La clave del éxito comienza en escoger una computadora anfitrión, ya que será esta la responsable de alojar a las máquinas huéspedes. Dependiendo del software virtualizador a utilizar y la cantidad de huéspedes, se necesitarán computadoras con cuatro núcleos de procesamiento o más. Puede darse el caso en el que la virtualización no sea viable, como lo puede ser en servidores de bases de datos, porque en ese se ejecutan procesos más robustos, y el disco duro se encuentra comúnmente en uso [13]. Los software virtualizadores, también conocidos como herramientas de virtualización o hipervisores, son aquellos los que actúan como intermediarios y/o controladores de los recursos de cómputo, que son designados y/o distribuidos entre las distintas máquinas virtuales dependiendo del tipo de virtualizador a utilizar [15] (más adelante se analizarán a detalle). Existe una gran cantidad de virtualizadores en el mercado, aunque solo mencionaremos los más utilizados que sean de software libre (gratuitos) y propietarios (comúnmente de paga). Entre los virtualizadores de software libre y gratuitos tenemos a XEN, KVM (ambos de ), VMware (en su versión gratuita), y a VirtualBox (de Oracle). Del lado en los propietarios están Hyper-V (de Microsoft), y VMware (versión completa) [13].

2.1.2 Ventajas

La virtualización es la metodología de dividir una computadora física en múltiples ambientes de ejecución, es decir el correr más de un sistema operativo en una misma computadora al mismo tiempo utilizando una capa de abstracción de software entre el hardware, el sistema operativo y las aplicaciones [14]. El aislamiento en la virtualización es pieza clave, además provee disponibilidad y seguridad a las máquinas virtuales. Cada máquina virtual se encuentra totalmente aislada de las otras máquinas virtuales, por lo que si una máquina falla o presenta algún tipo de problema, no afectará a las otras máquinas virtuales o directamente a la máquina anfitrión; por lo que nuestro hardware se encontrará a salvo independientemente de lo que ocurra en cada máquina virtual [12]. La disponibilidad aumenta, porque se pueden tener dos máquinas virtuales idénticas, pero solo una está en ejecución, pero ¿Qué sucede si una máquina falla? es ahí donde la otra máquina entra en acción tomando el lugar de la máquina que acaba de fallar, este proceso 8 lo puede hacer el mismo virtualizador o se puede hacer manualmente [15]. En cuanto a seguridad siempre se deben de tener copias de las máquinas virtuales, este proceso es conocido como clonación, aunque la máquina virtual es muy difícil que presente algún fallo catastrófico, si lo presenta esta puede ser reemplazado fácilmente por otra en cuestión de minutos [11].

2.1.3 Retos

Dentro de cualquier entorno, antes de adaptar un sistema “normal” a un sistema virtualizado se tienen que considerar algunos aspectos, como lo es el gasto de inversión inicial, pero que a la larga favorecerá considerablemente [16]. Así mismo la migración a un sistema virtualizado conlleva algo de tiempo y conocimiento, ya que “el objetivo principal de la virtualización es la reducción de costos, mantener los sistemas de cómputos sin modificar y que a su vez sean portables y manejables” [12]. El análisis detallado del rendimiento es muy importante, porque nuestra máquina anfitrión debe ser lo suficientemente capaz de soportar la cantidad máquinas virtuales que propongamos ejecutar. Los recursos físicos (hardware) son compartidos con las demás máquinas virtuales, si no se planea la carga en cada máquina virtual, puede afectar considerablemente el rendimiento de las demás maquinas. Es por eso que la planeación debe ser realizada antes de mudar un sistema físico a uno virtualizado [15]. Tal como lo menciona Diego Martín en su artículo [11], “El proceso de virtualización requiere un plan de formación de la plantilla, debido a que supone un cambio de paradigma en la arquitectura software”.

2.1.4 Tipos de virtualización

Como se mencionó anteriormente, existe una gran variedad de virtualizadores en el mercado. Dependiendo de las necesidades y presupuesto económico se elige el que mejor se adapte a las necesidades. Los hay de dos tipos: el tipo 1 que es un virtualizador nativo ya que corre encima del hardware de la máquina, esto permite un aislamiento verdadero entre cada sistema operativo (máquina virtual). En este tipo se tiene a los virtualizadores como: XenServer, VMware ESX Server, y Hyper-V (ver Fig. 2.1). En cambio los del tipo 2 se ejecutan por encima del sistema operativo de la máquina anfitrión (ver Fig. 2.2), estos no interactúan directamente con el hardware de la computadora como lo hacen los de tipo 9

1. En el tipo 2 se tiene a los siguientes virtualizadores: VMware Workstation y VirtualBox. La virtualización se clasifica en los siguientes enfoques: Virtualización a nivel sistema operativo, paravirtualización y virtualización completa [14].

Figura 2.1 Virtualización tipo 1

Figura 2.2 Virtualización tipo 2

2.1.4.1 Virtualización a nivel Sistema Operativo En este tipo de virtualización, las máquinas virtuales corren sobre una aplicación (virtualizador) instalado en un sistema operativo, aislando totalmente el ambiente virtual de la computadora física (ver fig. 2.3) [15], un ejemplo es Virtual Box.

2.1.4.2 Paravirtualización Dentro de la paravirtualización, la máquina huésped necesita de modificarse a sí misma para obtener un mejor desempeño. Pero esto a su vez implica cambiar el núcleo (Kernel)

10

Figura 2.3 Virtualización a nivel sistema operativo del sistema operativo, lo que implica en un aislamiento total pero cada uno corriendo su propio Kernel [14]. Un ejemplo de este virtualizador es XenServer [12].

Figura 2.4 Descripción del funcionamiento de paravirtualización

2.1.4.3 Virtualización Completa En este tipo de virtualizaciones se emula el hardware en específico con el que la máquina virtual desea ejecutarse, como por ejemplo se puede especificar un tipo de procesador en

11 particular [15]. De igual manera, como esta emulación permite entornos de diferente arquitectura, permite a los desarrolladores de hardware probar nuevos diseños [14].

Figura 2.5 Arquitectura de virtualización completa

2.1.5 XenServer

Xenserver es un hipervisor tipo 1 que es ejecutado directamente sobre los componentes físicos, no requiere de un sistema operativo. Las máquinas virtuales son llamadas “dominios” o domU, siempre hay un dominio activo, llamado dominio cero o dom0. [17]. Dom0 tiene acceso a los componentes físicos, y a la administración de otros dominios. Todos los dominios son controlados por XenServer ya que es el encargado de la administración del procesador y memoria RAM (Figura 2.6).

Uno de los beneficios de XenServer es que no requiere un sistema operativo dedicado. Esto ayuda a una mejor utilización de recursos tales como: energía, enfriamiento, tiempo de procesador, memoria RAM, disco duro, etc. Ya que se pueden tener múltiples dominios en una computadora. Los dominios no se comunicación directamente con los dispositivos físicos pueden ser migrados a otro servidor sin la necesidad de interrupciones.

12

Figura 2.6 Arquitectura de Xenserver.

Los dominios utilizan el espacio de disco duro que se le ha asignado por medio de dom0. Este recurso otorgado es parte del espacio de disco duro real, que se hace disponible través de un repositorio de almacenamiento, ya que XenServer está basado en Linux, en el cual por lo general el disco duro se divide en particiones y se accede a ella atravesó de un archivo de dispositivo. XenServer utiliza LVM (administrador de volúmenes lógicos) para el manejo de las particiones de disco duro.

Existen diferentes arquitecturas de almacenamiento (Figura 2.7): ● Almacenamiento de conexión directa (DAS). El dispositivo de almacenamiento está conectado directamente a la computadora a través de un cable. ● Red de área de almacenamiento (SAN). El dispositivo de almacenamiento está conectado a una red solamente utilizada para este tipo de arquitectura. ● Almacenamiento conectado a red (NAS). El dispositivo de almacenamiento está conectado una red.

2.1.5.1 Creación de máquinas virtuales Para poder crear un dominio en XenServer existen varias opciones: ● Usando plantillas de sistemas operativos. Es una plantilla que contiene los requerimientos mínimos de cada sistema operativo.

13

Figura 2.7 Arquitectura de dispositivos de almacenamiento

● Convirtiendo máquina física a virtual. Este requiere una aplicación de Citrix llamada XenConvert. ● Importación un dominio de un servidor a otro. Se realiza una migración de un dominio a otro servidor. ● Clonación un dominio existente. Se duplica un dominio.

Una vez seleccionada la forma en que se desea crear un dominio, se debe realizar la instalación del sistema operativo, para poder seguir con la instalación se requiere seleccionar la ubicación de la imagen del sistema operativo, ya sea dentro del repositorio de almacenamiento del servidor o en alguna arquitectura de almacenamiento.

2.1.5.2 Redes dentro de XenServer Las redes virtuales están disponibles en XenServer y ofrecen las mismas opciones que una red física real (Figura 2.8) [18]. Para tener conectividad en los dominios, se requieren tarjetas de red virtuales, ya que los dominios (domU) no tienen control sobre las tarjetas de red físicas. Una vez creada una máquina virtual se requiere una interfaz de red virtual para conectarse a una red.

14

Figura 2.8 Interfaces de red virtuales

Existen diferentes tipos de redes que se pueden configurar dentro de XenServer las cuales son: ● Red privada (Figura 2.9). Este tipo de red no requiere una interfaz de red física, ya que solo se provee conexión entre dominios (domU).

Figura 2.9 Red privada dentro de XenServer

● Red externa. Este tipo de red requiere una interfaz de red física, para poder conectar un dominio a la red.

15

Figura 2.10 Varios dominios (domU) conectados a diferentes redes utilizando interfaces de red virtuales y físicas.

2.2 Redes definidas por software Redes definidas por software (SDN) es una arquitectura de red, en la cual el control de red se separa del control de envío y el cual es totalmente programable [19].

Figura 2.11 Arquitectura de redes definidas por software

Esto hace que la red pueda ser automatizada porque pueden ser implementadas rutinas, cambiar enrutamientos, implementar un nuevo servicio, esto implica programar rutinas

16 para intervenir en cada uno de los dispositivos, gracias a esto, no se requiere configurar cientos de dispositivos, esto facilita y agiliza la administración de red y a la rápida solución de problemas.

SDN está basado en estándares abiertos. OpenFlow es uno de estos, el cual utiliza el control de dispositivos virtuales y un conjunto de instrucciones estándar. Las políticas pueden ser aplicadas a tráfico de red y APIs están disponibles para su uso o pueden ser programados por los usuarios [20].

2.2.1 VyOS

VyOS provee enrutamiento avanzado físico y virtual; además de soporte a la nube. Incluye enrutamiento dinámico, políticas basadas en roles (PBR), firewall, soporte VPN, y administración de tráfico y optimización de entornos virtuales [17]. VyOS puede ser instalado en los siguientes hipervisores: ● VMware. ● XenServer. ● RedHat KVM. ● Amazon Machine Image.

2.3 Servicios adicionales

2.3.1 Servidor de archivos

Un servidor de archivos permite guardar archivos desde otra computadora, su función principal es compartir archivos dentro de una red. Existen diferentes protocolos que permiten la compartición de archivos los cuales se mencionan a continuación.

2.3.1.1 Network File System (NFS) Network File System Protocol (NFS) fue introducido por SUN Microsystems en 1984, este protocolo permite a los usuarios remotos montar un sistema de archivos a través de la red, e interactuar con estos como si fueran montados localmente [21]. Actualmente NFS es un estándar abierto el cual está documentado en RFC (1094, 1813, 3530) [25].

17

NFSv2 utilizó el protocolo UDP ya que cuenta con su propio ensamblador de paquetes y chequeo de errores, pero debido a que UDP y NFS no soportaban control de congestión se optó por cambiar de protocolo a TCP en las siguientes versiones de NFS [25].

2.3.1.2 Server Message Block/Internet File System (SMB/CIFS) Este es un protocolo para la compartición de archivos sobre la red, y es implementado por [26]. Este es usado por los clientes para pedir archivos de un servidor sobre la red [27]. En el transcurso de los años SMB fue siendo modificado y se cambió el nombre a Internet File System (CIFS) [22].

2.3.1.3 Samba Es un paquete de software, disponible bajo licencia GNU, el cual implementa SMB/CIFS en Unix, Linux [28], el cual permite la compartición de archivos sobre la red. Samba permite la interacción con el sistema operativo Windows sin necesidad de instalar un cliente. Samba consiste de dos programas claves, estos programas son smbd y nmbd que se encargan de implementar los cuatro servicios básicos de CIFS [29]: ● Servicios de archivos e impresión. ● Autenticación y autorización ● Resolución de búsqueda. ● Servicio de búsqueda.

Smbd provee la autenticación y autorización de usuarios: cuando se configura una contraseña para acceder a un archivo o impresora. Nmbd se encarga de la búsqueda y resolución de nombres utilizando los nombres de NetBIOS [29].

Los archivos de configuración se encuentran en el directorio “/etc/samba”, el archivo principal es “smb.conf” en el cual se configura el comportamiento del servidor, además, en el cual se configura el directorio donde se compartirá, los permisos que tendrán los usuarios (abrir, modificar, crear archivos), y si algún directorio necesitará contraseña para acceder a los archivos [30].

18

2.3.2 Servidor web

El servidor web se encarga de traducir un archivo a URL y mandarlo a través del Internet a través del protocolo HTTP [31].

2.3.2.1 Apache Apache es un software libre soportado por Apache Software Foundation. Este provee el servicio con el cual el navegador del cliente se comunica al servidor [31]. Apache puede ser instalado en cualquier distribución de Linux y, además es soportado por Windows.

2.3.3 Telefonía de voz sobre IP

La telefonía de voz sobre IP es el integrar voz y paquetes de datos sobre una red de telecomunicaciones, puede ser local o a través de Internet. Esto es posible gracias a la convergencia de los datos y a la característica de calidad de servicio (QoS) [32].

Asterisk es una (PBX) central telefónica privada, por lo que se puede ver como un sistema telefónico privado, interconectando uno o más teléfonos en un lado, con una o más extensiones del otro lado. Con Asterisk no sólo se pueden realizar llamadas de extensión a extensión, sino además ofrece registro de llamadas, grabación de llamadas, buzón de voz, respuesta de voz interactiva, entre otras. Asterisk es un sistema telefónico modular, que permite crear un sistema telefónico a la medida, además de que es un programa de código abierto [33].

19

Capítulo 3. Materiales y Métodos

En este capítulo se menciona el área de estudio en la que se desarrolla el proyecto. Así mismo se definen los materiales tales como dispositivos y software. Por último se describen los métodos de configuración y pruebas.

3.1 Descripción del área de estudio Este proyecto realizado es un desarrollo tecnológico, porque se elaboró un prototipo innovador en cuanto a tecnología y comunicaciones utilizando hardware convencional; ya que no es necesario hardware de tipo empresarial. Además de esto se utilizó estado del arte tecnológico, porque implementó virtualización y redes definidas por software que permiten la reducción de dispositivos, lo cual ayuda: ● A la disminución de costos. ● A la fácil administración. ● Al mantenimiento del equipo. ● Al monitoreo de servicios.

Todo esto es posible ya que se realiza dentro de una computadora, aprovechando el máximo de recursos del hardware.

3.2 Materiales

3.2.1 Hardware

Las herramientas utilizadas fueron las siguientes: 1. Computadora Dell Precision T5600 que cuenta con: ● Tarjeta RAID. Dell PERC H310. ● Dos discos duros que están en configuración RAID-1, de 500GB y 250GB. ● Procesador Intel @2.0GHz de 6 núcleos, con 15MB de caché. ● Memoria RAM DDR3 total de 16GB @1600MHz. ● Tarjeta de red PCI- 10/100/1000. 2. Computadora de escritorio. ● Disco duro de 320 GB. ● Procesador Intel Core 2 Quad Q8400 @2.66 GHz

20

● Memoria RAM DDR3 de 8GB @1333MHz. 3. Notebook Gateway nv52 ○ Disco duro de 320GB. ○ Procesador AMD Athlon X2 Dual-Core QL-64 2.10Ghz. ○ Memoria RAM DDR2 de 4GB. 4. Notebook SonyVaio VPCEB33FM ○ SSD de 120 GB. ○ Procesador Intel Core i3 CPU @2.4 GHz. ○ Memoria RAM DDR3 de 4GB. 5. Switch Linksys WRV210, Gigabit Ethernet de 4 puertos.

3.2.2 Software

Sistemas operativos utilizados: 1. XenServer 6.2.0. 2. CentOS 7 Server. Se decidió utilizar esta versión sobre la versión 6.5 ya que es la más actualizada en el periodo que se realizó el proyecto, además de que hubo un cambio drástico en el manejador de archivos de Linux de la versión 6.5 a 7 que pudo afectar la recreación de este proyecto con futuras versiones. 3. VyOS 1.1.0. 4. Windows 7 SP1 (64 bits). 5. Windows 8. 6. Windows XP SP3 En cuanto a software se utilizó: 1. XenCenter. 2. Samba server 3. LAMP server. 4. . 5. Asterisk. 6. SmartDraw. 7. Jmeter. 8. Java. 9. X-Lite. 10. Zoiper.

21

Herramientas: ● Conexión VPN a la red interna de la UACJ. ● Development tools para compilar los servicios. ● Universal USB Installer 1.9.5.6, utilizado para la instalación de XenServer. ● Putty, terminal Telnet o SSH.

3.3 Métodos

En esta sección se implementarán dentro de la solución autocontenida los distintos servicios que ofrece, como lo son: telefonía de voz sobre IP, servidor web, servidor de archivos y conectividad a Internet. En primer lugar se analizaron los requerimientos mínimos para que la solución autocontenida sea capaz de virtualizar los servicios, se examinó la topología de red requerida dentro de la solución, después de esto se instaló el hipervisor, seguido se instalaron y configuraron las distintas máquinas virtuales las cuales ofrecen los servicios.

3.3.1 Periodo y lugar

La realización de este proyecto fue en el periodo marzo a octubre del 2014, en la Universidad Autónoma de Ciudad Juárez (UACJ) en el Instituto de Ingeniería y Tecnología (IIT).

3.3.2 Metodología

Antes de iniciar con la elaboración del proyecto se tuvieron que investigar una serie de elementos que son necesarios para realizar el prototipo. Durante esta investigación se buscaron los componentes mínimos requeridos para la virtualización. Los resultados de esta investigación fueron los siguientes:

● Una computadora con uno o más procesadores de 64-bit, con 1.5 GHz mínimo. ● Para soportar la virtualización tipo 1, se necesita que los procesadores sean compatibles con las tecnologías de virtualización Intel VT-x o AMD-V. ● Que contenga 1 GB de memoria RAM mínimo. ● Que contenga un espacio mínimo de disco duro de 16 GB.

22

Una vez obtenido todos los recursos necesarios, se pudo iniciar el proyecto el cual consiste una solución autocontenida para las funciones y servicios requeridos por los sitios del programa “México Conectado”.

3.3.2.1 Xenserver

Xenserver es un hipervisor tipo 1 que es ejecutado directamente sobre los componentes físicos, no requiere de un sistema operativo. Las máquinas virtuales son llamadas “dominios” o domU, siempre hay un dominio activo, llamado dominio cero o dom0. Dom0 tiene acceso a los componentes físicos, y a la administración de otros dominios. Todos los dominios son controlados por XenServer ya que es el encargado de la administración del procesador y memoria RAM. El proceso de instalación se muestra en el anexo B.

Figura 3.1 Configuración dentro de XenServer.

Autoencendido del servidor Algunas tarjetas madre tienen la opción para que el equipo se inicie automáticamente cuando regresa la corriente eléctrica, después de haberla perdido. Para que el servidor hiciera esto, se modificó el BIOS, con los siguientes cambios: en la sección de Power Management, se seleccionó AC Recovery, y se modificó este valor a “Power On”.

23

Figura 3.2 Administración del poder dentro del BIOS

Figura 3.3 Opciones de recuperación de energía

Para que las máquinas virtuales inicien automáticamente, primero se configuró el POOL donde se encuentran las mismas. Para esto se utilizó el comando:

Figura 3.4 Comando de autoinicio del POOL

Adicionalmente cada máquina se configuró para que inicie automáticamente. Como se puede ver en el transcurso de este capítulo.

Si se llegaran a presentar fallas, se seguirá el plan de contingencia que se encuentra en el anexo E.

3.3.2.2 XenCenter

XenCenter es una interfaz gráfica de usuario de XenServer, el cual permite administrar remotamente el prototipo, ya que ofrece funcionalidades como:

● Instalación completa de máquinas virtuales. ● Acceso a la consola en tiempo de instalación. 24

● Configuración de conectividad a la red en las máquinas virtuales. ● Muestreo de rendimiento de cada una de las máquinas virtuales (procesador, memoria RAM, red). ● Conexión remota a cada máquina virtual. ● El proceso de instalación se muestra en el anexo C.

Configuración XenCenter

La primera tarea al abrir el programa XenCenter es agregar al Virtualizador.

Se ejecutó el programa CITRIX XenCenter, se le dio clic en Agregar Nuevo servidor (Add New Server), en la pantalla emergente se puso la dirección IP en la casilla “Server”, en la casilla username se escribió “root” y en la casilla password la contraseña que se le asignó al virtualizador.

Figura 3.5 XenCenter

Una vez dentro de XenCenter le dio clic a la casilla “console” y se accedió a la carpeta test, que se encuentra en mnt/test en la cual se descargaron los sistemas operativos con los siguientes comandos:

● wget http://centos.blazar.mx/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso ● wget http://releases.ubuntu.com/14.04.1/ubuntu-14.04.1-desktop-amd64.iso ● wget http://188.138.9.146/Getintopc.com/Windows_XP_Professional_SP3_Nov_2013_Incl_S ATA_Drivers.iso 25

3.3.2.3 División de Redes

Cuando se instaló XenServer, se creó una red externa predeterminada. Esta red externa es la que utilizó el enrutador virtual VyOS para conectarse con el exterior usando la tarjeta de red integrada del servidor. Por lo que se tuvo que crear una red interna virtual, y otra red externa utilizando la tarjeta PCI-Ethernet; la cual se comunica con la red interna virtual, esta red externa se conectó con el switch; esté a su vez se puede conectar con dispositivos (computadoras de escritorio, laptops) para acceder a las funciones y servicios. En la figura 3.6 se puede ver la topología de red física para un mejor entendimiento. Dichas redes creadas no tienen contacto directo con el exterior, es decir, VyOS actúa como intermediario filtrando el contenido del exterior (Internet). Para la creación de la red interna virtual se siguieron los siguientes pasos:

1. Se abrió el programa XenCenter, y seleccionamos nuestro servidor. 2. En la pestaña de “Networking”. 3. Se le dio clic en “Add network…” 4. Se abrió una configuración guiada para la creación de una nueva red, se seleccionó al tipo de red “Single-Server Private Network”. 5. En el nombre se le puso: “Red privada 1” sin descripción. 6. Para concluir se seleccionó el CheckBox, con esto se agregará automáticamente la red privada a las nuevas máquinas virtuales creadas posteriormente.

Figura 3.6 Topología de red física 26

VyOS se utilizó para controlar el tráfico de la red. Dentro de VyOS se incluyen los distintos servicios del tráfico de la red como lo son el enrutamiento, el firewall, el web caché, servicio DHCP y DNS.

Todo el tráfico que entra para las distintas máquinas virtuales, pasa a través de la tarjeta de VyOS, que a su vez conecta otra red local permitiendo conectividad con las distintas máquinas virtuales. Para entender un poco mejor la funcionalidad de VyOS se presenta el siguiente diagrama mostrando la topología de red virtual:

Figura 3.7 Topología de red virtual

Para la instalación de VyOS seguimos los siguientes pasos:

● Se abrió XenCenter y se conectó al virtualizador XenServer. ● Se hizo clic en el icono “New VM” para crear una nueva máquina virtual. En la selección de plantilla se eligió “Other install media”.

Figura 3.8 Selección de tipo de máquina virtual para VyOS 27

● Se seleccionó la imagen de VyOS.

Figura 3.9. Selección de la imagen de VyOS

● Se asignó la cantidad de procesadores virtuales y memoria RAM, en este caso fueron 4 procesadores con 1024 MB de memoria RAM.

Figura 3.10. Selección de cantidad de recursos para VyOS

● Se le agregó un disco duro como almacenamiento virtual del tamaño de 5GB.

Figura 3.11 Almacenamiento virtual para VyOS

● XenServer agrega predeterminadamente la red externa (Network 0) y la red local (Network 1), por lo que se agregó la red privada manualmente haciendo clic en “Add…”, después se seleccionó la “Red privada”.

28

Figura 3.12 Interfaces de red para VyOS

Hasta este punto, ya se creó la máquina virtual para VyOS, se ejecutó con un doble clic y esperamos a que inicie, entramos a la pestaña de consola y tuvimos la siguiente pantalla para iniciar sesión:

Figura 3.13 Inicio de sesión de VyOS

Se inició sesión con el usuario: “” y la contraseña: “vyos”. VyOS se ejecuta de un modo “live”, es decir, solo se ejecuta el sistema operativo sin escribir algún dato en el disco duro. Debido a esto, se instaló dentro del disco duro virtual, para hacerlo se ejecutaron los siguientes comandos:

1. vyos@vyos:~$ install image 29

2. Would you like to continue? (Yes/No) [Yes]: Y 3. Partition (Auto/Parted/Skip) [Auto]: [ENTER] 4. Install the image on? [sda]: [ENTER] 5. This will destroy all data on /dev/sda. Continue? (Yes/No) [No]: Y 6. How big of a root partition should I create? (1000MB - 2147MB) [2147]MB: [ENTER] 7. Which one should I copy to sda? [/config/config.boot]: [ENTER] 8. Enter password for user 'vyos': uacj 9. Retype password for user 'vyos': uacj 10. Which drive should GRUB modify the boot partition on? [sda]: [ENTER]

Una vez que finalizó la instalación, se le dio clic en “Eject” dentro de la pestaña de consola del VyOS, esto para ejecutar el CD de VyOS. Como ya está instalado en el disco no se utilizará más.

Se reinició VyOS con el siguiente comando: reboot. Y se esperó a que iniciara normalmente. Esperamos a que inicie, entramos con el usuario “vyos” y contraseña “uacj”.

Configuración básica de VyOS

El paso siguiente fue el crear la conectividad de la “red Interna” con la “red Externa” por medio de NAT, así que se lo primero fue el entrar al modo configuración con el comando:

● vyos@vyos$ configure ● vyos@vyos#

Después le asignamos direcciones IP a nuestras interfaces de red, una es externa (eth0) y otra interna (eth1). A la interna se le asignó la dirección 192.168.30.1 con una máscara de /24, a la externa se le asignó dinámicamente por DHCP. Así mismo se agregó una descripción a cada interfaz.

● set interfaces ethernet eth0 address dhcp ● set interfaces ethernet eth0 description “Red Externa” ● set interfaces ethernet eth1 address 192.168.30.1/24 ● set interfaces ethernet eth1 description “Red interna”

Se habilitó el protocolo Secure Shell (SSH) para la administración remota por medio del puerto TCP-IP 22, en este caso se administró con el programa Putty.

● set service ssh port 22

30

Se configuró el servicio NAT para nuestra red “Interna”, y que esta pueda comunicarse con el exterior. Se definió la interfaz de salida Internet, seguido de las direcciones IP permitidas para usar NAT, por último se definió el tipo de traducción “masquerade” (sobrecarga de puertos usando una sola dirección IP); todo esto con la regla NAT 100.

● set nat source rule 100 outbound-interface 'eth0' ● set nat source rule 100 source address '192.168.30.0/24' ● set nat source rule 100 translation address masquerade

Se configuró el servicio DHCP para la red interna, en primer lugar se tiene que habilitar el servicio, después elegir el gateway y el servidor DNS (dirección IP de la interfaz de salida). Se le asignó un nombre de “red-interna” con un tiempo de arrendamiento de 7 días y un espacio dinámico para 190 dispositivos:

● set service dhcp-server disabled false ● set service dhcp-server shared-network-name LAN subnet 192.168.30.0/24 default- router 192.168.30.1 ● set service dhcp-server shared-network-name LAN subnet 192.168.30.0/24 dns-server 192.168.30.1 ● set service dhcp-server shared-network-name LAN subnet 192.168.30.0/24 domain-name 'red-interna' ● set service dhcp-server shared-network-name LAN subnet 192.168.30.0/24 lease 604800 ● set service dhcp-server shared-network-name LAN subnet 192.168.30.0/24 start 192.168.30.10 stop 192.168.30.200

Se agregó un redireccionador para el servicio DNS. Todas las solicitudes que lleguen a través del puerto Ethernet Eth1 se redireccionaron a otro(s) servidor(es) DNS, solo especificamos la(s) dirección(es) IP de dicho(s) servidor(es), con un caché de 500 direcciones:

● set service dns forwarding cache-size 500 ● set service dns forwarding listen-on eth1 ● set service dns forwarding name-server 148.210.20.200 ● set service dns forwarding name-server 148.210.20.40 ● set service dns forwarding name-server 8.8.8.8 ● set service dns forwarding name-server 8.8.4.4

Red Privada Virtual de acceso remoto

Se creó una red privada virtual VPN de tipo L2TP/IPsec con una llave pre-compartida para autenticación. Se decidió utilizar L2TP/IPsec, porque ofrece seguridad en cuanto a la encriptación de la información cuando utiliza el algoritmo AES, así mismo es más confiable y estable comparado con PPTP. 31

El primer paso se preparó VyOS como un servidor VPN usando L2TP/IPSec, la interfaz pública Ethernet Eth0 es la que se habilitó para el uso de IPSec, así mismo se habilitó NAT transversal permitiendo que los clientes se conecten de cualquier red en el exterior. ● set vpn ipsec-interfaces interface eth0 ● set vpn ipsec nat-traversal enable ● set vpn ipsec nat-networks allowed-network 0.0.0.0/0 Se aplicaron y guardaron las configuraciones, después se verificaron los cambios con el comando “show vpn ipsec”.

Figura 3.14 Configuración de la VPN

El segundo paso en la creación de la VPN fue enlazar el servidor VPN con la dirección IP externa, así como definir el espacio de direcciones IP internas disponibles, que se asignan a los clientes remotos. ● set vpn l2tp remote-access outside-address 148.210.122.66 ● set vpn l2tp remote-access client-ip-pool start 192.168.30.201 ● set vpn l2tp remote-access client-ip-pool stop 192.168.30.250 Como tercer y último paso, se configuró para que la llave pre-compartida sea “LLAVEUACJ”, y la autenticación sea con los usuarios registrados localmente. Se agregaron 3 usuarios (alberto, christian y ramon) ambos con la misma contraseña (uacj2014).

● set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret

32

● set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret LLAVEUACJ ● set vpn l2tp remote-access authentication mode local ● set vpn l2tp remote-access authentication local-users username alberto password uacj2014 ● set vpn l2tp remote-access authentication local-users username christian password uacj2014 ● set vpn l2tp remote-access authentication local-users username ramon password uacj2014

Se aplicaron y guardaron las configuraciones de L2TP, después se verificaron los cambios con el comando “show”.

Figura 3.15 Configuración del túnel L2TP

33

Web Caché

El web caché es conocido también como web proxy, optimiza la navegación en la web almacenando ciertos contenidos, lo que se traduce en reducción del consumo de ancho de banda y tiempos de respuesta. VyOS incluye dentro de sus servicios un web proxy basado en “Squid”. Su configuración fue sencilla:

Primero se habilitó el servicio en la dirección IP interna de VyOS, seguido del tamaño del caché a 2 GB.

● set service webproxy listen-address 192.168.30.1. ● set service webproxy cache-size 2048.

Como configuración adicional se configuró el bloqueo de publicidad, malware y pornografía. Para esto, primero se actualizó la “lista negra” (blacklist) dentro del modo operacional se ejecutó el siguiente comando y se esperó un momento a que se actualizara dicha lista.

● update webproxy blacklists.

Dentro del modo configuración, se definió el bloqueo de publicidad, malware y pornografía.

● set service webproxy url-filtering squidguard block-category ads ● set service webproxy url-filtering squidguard block-category malware ● set service webproxy url-filtering squidguard block-category adult ● set service webproxy url-filtering squidguard block-category porn

Se aplicaron y guardaron las configuraciones de web proxy, después se verificaron con el comando “show service webproxy”.

Figura 3.16 Configuración del web caché

34

Firewall

El firewall se configuró como un “cortafuegos de estado” (); para esto se aplicaron los siguientes comandos dentro del modo de configuración global:

● set firewall state-policy established action 'accept' ● set firewall state-policy related action 'accept'

Después se aplicaron una serie de reglas globales, como lo fue el habilitar ciertos paquetes TCP/IP: todos los ping, Martian, y SYN cookies. Se deshabilitó: broadcast-ping, Source , ICMP redirects.

● Set firewall all-ping 'enable'. ● Set firewall broadcast-ping 'disable'. ● Set firewall -receive-redirects 'disable'. ● Set firewall ipv6-src-route 'disable' ● Set firewall ip-src-route 'disable' ● Set firewall log-martians 'enable' ● Set firewall receive-redirects 'disable' ● Set firewall send-redirects 'enable' ● Set firewall source-validation 'disable' ● Set firewall syn-cookies 'enable'

Se configuró el firewall para que todos los paquetes destinados hacia el mismo router sean filtrados y se creó un grupo de políticas que lleva de nombre “OUTSIDE-LOCAL”, el cual rechaza todos los paquetes que no entren dentro de las políticas permisivas:

● set firewall name OUTSIDE-LOCAL default-action 'drop'

Solo se habilitaron los paquetes ICMP:

● set firewall name OUTSIDE-LOCAL rule 20 action 'accept' ● set firewall name OUTSIDE-LOCAL rule 20 icmp type-name 'echo-request' ● set firewall name OUTSIDE-LOCAL rule 20 protocol 'icmp' ● set firewall name OUTSIDE-LOCAL rule 20 state new 'enable'

Se habilitó el protocolo SSH con detección de ataques de fuerza bruta; permitiendo solo 3 conexiones en un espacio de 30 segundos:

35

● set firewall name OUTSIDE-LOCAL rule 30 action 'drop' ● set firewall name OUTSIDE-LOCAL rule 30 destination port '22' ● set firewall name OUTSIDE-LOCAL rule 30 protocol 'tcp' ● set firewall name OUTSIDE-LOCAL rule 30 recent count '4' ● set firewall name OUTSIDE-LOCAL rule 30 recent time '60' ● set firewall name OUTSIDE-LOCAL rule 30 state new 'enable' ● set firewall name OUTSIDE-LOCAL rule 31 action 'accept' ● set firewall name OUTSIDE-LOCAL rule 31 destination port '22' ● set firewall name OUTSIDE-LOCAL rule 31 protocol 'tcp' ● set firewall name OUTSIDE-LOCAL rule 31 state new 'enable'

Se permitió el tráfico IKE y ESP para IPSec:

● set firewall name OUTSIDE-LOCAL rule 100 action 'accept' ● set firewall name OUTSIDE-LOCAL rule 100 destination port '500' ● set firewall name OUTSIDE-LOCAL rule 100 protocol 'udp' ● set firewall name OUTSIDE-LOCAL rule 200 action 'accept' ● set firewall name OUTSIDE-LOCAL rule 200 protocol 'esp'

Se permitió el tráfico L2TP a través de IPSec:

● set firewall name OUTSIDE-LOCAL rule 210 action 'accept' ● set firewall name OUTSIDE-LOCAL rule 210 destination port '1701' ● set firewall name OUTSIDE-LOCAL rule 210 ipsec 'match-ipsec' ● set firewall name OUTSIDE-LOCAL rule 210 protocol 'udp'

Se permitió NAT transversal de IPSec:

● set firewall name OUTSIDE-LOCAL rule 250 action 'accept' ● set firewall name OUTSIDE-LOCAL rule 250 destination port '4500' ● set firewall name OUTSIDE-LOCAL rule 250 protocol 'udp'

Se creó otro grupo de reglas de firewall, que aplican para el tráfico dentro del servidor aceptando solo las sesiones previamente establecidas, es decir, no aceptar paquetes de dispositivos extraños:

● set firewall name OUTSIDE-IN default-action 'drop'

36

● set firewall name OUTSIDE-IN rule 10 action 'accept' ● set firewall name OUTSIDE-IN rule 10 state established 'enable' ● set firewall name OUTSIDE-IN rule 10 state related 'enable'

Se aplicaron las políticas del firewall de acuerdo a su nombre:

● set interfaces ethernet eth0 firewall in name 'OUTSIDE-IN' ● set interfaces ethernet eth0 firewall local name 'OUTSIDE-LOCAL'

Para finalizar se aplicaron los cambios y se guardaron las configuraciones. Seguido se verificó lo aplicado con el comando “show firewall”.

Figura 3.17 Configuración del firewall

3.3.2.5 Samba

Es un software libre que se encuentra bajo licencia GNU. Samba provee servicios de compartición de archivos e impresión utilizando el protocolo SMB lo que permite la interacción de Linux y Windows.

Se decidió instalarse en sistema operativo CentOS por las razones ya expresadas en Materiales 3.2.2 punto 2.

37

Los pasos que con los que se realizó la instalación son los siguientes:

● Dentro del manejador XenCenter se hizo clic en el icono “New VM” para crear una nueva máquina virtual. ● En la selección de plantilla se eligió “Other install media” ya que no se encuentra la plantilla de CentOS 7.

Figura 3.18 Selección de plantilla de sistema operativo

Figura 3.19 Repositorio de sistemas operativos que se encuentran dentro del prototipo

● Se seleccionó la imagen de “CentOS-7.0-1406-x86_64-DVD” previamente descargada. 38

● Se asignó la cantidad de procesadores virtuales y memoria RAM, en este caso fueron 1 procesador con 1024 MB de memoria RAM.

Figura 3.20 Asignación de recursos a la máquina virtual

● Se asignó la cantidad de 20 GB de disco duro.

Figura 3.21 Ventana de asignación de espacio de disco duro

39

● Después de esto se siguen los pasos de instalación de CentOS como se muestra en el anexo D.

Una vez terminada la instalación se actualizó el sistema operativo con el comando yum update, el cual ayudará a actualizar los servicios y paquetes en el sistema operativo.

Se instaló el servicio Samba con el comando yum install samba, el cual busco e instaló las dependencias requeridas por este servicio.

Figura 3.22 Resultados de instalación de Samba

Una vez instalado el servicio entramos al directorio samba con el comando cd /etc/samba en el cual se encuentran los archivos principales para configurar el servidor. Dentro del directorio, se configuró el archivo smb.conf con el comando nano smb.conf y se introdujo lo siguiente:

Figura 3.23 Configuración de archivo smb.conf

40

Dentro de global se configuró lo siguiente:

● Workgroup. Se utilizó para establecer el grupo de trabajo. ● Server string. Es de carácter informativo para los usuarios de la red de área local. Permite definir una descripción breve acerca del servidor. ● Netbios. Permite establecer arbitrariamente un nombre de anfitrión distinto al detectado automáticamente. ● Para permitir que se compartan archivos sin necesidad de contraseña: ● map to guest = Bad User ● security = user

Dentro de “Archivos” se configuró lo siguiente: ● Path. Se especificó que directorio se va a compartir. ● Browsable. Define si se permitirá mostrar este recurso en las listas de recursos compartidos. El valor puede ser Yes o No. ● Writable: Define si se permitirá la escritura. Es la opción contraria de read only. El valor puede ser Yes o No. ● Guest ok: Define si se permitirá el acceso como usuario invitado. El valor puede ser Yes o No. ● Read only: Opción contraria a writable. ● Una vez configurado Samba se inician los servicios NMB el cual suministra servicios para compartir archivos e impresión a clientes Windows y SMB el cual responde a las peticiones de servicio de nombres NetBIOS tales como aquellas producidas por SMB/CIFS en sistemas basados en Windows. ● Se dieron permisos a Samba dentro del firewall del sistema operativo. y luego se reinició el firewall.

Figura 3.24 Muestra los comando de nmb, smb y como se agrega un servicio al firewall

41

● Se configuró una IP estática para en el servidor siguiendo los pasos que se muestran a continuación: ● Se modificó el archivo ifcfg-eth0 que se encuentra en /etc/sysconfig/network- scripts/, en el HWADDR, se tuvo que escribir la MAC-Address de la tarjeta de red virtual que proporciona XenServer, y esa información se obtuvo de la pestaña “Networking” en XenCenter.

Figura 3.25 Configuración de archivo ifcfg-eth0

● Después de haber introducido los cambios se reinició el servidor. ● Una vez hecho esto ya se puede entrar al directorio donde se compartirán los archivos. ● Ya instalado y configurado el servidor, se agregó una utilidad a la máquina virtual para que inicie una vez que el prototipo sea encendido. Se realizó con los siguientes pasos: ● Se seleccionó la máquina virtual en XenCenter y en la pestaña General se copió el UUID:

Figura 3.26 UUID de Samba

42

● Ahora en la consola de Xenserver se escribe el comando:

Figura 3.27 Comando para auto inicio de Samba

● Ya hecho esto se reinició la máquina virtual para que los cambios tomen efecto.

3.3.2.6 Servidor web LAMP

LAMP (Linux Apache MySQL/MariaDB PHP) es un conjunto de tecnologías de software libre que normalmente se utiliza en servidores web. Este servicio se decidió instalarse en CentOS 7(por las razones expresadas Materiales 3.2.2 punto 2) y a continuación se muestran los pasos que con los que se realizó la instalación:

● Dentro del manejador XenCenter se hizo clic en el icono “New VM” para crear una nueva máquina virtual.

Figura 3.28 Selección de plantilla de sistema operativo

● En la selección de plantilla se eligió “Other install media”.

43

Figura 3.29. Muestra repositorio de imágenes de sistemas operativos

● Se seleccionó la imagen de “CentOS-7.0-1406-x86_64-DVD” descargada. ● Se asignó la cantidad de procesadores virtuales y memoria RAM, en este caso fueron 2 procesadores con 512 MB de memoria RAM.

Figura 3.30 Asignación de recursos a la máquina virtual

● Se asignó la cantidad de 8 GB de disco duro.

44

Figura 3.31 Ventana de asignación de espacio de disco duro

Después de esto se siguen los pasos de instalación de CentOS como se muestra en el anexo D. ● Después de la instalación se actualizó el sistema operativo con el comando yum update.

Figura 3.32 Comando utilizado para actualizar el sistema operativo

● Se instaló apache server con el comando yum install httpd. Después de realizar esto se enciende el servicio con el comando systemctl start httpd.service.

Figura 3.33 Muestra el estatus del servicio Apache HTTP Server 45

Con el comando systemctl status httpd.service se pudo saber que el servicio está activo, además de esto desplegó el horario en que se activó y la cantidad de entradas tiene la página web.

● Para que el servicio httpd inicie a se tiene que utilizar el comando systemctl. enable httpd.service. ● Se instaló MySQL (MariaDB) ya que es el reemplazó de MySQL como gestor de base de datos en CentOS 7; con el siguiente comando yum install mariadb-server mariadb. Después de haber instalado se inicia el servicio con el comando systemctl start mariadb.

Figura 3.34 Muestra el estatus del servicio MariaDB database server

● Después de haber iniciado el servicio el siguiente paso se siguió para la instalación MariaDB.

46

Figura 3.35 Instalación de MariaDB

● Una vez la base de datos instalada se entró a la base de datos para verificar que se allá instalado correctamente.

47

Figura 3.36 Muestra que la base de datos está correctamente instalada

● Se instala PHP con el comando yum install php php-mysql.

Figura 3.37 Instancias instaladas por el comando yum install php php-mysql

● Una vez realizado esto se necesitó reiniciar apache para que los cambios tomen efecto, y se utilizó el comando systemctl restart httpd.service.

Figura 3.38 Comando utilizado para reiniciar Apache

● Una vez hecho esto se llamó un script para que apache encuentre el archivo. Se utilizó el comando vi /var/www/html/info.php y dentro del archivo se escribió .

Figura 3.39 Comandos utilizados para agregar el script que muestra la información del servidor.

48

● Se configuró una IP estática para en el servidor siguiendo los pasos que se muestran a continuación: ● Se modificó el archivo ifcfg-eth0 que se encuentra en /etc/sysconfig/network- scripts/, en el HWADDR, se tuvo que escribir la MAC-Address de la tarjeta de red virtual que proporciona XenServer, y esa información se obtuvo de la pestaña “Networking” en XenCenter.

Figura 3.40 Configuración de archivo ifcfg-eth0

● Ya instalado y configurado el servidor, se agregó una utilidad a la máquina virtual para que inicie una vez que el prototipo sea encendido. Se realizó con los siguientes pasos: ● Se seleccionó la máquina virtual en XenCenter y en la pestaña General se copió el UUID:

Figura 3.41 UUID de webserver

● Ahora en la consola de Xenserver se escribe el comando:

Figura 3.42 Comando para auto inicio

49

● Después de haber introducido los cambios se reinició el servidor.

● Se agregaron los servicios http y https al firewall del sistema operativo para que permita acceso. con los comandos : ○ firewall-cmd --permanent --zone=public --add-service=http ○ firewall-cmd --permanent --zone=public --add-service=https ○ firewall-cmd –reload

Figura 3.43 Comandos utilizados para agregar servicios http(s)

● Para verificar que el servidor web este correctamente instalado se puede entrar a la página http://192.168.30.4/info.php.

Figura 3.44 Configuración de página web

50

3.3.2.7 Asterisk

Asterisk es un software libre PBX (Private Branch Exchange) que corre sobre Linux. El cual permite hacer llamadas sobre la red telefónica (PSTN) y sobre voz sobre ip (VoIP), además de esto permite correo de voz, llamadas de conferencia, respuesta de voz interactiva entre otras además de esto está bajo licencia GNU.

Existen varias distribuciones de Linux con Asterisk previamente instalado tales como FreePBX, AsteriskNOW que se administra en base GUI aunque son fáciles de configurar no permiten configurar todas las funcionalidades que ofrece Asterisk, por esta razón se decidió instalar sobre CentOS 7 por las razones expresadas en Materiales 3.2.2 punto 2.

Los pasos que con los que se realizó la instalación son los siguientes:

● Dentro del manejador XenCenter se hizo clic en el icono “New VM” para crear una nueva máquina virtual. ● En la selección de plantilla se eligió “Other install media” ya que no se encuentra la plantilla de CentOS 7.

Figura 3.45 Selección de plantilla de sistema operativo

51

Figura 3.46 Repositorio de sistemas operativos que se encuentran en el prototipo

● Se seleccionó la imagen de “CentOS-7.0-1406-x86_64-DVD” previamente descargada. ● Se asignó la cantidad de procesadores virtuales y memoria RAM, en este caso fueron 1 procesador con 512 MB de memoria RAM.

Figura 3.47 Asignación de recursos a la máquina virtual

● Se asignó la cantidad de 20 GB de disco duro

52

Figura 3.48 Ventana de asignación de espacio de disco duro

Después de esto se siguen los pasos de instalación de CentOS como se muestra en el anexo D. ● Después de la instalación se actualizó el sistema operativo con el comando yum update.

Figura 3.49 Comando utilizado para actualizar el sistema operativo

● Ya actualizado el sistema operativo se desactivó SELinux, que son las políticas de seguridad del kernel de Linux, ya que pudo generar algunos problemas con los servicios de asterisk y luego se reinició para que los cambios tomarán efecto.

Figura 3.50 Comandos utilizados para desactivar SELinux y reiniciar el sistema

● Se instalaron las herramientas necesarias para la instalación y compilación de asterisk.

53

Figura 3.51 Software necesario para la instalación de Asterisk

● Se descargó los archivos de instalación de asterisk libpri y dahdi-linux.

Figura 3.52 Archivos necesarios para el servicio Asterisk

● Se descomprimió el archivo dahdi-linux que es controlador de tarjetas telefónicas.

Figura 3.53 Descompresión de archivo de instalación de dahdi

● Se ingresó al directorio donde se encuentran los archivos de instalación y luego se procedió a compilarlo e instalarlo como se muestra en la figura 3.54.

Figura 3.54 Muestra donde se encuentran los archivos de configuración y los archivos utilizados para instalarlo

● Se descomprimió el archivo libpri que es una librería que contiene los protocolos que se usan sobre T1, E1.

Figura 3.55 Descompresión de archivo de instalación de libpri

Figura 3.56 Muestra donde se encuentran los archivos de configuración y los archivos utilizados para instalar el servicio

54

● Se ingresó al directorio donde se encuentran los archivos de instalación y luego se procedió a compilarlo e instalarlo como se muestra en la figura 3.57.

Figura 3.57. Muestra el directorio donde se encuentran los archivos de configuración y los archivos utilizados para instalar el servicio

● Una vez instalado Asterisk desplegó este mensaje de instalación exitosa.

- Figura 3.58 Muestra mensaje de instalación exitosa

● Una vez instalado Asterisk se procedió a entrar a Asterisk, con el comando asterisk –r.

Figura 3.59 Consola de Asterisk

55

● Se agregaron dos extensiones en el archivo sip.conf que se encuentra en /etc/asterisk/ con la siguiente información:

Figura 3.60 Configuración de extensiones

● Configuración de extensiones: ● Username: Muestra el usuario cuando se recibe llamada. ● Secret: Contraseña que se utiliza para autenticar. ● Host: puede ser cualquier dispositivo con el usuario configurado. ● Type: Sirve para autenticar llamadas. ● Qualify: Determina si el dispositivo puede ser alcanzado ● Context: Contexto del plan de llamadas. ● Nat: Alerta que el dispositivo está detrás de NAT.

● Se agregó un contexto en el archivo extensions.conf que se encuentra en /etc/asterisk/ con la siguiente información:

Figura 3.61 Configuración de contexto 56

● Configuración de contexto: ● exten=>100,1,Dial(SIP/100): Si se marca al número 100 llamara por protocolo SIP al usuario 100. ● exten=>:100,b,Hangup: Si el usuario no contesta se colgará automáticamente la llamada.

● Se configuró una IP estática para en el servidor siguiendo los pasos que se muestran a continuación: ● Se modificó el archivo ifcfg-eth0 que se encuentra en /etc/sysconfig/network- scripts/, en el HWADDR, se tuvo que escribir la MAC-Address de la tarjeta de red virtual que proporciona XenServer, y esa información se obtuvo de la pestaña “Networking” en XenCenter.

Figura 3.62 Configuración de archivo ifcfg-eth0

● Ya instalado y configurado el servidor, se agregó una utilidad a la máquina virtual para que inicie una vez que el prototipo sea encendido. Se realizó con los siguientes pasos: ● Se seleccionó la máquina virtual en XenCenter y en la pestaña General se copió el UUID:

Figura 3.63 UUID de Asterisk

● Ahora en la consola de Xenserver se escribe el comando:

Figura 3.64 Comando para auto inicio 57

● Después de haber introducido los cambios se reinició el servidor.

3.3.3 Metodología pruebas

En esta sección se realizaron las pruebas de los distintos servicios ofrecidos tales como: conectividad interna de la red, conectividad a Internet, administración remota, conexión a red privada virtual VPN, filtrado de páginas, servidor de archivos, servidor web, y telefonía de voz sobre IP. Todos los resultados de esta sección se analizarán con detalle en el capítulo 4.

3.3.3.1 Autoencendido del servidor Para probar que la característica de autoencendido funcionó, se apagó el interruptor del conector múltiple, y se volvió a encender esperando un lapso de 15 segundos. Esta prueba se realizó 10 veces esperando a que XenServer y las máquinas inicien automáticamente.

3.3.3.2 Conectividad interna

Después de haber configurado VyOS. Se hicieron una serie de pruebas, que son las siguientes:

● Con el VyOS se comprobó la conectividad a los gateways de las distintas redes. Se utilizaron los comandos: ● ping 192.168.30.1 ● ping 192.168.40.1

● Se comprobó conectividad entre los servidores (Samba y Asterisk). Se utilizaron los comandos: ● ping 192.168.30.2 ● ping 192.168.30.3

● Se conectó una laptop al switch, el cual está conectado a la tarjeta ethernet-PCI que se encuentra en la red 192.168.40.0/24. Esto sirvió para conocer si existe conectividad en dicha tarjeta.

58

3.3.3.3 Conectividad a Internet

Dentro de la máquina virtual con Windows XP se trató de comprobar la conectividad a Internet. Para llevar a cabo esta prueba, se utilizó un explorador web (Mozilla Firefox) en el cual se introdujo la dirección “google.com”.

Figura 3.65 Navegación por Internet

3.3.3.4 Administración remota Se realizaron distintas pruebas: ● Se trató de conectar remotamente con XenCenter a XenServer utilizando una computadora fuera de la red interna.

Figura 3.66 Conectando XenCenter a XenServer. 59

● Se trató de conectar por medio de OpenSSH a XenServer utilizando el programa Putty desde computadoras fuera de la red. ● Se trató de conectar por medio de OpenSSH utilizando el programa Putty al servidor de archivos, servidor web, y servidor de telefonía desde Windows XP dentro de la red.

Figura 3.67 Conectando a XenServer utilizando VPN.

Figura.3.68 Conectando a Asterisk utilizando VPN.

60

Figura 3.69 Conectando a Samba utilizando VPN.

Figura 3.70 Conectando a Webserver utilizando VPN.

 Adicionalmente, se conectó por medio de “Escritorio Remoto” a una de las máquinas virtuales con el sistema operativo Windows XP, se conectó desde una computadora con Windows 8. Esto se puede ver a detalle en el anexo F.

61

3.3.3.5 Red privada virtual Esta prueba tuvo como objetivo la comprobación de la conectividad a la VPN creada en el punto 3.3.2.4. Se utilizó Windows 8 que se encuentra fuera de la red para comprobar dicha conectividad.

● Configuración del cliente VPN en Windows 8

Se abrió el “Centro de redes y recursos compartidos” desde el panel de control (Network and Sharing Center).

Figura 3.71 Centro de Redes y Recursos Compartidos

Se seleccionó en “Configurar una nueva conexión o red” (Set up a new connection or network). En la nueva ventana se seleccionó “Conectarse a un área de trabajo” (Connect to a network place), tal y como muestra la imagen:

Figura 3.72 Preparación de la red o conexión 62

En la siguiente ventana se eligió el crear una nueva conexión.

Figura 3.73 Crear una nueva conexión VPN

Aquí se eligió que el tipo de conexión VPN.

Figura 3.74 Conectando a un lugar de trabajo

En la siguiente ventana se le asignó la dirección IP de la VPN que fue: 148.210.122.54 Como “Nombre de destino” se le asignó “VPN XenServer”. 63

Figura 3.75 Dirección IP de la VPN

Se le dio clic sobre el icono monitor que hay en la esquina inferior a mano derecha para abrir las redes disponibles.

Figura 3.76 Icono de las “redes disponibles”

Se dio clic derecho sobre la conexión “VPN XenServer” creada y se seleccionó para entrar a las propiedades.

Figura 3.77 Conexiones disponibles en Windows 8

64

Dentro de las propiedades, se seleccionó la pestaña de “Seguridad” y se configuraron los parámetros tal y como se muestra: ● Tipo de VPN: L2TP/IPSec ● Cifrado de datos: Requiere cifrado ● Permitir el protocolo de autenticación CHAP y MS-CHAP v2.

Figura 3.78 Propiedades de la VPN

En el tipo de VPN, se le dio clic sobre el botón “Configuración Avanzada” (Advanced Settings). Y se le asignó el uso de una llave pre-compartida (PSK), la cual se definió anteriormente como “LLAVEUACJ”.

65

Figura 3.79 Configuración de la llave PSK

Se aceptaron los cambios, y de nuevo abrimos las redes disponibles. Se conectó a la red “VPN XenServer”.

Figura 3.80 Conexión a la VPN específica

3.3.3.6 Web caché y filtrado web Después de haberse configurado el web caché, se utilizaron distintas máquinas virtuales para navegar a través de Internet. Y se comprobó que el web caché estuviera en funcionamiento, para esto dentro de VyOS se ejecutó el siguiente comando: ● show webproxy log Dentro de VyOS se realizó una configuración con los comandos que se muestran en la (figura 3.81), para bloquear la página “youtube.com” y esta sea redireccionada a la página “google.com”.

66

Figura 3.81 Filtrado web

3.3.3.7 Samba

Se realizaron varias pruebas: ● Se creó un archivo por el usuario “root” dentro del servidor, el cual ayudó a determinar si pueden ser vistos y modificables por otros usuarios.

Figura 3.82 Archivo creado por servidor Samba

● Se crearon archivos con otros usuarios distintos a “root” que se encuentran fuera del servidor.

3.3.3.8 Webserver

Se utilizó la herramienta llamada Apache Jmeter el cual permitió a generar múltiples solicitudes al servidor web. Se realizaron pruebas en la cual se simuló el tráfico de 1,000 usuarios.

● Se abrió Jmeter y se agregó un Thread Group y se agregaron los usuarios y las veces que se repetido la prueba

67

Figura 3.83 Configuración de usuarios Apache Jmeter

● Se agregó dentro de Thread Group un sampler HTTP request en el cual se configuró la dirección web mexicoconectado.com

Figura 3.84 Página web de prueba.

● Una vez hecho esto se inició la prueba.

3.3.3.9 Asterisk

Se realizaron pruebas de llamadas entre diferentes softphones para conocer si el servicio funciona correctamente. Estas pruebas fueron realizadas dentro de la red utilizando laptops con el sistema operativo Windows 7, con el software X-Lite y Zoipper.

Configuración X-Lite

● Dentro de X-Lite se dio clic a Softphone> Account Settings para agregar los datos de usuario y servidor.

68

Figura 3.85 Interfaz X-Lite.

● Se agregaron los datos requeridos para crear una cuenta de usuario (UserID, Domain, Password, Display name).

Figura 3.86 Detalles de usuarios.

● Una vez terminado de introducir los datos se guardan dando clic en Ok.

Configuración Zoiper

● Dentro de la interfaz de Zoiper se dio clic a Setting>Create a new account.

69

Figura 3.87 Interfaz Zoiper.

● Se escogió el protocolo SIP ya que las extensiones se crearon en sip.conf

Figura 3.88 Tipo de cuenta.

● Se ingresaron los datos de la extensión y dirección IP del servidor.

Figura 3.89 Credenciales de extensión. 70

● Una vez terminada la configuración de ambos softphones se procedió hacer las llamadas de la extensión 200 a la 100.

Figura 3.90 Marcación a la extensión 100.

71

Capítulo 4. Resultados de la investigación

En este capítulo se mostrarán los resultados obtenidos de las pruebas realizadas en el capítulo 3, las cuales ayudaron a comprobar el correcto funcionamiento de los servicios.

4.1 Presentación de resultados A lo largo de esta sección se muestran los resultados obtenidos en la sección de la metodología de pruebas, localizada en la sección 3.3.3. En la sección 4.2, se explicarán si los resultados obtenidos en estas pruebas tuvieron éxito o no.

4.1.1 Autoencendido

El servidor inició automáticamente cada vez que el interruptor se encendió, teniendo un resultado exitoso del 100% en la prueba, así mismo se verificaron que las máquinas virtuales estuviesen operando con normalidad cada vez que la prueba se realizó.

4.1.2 Conectividad interna de la red

Los resultados obtenidos en la prueba de conectividad fueron los siguientes:

● Resultado de la conectividad a los gateways.

Figura 4.1 Ping a los gateways

72

● Conectividad entre los servidores.

Figura 4.2 Probando conectividad entre servidores.

● El dispositivo obtuvo la dirección IP 192.168.40.10 la cual se puede ver en la línea de comandos con el comando ipconfig , esta dirección se encuentra en la red interna (figura 4.3)

Figura 4.3 Dirección IP del dispositivo

4.1.3 Conectividad a Internet

La prueba de la conectividad a Internet fue completada como se puede ver en la figura 4.4.

Figura 4.4 Navegador Firefox dentro del sitio “google.com” 73

4.1.4 Acceso remoto

En la figura 4.5 se visualiza la administración remota al XenServer por medio de XenCenter.

Figura 4.5. XenCenter conectado a XenServer.

En la Figura 4.6 se visualiza la administración remota al XenServer utilizando el software Putty con SSH.

Figura 4.6 Conexión SSH a XenServer

En la Figura 4.7 se visualiza la administración remota al servidor de telefonía de voz sobre IP, utilizando el software Putty con SSH.

74

Figura 4.7 Conexión SSH a Asterisk

En la Figura 4.7 se visualiza la administración remota al servidor de archivos, utilizando el software Putty con SSH.

Figura 4.8 Conexión SSH a Samba

En la Figura 4.7 se visualiza la administración remota al servidor web, utilizando el software Putty con SSH.

Figura 4.9 Conexión SSH a webserver 75

4.1.5 Conexión a Red Privada Virtual

Se verificó la conectividad de los clientes en la VPN en VyOS, con los siguientes comandos en las figuras 4.10 y 4.11:

Figura 4.10 Usuarios conectados a la VPN.

Figura 4.11 Dirección IP del cliente Windows 8.

Se probó conectividad al interior de la red con el comando:

Figura 4.12 Resultado de conectividad interna del cliente VPN.

4.1.6 Web caché y filtrado web

Se verificó el funcionamiento del web caché después de haber navegado por distintas páginas. Para esto, dentro de VyOS se ejecutó el siguiente comando: 76

● show webproxy log

Y como se muestra en la figura 4.13. Web caché almacenó todas las páginas que se visitaron.

El web caché ayuda a reducir el tiempo de espera cuando se navega por internet, almacenando páginas previamente visitadas.

Dentro de la red “interna” y “externa”, cuando se abre un navegador web y se intenta acceder a la página “youtube.com” (Figura 4.14), esta es redireccionada a la página web “http://google.com” inmediatamente (Figura 4.15).

Figura 4.13 Registro de web caché.

Figura 4.14 Intentando acceder al sitio “youtube.com”

77

Figura 4.15 Resultado de redireccionamiento web.

4.1.7 Servidor de archivos

Para poder acceder al servidor de archivos, en el sistema operativo Windows XP se abrió “Mis Documentos” y se escribió \\192.168.30.3, el cual es la dirección IP del servidor Samba. Una vez hecho esto permitió ver el archivo creado por el usuario “root” ver Figura 4.16 y modificarlo, además, de poder crear archivos con otros usuarios dentro de la red ver Figura 4.17.

Figura 4.16 Acceso a archivo creado por usuario “root”.

78

Figura 4.17 Archivo creado por usuario en Windows 10.

4.1.8 Servidor web

Los resultados obtenidos de la prueba con Apache Jmeter fueron los siguientes:

Figura 4.18 Resultados obtenidos en Apache Jmeter.

Figura 4.19 Resultados obtenidos en Apache Server.

79

4.1.9 Telefonía de voz sobre IP (Asterisk)

Después de haber configurado los softphones con sus respectivas extensiones, dentro de la consola de Asterisk se mostraron los siguientes resultados:

Figura 4.20 Asterisk se muestra que las extensiones fueron configuradas exitosamente.

Figura 4.21 Extensiones activas dentro de Asterisk.

Resultado exitoso al realizar la llamada de la extensión 200 a la 100.

Figura 4.22 Softphone recibiendo llamada.

4.2 Análisis e interpretación de resultados De acuerdo con las pruebas realizadas de autoencendido, el servidor respondió satisfactoriamente, haciéndolo confiable para que este inicie automáticamente tras un apagón eléctrico.

80

Como se puede ver en las figuras (4.1, 4.2 y 4.3), se demostró conectividad a la red interna con las máquinas virtuales, además por el puerto Ethernet-PCI. Teniendo con esto acceso a los servicios adicionales que brinda el prototipo. En la figura 4.3 se demostró conectividad a Internet por medio del puerto Ethernet-PCI.

A lo largo de este proyecto se utilizó XenCenter y Putty para conectarse al XenServer y a las máquinas virtuales, en el cual solo se tuvo problemas con la velocidad de Internet de la universidad; ya que la conectividad se realizó por medio de la red privada virtual de la UACJ. Además para poder conectarse a la VPN del XenServer, se tuvo que estar dentro de la red de la UACJ. Las pruebas de conectividad fueron parcialmente exitosas, debido a que no existe el acceso a Internet para cada cliente conectado de la VPN.

Respecto a las pruebas realizadas sobre el filtrado de páginas; la restricción y redirección de páginas web funcionó sin ningún error. El web caché no fue posible probar su rendimiento, más sin embargo se pudieron observar los registros de las páginas web visitadas, comprobando así su funcionamiento.

Como se muestra en las figuras 4.16 y 4.17, diferentes usuarios pudieron crear, modificar y ver todos los documentos que se encuentran en el servidor de archivos. Lo cual muestra el completo funcionamiento de este servicio, para todos los usuarios dentro de la red interna y externa.

Los resultados que se muestran en la figura 4.18 todas las solicitudes hechas por Apache Jmeter fueron exitosas, se comprobó durante esta prueba cuantas conexiones tenía el servidor web como se ve en la figura 4.19. Todo esto demostró que el servidor web pudo soportar la cantidad de mil usuarios simultáneos.

En la prueba del servicio de telefonía de voz sobre IP, se verificó que éste estuviera configurado correctamente, para que pudiera autenticar usuarios después de que se configurarán los softphones correctamente como se muestra en las Figuras 4.20 y 4.21, y permitiera llamadas entre estos (Figura 4.22). Y durante la llamada de prueba, se verificó el buen funcionamiento de la telefonía de voz sobre IP.

81

Capítulo 5. Discusiones, conclusiones y recomendaciones

5.1 Con respecto a las preguntas de investigación

¿Cuáles son los servicios básicos que los sitios públicos deben de otorgar?

1. Conectividad a Internet. 2. Firewall. 3. Servidor de archivos. 4. Servidor web. 5. Telefonía de voz sobre IP.

¿Cuáles serán los métodos para administrar el dispositivo remotamente?

XenServer puede ser administrado remotamente por XenCenter una herramienta con interfaz gráfica que permite crear máquinas virtuales, configuración de red, modificación dinámica de memoria RAM entre otras, también puede ser administrado por medio de terminal utilizando SSH el cual permite entrar a la terminal y configurar el servidor por línea de comando.

¿Cuáles serán las soluciones virtualizables para cada función y servicio?

Existen múltiples soluciones de software libre para las funciones básicas. Para la elección de los servidores se buscó que se tenga gran documentación, así como una comunidad de usuarios grande. En un inicio para la conectividad a Internet y firewall se tuvieron en mente distintos sistemas operativos como Vyatta, y ; de estos se eligió Vyatta por ser utilizada por empresas de nivel mundial (Rackspace, Amazon EC2)

Sin embargo, Vyatta por ser software propietario quedó descartado, así que se decidió usar un derivado de este nombre VyOS que cuenta con las mismas funcionalidades y es software libre.

Se eligió Samba porque provee servicios de compartición de archivos e impresión utilizando el protocolo SMB lo que permite la interacción de Linux y Windows. Además, permite configurar permisos para acceso de usuarios a diferentes carpetas, tales como, solo poder

82 leer archivos, requerir contraseña para entrar a carpeta, solo permitir administradores crear usuarios, entre otros.

Para el servidor web se eligió Apache ya que cuenta con la mayoría de páginas web en el mercado esto hace fácil de encontrar documentación o ayuda cuando se encuentra algún problema, además, se instaló el modelo “LAMP” el cual es un conjunto de tecnologías (Linux, Apache, MySQL,PHP) que es usado para crear páginas dinámicas.

En cuanto a la telefonía de voz sobre IP se eligió Asterisk por ser un sistema telefónico de software libre que ofrece una gran variedad de funcionalidades, y además es ligero en su ejecución. Asterisk permite el protocolo de comunicación SIP, el cual ofrece una calidad de audio excelente, además consume poco ancho de banda de la red.

¿Cuál va a ser la plataforma de integración (hardware y software)?

La plataforma de integración fue el hipervisor de tipo 1 XenServer instalado en una computadora Dell Precision T5600 de tipo workstation, que cuenta con:

● Tarjeta RAID. Dell PERC H310. ● Dos discos duros que están en configuración RAID-1, de 500GB y 250GB. ● Procesador Intel @2.0GHz de 6 núcleos, con 15MB de caché. ● Memoria RAM DDR3 16GB @1600MHz. ● Tarjeta de red PCI-Ethernet 10/100/1000.

¿Cómo se creará el esquema de integración y conexiones lógicas el interior de la solución autocontenida?

Dentro de XenServer está Dom0, que tiene acceso a los componentes físicos y a la administración de otros dominios. Dom0 permitió la asignación de recursos tales como cantidad de procesadores virtuales, cantidad de memoria RAM, espacio de disco duro y la creación de switches virtuales.

En cuanto a las conexiones lógicas XenServer utiliza vSwitch, que conecta mediante redes definidas por software a las distintas máquinas virtuales y las interfaces de red. Además se creó una red virtual aislada dentro de XenServer, la cual está conectada a VyOS, el cual se encarga del enrutamiento.

83

¿Cuál será la cantidad de usuarios conectados simultáneamente, que podrá soportar la solución autocontenida?

Esta pregunta de investigación no pudo ser contestada ya que tiene muchas variables, los servicios son quienes determinan la cantidad de usuarios a soportar, que a su vez estos servicios dependen de los recursos de hardware asignados en el virtualizador; así existen otros factores que son la velocidad del enlace a Internet y velocidad de las interfaces de red.

5.2 Con respecto al objetivo de la investigación

Como objetivo principal fue: reducir el riesgo de que los sitios pierdan conectividad. Este objetivo fue alcanzado porque se redujo el número de dispositivos a solo dos, como mínimo un servidor y un switch.

Los dispositivos mínimos que se entregan con el programa de “México conectado” son: un router, un firewall, un switch, y un servidor de archivos, lo que da un total de 4 dispositivos. Cada dispositivo a entregar cuenta tiene cierta probabilidad de falla, para reducir este problema se decidió virtualizar cada uno de los servicios así reduciendo la probabilidad de falla. Además existe un ahorro de cableado entre los servidores, el cual ayuda a eliminar la probabilidad de falla.

Respecto a los objetivos específicos:

● Sea administrado remotamente. El objetivo se cumplió en su totalidad, porque el sistema es administrado remotamente por XenCenter. O también se puede administrar mediante un cliente SSH.

● Proporcione una reducción de la posibilidad de fallas. Este objetivo se cumplió gracias a la reducción de dispositivos, la virtualización de los servicios y el inicio automático tras la pérdida de electricidad.

● Sea fácil de reparar, para que cualquier persona pueda realizar dicha tarea.

84

Este objetivo depende de la destreza y conocimientos de la persona en cuanto a tecnologías de información. Por ejemplo para un técnico en tecnologías de información resultará sencillo de repararlo.

● Sea escalable y adaptable según las necesidades de cada sitio. Dependiendo de las necesidades del sitio se podrán agregar recursos de hardware, esto puede ser más memoria RAM, más procesadores, más interfaces de red o incluso más prototipos.

● Flexible de agregar servicios adicionales según lo requieran los sitios públicos El objetivo se cumple, siempre y cuando los recursos de hardware sean suficientes.

5.3 Recomendaciones para futuras investigaciones

De igual forma como se realizó este prototipo, se puede realizar uno similar pero utilizando otro hipervisor, pueden ser Hyper-V o VMware-ESXi. Y así comparar su rendimiento, características y administración.

Integrar una NIC inalámbrica, permitiendo así la conectividad de dispositivos como laptops, teléfonos inteligentes, tabletas, y demás.

Tener un centro de datos, donde se monitoree y maneje cada sitio además de controlar los respaldos de máquinas virtuales importantes (servicios importantes), además tener imágenes de sistemas operativos utilizados.

85

ANEXO A

Protocolo corto

86

87

88

89

ANEXO B

Instalación de XenServer

El proceso de instalación XenServer se dividió en sub-tareas, en primer lugar se descargó la imagen a utilizar. Una vez descargada se tiene que crear un CD de instalación o se puede crear un USB booteable. Hecho lo anterior se instala el virtualizador.

Una vez instalado XenServer, se tiene que instalar XenCenter en una computadora con sistema operativo Windows para poder administrar el virtualizador de forma eficiente, rápida y cómoda.

Descarga de imagen

Se descargó el virtualizador XenServer directamente desde la página oficial (http://www.citrix.com/), existen 2 versiones, una gratis y otra de paga; se descargó la versión gratuita (el único requisito fue registrarse). El archivo descargado (XenServer- 6.2.0-install-cd.iso) viene en formato “.iso”, para instalarlo se creó un USB “Booteable”.

Creación de la USB Booteable

Se descargó el software “Universal USB Installer” desde la página oficial http://www.pendrivelinux.com/. Se ejecutó dicho software, en el cual el proceso se divide en 3 pasos:

1. Se seleccionó “Try Unlisted Linux ISO”, 2. Se selección el archivo “XenServer-6.2.0-install-cd.iso” descargado. 3. Se seleccionó la memoria letra de la USB que deseamos hacer Booteable, se da clic en “Create” y esperamos a que termine el proceso.

Ejecutar desde USB

Para que la computadora pudiese iniciar desde la memoria USB, se tuvo que modificar la secuencia de arranque dentro del BIOS. Cada máquina es distinta, en este caso se presionó la tecla F2 al encender la computadora y así para poder entrar al BIOS, ahí se modificó

90 la prioridad en el “Boot Settings” estableciendo a “Flash USB” como primera prioridad, se guardó la configuración del BIOS y se reinició la máquina. Se puso la memoria USB en la máquina y muestra la pantalla de bienvenida para la instalación de XenServer.

Figura A1 Pantalla inicial de XenServer

Instalación de XenServer

1. Se presionó la tecla “ENTER” para proceder con la instalación común. 2. Se pidió seleccionar el idioma de entrada de teclado: en este caso se seleccionó qwerty-us. 3. Pregunto si deseamos seguir con la instalación, por lo que si decidíamos continuar todo lo del disco seleccionado se borrará, se presionó en “Ok” para seguir con la instalación. 4. A continuación se aceptó el contrato de licenciamiento CITRIX. 5. Pidió los discos a utilizar para el almacenamiento de las máquinas virtuales. Se seleccionó el disco duro principal ‘sda – 500 GB’. 6. Se seleccionó el tipo de instalación “Local media”. 7. Se seleccionó la opción de no instalar los paquetes complementarios. 8. Muestra la opción de verificar nuestro dispositivo de instalación, en este caso se seccionó saltar la verificación. 9. Se asignó una contraseña de 6 caracteres. 10. La configuración de la red se hizo por medio de la configuración automática DHCP.

91

11. El nombre de host se especificó manual por defecto, y la configuración DNS automática por DHCP. 12. La zona horaria se seleccionó primero “América” después “Chihuahua”. 13. El tiempo del sistema se configuró de forma automática por NTP usando DHCP. 14. Finalmente se confirmó la instalación del virtualizador en “Install XenServer”. 15. Se esperó a que concluyera la instalación (10 minutos aproximadamente).

Figura A2. Pantalla de configuración de XenServer.

92

ANEXO C

Instalación de XenCenter

Una vez que XenServer ha sido instalado y se encuentra en ejecución, se puede ver una dirección IP en la pantalla de estatus, esta dirección es la que el virtualizador tiene en la red. Se tecleó dicha dirección IP en el navegador con sistema operativo Windows.

Figura B1. Página para descargar XenCenter

Una vez dentro se descargó el instalador de XenCenter. Se ejecutó el instalador de nombre “XenCenter.msi”, eligiendo los parámetros predeterminados.

93

ANEXO D

Instalación de CentOS 7

1. Una vez creada la máquina virtual con los requerimientos necesarios se esperara a que inicie la instalación del sistema operativo.

Figura C1 Instalación de CentOS 7.

2. Se presionó la tecla ENTER en Install CentOS 7. 3. Se esperó a que se terminara el chequeo de disco duro.

94

Figura C2 Prueba de disco duro.

4. Una vez terminado el chequeo se seleccionó el lenguaje del sistema operativo.

Figura C3 Selección de lenguaje de sistema operativo.

5. Una vez hecho esto se configuró el sistema operativo de la manera que se muestra en la figura 128.

95

Figura C4 Configuración básica de CentOS 7.

6. Una vez hecho esto se dio ENTER y mostró la siguiente pantalla donde se agregó la contraseña de “root”.

Figura C5 Introducción de contraseña a “root”.

7. Una vez hecho esto se terminó la instalación y se reiniciara el sistema operativo.

96

ANEXO E

Plan de contingencia

● Si el servidor no enciende (problema de hardware) Se tendrá que ir al sitio para revisar el servidor. El cual puede presentar problemas de disco duro, memoria RAM, procesador o fuente de alimentación. ● Disco duro. Se cuenta con dos discos duros (500GB y 250GB) en RAID tipo 1 el cual ayuda a tener una copia exacta del disco principal (500 GB). ▪ En caso de falla de cualquier disco duro, se utilizará el disco duro secundario para continuar los servicios Esto se hará apagando el servidor, desconectando el disco duro y cambiando el disco duro dañado por un nuevo. ▪ En caso de falla simultánea en los dos discos duros, hacer la reposición de ambos discos. ● Memoria RAM Probablemente se escuche un “sonido de alerta” al tratar de encender el servidor. ▪ Remover una memoria RAM de su “slot”, y tratar de encender el servidor. ● Si enciende hay que reemplazar dicha memoria removida. ● Si sigue sin encender, hay volver a colocar dicha memoria, y repetir el proceso con otra memoria. ● Fuente de poder. Si ninguna luz o abanico del servidor enciende, la fuente de poder se dañó y se tendrá que ir al sitio para reemplazarla. ● Procesador. Si después de realizar las pruebas anteriores de disco duro, memoria RAM y fuente de poder, y el servidor aun no enciende, probablemente el procesador se dañó y se tendrá que ir al sitio para reemplazarlo.

● Si un servicio deja de funcionar. Este problema es causado máquina virtual. ● Identificar el servicio que presenta fallas (el usuario llamo). 97

▪ Se entrará remotamente a dicha máquina virtual y se reiniciara el servicio, si esto no resuelve el problema se reiniciara la máquina virtual, como última opción se reemplaza la máquina virtual por un respaldo (snapshot) más reciente.

● El servidor de archivos cuenta con poco espacio de disco duro. ● Agregar más espacio de almacenamiento virtual. ▪ Apagar la máquina virtual. Por medio de XenCenter se agregará más espacio de disco duro. ● Algún servicio está comportándose lentamente ● Aumentar los recursos virtuales como procesador y memoria RAM. ▪ Apagar la máquina virtual. Por medio de XenCenter se agregará más memoria RAM y/o procesador según lo requiera. ● Si el servidor pierde conectividad ● Reiniciar el servidor para que se inicie el router virtual. ▪ Esto se hará manualmente, presionando el botón de encendido por 5 segundos, después se vuelve a presionar el botón de encendido. Si el proceso anterior no funciona, se desconectará y se volverá a conectar el servidor de la energía eléctrica. Se debe de esperar un par de minutos. ● Tarjeta de red ▪ Si el servidor sigue sin poder conectarse después de que se reinició, probablemente la tarjeta de red se dañó a causa de una descarga eléctrica. En este caso hay que ir al sitio para reemplazarla.

98

ANEXO F

Conexión de escritorio remoto

Se comprobó la conectividad con las máquinas virtuales. Para esto se entró a la VPN del servidor XenServer, seguido se utilizó el programa “Escritorio Remoto” de Microsoft, y accedimos a la máquina virtual con el sistema operativo Windows XP.

Figura E1 Conexión de escritorio remoto

Figura E2 Credenciales de usuario para conexión remota

La conexión remota se realizó con éxito, trabajando de una manera fluida y eficiente. Tal como se muestra en la figura E3.

99

Figura E3 Windows XP desde escritorio remoto

100

Bibliografía

[1] Información acerca de México Conectado. Disponible en: http://www.mexicoconectado.gob.mx/index.php/sobre-mexico-conectado [2] Constitución politica de los estados unidos mexicanos, artículo 6. [3] Módulo de Uso y Disponibilidad de las Tecnologías de la Información en los Hogares (MODUTIH) 2013, INEGI. [4] Coordinación para la Sociedad de la Información (CSIC). 31 Enero de 2014. [5] Coordinación para la Sociedad de la Información y el Conocimiento (CSIC), diciembre 2013. [6] P. Chaganti, «Xen Virtualization: A fast and practical guide to supporting multiple operating systems with the Xen hypervisor,» de Xen Virtualization: A fast and practical guide to supporting multiple operating systems with the Xen hypervisor, Packt Publishing, 2007, p. 148. [7] N. D. K. B. S. K. Sunay Tripathi, Crossbow Virtual Wire: Network in a Box, Solaris Kernel Networking, Sun Microsystems, Inc., 2009. [8] Oracle, Consolidating and Virtualizing Datacenter Networks with Oracle’s Network Fabric, An Oracle White Paper, December 2010. [9] N. D. K. B. S. K. Sunay Tripathi, Crossbow Virtual Wire: Network in a Box, Solaris Kernel Networking, Sun Microsystems, Inc., 2009. [10] M. M. Ka Ching Chan, «An Integrated Virtual and Physical Network Infrastructure for a Networking Laboratory,» July 14-17, 2012. [11] Virtualización, una solución para la eficiencia, seguridad y administración de intranets. Diego Martín, Mónica Marrero, Julián Urbano, Eduardo Barra y José- Antonio Moreiro. El profesional de la información, 2011, mayo-junio, v. 20, n. 3 [12] Máquinas Virtuales y Redes – Instalación, rendimiento, estudio, ventajas y opciones de Virtualización - Ishtiaq Ali and Natarajan Meghanathan – International. [13] Cómo establecer un Servidor de Virtualización. Paul Venezia. PC World, Octubre 2010.

101

[14] Un marco de seguridad para virtualización basada en entorno un informático. Patra .Nikitasha et al. / International Journal of Engineering Science and Technology (IJEST) [15] Migración de máquinas virtuales con un Hypervisor de Software Libre. Muhammad Rukunuddin Ghalib et.al / International Journal of Engineering and Technology (IJET), Junio 2013. [16] Beneficios empresariales de la virtualización en una infraestructura de las TIC. Ivan Pogarcic, David Krnjak, Davor Ozanic. International Journal of Engineering Business Management, Agosto 2012. [17] G. S. T. R. H. B. W. Evi Nemeth, «Unix and Linux System Administraton Handbook,» Prentice Hall, 24 Julio 2010, p. 991. [18] G. Ahmed, «Implementing Citrix: XenServer Quickstarter,» de Implementing Citrix: XenServer Quickstarter, Birmingham B3 2PB, UK., Packt Publishing Ltd., 2013, p. 89. [19] O. N. Foundation, «Software-Defined Networking: The New Norm for Networks,» nº april 13, 2012, p.7-8 2012. [20] «Brocade,» Brocade, [En línea]. Available: http://www.brocade.com/products/all/network-functions-virtualization/product- [21] details/5400-vrouter/index.page Red Hat®, «www..org,» [En línea]. Available: https://www.centos.org/docs/5/html/Deployment_Guide-en-US/ch-nfs.html. [22] I. Sun Microsystems, «tools.ietf.org,» March 1989. [En línea]. Available: https://tools.ietf.org/html/rfc1094. [23] I. Sun Microsystems, «tools.ietf.org,» June 1995. [En línea]. Available: https://tools.ietf.org/html/rfc1813. [24] I. Sun Microsystems, «https://tools.ietf.org/,» June 1995. [En línea]. Available: https://tools.ietf.org/html/rfc3530. [25] Evi Nemeth, G. S. (2010). Unix and Linux system administration handbook. Michigan: Prentice Hall. [26] Evi Nemeth, G. S. (2010). Unix and Linux system administration handbook. (pp. 1142-1145)Michigan: Prentice Hall.

102

[27] Microsoft. (n.d.). msdn.microsoft.com. Retrieved from http://msdn.microsoft.com/en- us/library/windows/desktop/aa365233%28v=vs.85%29.aspx [28] Microsoft. (n.d.). msdn.microsoft.com. Retrieved from http://msdn.microsoft.com/en-us/library/cc246482.aspx [29] Chris Hertel, S. t. (n.d.). SambaIntro.html. Retrieved from www.samba.org: http://www.samba.org/samba/docs/SambaIntro.html [30] Gerald Carter, J. T. (2007). Using Samba. In J. T. Gerald Carter, Using Samba (pp. 2-3). California: O'relly. [31] Ben Laurie, P. L. (2010). Apache The definitive Guide. In P. L. Ben Laurie, Apache The definitive Guide (pp. 2-5). California: O'reilly. [32] Regis J. Bates, (2003), Broadband Telecommunications Handbook, p. 526-529, Mc. GRAW-HILL. [33] David Gomillion, Barrie Dempster (2005), Constryuendo Sistemas Telefónicos con Asterisk, p. 6-9, Packt Publishing Ltd.

103