Virtualizacion de Servidores de Clientes Ligeros

162
TECNOLÓGICO DE ESTUDIOS SUPERIORES DE COACALCO Laboratorio de prácticas, modelado en tecnologías libres I. Tesis Profesional PARA OBTENER EL TÍTULO DE INGENIERO PRESENTA Daniel Campos Ojeda Erick Johans Zamorategui Nava COACALCO DE BERRIOZABAL, MÉX. ABRIL, 2012

Transcript of Virtualizacion de Servidores de Clientes Ligeros

Page 1: Virtualizacion de Servidores de Clientes Ligeros

TECNOLÓGICO DE ESTUDIOS SUPERIORES DE COACALCO

Laboratorio de prácticas, modelado en tecnologías libres

I. Tesis Profesional

PARA OBTENER EL TÍTULO DE INGENIERO

PRESENTA

Daniel Campos Ojeda Erick Johans Zamorategui Nava

COACALCO DE BERRIOZABAL, MÉX. ABRIL, 2012

Page 2: Virtualizacion de Servidores de Clientes Ligeros

Tabla de contenido

ÍNDICE DE IMÁGENES................................................................................................................... VII

ÍNDICE DE TABLAS ........................................................................................................................ XI

INTRODUCCIÓN ............................................................................................................................. 1

1 IDENTIFICACIÓN Y PLANTEAMIENTO DEL PROBLEMA ............................................................. 3

1.1 Justificación ....................................................................................................................... 5

1.2 Objetivos ........................................................................................................................... 6

1.2.1 General.................................................................................................................................... 6

1.2.2 Específicos ............................................................................................................................... 6

1.3 Alcances y Limitaciones ..................................................................................................... 7

2 FUNDAMENTOS TEÓRICOS ................................................................................................... 10

2.1 Cloud Computing ............................................................................................................. 11

2.1.1 Características del Cloud Computing .................................................................................... 11

2.1.2 Tipos de servicios .................................................................................................................. 13

2.2 Linux ............................................................................................................................... 15

2.2.1 Características de Linux ........................................................................................................ 15

Page 3: Virtualizacion de Servidores de Clientes Ligeros

2.3 Virtualización .................................................................................................................. 17

2.3.1 Hypervisor ............................................................................................................................. 17

2.3.2 Tipos de virtualización .......................................................................................................... 18

2.3.3 TFTP....................................................................................................................................... 22

2.3.4 Cliente ligero ......................................................................................................................... 22

2.3.5 PXE ........................................................................................................................................ 22

2.4 Seguridad Informática ..................................................................................................... 23

2.4.1 ¿Qué es encriptar y desencriptar? ........................................................................................ 24

2.4.2 Filtrado de contenido web .................................................................................................... 25

2.4.3 Monitorización ...................................................................................................................... 26

2.4.4 Ataque de denegación de servicio (DDOS) ........................................................................... 28

2.4.5 ¿Por qué proteger un servidor Linux de ataques por fuerza bruta? .................................... 30

3 EVALUACIÓN Y SELECCIÓN DE HERRAMIENTAS .................................................................... 31

3.1 Proyectos de Virtualización: Hypervisors .......................................................................... 32

3.1.1 XEN ........................................................................................................................................ 32

3.1.2 KVM ....................................................................................................................................... 32

3.1.3 OpenVZ ................................................................................................................................. 33

Page 4: Virtualizacion de Servidores de Clientes Ligeros

3.1.4 VirtualBox ............................................................................................................................. 33

3.1.5 VmWare ................................................................................................................................ 33

3.1.6 Resultados de la evaluación de hypervisors ......................................................................... 34

3.2 Gestión de Máquinas Virtuales: Plataformas de Virtualización .......................................... 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 análisis de los gestores de máquinas 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 evaluación de herramientas para montar servidores de clientes ligeros ... 43

3.4 Seguridad ........................................................................................................................ 44

3.4.1 Encripción AES ...................................................................................................................... 44

3.4.2 OpenDNS ............................................................................................................................... 46

3.4.3 Monitorización ...................................................................................................................... 47

Page 5: Virtualizacion de Servidores de Clientes Ligeros

3.4.4 Solución en Ubuntu para Bomba Fork .................................................................................. 49

3.4.5 Protección de ataques por fuerza bruta con Fail2ban.......................................................... 51

4 PROPUESTA DEL MODELO DE RED ........................................................................................ 53

4.1 Descripción 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 máquinas virtuales ........................................................................................ 60

4.5 Red ................................................................................................................................. 62

4.5.1 Red cableada ......................................................................................................................... 62

4.5.2 Red inalámbrica .................................................................................................................... 63

4.5.3 Resumen ............................................................................................................................... 64

5 PRUEBA VIRTUAL DEL MODELO DE RED ................................................................................ 66

Page 6: Virtualizacion de Servidores de Clientes Ligeros

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 Económico ......................................................................................................... 77

6.2 Aspecto Ambiental .......................................................................................................... 78

6.3 Aspecto Tecnológico ........................................................................................................ 79

6.4 Aspecto Educativo ........................................................................................................... 79

6.5 En Resumen .................................................................................................................... 81

6.6 Conclusiones ................................................................................................................... 82

6.7 Trabajos Futuros .............................................................................................................. 87

REFERENCIAS ............................................................................................................................... 89

ANEXOS ..................................................................................................................................... 93

Page 7: Virtualizacion de Servidores de Clientes Ligeros

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 FÍSICA Y CONTRA INCENDIOS,

SEGURIDAD EN CONTRASEÑAS .................................................................................................... 99

ANEXO E: HERRAMIENTAS DE SOFTWARE LIBRE ......................................................................... 103

ANEXO F: HOW TO: INSTALACIÓN DE PROXMOX ........................................................................ 105

ANEXO G: HOW TO: INSTALACIÓN 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 TÉRMINOS TÉCNICOS ........................................................................................... 145

Page 8: Virtualizacion de Servidores de Clientes Ligeros

Índice de Imágenes

Figura 1: Internet como Red de Dispositivos ......................................................................................... 11

Figura 2: Estructura de Cloud Computing .............................................................................................. 13

Figura 3: Representación de un hypervisor con tres maquinas virtuales .............................................. 18

Figura 4:Emulación por hardware .......................................................................................................... 18

Figura 5: El hypervisor media entre el hardware y la máquina virtual .................................................. 19

Figura 6: En la paravirtualización se comparte el proceso con el SO invitado ....................................... 20

Figura 7: Aislamiento de servidores ....................................................................................................... 21

Figura 8: Proceso de encripción ............................................................................................................. 24

Figura 9: Ataque de denegación de servicio distribuido ........................................................................ 28

Figura 10: Función de procesos Fork ...................................................................................................... 29

Figura 11: Diagrama VmWare ESXi ........................................................................................................ 36

Figura 12: Virtualización 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 número de procesos máximos ................... 50

Page 9: Virtualizacion de Servidores de Clientes Ligeros

Figura 17: Como hacer una Bomba Fork desde consola ........................................................................ 50

Figura 18: Solución de Bomba Fork correcta ......................................................................................... 50

Figura 19: Modelo de infraestructura Cloud.ia ...................................................................................... 54

Figura 20: Diagrama del servidor de máquinas 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 simultáneas ........................ 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

Page 10: Virtualizacion de Servidores de Clientes Ligeros

Figura 35: Configuración de país y teclado de Proxmox ...................................................................... 105

Figura 36: Contraseña 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: Configuración 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 creación 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 configuración de volumenes cifrados .............................................................. 114

Figura 48: Seleccionar partición con espacio libre ............................................................................... 114

Figura 49: Seleccionar la configuración de gestor de volúmenes (LVM) ............................................. 115

Figura 50: Cómo crear un grupo de volúmenes ................................................................................... 116

Figura 51: Cómo seleccionar la partición boot..................................................................................... 116

Figura 52: Fin de tabla de particiones .................................................................................................. 117

Page 11: Virtualizacion de Servidores de Clientes Ligeros

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: Ubicación de las aplicaciones al inicio ................................................................................. 134

Figura 60: Ejemplo de cómo agregar Conky a las aplicaciones de inicio ............................................. 135

Figura 61: Termino de adición de Conky a programas de inicio .......................................................... 135

Figura 62: Conky en escritorio .............................................................................................................. 137

Page 12: Virtualizacion de Servidores de Clientes Ligeros

Índice de Tablas

Tabla 1: Hypervisors evaluados .............................................................................................................. 34

Tabla 2: Plataformas de virtualización 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: Configuración del servidor DHCP ............................................................................................. 69

Tabla 8: Máquinas 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

Page 13: Virtualizacion de Servidores de Clientes Ligeros

1

Introducción

La virtualización y los clientes ligeros son tecnologías que datan de los años 60's. En aquella época

eran utilizadas principalmente para aumentar la productividad y optimizar los recursos informáticos.

En la actualidad se han renovado, en el caso de la virtualización, como base de los servicios de

cómputo en la nube.

Este documento presenta una propuesta para montar una infraestructura de red que combine la

tecnología de virtualización y el modelo de clientes ligeros. La principal motivación para desarrollar

este proyecto fue poder trabajar con tecnología que no se utiliza o se utiliza poco en el ambiente

escolar actual y por los laboratorios de cómputo deficientes en el país.

Con este modelo se pretende reducir costos de renovación de infraestructura y centralizar los datos

aprovechando las características que tienen la virtualización y el uso de clientes ligeros.

Éste documento está compuesto por los siguientes capítulos: capítulo uno: Identificación y

planteamiento del problema, capítulo dos: Fundamentos teóricos, capítulo tres: Evaluación y

selección de herramientas, capítulo cuatro: Propuesta del modelo de red, capítulo cinco: Prueba

virtual del modelo de red y capítulo seis: Consideraciones, conclusiones y trabajos futuros.

En el capítulo uno, correspondiente a identificación y planteamiento del problema, se plantea el

problema que da origen a la investigación plasmada en éste documento así como los objetivos

derivados de esta problemática.

En el capítulo dos, correspondiente a fundamentos teóricos, se incluyen conceptos que refuerzan los

conocimientos necesarios para el desarrollo de este proyecto, principalmente conceptos de

virtualización y de clientes ligeros.

Page 14: Virtualizacion de Servidores de Clientes Ligeros

2

En el capítulo cuatro, referente a evaluación y selección de herramientas, se incluyen comparativas

respecto a distintas herramientas evaluadas a fin de seleccionar las que integren mejor el proyecto.

En el capítulo cuatro, llamado: Propuesta de modelo de red, se describe como tal, el procedimiento

técnico 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 capítulo 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 capítulo seis, llamado: Consideraciones, conclusiones y trabajos futuros, se mencionan algunos

aspectos a tener en cuenta, no necesariamente técnicos, 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 prácticas, modelado en software libre by Daniel Campos Ojeda and Erick Johans

Zamorategui Nava is licensed under a Creative Commons Attribution 3.0 Unported License.

Page 15: Virtualizacion de Servidores de Clientes Ligeros

LABORATORIO DE PRÁCTICAS, MODELADO EN TECNOLOGÍAS LIBRES

Capítulo 1

1 Identificación y planteamiento del problema

"Si no está roto, no lo arregles"

Frase popular

Un problema común en muchos centros de cómputo (escuelas, oficinas, hospitales, café internet,

etc.) es la rapidez con la que sus equipos informáticos caen en la obsolescencia, los avances

tecnológicos obedecen a la ley de Moore, la cual dice que: aproximadamente cada 18 meses el

número de transistores dentro de los circuitos integrados se duplica, lo que tiene como consecuencia

que los equipos de cómputo queden obsoletos en poco tiempo y la crisis económica que afecta al

mundo no es de ayuda cuando un centro de cómputo "necesita" renovar sus equipos.

En consecuencia, estos centros de cómputo funcionan con computadoras obsoletas y muchas veces

no permiten desarrollar óptimamente las tareas para las cuales fueron designadas esas

computadoras.

Page 16: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 1: Identificación y planteamiento del problema

4

Para alargar el tiempo de uso de esos equipos de cómputo 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 información. Este proyecto se apoya de la tecnología de clientes ligeros y de

virtualización 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 están

diseñadas para operar de manera óptima con su configuración de fábrica. Cuando un laboratorio de

cómputo sufre del problema de obsolescencia en sus equipos y la escalabilidad de las computadoras

llega a su límite, es posible implementar otro modelo de red que ayude a alargar la vida útil de estas

computadoras.

Con la implementación de éste modelo de red en un centro de cómputo, se reduce el problema de los

virus informáticos, ya que al utilizar Linux como sistema operativo, el riesgo a la exposición de virus es

menor en comparación de Windows.

Al centralizar los documentos se reduce el costo de administración del sistema, el sysadmin

únicamente trabaja físicamente 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 construcción de este modelo hasta la

implementación y el uso del mismo, todo esto con software libre a través de herramientas

colaborativas que promuevan el trabajo en equipo y que en un futuro impulsen el desarrollo de

tecnología propia.

Page 17: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 1: Identificación y planteamiento del problema

5

1.1 Justificación

Con la implementación de éste modelo de red en un centro de cómputo, se pretende aumentar el

tiempo de uso de las computadoras con la introducción de un servidor y distintas configuraciones,

todo desarrollado con software libre.

El uso de tecnologías libres se puede traducir en reducción de costos para los centros de cómputo y

en la independencia tecnológica, además puede ser un caso de estudio para requerimientos similares

en cuanto a diseño y solución.

Además, este modelo es adaptable a distintos escenarios en donde se necesita un modelo de red

económico, de bajo a mediano rendimiento y que sea agradable con el medio ambiente.

Page 18: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 1: Identificación y planteamiento del problema

6

1.2 Objetivos

1.2.1 General

Crear y proponer un modelo de red el cual integrará la tecnología de virtualización 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 fungirán como clientes ligeros.

1.2.2 Específicos

Evaluar plataformas de virtualización

Evaluar herramientas para implementar clientes ligeros

Replicar modelos existentes de clientes ligeros y de virtualización

Crear y proponer modelo de red

Implementar seguridad

Probar virtualmente el modelo

Page 19: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 1: Identificación y planteamiento del problema

7

1.3 Alcances y Limitaciones

Este modelo puede ser utilizado en centros de cómputo de baja demanda como: escuelas, pequeñas

empresas, café internet, pequeños laboratorios de cómputo, etc.

Se implementará un servidor de máquinas virtuales, una máquina virtual por cada interfaz de red

para dar servicio a distintos centros de cómputo.

Las computadoras cliente iniciarán el sistema por red, aprovechando las características naturales de

Linux, los clientes contarán con una cuenta de usuario personal y un espacio propio dentro del

servidor para almacenar datos.

Este modelo por limitaciones tecnológicas, no está preparado para centros de cómputo de alta

demanda como: entornos de desarrollo, diseño, edición 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 físicas del modelo quedan a consideración del interesado.

Page 20: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 1: Identificación y planteamiento del problema

8

Metodología de Investigación y Desarrollo

Actividad Técnicas Herramientas METAS

1. Comprender e identificar el problema

Observación

Investigación

Búsqueda de nuevos temas

Internet

Libros

Observación e indagación de soluciones existentes o alternativas e Identificación del problema ó área de oportunidad.

2. Idealizar y modelar propuesta de solución.

Investigación

Modelado

Procesador de textos

Internet

Libros

Pizarrón

Diseño conceptual del proyecto, alcances y limitaciones

3. Investigar las alternativas tecnológicas para la resolución del proyecto

Investigación Internet

Libros

Conferencias

Identificación de diversas alternativas y definición de las herramientas tecnológicas que sirvan para resolución del problema.

4. laborar pruebas de los modelos existentes en las herramientas tecnológicas de Virtualización y Clientes Ligeros.

Investigación de manuales

Descarga y prueba de Sistemas Operativos, Herramientas de virtualización y herramientas para servidores de clientes ligeros.

Internet

Equipo de cómputo con características de servidor

Cableado estructurado

Switch

Determinar el uso de las herramientas que se podía utilizar para poder aplicar el modelo

5. Integrar el diagrama de modelado con herramientas tecnológicas seleccionadas

Adaptación e investigación del uso de las herramientas.

Documentación de la instalación real con las versiones correctas.

Internet

Equipo de cómputo con características de servidor

Cableado estructurado

Switch

Diseño físico del proyecto, con pruebas de ensayo y error

Page 21: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 1: Identificación y planteamiento del problema

9

6. Testear y realizar pruebas virtuales

Generación de maquinar virtuales con el uso de aplicaciones.

Internet

Equipo de cómputo con características de servidor

Cableado estructurado

Switch

Comprobación del funcionamiento del modelo lógico y la integración de las herramientas tecnológicas 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

Investigación de vulnerabilidades acerca de servidores y Linux.

Procesador de textos

Computadora

Internet

Generación y propuesta de lineamientos para proteger el servidor y máquinas virtuales.

8. Redactar y Documentar el proyecto de investigación

Técnicas de redacción

Asesorías.

Procesador de texto

Computadora

Manuales

Referencias de Internet

Documento de Tesis

Los aspectos pertinentes a la creación y montaje del modelo corren a cargo de Daniel Campos Ojeda

de la especialidad: Ingeniería de Software.

Los aspectos relacionados con la seguridad del modelo son desarrollados por Erick Johans

Zamorategui Nava de la especialidad: Auditoría y Seguridad.

Page 22: Virtualizacion de Servidores de Clientes Ligeros

LABORATORIO DE PRÁCTICAS, MODELADO EN TECNOLOGÍAS LIBRES

Capítulo 2

2 Fundamentos teóricos

"Cuanto más sabes, más te das cuenta de que no sabes nada"

Sócrates

"Obtener información de internet es como intentar beber agua de una manguera de incendios"

Mitchell Kapor

En el siguiente capítulo se recopilan algunos conceptos que el lector necesita saber para comprender

el proyecto, si el lector está familiarizado con la virtualización y los clientes ligeros, puede hacer caso

omiso a este capítulo, no obstante para entrar en contexto es conveniente leerlo.

Page 23: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 2: Fundamentos teóricos

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 tecnología que ofrece servicios a través 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 computación en la nube, consiste en la gestión y suministro de aplicaciones, información y datos

como un servicio. Estos servicios se proporcionan a través de la “nube”, a menudo basado en un

“modelo basado en el consumo” [13].

2.1.1 Características del Cloud Computing

Auto Reparable: En caso de fallo, el último Backup de la aplicación pasa a ser automáticamente la

copia primaria y se genera uno nuevo.

Page 24: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 2: Fundamentos teóricos

12

El párrafo 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 políticas como cuales son los

tiempos esperados de rendimiento y en caso de pico, debe crear más instancias.

Virtualizado: las aplicaciones son independientes del hardware en el que corran, incluso varias

aplicaciones pueden corren en una misma máquina o una aplicación puede usar varias maquinas a la

