Upload
eduardo-aranguiz-olea
View
55
Download
3
Embed Size (px)
DESCRIPTION
super info
Citation preview
TECNOLGICO DE ESTUDIOS SUPERIORES DE COACALCO
Laboratorio de prcticas, modelado en tecnologas libres
I. Tesis Profesional
PARA OBTENER EL TTULO DE INGENIERO
PRESENTA
Daniel Campos Ojeda Erick Johans Zamorategui Nava
COACALCO DE BERRIOZABAL, MX. ABRIL, 2012
Tabla de contenido
NDICE DE IMGENES................................................................................................................... VII
NDICE DE TABLAS ........................................................................................................................ XI
INTRODUCCIN ............................................................................................................................. 1
1 IDENTIFICACIN Y PLANTEAMIENTO DEL PROBLEMA ............................................................. 3
1.1 Justificacin ....................................................................................................................... 5
1.2 Objetivos ........................................................................................................................... 6
1.2.1 General.................................................................................................................................... 6
1.2.2 Especficos ............................................................................................................................... 6
1.3 Alcances y Limitaciones ..................................................................................................... 7
2 FUNDAMENTOS TERICOS ................................................................................................... 10
2.1 Cloud Computing ............................................................................................................. 11
2.1.1 Caractersticas del Cloud Computing .................................................................................... 11
2.1.2 Tipos de servicios .................................................................................................................. 13
2.2 Linux ............................................................................................................................... 15
2.2.1 Caractersticas de Linux ........................................................................................................ 15
2.3 Virtualizacin .................................................................................................................. 17
2.3.1 Hypervisor ............................................................................................................................. 17
2.3.2 Tipos de virtualizacin .......................................................................................................... 18
2.3.3 TFTP....................................................................................................................................... 22
2.3.4 Cliente ligero ......................................................................................................................... 22
2.3.5 PXE ........................................................................................................................................ 22
2.4 Seguridad Informtica ..................................................................................................... 23
2.4.1 Qu es encriptar y desencriptar? ........................................................................................ 24
2.4.2 Filtrado de contenido web .................................................................................................... 25
2.4.3 Monitorizacin ...................................................................................................................... 26
2.4.4 Ataque de denegacin de servicio (DDOS) ........................................................................... 28
2.4.5 Por qu proteger un servidor Linux de ataques por fuerza bruta? .................................... 30
3 EVALUACIN Y SELECCIN DE HERRAMIENTAS .................................................................... 31
3.1 Proyectos de Virtualizacin: Hypervisors .......................................................................... 32
3.1.1 XEN ........................................................................................................................................ 32
3.1.2 KVM ....................................................................................................................................... 32
3.1.3 OpenVZ ................................................................................................................................. 33
3.1.4 VirtualBox ............................................................................................................................. 33
3.1.5 VmWare ................................................................................................................................ 33
3.1.6 Resultados de la evaluacin de hypervisors ......................................................................... 34
3.2 Gestin de Mquinas Virtuales: Plataformas de Virtualizacin .......................................... 35
3.2.1 VmWare: Server, Player, ESXi ............................................................................................... 36
3.2.2 Oracle Linux, Oracle Solaris .................................................................................................. 37
3.2.3 Proxmox ................................................................................................................................ 38
3.2.4 XenServer .............................................................................................................................. 38
3.2.5 Resultados del anlisis de los gestores de mquinas virtuales: ........................................... 38
3.3 Software Para Montar Un Servidor de Clientes ligeros ...................................................... 40
3.3.1 TCOS ...................................................................................................................................... 40
3.3.2 LTSP ....................................................................................................................................... 41
3.3.3 OpenThinClient OS ................................................................................................................ 42
3.3.4 Resultado de la evaluacin de herramientas para montar servidores de clientes ligeros ... 43
3.4 Seguridad ........................................................................................................................ 44
3.4.1 Encripcin AES ...................................................................................................................... 44
3.4.2 OpenDNS ............................................................................................................................... 46
3.4.3 Monitorizacin ...................................................................................................................... 47
3.4.4 Solucin en Ubuntu para Bomba Fork .................................................................................. 49
3.4.5 Proteccin de ataques por fuerza bruta con Fail2ban.......................................................... 51
4 PROPUESTA DEL MODELO DE RED ........................................................................................ 53
4.1 Descripcin del Modelo ................................................................................................... 54
4.2 Computadoras Cliente ..................................................................................................... 55
4.2.1 Computadoras obsoletas ...................................................................................................... 55
4.2.2 Clientes ligeros dedicados .................................................................................................... 58
4.3 Servidor virtual de clientes ligeros.................................................................................... 58
4.3.1 Memoria ............................................................................................................................... 58
4.3.2 Procesador ............................................................................................................................ 59
4.3.3 Disco duro ............................................................................................................................. 59
4.4 Servidor de mquinas virtuales ........................................................................................ 60
4.5 Red ................................................................................................................................. 62
4.5.1 Red cableada ......................................................................................................................... 62
4.5.2 Red inalmbrica .................................................................................................................... 63
4.5.3 Resumen ............................................................................................................................... 64
5 PRUEBA VIRTUAL DEL MODELO DE RED ................................................................................ 66
5.1 Elementos Utilizados en la Prueba ................................................................................... 67
5.1.1 Servidor ................................................................................................................................. 67
5.1.2 Hypervisor ............................................................................................................................. 67
5.1.3 Servidor virtual de clientes ligeros ........................................................................................ 68
5.1.4 DHCP ..................................................................................................................................... 68
5.2 Iniciando la Prueba .......................................................................................................... 70
5.3 Resultado de la Prueba .................................................................................................... 74
6 CONSIDERACIONES, CONCLUSIONES Y TRABAJOS FUTUROS ................................................. 76
6.1 Aspecto Econmico ......................................................................................................... 77
6.2 Aspecto Ambiental .......................................................................................................... 78
6.3 Aspecto Tecnolgico ........................................................................................................ 79
6.4 Aspecto Educativo ........................................................................................................... 79
6.5 En Resumen .................................................................................................................... 81
6.6 Conclusiones ................................................................................................................... 82
6.7 Trabajos Futuros .............................................................................................................. 87
REFERENCIAS ............................................................................................................................... 89
ANEXOS ..................................................................................................................................... 93
ANEXO A: ESCENARIO DEL SOFTWARE LIBRE EN AMBIENTE PROFESIONAL .................................... 94
ANEXO B: LICENCIAS DE SOFTWARE ............................................................................................. 96
ANEXO C: TIPOS DE RED EN AMBIENTES VIRTUALES ..................................................................... 98
ANEXO D: RECOMENDACIONES PARA REGLAMENTO, SEGURIDAD FSICA Y CONTRA INCENDIOS,
SEGURIDAD EN CONTRASEAS .................................................................................................... 99
ANEXO E: HERRAMIENTAS DE SOFTWARE LIBRE ......................................................................... 103
ANEXO F: HOW TO: INSTALACIN DE PROXMOX ........................................................................ 105
ANEXO G: HOW TO: INSTALACIN DE LTSP EN UBUNTU 11.04 .................................................... 108
ANEXO H: COMO ENCRIPTAR SISTEMA OPERATIVO .................................................................... 112
ANEXO I: HOW TO: INSTALAR MUNIN ........................................................................................ 122
ANEXO J: HOW TO: INSTALAR CONKY ......................................................................................... 128
ANEXO K: EJEMPLO DE UNA BOMBA FORK ................................................................................. 138
ANEXO L: HOW TO: INSTALAR FAIL2BAN .................................................................................... 140
GLOSARIO DE TRMINOS TCNICOS ........................................................................................... 145
ndice de Imgenes
Figura 1: Internet como Red de Dispositivos ......................................................................................... 11
Figura 2: Estructura de Cloud Computing .............................................................................................. 13
Figura 3: Representacin de un hypervisor con tres maquinas virtuales .............................................. 18
Figura 4:Emulacin por hardware .......................................................................................................... 18
Figura 5: El hypervisor media entre el hardware y la mquina virtual .................................................. 19
Figura 6: En la paravirtualizacin se comparte el proceso con el SO invitado ....................................... 20
Figura 7: Aislamiento de servidores ....................................................................................................... 21
Figura 8: Proceso de encripcin ............................................................................................................. 24
Figura 9: Ataque de denegacin de servicio distribuido ........................................................................ 28
Figura 10: Funcin de procesos Fork ...................................................................................................... 29
Figura 11: Diagrama VmWare ESXi ........................................................................................................ 36
Figura 12: Virtualizacin con Solaris ...................................................................................................... 37
Figura 13: Diagrama de red TCOS .......................................................................................................... 41
Figura 14: Diagrama del proyecto LTSP.................................................................................................. 41
Figura 15: Esquema de openThinClient OS ............................................................................................ 42
Figura 16: Verificar si ha quedado de manera correcta el nmero de procesos mximos ................... 50
Figura 17: Como hacer una Bomba Fork desde consola ........................................................................ 50
Figura 18: Solucin de Bomba Fork correcta ......................................................................................... 50
Figura 19: Modelo de infraestructura Cloud.ia ...................................................................................... 54
Figura 20: Diagrama del servidor de mquinas virtuales ....................................................................... 61
Figura 21: Diagrama de red completo .................................................................................................... 65
Figura 22: Appliance de openThinClient OS ........................................................................................... 68
Figura 23: Men de opciones VirtualBox ............................................................................................... 69
Figura 24: Diagrama de red virtual ......................................................................................................... 70
Figura 25: Estado inicial de la red........................................................................................................... 71
Figura 26: Diagrama de red final de la prueba ....................................................................................... 73
Figura 27: openThinClient sin clientes conectados ................................................................................ 73
Figura 28: openThinClient con un cliente conectado ............................................................................ 73
Figura 29: openThinClient con diez clientes conectados ....................................................................... 74
Figura 30: openThinClient un cliente conectado y firefox ..................................................................... 74
Figura 31: Consumo de recursos del servidor con 10 maquinas virtuales simultneas ........................ 75
Figura 32: Cuota de mercado de Sistemas operativos de escritorio ..................................................... 94
Figura 33: Cuota de mercado de sistemas operativos desde el punto de vista del desarrollador ........ 95
Figura 34: Inicio de Proxmox ................................................................................................................ 105
Figura 35: Configuracin de pas y teclado de Proxmox ...................................................................... 105
Figura 36: Contrasea y correo de administrador ............................................................................... 106
Figura 37: Datos de la red .................................................................................................................... 106
Figura 38: Ingreso de la IP del servidor ................................................................................................ 106
Figura 39: Login de Proxmox ................................................................................................................ 107
Figura 40: Datos del servidor ............................................................................................................... 107
Figura 41: Configuracin de red eth1 ................................................................................................... 108
Figura 42: Vista sin modificaciones del archivo isc-dhcp-server .......................................................... 109
Figura 43: Vista por default del archivo dhcpd.conf ............................................................................ 110
Figura 44: Fin de la creacin de la imagen del cliente ......................................................................... 111
Figura 45: Muestra del programa Thin Client Manager funcionando ................................................. 111
Figura 46: Ubicar disco duro con espacio libre .................................................................................... 113
Figura 47: Seleccionar configuracin de volumenes cifrados .............................................................. 114
Figura 48: Seleccionar particin con espacio libre ............................................................................... 114
Figura 49: Seleccionar la configuracin de gestor de volmenes (LVM) ............................................. 115
Figura 50: Cmo crear un grupo de volmenes ................................................................................... 116
Figura 51: Cmo seleccionar la particin boot..................................................................................... 116
Figura 52: Fin de tabla de particiones .................................................................................................. 117
Figura 53: Muestra de particiones creadas .......................................................................................... 117
Figura 54: Muestra de particiones finalizadas ..................................................................................... 118
Figura 55: Muestra de particiones creadas y cifradas.......................................................................... 119
Figura 56: Pantalla de inicio del sistema operativo para montar el cifrado ........................................ 120
Figura 57: Login de Ubuntu .................................................................................................................. 120
Figura 58: Escritorio de Ubuntu ........................................................................................................... 121
Figura 59: Ubicacin de las aplicaciones al inicio ................................................................................. 134
Figura 60: Ejemplo de cmo agregar Conky a las aplicaciones de inicio ............................................. 135
Figura 61: Termino de adicin de Conky a programas de inicio .......................................................... 135
Figura 62: Conky en escritorio .............................................................................................................. 137
ndice de Tablas
Tabla 1: Hypervisors evaluados .............................................................................................................. 34
Tabla 2: Plataformas de virtualizacin evaluadas .................................................................................. 39
Tabla 3: Resultado de Software para montar un servidor de Clientes Ligeros ...................................... 43
Tabla 4: Requisitos obligatorios para un cliente ligero .......................................................................... 56
Tabla 5: Requisitos para booteo de red para un cliente ligero .............................................................. 57
Tabla 6: Requisitos opcionales para un cliente ligero ............................................................................ 57
Tabla 7: Configuracin del servidor DHCP ............................................................................................. 69
Tabla 8: Mquinas Virtuales de la red virtual ........................................................................................ 71
Tabla 9: Consumo de memoria de los clientes ligeros ........................................................................... 74
Tabla 10: Tipos de Licencias de Software ............................................................................................... 97
Tabla 11: Tipos de red ............................................................................................................................ 98
Tabla 12: Listado de Software .............................................................................................................. 104
Tabla 13: Significado de los comandos de una Bomba Fork ................................................................ 139
1
Introduccin
La virtualizacin y los clientes ligeros son tecnologas que datan de los aos 60's. En aquella poca
eran utilizadas principalmente para aumentar la productividad y optimizar los recursos informticos.
En la actualidad se han renovado, en el caso de la virtualizacin, como base de los servicios de
cmputo en la nube.
Este documento presenta una propuesta para montar una infraestructura de red que combine la
tecnologa de virtualizacin y el modelo de clientes ligeros. La principal motivacin para desarrollar
este proyecto fue poder trabajar con tecnologa que no se utiliza o se utiliza poco en el ambiente
escolar actual y por los laboratorios de cmputo deficientes en el pas.
Con este modelo se pretende reducir costos de renovacin de infraestructura y centralizar los datos
aprovechando las caractersticas que tienen la virtualizacin y el uso de clientes ligeros.
ste documento est compuesto por los siguientes captulos: captulo uno: Identificacin y
planteamiento del problema, captulo dos: Fundamentos tericos, captulo tres: Evaluacin y
seleccin de herramientas, captulo cuatro: Propuesta del modelo de red, captulo cinco: Prueba
virtual del modelo de red y captulo seis: Consideraciones, conclusiones y trabajos futuros.
En el captulo uno, correspondiente a identificacin y planteamiento del problema, se plantea el
problema que da origen a la investigacin plasmada en ste documento as como los objetivos
derivados de esta problemtica.
En el captulo dos, correspondiente a fundamentos tericos, se incluyen conceptos que refuerzan los
conocimientos necesarios para el desarrollo de este proyecto, principalmente conceptos de
virtualizacin y de clientes ligeros.
2
En el captulo cuatro, referente a evaluacin y seleccin de herramientas, se incluyen comparativas
respecto a distintas herramientas evaluadas a fin de seleccionar las que integren mejor el proyecto.
En el captulo cuatro, llamado: Propuesta de modelo de red, se describe como tal, el procedimiento
tcnico para montar un laboratorio como el propuesto en ste documento, tomando en cuenta
ciertas consideraciones del lado del servidor, de los clientes y de la red.
En el captulo cinco correspondiente a prueba virtual del modelo de red, se describe la prueba
realizada del modelo propuesto as como el procedimiento, realizada totalmente en un ambiente
virtual.
En el captulo seis, llamado: Consideraciones, conclusiones y trabajos futuros, se mencionan algunos
aspectos a tener en cuenta, no necesariamente tcnicos, seguido de las conclusiones de este
documento y algunas sugerencias para trabajos futuros del mismo.
En los anexos se incluyen temas de apoyo que refuerzan algunos conceptos tratados en este
documento.
Laboratorio de prcticas, modelado en software libre by Daniel Campos Ojeda and Erick Johans
Zamorategui Nava is licensed under a Creative Commons Attribution 3.0 Unported License.
LABORATORIO DE PRCTICAS, MODELADO EN TECNOLOGAS LIBRES
Captulo 1
1 Identificacin y planteamiento del problema
"Si no est roto, no lo arregles"
Frase popular
Un problema comn en muchos centros de cmputo (escuelas, oficinas, hospitales, caf internet,
etc.) es la rapidez con la que sus equipos informticos caen en la obsolescencia, los avances
tecnolgicos obedecen a la ley de Moore, la cual dice que: aproximadamente cada 18 meses el
nmero de transistores dentro de los circuitos integrados se duplica, lo que tiene como consecuencia
que los equipos de cmputo queden obsoletos en poco tiempo y la crisis econmica que afecta al
mundo no es de ayuda cuando un centro de cmputo "necesita" renovar sus equipos.
En consecuencia, estos centros de cmputo funcionan con computadoras obsoletas y muchas veces
no permiten desarrollar ptimamente las tareas para las cuales fueron designadas esas
computadoras.
Captulo 1: Identificacin y planteamiento del problema
4
Para alargar el tiempo de uso de esos equipos de cmputo se puede recurrir a modelos de red de tipo
Terminal Server - Thin Client, en donde un cliente ligero (Thin Client) depende de un servidor para el
procesamiento de informacin. Este proyecto se apoya de la tecnologa de clientes ligeros y de
virtualizacin para crear una arquitectura de red distinta a la tradicional.
En un modelo de red tradicional, en donde todas las computadoras conectadas a la red son
responsables de sus propios recursos y cuentan con su propio sistema operativo, regularmente estn
diseadas para operar de manera ptima con su configuracin de fbrica. Cuando un laboratorio de
cmputo sufre del problema de obsolescencia en sus equipos y la escalabilidad de las computadoras
llega a su lmite, es posible implementar otro modelo de red que ayude a alargar la vida til de estas
computadoras.
Con la implementacin de ste modelo de red en un centro de cmputo, se reduce el problema de los
virus informticos, ya que al utilizar Linux como sistema operativo, el riesgo a la exposicin de virus es
menor en comparacin de Windows.
Al centralizar los documentos se reduce el costo de administracin del sistema, el sysadmin
nicamente trabaja fsicamente sobre una computadora, desde esa computadora tiene acceso a
todas las cuentas de usuario del sistema.
Socialmente, se busca impulsar el trabajo colaborativo desde la construccin de este modelo hasta la
implementacin y el uso del mismo, todo esto con software libre a travs de herramientas
colaborativas que promuevan el trabajo en equipo y que en un futuro impulsen el desarrollo de
tecnologa propia.
Captulo 1: Identificacin y planteamiento del problema
5
1.1 Justificacin
Con la implementacin de ste modelo de red en un centro de cmputo, se pretende aumentar el
tiempo de uso de las computadoras con la introduccin de un servidor y distintas configuraciones,
todo desarrollado con software libre.
El uso de tecnologas libres se puede traducir en reduccin de costos para los centros de cmputo y
en la independencia tecnolgica, adems puede ser un caso de estudio para requerimientos similares
en cuanto a diseo y solucin.
Adems, este modelo es adaptable a distintos escenarios en donde se necesita un modelo de red
econmico, de bajo a mediano rendimiento y que sea agradable con el medio ambiente.
Captulo 1: Identificacin y planteamiento del problema
6
1.2 Objetivos
1.2.1 General
Crear y proponer un modelo de red el cual integrar la tecnologa de virtualizacin con el modelo de
red cliente-servidor utilizando como Sistema Operativo Linux y herramientas de software libre para
otorgar el sistema operativo a computadoras que fungirn como clientes ligeros.
1.2.2 Especficos
Evaluar plataformas de virtualizacin
Evaluar herramientas para implementar clientes ligeros
Replicar modelos existentes de clientes ligeros y de virtualizacin
Crear y proponer modelo de red
Implementar seguridad
Probar virtualmente el modelo
Captulo 1: Identificacin y planteamiento del problema
7
1.3 Alcances y Limitaciones
Este modelo puede ser utilizado en centros de cmputo de baja demanda como: escuelas, pequeas
empresas, caf internet, pequeos laboratorios de cmputo, etc.
Se implementar un servidor de mquinas virtuales, una mquina virtual por cada interfaz de red
para dar servicio a distintos centros de cmputo.
Las computadoras cliente iniciarn el sistema por red, aprovechando las caractersticas naturales de
Linux, los clientes contarn con una cuenta de usuario personal y un espacio propio dentro del
servidor para almacenar datos.
Este modelo por limitaciones tecnolgicas, no est preparado para centros de cmputo de alta
demanda como: entornos de desarrollo, diseo, edicin de video, etc.
Con este modelo es posible virtualizar cualquier sistema operativo, incluso de Microsoft, pero por
limitaciones legales (licencia), los sistemas operativos de Microsoft no deben ser virtualizados.
Este proyecto es un modelo, las pruebas fsicas del modelo quedan a consideracin del interesado.
Captulo 1: Identificacin y planteamiento del problema
8
Metodologa de Investigacin y Desarrollo
Actividad Tcnicas Herramientas METAS
1. Comprender e identificar el problema
Observacin
Investigacin
Bsqueda de nuevos temas
Internet
Libros
Observacin e indagacin de soluciones existentes o alternativas e Identificacin del problema rea de oportunidad.
2. Idealizar y modelar propuesta de solucin.
Investigacin
Modelado
Procesador de textos
Internet
Libros
Pizarrn
Diseo conceptual del proyecto, alcances y limitaciones
3. Investigar las alternativas tecnolgicas para la resolucin del proyecto
Investigacin Internet
Libros
Conferencias
Identificacin de diversas alternativas y definicin de las herramientas tecnolgicas que sirvan para resolucin del problema.
4. laborar pruebas de los modelos existentes en las herramientas tecnolgicas de Virtualizacin y Clientes Ligeros.
Investigacin de manuales
Descarga y prueba de Sistemas Operativos, Herramientas de virtualizacin y herramientas para servidores de clientes ligeros.
Internet
Equipo de cmputo con caractersticas de servidor
Cableado estructurado
Switch
Determinar el uso de las herramientas que se poda utilizar para poder aplicar el modelo
5. Integrar el diagrama de modelado con herramientas tecnolgicas seleccionadas
Adaptacin e investigacin del uso de las herramientas.
Documentacin de la instalacin real con las versiones correctas.
Internet
Equipo de cmputo con caractersticas de servidor
Cableado estructurado
Switch
Diseo fsico del proyecto, con pruebas de ensayo y error
Captulo 1: Identificacin y planteamiento del problema
9
6. Testear y realizar pruebas virtuales
Generacin de maquinar virtuales con el uso de aplicaciones.
Internet
Equipo de cmputo con caractersticas de servidor
Cableado estructurado
Switch
Comprobacin del funcionamiento del modelo lgico y la integracin de las herramientas tecnolgicas para producir un servicio de un servidor que administre clientes ligeros y soporte la carga de aplicaciones.
7. Identificar y lineamientos de seguridad y monitoreo
Investigacin de vulnerabilidades acerca de servidores y Linux.
Procesador de textos
Computadora
Internet
Generacin y propuesta de lineamientos para proteger el servidor y mquinas virtuales.
8. Redactar y Documentar el proyecto de investigacin
Tcnicas de redaccin
Asesoras.
Procesador de texto
Computadora
Manuales
Referencias de Internet
Documento de Tesis
Los aspectos pertinentes a la creacin y montaje del modelo corren a cargo de Daniel Campos Ojeda
de la especialidad: Ingeniera de Software.
Los aspectos relacionados con la seguridad del modelo son desarrollados por Erick Johans
Zamorategui Nava de la especialidad: Auditora y Seguridad.
LABORATORIO DE PRCTICAS, MODELADO EN TECNOLOGAS LIBRES
Captulo 2
2 Fundamentos tericos
"Cuanto ms sabes, ms te das cuenta de que no sabes nada"
Scrates
"Obtener informacin de internet es como intentar beber agua de una manguera de incendios"
Mitchell Kapor
En el siguiente captulo se recopilan algunos conceptos que el lector necesita saber para comprender
el proyecto, si el lector est familiarizado con la virtualizacin y los clientes ligeros, puede hacer caso
omiso a este captulo, no obstante para entrar en contexto es conveniente leerlo.
Captulo 2: Fundamentos tericos
11
2.1 Cloud Computing
Figura 1: Internet como Red de Dispositivos Fuente: http://www.maestrosdelweb.com/editorial/cloud-computing-nueva-era-de-desarrollo/
Se define como una tecnologa que ofrece servicios a travs de la plataforma de internet. Los usuarios
de este servicio tienen acceso de forma gratuita o de pago, todo depende del servicio que se necesite
usar [2].
La computacin en la nube, consiste en la gestin y suministro de aplicaciones, informacin y datos
como un servicio. Estos servicios se proporcionan a travs de la nube, a menudo basado en un
modelo basado en el consumo [13].
2.1.1 Caractersticas del Cloud Computing
Auto Reparable: En caso de fallo, el ltimo Backup de la aplicacin pasa a ser automticamente la
copia primaria y se genera uno nuevo.
Captulo 2: Fundamentos tericos
12
El prrafo anterior es un comentario de los autores de ste documento
Escalable: Todo el sistema/arquitectura es predecible y eficiente. Si un servidor maneja 1000
transacciones, 2 servidores manejaran 2000 transacciones.
SLA: Regidos por un Acuerdo de Nivel de Servicio (SLA) que define varias polticas como cuales son los
tiempos esperados de rendimiento y en caso de pico, debe crear ms instancias.
Virtualizado: las aplicaciones son independientes del hardware en el que corran, incluso varias
aplicaciones pueden corren en una misma mquina o una aplicacin puede usar varias maquinas a la
vez.
Multipropsito: El sistema est creado de tal forma que permite a diferentes clientes compartir la
infraestructura sin preocuparse de ello y sin comprometer su seguridad y privacidad [2].
An incluyendo los conceptos de Cloud Computing en el marco terico, se recomienda tomar dichos
conceptos como lo que son, simples conceptos; durante las presentaciones que ha tenido este
proyecto se han detectado diversas confusiones respecto al uso de estos trminos. Estos "nuevos"
conceptos son utilizados en el proyecto con el fin de describir antiguos procesos que estn siendo
utilizados actualmente. En lo que respecta a este proyecto se concluye que: para poder hablar de
Cloud Computing como "nuevo" modelo de negocios, se deben cubrir varios aspectos: cmo medirlo,
cmo cobrarlo y cmo mantener alta disponibilidad, aspectos los cuales no son objetivos de este
documento.
Captulo 2: Fundamentos tericos
13
2.1.2 Tipos de servicios
La computacin en nube ha evolucionado en una variedad de servicios que incluyen recursos
compartidos, software y plataformas a demanda. Se dar a conocer una breve introduccin a cada
uno de estos tipos: SaaS (Software as a Service), PaaS (Plataform as a Service), IaaS (Infrastructure as
a Service) [4].
Figura 2: Estructura de Cloud Computing Fuente:http://www.denoe.es/test/wp-content/uploads/estructura-cloud-computing.png
2.1.2.1 Software as a Service (SaaS)
Software as a Service (Software como servicio) es un trmino utilizado para describir el software
desplegado en Internet y se caracteriza por que el proveedor licencia la aplicacin al suscriptor en un
modelo de "servicio por demanda". Los principales segmentos de mercado del modelo SaaS se
encuentran en tpicos como: administracin de contenido, colaboracin y Customer Relationship
Management (CRM) [4].
Captulo 2: Fundamentos tericos
14
2.1.2.2 Platform as a Service (PaaS)
Platform as a Service (Plataforma como Servicio) se refiere a un modelo que no slo ofrece la
plataforma de despliegue y adicionalmente una plataforma de desarrollo de aplicaciones completa.
Mientras que en el modelo SaaS se ofrecen aplicaciones listas para utilizarse, el modelo PaaS brinda la
opcin de construir una aplicacin personalizada utilizando la plataforma de desarrollo ofrecida. Los
proveedores PaaS ofrecen por medio de sus plataformas soporte para los lenguajes de programacin
ms comunes como Java o .NET reduciendo la dependencia de plataformas SaaS, que usualmente
casan los usuarios y organizaciones con su plataforma [4].
2.1.2.3 Infrastructure as a Service (IaaS)
Infrastructure as a Service (Infraestructura como servicio) es el tercer modelo de implementacin de
Cloud Computing y hace referencia a plataformas que ofrecen infraestructura de cmputo y
usualmente se encuentran desplegadas sobre un entorno de virtualizacin. La plataforma brinda la
alternativa de escalar la infraestructura de manera vertical (subir y bajar los recursos de cmputo) a
demanda y se paga por los recursos consumidos. Este modelo ofrece el ms alto grado de flexibilidad,
as como el menor grado de dependencia con la plataforma permitiendo a los usuarios migrar las
aplicaciones de un proveedor a otro. Por otro lado una implementacin sobre IaaS requiere
instalacin, configuracin y mantenimiento adicionales [4].
Captulo 2: Fundamentos tericos
15
2.2 Linux
Linux es un sistema operativo tipo Unix. Es libre, esto significa que no se debe pagar ningn tipo de
licencia a ninguna casa desarrolladora de software por el uso del mismo.
El sistema lo forman el ncleo del sistema (Kernel) ms un gran nmero de programas / bibliotecas
que hacen posible su utilizacin.
El sistema ha sido diseado y programado por multitud de programadores alrededor del mundo. El
ncleo del sistema sigue en continuo desarrollo bajo la coordinacin de Linus Torvalds, la persona
de la que parti la idea de este proyecto, a principios de la dcada de los noventa. Hoy en da,
grandes compaas, como IBM, SUN, HP, Novell y RedHat, entre otras muchas, aportan a Linux
grandes ayudas tanto econmicas como de cdigo [16].
2.2.1 Caractersticas de Linux
Linux al igual que Unix, es un sistema operativo diseado para operar en modo multiusuario y
multisesin, de tal modo que est optimizado para proporcionar servicio a varios usuarios a la vez,
adems de esto, Linux cuenta con las siguientes caractersticas:
Altamente personalizable.
Un sistema operativo econmico o incluso gratuito.
Todas las aplicaciones necesarias son econmicas o gratuitas.
Redes incorporadas al ncleo del sistema operativo.
Captulo 2: Fundamentos tericos
16
El prrafo anterior es un comentario de los autores de ste documento
Lo suficientemente pequeo como para entrar en dispositivos pequeos.
Lo suficientemente flexible y poderoso como para que se puedan usar computadoras porttiles
completas.
Lo suficientemente ahorrativo como para conservar la batera durante el mayor tiempo posible
[21].
Por las caractersticas mencionadas en el punto anterior, Linux es el sistema operativo ideal para el
proyecto por ser moldeable y adaptable tanto para el sistema base del servidor como para los
servidores de clientes ligeros. Adems la idea es que este proyecto sea lo ms libre posible, que
cualquiera pueda modificar cualquier aspecto que se involucre en la creacin o en la puesta en
marcha de ste modelo, de haber elegido un sistema operativo distinto, todo esto no sera posible.
Captulo 2: Fundamentos tericos
17
2.3 Virtualizacin
La virtualizacin consiste en la capacidad de separar el software del hardware en el que estn
instalados. Esta caracterstica aplicada al Cloud Computing se materializa en que el usuario no tiene
que preocuparse por la implementacin concreta de los servicios de la nube ni tener en cuenta el
hardware asociado a ellos [13].
La virtualizacin posibilita una optimizacin respecto al aprovechamiento de los recursos comunes, ya
que permite que las aplicaciones sean independientes del hardware en el que se ejecutan.
2.3.1 Hypervisor
Un hypervisor es el software encargado de mediar el hardware fsico con el hardware de las mquinas
virtuales. Existen hypervisores de 2 tipos, tipo 1 o bar-metal y tipo 2 o hosted.
El hypervisor bare-metal no funciona bajo un sistema operativo instalado sino que tiene acceso
directo sobre los recursos hardware, en este tipo de tecnologa de virtualizacin el hardware
soportado es ms limitado ya que normalmente es construido con un conjunto limitado de drivers.
Un hypervisor hosted requiere que instales primero un sistema operativo sobre el cual se instalar el
software de virtualizacin, de igual modo a como se instala cualquier aplicacin. Esta tecnologa
presenta una compatibilidad mayor con el hardware que la bare-metal, debido a que es el propio
sistema operativo el que se encarga de gestionar los drivers [18].
Captulo 2: Fundamentos tericos
18
Figura 3: Representacin de un hypervisor con tres maquinas virtuales Fuente: http://blog.virtualizamos.es/2011/09/21/%C2%BFque-tecnologia-de-hypervisor-de-virtualizacion-elegir/
2.3.2 Tipos de virtualizacin
2.3.2.1 Emulacin de Hardware
Esta es el tipo de emulacin ms compleja, con esta tcnica en el sistema anfitrin se utiliza una
mquina virtual que emula el hardware, como se muestra en la figura 4.
Figura 4:Emulacin por hardware Fuente: http://www.ibm.com/developerworks/linux/library/l-linuxvirt/
Captulo 2: Fundamentos tericos
19
El principal problema con la emulacin de hardware es que puede resultar lenta ya que cada
instruccin debe ser simulada por el hardware base.
Tiene como ventaja la posibilidad de ejecutar un sistema operativo sin modificar, incluso se pueden
ejecutar varias maquinas virtuales simulando procesadores diferentes.
2.3.2.2 Virtualizacin completa
Tambin llamada Virtualizacin nativa, utiliza un monitor de maquina virtual que media entre el
sistema operativo invitado y el hardware nativo. Algunas instrucciones protegidas deben capturarse y
manejarse dentro del hypervisor. El hardware no es propiedad del sistema operativo invitado sino
que es compartido a travs del hypervisor [7].
Figura 5: El hypervisor media entre el hardware y la mquina virtual Fuente: http://www.ibm.com/developerworks/linux/library/l-linuxvirt/
Captulo 2: Fundamentos tericos
20
La virtualizacin completa es ms rpida que la emulacin de hardware, pero el rendimiento es
menor que cuando se utiliza hardware y el sistema operativo nativo debido a la mediacin del
hypervisor.
La ventaja de utilizar virtualizacin completa es que un sistema operativo puede ser ejecutado sin
modificaciones, la nica restriccin es que el sistema operativo invitado debe soportar el hardware
anfitrin.
2.3.2.3 Paravirtualizacin
Este mtodo utiliza un hypervisor para compartir el acceso al hardware anfitrin pero integra cdigo
que est al tanto de la virtualizacin en el propio sistema operativo, esto evita la necesidad de
recompilar y capturar ya que los sistemas operativos virtualizados cooperan en el proceso de
virtualizacion [7].
Figura 6: En la paravirtualizacin se comparte el proceso con el SO invitado Fuente: http://www.ibm.com/developerworks/linux/library/l-linuxvirt/
Captulo 2: Fundamentos tericos
21
El prrafo anterior es un comentario de los autores de ste documento
La paravirtualizacin ofrece un rendimiento prximo al de un sistema no virtualizado, es posible
soportar varios sistemas operativos diferentes de manera concurrente.
2.3.2.4 Virtualizacin en el nivel del Sistema Operativo
Esta tcnica virtualiza los servidores encima del propio sistema operativo. Slo soporta un solo
sistema operativo y simplemente asla a los servidores de manera independiente [7].
Figura 7: Aislamiento de servidores Fuente: http://www.ibm.com/developerworks/linux/library/l-linuxvirt/
El papel de la virtualizacin dentro del proyecto ser virtualizar servidores de clientes ligeros para
aprovechar al mximo los tiempos muertos del procesador y sacar el mximo provecho del hardware
que sea utilizado como servidor, como beneficio se ahorran costos en la implementacin de
servidores y se facilita la administracin de los servicios. Para esto se ha elegido la virtualizacin
completa y la paravirtualizacin ya que se estarn virtualizando sistemas operativos completos.
Captulo 2: Fundamentos tericos
22
El prrafo anterior es un comentario de los autores de ste documento
2.3.3 TFTP
Son las siglas en ingls de: Protocolo de Transferencia de Archivos Trivial, es una forma de transferir
archivos muy simples, como una versin bsica de FTP. Uno de los usos ms comunes es la
transferencia de pequeos archivos entre computadoras de una red. Es ms rpido que FTP ya que
utiliza un protocolo de transporte UDP, por lo cual no lleva control de errores en la transmisin [17].
2.3.4 Cliente ligero
Un cliente ligero (thin-client) es una computadora cliente en una arquitectura de red cliente-servidor
que depende del servidor central para tareas de procesamiento, principalmente se encarga de
transportar la entrada y la salida entre el usuario y el servidor remoto [1].
2.3.5 PXE
Es un protocolo que consiste en la combinacin de los protocolos DHCP y TFTP. DHCP es utilizado
para localizar el servidor de arranque apropiado, con TFTP se descarga el programa inicial de
bootstrap y archivos adicionales.
Tanto TFTP como PXE son protocolos utilizados para el booteo por red. Para este proyecto son
indispensables estos protocolos pues las computadoras cliente solo tendrn la opcin de conectarse
al servidor por medio del booteo por red.
Captulo 2: Fundamentos tericos
23
2.4 Seguridad Informtica
La seguridad no era realmente vital, pero debido a la ayuda que proporciona a las necesidades
primarias antes, durante y despus de la vida de cualquier cosa (ya sea vida, proyecto, proceso, etc),
es considerada como fundamental o algunas veces como una necesidad primaria debido a su
importancia y por la necesidad que llega a existir por establecer un nivel de tranquilidad y confort.
La seguridad es la proteccin de amenazas o riesgos para estar exentos de peligros o daos,
ejerciendo confianza sobre algo o alguien que represente una menor ausencia de tener
vulnerabilidades, aunque esto no asegurar estar libre completamente de no tener ningn tipo de
percance, solo acerca a un nivel razonable de estar protegidos.
La seguridad informtica son las tcnicas, mtodos, documentos, programas o dispositivos que
protegen una computadora, sus datos, procesos y lo que conlleve a ella logrando su disponibilidad,
integridad y privacidad, procurando tener las menores vulnerabilidades posibles.
En todos los laboratorios de cmputo se debe tener un reglamento el cual debe ser acatado para
tener un ptimo funcionamiento del equipo de cmputo, tambin se debe contar con seguridad fsica
y seguridad contra incendios para proteger el servidor. Otro punto importante es tener contraseas
seguras, esto puede ser realizado mediante medidas de seguridad para contraseas.
Debido a que el modelo del proyecto no es fijo y est abierto a cualquier posibilidad de
implementacin, dentro del Anexo D tal se muestran ejemplos bsicos para la seguridad de cualquier
laboratorio de cmputo tales como:
Captulo 2: Fundamentos tericos
24
Reglamento de centro de cmputo
Seguridad fsica y contra incendios
Seguridad en contraseas
Los ejemplos que se muestran en el anexo son nicamente como un nivel bsico para cualquier tipo
de laboratorio y servirn solo como un perfil bajo para un laboratorio de cmputo.
2.4.1 Qu es encriptar y desencriptar?
La seguridad de la informacin privada o corporativa siempre es importante y una manera de poder
hacerla segura es encriptando la informacin.
Figura 8: Proceso de encripcin Fuente: http://3.bp.blogspot.com/-WZV-ZbqCz9g/TgQhmrlrgVI/AAAAAAAAAJ0/nhqOJCxtWKA/s1600/criptografia.jpg
La informacin que puede ser leda y entendida sin aplicarle ninguna transformacin se llama texto
plano. El mtodo que transforma el texto plano de tal manera que oculta su valor til es llamado
Captulo 2: Fundamentos tericos
25
encripcin o cifrado protegindolo con una contrasea. Cifrar el texto plano da como resultado un
documento ilegible y sin sentido que se denomina texto cifrado. El cifrado se usa para asegurarse de
que la informacin va a permanecer oculta a los ojos de aquellos a quienes no est destinada, incluso
aquellos que pueden ver el texto cifrado. El proceso de revertir el texto cifrado a su estado original
(texto plano) es llamado desencriptado o descifrado [24].
2.4.2 Filtrado de contenido web
Permite bloquear el contenido no deseado de pginas Web, restringe el acceso a pginas de
entretenimiento, compras, y pginas de chat, o la que deseemos, la mayora con contenido
pornogrfico, programas pirata un alto contenido de virus [19].
El filtrado de contenido Web, o la habilidad para tener el control de acceso a Internet, es una
actividad crtica para minimizar los riesgos de que los usuarios tengan acceso a Internet, dependiendo
el lugar en donde este implementado.
2.4.2.1 DNS
Los DNS (Domain Name System) traducen la direccin URL de una pgina de Internet (ej.
www.google.com.mx) a la IP que le corresponde (ej: http://74.125.227.100/). Aunque generalmente
no se conoce este proceso, se hace notar cuando no funciona correctamente.
Captulo 2: Fundamentos tericos
26
El prrafo anterior es un comentario de los autores de ste documento
Este servicio tiene diferentes propsitos, pero su nico fin es mejorar la manera en la que se navega
por Internet. Esto lo logra haciendo la navegacin ms segura y rpida. El problema principal con los
DNS es que la mayora de las personas utilizan el DNS que viene de manera predefinida con el
proveedor del servicio y generalmente, son lentos estn llenos de agujeros que presentan una
amenaza para el usuario.
2.4.3 Monitorizacin
A medida que un servidor es usado, crece el tamao de los datos, se agregan nuevos enlaces y
equipos, hasta el punto en que es muy difcil para los administradores estar al tanto del estado de la
red.
Es deseable disponer de informacin estadstica para conocer exactamente el consumo de las CPUs o
de ancho de banda. Una buena forma de justificar un pedido para mayor ancho de banda es,
precisamente, utilizando datos sobre su utilizacin que muestren que los enlaces estn saturados [14].
La monitorizacin del hardware y software del servidor sirve para poder ver que tanto es usado, es
benfica para conocer en todo momento el estado del equipo (tanto del pasado, como al instante),
los horarios en que son usados, si un intruso realiza tareas que no debe hacer el servidor (bot, botnet)
y poder anticiparse a los problemas que surjan, se encontraron dos buenas alternativas, Munin y
Conky.
Captulo 2: Fundamentos tericos
27
2.4.3.1 Porque monitorizar un servidor Linux guardando un historial
Monitorizar una computadora almacenando un historial es benfico debido a que de esta manera se
sabr que procesos son los ms usados, en qu momento es que una computadora colapsa, cuanto
ancho de banda usa la computadora (y las que se conecten a Internet directamente al servidor), si la
computadora realiza procesos indebidos, dentro de muchas otras cosas, y as poder determinar
fcilmente que problema pudo marcar una falla en el servidor por medio del registro guardado (logs).
Munin se usar como parte de la monitorizacin guardando un historial para poder verificar el uso a
mediano y largo plazo del servidor. Este programa puede agregar cualquier hardware o software para
que pueda ser mostrado en las grficas.
2.4.3.2 Por qu monitorizar un servidor Linux mostrando uso al momento?
La monitorizacin instantnea permite saber el estado de los componentes mientras son usados, de
esta manera si un componente est a punto de fallar o saturarse, se realiza mantenimiento
preventivo para arreglarlo o corregirlo.
El software que se usar es Conky, este software es personalizable para poder agregar cualquier
hardware o software que se requiera monitorear, se puede tener Conky siempre abierto sobre el
escritorio mostrando toda esa informacin sin que repercuta en el rendimiento general del equipo ya
que apenas consume recursos.
Captulo 2: Fundamentos tericos
28
2.4.4 Ataque de denegacin de servicio (DDOS)
Este tipo de ataques consiguen hacer miles o millones de peticiones a la vez a un servidor o de
manera web, consiguiendo as que no pueda responder a todas y se caiga o desmorone, consumiendo
sus recursos la reserva de conexiones hasta que la comunicacin se complete satisfactoriamente
se acabe el tiempo de espera para el establecimiento de conexiones. Estas acciones desembocan
lgicamente en la consiguiente saturacin del servidor afectado.
Generalmente estos ataques se producen por medio de los llamados zombies y bots,
y suelen ir asociados al IRC donde consiguen hacer que millones de IPS hagan esas millones de
peticiones al servidor o web, provocando su cada.
Figura 9: Ataque de denegacin de servicio distribuido Fuente: http://www.windowstecnico.com/archive/2011/09/05/dos-ataques-de-denegaci-243-n-de-servicio-i.aspx
Captulo 2: Fundamentos tericos
29
Un ataque DDOS tambin se le puede aplicar a un mvil o celular el cul contenga alguna falla o algn
bug. No siempre tiene que ser mediante un IRC o algo parecido. Este tipo de ataque como ya el
nombre indica, deniega el servicio mediante alguna tcnica, pero la tcnica no siempre tiene que ser
la misma [26].
2.4.4.1 Bomba Fork
La bomba fork es una forma de ataque del tipo denegacin (Dos) de servicio sobre una computadora
que implementa la operacin fork, su efecto se basa en la suposicin de que el nmero de programas
y procesos que se ejecutan rpidamente con el objetivo de saturar el espacio disponible en la lista de
procesos en una computadora [32].
Figura 10: Funcin de procesos Fork Fuente: http://upload.wikimedia.org/wikipedia/commons/thumb/5/52/Fork_bomb.svg/800px-Fork_bomb.svg.png
Captulo 2: Fundamentos tericos
30
Si la tabla de procesos se llega a saturar, entonces no se pueden iniciar nuevos programas hasta que
no se cierre alguno. En el caso que esto suceda, es muy poco probable que se pueda iniciar un
programa til ya que los procesos de la bomba estarn esperando para poder crear nuevos procesos
a la primera oportunidad que se les conceda. No slo ocupan espacio dentro de la lista de procesos,
tambin consumen tiempo de proceso y memoria de la mquina donde se ejecutan. Como resultado
de esto, las computadoras se vuelven lentas e incluso se pueden volver inutilizables dada la falta de
memoria y la imposibilidad de aprovechar el procesador.
2.4.5 Por qu proteger un servidor Linux de ataques por fuerza bruta?
Un ataque de diccionario (o tambin conocido como ataque por fuerza bruta) es un mtodo mediante
el cual alguien desde el exterior trata de acceder a la mquina utilizando una larga lista de usuarios-
contraseas (denominadas como diccionarios) que se sabe son muy utilizadas por los usuarios y los
prueba en repetidas ocasiones buscando dar con la combinacin acertada.
Una correcta configuracin de la computadora y el uso de contraseas correctas, reducen
considerablemente el riesgo pero no evita que la computadora pierda tiempo y recursos en denegar
un servicio [28].
LABORATORIO DE PRCTICAS, MODELADO EN TECNOLOGAS LIBRES
Captulo 3
3 Evaluacin y seleccin de herramientas
"La diferencia entre la teora y la prctica es que, en teora, no hay diferencia entre la teora y la prctica"
Richard Moore
En este captulo se realiza la propuesta del modelo de red.
Antes de proponer el modelo de red, es necesario evaluar herramientas referentes a la virtualizacin
y a los clientes ligeros, con el fin de conocer sus caractersticas y tener certeza de que pueden ser
integradas entre s para poner en funcionamiento el modelo de red, pues, se necesita de hardware y
software para que el modelo de red funcione.
A nivel software, para este modelo se necesitan tres tipos de herramientas las cuales fueron
clasificadas en tres grupos: hypervisors, gestores de mquinas virtuales y servidores de clientes
ligeros.
Captulo 3: Evaluacin y seleccin de herramientas
32
3.1 Proyectos de Virtualizacin: Hypervisors
Se evaluaron distintos hypervisors con el fin de seleccionar l o los que cubrieran las necesidades del
proyecto, se busca que estas herramientas permitan virtualizar sistemas operativos completos e
independientes del sistema base y que preferentemente sean software libre.
A continuacin, se mencionan algunos hypervisores que fueron evaluados para este proyecto.
3.1.1 XEN
Xen es una solucin de paravirtualizacin que implementa un hypervisor que se encarga de la
planificacin de tareas y de la gestin de memoria, delegando la gestin de la entrada/salida en un
invitado privilegiado (llamado domain 0 o dom0 en XEN).
3.1.2 KVM
KVM es una solucin de virtualizacin completa en la que se utiliza el ncleo de Linux como
hypervisor, de este modo tanto el control de los dispositivos reales, como la planificacin de tareas y
la gestin de memoria del sistema anfitrin las hace el ncleo de Linux.
Las mquinas virtuales son procesos normales del sistema, por esta razn la gestin de memoria y la
planificacin de procesos son las estndar del sistema.
Captulo 3: Evaluacin y seleccin de herramientas
33
3.1.3 OpenVZ
OpenVZ es un sistema de virtualizacin a nivel sistema operativo que se implementa como una serie
de parches sobre el ncleo Linux.
Lo que realiza esta herramienta de virtualizacin es incluir apoyo en el ncleo para crear y mantener
mltiples entornos de usuarios independientes (conocidos como VPS o Virtual Private Servers) sin
que exista una interferencia entre ellos.
3.1.4 VirtualBox
VirtualBox es desarrollado por Oracle. Se distribuye bajo distintas licencias: existe la versin privativa,
que es gratuita nicamente bajo uso personal o de evaluacin y est sujeta a la licencia de "Uso
Personal y de Evaluacin VirtualBox" (VirtualBox Personal Use and Evaluation License o PUEL) y la
versin Open Source, sujeta a la licencia GPL.
La licencia PUEL permite el uso acadmico de VirtualBox, por lo que es legal utilizarlo en los
laboratorios escolares de manera gratuita.
3.1.5 VmWare
VmWare es la solucin ms conocida y con ms presencia comercial, ofrece muchas prestaciones
para asegurar la alta disponibilidad, control y eficiencia de sistemas crticos, no obstante es el
Captulo 3: Evaluacin y seleccin de herramientas
34
producto ms cerrado de los evaluados y a pesar de contar con versiones gratuitas de sus productos,
estos cuentan con diversas limitaciones que no se pueden evitar si no se paga por su licencia
correspondiente.
3.1.6 Resultados de la evaluacin de hypervisors
La siguiente tabla es un fragmento de kernelnewbies.org, pgina de una comunidad de usuarios de
Linux que se dedica a ayudar a otros usuarios a conocer el funcionamiento del Kernel de Linux. Esta
tabla se toma como apoyo para la evaluacin y bsqueda del hypervisor adecuado para este
proyecto.
Virtualizacin completa
Paravirt Contenedores (OS virt)
Licencia Performance Sistema dedicado
Xen
GPL paravirt muy rpido, virtualizacin completa velocidad media
KVM
GPL Paravirt rpido, virtualizacin completa velocidad media
OpenVZ
GPL nativa VirtualBox
GPL/ proprietaria
rpida/muy rpida
VMware Server
proprietaria media/rpida VMware Workstation/Player
proprietaria media/rpida
VMware ESX
proprietaria rpida/muy rpida
Tabla 1: Hypervisors evaluados Fuente: http://virt.kernelnewbies.org/TechComparison
Captulo 3: Evaluacin y seleccin de herramientas
35
Como primera opcin se recomienda utilizar los hypervisors KVM y XEN pues ambos ofrecen
virtualizacin completa, como segunda opcin se recomienda VirtualBox por ser una solucin sencilla
y cumplir con los requerimientos de virtualizacin del proyecto (virtualizacin completa); la licencia
bajo la cual se distribuye VirtualBox permite utilizar este hypervisor sin necesidad de pagar una
licencia.
3.2 Gestin de Mquinas Virtuales: Plataformas de Virtualizacin
Adems de un Hypervisor, es conveniente que un proyecto de virtualizacin utilice un gestor de
mquinas virtuales para hacer sencilla la administracin del servidor de mquinas virtuales, para el
proyecto se evalan distintas plataformas de virtualizacin buscando un equilibrio entre rendimiento,
facilidad de instalacin, facilidad de uso y escalabilidad.
Se da preferencia a plataformas de virtualizacin que hagan uso de KVM y/o XEN, en el caso de estos
dos hypervisors, pueden ser administrados va consola por medio de comandos. En el caso de
VirtualBox, la interfaz de administracin est integrada con el hypervisor, no teniendo otra forma de
administrar ms que el propio VirtualBox.
A continuacin, se mencionan algunos gestores de mquinas virtuales evaluados para el proyecto:
Captulo 3: Evaluacin y seleccin de herramientas
36
3.2.1 VmWare: Server, Player, ESXi
VmWare cuenta con varios productos para la gestin de mquinas virtuales. En el caso de VmWare
Player, puede ser comparado directamente con VirtualBox, es una aplicacin que se ejecuta en el
escritorio, est orientada para uso personal, por lo que no cuenta con una alternativa para
administrar las mquinas virtuales desde web. El caso es similar con VmWare Workstation el cual
agrega algunas funciones ms a VmWare Player pero no deja de ser una herramienta para
virtualizacin personal.
VmWare Server es una opcin funcional para el proyecto ya que cuenta con un administrador va
web, no obstante VmWare ha dejado de dar soporte a este producto desde Junio de 2011. La
alternativa a la versin Server es VmWare ESXi, la principal diferencia es que este producto es un
hypervisor de nivel 1, es decir se instala directamente sobre el hardware del servidor, sin ningn
sistema operativo de por medio, como muestra la figura 11:
Figura 11: diagrama VmWare ESXi Fuente: http://www.vmware.com/files_inline/images/products_esx_esxi_diagram.jpg
Captulo 3: Evaluacin y seleccin de herramientas
37
3.2.2 Oracle Linux, Oracle Solaris
Solaris utiliza contenedores similares a OpenVz, es decir, es una solucin de Virtualizacin a nivel de
Sistema Operativo. Como alternativa existe un ejecutable de VirtualBox para Solaris para cubrir
necesidades de virtualizacin completa, as utilizando las opciones que proporciona Oracle, se pueden
cubrir todas las necesidades de virtualizacin. La figura 11 muestra las distintas posibilidades de
virtualizacin que ofrece Solaris.
Figura 12: Virtualizacin con Solaris Fuente: http://www.spi.es/solucion_virtualizacion.html
Captulo 3: Evaluacin y seleccin de herramientas
38
3.2.3 Proxmox
Proxmox Virtual Environment es un gestor de mquinas virtuales que integra los hypervisors de KVM,
y OpenVz, es un producto preparado para virtualizar a nivel Sistema Operativo y Virtualizar
completamente un sistema, posee una interfaz web lo que permite administrar el servidor
remotamente, adems est preparado para escalabilidad pues tiene instaladas herramientas de
cluster y alta disponibilidad. Es una distribucin bare-metal (hypervisor tipo 1), basada en Debian con
servicios bsicos para obtener un mejor rendimiento.
3.2.4 XenServer
XenServer es la plataforma de virtualizacin de Citrix, utiliza Xen como hypervisor, para su
administracin requiere de una aplicacin cliente solo disponible para Windows. Existe una versin
gratuita pero tiene muchas limitaciones que no permitiran la escalabilidad del sistema a menos que
se pagara por la licencia de una versin ms avanzada.
3.2.5 Resultados del anlisis de los gestores de mquinas virtuales:
La siguiente tabla muestra los distintos gestores de mquinas virtuales evaluados para el proyecto, as
como las caractersticas que se tomaron en cuenta al momento de la evaluacin.
Captulo 3: Evaluacin y seleccin de herramientas
39
Virtualizacin completa
paravirt containers (OS virt)
licencia Gestin Limitaciones entre versiones
VmWare
propietaria Local, remota por cliente
Oracle Solaris/Linux
Libre, propietaria
Remota por cliente
Proxmox
GPL Remota por web
XenServer
propietaria media/rpida
Tabla 2: Plataformas de virtualizacin evaluadas
El gestor elegido para administrar las mquinas virtuales es Proxmox Virtual Environment, es un
producto completo y sencillo de usar, adems de ser completamente libre, se distribuye bajo la
licencia GPL, por lo que ste fue el elegido para el modelo que aqu se plantea, adems la instalacin
es muy sencilla, se incluye un manual sobre cmo instalarlo en la seccin de anexos.
Proxmox rene las siguientes caractersticas:
Soporta Virtualizacin y Paravirtualizacin.
Gestin Web centralizada.
Configuracin en Cluster.
Live Migration (VMotion en VMware)
Storage ISCSI, FC , NFS
Migracin de archivos VDMK.
Hot Backup. [22]
Captulo 3: Evaluacin y seleccin de herramientas
40
3.3 Software Para Montar Un Servidor de Clientes ligeros
Para que las computadoras cliente puedan obtener el sistema operativo por medio de la red, dentro
de la red debe existir un servidor de clientes ligeros, que en este proyecto es virtual.
Para montar un servidor de clientes ligeros se necesita de software que permita que el sistema
operativo pueda trabajar como servidor de clientes ligeros. Se consideraron las siguientes
aplicaciones las cuales integran un conjunto de herramientas para montar servidores de clientes
ligeros en Linux: LTSP, TCOS y openThinClient.
La descripcin para los tres proyectos es prcticamente la misma: Es un conjunto de herramientas
que permiten implementar un servidor de clientes ligeros para bootear computadoras a travs de la
red. A continuacin, se hace una breve descripcin de los mismos:
3.3.1 TCOS
TCOS son las siglas de Thin Client Operating System, es un conjunto de herramientas para el arranque
de terminales ligeros y para su control, se distribuye bajo la licencia GPL2. La siguiente figura es un
diagrama representativo de una red montada con TCOS, en la cual se puede observar que es
necesario contar mnimo con dos interfaces de red para poder utilizarlo.
Captulo 3: Evaluacin y seleccin de herramientas
41
Figura 13: diagrama de red TCOS Fuente: http://wiki.tcosproject.org/File:Rede-tcos.png
3.3.2 LTSP
Son las siglas en ingls de: Proyecto Servidor de Terminales Linux, es un conjunto de aplicaciones que
le dan a un servidor basado en Linux la posibilidad de utilizar otras computadoras como clientes
ligeros. LTSP requiere de dos interfaces de red para funcionar, tal como lo muestra el diagrama de la
figura siguiente:
Figura 14: Diagrama del proyecto LTSP Fuente: http://www.linuxjournal.com/article/9097
Captulo 3: Evaluacin y seleccin de herramientas
42
3.3.3 OpenThinClient OS
OpenThinClient OS es un proyecto basado en TCOS el cual incluye como mejoras un gestor
desarrollado en Java y es compatible con Windows y Linux, la gestin de usuarios en Windows la
realiza mediante Active Directory y la gestin de usuarios en Linux la realiza mediante LDAP, siendo
posible implementar un servidor de clientes ligeros en cualquiera de estas dos plataformas. La
siguiente figura es un diagrama representativo de una red montada con openThinClient OS en la cual
se puede observar que: a diferencia de los otros dos servidores de clientes ligeros antes
mencionados, openThinClient OS slo necesita de una interfaz de red para funcionar.
Figura 15: Esquema de openThinClient OS Fuente: http://openthinclient.org/function
Captulo 3: Evaluacin y seleccin de herramientas
43
3.3.4 Resultado de la evaluacin de herramientas para montar servidores
de clientes ligeros
LTSP TCOS openThinClient OS
Memoria RAM mnima para clientes 16MB 32MB 64MB
NFS
Suficiente documentacin
DHCP interno
Tiene licencia GPL
Fcil instalacin
Fcil uso
Monitoreo
Interfaz de administracin Escritorio Escritorio Escritorio Tabla 3: Resultado de Software para montar un servidor de Clientes Ligeros
Cualquier solucin para clientes ligeros es ptima para este proyecto, LTSP es un proyecto extendido
pero con un circulo de desarrollo cerrado, TCOS es un proyecto mantenido slo por dos personas, lo
que hace pensar que el proyecto tiene un futuro incierto, sin embargo, el desarrollador del proyecto
tiene su propia empresa dedicada a instalar clientes ligeros (http://thinetic.es/), as que el mismo
depende de su desarrollo para continuar con su negocio. OpenThinClient OS es un proyecto con poca
documentacin, es completamente abierto y tiene como caracterstica a destacar de las otras dos
opciones mencionadas, el poder funcionar con una sola interfaz de red, adems de realizar la
administracin de usuarios con LDAP.
La eleccin de una u otra opcin queda a consideracin de cada persona interesada en el proyecto, la
decisin depender de las necesidades de la red que se est montando.
Captulo 3: Evaluacin y seleccin de herramientas
44
Otros proyectos de Servidores de Clientes Ligeros en Linux no se ven reflejados en este trabajo pues
fueron descartados por ser proyectos poco estables y/o abandonados o por no ser Software Libre.
3.4 Seguridad
En esta seccin se mostrarn las principales caractersticas, configuraciones, archivos importantes e
informacin relevante sobre los puntos dentro de la seccin 2.4 Seguridad Informtica del captulo
anterior de este mismo documento, demostrando porque es necesario tomar en cuenta los puntos
mencionados del captulo dos para este proyecto.
3.4.1 Encripcin AES
Haciendo referencia a la parte 2.4.1 Qu es encriptar y desencriptar? de este documento, se
demuestra porque se usa el cifrado AES en el proyecto.
El algoritmo AES utiliza una de las tres fortalezas de clave de cifrado: una clave de encriptacin
(contrasea) de 128-, 192-, o 256- bits. Cada tamao de la clave de cifrado hace que el algoritmo se
comporte ligeramente diferente, por lo que el aumento de tamao de clave no slo ofrece un mayor
nmero de bits con el que se pueden cifrar los datos, sino tambin aumentar la complejidad del
algoritmo de cifrado [3].
Captulo 3: Evaluacin y seleccin de herramientas
45
Para poder realizar una encripcin con AES-256 del Sistema Operativo Ubuntu desde su instalacin ,
revisar el ANEXO H al final de este documento.
3.4.1.1 Ventajas Encripcin del Sistema Operativo
La proteccin de la informacin en caso de robo fsico es poco contemplada, pero realmente es de
suma importancia debido a que si alguien roba un servidor de manera fsica, es preferible que no
tenga acceso a la informacin que se encuentre dentro de l o de ser posible que la vea pero no sea
entendible para que no pueda extraer los datos del disco duro.
Para poder brindar seguridad a este problema se implementa la encripcin del sistema operativo
completo y con una proteccin de una clave comn (contrasea), as en caso de robo no podr tener
acceso a la informacin o programas sin la clave comn con la cual se puede desencriptar el
contenido y tampoco ver la informacin conectando el disco duro en otra computadora puesto que
la informacin se encuentra encriptada por lo que no entender nada de su contenido.
3.4.1.2 Desventajas Encripcin del Sistema Operativo
La principal desventaja que se tiene cifrando el contenido y sobre todo con el cifrado AES es que la
tcnica de cifrado es realmente fuerte y en caso de no recordar la Clave comn, jams se podr
acceder a la informacin almacenada ni al sistema operativo, por lo que es necesario reinstalar todo
Captulo 3: Evaluacin y seleccin de herramientas
46
el sistema operativo que ha sido encriptado previamente y se perder la informacin que haya sido
guardada en el medio de almacenamiento administrado por dicho sistema operativo.
3.4.2 OpenDNS
Retomando el punto 2.4.2 Filtrado de contenido web usaremos OpenDNS para el filtrado web del
proyecto.
OpenDNS es un servicio totalmente gratuito que promete mejorar todos los aspectos negativos del
servicio de DNS de los proveedores de Internet. Este servicio tiene diferentes propsitos, pero un solo
fin que es el de mejorar la manera en la que se navega por Internet. Esto lo logra haciendo la
navegacin ms segura y rpida [9].
OpenDNS permite utilizar sus servidores DNS en lugar de usar lo que el proveedor de acceso a
Internet otorga por default.
OpenDNS es rpido y posee funciones de proteccin (anti-phishing y otros).
Caractersticas:
Generalmente ms rpido que el proveedor de acceso a Internet (estos poseen enormes
servidores, con un cach DNS importante)
Ms fiable (OpenDNS es muy fiable y sus servidores tienen una disponibilidad del 100%)
Autocorreccin de pequeos errores al teclear (google.cmo o gogle.com)
Proposicin automtica (Motor de bsqueda) si el dominio no existe.
Captulo 3: Evaluacin y seleccin de herramientas
47
Proteccin anti-phishing (OpenDNS est conectado directamente a PhishTank.com)
El servicio es gratuito
No hay necesidad de instalar ningn programa (slo la direccin del DNS por configurar)
Cuando sea es posible dejar de utilizar OpenDNS.
La mayora de usuarios de OpenDNS han constatado una mejora del rendimiento, en particular el de
los navegadores.
3.4.3 Monitorizacin
Tomando en cuenta el punto 2.4.3 Monitorizacin se demuestra porque se han usados dos
herramientas (una para la monitorizacin en tiempo real y otro que genere un historial) para el
control de recursos del servidor.
Cuando se tienen servidores, se vuelve una necesidad que sean monitorizados para estar alertas a
cadas o fallos en los servicios, puertos, y poder tomar las acciones correspondientes. Saber y
mantenerse enterados de que servicios estn corriendo, el uso del servidor, cadas del sistema entre
muchas otras cosas.
A continuacin se explican brevemente las 2 aplicaciones que se usaron para el monitoreo en este
proyecto.
Captulo 3: Evaluacin y seleccin de herramientas
48
3.4.3.1 Munin
Munin es un software de monitorizacin para equipos Linux bajo licencia GNU GPL, que permite
monitorizar muchos parmetros y visualizarlos en cmodas grficas diarias, semanales, mensuales y
anuales. Puede usarse para comprobar el estado de salud y carga de las mquinas, anticipar
problemas de rendimiento o capacidad y en caso de problemas ofrece valiosa informacin sobre los
momentos anteriores al problema para verificar cual fue la falla exacta.
Su funcionamiento se basa en un modelo cliente-servidor. En los clientes, llamados nodos, se
ejecutan los diversos plugins que conforman cada monitor que se desea controlar, y el servidor
central se comunica con cada nodo para recopilar peridicamente los datos que generan de forma
local los plugins.
Los logs se guardan en /var/log/munin
Para instalar este programa, configurarlo y ejecute sus funciones, se muestra el procedimiento en
ANEXO I.
3.4.3.2 Conky
Conky es una herramienta para monitorizar el sistema, es muy liviano y se encuentra disponible para
Linux, FreeBSD, y OpenBSD, es muy potente pero tambin es altamente configurable, y ha obtenido
varios premios por Linux, como uno de los programas "ms tiles y mejor mantenidos". Es una
aplicacin que dibuja informacin de texto en el escritorio para verificar el comportamiento del
sistema operativo y el hardware en que este instalado [12].
Captulo 3: Evaluacin y seleccin de herramientas
49
Puede monitorear muchas variables del sistema incluido el estatus del CPU, memoria, espacio del
swap, disco duro, temperaturas, procesos, interfaces de red, batera, sistema de mensajes, correos,
actualizaciones de Arch Linux, los ms populares reproductores de msica (MPD, XMMS2, BMPx,
Audacious), y mucho ms.
Para instalar, ejecutar al inicio del sistema y la ubicacin de los archivos de configuracin de Conky, se
muestra en el ANEXO J.
3.4.4 Solucin en Ubuntu para Bomba Fork
Para evitar ser vctima de los Ataques de Denegacin de Servicio explicada en el tema 2.4.4 Ataque de
Denegacin de Servicio (DDOS), se muestra la solucin en Ubuntu para evitarlo. Esto se realiza
editando un archivo de configuraciny se hace la prueba correspondiente para verificar los
resultados.
Para editar el archivo de configuracin escribir lo siguiente en la consola:
En ste archivo se debe agregar la siguiente lnea:
Cabe aclarar que cada distribucin viene configurada con un nmero de procesos mximos, aunque
varias distribuciones (dependiendo de la versin) tienen un nmero ilimitado de procesos a ejecutar.
* hard nproc 1000
sudo /etc/security/limits.conf
Captulo 3: Evaluacin y seleccin de herramientas
50
Para saber cul es el nmero mximo de procesos que pueden ser ejecutados por un usuario, se
escribe en consola el siguiente comando:
Para hacerlo desde la consola de comandos, escribir ulimit u 1000 para establecer como 1000 el
nmero de procesos mximos o el que se desee poner:
Figura 16: Verificar si ha quedado de manera correcta el nmero de procesos mximos
El nmero que se muestra cuando tecleamos el comando ulimit -u representa la cantidad de
procesos que puede se pueden ejecutar en la sesin activa, por lo cual si llega a poner un lmite, no
podr congelar la sesin o servidor.
Para comprobar que no se congela el servidor se escribe en la consola de comandos la bomba fork
como se muestra en la Figura 17.
Figura 17: Como hacer una Bomba Fork desde consola
Se puede observar que el sistema ya no se congela, de hecho posiblemente aparezca algo como:
Figura 18: Solucin de Bomba Fork correcta
ulimit -u
Captulo 3: Evaluacin y seleccin de herramientas
51
Para poder quitar esta lnea de la consola y tenerla en estado normal, presionar Ctrl + C, as se
cancelar el proceso, de esta manera se pueden poner otros comandos y seguir con el uso de la
consola [31].
Para ver diferentes ejemplos de cmo hacer una Bomba Fork, revisar el ANEXO K.
3.4.5 Proteccin de ataques por fuerza bruta con Fail2ban
Tomando en cuenta el punto 2.4.5 Por qu proteger un servidor Linux de ataques por fuerza bruta?
de este documento, se considera que para evitar la vulnerabilidad de fuerza bruta por medio de
intentos fallidos o de diccionario, es necesario implementar la herramienta Fail2ban para banear a
quienes intenten realizar este tipo de acciones.
Fail2ban es un script en Python el cual permite monitorizar los archivos de registro o logs para
analizar si se es objeto de un ataque de tipo fuerza bruta y as realizar diferentes acciones como:
Bloquea las direcciones Internet de donde se hayan originado varias tentativas fallidas de acceso
con contrasea invlida.
Bloquear mediante IPtables.
Hacer deny a la IP del atacante en el archivo hosts.
Realizar un whois.
Notificar al administrador de red sobre la accin.
Entre otras acciones que se pueden ir agregando a la configuracin.
Captulo 3: Evaluacin y seleccin de herramientas
52
Fail2Ban es extremadamente eficaz en la prevencin de ataques de fuerza bruta y ataques de
negacin de servicio (Dos) [25].
Para poder realizar una eficaz proteccin con Fail2Ban revisar el ANEXO L donde se explica cmo se
instala y configura el programa.
LABORATORIO DE PRCTICAS, MODELADO EN TECNOLOGAS LIBRES
Captulo 4
4 Propuesta del modelo de red
"Innovar es encontrar nuevos o mejorados usos a los recursos de los que ya disponemos"
Peter Drucker
En el captulo anterior se evalu el software que pondr a funcionar el modelo de red. En este
captulo se propone la infraestructura del modelo de red. Este modelo de red es creado basndose en
la infraestructura de la virtualizacin y los clientes ligeros, uniendo estas dos tecnologas para obtener
un modelo de red que permita montar un centro de cmputo de baja demanda, reutilizando equipo
de cmputo obsoleto.
Captulo 4: Propuesta del modelo de red
54
4.1 Descripcin del Modelo
El modelo consiste en montar un servidor de mquinas virtuales que alojar como sistema invitado
un servidor de clientes ligeros, de este modo se tienen en funcionamiento laboratorios de cmputo
independientes entre s pero centralizados en un mismo servidor. El diagrama de red que resulta de la
combinacin de estas dos tecnologas es el que se muestra en la figura siguiente.
Figura 19: Modelo de infraestructura Cloud.ia
Dentro del modelo se pueden identificar tres elementos importantes, los clientes, el servidor virtual
de clientes ligeros y el servidor de mquinas virtuales, en las siguientes secciones se profundizar en
estos tres aspectos.
Captulo 4: Propuesta del modelo de red
55
4.2 Computadoras Cliente
Las computadoras cliente actuarn como terminales en este modelo, por las caractersticas tcnicas
que deben tener esta