vez.

Multipropósito: 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].

Aún incluyendo los conceptos de Cloud Computing en el marco teórico, 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 términos. Estos "nuevos"

conceptos son utilizados en el proyecto con el fin de describir antiguos procesos que están 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: cómo medirlo,

cómo cobrarlo y cómo mantener alta disponibilidad, aspectos los cuales no son objetivos de este

documento.

Page 25: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 2: Fundamentos teóricos

13

2.1.2 Tipos de servicios

La computación en nube ha evolucionado en una variedad de servicios que incluyen recursos

compartidos, software y plataformas “a demanda”. Se dará a conocer una breve introducción 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 término utilizado para describir el software

desplegado en Internet y se caracteriza por que el proveedor licencia la aplicación al suscriptor en un

modelo de "servicio por demanda". Los principales segmentos de mercado del modelo SaaS se

encuentran en tópicos como: administración de contenido, colaboración y Customer Relationship

Management (CRM) [4].

Page 26: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 2: Fundamentos teóricos

14

2.1.2.2 Platform as a Service (PaaS)

Platform as a Service (Plataforma como Servicio) se refiere a un modelo que no sólo 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

opción de construir una aplicación personalizada utilizando la plataforma de desarrollo ofrecida. Los

proveedores PaaS ofrecen por medio de sus plataformas soporte para los lenguajes de programación

más 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 implementación de

Cloud Computing y hace referencia a plataformas que ofrecen infraestructura de cómputo y

usualmente se encuentran desplegadas sobre un entorno de virtualización. La plataforma brinda la

alternativa de escalar la infraestructura de manera vertical (subir y bajar los recursos de cómputo) a

demanda y se paga por los recursos consumidos. Este modelo ofrece el más 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 implementación sobre IaaS requiere

instalación, configuración y mantenimiento adicionales [4].

Page 27: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 2: Fundamentos teóricos

15

2.2 Linux

Linux es un sistema operativo tipo Unix. Es libre, esto significa que no se debe pagar ningún tipo de

licencia a ninguna casa desarrolladora de software por el uso del mismo.

El sistema lo forman el núcleo del sistema (Kernel) más un gran número de programas / bibliotecas

que hacen posible su utilización.

El sistema ha sido diseñado y programado por multitud de programadores alrededor del mundo. El

núcleo del sistema sigue en continuo desarrollo bajo la coordinación de Linus Torvalds, la persona

de la que partió la idea de este proyecto, a principios de la década de los noventa. Hoy en día,

grandes compañías, como IBM, SUN, HP, Novell y RedHat, entre otras muchas, aportan a Linux

grandes ayudas tanto económicas como de código [16].

2.2.1 Características de Linux

Linux al igual que Unix, es un sistema operativo diseñado para operar en modo multiusuario y

multisesión, de tal modo que está optimizado para proporcionar servicio a varios usuarios a la vez,

además de esto, Linux cuenta con las siguientes características:

Altamente personalizable.

Un sistema operativo económico o incluso gratuito.

Todas las aplicaciones necesarias son económicas o gratuitas.

Redes incorporadas al núcleo del sistema operativo.

Page 28: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 2: Fundamentos teóricos

16

El párrafo anterior es un comentario de los autores de éste documento

Lo suficientemente pequeño como para entrar en dispositivos pequeños.

Lo suficientemente flexible y poderoso como para que se puedan usar computadoras portátiles

completas.

Lo suficientemente ahorrativo como para conservar la batería durante el mayor tiempo posible

[21].

Por las características 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. Además la idea es que este proyecto sea lo más libre posible, que

cualquiera pueda modificar cualquier aspecto que se involucre en la creación o en la puesta en

marcha de éste modelo, de haber elegido un sistema operativo distinto, todo esto no sería posible.

Page 29: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 2: Fundamentos teóricos

17

2.3 Virtualización

La virtualización consiste en la capacidad de separar el software del hardware en el que están

instalados. Esta característica aplicada al Cloud Computing se materializa en que el usuario no tiene

que preocuparse por la implementación concreta de los servicios de la nube ni tener en cuenta el

hardware asociado a ellos [13].

La virtualización posibilita una optimización 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 físico con el hardware de las máquinas

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 tecnología de virtualización el hardware

soportado es más 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 virtualización, de igual modo a como se instala cualquier aplicación. Esta tecnología

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].

Page 30: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 2: Fundamentos teóricos

18

Figura 3: Representación 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 virtualización

2.3.2.1 Emulación de Hardware

Esta es el tipo de emulación más compleja, con esta técnica en el sistema anfitrión se utiliza una

máquina virtual que emula el hardware, como se muestra en la figura 4.

Figura 4:Emulación por hardware Fuente: http://www.ibm.com/developerworks/linux/library/l-linuxvirt/

Page 31: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 2: Fundamentos teóricos

19

El principal problema con la emulación de hardware es que puede resultar lenta ya que cada

instrucción 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 Virtualización completa

También llamada Virtualización 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 través del hypervisor [7].

Figura 5: El hypervisor media entre el hardware y la máquina virtual Fuente: http://www.ibm.com/developerworks/linux/library/l-linuxvirt/

Page 32: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 2: Fundamentos teóricos

20

La virtualización completa es más rápida que la emulación de hardware, pero el rendimiento es

menor que cuando se utiliza hardware y el sistema operativo nativo debido a la mediación del

hypervisor.

La ventaja de utilizar virtualización completa es que un sistema operativo puede ser ejecutado sin

modificaciones, la única restricción es que el sistema operativo invitado debe soportar el hardware

anfitrión.

2.3.2.3 Paravirtualización

Este método utiliza un hypervisor para compartir el acceso al hardware anfitrión pero integra código

que está al tanto de la virtualización 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 paravirtualización se comparte el proceso con el SO invitado Fuente: http://www.ibm.com/developerworks/linux/library/l-linuxvirt/

Page 33: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 2: Fundamentos teóricos

21

El párrafo anterior es un comentario de los autores de éste documento

La paravirtualización ofrece un rendimiento próximo al de un sistema no virtualizado, es posible

soportar varios sistemas operativos diferentes de manera concurrente.

2.3.2.4 Virtualización en el nivel del Sistema Operativo

Esta técnica virtualiza los servidores encima del propio sistema operativo. Sólo soporta un solo

sistema operativo y simplemente aísla 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 virtualización dentro del proyecto será virtualizar servidores de clientes ligeros para

aprovechar al máximo los tiempos muertos del procesador y sacar el máximo provecho del hardware

que sea utilizado como servidor, como beneficio se ahorran costos en la implementación de

servidores y se facilita la administración de los servicios. Para esto se ha elegido la virtualización

completa y la paravirtualización ya que se estarán virtualizando sistemas operativos completos.

Page 34: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 2: Fundamentos teóricos

22

El párrafo anterior es un comentario de los autores de éste documento

2.3.3 TFTP

Son las siglas en inglés de: Protocolo de Transferencia de Archivos Trivial, es una forma de transferir

archivos muy simples, como una versión básica de FTP. Uno de los usos más comunes es la

transferencia de pequeños archivos entre computadoras de una red. Es más rápido que FTP ya que

utiliza un protocolo de transporte UDP, por lo cual no lleva control de errores en la transmisión [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 combinación 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 tendrán la opción de conectarse

al servidor por medio del booteo por red.

Page 35: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 2: Fundamentos teóricos

23

2.4 Seguridad Informática

La seguridad no era realmente vital, pero debido a la ayuda que proporciona a las necesidades

primarias antes, durante y después 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 protección de amenazas o riesgos para estar exentos de peligros o daños,

ejerciendo confianza sobre algo o alguien que represente una menor ausencia de tener

vulnerabilidades, aunque esto no asegurará estar libre completamente de no tener ningún tipo de

percance, solo acerca a un nivel razonable de estar protegidos.

La seguridad informática son las técnicas, métodos, 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 cómputo se debe tener un reglamento el cual debe ser acatado para

tener un óptimo funcionamiento del equipo de cómputo, también se debe contar con seguridad física

y seguridad contra incendios para proteger el servidor. Otro punto importante es tener contraseñas

seguras, esto puede ser realizado mediante medidas de seguridad para contraseñas.

Debido a que el modelo del proyecto no es fijo y está abierto a cualquier posibilidad de

implementación, dentro del Anexo D tal se muestran ejemplos básicos para la seguridad de cualquier

laboratorio de cómputo tales como:

Page 36: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 2: Fundamentos teóricos

24

Reglamento de centro de cómputo

Seguridad física y contra incendios

Seguridad en contraseñas

Los ejemplos que se muestran en el anexo son únicamente como un nivel básico para cualquier tipo

de laboratorio y servirán solo como un perfil bajo para un laboratorio de cómputo.

2.4.1 ¿Qué es encriptar y desencriptar?

La seguridad de la información privada o corporativa siempre es importante y una manera de poder

hacerla segura es encriptando la información.

Figura 8: Proceso de encripción Fuente: http://3.bp.blogspot.com/-WZV-ZbqCz9g/TgQhmrlrgVI/AAAAAAAAAJ0/nhqOJCxtWKA/s1600/criptografia.jpg

La información que puede ser leída y entendida sin aplicarle ninguna transformación se llama texto

plano. El método que transforma el texto plano de tal manera que oculta su valor útil es llamado

Page 37: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 2: Fundamentos teóricos

25

encripción o cifrado protegiéndolo con una contraseña. 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 información 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 páginas Web, restringe el acceso a páginas de

entretenimiento, compras, y páginas de chat, o la que deseemos, la mayoría con contenido

pornográfico, 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 crítica 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 dirección URL de una página 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.

Page 38: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 2: Fundamentos teóricos

26

El párrafo anterior es un comentario de los autores de éste documento

Este servicio tiene diferentes propósitos, pero su único fin es mejorar la manera en la que se navega

por Internet. Esto lo logra haciendo la navegación más segura y rápida. El problema principal con los

DNS es que la mayoría de las personas utilizan el DNS que viene de manera predefinida con el

proveedor del servicio y generalmente, son lentos ó están llenos de agujeros que presentan una

amenaza para el usuario.

2.4.3 Monitorización

A medida que un servidor es usado, crece el tamaño de los datos, se agregan nuevos enlaces y

equipos, hasta el punto en que es muy difícil para los administradores estar al tanto del estado de la

red.

Es deseable disponer de información estadística 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 utilización que muestren que los enlaces están saturados [14].

La monitorización del hardware y software del servidor sirve para poder ver que tanto es usado, es

benéfica 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.

Page 39: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 2: Fundamentos teóricos

27

2.4.3.1 Porque monitorizar un servidor Linux guardando un historial

Monitorizar una computadora almacenando un historial es benéfico debido a que de esta manera se

sabrá que procesos son los más 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

fácilmente que problema pudo marcar una falla en el servidor por medio del registro guardado (logs).

Munin se usará como parte de la monitorización 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 gráficas.

2.4.3.2 ¿Por qué monitorizar un servidor Linux mostrando uso al momento?

La monitorización instantánea 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 información sin que repercuta en el rendimiento general del equipo ya

que apenas consume recursos.

Page 40: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 2: Fundamentos teóricos

28

2.4.4 Ataque de denegación 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 comunicación se complete satisfactoriamente ó

se acabe el tiempo de espera para el establecimiento de conexiones. Estas acciones desembocan

lógicamente en la consiguiente saturación 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 IP’S hagan esas millones de

peticiones al servidor o web, provocando su caída.

Figura 9: Ataque de denegación de servicio distribuido Fuente: http://www.windowstecnico.com/archive/2011/09/05/dos-ataques-de-denegaci-243-n-de-servicio-i.aspx

Page 41: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 2: Fundamentos teóricos

29

Un ataque DDOS también se le puede aplicar a un móvil o celular el cuál contenga alguna falla o algún

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 técnica, pero la técnica no siempre tiene que ser

la misma [26].

2.4.4.1 Bomba Fork

La bomba fork es una forma de ataque del tipo denegación (Dos) de servicio sobre una computadora

que implementa la operación fork, su efecto se basa en la suposición de que el número de programas

y procesos que se ejecutan rápidamente con el objetivo de saturar el espacio disponible en la lista de

procesos en una computadora [32].

Figura 10: Función de procesos Fork Fuente: http://upload.wikimedia.org/wikipedia/commons/thumb/5/52/Fork_bomb.svg/800px-Fork_bomb.svg.png

Page 42: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 2: Fundamentos teóricos

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 estarán esperando para poder crear nuevos procesos

a la primera oportunidad que se les conceda. No sólo ocupan espacio dentro de la lista de procesos,

también consumen tiempo de proceso y memoria de la máquina 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 también conocido como ataque por fuerza bruta) es un método mediante

el cual alguien desde el exterior trata de acceder a la máquina utilizando una larga lista de usuarios-

contraseñas (denominadas como diccionarios) que se sabe son muy utilizadas por los usuarios y los

prueba en repetidas ocasiones buscando dar con la combinación acertada.

Una correcta configuración de la computadora y el uso de contraseñas correctas, reducen

considerablemente el riesgo pero no evita que la computadora pierda tiempo y recursos en denegar

un servicio [28].

Page 43: Virtualizacion de Servidores de Clientes Ligeros

LABORATORIO DE PRÁCTICAS, MODELADO EN TECNOLOGÍAS LIBRES

Capítulo 3

3 Evaluación y selección de herramientas

"La diferencia entre la teoría y la práctica es que, en teoría, no hay diferencia entre la teoría y la práctica"

Richard Moore

En este capítulo se realiza la propuesta del modelo de red.

Antes de proponer el modelo de red, es necesario evaluar herramientas referentes a la virtualización

y a los clientes ligeros, con el fin de conocer sus características 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 máquinas virtuales y servidores de clientes

ligeros.

Page 44: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 3: Evaluación y selección de herramientas

32

3.1 Proyectos de Virtualización: 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 continuación, se mencionan algunos hypervisores que fueron evaluados para este proyecto.

3.1.1 XEN

Xen es una solución de paravirtualización que implementa un hypervisor que se encarga de la

planificación de tareas y de la gestión de memoria, delegando la gestión de la entrada/salida en un

invitado privilegiado (llamado domain 0 o dom0 en XEN).

3.1.2 KVM

KVM es una solución de virtualización completa en la que se utiliza el núcleo de Linux como

hypervisor, de este modo tanto el control de los dispositivos reales, como la planificación de tareas y

la gestión de memoria del sistema anfitrión las hace el núcleo de Linux.

Las máquinas virtuales son procesos normales del sistema, por esta razón la gestión de memoria y la

planificación de procesos son las estándar del sistema.

Page 45: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 3: Evaluación y selección de herramientas

33

3.1.3 OpenVZ

OpenVZ es un sistema de virtualización a nivel sistema operativo que se implementa como una serie

de parches sobre el núcleo Linux.

Lo que realiza esta herramienta de virtualización es incluir apoyo en el núcleo para crear y mantener

múltiples 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 versión privativa,

que es gratuita únicamente bajo uso personal o de evaluación y está sujeta a la licencia de "Uso

Personal y de Evaluación VirtualBox" (VirtualBox Personal Use and Evaluation License o PUEL) y la

versión Open Source, sujeta a la licencia GPL.

La licencia PUEL permite el uso académico de VirtualBox, por lo que es legal utilizarlo en los

laboratorios escolares de manera gratuita.

3.1.5 VmWare

VmWare es la solución más conocida y con más presencia comercial, ofrece muchas prestaciones

para asegurar la alta disponibilidad, control y eficiencia de sistemas críticos, no obstante es el

Page 46: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 3: Evaluación y selección de herramientas

34

producto más 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 evaluación de hypervisors

La siguiente tabla es un fragmento de kernelnewbies.org, página 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 evaluación y búsqueda del hypervisor adecuado para este

proyecto.

Virtualización completa

Paravirt Contenedores (OS virt)

Licencia Performance Sistema dedicado

Xen

GPL paravirt muy rápido, virtualización completa velocidad media

KVM

GPL Paravirt rápido, virtualización completa velocidad media

OpenVZ

GPL nativa VirtualBox

GPL/ proprietaria

rápida/muy rápida

VMware Server

proprietaria media/rápida VMware Workstation/Player

proprietaria media/rápida

VMware ESX

proprietaria rápida/muy rápida

Tabla 1: Hypervisors evaluados Fuente: http://virt.kernelnewbies.org/TechComparison

Page 47: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 3: Evaluación y selección de herramientas

35

Como primera opción se recomienda utilizar los hypervisors KVM y XEN pues ambos ofrecen

virtualización completa, como segunda opción se recomienda VirtualBox por ser una solución sencilla

y cumplir con los requerimientos de virtualización del proyecto (virtualización completa); la licencia

bajo la cual se distribuye VirtualBox permite utilizar este hypervisor sin necesidad de pagar una

licencia.

3.2 Gestión de Máquinas Virtuales: Plataformas de Virtualización

Además de un Hypervisor, es conveniente que un proyecto de virtualización utilice un gestor de

máquinas virtuales para hacer sencilla la administración del servidor de máquinas virtuales, para el

proyecto se evalúan distintas plataformas de virtualización buscando un equilibrio entre rendimiento,

facilidad de instalación, facilidad de uso y escalabilidad.

Se da preferencia a plataformas de virtualización que hagan uso de KVM y/o XEN, en el caso de estos

dos hypervisors, pueden ser administrados vía consola por medio de comandos. En el caso de

VirtualBox, la interfaz de administración está integrada con el hypervisor, no teniendo otra forma de

administrar más que el propio VirtualBox.

A continuación, se mencionan algunos gestores de máquinas virtuales evaluados para el proyecto:

Page 48: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 3: Evaluación y selección de herramientas

36

3.2.1 VmWare: Server, Player, ESXi

VmWare cuenta con varios productos para la gestión de máquinas virtuales. En el caso de VmWare

Player, puede ser comparado directamente con VirtualBox, es una aplicación que se ejecuta en el

escritorio, está orientada para uso personal, por lo que no cuenta con una alternativa para

administrar las máquinas virtuales desde web. El caso es similar con VmWare Workstation el cual

agrega algunas funciones más a VmWare Player pero no deja de ser una herramienta para

virtualización personal.

VmWare Server es una opción funcional para el proyecto ya que cuenta con un administrador vía

web, no obstante VmWare ha dejado de dar soporte a este producto desde Junio de 2011. La

alternativa a la versión 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 ningún

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

Page 49: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 3: Evaluación y selección de herramientas

37

3.2.2 Oracle Linux, Oracle Solaris

Solaris utiliza contenedores similares a OpenVz, es decir, es una solución de Virtualización a nivel de

Sistema Operativo. Como alternativa existe un ejecutable de VirtualBox para Solaris para cubrir

necesidades de virtualización completa, así utilizando las opciones que proporciona Oracle, se pueden

cubrir todas las necesidades de virtualización. La figura 11 muestra las distintas posibilidades de

virtualización que ofrece Solaris.

Figura 12: Virtualización con Solaris Fuente: http://www.spi.es/solucion_virtualizacion.html

Page 50: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 3: Evaluación y selección de herramientas

38

3.2.3 Proxmox

Proxmox Virtual Environment es un gestor de máquinas 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, además está preparado para escalabilidad pues tiene instaladas herramientas de

cluster y alta disponibilidad. Es una distribución bare-metal (hypervisor tipo 1), basada en Debian con

servicios básicos para obtener un mejor rendimiento.

3.2.4 XenServer

XenServer es la plataforma de virtualización de Citrix, utiliza Xen como hypervisor, para su

administración requiere de una aplicación cliente solo disponible para Windows. Existe una versión

gratuita pero tiene muchas limitaciones que no permitirían la escalabilidad del sistema a menos que

se pagara por la licencia de una versión más avanzada.

3.2.5 Resultados del análisis de los gestores de máquinas virtuales:

La siguiente tabla muestra los distintos gestores de máquinas virtuales evaluados para el proyecto, así

como las características que se tomaron en cuenta al momento de la evaluación.

Page 51: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 3: Evaluación y selección de herramientas

39

Virtualización completa

paravirt containers (OS virt)

licencia Gestión 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/rápida

Tabla 2: Plataformas de virtualización evaluadas

El gestor elegido para administrar las máquinas virtuales es Proxmox Virtual Environment, es un

producto completo y sencillo de usar, además de ser completamente libre, se distribuye bajo la

licencia GPL, por lo que éste fue el elegido para el modelo que aquí se plantea, además la instalación

es muy sencilla, se incluye un manual sobre cómo instalarlo en la sección de anexos.

Proxmox reúne las siguientes características:

Soporta Virtualización y Paravirtualización.

Gestión Web centralizada.

Configuración en Cluster.

Live Migration (VMotion en VMware)

Storage ISCSI, FC , NFS

Migración de archivos VDMK.

Hot Backup. [22]

Page 52: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 3: Evaluación y selección 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 descripción para los tres proyectos es prácticamente la misma: Es un conjunto de herramientas

que permiten implementar un servidor de clientes ligeros para bootear computadoras a través de la

red. A continuación, se hace una breve descripción 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 mínimo con dos interfaces de red para poder utilizarlo.

Page 53: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 3: Evaluación y selección 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 inglés 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

Page 54: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 3: Evaluación y selección 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 gestión de usuarios en Windows la

realiza mediante Active Directory y la gestión 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 sólo necesita de una interfaz de red para funcionar.

Figura 15: Esquema de openThinClient OS Fuente: http://openthinclient.org/function

Page 55: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 3: Evaluación y selección de herramientas

43

3.3.4 Resultado de la evaluación de herramientas para montar servidores

de clientes ligeros

LTSP TCOS openThinClient OS

Memoria RAM mínima para clientes 16MB 32MB 64MB

NFS

Suficiente documentación

DHCP interno

Tiene licencia GPL

Fácil instalación

Fácil uso

Monitoreo

Interfaz de administración Escritorio Escritorio Escritorio Tabla 3: Resultado de Software para montar un servidor de Clientes Ligeros

Cualquier solución 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 sólo 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

documentación, es completamente abierto y tiene como característica a destacar de las otras dos

opciones mencionadas, el poder funcionar con una sola interfaz de red, además de realizar la

administración de usuarios con LDAP.

La elección de una u otra opción queda a consideración de cada persona interesada en el proyecto, la

decisión dependerá de las necesidades de la red que se esté montando.

Page 56: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 3: Evaluación y selección 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 sección se mostrarán las principales características, configuraciones, archivos importantes e

información relevante sobre los puntos dentro de la sección 2.4 Seguridad Informática del capítulo

anterior de este mismo documento, demostrando porque es necesario tomar en cuenta los puntos

mencionados del capítulo dos para este proyecto.

3.4.1 Encripción 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 encriptación

(contraseña) de 128-, 192-, o 256- bits. Cada tamaño de la clave de cifrado hace que el algoritmo se

comporte ligeramente diferente, por lo que el aumento de tamaño de clave no sólo ofrece un mayor

número de bits con el que se pueden cifrar los datos, sino también aumentar la complejidad del

algoritmo de cifrado [3].

Page 57: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 3: Evaluación y selección de herramientas

45

Para poder realizar una encripción con AES-256 del Sistema Operativo Ubuntu desde su instalación ,

revisar el ANEXO H al final de este documento.

3.4.1.1 Ventajas Encripción del Sistema Operativo

La protección de la información en caso de robo físico es poco contemplada, pero realmente es de

suma importancia debido a que si alguien roba un servidor de manera física, es preferible que no

tenga acceso a la información 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 encripción del sistema operativo

completo y con una protección de una clave común (contraseña), así en caso de robo no podrá tener

acceso a la información o programas sin la clave común con la cual se puede desencriptar el

contenido y tampoco verá la información conectando el disco duro en otra computadora puesto que

la información se encuentra encriptada por lo que no entenderá nada de su contenido.

3.4.1.2 Desventajas Encripción del Sistema Operativo

La principal desventaja que se tiene cifrando el contenido y sobre todo con el cifrado AES es que la

técnica de cifrado es realmente fuerte y en caso de no recordar la Clave común, jamás se podrá

acceder a la información almacenada ni al sistema operativo, por lo que es necesario reinstalar todo

Page 58: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 3: Evaluación y selección de herramientas

46

el sistema operativo que ha sido encriptado previamente y se perderá la información 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 propósitos, pero un solo

fin que es el de mejorar la manera en la que se navega por Internet. Esto lo logra haciendo la

navegación más segura y rápida [9].

OpenDNS permite utilizar sus servidores DNS en lugar de usar lo que el proveedor de acceso a

Internet otorga por default.

OpenDNS es rápido y posee funciones de protección (anti-phishing y otros).

Características:

Generalmente más rápido que el proveedor de acceso a Internet (estos poseen enormes

servidores, con un caché DNS importante)

Más fiable (OpenDNS es muy fiable y sus servidores tienen una disponibilidad del 100%)

Autocorrección de pequeños errores al teclear (google.cmo o gogle.com)

Proposición automática (Motor de búsqueda) si el dominio no existe.

Page 59: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 3: Evaluación y selección de herramientas

47

Protección anti-phishing (OpenDNS está conectado directamente a PhishTank.com)

El servicio es gratuito

No hay necesidad de instalar ningún programa (sólo la dirección del DNS por configurar)

Cuando sea es posible dejar de utilizar OpenDNS.

La mayoría de usuarios de OpenDNS han constatado una mejora del rendimiento, en particular el de

los navegadores.

3.4.3 Monitorización

Tomando en cuenta el punto 2.4.3 Monitorización se demuestra porque se han usados dos

herramientas (una para la monitorización 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

caídas o fallos en los servicios, puertos, y poder tomar las acciones correspondientes. Saber y

mantenerse enterados de que servicios estén corriendo, el uso del servidor, caídas del sistema entre

muchas otras cosas.

A continuación se explican brevemente las 2 aplicaciones que se usaron para el monitoreo en este

proyecto.

Page 60: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 3: Evaluación y selección de herramientas

48

3.4.3.1 Munin

Munin es un software de monitorización para equipos Linux bajo licencia GNU GPL, que permite

monitorizar muchos parámetros y visualizarlos en cómodas gráficas diarias, semanales, mensuales y

anuales. Puede usarse para comprobar el estado de salud y carga de las máquinas, anticipar

problemas de rendimiento o capacidad y en caso de problemas ofrece valiosa información 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 periódicamente 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 también es altamente configurable, y ha obtenido

varios premios por Linux, como uno de los programas "más útiles y mejor mantenidos". Es una

aplicación que dibuja información de texto en el escritorio para verificar el comportamiento del

sistema operativo y el hardware en que este instalado [12].

Page 61: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 3: Evaluación y selección 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, batería, sistema de mensajes, correos,

actualizaciones de Arch Linux, los más populares reproductores de música (MPD, XMMS2, BMPx,

Audacious), y mucho más.

Para instalar, ejecutar al inicio del sistema y la ubicación de los archivos de configuración de Conky, se

muestra en el ANEXO J.

3.4.4 Solución en Ubuntu para Bomba Fork

Para evitar ser víctima de los Ataques de Denegación de Servicio explicada en el tema 2.4.4 Ataque de

Denegación de Servicio (DDOS), se muestra la solución en Ubuntu para evitarlo. Esto se realiza

editando un archivo de configuracióny se hace la prueba correspondiente para verificar los

resultados.

Para editar el archivo de configuración escribir lo siguiente en la consola:

En éste archivo se debe agregar la siguiente línea:

Cabe aclarar que cada distribución viene configurada con un número de procesos máximos, aunque

varias distribuciones (dependiendo de la versión) tienen un número ilimitado de procesos a ejecutar.

* hard nproc 1000

sudo /etc/security/limits.conf

Page 62: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 3: Evaluación y selección de herramientas

50

Para saber cuál es el número máximo 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

número de procesos máximos o el que se desee poner:

Figura 16: Verificar si ha quedado de manera correcta el número de procesos máximos

El número que se muestra cuando tecleamos el comando ulimit -u representa la cantidad de

procesos que puede se pueden ejecutar en la sesión activa, por lo cual si llega a poner un límite, no

podrá congelar la sesión 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: Solución de Bomba Fork correcta

ulimit -u

Page 63: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 3: Evaluación y selección de herramientas

51

Para poder quitar esta línea 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 cómo hacer una Bomba Fork, revisar el ANEXO K.

3.4.5 Protección 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 contraseña inválida.

Bloquear mediante IPtables.

Hacer deny a la IP del atacante en el archivo hosts.

Realizar un whois.

Notificar al administrador de red sobre la acción.

Entre otras acciones que se pueden ir agregando a la configuración.

Page 64: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 3: Evaluación y selección de herramientas

52

Fail2Ban es extremadamente eficaz en la prevención de ataques de fuerza bruta y ataques de

negación de servicio (Dos) [25].

Para poder realizar una eficaz protección con Fail2Ban revisar el ANEXO L donde se explica cómo se

instala y configura el programa.

Page 65: Virtualizacion de Servidores de Clientes Ligeros

LABORATORIO DE PRÁCTICAS, MODELADO EN TECNOLOGÍAS LIBRES

Capítulo 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 capítulo anterior se evaluó el software que pondrá a funcionar el modelo de red. En este

capítulo se propone la infraestructura del modelo de red. Este modelo de red es creado basándose en

la infraestructura de la virtualización y los clientes ligeros, uniendo estas dos tecnologías para obtener

un modelo de red que permita montar un centro de cómputo de baja demanda, reutilizando equipo

de cómputo obsoleto.

Page 66: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 4: Propuesta del modelo de red

54

4.1 Descripción del Modelo

El modelo consiste en montar un servidor de máquinas virtuales que alojará como sistema invitado

un servidor de clientes ligeros, de este modo se tienen en funcionamiento laboratorios de cómputo

independientes entre sí pero centralizados en un mismo servidor. El diagrama de red que resulta de la

combinación de estas dos tecnologías 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 máquinas virtuales, en las siguientes secciones se profundizará en

estos tres aspectos.

Page 67: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 4: Propuesta del modelo de red

55

4.2 Computadoras Cliente

Las computadoras cliente actuarán como terminales en este modelo, por las características técnicas

que deben tener estas computadoras, se permite que para este modelo se puedan utilizar:

a) computadoras obsoletas

b) clientes ligeros dedicados

4.2.1 Computadoras obsoletas

CPU

Los proyectos para montar clientes ligeros recomiendan que las computadoras que se vaya a utilizar

como clientes ligeros tengan un procesador de aproximadamente 500MHz.

Red

Un cliente ligero bootea a través de la red por distintos medios, en caso de éste modelo se propone

utilizar distintos boot loaders a fin de lograr el booteo por red, estos bootloders son:

PXE: Este es el más común y muchas tarjetas de red traen este boot loader incluido.

Etherboot/gPXE: Es un boot loader de software libre que puede ser utilizado en aquellas

computadoras cuya tarjeta de red no soporte PXE, puede utilizarse desde un disquete, CD o

quemarse en una eeprom si la tarjeta de red tiene un slot para ello.

Page 68: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 4: Propuesta del modelo de red

56

Memoria RAM

El mínimo de memoria RAM que debe tener un cliente ligero son 48MB, pero se recomienda instalar

al menos 128MB, lo óptimo sería tener 256MB, con esto mejora la velocidad de los clientes ligeros.

Tarjeta de video

Cualquier tarjeta de video con 16MB de memoria o más debe funcionar bien para cualquier cliente

ligero.

Saber si una computadora funciona como cliente ligero

Existen computadoras con características inferiores que pueden ser utilizadas como clientes ligeros,

pero no todas cumplen con los requisitos mínimos, es por eso que se propone un formato para saber

si una computadora puede ser utilizada como cliente ligero.

La tabla 4 muestra los requisitos obligatorios para determinar si la computadora en cuestión puede

servir como cliente ligero.

REQUISISTOS OBLIGATORIOS SI NO

Procesador mínimo de 200 Mhz

Memoria RAM mínimo de 64 MB

Fuente de poder funcional

Puerto VGA para monitor

Puertos USB mínimo 2

Puerto Ethernet

Botón de encendido funcional Tabla 4: Requisitos obligatorios para un cliente ligero

Page 69: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 4: Propuesta del modelo de red

57

La tabla 5 muestra las opciones para el booteo de red del cliente ligero configurando desde el BIOS,

también es de manera obligatoria cumplir con al menos una de las opciones mostradas.

REQUISITOS PARA EL BOOTEO DE RED SI NO

Booteo PXE en configuración de BIOS

Floppy

Booteo por puerto USB en configuración de BIOS

Unidad de CD, CD-RW, DVD, DVD-RW, BR, BR-RW Tabla 5: Requisitos para booteo de red para un cliente ligero

En caso de no cumplir todos los requisitos mínimos de la Tabla 4 y al menos una de la Tabla 5, la

computadora no podrá ser parte de la red, debido a que para efectuar las tareas que realiza el cliente

ligero es necesario tener esas características básicas.

Si ha cumplido con las Tablas anteriores, llenar la Tabla 6 para terminar el formato, de lo contrario

regresar el formato al administrador de red.

Los requisitos de la Tabla 5 son opcionales, el propósito de la tabla es saber que opciones de conexión

puede tener el cliente ligero.

REQUISITOS OPCIONALES SI NO

Puertos PS-2 (de 1 a 2)

Entrada de micrófono

Salida de audio Tabla 6: Requisitos opcionales para un cliente ligero

Page 70: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 4: Propuesta del modelo de red

58

4.2.2 Clientes ligeros dedicados

Los clientes ligeros dedicados no requieren de mucha atención en cuanto a especificaciones, el cliente

ligero menos potente en el mercado tiene características similares a las de una computadora

obsoleta, con la ventaja de reducir el consumo eléctrico.

4.3 Servidor virtual de clientes ligeros

Los requerimientos de un servidor de clientes ligeros son muy relativos al tamaño de la red y a las

expectativas de ésta. Los requerimientos varían mucho en una red en la cual solo se hará navegación

web sin java ni flash en comparación con una red la cual hará uso intensivo de gráficos, juegos y

animaciones.

Aun así se pueden seguir algúnas recomendaciones de casos de éxito y ajustarlos a las necesidades de

la red que se esté montando, las recomendaciones que hace el proyecto LTSP son las siguientes:

4.3.1 Memoria

Una distribución Linux hace uso eficiente de la memoria. La primera sesión de usuario que cargue

consumirá aproximadamente entre 250 y 300 MB de RAM. Cada sesión siguiente usará entre 50 MB y

80 MB adicionales. Esto puede ayudar a calcular la cantidad de RAM necesaria para el servidor.

Siempre tomando en cuenta que será variable dependiendo de qué programas carguen los usuarios.

Page 71: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 4: Propuesta del modelo de red

59

La fórmula que se utiliza para calcular la cantidad de memoria respecto a cada cliente ligero es:

256 + (192 * usuarios) MB

Entonces, para tener veinte clientes ligeros funcionando, la formula seria:

256 + (192 * 20) = 256 + 3840 = 4096 MB

4.3.2 Procesador

El procesador también dependerá de las tareas a realizar en la red de clientes ligeros. Una red con

pequeñas necesidades funcionaria bien con un procesador de 2GHz. Para redes más grandes o con

más carga de trabajo se pueden aprovechar los procesadores multi núcleo.

4.3.3 Disco duro

Es recomendable utilizar arreglos de disco en el servidor, con una configuración RAID 1 en la cual se

conectan discos duros en paralelo para mejorar la velocidad, con dos discos duros es suficiente. Para

una red más grande, una configuración RAID 10 en la cual se asegura velocidad y disponibilidad de

datos, es más que suficiente.

Page 72: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 4: Propuesta del modelo de red

60

4.4 Servidor de máquinas virtuales

Para poder realizar tareas de virtualización, el servidor requiere de un hypervisor, se recomienda en

la medida de lo posible instalar un hypervisor nivel 1 (bare-metal, a nivel hardware), si se va a instalar

un hypervisor de tipo 2 (sobre un sistema operativo base), se recomienda instalar un sistema

operativo tipo UNIX, ya que gestionan mejor los recursos del servidor.

Para dar salida a las interfaces de red virtuales (VNIC’s) de las máquinas virtuales a través de una

interfaz de red (NIC), cada VNIC debe ser conectada a una NIC en modo BRIDGED, de este modo se

podrán intercambiar datos entre el ambiente virtual y el físico.

Dentro del servidor, el hypervisor debe tener configurada una interfaz de red de algún modo que

permita proveer a las máquinas virtuales de Internet, como ejemplo en la figura 20, la interfaz de red

está configurada en modo “Traducción de Direcciones de Internet” (NAT), de esta manera todas las

máquinas virtuales conectadas a ésta interfaz tendrán acceso a Internet.

Page 73: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 4: Propuesta del modelo de red

61

Figura 20: Diagrama del servidor de máquinas virtuales

Se recomienda que la administración del servidor se realice remotamente, con esto se evita utilizar el

servidor como otra máquina más y así se previene que el rendimiento del servidor no sea

desperdiciado en tareas superfluas o que no tienen que ver con el desempeño de las máquinas

virtuales.

Page 74: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 4: Propuesta del modelo de red

62

4.5 Red

Para reducir la demanda de las interfaces de red, cada interfaz de red del servidor estará vinculada a

una maquina virtual, por lo tanto, se tendrán tantas maquinas virtuales de como interfaces de red

tenga el servidor -1, esto para reducir la demanda de ancho de banda que puede otorgar un cable de

red UTP.

Un factor importante a recordar es que la red funciona tan rápido como la parte más lenta de la red.

Se debe asegurar que la configuración de red se adecúe a las necesidades de la red montada.

4.5.1 Red cableada

Las redes cableadas pueden transferir paquetes en estas distintas velocidades: 10 Mbit/seg, 100

Mbit/seg, 1000 Mbit/seg (Gigabit). Se recomienda utilizar una conexión de 1000 Mbit/seg entre la

interfaz de red del servidor y el switch ya que esta interfaz estará conectada a varias computadoras

cliente y será por donde pasen todas las peticiones de los clientes. Para conectar cada computadora

cliente al switch, es suficiente una conexión de red de 100 Mbits/seg.

Una red solo es útil si pueden ser conectadas varias computadoras, existe hardware para conectar

varias computadoras en red, son parecidos pero su función es diferente y la velocidad a la que operan

también.

Page 75: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 4: Propuesta del modelo de red

63

Hub

Es la manera más simple de conectar varias computadoras. Un hub recibe mensajes en un puerto y

los reenvía a todos los puertos. En un hub solo un puerto puede hablar a la vez.

Switch

Un switch es muy parecido a un hub, con la excepción que un switch solo hace conexión entre os

puertos que lo necesitan. Un switch puede mantener varias conexiones a la vez, por lo que un switch

resulta más rápido que un hub.

Router

Un router se utiliza para hacer una conexión entre dos redes. Los routers comúnmente son utilizados

para conectar una LAN a Internet.

4.5.2 Red inalámbrica

Este modelo no está preparado para utilizar una conexión inalámbrica por las siguientes razones.

Una red inalámbrica normalmente tiene más latencia que una red cableada, esto hace que los

programas se sientan lentos y/o que no responden.

Un adaptador de red inalámbrica no puede ejecutar directamente el booteo mediante PXE, además

de necesitar la configuración de la red como la ESSID, KEY, etc. Y no existen estas características en

una tarjeta con PXE.

Page 76: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 4: Propuesta del modelo de red

64

Existen herramientas que otorgan la capacidad de bootear por wifi a las máquinas, pero se requiere

más hardware para realizar esto y aun así no se puede reducir la latencia de la red, la experiencia de

uso no sería satisfactoria debido a la lentitud del sistema.

4.5.3 Resumen

Para montar la red:

La red en cada laboratorio se conecta en forma de estrella, las computadoras están conectadas a un

switch el cual está conectado al servidor. Esto se hace en cada laboratorio que se quiera montar, cada

switch va conectado a una interfaz de red del servidor y cada interfaz se configura en puente con una

máquina virtual.

Para montar el servidor de máquinas virtuales:

Se procede a instalar el hypervisor elegido. El servidor debe contar con varias interfaces de red, una

está conectada a Internet, las otras son para los laboratorios y se conectan en puente con la interfaz

de red virtual de cada máquina virtual.

Para montar el servidor de clientes ligeros:

Se realiza la instalación de Linux sobre una máquina virtual, configurando dos interfaces virtuales de

red, una conectada a la interfaz que provee el internet, la otra conectada en modo puente con una

interfaz del servidor. Recordar que esta interfaz será conectada a un switch.

Page 77: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 4: Propuesta del modelo de red

65

La figura 21 es un diagrama que muestra lo descrito en el resumen del capítulo:

Figura 21: Diagrama de red completo

Page 78: Virtualizacion de Servidores de Clientes Ligeros

LABORATORIO DE PRÁCTICAS, MODELADO EN TECNOLOGÍAS LIBRES

Capítulo 5

5 Prueba virtual del modelo de red

"La mejor forma de predecir el futuro es implementarlo"

David Heinemeier Hansson

Con el fin de validar el funcionamiento de este modelo de red, se realizó una prueba virtual de dicho

modelo, como se describió al principio del capítulo anterior, este modelo precisa de 3 elementos

indispensables: el servidor de máquinas virtuales, el servidor virtual de clientes ligeros y los clientes

ligeros.

Al ser una prueba virtual, el rendimiento y la extensión de la prueba dependen del rendimiento del

servidor, como los clientes conectados a esta red también serán virtuales, el rendimiento del servidor

es reducido por el consumo de los clientes virtuales.

Esta prueba virtual se limita a validar la posibilidad de obtener el sistema operativo desde un

ambiente virtual.

Page 79: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 5: Prueba virtual del modelo de red

67

5.1 Elementos Utilizados en la Prueba

5.1.1 Servidor

La computadora que se utilizó como servidor de máquinas virtuales tiene las siguientes

características:

Procesador: Intel i5-560m

Memoria: 8 GB DDR3

Video GeForce 310M 512MB

Sistema Operativo: Windows 7 Pro (64 bits)

5.1.2 Hypervisor

Al no contar con la libertad de cambiar el sistema operativo del servidor, el hypervisor elegido fue

VirtualBox. Aunque VirtualBox da la impresión de ser poco profesional, en realidad es una opción muy

extendida y utilizada para virtualización a nivel personal y para esta prueba resulta suficiente.

NOTA: VirtualBox debe tener instalado el Pack de extensiones para habilitar la opción de booteo por

red.

Page 80: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 5: Prueba virtual del modelo de red

68

5.1.3 Servidor virtual de clientes ligeros

Para montar un servicio virtualizado existen dos alternativas con las cuales se puede desplegar la

máquina virtual en el servidor: una de ellas consiste en instalar el sistema operativo y las aplicaciones

requeridas siguiendo el mismo procedimiento como si se tratara de la instalación sobre hardware

físico, la segunda opción es utilizar una máquina virtual previamente configurada por la misma

persona o por terceros.

A esta segunda opción, de utilizar una máquina virtual previamente configurada se le llama appliance.

Como servidor virtual de clientes ligeros se utilizó un appliance de openthinclient OS el cual viene pre

configurado con las características que muestra la figura 22:

Figura 22: Appliance de openThinClient OS

5.1.4 DHCP

OpenThinClient OS requiere de un servidor DHCP en la misma red pero no en la misma máquina, para

Page 81: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 5: Prueba virtual del modelo de red

69

montar este servidor DHCP se utiliza Debian 6 como sistema operativo, el servidor DHCP tiene la

siguiente configuración:

Red 192.168.1.0

Rango 192.168.1.50 - 192.168.1.60

IP del servidor 192.168.1.1

Nombre del servidor thin.tesco.mx

Broadcast 192.168.1.255

Gateway 192.168.1.1

Tabla 7: Configuración del servidor DHCP

Después de montar el servidor DHCP, se exporta como appliance (servicio virtualizado), si en algún

momento se necesita utilizar de nuevo, basta con importarlo como servicio virtualizado dentro del

menú de opciones de VirtualBox.

Figura 23: Menú de opciones VirtualBox

El diagrama de la red virtual queda de la siguiente manera: con un servidor de clientes ligeros, un

servidor DHCP y tres clientes conectados a través de un switch, tal como lo muestra la figura 24:

Page 82: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 5: Prueba virtual del modelo de red

70

Figura 24: Diagrama de red virtual

5.2 Iniciando la Prueba

El propósito de esta prueba es comprobar que efectivamente puede funcionar un servidor de clientes

ligeros virtualizado dentro de un servidor físico dedicado a gestionar máquinas virtuales, esto

simulando el modelo de red propuesto en capítulos anteriores y verificando que los clientes ligeros

pueden obtener el sistema operativo a través de un servidor virtualizado.

Al ser una prueba virtual, es complicado mostrar gráficamente cómo funciona el modelo en conjunto,

sin embargo se puede describir el proceso que siguen los elementos involucrados en el modelo

dentro de la red.

Page 83: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 5: Prueba virtual del modelo de red

71

Para realizar esta prueba, se simulan dos laboratorios los cuales son formados por los siguientes

elementos para cada laboratorio: un servidor de clientes ligeros, un servidor DHCP y tres clientes

conectados.

Máquina Virtual Rol

Debian 6 Servidor DHCP

Ubuntu 10.04 Servidor de Clientes Ligeros

Sin Sistema Operativo Cliente Ligero Tabla 8: Máquinas Virtuales de la red virtual

El estado inicial de la red está dado por tres computadoras conectadas a un switch, tanto del

laboratorio A como en el B, los cuales están representados en la figura 25:

Figura 25: Estado inicial de la red

Para agregar el servidor de clientes ligeros se procede conforme los pasos descritos a continuación:

Se configura la red virtual en modo red interna, los nombres dados a la red son “laboratorioA” y

“laboratorioB” para el primer y segundo laboratorio respectivamente.

Page 84: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 5: Prueba virtual del modelo de red

72

Se importan las appliances del servidor DHCP y del servidor de clientes ligeros.

Se clona cada appliance para poder ser utilizadas por el segundo laboratorio.

Se configura la interfaz de red de cada appliance para que correspondan a un laboratorio, ya sea A o

B.

Asegurarse que las MAC de las appliances sean diferentes, pues al ser clonadas se copia

completamente la configuración.

Se inicia el servidor DHCP de ambos laboratorios y se espera a que termine de cargar, en este

momento las siguientes computadoras que se inicien dentro de la red serán provistas de una

dirección ip.

Se inicia el servidor openThinClient OS de ambos laboratorios, con una ip provista por el servidor

DHCP.

A partir de este momento están montados los servicios virtuales, preparados para proveer el sistema

operativo a las computadoras cliente.

A continuación se da inicio uno a uno a los clientes conectados en cada laboratorio, para este

momento la red de cada laboratorio cuenta con un servidor virtual de clientes ligeros (TCVS), un

servidor DHCP, en este caso también virtualizado, tal como muestra la figura 26:

Page 85: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 5: Prueba virtual del modelo de red

73

Figura 26: Diagrama de red final de la prueba

Para obtener algún dato relevante, se optó por medir el consumo de RAM. En la figura 27 se muestra

el consumo de recursos del servidor virtual de clientes ligeros, sin ningún cliente conectado.

Figura 27: openThinClient sin clientes conectados

En las figuras 28 a 30 se muestra el consumo de RAM por parte de los clientes conectados al servidor.

Figura 28: openThinClient con un cliente conectado

Page 86: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 5: Prueba virtual del modelo de red

74

Figura 29: openThinClient con 10 clientes conectados

Figura 30: openThinClient un cliente conectado y Firefox

5.3 Resultado de la Prueba

En la tabla 9 se muestra un resumen del consumo de memoria que tienen los clientes respecto al

servidor.

Tabla 9: Consumo de memoria de los clientes ligeros

En la tabla anterior se puede apreciar que el consumo de memoria a partir del segundo cliente

conectado es menor que el consumo del primer cliente conectado, de la misma manera, el consumo

de los clientes al iniciar Firefox es prácticamente el mismo si la aplicación es iniciada por uno o por

varios clientes, este comportamiento se da por que en Linux todas las aplicaciones comparten

No. De clientes conectados

Consumo de memoria (MB)

Consumo de memoria con Firefox corriendo (MB)

1 297 324

2 298 324

3 299 324

… ... …

10 303 324

Page 87: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 5: Prueba virtual del modelo de red

75

librerías del sistema y/o de terceros y al iniciar varias copias de la misma aplicación, en lugar de iniciar

varias copias de las librerías, éstas son compartidas por la primer instancia de la aplicación, es por

esto que el consumo de memoria es menor, recordando la fórmula para calcular la cantidad de RAM

necesaria por número de clientes:

256 + (192 * usuarios) MB

* Nota: Recordando que en esta prueba, los clientes ligeros también son virtuales y no físicos, el

rendimiento de la computadora en la cual se realizaron las pruebas se vio afectado tras iniciar dos

servidores DHCP, dos servidores virtuales de clientes ligeros y seis clientes juntos, por lo cual no se

pueden realizar pruebas exhaustivas del modelo de red, la siguiente figura muestra el estrés al que

fue sometido el procesador de la computadora utilizada como servidor, haciendo necesario detener

la prueba.

Figura 31: Consumo de recursos del servidor con 10 maquinas virtuales simultáneas

Con todo y las limitaciones respecto al hardware utilizado para las pruebas, la finalidad de esta

prueba se cumple, comprobando la funcionalidad del modelo, confirmando que: un servidor de

clientes ligeros puede funcionar a través de un ambiente virtualizado.

Page 88: Virtualizacion de Servidores de Clientes Ligeros

LABORATORIO DE PRÁCTICAS, MODELADO EN TECNOLOGÍAS LIBRES

Capítulo 6

6 Consideraciones, conclusiones y trabajos

futuros

" La mejor razón para crear una empresa es para tener un impacto: crear un producto o servicio que haga del mundo un lugar mejor"

Guy Kawasaki

En este capítulo se hace énfasis a hechos que fueron tomados en cuenta para realizar este proyecto.

Son aspectos que sirvieron como motivación y muestran puntos de vista no necesariamente técnicos;

pueden ser considerados como conclusiones del proyecto, mas no del documento. Las conclusiones

del documento están enseguida de estos puntos de vista. Para finalizar, después de las conclusiones

hay un breve espacio dedicado a posibles trabajos futuros que podrían derivar de este documento.

Page 89: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 6: Consideraciones, conclusiones y trabajos futuros

77

6.1 Aspecto Económico

En los últimos años hubo principalmente dos eventos que impulsaron ligeramente la popularidad del

sistema operativo Linux; uno fue la salida al mercado de Windows Vista y su posterior fracaso, el otro

la crisis económica que afectó a todo el mundo. Un argumento y razón de peso fue la cantidad de

recursos de hardware que exigía Windows Vista al momento de salir al mercado y la falta de

compatibilidad con antiguas aplicaciones, por lo que muchos usuarios buscaron alternativas al no

poder escalar sus equipos de cómputo en ese momento.

En varios países de habla Hispana (y del resto del mundo) se realizaron implementaciones de

software libre en instituciones de gobierno; países de Europa, de Centro y Sud América comenzaron

con la migración de sus sistemas informáticos.

En esos países los modelos basados en software libre han tenido gran aceptación por parte de los

usuarios, los gobiernos han reconocido que en verdad existe un ahorro económico y una

independencia tecnológica que resulta importante a futuro.

En México, en su momento se firmó un convenio con Microsoft para que fuera proveedor exclusivo

de la plataforma tecnológica del gobierno [20], dejando fuera completamente a cualquier otra

alternativa que se presentara. Afortunadamente este año termina ese convenio y por fin el gobierno

considera al software libre como proveedor de servicios tecnológicos [29], por lo que se pronostican

grandes oportunidades para industria mexicana de software ya que habrá desarrollo de tecnología

propia.

Page 90: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 6: Consideraciones, conclusiones y trabajos futuros

78

6.2 Aspecto Ambiental

Por basura tecnológica se refiere a los desechos electrónicos de la industria de cómputo. La basura

tecnológica es un problema que afecta principalmente a habitantes de países en vías de desarrollo;

específicamente los países de África que son utilizados como vertederos de este tipo de desechos.

En México no existe cultura de reciclaje ni de tratamiento de desechos, independientemente de los

programas del gobierno para el reciclaje de basura tecnológica, en este breve texto no interesa tanto

el recorrido de estos desechos, es de mayor interés su destino. Para agravar este problema, los

avances y mejoras tecnológicas ocurren en cortos espacios de tiempo, induciendo la obsolescencia de

los dispositivos actuales y su reemplazo, provocando así la acumulación de más basura tecnológica

[27].

La rápida obsolescencia de los equipos de cómputo hace complicado el tratar con la basura

tecnológica. Las compañías de hardware han optado por recolectar las computadoras viejas y

disponer de ellas de alguna manera, por ejemplo suelen donar estas computadoras a organizaciones

no lucrativas de manera tal que estas organizaciones pueden obtener computadoras que si no son

muy modernas, al menos son suficientemente competitivas para sus propósitos. De este modo se

extiende la vida de las computadoras y también se cuida del medio ambiente pues estas

computadoras no terminan como basura tecnológica.

Page 91: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 6: Consideraciones, conclusiones y trabajos futuros

79

6.3 Aspecto Tecnológico

En el contexto del inicio de este proyecto, la tecnología de infraestructura tecnológica que está dando

de qué hablar es el Cloud Computing y la virtualización. Los costos en componentes de las

computadoras se han reducido bastante; en la actualidad se pueden tener computadoras con alto

poder de procesamiento y almacenamiento por un costo relativamente bajo.

Esto tiene como consecuencia que el Cloud Computing y la virtualización esté cada vez más al alcance

de casi cualquier empresa, pues, al reducirse los costos, aparece como una opción viable

económicamente y deja de ser tecnología que sólo podía proveer las compañías poseedoras de gran

infraestructura.

El poder utilizar casi cualquier computadora como un servidor permite que montar un modelo de red

como lo propone este documento sea viable económicamente y moderno. La comunidad de Linux

siempre está resolviendo errores y manteniendo las herramientas al día, por lo que siempre se estará

utilizando el software más moderno, además se explotará al máximo el servidor por medio de la

virtualización y estará preparado para dar el salto al Cloud Computing.

6.4 Aspecto Educativo

El crecimiento natural de la sociedad en cuanto a ciencia y tecnología se ha dado a través de

compartir avances con la comunidad científica, siendo estos conocimientos base para que otras

personas pueden crear e innovar con nuevas propuestas.

Page 92: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 6: Consideraciones, conclusiones y trabajos futuros

80

Pocas instituciones como la Universidad Autónoma de Chihuahua que es la primera universidad en

México en ofrecer una maestría en software libre, han integrado el uso y enseñanza del software libre

en sus aulas dando paso a que las Universidades en México poco a poco integren en su retícula

materias enfocadas a la enseñanza de estas tecnologías.

La escuela no está obligada a enseñar cierta tecnología o algún lenguaje de programación en

específico. El alumno es responsable de mantenerse al día respecto a las herramientas que se utilizan

en lo referente a Sistemas. Actualmente existen muchas alternativas para obtener un acercamiento a

las herramientas que se utilizan en el ámbito profesional, Microsoft tiene el programa Dreamspark

(www.dreamspark.com) el cual proporciona a maestros y alumnos herramientas de desarrollo de la

propia compañía sin costo alguno.

Ésta es una alternativa válida para acercar a los alumnos a tecnología utilizada profesionalmente, no

obstante, existe otra alternativa, sin descalificar ni menospreciar éste programa de Microsoft, que

bien puede ser combinado con herramientas libres.

Por el lado del software libre y/o de código abierto también están accesibles muchas herramientas

que si bien su consumo por usuarios finales no es tan extendido, sí se encuentran en los grandes

sistemas que al día de hoy soportan la infraestructura de las grandes redes, entre ellas Internet.

Compartiendo la opinión de Pedro Galván, Director General de la revista Software Gurú, los

lenguajes de programación que conviene aprender y que permanecerán en el futuro son aquellos que

sean multiplataforma, híbridos, escalables y orientados a sistemas concurrentes [15]. Por ello es mejor

para un alumno aprender con lenguajes de programación independientes de la plataforma.

Page 93: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 6: Consideraciones, conclusiones y trabajos futuros

81

6.5 En Resumen

El modelo de red que se define en este documento hace uso de tecnologías libres, este tipo de

herramientas han estado ganando terreno frente a las opciones tradicionales/privadas. Si se

implementa un modelo de red como el expuesto en este documento, al estar basado en software

libre, entre los beneficios que traería están:

Fomenta la capacitación del personal y desarrollo de habilidades ya que la gente trabaja en el

proyecto en lugar de contratar a externos que lo implementen.

El conocimiento se queda dentro de la institución, siendo el mismo caso del punto anterior, quien

desarrolla es la misma gente dentro de la institución y no alguien externo.

Permite extender el tiempo de uso de equipos de cómputo obsoletos, reduciendo la cantidad de

recursos económicos que se debe invertir en infraestructura que remplace los equipos de cómputo

actuales.

Como se ha mencionado a lo largo de este documento, este modelo es flexible y se puede adaptar e

implementar en cualquier centro de cómputo que requiera bajo poder de procesamiento, como

pudiera ser el sector educativo, el sector salud, gobierno, café internet, oficina, etc. Todo esto siendo

amigables con el medio ambiente, reutilizando equipos de cómputo obsoletos y evitando que se

conviertan en desechos tecnológicos.

Por lo tanto, implementar un laboratorio de cómputo con software libre donde se puedan combinar

tecnologías de Cloud Computing privado y público y con las características que se propone en este

Page 94: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 6: Consideraciones, conclusiones y trabajos futuros

82

documento, puede resultar una solución viable para algunos problemas como la rápida obsolescencia

de computadoras, el poco poder adquisitivo y diversas dificultades para la renovación de centros de

cómputo.

Para abrir las puertas a la innovación, este modelo estará abierto a sugerencias y modificaciones ya

sea en aspectos visuales, técnicos o de negocio, para que, una vez replicado, sea adaptado a

necesidades particulares y a partir de ahí desarrollar tecnología propia y libre.

6.6 Conclusiones

El modelo hace uso de tecnología de virtualización y de clientes ligeros, estas dos tecnologías que

datan de los años 60's se han renovado en la actualidad, en el caso de la virtualización, como base de

los servicios de cómputo en la nube.

El desarrollo de este modelo de red dio la oportunidad de conocer distintas distribuciones Linux,

además de diversas herramientas de software libre con distintos fines como: KVM, Xen, Proxmox,

VirtualBox, VmWare en el caso de virtualización; openThinClient OS, LTSP, TCOS en el caso del

servidor de clientes ligeros; Fail2ban para banear cuando existe un número especificado de fallos en

el login; Munin y Conky en caso de monitorización, AES-256 para cifrar el disco duro y configuraciones

de sistema para evitar los DDOS.

Todo el software empleado para este proyecto es software libre/gratuito por lo cual el gasto por

licencias de software es nulo teniendo como consecuencia una inversión inicial reducida si se toma en

Page 95: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 6: Consideraciones, conclusiones y trabajos futuros

83

cuenta el costo de las licencias de software de otras herramientas.

La idea original del proyecto, la cual consistía en realizar una implementación en la universidad, no

varió mucho: durante el desarrollo del proyecto se observó que la implementación del modelo de red

propuesto puede llevarse a cabo en distintos escenarios que tengan características y/o necesidades

similares a las descritas a continuación:

Implementar una red nueva o reutilizar una existente (tanto equipo de cómputo como

infraestructura de red).

Tener computadoras obsoletas y querer reutilizarlas.

No invertir en nuevas computadoras (usando las obsoletas).

Realizar una baja inversión para renovar un laboratorio de cómputo (con el servidor).

Tener un control sobre los registros, datos y programas de manera centralizada (por medio de un

servidor).

No depender de programas privativos y evitar el pago de licencias (haciendo uso de software

libre/gratuito).

Todas estas necesidades/características pueden ser cubiertas por el modelo de red de ésta

investigación. Recordando que es recomendable implementar el modelo de red en un ambiente que

requiera de bajo a medio poder de procesamiento, éstos son algunos de los escenarios en los que

puede ser implementado:

Cibercafés

Laboratorios de cómputo

Page 96: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 6: Consideraciones, conclusiones y trabajos futuros

84

Hogares

Pymes

Redes escolares

De tantas opciones que existen para virtualizar en la plataforma X86 se eligió la plataforma Proxmox

VE por cumplir con los requerimientos técnicos, el principal: que permita virtualización completa. Está

preparado también para darle escalabilidad al modelo permitiendo montar cluster de servidores en

caso de ser necesario. Además de caracterizarse de una interfaz de usuario amigable lo que permite

una gestión sencilla de las máquinas virtuales.

Como plataforma para el servidor de clientes ligeros se utilizó openThinclientOS, entre las caracterí-

sticas que destacan se encuentra la gestión de cuentas de usuario que se realiza mediante LDAP en

sustituto del sistema de usuarios y permisos que tiene Linux por default, lo que permite un mejor

rendimiento del servidor cuando se manejan gran cantidad de usuarios en el sistema.

La integración de estas herramientas fue un éxito y su funcionamiento fue demostrado en una prueba

virtual en la cual se puede observar la capacidad de una computadora de bajas prestaciones para

obtener el sistema operativo por medio de la red y además éste sistema está siendo virtualizado por

un servidor.

El software sugerido para el montaje de este modelo puede ser elegido a conveniencia, recordando

que este modelo de red es muy flexible y adaptable casi a cualquier necesidad de implementación.

Puede utilizarse software libre o privativo, El Hypervisor y el servidor de clientes ligeros puede ser de

distinto proveedor, los ajustes pertinentes deben realizarse por el interesado para adaptarlo al

Page 97: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 6: Consideraciones, conclusiones y trabajos futuros

85

escenario deseado.

El proyecto puede funcionar sin necesidad de implementar medidas de seguridad como las sugeridas

en éste documento, no obstante es recomendable reforzar el ambiente informático para prevenir

posibles fallos en el mismo.

Para proteger el modelo de red de usuarios ociosos y con el fin de mejorar la integridad de la red, se

implementaron medidas de seguridad a nivel Software.

Para la protección de la información por un robo físico se aseguraron los datos con la encripción del

sistema operativo completo, esto no evita que sea robado el servidor, pero si asegura que cuando se

intente ver la información, no lo hará de manera explícita.

La protección en las páginas de Internet ante el phishing, robo de identidad y malware malicioso es

resuelto con la inclusión de OpenDNS que nos advierte de estos tipos de contenidos y realiza el

filtrado de manera muy efectiva, aparte de incorporar más cosas favorables al proyecto como son la

corrección de ortografía en las páginas web y ofrece control parental en caso de ser necesario.

Para tener un control de los componentes de Hardware que se tienen en los servidores virtualizados

o el servidor base es necesario que sean monitorizados y lo ideal es tenerlos monitorizados durante el

pasado (historial), el presente (tiempo real) y el futuro (como servicio), para lograrlo se usan las

herramientas Conky para el presente y Munin para el pasado/futuro. Ambos al consumir bajos

recursos no es un problema con respecto al uso de memoria o procesador del servidor virutalizado.

Debido al creciente uso del ataque de denegación de servicios, se decidió dar dos opciones de

solución para casos distintos, que son el ataque mediante procesos (Bombas Fork) y el ataque

Page 98: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 6: Consideraciones, conclusiones y trabajos futuros

86

mediante peticiones de logeo. El primero es para que no se realice la denegación de servicio

mediante la saturación de procesos en el sistema operativo llevándolo al freezeo al servidor

virtualizado, es solucionado limitando el número de procesos que puede ejecutar el cliente al mismo

tiempo. El segundo es un ataque de fuerza bruta solucionado haciendo un baneo a un número

asignado de intentos fallidos y evitar la agresión.

Page 99: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 6: Consideraciones, conclusiones y trabajos futuros

87

6.7 Trabajos Futuros

Siguiendo de cerca la tendencia de la industria de software mientras se desarrollaba este proyecto, la

cual se está orientando a servicios en la nube, en esta sección quedan plasmados algunos caminos

que puede tomar este proyecto.

El proyecto está validado solo con pruebas virtuales, no está implementado en un ambiente físico,

para una futura revisión del proyecto se podría llevar a cabo una implementación con computadoras

obsoletas y/o clientes ligeros y realizar pruebas exhaustivas para determinar el funcionamiento

óptimo del modelo de red. La siguiente lista es una sugerencia de los insumos necesarios para realizar

una prueba física del modelo de red:

Servidor: Workstation SUN ULTRA 27

Hypervisor: Proxmox VE con XEN, KVM y OpenVZ

(2) Servidor Virtualde Clientes Ligeros: Debian con TCOS

(4) Clientes ligeros: Encore Thin Client ENTC-1000

Switch 10/100 Mbps

El proyecto está preparado para dar servicio en intranet, para poder proveer este servicio por

Internet habría que realizar una investigación respecto al “booteo por red a través de HTTP” y hacer

las adecuaciones pertinentes al modelo. Una vez realizados estos pasos se podría orientar el proyecto

hacia un modelo de servicio compatible con el Cloud Computing.

Hablando específicamente de las universidades y retomando el título de este proyecto, se puede

crear en las universidades un laboratorio de prácticas en donde se utilice software libre y dentro de

Page 100: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 6: Consideraciones, conclusiones y trabajos futuros

88

éste implementar un modelo como el propuesto en éste documento para pulir el modelo de red

mientras los alumnos utilizan el laboratorio. Un laboratorio como estos puede servir para desarrollar

las habilidades de los alumnos no solo en programación, también en redes, en seguridad,

administración, diseño de interfaces, etc. y descubrir su perfil de entre todos los roles que intervienen

en la Ingeniería en Sistemas.

Page 101: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 6: Consideraciones, conclusiones y trabajos futuros

89

Referencias

[1] Alvarenga, S. (07 de 09 de 2009). JeuAzarru.com. Recuperado el 11 de 2011, de

http://www.jeuazarru.com/docs/Thin_clients.pdf

[2] Aroche, S. F. (s.f.). Maestros del web. Recuperado el 8 de abril de 2011, de

http://www.maestrosdelweb.com/editorial/cloud-computing-nueva-era-de-desarrollo/

[3] Bitzipper. (2008 de 04 de 2008). Bitzipper.com. Recuperado el 12 de 10 de 2011, de

http://www.bitzipper.com/es/aes-encryption.html

[4] Cloudcomputingla. (10 de 08 de 2010). Cloudcomputingla.com/. Recuperado el 10 de 02 de

2011, de http://www.cloudcomputingla.com/

[5] Cristina. (07 de 11 de 2009). Travesuras.wordpress.com. Recuperado el 19 de 10 de 2011, de

http://travesuras.wordpress.com/2009/11/07/20091107-1/

[6] desarrolloweb.com. (10 de 02 de 2011). Recuperado el 10 de 2011, de

http://www.desarrolloweb.com/de_interes/ranking-sistemas-operativos-enero-2011-4783.html

[7] Fernandez, M. (18 de 07 de 2009). El Blog de Marcelo! Recuperado el 10 de 2011, de

http://blog.marcelofernandez.info

[8] Fortuna, J. (26 de 09 de 2011). juanfortuna.blogspot.com. Recuperado el 15 de 12 de 2012, de

http://juanfortuna.blogspot.com/p/ubuntu-con-encriptacion-de-disco-duro.html

[9] García, T. (19 de 09 de 2008). Neoteo.com. Recuperado el 14 de 11 de 2011, de

http://www.neoteo.com/opendns-nunca-mas-un-error-de-dns-5690

Page 102: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 6: Consideraciones, conclusiones y trabajos futuros

90

[10] Gutierrez, M. A. (08 de Julio de 2009). marcomancilla.com.ar. Recuperado el 12 de 2011, de

http://www.slideshare.net/mrsuperstar/licencias-de-software-1550985

[11] JNechuz. (28 de 03 de 2008). Taringa.net. Recuperado el 20 de 12 de 2012, de

http://www.taringa.net/posts/linux/10574959/Fail2Ban---Proteger-nuestro-server--de-peluchin.html

[12] Juanetebitel. (19 de 09 de 2010). Ubuntu-guia.com. Recuperado el 17 de 10 de 2011, de

http://www.ubuntu-guia.com/2010/08/instalar-conky-colors-ubuntu.html

[13] Junta de castilla y León. (2010). Observatorio Regional de la Sociedad de la Información.

Recuperado el 03 de 11 de 2011, de La tecnología como servicio:

http://issuu.com/orsicyl/docs/cloud_computing?mode=a_p

[14] Keys, 3.-I. I. (06 de 05 de 2011). 3-ik.com.ar. Recuperado el 8 de 12 de 2011, de

http://www.3-ik.com.ar/blog/tag/herramientas-de-monitoreo-opensource/

[15] Kondo, P. G. (13 de 08 de 2010). Youtube. Recuperado el 08 de 2011, de

http://www.youtube.com/watch?v=dvmN3dvMnjY

[16] Martinez, R. (1998). El rincón de Linux. Recuperado el 10 de abril de 2011, de El rincón de

Linux para hispanohablantes: http://www.linux-es.org/sobre_linux

[17] Naranjo, M. F. (s.f.). Clusterización de Servidor de Terminales con TCOS.

[18] Nerion. (2012). El blog de Virtualizamos. Recuperado el 02 de 2012, de

http://blog.virtualizamos.es/2011/09/21/%C2%BFque-tecnologia-de-hypervisor-de-virtualizacion-

elegir/

Page 103: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 6: Consideraciones, conclusiones y trabajos futuros

91

[19] Networks, F. d. (09 de 05 de 2010). Rie.d. Recuperado el 09 de 11 de 2011, de

http://www.salixnetworks.com/filtrado_web.html

[20] Octavio Islas, F. G. (19 de 03 de 2012). México: De “Los Amigos de Vicente Fox” a “Los amigos

de Microsoft”. Recuperado el 03 de 2012, de Radio Informaremos:

http://radioinformaremosmexico.wordpress.com/2012/03/25/mexico-de-los-amigos-de-vicente-fox-

a-los-amigos-de-microsoft/

[21] Osier-Mixon, J. M. (02 de septiembre de 2009). IBM. Recuperado el 08 de abril de 2011, de

developer works: http://www.ibm.com/developerworks/ssa/library/l-thin-client-cloud/index.html

[22] RedMallorca Lab. (s.f.). Recuperado el 11 de 2011, de Las noticias mas interesantes de la red:

http://lab.redmallorca.com/distribucion-completa-para-virtualizacion-free-proxmox-ve-kvm-ni-

vmware-esxi-ni-xenserver/

[23] Remesal, A. (20 de 04 de 2011). Alvaroremesal.net. Recuperado el 28 de 11 de 2011, de

http://www.alvaroremesal.net/blog-alvaroremesal/monitorizando-equipos-con-munin

[24] Ruiz, A. M. (2003). mauricio.tic.udc.es. Recuperado el 12 de 10 de 2011, de

http://webcache.googleusercontent.com/search?q=cache:xd3DCAbzop8J:mauricio.tic.udc.es/trabajo

s/seguridad/PGP/2003/pgpdoc.doc+pgpdoc.doc&hl=es&gl=mx

[25] Servidordebian. (07 de 02 de 2011). servidordebian.wikidot.com. Recuperado el 21 de 11 de

2011, de http://servidordebian.wikidot.com/squeeze-es:security-bruteforceattack-fail2ban

[26] Significadode.info. (16 de 05 de 2011). Significadode.info. Recuperado el 09 de 01 de 2012, de

Page 104: Virtualizacion de Servidores de Clientes Ligeros

Capítulo 6: Consideraciones, conclusiones y trabajos futuros

92

http://www.significadode.info/palabras-de-internet/ddos/

[27] Solis, M. N. (13 de 05 de 2010). Semarnat.gob.mx. Recuperado el 16 de 01 de 2012, de

http://www.semarnat.gob.mx/eventos/anteriores/experienciasresiduos/Documents/ProgramadeRec

olecci%C3%B3nyReciclado.pdf

[28] Trebol-a. (27 de 10 de 2007). Trebol-a.com. Recuperado el 03 de 11 de 2011, de

http://www.trebol-a.com/2007/10/27/detener-ataques-con-fail2ban/

[29] Velasco, E. (14 de 03 de 2012). Proveerá Linux los servicios tecnológicos al gobierno federal.

La Jornada , pág. 23.

[30] wgarcia. (24 de 12 de 2010). puna.upf.edu. Recuperado el 10 de 12 de 2011, de

http://puna.upf.edu/es/node/62

[31] windoctor. (27 de 12 de 2007). Mundobyte. Recuperado el 20 de 12 de 2011, de

http://mundobyte.wordpress.com/2007/12/27/cuidado-%C2%BFbombas-fork-%C2%BFque-son/

[32] ZéroBot. (05 de 04 de 2007). Wikipedia.es. Recuperado el 06 de 12 de 2011, de

http://es.wikipedia.org/wiki/Bomba_fork

Page 105: Virtualizacion de Servidores de Clientes Ligeros

LABORATORIO DE PRÁCTICAS, MODELADO EN TECNOLOGÍAS LIBRES

Anexos

Page 106: Virtualizacion de Servidores de Clientes Ligeros

Anexo A: Escenario del software libre en ambiente profesional

Actualmente, el uso de Linux en el hogar es un poco más del 1% [6], es una cifra que carece de

impacto considerando el mercado que abarcan los otros sistemas operativos.

Figura 32: Cuota de mercado de Sistemas operativos de escritorio Fuente: http://marketshare.hitslink.com/operating-system-market-share.aspx?qprid=8&qpcustomd=0

Si se observan estos datos desde el punto de vista del desarrollador la cifra cambia, siendo un poco

más del 50% de usuarios de Linux en este caso.

Page 107: Virtualizacion de Servidores de Clientes Ligeros

Figura 33: Cuota de mercado de sistemas operativos desde el punto de vista del desarrollador Fuente: http://www.muylinux.com/wp-content/uploads/2011/08/MuyLinux-julio2011.jpg

Con esto se observa que en un ambiente orientado al desarrollo en sistemas, el número de usuarios

es una cifra importante, en la actualidad ya no es un plus saber utilizar herramientas de software

libre, si una persona dedicada a la tecnología quiere ser competitiva, DEBE saber utilizar software

libre.

Page 108: Virtualizacion de Servidores de Clientes Ligeros

Anexo B: Licencias de software

Por qué debe importar [10]:

Ayuda a seleccionar herramientas de trabajo

Influye en el costo final del trabajo

Posibilita otorgar o quitar permisos sobre el trabajo final

Código Licencia Clausulas

Sin licencia Abierto Ninguna 0 Si no se especifica ninguna licencia, el código tiene derechos de copia por defecto. La gente puede leer el código, pero no tienen derecho a utilizarlo. Para utilizar el código, debes contactar con el autor directamente y pedir su permiso.

Dominio público

Abierto Permisiva 0 Si tu código está en el dominio público, cualquiera puede utilizarlo para cualquier propósito. El código no está en el dominio público por defecto; tienes que indicarlo explícitamente si quieres que así sea. De otra forma, el autor debe llevar bastante tiempo muerto para que su trabajo pase a ser de dominio público.

Licencia GPL Abierto Copyleft 12 La arquetípica licencia de software libre con barbas y sandalias. Tu código no podrá ser utilizado en ningún programa propietario, ¡nunca! Toma esa, ¡capitalismo!

Licencia LGPL Abierto En su mayor parte copyleft

16 GPL con una válvula de presión inteligentemente construida. Tu software libre puede enlazarse de forma binaria a programas propietarios bajo ciertas condiciones muy específicas.

Licencia MIT/X11

Abierto Permisiva 2 Corta y dulce. Incluye una cláusula de descargo de responsabilidad genérica.

Licencia BSD Abierto Permisiva 2 Corta y dulce.

Page 109: Virtualizacion de Servidores de Clientes Ligeros

Incluye una cláusula de descargo de responsabilidad nombrando explícitamente a la organización.

Licencia Apache

Abierto Permisiva 9 Se requiere a las obras derivadas que notifiquen de cualquier código licenciado o propietario en una localización común.

Licencia Pública de Eclipse

Abierto Permisiva 7 Amigable con los negocios. Permite que las obras derivadas elijan su propia licencia para sus contribuciones.

Licencia Pública de Mozilla

Abierto Copyleft débil

13 Permite una mezcla libre con software propietario.

Licencia Permisiva de MS

Abierto Permisiva 3 Parecida a las licencias MIT y BSD. No está aceptada formalmente por la OSI, y también se ofrece en una variante “sólo-Windows” llamada LPL.

Licencia Comunitaria de MS

Abierto Copyleft 3 Parecida a la licencia GPL. Requiere que todo el código con el que se contribuya se devuelva a la comunidad. No está aceptada formalmente por la OSI, y también se ofrece en una versión “sólo-Windows” llamada LCL.

Licencia de Referencia de MS

Proprietario Sólo lectura

3 Puedes revisar el código, o hacer copias de él, pero no puedes utilizarlo o cambiarlo de ninguna forma. Ofrece una ventana a código que anteriormente era completamente proprietario y secreto.

Tabla 10: Tipos de Licencias de Software Fuente: http://mundogeek.net/archivos/2007/04/09/licencias-de-software/

Page 110: Virtualizacion de Servidores de Clientes Ligeros

Anexo C: Tipos de red en ambientes virtuales

Comparación de tipos de red

Comparison of the network types

Type Bridged

NAT

(Network Address

Translation)

Host-only

Description

The VM appears as

if it was

a physical host on

the network.

The VM hides behind

the IP address of the

VMware host. Other

VMs in the same NAT

network can access it

directly.

The VM can only access

the VMware host and

other VMs in the same

host-only network

IP address

The VM requires it's

own IP address from

the network it is

supposed to belong

to.

The VM can have any private IP configured on the

VMware host.

Accessibility

from network

Same as a physical

host

Hides behind NAT, so

port forwarding on the

VMware host required if

external access required

Not accessible from

external network unless

routed via another VM

with access to both

external network and the

same host-only network

Use cases

An always-on

server hosted on

VMware, or a

virtual router or

firewall

VMs intended for

testing, or cases when

the amount of IP

addresses in the external

network is limited.

VMs intended for

testing with no need to

access the network, or

VMs which will be

protected by a firewall

in another VM.

Other

Known to have

problems with some

wireless chipsets

especially with

Linux, also with

Windows Vista.

NAT is really a host-

only network with a

default gateway (on the

VMware host) that

routes and NATs.

Tabla 11: Tipos de red Fuente: http://vmfaq.com/entry/34/

Page 111: Virtualizacion de Servidores de Clientes Ligeros

ANEXO D: Recomendaciones para reglamento, seguridad física

y contra incendios, seguridad en contraseñas

Reglamento

Queda prohibido a todos los usuarios:

Introducir alimentos y/o bebidas y fumar dentro del área de servicio.

Meter o consumir bebidas alcohólicas, estupefacientes o cualquier tipo de droga

Utilizar grabadoras, radios o equipos de sonido y audífonos.

Mover, desconectar y/o conectar equipo de cómputo sin autorización.

Modificar o intentar modificar la configuración del servidor o equipos.

Alterar software instalado en los equipos.

Alterar o dañar las etiquetas de identificación del equipo de cómputo.

Crear directorios y copiar archivos fuera de las carpetas personales de cada usuario.

Utilizar el equipo de computo como maquinas de juegos; esto incluye utilizar software de juegos

o acceder a servicios de cualquier tipo que impliquen el uso de juegos interactivos no

académicos.

Utilizar el equipo para desarrollar programas o proyectos ajenos al interés académico de la

Universidad.

Extraer manuales y/o libros.

Extraer materiales de consumo del equipo de cómputo.

Copiar software cuya licencia de uso lo prohíba.

Enviar mensajes a otros usuarios de manera anónima.

Page 112: Virtualizacion de Servidores de Clientes Ligeros

Abuso y/o mal uso del equipo.

Acceder a páginas con contenido no apto a la moral pública de los usuarios del centro de

cómputo.

Acceder a programas de Chat o mensajería o instalarlos en las maquinas.

Cualquier actitud agresiva o de mala educación.

Se recomienda manejar mínimo 2 perfiles para el laboratorio:

Administrador (profesor)

Cliente (alumno)

De preferencia manejar 3 perfiles:

Administrador (especialista)

Encargado (profesor)

Cliente (alumno)

Seguridad física y contra incendios de los equipos.

La seguridad de contra incendios es un aspecto de suma importancia en un centro de cómputo. Las

siguientes recomendaciones pueden prolongar la vida de los equipos:

Ubicar el equipo en un lugar donde no exista mucho movimiento de personal o de equipo de

cómputo.

No traslade la computadora sin la autorización del asesor del Laboratorio de Computo.

Instale la computadora sobre escritorios o muebles estables o especialmente diseñados para ello.

Ubique el servidor lejos de la luz del sol y de ventanas abiertas.

Page 113: Virtualizacion de Servidores de Clientes Ligeros

La energía eléctrica debe ser regulada a 110 voltios y con polo a tierra. Asesórese debidamente

para garantizar una buena toma eléctrica.

El equipo de la red debe estar lejos de la luz del sol y de ventanas abiertas.

No conecte otros aparatos (Radios, Computadoras portátiles, calculadoras, celulares, etc.) en la

misma toma de la computadora, ubique el equipo en un lugar donde no exista mucho

movimiento de personal.

No traslade la computadora sin la autorización del asesor del Centro de Cómputo.

Instale la computadora sobre escritorios o muebles estables o especialmente diseñados para ello.

Debe haber dos enchufes únicamente por cada computadora.

Cada usuario, al momento de terminar las labores diarias, deberá apagar su equipo asignado.

El encargado del laboratorio de cómputo deberá apagar los dispositivos que se hayan ocupado

aparte de las computadoras (Impresoras, Escáner, etc).

Evite colocar encima o cerca de la computadora ganchos, clips, bebidas y comida que se pueden

caer accidentalmente dentro del equipo.

No fume dentro del laboratorio, ni cerca del equipo, el alquitrán se adhiere a las piezas y circuitos

internos del equipo.

Mantenga libre de polvo las partes externas de la computadora y de las impresoras. Utilice un

paño suave y seco. Jamás use agua y jabón.

Utilice en la impresora el ancho del papel adecuado.

Está prohibido destapar y tratar de arreglar los equipos por cuenta propia. En todos los casos el

encargado del Laboratorio de Cómputo es el encargado de esta operación.

No preste los equipos o asegúrese que la persona que lo utilizará conoce su correcta operación.

Page 114: Virtualizacion de Servidores de Clientes Ligeros

Seguridad en contraseñas

Recomendaciones para tener contraseñas más seguras para el Laboratorio de cómputo:

Exigir el cambio de las claves con frecuencia.

No permitir el uso de palabras comunes, o que estén en un diccionario común.

Exigir un mínimo de caracteres para la clave (10 o más).

Exigir la combinación de letras, números y símbolos en las claves (sin que se puedan repetir como

máximo dos veces en el caso de los números y símbolos).

Nunca almacenar las claves en texto plano, o con algoritmos débiles de criptografía.

No contiene el nombre de usuario, el nombre real o el nombre de la empresa.

No almacenar sólo el hash de la clave, usar un mecanismo que genere algo de entropía en la clave

almacenada (salt, o algo similar).

Abrevie una frase que recuerde fácilmente. Puede estar formada por números, signos o palabras

que puede cambiar por números o signos.

No escriba nunca su contraseña ni envíe nunca su contraseña en un mensaje de correo

electrónico

No revele nunca su contraseña en una conversación de mensajes instantáneos ni la comparta con

nadie.

Page 115: Virtualizacion de Servidores de Clientes Ligeros

Anexo E: Herramientas de Software Libre

En el siguiente apartado se muestra un listado de herramientas de software libre que ha sido

seleccionado para su uso en un laboratorio de cómputo universitario.

Este listado de aplicaciones es solo una referencia de las posibles aplicaciones que se pueden utilizar

en un entorno como es el modelo de red al que este anexo hace referencia, es una pequeña

exploración de la vasta cantidad de alternativas que se ofrecen dentro del software libre para cubrir

las diferentes necesidades que surjan a los distintos tipos de probables usuarios del sistema.

Esta lista sugiere aplicaciones que se pueden utilizar en un entorno de desarrollo de sistemas a nivel

universitario, el lector es libre de modificar esta lista y de agregar el software que se adapte a sus

necesidades.

Lo que proponemos con este catálogo es utilizar herramientas universales, utilizar lenguajes de

programación multiplataforma como C, C++, JAVA permite al alumno una versatilidad que no

obtendría si se especializara en una sola plataforma. Los lenguajes que sobrevivirán son aquellos que

proporcionen soluciones multiplataforma, lenguajes híbridos, que incorporen distintos paradigmas,

escalables y concurrentes.

Por último se le recuerda al lector que la manera de instalar software en este sistema se hace con el

comando "sudo apt-get install" seguido del nombre del programa instalar.

Page 116: Virtualizacion de Servidores de Clientes Ligeros

Listado de software

Aplicación Descripción

Eclipse Entorno de desarrollo integrado

Netbeans Entorno de desarrollo integrado para java

Kdevelop Entorno de desarrollo integrado para C/C++

Anjuta Entorno de desarrollo integrado para C/C++

Code::Blocks Entorno de desarrollo integrado para C/C++

MonoDevelop Entorno de desarrollo integrado para .NET

Protege Editor de ontologías y framework para bases de conocimiento

Hugs 98 Interprete para el lenguaje de programación funcional Haskell

Pselnt Aprendizaje de logica de programación

gnat gps Entorno de programación para ADA

swi prolog Implementación del lenguaje de programación Prolog

python Lenguaje de scripting de propósito general

pythonG Entorno de programación para una versión extendida de Python

Gambas Entorno de desarrollo integrado parecido a Visual Basic

Bluefish Entorno de edición HTML

Kompozer Entorno de edición HTML

Alleyoop Entorno grafico para Valgrind

Data Display Debugger Interfaz grafica para GDB y otros debuggers de UNIX

Doxygen Wizard Generador de documentación con soporte multilenguaje

Meld Herramienta para comparar archivos y directorios

Nemiver Interfaz para depurador GDB

eSvn Entorno grafico para Subversion Tabla 12: Listado de Software

De la tabla anterior se destacan las herramientas Eclipse y Netbeans las cuales funcionan en sistemas

operativos Windows, Linux y Mac OS X. Estos dos IDE han integrado otros lenguajes de programación,

no solo JAVA, además Eclipse fue un proyecto iniciado por IBM, tiene la calidad suficiente que puede

aportar una gran empresa. Estos IDE, pudiéndose ejecutar en cualquier plataforma permiten la

portabilidad de las aplicaciones desarrolladas.

Page 117: Virtualizacion de Servidores de Clientes Ligeros

Anexo F: How to: Instalación de Proxmox

Para instalar Proxmox Virtual Environment se deben seguir los pasos siguientes:

Bootear el servidor con el CD de proxmox dentro

Figura 34: Inicio de Proxmox

Configurar el país y el teclado

Figura 35: Configuración de país y teclado de Proxmox

Escribir la contraseña de root y el correo del administrador.

Page 118: Virtualizacion de Servidores de Clientes Ligeros

Figura 36: Contraseña y correo de administrador

Ingresar los datos correspondientes a la configuración de la red.

Figura 37: Datos de la red

Esperar a que termine la instalación y reiniciar el servidor.

Desde cualquier otra computadora conectada a la red se debe ingresar a la dirección IP del

servidor a través de un explorador.

Figura 38: Ingreso de la IP del servidor

En la página que mostrará en pantalla se debe ingresar el usuario root y su correspondiente

contraseña.

Page 119: Virtualizacion de Servidores de Clientes Ligeros

Figura 39: Login de Proxmox

Si todo ha salido bien, se mostrará en pantalla una tabla con datos acerca del servidor

Figura 40: Datos del servidor

Page 120: Virtualizacion de Servidores de Clientes Ligeros

Anexo G: How to: Instalación de LTSP en Ubuntu 11.04

Ésta configuración de LTSP se realizará con dos interfaces de red, en la cual una interfaz (eth0) estará

conectada a internet y la segunda interfaz (eth1) estará conectada a la red interna en donde estarán

conectados los clientes. Para instalar LTSP debe seguirse el siguiente procedimiento.

Dentro de Ubuntu 11.10 ejecutar las siguientes líneas en terminal.

Se configuran las interfaces de red, como ejemplo se configura eth0 por DHCP y eth1 con IP

192.168.0.1 MASK 255.255.255.0.

Figura 41: Configuración de red eth1

sudo apt-get update

sudo apt-get install ltsp-server-standalone openssh-server

Page 121: Virtualizacion de Servidores de Clientes Ligeros

Para configurar la segunda interfaz como DHCP se debe editar un siguiente archivo de la siguiente

manera:

Y en la línea donde dice INTERFACES agregar entre comillas “eth1”

Figura 42: Vista sin modificaciones del archivo isc-dhcp-server

Ahora hay que especificar la configuración de la red (direcciones IP y mascaras), para esto se edita

el siguiente archivo:

sudo nano /etc/default/isc-dhcp-server

sudo nano /etc/ltsp/dhcpd.conf

Page 122: Virtualizacion de Servidores de Clientes Ligeros

Figura 43: Vista por default del archivo dhcpd.conf

Reiniciar servicios:

Crear Imagen de Cliente

Los clientes conectados a un servidor LTSP obtienen el sistema operativo de una imagen generada

dentro del servidor.

Para construir la imagen del cliente hay que ejecutar el siguiente comando:

sudo /etc/init.d/networking restart

sudo /etc/init.d/isc-dhcp-server restart

sudo /etc/init.d/openbsd-inetd restart

sudo ltsp-build-client --arch i386

Page 123: Virtualizacion de Servidores de Clientes Ligeros

Figura 44: Fin de la creación de la imagen del cliente

Para instalar el administrador-monitor de LTSP se debe ejecutar el siguiente comando:

Figura 45: Muestra del programa Thin Client Manager funcionando

sudo apt-get install thin-client-manager-gnomesudo

Page 124: Virtualizacion de Servidores de Clientes Ligeros

ANEXO H: Como encriptar sistema operativo

Se muestran los pasos a seguir para instalar Ubuntu 11.04 encriptando el sistema operativo usando la

versión de 64 bits “ubuntu-11.04-alternate-amd64.iso” (funciona en 32 y 64 bits de la misma manera

para cualquier versión de Ubuntu altarnate que pueden ser descargadas de la página:

http://releases.ubuntu.com/).

Se deben seguir los siguientes pasos para realizar la encripción completa del disco duro [8]:

Seleccionar Idioma: Español.

En las opciones escogeremos: Instalar Ubuntu.

Escoger el país: México.

Seleccionar No en detectar la disposición del teclado.

Seleccionar el teclado disponible, en este caso es Latino América.

Elegir el keyboard layout del teclado que esté disponible, en este caso es Latinoamérica.

Introducimos el nombre de la maquina: aquí será serverubuntu.

Escoger Sí en configurar el reloj.

Realizaremos el Particionado manual de los discos.

Elegir el disco duro en donde se instalará el sistema operativo encriptado.

Dar Sí en caso de preguntar si queremos crear una nueva tabla de particiones vacía en el

dispositivo seleccionado anteriormente.

Asignar el Disco duro que muestre las palabras ESPACIO LIBRE

Page 125: Virtualizacion de Servidores de Clientes Ligeros

Figura 46: Ubicar disco duro con espacio libre

Crear una nueva partición para el /boot.

Se asigna un espacio de 250MB ya que es solo para las opciones de booteo de los sistemas

operativos.

Seleccionar Primaria y al principio del espacio disponible.

Seleccionar un punto de montaje y escoger /boot.

Y terminar de definir la partición.

Ir a Configurar los volúmenes cifrados.

Page 126: Virtualizacion de Servidores de Clientes Ligeros

Figura 47: Seleccionar configuración de volumenes cifrados

Seleccionar Sí para guardar los cambios a los discos duros y configurar los volúmenes cifrados.

Crear el nuevo volumen cifrado.

Aquí asignar la partición que tenga ESPACIO LIBRE ya que la otra es la que ya se ha realizado de

/boot.

Figura 48: Seleccionar partición con espacio libre

Seleccionar; Se ha terminado de definir la partición, y guardar los cambios de los discos y

volumen de cifrado seguido de la opción de Terminar.

Page 127: Virtualizacion de Servidores de Clientes Ligeros

Escribiremos la frase de contraseña (mientras más robusta y compleja, es mejor para la

protección).

La repetimos y seguido escoger Configurar el Gestor de Volúmenes Lógicos (LVM).

Figura 49: Seleccionar la configuración de gestor de volúmenes (LVM)

Dar Sí a Guardar los cambios a los discos.

Crear un grupo de volúmenes.

Page 128: Virtualizacion de Servidores de Clientes Ligeros

Figura 50: Cómo crear un grupo de volúmenes

Teclear un nombre a los volúmenes cifrados en este caso es volúmenes.

Seleccionar la partición de mayor tamaño, la otra de 248 MB es la que se hizo de /boot.

Figura 51: Cómo seleccionar la partición boot

Dar que Sí se desea mantener la distribución de particiones existente y configurar LVM.

Ir a Crear un volumen lógico.

Escribir el nombre del volumen cifrado que se creo, fue volúmenes.

Asignar el nombre al primero volumen lógico, SWAP y asignar el tamaño que sea necesario para

la área de intercambio, dependiendo la memoria RAM que se tenga en la computadora o

máquina virtual (tampoco es necesario poner toda la memoria RAM física para SWAP, si se tiene

4 GB se podrían poner solo 3GB).

Crear un volumen lógico de nuevo pero ahora con el nombre de raíz y el tamaño del 30%

aproximadamente del disco duro que tengan en los volúmenes cifrados.

Establecer un volumen lógico de nuevo pero ahora con el nombre de home y el tamaño restante

del disco duro que se tengan en los volúmenes cifrados.

Page 129: Virtualizacion de Servidores de Clientes Ligeros

Ahora elegimos la opción de Terminar.

Figura 52: Fin de tabla de particiones

Entonces la tabla de particiones deberá quedar de la siguiente manera:

Figura 53: Muestra de particiones creadas

Page 130: Virtualizacion de Servidores de Clientes Ligeros

Ir a la sección de home en donde se encuentra el tamaño asignado, seguido de la opción no

utilizar para especificar el tipo de partición ext4.

Optar por el punto de montaje /home y terminar de definir la partición.

Ir a la sección de raíz en donde se encuentra el tamaño asignado, seguido de la opción no utilizar

para especificar el tipo de partición ext4.

Elegit el punto de montaje “/” (raíz) y terminar de definir la partición.

Llegar a la sección de raíz en donde se encuentra el tamaño asignado, seguido de la opción no

utilizar para especificar el tipo de partición área de intercambio y terminar de definir la partición.

Finalizar el particionado y escribir los cambios en el disco.

Figura 54: Muestra de particiones finalizadas

Page 131: Virtualizacion de Servidores de Clientes Ligeros

Muestra todos los cambios que se han realizado en las 3 nuevas particiones, si estas se encuentran de

manera correcta seleccionar Sí, de lo contrario se tiene que borrar las particiones y realizar de nuevo

el procedimiento para realizar los volúmenes.

Figura 55: Muestra de particiones creadas y cifradas

Esperar a que cargue la instalación del sistema base y después poner el nombre del usuario.

Asignar después el nombre de usuario para la cuenta y agregar la contraseña, de nuevo ponemos

la contraseña.

Seleccionar No para cifrar la carpeta personal (/home) ya que ha sido encriptada posteriormente,

se puede seleccionar que sí en caso de ser muy paranoico.

Si no tenemos que configurar un gestor de paquetes por proxy HTTP lo dejar vacío.

Esperar a que se instale el sistema y seguido a ello daremos sí para cargar el GRUB.

De nuevo Sí para la opción del reloj y continuar para terminar con la instalación del sistema.

La computadora se reiniciará y antes de entrar a login de Ubuntu pedirá la frase para montar la

partición encriptada.

Page 132: Virtualizacion de Servidores de Clientes Ligeros

Figura 56: Pantalla de inicio del sistema operativo para montar el cifrado

Teclear la contraseña de cifrado y mandará al login de Ubuntu, poner la contraseña del usuario con el

que se entrará y se abrirá el Sistema operativo corriendo de manera normal pero con la diferencia

que esta encriptado.

Figura 57: Login de Ubuntu

Page 133: Virtualizacion de Servidores de Clientes Ligeros

Figura 58: Escritorio de Ubuntu

Page 134: Virtualizacion de Servidores de Clientes Ligeros

ANEXO I: How to: Instalar Munin

Para poder instalar y configurar el servicio de servidor Munin es necesario abrir una consola como

root (#) ir a la carpeta /Munin y ejecutar el archivo configurarmunin esto se realiza escribiendo en

consola lo siguiente [23]:

Para desinstalar el servidor Munin se debe ejecutar el archivo desinstalarmunin esto se realiza

escribiendo en consola lo siguiente:

Al terminar la instalación de Munin abriremos un explorador y escribiremos la siguiente URL:

En caso de que muestre un mensaje de error que diga algo como:

El baneo a esperar es aproximadamente 5 minutos para que se ejecute el archivo cron (5 minutos es

el tiempo por default que establece cron en la instalación de Munin) y comience a actualizar las

gráficas en la ubicación que necesite el programa. En caso de que no muestre este error, abrirá una

página con el logo de Munin y ahí escoger las opciones de que gráficas se están usando.

Como agregar un nodo cliente

sh intstallmunin

sh uninstallmunin

http://localhost/munin

Forbidden

You don't have permission to access /munin/ on this server

Page 135: Virtualizacion de Servidores de Clientes Ligeros

Para poder agregar un nodo cliente es necesario editar un archivo ubicado en la extensión:

En donde muestra algo como esto:

Esta información es del servidor para que sea auto monitoreado, para agregar a los clientes es

necesario agregar:

Se debe modificar ipcliente por la IP del cliente que se deseé monitorear y el nombrecliente por el

nombre que deseemos aparezca en la raíz de sus gráficas.

Es opcional modificar ipserver por la IP del servidor o dejarlo como 127.0.0.1 y el nombreserver por el

nombre que deseemos aparezca en la raíz las gráficas del servidor.

En localdomain se escribe el nombre de la empresa, red o cualquier otro nombre.

/etc/munin/munin.conf

[nombreserver.localdomain]

address 127.0.0.1

use_node_name yes

[nombreserver.localdomain]

address ipserver

use_node_name yes

[nombrecliente.localdomain]

address ipcliente

use_node_name yes

Page 136: Virtualizacion de Servidores de Clientes Ligeros

Se pueden agregar por debajo todos los clientes que se quieran.

Eliminar gráficas de Munin

Para poder eliminar las gráficas de la página web de Munin, es necesario quitar los enlaces simbólicos

ubicados en la extensión /etc/munin/plugins en donde solo es necesario borrar el acceso directo la(s)

gráfica(s) que se desee(n) quitar, o también modificar el archivo de eliminargraficas, el archivo

contiene todas las gráficas que tiene por default Munin, todas inician con el símbolo de ‘#’, es

necesario quitar el símbolo de ‘#’ en los renglones que tengan la palabra sudo ejemplo de eliminar la

gráfica de usuario:

El archivo debe quedar de la siguiente manera:

Guardar el archivo, ahora abriremos una terminal y ejecutaremos el archivo como root (‘#’) de la

siguiente manera:

De esta manera cuando se vuelva a ejecutar el cron no mostrará la gráfica correspondiente a

usuarios.

Agregar gráficas que fueron borradas

# usuario

# sudo rm /etc/munin/plugins/users

# usuario

sudo rm /etc/munin/plugins/users

sh deletegraph

Page 137: Virtualizacion de Servidores de Clientes Ligeros

Para poder añadir las gráficas de la página web de Munin, es necesario crear los enlaces simbólicos

desde /usr/share/munin/plugins/ a /etc/munin/plugins/ en donde solo es necesario agregar el acceso

directo de la(s) gráfica(s) que se desee(n) agregar, o también modificar el archivo de agregargraficas,

el archivo contiene todas las gráficas que tiene por default Munin, todas inician con el símbolo de ‘#’,

es necesario quitar el símbolo de ‘#’ en los renglones que tengan la palabra sudo ejemplo de crear el

enlace simbólico de usuario:

El archivo debe quedar de la siguiente manera:

Guardar el archivo, ahora abriremos una terminal y ejecutaremos el archivo como root (‘#’) de la

siguiente manera:

Agregar nuevas gráficas

Para agregar nuevas gráficas y monitorear hardware o software, se debe realizar un Shell Script

programado en Perl y al parecer nuevas versiones soportan bash y phyton también, los cuales

deberán ser copiados en la extensión /usr/share/munin/plugins/users y después crear su enlace

# usuario

#sudo ln -s /usr/share/munin/plugins/users /etc/munin/plugins/users

# usuario

sudo ln -s /usr/share/munin/plugins/users /etc/munin/plugins/users

sh agregargraficas

Page 138: Virtualizacion de Servidores de Clientes Ligeros

simbólico de /usr/share/munin/plugins/nombrescript a /etc/munin/plugins/nombrescript solo resta

esperar a que cron se ejecute para que aparezca la nueva gráfica.

Escribiremos desde consola el comando

Se mostrará todos las gráficas están funcionando y cuales aún no lo hacen, dará información de que

plugins necesitan parámetros o pueden ser ocupados en la computadora y para agregar alguno es

necesario solo crear el enlace simbólico. En la siguiente página existen varios plugins listos para

comenzar a monitorear:

Si algunos de los plugins no se muestran se debe instalar la siguiente librería escribiendo en consola:

Cron

Permite ejecutar otros programas o scripts en un lapso de tiempo y una periodicidad especificada por

el usuario. Su comportamiento está regulado por su archivo de configuración, que se llama crontab.

Cada usuario del sistema posee un archivo crontab personalizado y sólo el usuario root puede

modificar el archivo crontab de otro usuario.

Para hacer que Munin se ‘actualice’ por un tiempo específico es necesario ir a su archivo cron ubicado

para modificarlo en la extensión:

sudo apt-get install libcache-cache-perl

munin-node-configure --suggest

http://exchange.munin-monitoring.org/

/etc/con.d/munin

Page 139: Virtualizacion de Servidores de Clientes Ligeros

El archivo tiene por default que el programa se ‘actualice’ cada 5 minutos, es posible modificarlo de la

siguiente manera:

Un asterisco (*) para indicar todos los posibles valores.

Un valor fijo para indicar un minuto, hora, día o mes.

Un rango de valores, dos números separados por guiones. Un rango puede terminar en

/numero para indicar el incremento.

Una lista de valores separados por comas.

Un valor */numero para indicar todos los valores con incremento de "número".

Ejecutarlo de lunes a viernes a la hora en punto

Minutos (0-59)

| Horas (0-23)

| | Día del mes (1-31)

| | | Mes (1-12)

| | | | Día de la semana (0-6 donde 0=Domingo)

| | | | | Comandos

0 * * * 1-5 /etc/cron.d/munin

Ejecutarlo a las 12 de la noche cada día

0 0 * * * /etc/cron.d/munin

Ejecutarlo a las 12:15 de la noche cada día

15 0 * * * /etc/cron.d/munin

Page 140: Virtualizacion de Servidores de Clientes Ligeros

ANEXO J: How to: Instalar Conky

Primero se agrega el repositorio para tener la versión más reciente de Conky [30]:

Actualizar el apt-get:

Para poder instalar y configurar el servicio de Conky es necesario abrir una consola y ejecutar el

siguiente comando:

Copiar el archivo de configuración de Conky y le dejaremos otro valor para tener el original como

respaldo:

Se debe crear el archivo "~/.conkyrc" y editarlo con los valores que deseemos que sean

monitorizados:

Se muestra el código de un ejemplo para Conky usado para el proyecto:

use_xft yes xftfont DroidSans:size=8.75 xftalpha 0.1 text_buffer_size 2048 #### ## Force UTF8? Requires XFT

sudo apt-get install conky-all

sudo add-apt-repository ppa:norsetto/ppa

sudo apt-get update

mv ~/.conkyrc ~/.conkyrcOLD

gksudo gedit ~/.conkyrc

Page 141: Virtualizacion de Servidores de Clientes Ligeros

## Displays degree symbol, instead of °, etc. # override_utf8_locale yes #### ## Daemonize Conky, aka "fork to background". # background yes #### # Update interval in seconds. # update_interval 1.5 #### ## This is the number of times Conky will update before quitting. ## Set to zero to run forever. # total_run_times 0 #### ## Create own window instead of using desktop (required in nautilus)? # own_window yes own_window_type override own_window_transparent yes #### ## Force images to redraw when they change. # imlib_cache_size 0 #### ## Use double buffering? Reduces flicker. # double_buffer yes #### ## Draw shades? # draw_shades no #### ## Draw outlines? # draw_outline no #### ## Draw borders around text? # draw_borders no #### ## Draw borders around graphs? #

Page 142: Virtualizacion de Servidores de Clientes Ligeros

draw_graph_borders no #### ## Print text to stdout? ## Print text in console? # out_to_ncurses no out_to_console no #### ## Text alignment. # alignment top_right #### ## Minimum size of text area. # minimum_size 240 0 #### ## Gap between text and screen borders. # gap_x 8 gap_y 33 #### ## Shorten MiB/GiB to M/G in stats. # short_units yes #### ## Pad % symbol spacing after numbers. # pad_percents 0 #### ## Pad spacing between text and borders. # border_inner_margin 4 #### ## Limit the length of names in "Top Processes". # top_name_width 10 #### ## Subtract file system -/+buffers/cache from used memory? ## Set to yes, to produce meaningful physical memory stats. # no_buffers yes #### ## Set to yes, if you want all text to be in UPPERCASE. # uppercase no

Page 143: Virtualizacion de Servidores de Clientes Ligeros

#### ## Number of cpu samples to average. ## Set to 1 to disable averaging. # cpu_avg_samples 2 #### ## Number of net samples to average. ## Set to 1 to disable averaging. # net_avg_samples 2 #### ## Add spaces to keep things from moving around? ## Only affects certain objects. # use_spacer right #### ## My colors (suit yourself). color1 Ivory color2 Ivory2 color6 Gray color8 DarkSlateGray # ## Installed fonts (required). ## OpenLogos (Icoma) ## StyleBats (Vinterstille) ## Ubuntu Title Bold (Paulo Silva) TEXT ################################## ## DATOS ## ################################## ${voffset -33}${font OpenLogos:size=103}${color2}${font}${voffset -76}${goto 178}${font UbuntuTitleBold:size=19.6}${color #cb2033}${pre_exec lsb_release -r -s}${font} ${font DroidSans:bold:size=9.25}${color #cb2033}${exec whoami} ${font}${color8}${voffset -2}${hr 2}${font} ################################## ## SISTEMA ## ################################## ${voffset 7}${font DroidSans:bold:size=8}${color #cb2033}SISTEMA${offset 8}${color8}${voffset -2}${hr 2}${font} ${voffset 4}${font OpenLogos:size=8.3}${color2}${voffset -4}${font StyleBats:size=8.3}${color #828282}${offset 5}${sysname}${offset 5}${kernel}${alignr}${font StyleBats:size=8.3P5}${machine}${font} ${voffset 2}${font StyleBats:size=8.3}${color2}${voffset -1}${font StyleBats:size=8.3}${color #828282}${offset 5}Velocidad${offset 3}Del${offset 3}Procesador${offset 3}${alignr}${font StyleBats:size=8.3}${freq_g cpu0}${offset 1}GHz${font}

Page 144: Virtualizacion de Servidores de Clientes Ligeros

${voffset 2}${font StyleBats:size=8.3}${color2}${voffset -1}${font StyleBats:size=8.3}${color #828282}${offset 5}Tiempo del ${offset 3}Sistema Encendido${alignr}${font StyleBats:size=8.3}${uptime_short}${font} ${voffset 2}${font StyleBats:size=8.3}${color2}${voffset -1}${font StyleBats:size=8.3}${color #828282}${offset 5}Sistema de${offset 3}Archivos${alignr}${font StyleBats:size=8.3}${fs_type}${font} ${voffset 2}${font StyleBats:size=8.3}${color2}${voffset -1}${font StyleBats:size=8.3}${color #828282}${offset 5}Actualizaciones del Sistema ${alignr}${execi 3600 aptitude search "~U" | wc -l | tail} Paquetes ################################## ## PROCESADOR ## ################################## ${font DroidSans:bold:size=8}${color #cb2033}PROCESADOR${offset 8}${color8}${voffset -2}${hr 2}${font} ${voffset 4}${font StyleBats:size=8.3}${color2}${voffset -2}${font StyleBats:size=8.3}${color #828282}${offset 2}CPU:${offset 5}${font StyleBats:size=8.3}${cpu cpu1}% ${color #1d89ca}$cpubar ################################## ## MEMORIA ## ################################## ${font DroidSans:bold:size=8}${color #cb2033}MEMORIA${offset 8}${color8}${voffset -2}${hr 2}${font} ${voffset 4}${font StyleBats:size=8.3}${color2}${voffset -2}${font StyleBats:size=8.3}${color #828282}${offset 1}RAM${goto 97}${font StyleBats:size=8.3}${mem}${goto 133}/${offset 1}${memmax}${alignr}${memperc}%${font} ${color #1d89ca}${membar 6} ################################## ## HDD ## ################################## ${font DroidSans:bold:size=8}${color #5abb47}HDD${offset 8}${color8}${voffset -2}${hr 2}${font} ${voffset 5}${font StyleBats:size=9.9}${color #1d89ca}${voffset -2}${font StyleBats:size=8.3}${color #828282}${offset 4}ROOT${goto 95}${font StyleBats:size=8.3}${fs_used /}${goto 133}/${offset 5}${fs_size /}${alignr}${fs_free_perc /}%${font} ${color #1d89ca}${fs_bar 8 /} ${voffset 5}${font StyleBats:size=9.9}${color #1d89ca}${voffset -2}${font StyleBats:size=8.3}${color #828282}${offset 4}HOME${goto 95}${font StyleBats:size=8.3}${fs_used /home}${goto 133}/${offset 5}${fs_size /home}${alignr}${fs_free_perc /home}%${font} ${color #1d89ca}${fs_bar 8 /home} ${voffset 5}${font StyleBats:size=9.9}${color #1d89ca}${voffset -2}${font StyleBats:size=8.3}${color #828282}${offset 4}SWAP${goto 95}${font StyleBats:size=8.3}${swap}${goto 133}/${offset 5}${swapmax}${alignr}${swapperc}%${font} ${color #1d89ca}${swapbar 8}

Page 145: Virtualizacion de Servidores de Clientes Ligeros

##################### # PROCESOS PESADOS ## ##################### ${font DroidSans:bold:size=8}${color #5abb47}PROCESOS PESADOS${offset 8}${color8}${voffset -2}${hr 2}${font} ${voffset 4}${font StyleBats:size=8.3}${color1}${voffset -3}${font StyleBats:size=8.3}${color #828282}${offset 5}${top_mem name 1}${goto 120}${font StyleBats:size=8.3}${top_mem mem_res 1}${alignr}${top_mem mem 1}%${font} ${voffset 2}${font StyleBats:size=8.3}${color1}${voffset -3}${font StyleBats:size=8.3}${color #828282}${offset 5}${top_mem name 2}${goto 120}${font StyleBats:size=8.3}${top_mem mem_res 2}${alignr}${top_mem mem 2}%${font} ${voffset 2}${font StyleBats:size=8.3}${color1}${voffset -3}${font StyleBats:size=8.3}${color #828282}${offset 5}${top_mem name 3}${goto 120}${font StyleBats:size=8.3}${top_mem mem_res 3}${alignr}${top_mem mem 3}%${font} ${voffset 2}${if_running rhythmbox}${voffset -16}${else}${font StyleBats:size=8.3}${color1}${voffset -3}${font StyleBats:size=8.3}${color #828282}${offset 5}${top_mem name 4}${goto 120}${font StyleBats:size=8.3}${top_mem mem_res 4}${alignr}${top_mem mem 4}%${font} ${voffset 2}${font StyleBats:size=8.3}${color1}${voffset -3}${font StyleBats:size=8.3}${color #828282}${offset 5}${top_mem name 5}${goto 120}${font StyleBats:size=8.3}${top_mem mem_res 5}${alignr}${top_mem mem 5}%${font} ${voffset 2}${font StyleBats:size=8.3}${color1}${voffset -3}${font StyleBats:size=8.3}${color #828282}${offset 5}${top_mem name 6}${goto 120}${font StyleBats:size=8.3}${top_mem mem_res 6}${alignr}${top_mem mem 6}%${font}${endif} ################## ## RED ## ################## ${font DroidSans:bold:size=8}${color #5abb47}RED${offset 8}${color8}${voffset -2}${hr 2}${font} ${font StyleBats:size=8.3}${color6}${font StyleBats:size=8.3}${color #828282}${offset 5}eth0${offset 5}IP${alignr}${font StyleBats:size=8.3}${addr eth0}${font} ${font StyleBats:size=8.3}${color6}${font StyleBats:size=8.3}${color #828282}${offset 5}eth1${offset 5}IP${alignr}${font StyleBats:size=8.3}${addr eth1}${font} ${font StyleBats:size=8.3}${color6}${font StyleBats:size=8.3}${color #828282}${offset 5}IP${offset 7}Pública${alignr}${font StyleBats:size=8.3}${texeci 1800 wget -q -O - checkip.dyndns.org | sed -e s/[^[:digit:]\|.]//g}${font} ${font StyleBats:size=8.3}${color6}${font StyleBats:size=8.3}${color #828282}${offset 5}Velocidad de Descarga${alignr}${font StyleBats:size=8.3}${downspeed eth0}${font} ${font StyleBats:size=8.3}${color6}${font StyleBats:size=8.3}${color #828282}${offset 5}Velocidad de Subida${alignr}${font StyleBats:size=8.3}${upspeed eth0}${font} ${font StyleBats:size=8.3}${color6}${font StyleBats:size=8.3}${color #828282}${offset 5}Descarga${alignr}${font StyleBats:size=8.3}${totaldown eth0}${font} ${font StyleBats:size=8.3}${color6}${font StyleBats:size=8.3}${color #828282}${offset 5}Subida${alignr}${font StyleBats:size=8.3}${totalup eth1]0}${font}

Page 146: Virtualizacion de Servidores de Clientes Ligeros

Al final de este Anexo se muestra el resultado del código para este Conky

Después crear un script para evitar conflictos entre Nautilus y Conky en el arranque del sistema

y de esta forma solucionar la superposición de Conky en las ventanas, se puede demorar la

carga de Conky con un script:

Teclear lo siguiente:

Dar permisos para que todos puedan ejecutar el archivo:

Ahora Conky se ejecuta desde que inicia la computadora, esto se puede realizar de 2 maneras, de

forma gráfica y desde terminal creando un archivo, se explicarán las 2 y usar la manera que más se

facilite.

De manera gráfica

Ir al menú en Sistema>Preferencias>Aplicaciones al Inicio

Figura 59: Ubicación de las aplicaciones al inicio

#!/bin/bash

sleep 30 && conky;

gksudo gedit /usr/bin/inicio-conky.sh

sudo chmod a+x /usr/bin/inicio-conky.sh

Page 147: Virtualizacion de Servidores de Clientes Ligeros

Ahora dar clic en el botón de Añadir y configurar de la siguiente manera:

Figura 60: Ejemplo de cómo agregar Conky a las aplicaciones de inicio

Nombre: como se llama la aplicación que queremos iniciar.

Comando: /usr/bin/inicio-conky.sh, es el archivo que se creó.

Comentario: Es posible escribir cualquier descripción.

Dar clic en Guardar y verificar que se registre en los programas de inicio:

Figura 61: Termino de adición de Conky a programas de inicio

Por terminal

Page 148: Virtualizacion de Servidores de Clientes Ligeros

Agregar un archivo oculto en “~/.config/autostart/.conkystart.desktop”

Y agregar el siguiente contenido, basado en los archivos que se crearon anteriormente.

NOTA: Si alguna de las carpetas como “~/.config” ó “~/.config/autostart” no existen, crearlas con el

siguiente comando:

Ahora cuando se reinicie la computadora cargará Conky automáticamente.

mkdir ~/.config

mkdir ~/.config/autostart

gksudo gedit ~/.config/autostart/.conkystart.desktop

[Desktop Entry]

Type=Application

Exec=/usr/bin/inicio-conky.sh

Hidden=false

NoDisplay=false

X-GNOME-Autostart-enabled=true

Name[es_ES]=conky

Name=conky

Comment[es_ES]=inicioconky

Comment=inicioconky

Page 149: Virtualizacion de Servidores de Clientes Ligeros

Figura 62: Conky en escritorio

Page 150: Virtualizacion de Servidores de Clientes Ligeros

ANEXO K: Ejemplo de una bomba fork

Código fuente de una bomba fork programada en Batch funcional (escribir dentro de la terminal de

Windows) [32]:

Código fuente de una bomba fork programada en UNIX C o C++ (creando un archivo en C o C++):

Bomba Fork para Bash de Linux (escribiéndolo en consola Bash):

Se explica para que se usa cada uno de los símbolos de esta Bomba Fork en la siguiente Tabla

Símbolo Significado

: Es el nombre de la función

() Contienen los parámetros. Como están vacían carece de ellos.

{ Abre el cuerpo de la función

Separador de comandos

%0|%0

#include <unistd.h>

void main()

{

while(1)

fork();

}

:(){ :|:& };:

Page 151: Virtualizacion de Servidores de Clientes Ligeros

:|: Estas llaman una y otra vez la función gracias a la tubería.

& Hace que la función se ejecute en el background

Separador de comandos

} Cierra el cuerpo de la función

; Fin de la instrucción

: Una vez finalizada la instrucción, volvemos a llamar a la función

Tabla 13: Significado de los comandos de una Bomba Fork

O también en un archivo bash o sh (crear un archivo con extensión sh):

En Perl (crear un archivo en Perl):

En Phyton (crear un archivo en Phyton):

En Ruby (Crear un archivo en Ruby):

fork while fork

import os

while True:

os.fork()

fork while fork

#!/bin/bash

$0 &

$0 &

Page 152: Virtualizacion de Servidores de Clientes Ligeros

ANEXO L: How to: Instalar Fail2Ban

Fail2Ban se instala de la siguiente manera desde consola [11]:

Parar el servicio que se inicia de forma automática después de la instalación:

Hacemos una copia del archivo de configuración, este archivo tiene la configuración de Fail2Ban:

Descripción de los comandos del archivo de configuración

ignoreip: IPs del área local que no queremos que sean baneadas.

bantime: Tiempo que el usuario que falló el login se quedara sin poder acceder al servicio

especificado en segundos.

maxretry: Número de intentos de login.

backend: Permite de un modo u otro la escritura de los archivos log.

destemail: Dirección de correo donde enviará las alertas.

action: Forma en que Iptables aplica sus reglas.

mail-whois-lines: Se especifica que queremos que se envié al correo en caso de intrusión.

[ssh]: Tomare ssh como ejemplo pero esta es una línea que da igual lo que se ponga, ya que no

afecta a la configuración.

enable: Se puede introducir true para activarlo y false para desactivarlo.

port: Nombre del servicio relacionado con el puerto.

sudo apt-get install fail2ban

fail2ban-client stop

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.confOLD

Page 153: Virtualizacion de Servidores de Clientes Ligeros

filter: Nombre del archivo .conf ubicado en el subdirectorio /etc/fail2ban/filter.d, este va

relacionado con algún filtro ya creado.

logpath: Ruta donde se ubica el archivo log donde se almacena toda la información del servicio en

cuestión.

maxretry: Número de intentos fallidos, aquí hay que especificar un carácter diferente para cada

celda que creemos.

findtime: Si alguien prueba x intentos en este periodo de tiempo especificado en segundos se le

considera ataque.

Se da un ejemplo de una configuración de baneo de Fail2Ban que se uso para el proyecto, este código

va en el archivo /etc/fail2ban/jail.conf:

[DEFAULT] ignoreip = 127.0.0.1 bantime = 40 maxretry = 3 backend = polling destemail = $mail action = iptables[name=%(__name__)s, port=%(port)s] mail-whois-lines[name=%(__name__)s, dest=%(destemail)s, logpath=%(logpath)s] [SSH] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 4 findtime = 600 [APACHE] enabled = true port = http filter = apache-auth logpath = /var/log/apache/access.log maxretry = 4 findtime = 600 [APACHE-NOSCRIPT]

Page 154: Virtualizacion de Servidores de Clientes Ligeros

enabled = true port = http filter = apache-noscript logpath = /var/log/apache/error.log maxretry = 4 findtime = 600 [POSTFIX] enabled = true port = smtp filter = postfix logpath = /var/log/mail.log maxretry = 5 findtime = 600 [COURIERPOP3] enabled = true port = pop3 filter = courierlogin failregex = courierpop3login: LOGIN FAILED.*ip=\[.*:<HOST>\] logpath = /var/log/mail.log maxretry = 5 findtime = 600 [COURIERIMAP] enabled = true port = imap2 filter = courierlogin failregex = imapd: LOGIN FAILED.*ip=\[.*:<HOST>\] logpath = /var/log/mail.log maxretry = 5 findtime = 600 [VSFTPD] enabled = false port = ftp filter = vsftpd logpath = /var/log/auth.log maxretry = 5 findtime = 600 [PROFTPD] enabled = true port = ftp filter = proftpd logpath = /var/log/proftpd/proftpd.log maxretry = 4 findtime = 600 [WUFTPD] enabled = false

Page 155: Virtualizacion de Servidores de Clientes Ligeros

port = ftp filter = wuftpd logpath = /var/log/auth.log maxretry = 5 findtime = 600 [SASL] enabled = true port = smtp filter = sasl failregex = warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed logpath = /var/log/mail.log maxretry = 5 findtime = 600

Este archivo baneará por 300 segundos la IP que haga 3 intentos fallidos de login, y se guardará el

registro en el /var/log/apache*/*error.log

Activar el servicio con la nueva configuración de la siguiente manera:

También está la posibilidad de checar los logs de Fail2Ban en general de la siguiente manera:

La consola puede regresar un mensaje parecido a este:

IP 88.9.95.68 bloqueada.

fail2ban-client start

2011-08-08 22:05:20,246 fail2ban.server : INFO Starting Fail2ban v0.X.X-SVN

2011-08-08 22:05:20,247 fail2ban.server : INFO Starting in daemon mode

tail -f /var/log/fail2ban.log

2011-08-08 21:26:52,734 fail2ban.actions: WARNING [apache] Ban 88.9.95.68

2011-08-08 21:31:53,129 fail2ban.actions: WARNING [apache] Unban 88.9.95.68

Page 156: Virtualizacion de Servidores de Clientes Ligeros

NOTA: Al arrancar puede dar unos avisos “WARNING” si es así es porque tenemos algún filtro sin

definir el “findtime” hay que definirlo, aquí un ejemplo de aviso:

Ahora solo queda que el servidor haga el resto y verificar el correo de forma periódica.

WARNING 'findtime' not defined in 'ssh'. Using default value

Page 157: Virtualizacion de Servidores de Clientes Ligeros

Glosario de términos técnicos

Aplicación: Es un tipo de programa informático diseñado como herramienta para permitir a un

usuario realizar uno o diversos tipos de trabajo.

Appliance: Es una máquina virtual pre configurada la cual puede ser importada dentro del gestor de

máquinas virtuales

Argumento: Es una variable que puede ser recibida por un programa.

Background: Todos aquellos procesos o rutinas de ejecución que se realizan en segundo plano.

Boot: Arranque, iniciar el funcionamiento de la pc. Hacer que la computadora inicie la ejecución de

instrucciones.

CLI: Interfaz/Intérprete de Línea de Comandos.

Cliente o terminal: Es una aplicación informática o una PC que accede a un servicio remoto en otra

PC, conocido como servidor, normalmente a través de una red de telecomunicaciones.

Cliente: Computadora o programa que accede a un servicio dado por el Servidor.

Cloud Computing: Tendencia de basar las aplicaciones en servicios alojados de forma externa, en la

propia web.

Consola: Interfaz de línea de texto

Core utils: paquete de software con herramientas básicas para la administración de sistemas UNIX.

Page 158: Virtualizacion de Servidores de Clientes Ligeros

Cracker ó cracking: Es la ciencia que estudia la seguridad de sistemas de protección tanto de software

como de hardware con el objetivo de violarlos para aprender de ellos y obtener un beneficio personal

sin fines de lucro.

Daemon: Proceso que se ejecuta en segundo plano sin la intervención ni control por parte del

usuario.

DHCP: Es un protocolo de red que permite a los clientes de una red IP obtener sus parámetros de

configuración automáticamente.

Dirección IP: Es una etiqueta numérica que identifica, de manera lógica y jerárquica, a un interfaz

(elemento de comunicación/conexión) de un dispositivo (habitualmente una computadora) dentro de

una red que utilice el protocolo IP (Internet Protocol), que corresponde al nivel de red del protocolo

TCP/IP.

Disponibilidad Informática: La información debe estar en el momento que el usuario requiera de ella.

Distribución: Es el núcleo de Linux más software destinado a satisfacer las necesidades de un grupo

de usuarios.

DNS: Es un sistema de nomenclatura jerárquica para computadoras, servicios o cualquier recurso

conectado a Internet o a una red privada.

Entorno de escritorio: Conjunto de programas para ofrecer al usuario una interacción agradable con

el sistema.

Gateway: Es un dispositivo, con frecuencia una computadora, que permite interconectar redes con

protocolos y arquitecturas diferentes a todos los niveles de comunicación por medio de una IP.

Page 159: Virtualizacion de Servidores de Clientes Ligeros

Gnome: Entorno de escritorio para sistemas operativos UNIX.

GPL: General Public License, licencia que protege la libre distribución, modificación y uso del software

libre.

GUI: Interfaz de usuario representada con imágenes y objetos gráficos para presentar información al

usuario.

Hacker ó Hacking: Es una persona que sólo desea conocer el funcionamiento interno de los sistemas

informáticos, ayudando a mejorarlos en el caso de que detecte fallos en su seguridad.

Hardware: Son las partes tangibles de una computadora.

Hypervisor: También conocido como Virtual Machine Monitor, permite que distintos sistemas

operativos, tareas y configuraciones de software coexistan en una misma máquina física. Abstrae y

aisla los recursos físicos de la computadora para asignarle recursos a las máquinas virtuales.

Integridad Informática: La información debe ser consistente, fiable y no propensa a alteraciones no

deseadas.

Interfaz: Medio por el cual una persona puede interactuar con una computadora.

IPTables: Herramienta de cortafuegos que permite no solamente filtrar paquetes, sino también

realizar traducción de direcciones de red (NAT) para IPv4 o mantener registros de log, también puede

ser usada para realizar funciones de un Router.

Page 160: Virtualizacion de Servidores de Clientes Ligeros

NAT (Network Address Translation - Traducción de Dirección de Red): Es un mecanismo utilizado por

enrutadores IP para intercambiar paquetes entre dos redes que se asignan mutuamente direcciones

incompatibles, también es conocido como traducción de dirección de Red.

KDE: Entorno de escritorio para sistemas operativos UNIX.

Kernel/núcleo: Software responsable de proporcionar acceso al hardware administrando sus

recursos.

Librería/Biblioteca: Es un conjunto de subprogramas utilizados para desarrollar software.

Llamada al sistema: Es el mecanismo usado por una aplicación para solicitar un servicio al sistema

operativo.

LDAP: Son las siglas de Lightweight Directory Access Protocol (en español Protocolo Ligero de Acceso

a Directorios) que hacen referencia a un protocolo a nivel de aplicación el cual permite el acceso a un

servicio de directorio ordenado y distribuido para buscar diversa información en un entorno de red.

LDAP también es considerado una base de datos (aunque su sistema de almacenamiento puede ser

diferente) a la que pueden realizarse consultas.

Módulo: Parte de un programa que resuelve un problema específico.

Páginas man: Es la documentación que acompaña a las herramientas de un sistema UNIX.

Ping: Es una utilidad diagnóstica en redes de computadoras que comprueba el estado de la conexión

del host local con uno o varios equipos remotos por medio del envío de paquetes ICMP de solicitud y

de respuesta.

Page 161: Virtualizacion de Servidores de Clientes Ligeros

Pool DHCP: Rango de IP que el DHCP puede asignar a los clientes o terminales.

Privacidad Informática: La información debe ser vista y manipulada principalmente por quienes

tienen el derecho o la autoridad de hacerlo.

Prototipo: Es el diseño no funcional de un programa.

Repositorio: Servidor web que sirve de depósito para el software que se puede instalar en Linux.

Router: Es un dispositivo de hardware para interconexión de red de computadoras que opera en la

capa tres (nivel de red) del modelo OSI.

SaaS: Software as a Service, es un modelo de negocio en el cual la compañía que provee el software

también se encarga de operarlo y darle mantenimiento.

Script: Archivo de órdenes interpretados por la computadora.

Servidor: Es una computadora que provee servicios a otras computadoras.

Sistema Operativo: Es el programa o conjunto de programas que efectúan la gestión de los procesos

básicos de un sistema informático, y permite la normal ejecución del resto de las operaciones.

Software Libre: Software que respeta y garantiza la libertad que tiene una persona de usar, copiar,

estudiar, modificar y distribuir libremente el software.

Software: Componente lógico que posibilita la realización de tareas de una computadora. Sinónimo

de Aplicación, Programa, Herramienta.

SWAP ó espacio de intercambio: Es una zona del disco (partición) que se usa para guardar las

imágenes de los procesos que no han de mantenerse en memoria física.

Page 162: Virtualizacion de Servidores de Clientes Ligeros

Transparencia: Ocultar información al usuario para que el sistema sea percibido como un todo en

lugar de una colección de componentes.

Ubuntu: Es una distribución Linux basada en Debian que proporciona un sistema operativo para el

usuario medio, con un fuerte enfoque en la facilidad de uso e instalación del sistema.