Universidad Nacional del Nordeste Facultad de Ciencias Exactas, Naturales y Agrimensura Trabajo Final de Aplicación “Aplicación e-Learning para el Aprendizaje de Redes Virtuales Privadas” Alumno: Gerardo G. Brollo - L.U.: 34.610 Profesor Coordinador: Agr. Herrmann, Castor F. Profesor Orientador: Mgter. David L. la Red Martínez Licenciatura en Sistemas de Información Corrientes - Argentina 2010 Un agradecimiento especial para la Lic. Valeria E. Uribe Índice general 1. Redes Virtuales Privadas 1.1. Introducción . . . . . . . . . . . . . . . . 1.2. Tecnologías Anteriores a las VPNs . . . 1.2.1. Enlaces Dedicados . . . . . . . . 1.2.2. Enlaces Conmutados . . . . . . . 1.2.3. PPP - Protocolo Punto a Punto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 3 3 10 13 2. Tunelamiento VPN 2.1. Etapas Necesarias para una Conexión VPN 2.1.1. Conexión . . . . . . . . . . . . . . . 2.1.2. Control de Conexión . . . . . . . . . 2.1.3. Autenticación . . . . . . . . . . . . . 2.1.4. Cifrado . . . . . . . . . . . . . . . . 2.1.5. Control de Acceso . . . . . . . . . . 2.2. Tunelamiento . . . . . . . . . . . . . . . . . 2.2.1. Funcionamiento del Túnel . . . . . . 2.2.2. Tipos de Túneles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 19 19 20 21 22 28 32 33 34 . . . . . . . . . . 39 39 40 41 43 43 43 44 44 45 45 . . . . . 3. Protocolos VPN 3.1. PPTP - Protocolo de Túnel Punto a Punto . 3.1.1. Relación Entre PPP Y PPTP . . . . . 3.1.2. Componentes de una VPN PPTP . . 3.1.3. Estructura del Protocolo . . . . . . . . 3.1.4. Conexión de Control . . . . . . . . . . 3.1.5. Operación del Túnel . . . . . . . . . . 3.1.6. Cabecera Mejorada GRE . . . . . . . 3.1.7. Cifrado en PPTP . . . . . . . . . . . . 3.1.8. Filtrado de Paquetes PPTP . . . . . . 3.1.9. Control de Acceso a los Recursos de la . . . . . . . . . . . . . . . . . . . . . . . . . . . Red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ÍNDICE GENERAL 3.2. L2TP - Protocolo de Túnel de Capa 2 . . . . . . 3.2.1. Componenetes Básicos de un Túnel L2TP 3.2.2. Topología de L2TP . . . . . . . . . . . . . 3.2.3. Estructura del Protocolo L2TP . . . . . . 3.2.4. Formato de una Cabecera L2TP . . . . . 3.2.5. Autenticación en L2TP . . . . . . . . . . 3.2.6. Procesos de una Comunicación L2TP . . 3.2.7. Comparativa Entre PPTP y L2TP . . . . 3.2.8. Problemas de L2TP . . . . . . . . . . . . 3.3. IPSec (Internet Protocol Security ) . . . . . . . . 3.3.1. Componentes de IPSec . . . . . . . . . . . 3.3.2. Bases de Datos de Seguridad . . . . . . . 3.3.3. Authentication Header (AH) . . . . . . . 3.3.4. Encapsulating Security Payload - ESP . . 3.3.5. Internet Key Exchange - IKE . . . . . . . 3.3.6. Arquitecuras VPN con IPsec . . . . . . . 3.3.7. Limitaciones de IPSec . . . . . . . . . . . 3.4. VPN-SSL . . . . . . . . . . . . . . . . . . . . . . 3.4.1. SSL/TLS Secure Sockets Layer/Transport 3.4.2. Arquitectura de SSL . . . . . . . . . . . . 3.4.3. Funcionamiento Básico de SSL . . . . . . 3.4.4. Aplicaciones e Implementaciones de SSL . 3.4.5. Conceptos y Técnicas de VPN-SSL . . . . 3.4.6. Inconvenientes de las VPN-SSL . . . . . . 3.4.7. Ventajas de SSL-VPN sobre IPSec . . . . 3.4.8. Software VPN-SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Layer Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. Implementaciones VPN’s 4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Escenario Previo del I.O.S.COR. . . . . . . . . . . . . . . . . . 4.2.1. Red LAN Institucional . . . . . . . . . . . . . . . . . . . 4.2.2. Red Virtual Privada (VPN) Institucional . . . . . . . . 4.2.3. Modificaciones a Realizar . . . . . . . . . . . . . . . . . 4.3. Solución Provisoria . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1. Segmentación de la Red LAN . . . . . . . . . . . . . . . 4.3.2. Redistribución de Carga de Trabajo Entre los Routers VPN’s . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.3. Implementación de una VPN-Backup por Software . . . 4.4. Solución Definitiva . . . . . . . . . . . . . . . . . . . . . . . . . 45 46 46 47 48 50 50 51 52 52 53 55 58 60 63 65 68 68 69 70 72 74 74 76 76 77 83 83 84 84 88 96 96 98 100 114 121 ÍNDICE GENERAL 5. E-Learning 5.1. Introducción al e-learning . . . . . . . . . . . . . . . . . . 5.1.1. El Concepto de Aprendizaje Electrónico . . . . . . 5.1.2. ¿Por qué el E-Learning? . . . . . . . . . . . . . . . 5.1.3. La Tecnología y el Acceso . . . . . . . . . . . . . . 5.1.4. La Globalización de Mercados . . . . . . . . . . . 5.2. Qué es el e- Learning . . . . . . . . . . . . . . . . . . . . . 5.2.1. E-Learning vs. Online Learning . . . . . . . . . . . 5.2.2. Reducción de Costes . . . . . . . . . . . . . . . . . 5.2.3. Incremento de la Retención de los Contenidos . . . 5.2.4. Las Mejoras de la Interactividad en el E-Learning 5.3. Ventajas del e-learning . . . . . . . . . . . . . . . . . . . . 5.3.1. Qué Nos ha Llevado a Elegir E-learning . . . . . . 5.4. Qué frena al e-Learning . . . . . . . . . . . . . . . . . . . 5.4.1. Mediadores e Interoperabilidad en E-Learning . . . 5.5. Tendencias Futuras del e-learning . . . . . . . . . . . . . . 6. Aplicación e-Learning Para VPN 6.1. Introducción . . . . . . . . . . . . . 6.2. Escenario de la Aplicación . . . . . 6.2.1. Usuario del Sistema - (a) . 6.2.2. Router Huawei MT882 - (b) 6.2.3. Servidor E-Learning - (c) . 6.2.4. Servidores Virtuales . . . . 6.3. Descripción de la Aplicación Web . 6.3.1. Pantalla de Inicio . . . . . . 6.3.2. Menú de Usuarios . . . . . 6.3.3. Menú Profesor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 125 125 126 127 128 128 128 129 130 130 131 132 136 137 139 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 141 141 142 143 143 145 148 148 148 162 7. Herramientas 7.1. Introducción al Lenguaje Java . . . . . . . . . . . 7.1.1. Estructura General de un Programa Java 7.1.2. Conceptos Básicos . . . . . . . . . . . . . 7.1.3. Variables Dentro del Lenguaje Java . . . 7.1.4. Operadores en Java . . . . . . . . . . . . 7.2. WebSphere . . . . . . . . . . . . . . . . . . . . . 7.2.1. ¿Que es WebSphere? . . . . . . . . . . . . 7.2.2. Plataforma de Software . . . . . . . . . . 7.2.3. Application Server . . . . . . . . . . . . . 7.2.4. Arquitecturas de Tres Niveles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 169 174 175 177 180 184 184 184 187 191 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ÍNDICE GENERAL 7.3. Introducción a DB2 . . . . . . . . . . . . . . . 7.3.1. DB2 Universal Database (DB2 UDB) . 7.3.2. Funciones Complementarias . . . . . . . 7.3.3. Configuraciones de Particiones Múltiples 7.3.4. Paralelismo Mejor Adaptable a cada EH 7.3.5. DB2 UDB Versión 8.1 . . . . . . . . . . 7.4. Sun VirtualBox . . . . . . . . . . . . . . . . . . 7.5. Microsoft Visio . . . . . . . . . . . . . . . . . . 7.6. OpenVPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 194 196 198 199 202 208 209 210 8. Conclusiones 213 8.1. Líneas Futuras . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Bibliografía 217 Índice alfabético 221 Índice de figuras 1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 1.7. 1.8. 1.9. Tecnologías Anteriores a las VPNs. . . . . . . . . . . . . . . . . Esquema Básico de una Red Frame Relay. . . . . . . . . . . . . Escenario Frame Relay. . . . . . . . . . . . . . . . . . . . . . . Interfaz Frame Relay. . . . . . . . . . . . . . . . . . . . . . . . . Escenario Típico de una Red Frame Relay. . . . . . . . . . . . . Dispositivos que Intervienen en una Red ATM. . . . . . . . . . Caminos Virtuales. . . . . . . . . . . . . . . . . . . . . . . . . . Enaces Conmutados. . . . . . . . . . . . . . . . . . . . . . . . . Escenario Típico de una Conexión Analógica de Datos Sobre la RTPC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.10. Enlaces Analógicos de Último Kilómetro de Ambos Lados. . . . 1.11. Adaptador de Terminal RDSI. . . . . . . . . . . . . . . . . . . . 1.12. Acceso Remoto a Redes. . . . . . . . . . . . . . . . . . . . . . . 1.13. Red Virtual Privada sobre RAS. . . . . . . . . . . . . . . . . . 1.14. Formato de Trama PPP. . . . . . . . . . . . . . . . . . . . . . . 11 11 12 14 14 18 2.1. Etapas Necesarias Para Establecer un Túnel VPN. . 2.2. Esquema Criptográfico. . . . . . . . . . . . . . . . . 2.3. Servidores Radius de Autenticación. . . . . . . . . . 2.4. Esquema de Cifrado con LLave Pública. . . . . . . . 2.5. Control de Acceso Cliente-Servidor. . . . . . . . . . . 2.6. Objetos en Active Directory. . . . . . . . . . . . . . 2.7. Esquema General de Active Directory de Microsoft. 2.8. Túneles Voluntarios. . . . . . . . . . . . . . . . . . . 2.9. Túneles Obligatorios. . . . . . . . . . . . . . . . . . . 2.10. Modelos de Entunelamiento. . . . . . . . . . . . . . . . . . . . . . . . . 20 23 26 27 28 31 32 35 36 37 3.1. Estructura de un Túnel PPTP. . . . . . . . . . . . . . . . . . . 3.2. Formato del Paquete IP. . . . . . . . . . . . . . . . . . . . . . . 41 44 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 6 6 8 9 9 10 ÍNDICE DE FIGURAS 3.3. 3.4. 3.5. 3.6. 3.7. Escenario Típico L2TP. . . . . . . . . . . . . . . . . . . . . . . Relación Entre Tramas PPP y Mensajes L2TP. . . . . . . . . . Formato de Cabecera L2TP. . . . . . . . . . . . . . . . . . . . . Formato de Trama IPSec en Modo Transporte y Túnel. . . . . Ejemplo de una Entrada de Base de Datos de Políticas de Seguridad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8. Cabecera de Autenticación AH. . . . . . . . . . . . . . . . . . . 3.9. Nuevo Paquete IP Procesado con ESP. . . . . . . . . . . . . . . 3.10. Funcionamiento del Protocolo IPSec. . . . . . . . . . . . . . . . 3.11. Protocolo IPSec en Modo Transporte. . . . . . . . . . . . . . . 3.12. Protocolo IPSec en Modo Túnel. . . . . . . . . . . . . . . . . . 3.13. Negociación de Llaves en IKE. . . . . . . . . . . . . . . . . . . 3.14. IPsec Sobre Distintas Redes. . . . . . . . . . . . . . . . . . . . 3.15. Estructura de Protocolos del Protocolo SSL. . . . . . . . . . . . 3.16. Intercambio de Mensajes en SSL. . . . . . . . . . . . . . . . . . 3.17. Advertencia de Instalación de Plugins en Internet Explorer. . . 3.18. Interfaz GUI de OpenVPN Para Sistemas Operativos Windows. 47 48 48 54 4.1. Escenacio Previo de la Red LAN Institucional. . . . . . . . . . 4.2. Router 3Com Office Connect. . . . . . . . . . . . . . . . . . . . 4.3. Rack Mural en uno de los Pisos del Edificio. . . . . . . . . . . . 4.4. Túneles PPTP formados con las Delegaciones del Interior. . . . 4.5. Túneles PPTP en la Ciudad de Corrientes Capital. . . . . . . . 4.6. Panel de Configuración del Server PPTP. . . . . . . . . . . . . 4.7. Panel de Estado de los Túneles en Server PPTP. . . . . . . . . 4.8. Cliente VPN Nativo del S.O. Windows XP. . . . . . . . . . . . 4.9. Dispositivo Linksys RVL200. . . . . . . . . . . . . . . . . . . . 4.10. Segmentación de la Red LAN. . . . . . . . . . . . . . . . . . . . 4.11. Nuevo Escenario VPN. . . . . . . . . . . . . . . . . . . . . . . . 4.12. Cliente DNS Dinámico en dispositivo 3Com. . . . . . . . . . . . 4.13. Pruebas de Conectividad con el Comando Ping. . . . . . . . . . 4.14. Resultados del Comando Nslookup. . . . . . . . . . . . . . . . . 4.15. Panel de Estado de Túneles SSL en Linksys RVL200. . . . . . . 4.16. Ejemplo de un Certificado X.509. . . . . . . . . . . . . . . . . . 4.17. Interfaz Web del Cliente SSL del Dispositvio Linksys RVL200. 4.18. Mensaje de Advertencia Ante la Instalación del Plugins en Internet Explorer 7.0. . . . . . . . . . . . . . . . . . . . . . . . . . 4.19. Interfaz de Configuración de Arquitectura Lan-to-Lan. . . . . . 4.20. Panel de Estado de Tuneles en Server PPTP. . . . . . . . . . . 4.21. Conexión Física del Puente de Capa 2. . . . . . . . . . . . . . . 85 86 87 89 90 93 94 95 97 99 101 102 103 103 104 105 106 57 59 61 62 63 63 66 67 71 73 75 79 107 107 109 109 ÍNDICE DE FIGURAS 4.22. Configuración del Modo Puente en Dispositivo Huawei MT882. 110 4.23. Panel de Estado de los Túneles en 3Com Officce Connect ADSL.111 4.24. Cliente PPPoE. . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 4.25. Configuración Lan-to-Lan en 3Com Office Connect. . . . . . . . 113 4.26. Certificado Emitido por la A.C. IOSCOR. . . . . . . . . . . . . 117 4.27. Interfaz Gráfica de OpenVPN para S.O. Windows. . . . . . . . 119 4.28. Redireccionamiento de Puertos (Port Forwarding). . . . . . . . 120 4.29. Configuración de Rutas Estáticas en Linksys RVL200. . . . . . 121 4.30. Servidores VPN-SSL de Distintos Fabricantes. . . . . . . . . . . 122 4.31. Router Cisco ASA 5510. . . . . . . . . . . . . . . . . . . . . . . 123 5.1. Arquitectura de Sistema Mediador. . . . . . . . . . . . . . . . . 139 5.2. El Mundo Conectado por un Solo Click. . . . . . . . . . . . . . 140 6.1. Escenario de la Aplicación. . . . . . . . . . . . . . . . . . . . . 6.2. Números de Puertos por cada Protocolo de Red. . . . . . . . . 6.3. Redireccionamiento de Puertos en el Router Huawei MT882. . 6.4. Pantalla de Inicio de la Aplicación. . . . . . . . . . . . . . . . . 6.5. Formulario de Alta de Usuario. . . . . . . . . . . . . . . . . . . 6.6. Menú de Usuario. . . . . . . . . . . . . . . . . . . . . . . . . . . 6.7. Menú de Descarga de Teoría. . . . . . . . . . . . . . . . . . . . 6.8. Cuestionario de Autoevaluación. . . . . . . . . . . . . . . . . . 6.9. Prácticas con Túneles Reales. . . . . . . . . . . . . . . . . . . . 6.10. Prácticas con Túneles Reales. . . . . . . . . . . . . . . . . . . . 6.11. Portal de Actualización de Túnel Establecido Correctamente. . 6.12. Conexión OBDC de un Portal Web con la Base de Datos de la Aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.13. Detalle de la Conexión VPN. . . . . . . . . . . . . . . . . . . . 6.14. Resultados de las Prácticas y Evaluaciones de los Usuarios. . . 6.15. Validación de Profesor. . . . . . . . . . . . . . . . . . . . . . . . 6.16. Menu de Administración. . . . . . . . . . . . . . . . . . . . . . 6.17. Alta de Pregunta de Autoevaluación. . . . . . . . . . . . . . . . 6.18. Actualización de Apuntes . . . . . . . . . . . . . . . . . . . . . 6.19. Actualización de Actividades de Túnles. . . . . . . . . . . . . . 142 144 144 149 150 152 153 154 156 157 158 7.1. 7.2. 7.3. 7.4. 185 195 207 209 Plataforma de WebSphere . . . . . . . . . . . . . . . Almacenamiento XML de DB2. . . . . . . . . . . . . Centro de Duplicación de DB2 versión 8.0. . . . . . . Captura de Pantalla de una Máquina Virtual. . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 160 161 162 163 165 166 167 Índice de cuadros 7.1. 7.2. 7.3. 7.4. 7.5. 7.6. 7.7. Tipos de Variables. . . . . . . . . . . . . . . . . . . . . . . Categorías de Variables. . . . . . . . . . . . . . . . . . . . Tipos Primitivos de Variables. . . . . . . . . . . . . . . . . Operadores de asignación. . . . . . . . . . . . . . . . . . . Operadores relacionales. . . . . . . . . . . . . . . . . . . . Precedencia de Operadores. . . . . . . . . . . . . . . . . . Paralelismo mejor Adaptable a cada Entorno de Hardware . . . . . . . . . . . . . . . . . . . . . 178 178 178 180 181 183 199 Prefacio En un pasado no muy lejano la prioridad era la necesidad de procesar y almacenar información, con lo que nacieron los equipos informáticos individuales entre otros, posteriormente surgió la necesidad no sólo de procesar y almacenar la información sino que además era preciso compartir la información en tiempo real entre distintos equipos informáticos, por ello surgieron las redes. A medida que las redes de las organizaciones fueron creciendo se extendieron en distintos edificios, localidades, regiones y países, nuevamente surgió la necesidad de compartir la información entre los distintos puntos que se encontraban mucho más espaciados. Para cubrir esta demanda aparecen las redes de área extensa (WAN) implementándose las interconexiones de formas muy distintas (Conexión punto a punto, X25, Frame Relay, etc.). Finalmente aparece la red de redes, Internet, y rápidamente surgen aplicaciones que la utilizan como soporte para transmitir información bajo una cobertura de alcance mundial. Las deficiencias en seguridad, falta de confidencialidad e integridad en las transmisiones sobre Internet, las costosas soluciones que implicaban los enlaces dedicados y nuevas necesidades como el Acceso Remoto a los recursos informáticos, provocaron el surgimiento de las Redes Privadas Virtuales (VPN - Virtual Private Network). Una VPN es una tecnología que permite extender una red LAN como así también conectar distintas redes LANs para la transmisión segura de la información a través de un túnel, utilizando otra red como medio que generalmente es Internet. Este Trabajo Final de Aplicación contempló el estudio de las tecnologías VPN, su aplicación a la solución de los principales problemas de conectividad remota segura en un caso concreto (la red provincial de datos del IOSCOR: Instituto de Obra Social de la Provincia de Corrientes), la implementación de las soluciones propuestas, y el desarrollo de una aplicación interactiva para la enseñanza - aprendizaje de los principales aspectos relacionados con las VPN. Objetivos Logrados Se han alcanzado plenamente la totalidad de los objetivos planteados para el presente trabajo: ÍNDICE DE CUADROS Comprender las principales tecnologías acerca de las VPN, aplicarlas a un caso concreto de magnitud (una red de datos de alcance provincial) y desarrollar un sistema multiplataforma, basado en web, que permita realizar al visitante un autoaprendizaje y una autoevaluación de sus conocimientos acerca de las VPN. Para el desarrollo se tuvo en cuenta los principales aspectos del aprendizaje electrónico (e-learning) como marco conceptual teórico del trabajo propuesto. Clasificación del Trabajo El trabajo se encuadra en el estudio de las tecnologías de las VPN y del software de base que permite el desarrollo de aplicaciones web multiplataforma con acceso a base de datos, que pueden estar distribuidas. Desarrollo de un sistema de autoaprendizaje y autoevaluación referido a las VPN, basado en web, utilizando tecnologías y software de base multiplataforma. Etapas de Desarrollo Se ha efectuado una amplia recopilación bibliográfica específica a los temas pertinentes a la tarea planificada y a los productos de software y de hardware que se emplearon para la concreción del trabajo final. Se ha estudiado un caso problemático concreto (la red provincial de datos del IOSCOR) y se han implementado las soluciones de seguridad de conexionado remoto en dicha red. Se ha desarrollado una aplicación educativa interactiva acerca de las VPN, con contenidos teóricos y prácticas, y la posibilidad de evaluación de los aprendizajes. Gracias a las gestiones realizadas por el Profesor Orientador Mgter. David Luis la Red Martinez ante IBM Argentina se han recibido materiales tanto en CD’s como en libros de dicha empresa, en el marco de Scholars Program de la misma, destinado a Universidades de todo el mundo. Se ha efectuado el estudio del software específico para gestión de las VPN. Se ha realizado el estudio del software de virtualización de equipos (VirtualBox de Oracle). Se ha realizado el análisis y diseño de la base de datos que utiliza la aplicación. ÍNDICE DE CUADROS Se ha realizado el estudio del manejador de bases de datos DB2 UDB 9.5. Se ha realizado un detallado estudio del entorno de trabajo Scientific WorkPlace 5.5.0 para la escritura del libro correspondiente al informe final. Finalizada la aplicación se realizó la grabación en DVD de todo el material correspondiente al trabajo final: una versión de la aplicación, otra referente al libro en formato LaTex y el PDF generado. También se incluyó los instaladores de los productos utilizados para el desarrollo, es decir DB2 UDB, Rational WebSphere Studio Application Developer, como así también las imágenes de exportación de servidores virtuales VPN. Organización del Informe Final El trabajo final de aplicación comprende un informe final impreso y un DVD además de un resumen y de un resumen extendido. El informe final está organizado en capítulos los que se indican a continuación: Redes Virtuales Privadas: Se presenta una visión global y las principales características de las Redes Virtuales Privadas, las Tecnolgías Anteriores a éstas y una descripción de los Accesos Remotos a Redes bajo el protocolo PPP. Tunelamiento: Se describe este concepto y el detalle de las estapas necesarias en una conexión VPN, organizada como Conexión, Control de Conexión, Autenticación, Cifrado y Control de Acceso. Protocolos VPN: Se describen los protocolos más importantes para implementar VPNs, entre ellos: PPTP, L2TP, IPSec y SSL. Implementación VPN: Se describe un caso concreto de implementación de una solución VPN llevado a cabo en el IOSCOR (Instituto de Obra Social de la Provincia de Corrientes) donde se detalla el escenario previo, la situación actual de la red y lo que se considera en este trabajo como el escenario óptimo. ÍNDICE DE CUADROS E-learning: Se indican las principales características socio / económicas, se describe acerca de qué es, qué aporta, qué frena y las ventajas del mismo. Herramientas: Se detallan los conceptos y principales características de las herramientas utilizadas. Descripción de la Aplicación: Se describe el escenario en el que funciona la aplicación desarrollada y los aspectos más importantes de ésta. Conclusiones: Se presentan las conclusiones a las que se ha llegado al finalizar el presente trabajo y las posibles líneas futuras de acción. El DVD adjunto al informe final impreso, contiene lo siguiente: Instaladores del software utilizado. Resúmenes del trabajo realizado. Informe final en formato digital. Presentación para la defensa final. Aplicación desarrollada. Gerardo Gabriel Brollo Licenciatura en Sistemas de Información Universidad Nacional del Nordeste L.U.: 34610 Prof. Orientador: Mgter. David Luis La Red Martínez Corrientes; 05 de Agosto de 2010 Capítulo 1 Redes Virtuales Privadas 1.1. Introducción La expresión Redes Virtuales Privadas se ha hecho muy popular en estos días, pero probablemente muchas personas tengan apenas una idea de su 1 2 CAPÍTULO 1. REDES VIRTUALES PRIVADAS significado. A menudo se la asocia con la conectividad de las empresas, cuando trabajadores remotos acceden a la red corporativa, pero actualmente el concepto está ganando popularidad entre los usuarios domiciliarios y las pequeñas organizaciones [1]. Con una red privada virtual, dos o más ordenadores o redes remotas pueden conectarse entre sí, de forma segura, para forma una red local virtual que utiliza una infraestructura pública como Internet, como medio para transmitir datos internos. Se denomina red privada virtual porque no se trata de una red física, pero tiene todas las características de una red de área local (LAN, Local Área Network). Estas clases de redes virtuales son construidas sobre la infraestructura de una red pública (recurso público, sin control sobre el acceso de los datos), normalmente Internet. Es decir, en vez de utilizarse enlaces dedicados para conectar redes remotas, se utiliza la infraestructura de Internet; una vez que las redes están conectadas es transparente para los usuarios. La principal motivación para la implantación de las VPNs es la financiera: los enlaces dedicados son demasiado caros, principalmente cuando las distancias son largas. Por otro lado existe Internet, que por ser una red de alcance mundial, tiene puntos de presencia diseminados por el mundo. Internet es una red pública, donde los datos en tránsito pueden ser leídos por cualquier equipo. La seguridad en la comunicación entre las redes privadas es imprescindible, se hace necesaria una forma de cambiar los datos codificados, de forma que si fuesen capturados durante la transmisión no puedan ser descifrados. Los datos se transiten codificados por Internet en túneles virtuales creados por dispositivos VPNs que utilizan criptografía; esos dispositivos que son capaces de entender los datos codificados forman una red virtual sobre la red pública. Es esa red virtual la que es conocida como VPN. Los dispositivos responsables para la formación y administración de la red virtual, para proporcionar una comunicación segura, deben ser capaces de garantizar la seguridad, integridad y autenticación de los datos que están siendo trasmitidos o recibidos. 1.2. TECNOLOGÍAS ANTERIORES A LAS VPNS 1.2. 3 Tecnologías Anteriores a las VPNs Desde el principio de los tiempos, la humanidad ha tenido la necesidad de comunicarse. Paralelamente también ha existido la necesidad de hacerlo de manera privada, es decir que el mensaje sólo le llegue a determinados receptores. En las redes de comunicaciones pasa exactamente lo mismo. En especial el sector corporativo siempre ha requerido la implementación de enlaces privados para transportar de forma segura toda su información confidencial. Este capítulo trata sobre la manera en que se realizan los enlaces privados, y las diferentes tecnologías que los soportan. En la figura 1.1 de la pág. 3 se presenta un esquema resumido de las tecnologías anteriores a las VPNs. Figura 1.1: Tecnologías Anteriores a las VPNs. 1.2.1. Enlaces Dedicados Los enlaces dedicados, como su nombre lo indica, son conexiones permanentes punto-punto, o punto-multipunto, que se valen de una infraestructura de transporte de Capa 1 o de conmutación (Capa 1 y 2). Los primeros son 4 CAPÍTULO 1. REDES VIRTUALES PRIVADAS comúnmente llamados enlaces Clear Channel y los segundos son enlaces Frame Relay o ATM. Clear Channel Son enlaces donde sólo interviene la red de transporte del proveedor de servicios. Para el mercado corporativo comúnmente van desde los 64 kbit/s hasta los 2048 kbit/s. Los enlaces Clear Channel ofrecen un rendimiento efectivo casi del 100 % ya que no usan ningún tipo de encapsulación de nivel 2, es decir, no hay presentes cabeceras de ningún tipo. Por lo general, la compañía (o cliente en general) debe tener un puerto disponible DTE que cumpla con las especificaciones técnicas del equipo de comunicaciones entregado por el proveedor. Típicamente la mayoría de los equipos que se usan para recibir los enlaces Clear Channel por parte del cliente son enrutadores o switches de nivel 3. Son éstos los que se encargan de manejar los niveles 2 y 3. En general, las topologías de los enlaces Clear Channel son robustas pero a su vez estáticas. Esto significa que para aumentar o disminuir la velocidad del enlace es necesario cambiar equipos o manipularlos localmente. Lo que se transfiere al cliente en indisponibilidades del servicio no deseadas. Vale la pena aclarar, que los enlaces Clear Channel fueron la primera tecnología WAN que se adoptó usando la infraestructura de voz de los distintos operadores de telefonía locales, nacionales e internacionales. Como era de esperarse, por provenir de una tecnología que no había sido pensada para transmitir datos fue superada rápidamente por otros tipos de tecnologías como Frame Relay y ATM, aunque aún muchas empresas siguen teniendo enlaces Clear Channel. La figura 1.2 de la pág. 5 muestra un esquema básico, donde se observa la transparencia para una organización del enlace Clear Channel contratado. Frame Relay Frame Relay es un protocolo WAN de alto rendimiento que trabaja en la capa física y de enlace de datos del modelo de referencia OSI. Frame Relay fue diseñado originalmente para trabajar con redes RDSI. Frame Relay es una tecnología de conmutación de paquetes, que permite compartir dinámicamente el medio y por ende el ancho de banda disponible. La longitud de los paquetes es variable para hacer más eficiente y flexible las transferencias de datos. Estos paquetes son conmutados por varios segmentos de la red hasta que llegan hasta 1.2. TECNOLOGÍAS ANTERIORES A LAS VPNS 5 Figura 1.2: Esquema Básico de una Red Frame Relay. el destino final. Todo el acceso al medio en una red de conmutación de paquetes es controlado usando técnicas de multiplexación estadística, por medio de las cuales se minimizan la cantidad de demoras y/o colisiones para acceder al medio. Ethernet y Token Ring, los protocolos de redes LAN más usados, también usan conmutación de paquetes y técnicas de difusión. Frame Relay es una evolución de las redes X.25, no hace retransmisión de paquetes perdidos ni windowing, características que si ofrecía su antecesor ya que en los años 70 (época en la que aparece X.25) los medios físicos no eran tan confiables como los de hoy día, y por tanto se necesitaba mayor robustez. Todas las ventajas que ofrecen los medios de hoy día, han posibilitado a Frame Relay ofrecer un alto desempeño y una gran eficiencia de transmisión [2]. Una conexión Frame Relay usa dispositivos que pueden dividirse en dos categorías: Equipos Terminales de Datos (DTEs) y Equipos Terminales de Circuitos de Datos (DCEs). La figura 1.5 de la pág. 8 ilustra la ubicación de los DTEs y los DCEs en un red Frame Relay. Los DTEs son generalmente considerados equipos terminales de una red específica y típicamente son enrutadores, computadores personales, terminales o bridges. Estos equipos se localizan en las premisas del cliente y en la mayoría de los casos son propiedad de los mismos. Los DCEs son dispositivos normalmente propiedad del carrier. El propósito de los equipos DCEs es proveer o generar señales de reloj y conmutar los paquetes de la red. Por lo general, son llamados packet switchs o conmutadores de paquetes. 6 CAPÍTULO 1. REDES VIRTUALES PRIVADAS Figura 1.3: Escenario Frame Relay. Figura 1.4: Interfaz Frame Relay. 1.2. TECNOLOGÍAS ANTERIORES A LAS VPNS 7 En la conexión entre los dispositivos DCE y DTE intervienen dos componentes, uno de nivel físico y otro de nivel de enlace de datos. En el nivel físico se definen todas las características físicas, eléctricas y mecánicas entre los dos, y el nivel de enlace de datos define todas las especificaciones Frame Relay o Frame Relay LMI según sea el caso. Circuitos virtuales Frame Relay Frame Relay es una tecnología WAN que usa enlaces orientados a conexión, esto significa que una comunicación se define entre un par de dispositivos y que cada una de las conexiones existentes en la red tiene un identificador asociado particular. Este servicio es implementado usando circuitos virtuales, los cuales son conexiones lógicas creadas entre dos dispositivos DTE a través de la red conmutada de paquetes Frame Relay. Un circuito lógico puede crearse a través de múltiples dispositivos intermediarios DCE dentro de la red Frame Relay. Los circuitos virtuales Frame Relay se pueden dividir en doscategorías: Circuitos Virtuales Conmutados (SVCs): son conexiones temporales y que se usan en situaciones donde la transferencia de datos entre un par de dispositivos DTE es esporádica a través de la red Frame Relay. Circuitos Virtuales Permanentes (PVCs): son conexiones establecidas permanentemente y que se usan en donde la transferencia de datos es continua entre dos dispositivos DTE. Este tipo de conexiones no requieren hacer una llamada de configuración ni de terminación como en los SVCs. ATM (Asynchronous Transfer Mode) El Modo de Transferencia Asíncrono (ATM) es un estándar desarrollado por la Unión Internacional de Telecomunicaciones (ITU-T) para transmitir múltiples tipos de servicios, tales como voz, video y datos usando técnicas de conmutación de celdas pequeñas de tamaño fijo. Las redes ATM son, al igual que las redes Frame Relay, orientadas a conexión [2]. ATM es una tecnología de multiplexación y de conmutación de celdas que combina los beneficios de una red de conmutación de circuitos (capacidad garantizada, retardos constantes) y de una red de conmutación de paquetes (flexibilidad y eficiencia para tráfico intermitente). Permite transmisiones desde unos pocos megabits por segundo hasta cientos de gigabits por segundo. Su naturaleza asíncrona, hace de ATM una tecnología más eficiente que las síncronas tales como TDM. En TDM a los usuarios se les asigna un timeslot, 8 CAPÍTULO 1. REDES VIRTUALES PRIVADAS Figura 1.5: Escenario Típico de una Red Frame Relay. y ningún otro cliente puede transmitir en ese timeslot así el propietario no este transmitiendo. Esto hace que la red no sea muy eficiente. En ATM los timeslots siempre están disponibles y se asignan por demanda basándose en la información que está contenida en las cabeceras de cada celda. Conexiones Virtuales ATM Las redes ATM son básicamente redes orientadas a conexión, esto significa que se tienen que configurar canales virtuales (VC) a través de la red para la adecuada transferencia de datos. Haciendo la analogía con Frame Relay, un canal virtual equivale a un circuito virtual. En ATM existen dos tipos de conexiones: los caminos virtuales (Virtual Paths - VPs), los cuales son identificados por medio de VPIs (Virtual Path Identifiers), y los canales virtuales, los cuales son identificados con una combinación de VPIs y de VCIs (Virtual Channel Identifier). Un camino virtual es una suma de canales virtuales, cada uno de los cuales es conmutado transparentemente sobre la red ATM. La figura 1.7 de la pág. 9 muestra esta relación entre VCs y VPs. 1.2. TECNOLOGÍAS ANTERIORES A LAS VPNS Figura 1.6: Dispositivos que Intervienen en una Red ATM. Figura 1.7: Caminos Virtuales. 9 10 1.2.2. CAPÍTULO 1. REDES VIRTUALES PRIVADAS Enlaces Conmutados Los enlaces conmutados se dividen en dos tipos: los analógicos y los digitales. Los primeros llegan hasta velocidades de 53 kbit/s para el downlink y hasta de 48 kbit/s para el uplink, los segundos transmiten y reciben a 64 kbit/s o 128 kbit/s. Estos últimos son conocidos como enlaces RDSI (o ISDN, en inglés) que son las siglas de Red Digital de Servicios Integrados. Mediante estos enlaces se pueden establecer un Acceso Remoto a una Red, el antecesor más próximo a las VPN. En la figura 1.8 de la pág. 10 se muetra un esquema de los distintos tipos de enlaces conmutados. Figura 1.8: Enaces Conmutados. Enlaces Conmutados Analógicos Fue quizá la primera tecnología de transmisión de datos que usó el hombre para construir redes privadas entre dos sitios remotos. Esto lo hizo aprovechando la Red de Telefonía Pública Conmutada - RTPC (PSTN, en inglés), dicha red ha tenido muchos desarrollos en los últimos 20 años. El servicio tradicional que la RTPC ha prestado ha sido comunicación de voz, y sólo recientemente se empezó a usar para soportar un creciente mercado de transferencia de datos. En un enlace conmutado de datos, intervienen varios equipos desde el usuario inicial hasta el punto o equipo destino. La figura 1.9 de la página 11 muestra los componentes de un enlace típico de datos sobre la red telefónica pública, se puede notar la necesidad de realizar una conversión A/D y 1.2. TECNOLOGÍAS ANTERIORES A LAS VPNS 11 otra D/A. La inercia que resulta de todo este proceso electrónico es la que en últimas limita a 56 kbit/s una comunicación analógica, que incluso puede llegar a 33.6 kbit/s cuando aparece una tercera y cuarta conversión entre la Central Telefónica 2 y el terminador de la llamada. Figura 1.9: Escenario Típico de una Conexión Analógica de Datos Sobre la RTPC. Se puede notar que la conexión entre el iniciador de la llamada y la central telefónica es análoga, y se lleva a cabo usando el mismo par de cobre de la línea telefónica, para esto se usa un modem análogo, mientras que en el lado del sitio remoto la conexión es digital, y para esto se usan enlaces RDSI. Cuando este enlace es también análogo, entonces se puede notar que en el proceso total de la conexión intervienen cuatro conversiones, dos A/D y dos D/A, esto hace que la velocidad de transmisión y de recepción máximas sean apenas de 33.6 kbit/s. La figura 11 ilustra este escenario. Figura 1.10: Enlaces Analógicos de Último Kilómetro de Ambos Lados. 12 CAPÍTULO 1. REDES VIRTUALES PRIVADAS Enlaces Conmutados Digitales - RDSI La Red Digital de Servicios Integrados (RDSI), es un sistema de telefonía digital que se desarrollo hace más de una década. Este sistema permite transmitir voz y datos simultáneamente a nivel global usando 100 % conectividad digital. En RDSI , la voz y los datos son transportados sobre canales B (del inglés Bearer) que poseen una velocidad de transmisión de datos de 64 kbit/s, aunque algunos switches ISDN limitan esta capacidad a solo 56 kbit/s. Los canales D (o canales de datos) se usan para señalización y tiene velocidades de 16 kbit/s o 64 kbit/s dependiendo del tipo de servicio. Los dos tipos básicos de servicio RDSI son: BRI (del inglés Basic Rate Interface) y PRI (del inglés Primary Rate Interface). Un enlace BRI consiste de dos canales B de 64 kbit/s y un canal D de 16 kbit/s para un total de 144 kbit/s. Este servicio está orientado a brindar capacidad de conexión para usuarios residenciales. Para acceder a un servicio BRI, es necesario tener una línea RDSI. Si sólo se desean comunicaciones de voz es necesario tener teléfonos digitales RDSI, y para transmitir datos es necesario contar con un adaptador de Terminal - TA (del inglés Terminal Adapter) o un enrutador RDSI. Figura 1.11: Adaptador de Terminal RDSI. 1.2. TECNOLOGÍAS ANTERIORES A LAS VPNS 13 A diferencia de las conexiones conmutadas analógicas en una conexión RDSI el camino es 100 % digital desde la central hasta el sitio del abonado, por lo cual no existe ningún tipo de conversiones A/D o viceversa, lo que facilita la obtención de velocidades de 64 kbit/s o 128 kbit/s, lo cual se logra convirtiendo los dos canales B de 64 kbit/s o en un canal lógico de 128 kbit/s. Esta característica es usada solo en transmisión de datos y depende de la facilidad que tenga el equipo terminal de realizar esto. Típicamente esta característica tiene el nombre de Multilink. Acceso Remoto a Redes Generalmente cuando hablando de Servicio de Acceso Remoto lo relacionamos con un enlace conmutado ya se analógico o digital en escenarios como los descriptos en el apartado anterior. En este tipo de arquitecturas existe un RAS (Remote Access Server ) que actúa como una puerta de enlace entre el cliente remoto y la red (ver figura 1.12 de la página 14). Después de que un usuario haya establecido la conexión por medio de una llamada, la línea telefónica es transparente para el usuario, y este puede tener acceso a todos los recursos de la red como si estuviera ante un equipo directamente conectado a ella. Se podría decir que el RAS hace que un módem actúe como una tarjeta de red al proyectar un equipo remoto sobre una LAN. Este tipo de implementación fue el antecesor más próximo de las VPN, sus deficiencias radican en los costos de las llamadas que se deben efectuar, principalmente las de larga distancias y la falta de confidencialidad en la transmisión de la información ya que no soportan encriptación de datos. Un punto a favor para este tipo de conexiones es que no necesita acceso a Internet (o correr sobre TCP-IP en todo caso) como las VPN. Hoy en día los clientes lo utilizan para conectarse con un Proveedor de Servicios Internet (ISP, Internet Service Provider), también es muy común utlizarlo para realizar la coexión a Internet, la que luego se utilizará para establecer una VPN. En la figura 1.13 de la página 14 se puede apreciar un escenario típico de una VPN sobre una Conexión de Acceso Remoto. 1.2.3. PPP - Protocolo Punto a Punto El Protocolo Punto a Punto (PPP) es un protocolo WAN de nivel de enlace estandarizado en el documento RFC 1661, 1662, 1663. Por tanto, se trata de un protocolo asociado a la pila TCP/IP de uso en Internet. Proporciona un 14 CAPÍTULO 1. REDES VIRTUALES PRIVADAS Figura 1.12: Acceso Remoto a Redes. Figura 1.13: Red Virtual Privada sobre RAS. 1.2. TECNOLOGÍAS ANTERIORES A LAS VPNS 15 método estándar para transportar datagramas multiprotocolo sobre enlaces simples punto a punto entre dos pares. Estos enlaces proveen operación bidireccional full dúplex y se asume que los paquetes serán entregados en orden. Generalmente, se utiliza para establecer la conexión a Internet de un particular con su proveedor de acceso a través de un módem telefónico. Ocasionalmente también es utilizado sobre conexiones de banda ancha (como PPPoE o PPPoA). Otro uso que se ha venido dando es utilizarlo para conectar a trabajadores desplazados (p. ej. ordenador portátil) con sus oficinas a través de un centro de acceso remoto de su empresa. Este protocolo cuenta con tres componentes: 1. Un mecanismo de enmarcado (armado de tramas) que delinea sin ambigüedad el final de la trama y el inicio de la siguiente. Permite la detección de errores. 2. Un protocolo de control de enlace (LCP, Link Control Protocol) para establecer, configurar y probar la conexión de datos. 3. Una familia de protocolos de control de red (NCPs, NetworkControl Protocols) para establecer y configurar los distintos protocolos de nivel de red. Fases de PPP Existen cuatro fases distintivas de negociación en una sesión de marcación del PPP. Cada una de estas cuatro fases debe completarse de manera exitosa antes de que la conexión del PPP esté lista para transferir los datos del usuario: Fase Previa: se establece una conexión física por ejemplo, un modem realiza una llamada telefónica al modem del ISP. Fase1: Establecer el enlace del PPP. PPP utiliza el protocolo de control de enlace LCP para establecer, mantener y terminar la conexión física. Durante la fase LCP inicial, se seleccionan las opciones básicas de comunicación. Nótese que durante la fase de establecimiento de enlace (Fase 1), se seleccionan los protocolos de Autenticación, pero no se implementan efectivamente hasta la fase de Autenticación de conexión (Fase 2). De manera similar, durante el LCP, se toma una decisión en cuanto a que si dos iguales negociarán el uso de compresión y/o encriptación. Durante la Fase 4 ocurre la elección real de algoritmos de compresión / encriptación y otros detalles. Entonces se puede decir que los parámetros que son determinados mediante el protocolo LCP en esta fase son: 16 CAPÍTULO 1. REDES VIRTUALES PRIVADAS Tamaño máximo de la trama - 1500 bytes por omisión. Negociar multivínculo para conexiones de un solo vínculo. Esta opción permite la separación de canales de alta y baja prioridad en una conexión de un solo vínculo. Si el servidor de acceso remoto acepta esta característica, puede apreciar un aumento en la calidad del audio. Sin embargo, puesto que esta característica es incompatible con muchos servidores de acceso remoto, no debe habilitarla a menos que se le indique lo contrario. Selección (solamente) del método de autenticación. Selección (solamente) del protocolo NCP de capa 3. Por ejemplo, el NCP de TCP/IP es el Protocolo de control de protocolo Internet (IPCP, Internet Protocol Control Protocol). Fase 2: Autenticar al usuario. La mayoría de las implementaciones del PPP proporcionan métodos limitados de Autenticación, típicamente el Protocolo de autenticación de contraseña (PAP), el Protocolo de autenticación de saludo Challenge (CHAP) y Microsoft Challenge Handshake Authentication Protocol (MSCHAP). Vale aclarar que esta face no es obligatoria. Una variante es el uso de EAP - Protocolo de Autenticación Extensible, que constituye uan extensión de PPP. Proporciona un mecanismo estándar para aceptar métodos de autenticación adicionales, permite añadir módulos de verificación en ambos extremos. Al utilizar EAP, se pueden agregar varios esquemas de autenticación, entre los que se incluyen: Tarjetas de Identificación. Autenticación por Clave Pública mediante tarjetas inteligentes, certificados y otros. Fase 3: Control de rellamado del PPP. La implementación de Microsoft del PPP incluye una Fase opcional de control de rellamado. Esta fase utiliza el Protocolo de Control de Rellamado (CBCP) inmediatamente después de la fase de autenticación. Si se configura para rellamado, después de la autenticación, se desconectan tanto el cliente remoto como el NAS. Entonces, el NAS vuelve a llamar al cliente remoto en el número telefónico especificado. Esto proporciona un nivel adicional de seguridad a las redes de marcación. El NAS permitirá conexiones a partir 1.2. TECNOLOGÍAS ANTERIORES A LAS VPNS 17 de los clientes remotos que físicamente residan sólo en números telefónicos específicos, lo que implica que este nivel de seguridad sólo se puede usa en un escenario donde la conexión a Internet sea sólamente a través de Dial-Up o ADSL. Fase 4: Invocar los protocolo(s) a nivel de red. Una vez que se hayan terminado las fases previas, PPP invoca los distintos Protocolos de Control de Red (NCPs) que se seleccionaron durante la fase de establecimiento de enlace (Fase1) para configurar los protocolos que utiliza el cliente remoto. Por ejemplo, durante esta fase el Protocolo de control de IP (IPCP) puede asignar una dirección dinámica a un usuario de marcación. Para configurar un protocolo de red se usa el protocolo NCP correspondiente. Por ejemplo, si la red es IP, se usa el protocolo IPCP para asignar la dirección IP del cliente y sus servidores DNS. En la implementación del PPP de Microsoft, el protocolo de control de compresión se utiliza para negociar tanto la compresión de datos (utilizando MPPC) como la encriptación de datos (utilizando MPPE) por la simple razón de que ambos se implementan en la misma rutina. Fase 5: Transferencia de datos. Una vez que se han terminado las cuatro fases de negociación, PPP empieza a transferir datos hacia y desde los dos iguales. Cada paquete de datos transmitidos se envuelve en un encabezado del PPP el cual quita el sistema receptor. Si se seleccionó la compresión de datos en la fase 1 y se negoció en la fase 4, los datos se comprimirán antes de la transmisión. Si se seleccionaron y se negociaron de manera similar la encriptación de datos, los datos (comprimidos opcionalmente) se encriptarán antes de la transmisión. Fase 6 : Finlalización del enlace. PPP puede terminar el enlace en cualquier momento. Esto puede ocurrir por la pérdida de la señal portadora, una falla de autenticación, una falla de la calidad del enlace, la expiración de un timer, o un cierre administrativo del enlace. LCP es usado para cerrar el enlace a través de un intercambio de paquetes de terminación. Cuando el enlace ha sido cerrado, PPP informa a los protocolos de capa de red así ellos pueden tomar la acción apropiada. Trama PPP Una trama PPP esta basada en HDLC. Tiene un mínimo de 6 bytes y un máximo indeterminado. La trama HDLC con PPP es: El formato de marco de PPP se escogió de modo que fuera muy parecido al 18 CAPÍTULO 1. REDES VIRTUALES PRIVADAS Figura 1.14: Formato de Trama PPP. formato de marco de HDLC, ya que no había razón para reinventar la rueda. La diferencia principal entre PPP y HDLC es que el primero está orientado a caracteres. PPP, al igual que SLIP, usa el relleno de caracteres en las líneas por discado con módem, por lo que todos los marcos tienen un número entero de bytes. Capítulo 2 Tunelamiento VPN 2.1. Etapas Necesarias para una Conexión VPN Toda solución VPN que se requiera implementar, cualquiera sea el protocolo o tecnología a usar, debe cumplir con las siguientes etapas (ver figura 2.1 de la página 20)1 : 2.1.1. Conexión Establecer la conexión en una de Red Virtual Privada es muy similar a establecer una conexión punto a punto mediante conexiones de acceso telefónico o de enrutamiento de marcado a petición, es más, en casos como PPTP se usa el mismo protocolo de base (PPP). Hay dos tipos de conexiones VPN: Conexión VPN de acceso remoto: un cliente de acceso remoto (el equipo de un usuario) realiza una conexión VPN de acceso remoto que conecta a una red privada. El servidor VPN proporciona acceso a los recursos del servidor VPN o a toda la red a la que está conectado el servidor VPN. Los paquetes enviados desde el cliente remoto a través de la conexión VPN se originan en el equipo cliente de acceso remoto. Conexión VPN de enrutador a enrutador: un enrutador realiza una conexión VPN de enrutador a enrutador que conecta dos partes de una red privada. El servidor VPN proporciona una conexión enrutada a la red a la que está conectado el servidor VPN. En una conexión VPN de enrutador a 1 Existen protocolos como L2TP que no proporicona encriptación de datos, será necesario convinarlo con otro protocolo como IPsec, para que éste le brinde el servicio de encriptación en una capa inferior (capa 3). 19 20 CAPÍTULO 2. TUNELAMIENTO VPN Figura 2.1: Etapas Necesarias Para Establecer un Túnel VPN. enrutador, los paquetes enviados desde uno de los enrutadores a través de la conexión VPN normalmente no se originan en los enrutadores. Durante esta etapa se seleccionan las opciones básicas de la comunicación, donde se presenta una negociación de parámetros necesarios para establecer el túnel. Ejemplos de estos parametros son el método de Autenticación (ej.: CHAP, PAP, IKE, ect.), algoritmo de Cifrado, el uso de Compresión, opciones de Rellanado, tamaño de la Trama, etc. 2.1.2. Control de Conexión El control de la conexión es una etapa que está presente desde el establecimiento de la conexión hasta que finaliza la misma. Su objetivo es mantener la conexión estable, esto se puede implementar dentro del mismo tunel VPN o por medio de una conexión paralela. Por ejemplo en el protocolo PPTP, existe una conexión de Transmisión UPD (puerto 43), y otra conexión de Control TCP (puerto 1723) para el control del túnel. 2.1. ETAPAS NECESARIAS PARA UNA CONEXIÓN VPN 2.1.3. 21 Autenticación La autenticación es el acto de verificar la identidad de alguien o algo en un contexto definido. En un mundo de seis mil millones de personas no es suficiente simplemente declarar que se es quien se dice ser, se debe probarlo. La autenticación involucra usualmente la interacción entre dos entidades, el objeto de la autenticación (un usuario o un cliente) que afirma su identidad y un autenticador realizando la verificación de la identidad. El usuario entrega información de autenticación la cual incluye la identidad proclamada y la información que soporta dicha identidad al autenticador. La información de autenticación puede ir desde un simple password a un juego completo de parámetros y mensajes. De igual manera, puede ser una simple función como en el caso de la comparación de claves, o la aplicación de complejos algoritmos criptográficos, como en el caso de firmas digitales. Si la información de autenticación y la función de autenticación están totalmente bajo el control de las dos entidades, el esquema de autenticación es llamado Esquema de Autenticación Compartido (two-party). Sin embargo, en muchos casos es más seguro y escalable ayudarse de una tercera parte (o de más) para la autenticación. Esos esquemas son llamados de confianza en terceras partes (trusted third-party). Otro factor a tener en cuenta es la integridad y confidencialidad de la información de autenticación. Es importante que la información usada para la autenticación sea segura y no sea obtenida de participantes no autorizados. Esas medidas de seguridad no solo deben ser tomadas en el establecimiento del túnel, sino durante el transcurso del intercambio de datos. En el caso de las VPNs esto es muy importante ya que la información de autenticación es transmitida a través de Internet. Sistemas de Autenticación La autenticación es parte vital dentro de la estructura de seguridad de una VPN. Sin ella no se podría controlar el acceso a los recursos de la red corporativa y mantener a los usuarios no autorizados fuera de la línea. Los sistemas de autenticación pueden estar basados en uno de los siguientes tres atributos: algo que el usuario tiene (por ejemplo la llave de una puerta); algo que el usuario sabe (por ejemplo una clave); ó algo que el usuario es (por ejemplo sistemas de reconocimiento de voz ó barrido de retinas). Es generalmente aceptado el uso de un método sencillo de autenticación tal como el 22 CAPÍTULO 2. TUNELAMIENTO VPN password, pero no es adecuado para proteger sistemas. Los expertos recomiendan los llamados sistemas de autenticación complejos, los cuales usan al menos dos de los atributos de autenticación anteriores. 2.1.4. Cifrado Las Redes Virtuales Privadas gozan de confidencialidad gracias al uso del cifrado de datos, que oculta la información a cualquier interceptor que no este autorizado. En una tarea de cifrado, el emisor y el receptor, deben conocer el conjunto de reglas que rigen el mecanismo como tal. Las llaves son usadas para transformar los datos original en otros resultantes llamados texto cifrados. Criptografía Simétrica La Criptografía Simétrica es un método que usa una misma clave para cifrar y para descifrar mensajes. Las dos partes que se comunican han de ponerse de acuerdo de antemano sobre la clave a usar. Una vez ambas tienen acceso a esta clave, el remitente cifra un mensaje usándola, lo envía al destinatario, y éste lo descifra con la misma clave. Un buen sistema de cifrado pone toda la seguridad en la clave y ninguna en el algoritmo. En otras palabras, no debería ser de ninguna ayuda para un atacante conocer el algoritmo que se está usando. Sólo si el atacante obtuviera la clave, le serviría conocer el algoritmo. Dado que toda la seguridad está en la clave, es importante que sea muy difícil adivinar el tipo de clave. Esto quiere decir que el abanico de claves posibles, o sea, el espacio de posibilidades de claves, debe ser amplio. Hoy por hoy, los ordenadores pueden adivinar claves con extrema rapidez, y ésta es la razón por la cual el tamaño de la clave es importante en los criptosistemas modernos. Como ambas partes conocen el cifrado, cualquiera de ellas puede reversar el proceso para abstraer el texto original. El cifrado se basa en dos componentes: un algoritmo y una llave. Un algoritmo criptográfico es una función matemática que combina texto plano o cualquier otra información inteligible con una cadena de dígitos llamada key (llave) para producir un texto cifrado o no inteligible. Tanto la llave como el algoritmo son cruciales en un proceso de cifrado (ver figura 2.2 de la página 23). El cifrado basado en un sistema de llaves ofrece una gran ventaja, los algoritmos criptográficos son difíciles de idear por lo cual sería traumático usar un nuevo algoritmo cada vez que una parte se quiera comunicar de manera 2.1. ETAPAS NECESARIAS PARA UNA CONEXIÓN VPN 23 privada con una nueva. Usando una llave, un usuario podría utilizar el mismo algoritmo para comunicarse con diferentes usuarios remotos; y todo lo que se debería hacer sería utilizar una diferente llave con cada uno de ellos. Figura 2.2: Esquema Criptográfico. El principal problema con los sistemas de cifrado simétrico es el intercambio de claves, sería mucho más fácil para un atacante intentar interceptar una clave que probar las posibles combinaciones del espacio de claves. Otro problema es el número de claves que se necesitan, si tenemos un número n de personas que necesitan comunicarse entre ellos, entonces se necesitan n(n-1)/2 claves para cada pareja de personas que tengan que comunicarse de modo privado. Esto puede funcionar con un grupo reducido de personas, pero sería imposible llevarlo a cabo con grupos más grandes. Algunos de los sistemas de autenticación simétricos más usados son: Passwords Tradicionales: son la forma más simple de autenticar pero es un método inadecuado para garantizar la seguridad en el acceso a una red, dado que los passwords pueden ser adivinados e interceptados durante transmisiones en la red. Por ejemplo, servicios tales como FTP y Telnet transmiten los nombres y las claves en texto plano, haciéndolos fácilmente interceptables. Passwords Únicos:Una forma de prevenir el uso no autorizado de Passwords interceptados es evitar que sean reutilizados. Los sistemas de Passwords Únicos restringen el uso de un password a una sola sesión de comunicación, es decir que se requiere un password nuevo para cada 24 CAPÍTULO 2. TUNELAMIENTO VPN nueva sesión. Estos sistemas, de los cuales S / KEY es el mejor ejemplo, facilitan al usuario la escogencia de un nuevo password para la siguiente sesión generando automáticamente una lista de posibles passwords para el usuario. PAP(Protocolo de Autenticación de Passwords): es un protocolo de dos vías, el host que se está conectando envía un nombre de usuario y un password al sistema destino con el cual trata de establecer su comunicación, y el sistema destino (el autenticador) responde si es el caso, que el computador remoto está autenticado y aprueba su comunicación. PAP es un protocolo de autenticación que puede ser usado al comienzo del establecimiento de un enlace PPP, no es seguro porque la información de autenticación es transmitida en texto plano, esto lo hace vulnerable a que atacantes obtengan información de nombres de usuario y claves de manera fácil. CHAP(Challenge Handshake Authentication Protocol): es muy similar a PAP pero es más seguro para autenticar enlaces PPP. CHAP es un protocolo de tres vías y al igual que PAP, incorpora tres pasos para la autenticación de un enlace, que son: 1. El autenticador envía un mensaje al nodo remoto. 2. El nodo calcula un valor usando una función hash y lo envía de regreso al autenticador. 3. El autenticador avala la conexión si la respuesta concuerda con el valor esperado. El proceso puede repetirse en cualquier momento del enlace PPP para asegurarse que la conexión no ha sido tomada por otro nodo. A diferencia de PAP, en CHAP el servidor controla la reautenticación. PAP y CHAP tienen algunas desventajas, en ninguno de los dos se pueden asignar diferentes privilegios para acceder a la red a diferentes usuarios remotos que usan el mismo computador. El siguiente protocolo (RADIUS) entrega más flexibilidad para asignar privilegios de acceso. RADIUS(Remote Authentication Dial-In User Service): Es un protocolo AAA (Autenticación, Autorización y Administración) para aplicaciones como acceso a redes o movilidad IP. Usa una arquitectura cliente servidor e incluye dos componentes, un servidor de autenticación y un protocolo cliente. El servidor es instalado en un computador central, 2.1. ETAPAS NECESARIAS PARA UNA CONEXIÓN VPN 25 el protocolo cliente es implementado en el servidor de acceso a la red (NAS). El proceso de autenticación con RADIUS tiene los siguientes pasos: 1. Un usuario remoto marca a un RAS. Cuando la conexión al modem se completa, el RAS pregunta por un nombre de usuario y password. 2. Una vez recibidos, el RAS crea un paquete de datos llamado requerimiento de autenticación. Este paquete incluye información tales como el nombre del usuario, el password, el modem de conexión, entre otros. Para evitar que un hacker escuche la información, el RAS actúa como un cliente del RADIUS, cifrando el mensaje con una clave compartida predeterminada entre el RAS y el servidor RADIUS. 3. El requerimiento de autenticación es enviado por la red desde el cliente hasta el servidor RADIUS. 4. Cuando un requerimiento de autenticación es recibido, el servidor RADIUS valida el requerimiento y verifica la información del nombre de usuario y password. 5. Si el nombre de usuario y el password son correctos, el servidor envía un reconocimiento de autenticación que puede incluir información del usuario en la red y los servicios que el requiere. 6. Si en este punto del proceso la autenticación no se tiene éxito, el RADIUS envía un mensaje de desconexión al RAS y al usuario se le niega el acceso a la red. La figura 2.3 de la página 26 muestra el escenario correspondiente a los pasos anteriores. Criptografía Asimétrica La Criptografía Asimetrica o Criptografía de LLaves Públicas se basa en el manejo de una pareja de llaves. Cada llave puede encriptar información que sólo la otra puede desencriptar. La llave privada, únicamente es conocida por su propietario; la llave pública, se pública abiertamente, pero sigue asociada al propietario. Los pares de llaves tienen una característica única: los datos encriptados con una llave sólo pueden desencriptarse con la otra llave del par. Las llaves se pueden usar de dos maneras diferentes: para garantizar confidencialidad al mensaje y para probar la autenticidad del emisor de un mensaje. En el primer caso, el emisor usa la llave pública del receptor para encriptar 26 CAPÍTULO 2. TUNELAMIENTO VPN Figura 2.3: Servidores Radius de Autenticación. un mensaje, de manera que el mensaje continúe siendo confidencial hasta que sea decodificado por el receptor con la llave privada. En el segundo caso, el emisor encripta un mensaje usando la llave privada, una llave a la cual sólo tiene acceso él. La llave pública del receptor asegura la confidencialidad; la llave privada del emisor verifica la identidad del mismo. Por ejemplo, para crear un mensaje confidencial, una persona necesita conocer primero la llave pública de su receptor, después deberá usar la misma para encriptar el mensaje y enviarlo. Como el mensaje se encriptó con la llave pública del receptor, sólo éste con su llave privada puede desencriptar el mensaje.Aunque una persona puede encriptar un mensaje con una llave pública o con una llave secreta, usar la llave pública presenta ciertas ventajas. Por ejemplo, la llave pública de la pareja de llaves se puede distribuir en un servidor sin temor de que esto comprometa el uso de la llave privada. Por ello, no se necesita enviar una copia de la llave pública a todos los receptores; ya que ellos la pueden obtener desde un servidor de llaves mantenido por la compañía, o a través de un proveedor de servicio. La figura 2.4 de la página 27 muestra el esquema con el cual un emisor encripta su mensaje por medio de la llave pública del destinatario y como este último con su llave privada desencripta el mensaje cifrado que le ha llegado. Otra ventaja de la criptografía con llave pública es que permite que el receptor autentifique al originador del mensaje. La idea básica es esta: ya que el emisor es la única persona que puede encriptar algo con su llave privada, todo aquel que use la llave pública del mismo para desencriptar el mensaje, puede estar seguro de que el mensaje proviene de él. Así, el uso de su llave 2.1. ETAPAS NECESARIAS PARA UNA CONEXIÓN VPN 27 Figura 2.4: Esquema de Cifrado con LLave Pública. privada en un documento electrónico es similar a la firma en un documento de papel. Pero hay que recordar que aunque el receptor puede estar seguro de que el mensaje proviene del emisor, no hay forma de garantizar que alguien más lo haya leído con anterioridad. Usar Algoritmos Criptográficos de LLaves Públicas para encriptar mensajes es computacionalmente lento, así que se ha descubierto una manera para generar con rapidez una representación corta y única del mensaje, llamada ”resumen” (message digest), que se puede encriptar y después usar como firma digital. Algunos algoritmos criptográficos populares y veloces para generar resúmenes se conocen como Funciones Hash o funciones de dispersión de un solo sentido. Una función de dispersión (hash) de un solo sentido no usa una llave; simplemente es una fórmula para convertir un mensaje de cualquier longitud en una sola cadena de dígitos, llamada resumen. Por ejemplo, suponiendo que el emisor, A, calcula un resumen para un mensaje, y encripta dicho resumen con su llave privada, luego envía esa firma digital junto con un mensaje de texto simple a B. Después de que B usa la llave pública de A para desencriptar la firma digital, B tiene una copia del resumen del mensaje que A calculó. Dado que B pudo desencriptar la firma digital con la llave pública de A, sabe que A lo creó, 28 CAPÍTULO 2. TUNELAMIENTO VPN autentificando así al originador. B usa entonces la misma función de dispersión (que se acordó de antemano) para calcular su propio resumen del mensaje de texto simple de A. Si su valor calculado y el que A envió son iguales, entonces B puede estar seguro de que la firma digital es auténtica, lo que significa que A no sólo envió el mensaje, sino que el mensaje no fue alterado. Existe una amplia variedad de algoritmos criptográficos para llaves públicas, pero quizá dos de los más importantes han sido Diffie-Hellman y RSA. 2.1.5. Control de Acceso El control de acceso es un conjunto de políticas y mecanismos que permiten a las partes acceso autorizado a determinados recursos. De esta manera protege al recurso de accesos maliciosos o accidentales de usuarios que no están autorizados a accederlos. La figura 2.5 de la página 28 muestra un control de acceso en un modelo cliente-servidor. Se considera usuario a cualquier entidad (usuario o aplicación trabajando en nombre de ese usuario) que desee acceder al recurso. Se determina por recurso a cualquier objeto que puede ser manipulado de alguna manera, tales como lectura, escritura o modificación, causadas por la realización de alguna acción, tales como la ejecución de un programa o el envío de un mensaje. Figura 2.5: Control de Acceso Cliente-Servidor. Un usuario tiene una identidad y un conjunto de atributos asociados. El 2.1. ETAPAS NECESARIAS PARA UNA CONEXIÓN VPN 29 cliente envía la identificación del usuario, los atributos y el requerimiento de una operación al servidor. El servidor puede autenticar la identidad del usuario y remitirlo junto con los atributos y el requerimiento solicitado a los mecanismos de control de acceso. Las políticas son preestablecidas en el mecanismo de control de acceso; la información del usuario es comparada con las reglas de las políticas para determinar los derechos de acceso del usuario a ese recurso. Mecanismos de Control de Acceso Los mecanismos de control de acceso son las formas concretas para expresar una regla. Las listas de control de acceso y las listas de capacidades son dos de los mecanismos más usados para especificar las reglas condicionales. Listas De Control De Acceso Una ACL (Access Control List) asocia cada recurso con una lista ordenada de qué usuarios pueden tener acceso al recurso y cómo esos usuarios pueden accederlo. Este método es de recurso céntrico; dando el nombre del recurso, del usuario, los atributos del mismo y el tipo de operación, el mecanismo de control de acceso puede buscar la ACL correspondiente a ese recurso y determinar si el usuario puede o no realizar la operación. Los usuarios en algunas ocasiones son puestos en grupos o en clases equivalentes, las cuales tienen los mismos derechos. Esta práctica tiene como objetivo volver más escalables las ACLs dependiendo del número de usuarios en el sistema. El sistema de archivos UNIX usa una forma de ACL para permitir o denegar las operaciones que pueden ser hechas en los archivos. Hay tres tipos de operaciones básicas: lectura, escritura y ejecución. Cada archivo tiene asociados tres juegos de permisos: uno para el propietario del archivo, uno para el grupo y uno para cualquier otra persona. Cada permiso contiene los tres derechos: lectura (R), escritura (W) y ejecución (X); los derechos que no son garantizados se llenan con un guión (-). Los tres conjuntos con los tres privilegios forman una cadena de nueve dígitos (rwxrwxrwx). A continuación se detalla la salida de un comando UNIX la cual muestra los permisos de varios archivos dentro de ese directorio. -rw––- 1 Juan Contable 383 Mar 13 23:32 Cuentas -rw-rw-r— 1 Juan Contable 584 Mar 13 18:17 Empleados -rwxr-x– 1 Juan project 164 Mar 13 18:17 useful* En el anterior ejemplo el archivo Cuentas tiene permisos de lectura y escritura para el propietario (Juan); el archivo Empleados tienen permisos de 30 CAPÍTULO 2. TUNELAMIENTO VPN lectura y escritura para propietario y para el grupo (Contable), y de lectura para cualquier otra persona; y el archivo useful tiene permisos de lectura, escritura y ejecución para el propietario y de lectura y ejecución para el grupo. Listas de Capacidades Las listas de capacidades (C-list) son equivalentes a las ACLs pero son centradas en el usuario a diferencia de las ACLs que son centradas en el recurso. En una C-list cada usuario tiene una lista de recursos que puede acceder. Una C-list es usada si los recursos pueden ser agrupados en clases equivalentes, por ejemplo en la clasificación de seguridad militar, donde un documento puede ser marcado como: no clasificado, secreto o supersecreto. Administración de las Políticas de Control de Acceso Las políticas de control de acceso usualmente son dinámicas, es decir que nuevas políticas deben ser aplicadas cada vez que nuevos recursos o nuevos usuarios aparecen en la red. El proceso de crear, mantener y distribuir las políticas de control de acceso es llamado administración de las políticas de control de acceso. Una administradora de políticas es la entidad que tiene el control sobre todas las políticas de acceso en un sistema. El manejador de las políticas es el servicio responsable de proveer a los administradores de una interfaz fácil de usar que defina, instale, modifique y despliegue políticas. El manejador de políticas también es el encargado de traducir las reglas del lenguaje abstracto que maneja el administrador a expresiones que son usadas en los mecanismos de control de acceso. Cuando múltiples puntos de control de acceso existen en una red, la administración de las políticas puede ser hecha de una manera centralizada o de una manera distribuida. Directorio Activo (Active Directory de Microsoft) Un ejemplo de listas de de accesos con administración centralizada es el Directorio Activo de Microsoft. En una red Microsoft Windows, el servicio de directorio Active Directory proporciona la estructura y las funciones para organizar, administrar y controlar el acceso a los recursos de red. . Active Directory proporciona la capacidad de administrar centralmente la red de Windows. Esta capacidad significa que puede almacenar centralmente 2.1. ETAPAS NECESARIAS PARA UNA CONEXIÓN VPN 31 información acerca de la empresa, por ejemplo, información de usuarios, grupos e impresoras, y que los administradores pueden administrar la red desde una sola ubicación. Active Directory admite la delegación del control administrativo sobre los objetos de él mismo. Esta delegación permite que los administradores asignen a un grupo determinado de administradores, permisos administrativos específicos para objetos, como cuentas de usuario o de grupo. En un dominio hay lo que se llama un servidor principal llamado PDC (Primary Domain Controller) que es quien asigna derechos controla usuarios y recursos. Dado que este servidor puede recibir muchas peticiones de red por parte de los clientes, es posible instalar un servidor de réplica llamado BDC (Backup Domain Controller ), además en caso de fallo del PDC, éste se sitúa en el dominio como PDC. Los recursos almacenados en el directorio, como usuarios, impresoras, servidores, grupos, computadores y políticas de seguridad, se conocen colectivamente como objetos. Un objeto es un conjunto nombrado de atributos que representan un recurso de red. Es decir, los atributos son las características de los objetos en el directorio. Figura 2.6: Objetos en Active Directory. Los objetos en Active Directory pueden organizarse en clases, que son agrupamientos lógicos de objetos. Ejemplos de clases son las cuentas de usuario, los grupos, las computadoras, las unidades organizacionales, etc. (ver figura 32 CAPÍTULO 2. TUNELAMIENTO VPN 2.6 de la página 31). Principalmente, un dominio define un límite de seguridad. Un dominio puede contener millones de objetos AD. Por cada objeto dentro de un dominio, AD mantiene ACLs (Listas de Control de Acceso) que controlan que usuarios pueden tener acceso al mismo y que tipo de acceso pueden obtener (ver figura 2.7 de la página 32). Figura 2.7: Esquema General de Active Directory de Microsoft. 2.2. Tunelamiento Tunelamiento (Tunneling) es una técnica que usa una infraestructura entre redes para transferir datos de una red a otra. Los datos o la carga pueden ser transferidas como tramas de otro protocolo. El protocolo de tunneling encapsula las tramas con una cabecera adicional, en vez de enviarla como la produjo en nodo original. La cabecera adicional proporciona información de routing para hacer capaz a la carga de atravesar la red intermedia. Las tramas encapsuladas son enrutadas a través de un tunel que tiene como puntos finales los dos puntos entre la red intermedia. El túnel es una camino lógico a través del cual se encapsulan paquetes viajando entre la red intermedia. Cuando un trama encapsulada llega a su destino en la red intermedia, se desencapsula y se envía a su destino final dentro de la red. Tunneling incluye todo el proceso de encapsulado, desencapsulado y transmisión de las tramas. Protocolos de Tuneles Para que se establezca un túnel, tanto el cliente de éste como el servidor deberán utilizar el mismo protocolo de túnel. La tecnología de túnel se puede 2.2. TUNELAMIENTO 33 basar en el protocolo del túnel de Nivel 2, Nivel 3; o niveles intermedios correspondientes OSI (Modelo de referencia de interconexión de sistemas abiertos). Los protocolos de capa 2 corresponden al nivel de Enlace de datos, y utilizan tramas como su unidad de intercambio. PPTP y L2TP son protocolos de túnel de Capa 2, ambos encapsulan la carga útil en una trama de PPP (Protocolo Punto a Punto) que se enviará a través de la red. Los protocolos de capa 3 corresponden al nivel de Red, utilizan paquetes IP o datagramas de capa de Transporte (por ejemplo TCP)como carga útil. El modo de túnel de seguridad IP (IPSec) son ejemplos de los protocolos de túnel de capa 3; éstos encapsulan los paquetes IP en un encabezado adicional antes de enviarlos a través de una red IP. Otros protocolo como MPLS que encapsula la carga útlil en una capa adicional entre la Capa 2 y Capa 3. Por último existen también tunelamiento en la Capa de Aplicación mediante SSL (Secure Layer Soket) . 2.2.1. Funcionamiento del Túnel Para las tecnologías de túnel de Nivel 2 como PPTP y L2TP, un túnel es similar a una sesión; los dos puntos finales deben estar de acuerdo respecto al túnel, y negociar las variables de la configuración, como asignación de dirección o los parámetros de encriptación o de compresión. En la mayor parte de los casos, los datos que se transfieren a través del túnel se envían utilizando protocolos basados en datagramas; se utiliza un protocolo para mantenimiento del túnel como el mecanismo para administrar al mismo. Por lo general, las tecnologías del túnel de Nivel 3 suponen que se han manejado fuera de banda todos los temas relacionados con la configuración, normalmente a través de procesos manuales; sin embargo, quizá no exista una fase de mantenimiento de túnel. Para los protocolos de Nivel 2 (PPTP y L2TP) se debe crear, mantener y luego concluir un túnel. Cuando se establece el túnel, es posible enviar los datos a través del mismo. El cliente o el servidor utilizan un protocolo de transferencia de datos del túnel a fin de preparar los datos para su transferencia. Por ejemplo, cuando el cliente del túnel envía una carga útil al servidor, primero adjunta un encabezado de protocolo de transferencia de datos de túnel a la carga útil. Luego, el cliente envía la carga útil encapsulada resultante a través de la red, la que lo enruta al servidor del túnel. Este último acepta los paquetes, elimina el encabezado del protocolo de transferencia de datos del 34 CAPÍTULO 2. TUNELAMIENTO VPN túnel y envía la carga útil a la red objetivo. La información que se envía entre el servidor del túnel y el cliente del túnel se comporta de manera similar. 2.2.2. Tipos de Túneles Túneles Voluntarios Un túnel voluntario ocurre cuando, una estación de trabajo o un servidor de entubamiento utiliza el software del cliente del túnel, a fin de crear una conexión virtual al servidor del túnel objetivo; para lograr esto se debe instalar el protocolo apropiado de túnel en la computadora cliente. Para los protocolos que se analizan en este trabajo final de aplicación, los túneles voluntarios requieren una conexión IP (ya sea a través de una LAN o marcación). En determinadas situaciones, el cliente debe establecer una conexión de marcación con el objeto de conectarse a la red antes de que el cliente pueda establecer un túnel (éste es el caso más común). Un buen ejemplo es el usuario de Internet por marcación, que debe marcar a un ISP y obtener una conexión a Internet antes de que se pueda crear un túnel sobre Internet.. Para una PC conectada a una LAN, el cliente ya tiene una conexión a la red que le puede proporcionar un entubamiento a las cargas útiles encapsuladas al servidor del túnel LAN elegido. Este sería el caso para un cliente en una LAN corporativa, que inicia, un túnel para alcanzar una subred privada u oculta en la misma LAN. Es falso que las VPN requieran una conexión de marcación, pues sólo requieren de una red IP. Algunos clientes (como las PC del hogar) utilizan conexiones de marcación a Internet para establecer transporte IP; esto es un paso preliminar en la preparación para la creación de un túnel, y no es parte del protocolo del túnel mismo. En la figura 2.8 de la página 35 se puede apreciar un escenario típico correspondiente a un túnel voluntario. Túneles Obligatorios Diversos proveedores que venden servidores de acceso de marcación han implementado la capacidad para crear un túnel en nombre del cliente de marcación. La computadora o el dispositivo de red que proporciona el túnel para la computadora del cliente es conocida de varias maneras: Procesador frontal (FEP) en PPTP, un Concentrador de acceso a L2TP (LAC) en L2TP o un gateway de seguridad IP en el IPSec. En este apartado, el término FEP se utilizará para describir esta funcionalidad, sin importar el protocolo de túnel. 2.2. TUNELAMIENTO 35 Figura 2.8: Túneles Voluntarios. Para realizar esta función, el FEP deberá tener instalado el protocolo apropiado de túnel y ser capaz de establecer el túnel cuando se conecte la computadora cliente. En el ejemplo de Internet, la computadora cliente coloca una llamada de marcación al NAS activado por los túneles en el ISP; puede darse el caso de que una empresa haya contratado un ISP para instalar un conjunto nacional de FEP. Esta configuración se conoce como “túnel obligatorio” debido a que el cliente está obligado a utilizar el túnel creado por FEP Cuando se realiza la conexión inicial, todo el tráfico de la red de y hacia el cliente se envía automáticamente a través del túnel. En los túneles obligatorios, la computadora cliente realiza una conexión única PPP, y cuando un cliente marca en el NAS se crea un túnel y todo el tráfico se enruta de manera automática a través de éste. Es posible configurar un FEP para hacer un túnel a todos los clientes de marcación hacia un servidor específico del túnel. De manera alterna, el FEP podría hacer túneles individuales de los clientes basados en el nombre o destino del usuario (ver figura 2.9 de la página 36). A diferencia de los túneles por separado creados para cada cliente voluntario, un túnel entre el FEP y servidor del túnel puede estar compartido entre varios clientes de marcación. Cuando un segundo cliente marca al servidor de acceso (FEP) para alcanzar un destino para el cual ya existe un túnel, no hay necesidad de crear una nueva instancia del túnel entre el FEP y el servidor 36 CAPÍTULO 2. TUNELAMIENTO VPN Figura 2.9: Túneles Obligatorios. del túnel. El tráfico de datos para el nuevo cliente se transporta sobre el túnel existente. Ya que puede haber varios clientes en un túnel único, el túnel no se termina hasta que se desconecta el último usuario del túnel. Modelos de Entunelamiento En las VPN los sitios de terminación (terminadores) de los túneles son aquellos donde se toman las decisiones de autenticación y las políticas de control de acceso y donde los servicios de seguridad son negociados y otorgados. En la práctica hay tres tipos posibles de servicios de seguridad que dependen de la ubicación de los terminadores. El primer caso es aquel donde el terminador está en el host mismo, donde los datos se originan y terminan. En el segundo caso el terminador está en el gateway de la LAN corporativa donde todo el tráfico converge en un solo enlace. El tercer caso es aquel donde el terminador está localizado fuera de la red corporativa, es decir en un Punto de Presencia (POP) del ISP. Dado que un túnel VPN se compone de dos terminadores, se pueden obtener seis tipos de modelos de seguridad derivados de la posible combinación de las diferentes localizaciones: End-to-End, End-to-LAN, End-to-POP, LAN-toLAN, LAN-to-POP y POP-to-POP, en la figura de la página se pueden notar cada uno de estas combinaciones (ver figura 2.10 de la página 37). En el modelo End-to-End el túnel va desde un extremo hasta el otro del sistema. Por lo tanto, los servicios de seguridad son negociados y obtenidos en la fuente y en el destino de la comunicación. Este escenario presenta el más alto nivel de seguridad dado que los datos siempre están seguros en todos los segmentos de la red, bien sea pública o privada. Sin embargo, el total de 2.2. TUNELAMIENTO 37 Figura 2.10: Modelos de Entunelamiento. túneles que pueden haber en una empresa grande, dificulta el manejo de los servicios de seguridad requeridos por dichos host. Este modelo de seguridad es comúnmente visto en implementaciones de capas superiores, como es el caso de SSL (Secure Sockets Layer). En el modelo End-to-LAN, el túnel comienza en un host y termina en el perímetro de una LAN en la cual reside el host destino. Un dispositivo VPN localizado en el perímetro de la red es el responsable de la negociación y obtención de los servicios de seguridad de los host remotos. De esta manera, la seguridad de un gran número de dispositivos en una red corporativa puede ser manejada en un único punto, facilitando así la escalabilidad del mismo. El modelo de entunelamiento End-to-POP es aquel en el cual un host remoto termina el túnel en un POP de la ISP. Un dispositivo VPN o un equipo con funciones de terminador VPN y que se encuentra en la red de la ISP es el responsable por la negociación y concesión de los servicios de seguridad. La entrega de los datos desde el POP hasta el host destino es por lo general asegurada con infraestructura física, la cual separa el tráfico del resto de la red pública. Por lo general en este caso el ISP administra los permisos y controla el acceso según las directivas de los administradores de red de las empresas clientes. La arquitectura de acceso remoto VPN también usa este modelo. En el modelo LAN-to-LAN ambos hosts usan dispositivos VPNs situa- 38 CAPÍTULO 2. TUNELAMIENTO VPN dos en la frontera de la red corporativa para negociar y conceder servicios de seguridad. De esta manera, las funciones de seguridad no necesitan ser implementadas en los hosts finales donde los datos son generados y recibidos. La implementación de los servicios de seguridad es completamente transparente para los hosts. Esta implementación reduce drásticamente la complejidad en el manejo de las políticas de seguridad. La arquitectura Intranet VPN encaja en este modelo. En el caso de LAN-to-POP el túnel comienza en un dispositivo VPN localizado en la frontera de la red corporativa y termina en un dispositivo VPN el cual se encuentra en un POP de la ISP. En la actualidad prácticamente este entunelamiento no es aplicado. Finalmente, en el modelo POP-to-POP ambos dispositivos VPN son localizados en la propia red de la ISP. Por lo tanto los servicios de seguridad son completamente transparentes para los usuarios finales del túnel. Este modelo permite a los proveedores de servicio implementar valores agregados a los clientes sin que éstos alteren la infraestructura de sus redes. Una tecnología acorde para este modelo es MPLS. De los seis modelos anteriores el End-to-LAN y el LAN-to-LAN son los más extensamente usados en las soluciones VPN. Sin embargo, el POP-toPOP o modelo de seguridad basado en red, ha cobrado vigencia últimamente dado que permite a las ISPs implementar servicios de valores agregados para sus clientes [3]. Capítulo 3 Protocolos VPN 3.1. PPTP - Protocolo de Túnel Punto a Punto Es quizá el protocolo más sencillo de entunelamiento de paquetes. Es usado, en general, por pequeñas empresas para realizar sus VPNs LAN-to-LAN, y en topologías de acceso remoto, para trabajadores teleconmutados (teleworkers), tales como vendedores externos o trabajadores que se mantienen en constante movimiento por fuera de sus oficinas. El protocolo PPTP fue propuesto por el Foro PPTP (PPTP Forum), compuesto por 3Com, Ascend (ahora Lucent), Microsoft, ECI Telematics y USRobotics. Debido a la integración que hizo Microsoft en sus sistemas operativos, PPTP tuvo gran acogida en el mercado mundial, a tal punto que un protocolo de capa 2 lanzado por Cisco Systems al mismo tiempo, prácticamente no se conoció, L2F (Layer-2- Forwarding). El protocolo más comúnmente usado para acceso conmutado a Internet es el protocolo punto-a-punto (PPP). PPTP se soporta sobre toda la funcionalidad que PPP le brinda a un acceso conmutado para construir sus túneles a través de Internet. PPTP encapsula paquetes PPP usando una versión modificada del Protocolo de Encapsulamiento Ruteado Genérico (GRE - Generic Routing Encapsulation). Dado lo anterior, PPTP no sólo es capaz de encapsular paquetes IP, sino IPX y NETBEUI, los protocolos de red local más usados. PPTP utiliza los mecanismos de autenticación que generalmente están asociados a PPP tales como PAP y CHAP, una versión mejorada de CHAP llamada MS-CHAP y desarrollada por Microsoft se encuentra en sus sistemas operativos Windows NT, 2000 y XP. Otra mejora que le ha hecho Microsoft al 39 40 CAPÍTULO 3. PROTOCOLOS VPN protocolo PPTP es la incorporación del método de cifrado MPPE (Microsoft Point-to-Point Encription). Una de las ventajas que tiene PPTP por ser un protocolo de nivel 2, es que puede transmitir protocolos diferentes a IP en sus túneles, a diferencia de IPSec que se restringe a trabajar sólamente con paquetes IP. 3.1.1. Relación Entre PPP Y PPTP PPP es el protocolo más comúnmente usado para acceso a Internet, prácticamente el único, además es usado en algunos enlaces seriales punto a punto WAN. PPP trabaja en la capa 2 del modelo OSI, e incluye métodos para encapsular varios tipos de datagramas para ser transferidos sobre enlaces seriales, entre ellos IP, IPX y NETBEUI. El protocolo PPTP depende de PPP para crear la conexión conmutada entre el cliente y el servidor de acceso a la red. PPTP confía las siguientes funciones a PPP: Establecimiento y finalización de la conexión física. Autenticación de los usuarios. Creación de datagramas PPP. Luego que el enlace PPP es creado, el protocolo PPTP define dos diferentes tipos de paquetes: paquetes de control y paquetes de datos, cada uno de los cuales es asignado a diferentes canales lógicos. PPTP separa los canales de control y de datos usando un flujo de control que corre sobre TCP y un flujo de datos que está encapsulado con cabeceras IP usando GRE. La conexión TCP es creada entre el cliente y el servidor PPTP. Esta conexión es usada para intercambiar mensajes de control. Los paquetes de datos contienen los datos del usuario, es decir, los datagramas del protocolo de capa de red usado. Los paquetes de control (control del enlace) son enviados periódicamente para indagar sobre el estado del enlace y las señales de manejo entre el cliente y el servidor PPTP. Los paquetes de control también se usan para enviar información de manejo básica del dispositivo y de configuración. Los mensajes de control establecen, mantienen y finalizan un túnel PPTP. Después de que el túnel PPTP se ha establecido, los datos del usuario son transmitidos entre el cliente y el servidor PPTP. Estos datos son transmitidos en datagramas IP contenidos dentro de los paquetes PPP. 3.1. PPTP - PROTOCOLO DE TÚNEL PUNTO A PUNTO 41 Los datagramas IP son creados usando una versión modificada del protocolo GRE (Generic Routing Encapsulation); esta modificación consiste en incluir un identificador de los host que puede ser usado para controlar los privilegios de acceso y la capacidad de reconocimiento, la cual es usada para monitorear la velocidad de transferencia a la cual los paquetes están transmitiéndose en el túnel. La cabecera GRE es usada para encapsular el paquete PPP dentro del datagrama IP. La información útil del paquete (payload) es esencialmente el paquete PPP original enviado por el cliente. Dado que PPTP opera con un protocolo de capa 2, debe incluir una cabecera que depende del medio en el cual el túnel está transmitiendo, esta puede ser Ethernet, Frame Relay o PPP. La figura 3.1 de la página 41 muestra la estructura en los diferentes sitios de un túnel de un paquete IP usando encapsulación PPTP desde el sistema cliente hasta la LAN corporativa. Figura 3.1: Estructura de un Túnel PPTP. 3.1.2. Componentes de una VPN PPTP Servidores PPTP Un servidor PPTP tiene dos funciones básicas, la primera es actuar como el punto final del túnel PPTP y la segunda es reenviar los paquetes a y desde el computador en la red privada. Para reenviar los paquetes al computador destino, el servidor desencapsula el paquete PPTP obteniendo el nombre del computador o la dirección IP privada que se encuentra dentro de este. Una de 42 CAPÍTULO 3. PROTOCOLOS VPN las características de los servidores PPTP es la de poder filtrar únicamente el tráfico PPTP dependiendo de si esta condición aparece o no en el perfil del usuario, de esta manera, se puede restringir a un usuario para que se conecte a la red local o se conecte a Internet. Por lo general los servidores PPTP están en las premisas de la red corporativa, en algunos casos el servidor PPTP está ubicado dentro de la red privada y está protegido por el firewall (zona militarizada). Cuando esto ocurre, es necesario abrir el puerto TCP 1723, o si el firewall permite filtrar no por puerto sino por protocolo, se deberá permitir el protocolo GRE (puerto 47). Software Cliente PPTP Como se dijo anteriormente, si el NAS del ISP soporta PPTP no se necesita ningún software o hardware adicional en el extremo final del cliente, solamente que éste pueda establecer una conexión PPP. Por otro lado, si el ISP no soporta PPTP, el cliente deberá utilizar un software cliente PPTP en su computador para poder crear el túnel. La mayoría de los sistemas operativos cuentas con un cliente PPTP nativo. Servidores de Acceso a la Red Los servidores de acceso a la red también llamados servidores de acceso remoto o concentradores de acceso, son los encargados de soportar las conexiones PPP de una gran cantidad de clientes que se conectan a este por medio de enlaces telefónicos conmutados. Sus funciones van desde el establecimiento de la conexión física (modulación, demodulación, compresión de datos, corrección de errores, etc.) hasta labores de enrutamiento presentes en la capa 3 del modelo OSI. Dentro de un túnel PPTP se pueden encontrar NAS actuando como clientes PPTP o simplemente como un concentrador de acceso PPP. PPTP permite que las funciones realizadas por un servidor de acceso a la red (NAS) sean separadas usando una arquitectura cliente-servidor. Comúnmente, las siguientes funciones son implementadas por un NAS: 1. Brindar una interfaz física entre la red telefónica pública conmutada y los módems. Esto incluye conversiones A/D y D/A, conversiones síncronas a asíncronas y manipulaciones de flujos de datos. 2. Terminación lógica de enlaces PPP. 3. Autenticación de enlaces PPP. 3.1. PPTP - PROTOCOLO DE TÚNEL PUNTO A PUNTO 43 4. Sumarización de canales (protocolo multilink PPP). 5. Terminación lógica de protocolos de control de red (NCP). 6. Enrutamiento multiprotocolo y bridging. PPTP divide estas funciones entre los dos componentes que se definen en el protocolo, a saber PAC y PNS. El PAC o concetrador de acceso PPTP es el responsable de las funciones 1, 2 y algunas veces 3. El PNS o servidor de red PPTP, es el responsable de las funciones 3, 4, 5 y 6. El protocolo PPTPes única y exclusivamente implementado entre el PAC y el PNS. Un PAC puede atender muchos PNSs. Un único PNS puede ser asociado a muchos PACs [4]. 3.1.3. Estructura del Protocolo PPTP define una conexión de control entre cada pareja PAC-PNS la cual opera sobre TCP; y un túnel IP operando sobre la misma pareja PAC-PNS el cual es usado para transportar paquetes PPP con encapsulamiento GRE. 3.1.4. Conexión de Control Antes que el entunelamiento PPP ocurra entre un PAC y un PNS, una conexión de control debe ser establecida entre ellos. La conexión de control es una sesión TCP que mantiene control sobre la llamada e intercambia mensajes de información. Por cada pareja PAC-PNS debe existir una conexión de control y un túnel. La conexión de control es la responsable por el establecimiento, el manejo y la liberación de las sesiones que existen en el túnel, esto lo realiza atraves del puerto 1723. 3.1.5. Operación del Túnel PPTP necesita el establecimiento de un túnel por cada pareja PNS-PAC. Este túnel se utiliza para transportar todos los paquetes PPP de las diferentes sesiones involucradas en la pareja PNS-PAC. Una clave que se encuentra presente en la cabecera GRE indica qué paquetes PPP pertenecen a qué sesión. De ésta manera, los paquetes PPP son multiplexados y desmultiplexados sobre un único túnel existente entre una pareja PNS-PAC. El valor del campo Clave es definido dentro del proceso de establecimiento de la llamada. 44 CAPÍTULO 3. PROTOCOLOS VPN La cabecera GRE también contiene información de reconocimiento y de secuencialización con la cual se realiza control de congestión y detección de errores en el túnel. Los datos del usuario transportados por el protocolo PPTP son esencialmente paquetes de datos PPP. Los paquetes PPP son transportados entre el PAC y el PNS, encapsulados en paquetes GRE los cuales a su vez son transportados sobre IP. Los paquetes encapsulados PPP son esencialmente paquetes de datos PPP sin ningún elemento de tramado de medio específico. Los paquetes IP transmitidos sobre los túneles entre un PAC y un PNS tienen la estructura general que se muestra en la figura 3.2 de la página 44. Figura 3.2: Formato del Paquete IP. 3.1.6. Cabecera Mejorada GRE La cabecera GRE usada por PPTP es una versión ligeramente mejorada de la especificación estándar del protocolo GRE. La principal diferencia es la definición de un nuevo campo de reconocimiento de número (acknowledgment number ), usado para determinar si un paquete particular GRE o un conjunto de paquetes ha arribado al lado remoto del túnel. Esta capacidad de reconocimiento no es usada en conjunto con ningún tipo de retransmisión, en vez de eso, se usa para determinar la velocidad de transferencia a la cual los paquetes de datos del usuario son transmitidos sobre el túnel. 3.1.7. Cifrado en PPTP La trama PPP se cifra con el cifrado punto a punto de Microsoft (MPPE, Microsoft Point-to-Point Encryption) mediante claves de cifrado generadas en los procesos de autenticación MS-CHAP, MS-CHAP v2 o EAP-TLS. Los clientes de red privada virtual deben utilizar el protocolo de autenticación MSCHAP, MS-CHAP v2 o EAP-TLS para poder cifrar las cargas de las tramas PPP. PPTP aprovecha el cifrado PPP subyacente y encapsula una trama PPP cifrada anteriormente.Una llave de encriptación es generada usando una mínima parte del password situados en cliente y server. El RSA RC4 standard 3.2. L2TP - PROTOCOLO DE TÚNEL DE CAPA 2 45 es usado para crear estos 40 bits (128 dentro de EEUU y Canada) de llave de sesión basada en el password de un cliente. Esta llave es después usada para encriptar y desencriptar todos los datos intercambiados entre el server PPTP y el cliente. Los datos en los paquetes PPP son encriptados. El paquete PPP que contiene un bloque de datos encriptados es después metido en un datagrama IP para su enrutamiento. 3.1.8. Filtrado de Paquetes PPTP Esta opción incrementa el rendimiento y fiabilidad de la seguridad de red si esta activada en el servidor PPTP. Cuando esta activa acepta y enjuta solo los paquetes PPTP de los usuarios autorizados. Esto prevé el resto de paquetes entren el red privada y en el servidor de PPTP. 3.1.9. Control de Acceso a los Recursos de la Red Después de la autenticación, todo el acceso a la LAN privada continúa usando las estructuras de seguridad de la misma LAN. El acceso a recursos en devices NTFS o otros recursos de la red requieren los permisos correctos de cada usuario, tal como si estuvieses conectado físicamente dentro de la LAN. La existencia de un Controlador de Dominio por ejemplo, tiene validez en esta configuración. 3.2. L2TP - Protocolo de Túnel de Capa 2 L2TP [5] fue creado como el sucesor de PPTP y L2F. Las dos compañías abanderadas de cada uno de estos protocolos, Microsoft por PPTP y Cisco por L2F, acordaron trabajar en conjunto para la creación de un único protocolo de capa 2 y así lograr su estandarización por parte de la IETF. Como PPTP, L2F fue diseñado como un protocolo de entunelamiento usando para ello encapsulamiento de cabeceras. Una de las grandes diferencias entre PPTP y L2F, es que el entunelamiento de éste último no depende de IP y GRE, permitiéndole trabajar con otros medios físicos por ejemplo Frame Relay. Paralelamente al diseño de PPTP, L2F utilizó PPP para autenticación de usuarios accesando vía telefónica conmutada, pero también incluyó soporte para TACKCS+ y RADIUS. Otra gran diferencia de L2F con respecto a PPTP es que permite que un único túnel soporte más de una conexión. Hay dos niveles de autenticación 46 CAPÍTULO 3. PROTOCOLOS VPN del usuario: primero, por la ISP antes de crear el túnel; segundo, cuando la conexión está configurada y la autenticación la realiza el gateway corporativo. Todas las anteriores características de L2F han sido transportadas a L2TP. Como PPTP, L2TP utiliza la funcionalidad de PPP para proveer acceso conmutado que puede ser tunelizado a través de Internet a un sitio destino. Sin embargo, como se ha mencionado anteriormente, L2TP define su propio protocolo de entunelamiento basado en L2F permitiendo transporte sobre una amplia variedad de medios de empaquetamiento tales como X.25, Frame Relay y ATM. Dado que L2TP es un protocolo de capa 2, ofrece a los usuarios la misma flexibilidad de PPTP de soportar otros protocolos aparte de IP, tales como IPX y NETBEUI. Microsoft incluye L2TP a partir del sistema operativo Windows 2000, ya que las mejoras de L2TP con respecto a PPTP saltan a la vista. 3.2.1. Componenetes Básicos de un Túnel L2TP Concentrador de acceso L2TP (LAC): es un nodo que se encuentra en un punto extremo de un túnel L2TP. El LAC se encuentra entre un LNS y un sistema remoto y reenvía los paquetes a y desde cada uno. Los paquetes enviados desde el LAC hasta el LNS van tunelizados. En algunas ocasiones el sistema remoto actúa como un LAC, esto se presenta cuando se cuenta con un software cliente LAC. Servidor de Red L2TP (LNS): es un nodo que se encuentra en un punto extremo de un túnel L2TP y que interactúa con el LAC, o punto final opuesto. El LNS es el punto lógico de terminación de una sesión PPP que está siendo tunelizada desde un sistema remoto por el LAC. Túnel: un Túnel existe entre una pareja LAC-LNS. El túnel consiste de una conexión de control y de ninguna o más sesiones L2TP. El túnel transporta datagramas PPP encapsulados y mensajes de control entre el LAC y el LNS. 3.2.2. Topología de L2TP La figura 3.3 de la página 47 describe un escenario típico L2TP. El objetivo es tunelizar tramas PPP entre un sistema remoto o un cliente LAC y un LNS localizado en la LAN corporativa. El sistema remoto inicia una conexión PPP a través de la red de telefonía pública conmutada a un LAC. El LAC luego tuneliza la conexión PPP a través 3.2. L2TP - PROTOCOLO DE TÚNEL DE CAPA 2 47 Figura 3.3: Escenario Típico L2TP. de Internet o una nube Frame Relay o ATM a un LNS por donde accesa a la LAN remota corporativa. La dirección del sistema remoto es dada desde la LAN corporativa por medio de una negociación PPP NCP. La autenticación, autorización y acounting puede ser provista por el dominio de la red corporativa remota como si el usuario estuviera conectado a un servidor de acceso de la red directamente. Este escenario pertenece a una Sesión Obligatoria L2TP. En una Sesión Voluntaria, un cliente LAC (un host que corre L2TP nativo) puede también crear un túnel hasta la LAN corporativa sin usar un LAC externo. En este caso, el host tiene un software cliente LAC y previamente ha estado conectado a la red pública, tal como Internet. Una conexión PPP virtual es luego creada y el software cliente LAC hace un túnel hasta el cliente LNS. Como en el caso anterior, el direccionamiento, la autenticación, la autorización y el acounting pueden ser provistos por el dominio de la LAN corporativa remota. 3.2.3. Estructura del Protocolo L2TP L2TP utiliza dos tipos de mensajes, los mensajes de control y los mensajes de datos. Los mensajes de control son usados en el establecimiento, mantenimiento y finalización de túneles y llamadas. Los mensajes de datos son usados para encapsular tramas PPP que está siendo transportadas sobre el túnel. Los mensajes de control utilizan un canal de control confiable con el cual L2TP garantiza la entrega. Los mensajes de datos no son retransmitidos cuando ocurren pérdidas de paquetes. La figura 3.4 de la página 48 muestra la relación de las tramas PPP y los mensajes de control con los canales de datos y control L2TP respectivamente. Las tramas PPP son transportadas sobre un canal de datos no confiable y son encapsuladas primero por una cabecera L2TP y luego por una cabecera de transporte de paquetes que pueden ser UDP, Frame Relay o ATM. 48 CAPÍTULO 3. PROTOCOLOS VPN Los mensajes de control son enviados sobre un canal de control L2TP confiable, el cual transmite paquetes en banda sobre el mismo transporte de paquetes. Para esto se requiere que números de secuencia estén presentes en todos los mensajes de control. Los mensajes de datos pueden usar esos números de secuencia para reordenar paquetes y detectar pérdidas de los mismos. Figura 3.4: Relación Entre Tramas PPP y Mensajes L2TP. 3.2.4. Formato de una Cabecera L2TP Los paquetes L2TP para el canal de control y el canal de datos comparten un formato de cabecera en común, la figura 3.5 de la página 48 muestra el formato dicha cabecera L2TP: Figura 3.5: Formato de Cabecera L2TP. T: Message Type. 1 bit. Especifica si es un mensaje de control (0) o datos (1). 3.2. L2TP - PROTOCOLO DE TÚNEL DE CAPA 2 49 L: Used Length. 1 bit. Mensajes de Control deben tener configurado este bit. S: Used Sequence. 1 bit. Si está configurado, los campos Ns y Nr también deben estar configurados. Los mensajes de Control deben tener configurado este bit. O: Used Offset. 1 bit. Los mensajes de Control deben tener configurado este bit. P: Priority. 1 bit. Este debe recibir tratamiento especial en la cola local. Version: 4 bits. Indica la versión del protocolo L2TP. Debe ser configurado a 2, el valor 1 es reservado para detección L2F . Length: 16 bits. Opcional. El tamaño total del mensaje, este campo existe si L esta configurado. Tunnel ID: 16 bits. Indica el identificador de control de la conexión, los túneles son nombrados por identificadores locales. Session ID: 16 bits. Indica el identificador de la sesión dentro de un túnel. Ns: Sequence Number. 16 bits. Optional. Indica el número de secuencia para el mensaje de control o los datos actuales. Nr: Sequence Number Expected. 16 bits. Optional. Indica el número de secuencia esperado en el siguiente mensaje de control a ser recibido. Offset Size: 16 bits. Optional. Especifica el número de bytes donde la cabecera finaliza y comienzan los datos. Offset Pad: Relleno. Los componentes de mayor importancia son aquellos que definen el punto final de un túnel basado en este protocolo, entre los cuales se encuentra el concentrador de acceso L2TP (LAC) como parte del equipamiento del ISP, y el servidor de red L2TP (LNS). En el caso de los ISPs además del hardware implementado en el mismo se tiene en cuenta el software necesario requerido que puede ser reducido para el enlace de los clientes móviles, los cuales necesitaran negociar en la primera fase de autentificación de usuarios. Por otro lado, el LNS deberá ser atendido y mantenido por el personal de la empresa, mientras que estas actividades son responsabilidad del ISP con relación al LAC. 50 CAPÍTULO 3. PROTOCOLOS VPN 3.2.5. Autenticación en L2TP La autentificación de un usuario ocurre en 3 fases en L2TP. En la primera fase, el ISP puede usar el número de teléfono de la llamada recibida, el número llamado o el nombre del usuario determinado que el servicio de L2TP requiere y entonces iniciar un túnel de conexión al servidor de red apropiado. Cuando un túnel está establecido, el Concentrador de Acceso (LAC) del ISP asigna un nuevo ID de llamada para identificar la conexión con el túnel e inicia una sesión para devolver la información autentificada. El servidor de red corporativa emprende la segunda fase de autentificación para decidir si acepta o no la llamada. La llamada comienza indicando al ISP el método de autenticación o la información de autentificación de otros. El servidor de red usará esta información para decidir si acepta o rechaza la llamada. Después que la llamada ha sido aceptada, el servidor de red puede iniciar la tercera fase de autentificación a la capa de PPP, la cual aporta una amplia gama de opciones, incluidos CHAP, MS-CHAP, MS-CHAPv2 y el Protocolo de autenticación extensible EAP (Extensible Authentication Protocol), que admite mecanismos de autenticación de tarjetas token y tarjetas inteligentes. A través de estas 3 fases de autentificación L2TP garantiza que el usuario final, el ISP y el servidor de red están conectados con quien dicen ser. 3.2.6. Procesos de una Comunicación L2TP 1. Conexión y comunicación PPP: el cliente remoto usa el protocolo PPP para establecer la conexión con un IPS, la cual constituye la primer fase de autenticación L2TP. 2. Conexión de control L2TP (establecimiento del túnel): es la conexión inicial que hay que establecer entre el LAC y el LNS antes de que se puedan establecer sesiones. El establecimiento de la conexión de control incluye la autenticación de la entidad par por el LNS y la negociación de las facilidades soportadas. 3. Establecimiento de la sesión: una vez establecido el túnel entre el LAC y el LNS se establece una sesión dentro del túnel por cada conexión PPP existente entre LAC y LNS. Cada sesión se corresponde a un flujo de tramas PPP entre el LAC y el LNS. El LAC solicita al LNS que acepte una sesión para una llamada entrante y el LNS solicita al LAC que acepte una sesión para una llamada saliente. Seguidamente se completa el proceso de autenticación PPP entre el usuario remoto y el LNS. A 3.2. L2TP - PROTOCOLO DE TÚNEL DE CAPA 2 51 continuación se inicia el envío de paquetes NCP para elegir y configurar uno o más protocolos de red: Ej.: IPCP para indicar que el protocolo de red es IP. Ej.: ECP para encriptar las tramas de la conexión PPP entre el usuario remoto y el LNS. 4 Envío de datos de usuario: el usuario puede empezar el envío de datos a través del túnel. Estos datos van cifrados. 5 Descifrado de los datos por el LNS: el LNS recibe los datos, los descifra y los entrega a la red corporativa. Si el LNS envía información al usuario también la cifra antes de enviarla a través del túnel. 3.2.7. Comparativa Entre PPTP y L2TP Con PPTP, el cifrado de datos comienza después de que la conexión se procese (y, por supuesto, después de la autentificación PPP). Con L2TP, el cifrado empieza antes de la conexión PPP negociando una asociación de seguridad IPSec. Las conexiones PPTP usan MPPE, un método de cifrado basado en el algoritmo de encriptación Rivest-Shamir-Aldeman (RSA) RC-4, y usa llaves de 40, 56 o 128 bits. Las conexiones L2TP usan Data Encryption Standard (DES), con llaves de 56 bits para DES o tres llaves de 56 bits para 3-DES. Los datos se cifran en bloques (bloques de 64 bits para el caso de DES). Las conexiones PPTP requieren sólo autentificación a nivel de usuario a través de un protocolo de autentificación basado en PPP. Las conexiones L2TP / IPSec requieren el mismo nivel de autentificación a nivel de usuario y, además nivel de autentificación de máquina usando certificados digitales. PPTP requiere que el tránsito entre - redes sea una Internetwork IP. L2TP únicamente requiere que los medios de túnel proporcionen conectividad de punto a punto orientada al paquete. L2TP puede ejecutarse sobre IP (usando UDP), Frame Relay, X.25, ATM. PPTP sólo puede soportar un túnel entre dos puntos extremos. L2TP permite el uso de túneles múltiples entre puntos extremos. 52 CAPÍTULO 3. PROTOCOLOS VPN L2TP proporciona autenticación de túnel, mientras que PPTP no lo hace, sin embargo, cuando ya sea que PPTP o L2TP se ejecute sobre IPSec, la autenticación de túnel es proporcionada por IPSec para que no sea necesaria la autenticación de túnel nivel 2. 3.2.8. Problemas de L2TP A pesar de que L2TP ofrece un acceso económico, con soporte multiprotocolo y acceso a redes de área local remotas, no presenta unas características criptográficas especialmente robustas. Por ejemplo: Sólo se realiza la operación de autenticación entre los puntos finales del túnel, pero no para cada uno de los paquetes que viajan por él. Esto puede dar lugar a suplantaciones de identidad en algún punto interior al túnel. Sin comprobación de la integridad de cada paquete, sería posible realizar un ataque de denegación del servicio por medio de mensajes falsos de control que den por acabado el túnel L2TP o la conexión PPP subyacente. L2TP no cifra en principio el tráfico de datos de usuario, lo cual puede dar problemas cuando sea importante mantener la confidencialidad de los datos. A pesar de que la información contenida en los paquetes PPP puede ser cifrada, este protocolo no dispone de mecanismos para generación automática de claves, o refresco automático de claves. Esto puede hacer que alguien que escuche en la red y descubra una única clave tenga acceso a todos los datos transmitidos [5]. 3.3. IPSec (Internet Protocol Security ) El estandar reconocido para conexiones VPN En IPv4 no se desarrollaron mecanismos de seguridad inherentes al protocolo, por tanto, protocolos y procedimientos adicionales a IPv4 fueron necesarios para brindar servicios de seguridad a los datos. IPSec [6] es un conjunto de protocolos diseñados para proveer una seguridad basada en criptografía robusta para IPv4 e IPv6, de hecho IPSec está incluido en IPv6. 3.3. IPSEC (INTERNET PROTOCOL SECURITY ) 53 Entre los servicios de seguridad definidos en IPSec se encuentran, control de acceso, integridad de datos, autenticación del origen de los datos, protección antirepetición y confidencialidad en los datos. Entre las ventajas de IPSec están la modularidad del protocolo, ya que no depende de un algoritmo criptográfico específico. 3.3.1. Componentes de IPSec IPSecestá compuesto por tres componentes básicos: los Protocolos de Seguridad (AH y ESP), las Asociaciones de Seguridad (SAs) y las Bases de Datos de Seguridad; cada uno de los cuales, trabaja de la mano con los demás y ninguno le resta importancia al otro. Protocolos de Seguridad IPSec es un conjunto de protocolos que provee varios servicios de seguridad. Esos servicios de seguridad trabajan gracias a dos protocolos, el Authentication Header (AH) [4] y el Encapsulating Security Payload (ESP) [7], y también al uso de protocolos y procedimientos para el manejo de llaves criptográficas tales como IKE (Internet Key Exchange Protocol ) [8]. El éxito de una IKE es un protocolo que permite a dos entidades IPSec negociar dinámicamente sus servicios de seguridad y sus llaves de cifrado al igual que la autenticación de la sesión misma implementación IPSec depende en gran medida de una adecuada escogencia del protocolo de seguridad y de la forma como se intercambian las llaves criptográficas. AH es un protocolo que añade una nueva cabecera justo después de la cabecera IP original. AH provee autenticación del origen de los datos e integridad de los mismos, también provee integridad parcial para prevenir ataques de repetición. Este protocolo es apropiado cuando se requiere autenticación en vez de confidencialidad. ESP provee confidencialidad para el tráfico IP, al igual que autenticación tal cual como lo hace AH, pero sólo uno de estos servicios puede ser proporcionado por ESP al mismo tiempo. Asociaciones de Seguridad (SAs) Una SA define las medidas de seguridad que deberían ser aplicadas a los paquetes IP basados en quién los envía, hacia dónde van y qué tipo de carga útil ellos transportan. El conjunto de servicios de seguridad ofrecidos por una 54 CAPÍTULO 3. PROTOCOLOS VPN SA dependen de los protocolos de seguridad y del modo en el cual ellos operan definidos por la SA misma. La figura 3.6 de la página 54 muestra los dos modos en los cuales un protocolo de seguridad puede operar: transporte y túnel; la diferencia radica en la manera como cada uno de ellos altera el paquete IP original. El modo de transporte es diseñado para proteger los protocolos de capas superiores tales como TCP y UDP. En modo túnel, el paquete IP original se convierte en la carga útil de un nuevo paquete IP. Esto le permite al paquete IP inicial, ocultar su cabecera IP para que sea encriptada, considerando que el paquete IP externo sirve de guía a los datos a través de la red. Las SAs pueden ser negociadas entre dos entidades IPSec dinámicamente, para lo cual se basan en políticas de seguridad dadas por el administrador del sistema o estáticamente especificadas por el administrador directamente. Figura 3.6: Formato de Trama IPSec en Modo Transporte y Túnel. Una SA es únicamente identificada por tres parámetros: una dirección IP de destino, un identificador del protocolo de seguridad y un índice del parámetro de seguridad (SPI). La dirección IP de destino es aquella por la cual se identifica el punto final de la SA, el SPI es un número de 32 bits usualmente escogido por el punto final de destino de la SA y que sólo tiene significado local dentro 3.3. IPSEC (INTERNET PROTOCOL SECURITY ) 55 de ese punto destino. El identificador del protocolo de seguridad es un número con el cual se define cada uno de ellos, 51 para AH o 50 para ESP. Como se nota, la dirección IP del origen no se usa para definir una SA, esto dado que una SA se define entre dos hosts o gateways para datos enviados en una sola dirección, de aquí que, si dos dispositivos necesitan intercambiar información en ambas direcciones usando IPSec, requerirán de dos SAs, una para cada sentido. En modo de transporte, la cabecera IP original se mantiene intacta y una cabecera de seguridad es colocada entre la cabecera IP misma y su carga útil. La cabecera IP original es modificada para que el receptor del paquete entienda que antes de la carga útil se encuentra una cabecera de seguridad. En modo túnel, el paquete IP original se convierte en la carga útil de un paquete IP encapsulado. La cabecera IP nueva le indica al receptor del paquete que una cabecera de seguridad se encuentra a continuación de ella. 3.3.2. Bases de Datos de Seguridad IPSec trabaja con dos bases de datos de seguridad, en una se encuentran las políticas de seguridad y en la otra las asociaciones de seguridad, SPD (Security Policy Database) y SAD (Security Association Database) respectivamente. El administrador de políticas define un conjunto de servicios de seguridad para ser aplicados al tráfico IP tanto entrante como saliente. Esas políticas son guardadas en las SPDs y son usadas por las SAs cuando éstas se crean. Todas las SAs son registradas en la SAD. Bases de Datos de Asociaciones de Seguridad (SAD) La base de datos de asociaciones de seguridad almacena todos los parámetros concernientes a las SA’s, cada una de ellas tiene una entrada en la SAD donde se especifican todos los parámetros necesarios para que IPSec realice el procesamiento de paquetes IP que son gobernados por esa SA. Entre los parámetros que se encuentran en una SAD se tienen: El índice de parámetro de seguridad. El protocolo a ser usado por la SA (ESP o AH). El modo en el cual el protocolo es operado (túnel o transporte). Un contador numérico secuencial. 56 CAPÍTULO 3. PROTOCOLOS VPN La dirección IP fuente y destino de la SA. El algoritmo de autenticación y la llave de autenticación usadas. El tiempo de vida de la SA. Para el procesamiento de los paquetes IP entrantes una SA apropiada es encontrada en la SAD tal que concuerde con los siguientes tres valores: la dirección IP destino, el tipo de protocolo IPSec y el SPI. La dirección IP de destino y el tipo de protocolo IPSec son obtenidos de la cabecera IP y el SPI se obtiene de la cabecera AH o ESP. Si una SA es encontrada para el paquete IP entrante en mención, éste es procesado de acuerdo a los servicios de seguridad especificados. Luego se aplican al paquete todas las reglas descritas en la SPD para la SA que lo gobierna. Para el procesamiento de paquetes IP salientes, primero se aplica el procesamiento relacionado con la SPD. Si se encuentra una política para el paquete de salida que especifique que un procesamiento IPSec es necesario, la SAD es buscada para determinar si una asociación de seguridad ha sido previamente establecida. Base de Datos de Políticas de Seguridad (SPD) Una base de datos de políticas de seguridad es una lista ordenada de políticas de seguridad a ser aplicadas a los paquetes IP. Dichas políticas son en general reglas que especifican cómo los paquetes IP deben ser procesados. La SPD es mantenida por el administrador del dispositivo IPSec. Una entrada SPD tiene dos componentes: un juego de selectores y una acción. Los selectores clasifican un paquete IP sobre una acción. Un selector es un parámetro y el valor o rango de valores para este parámetro. Los parámetros generalmente se encuentran dentro de una de estas dos categorías: Aquellos que se encuentran dentro de un paquete IP, tales como, la dirección IP, número de protocolo y números de puertos de capas superiores. Aquellos que se derivan de la credencial de autenticación de una entidad de comunicación, tales como, una dirección de correo o un nombre distinguido DN (Distinguished Names) en certificados digitales. Diferentes operadores lógicos como AND, OR y NOT pueden ser aplicados a las políticas para combinar más de un selector. 3.3. IPSEC (INTERNET PROTOCOL SECURITY ) 57 Cuando un paquete IP contiene valores que concuerdan con los especificados por algún selector de una entrada, la acción que se especifica en dicha entrada es aplicada al paquete. Hay tres opciones: aplicar el servicio de seguridad IPSec, descartar el paquete IP o permitir que el paquete IP omita el procesamiento IPSec. La figura 3.7 de la páginas 57 muestra una entrada en una base de datos de políticas de seguridad para un paquete entrante y saliente, claramente se notan las partes que componen un selector como lo son los parámetros y su correspondiente valor, al frente se encuentra la acción que IPSec tomaría si los paquetes IP concuerdan con los valores de los selectores. Figura 3.7: Ejemplo de una Entrada de Base de Datos de Políticas de Seguridad. La SPD trata al tráfico saliente y entrante de manera separada, esto es, que se deben aplicar políticas de seguridad distintivas de entrada y de salida por cada interfaz de red. Cuando un paquete IP llega a una interfaz de red IPSec primero busca en la SAD la apropiada SA, cuando la encuentra, el sistema inicia los procesos SAD y SPD. Después del procesamiento SPD, el sistema reenvía el paquete al siguiente salto o le aplica procedimientos adicionales tales como las reglas de algún firewall. 58 CAPÍTULO 3. PROTOCOLOS VPN 3.3.3. Authentication Header (AH) El AH (Protocolo de Cabecera de Autenticación) es usado para propósitos de autenticación de la carga útil IP a nivel de paquete por paquete, esto es autenticación de la integridad de los datos y de la fuente de los mismos. Como el término autenticación indica, el protocolo AH se asegura que los datos entregados dentro del paquete IP son auténticos, es decir, que han arribado a su destino sin ninguna modificación. AH también provee de un mecanismo de protección opcional antirepetición de paquetes IP. Sin embargo, AH no protege la confidencialidad de los datos, es decir, no recurre a ningún tipo de cifrado de los mismos. El protocolo AH define cómo un paquete IP sin protección es convertido en uno nuevo que contiene información adicional y que brinda autenticación. El elemento fundamental usado por AH es una cabecera de autenticación como se muestra en la figura 3.8 de la pág. 59. El nuevo paquete IP es formado insertando la cabecera de autenticación, bien sea, después de la nueva cabecera IP o después de la cabecera IP original modificada según sea el modo en el cual trabaje la SA. Cuando la cabecera de autenticación es insertada, la cabecera IP que la precede deberá indicar que la próxima cabecera que se encuentra es la cabecera de autenticación y no la carga útil del paquete original. La cabecera IP realiza esta acción colocando el campo Protocolo en el valor 51 (valor de protocolo para AH). La cabecera de autenticación contiene seis campos: Next Header: identifica el tipo de protocolo de la carga útil del paquete IP original. Payload Len: especifica la longitud de la cabecera de autenticación (no confundir con cabecera original del paquete IP). Reserved: se encuentra reservado para uso futuro, actualmente debe ser puesto en 0. Security Parameter Index: es un número arbitrario de 32 bits. Este valor es usado junto con la dirección IP de destino y el tipo de protocolo IPSec (en este caso, AH) únicamente para identificar la SA para este paquete IP. Sequence Number: es un campo de 32bits que mantiene un incremento monotónico de la secuencia de paquetes IPSec. 3.3. IPSEC (INTERNET PROTOCOL SECURITY ) Figura 3.8: Cabecera de Autenticación AH. 59 60 CAPÍTULO 3. PROTOCOLOS VPN Authentication Data: es un campo de longitud variable que contiene el valor de chequeo de integridad ICV (Integrity Check Value) para este paquete IP. Hay que tener en cuenta, que la autenticación no puede ser aplicada sobre la cabecera entera del paquete IP, ya que algunos campos de la cabecera IP original cambian durante el transito por Internet. Esos campos son llamados Campos Mutables, y son: Type of service (TOS). Fragment offset. Fragmentation flags. Time to live (TTL). Header checksum. Para realizar el proceso de autenticación, el emisor calcula el ICV y lo ubica en el campo Authentication Data. El ICV es un valor hash computado sobre todos los campos que la autenticación incluye. La llave secreta es negociada durante el establecimiento de la SA. La autenticación de un paquete recibido es verificada cuando el receptor calcula el valor hash y lo compara con el ICV del paquete entrante. Si el paquete IP no es autenticado exitosamente entonces es descartado. 3.3.4. Encapsulating Security Payload - ESP El protocolo ESP (Encapsulating Security Payload ) provee autenticación, confidencialidad de los datos por medio de cifrado y una protección opcional antirepetición para los paquetes IP. La autenticación y el cifrado son también opcionales, pero al menos una de ellas debe ser empleada; de lo contrario, este protocolo carecería de fundamento. La confidencialidad es lograda por medio de técnicas de cifrado. Los algoritmos de cifrado empleados para los paquetes IP son definidos por la SA sobre la cual los paquetes son enviados. En este caso, ESP solamente presta el servicio de autenticación para el tráfico. Al igual que con AH varios campos adicionales son insertados en el paquete IP para que presten los servicios mencionados anteriormente. 3.3. IPSEC (INTERNET PROTOCOL SECURITY ) 61 Muchos de esos campos tienen el mismo significado que en AH, pero la diferencia es que éstos se encuentran a lo largo del paquete IP, algunos en la cabecera ESP, otros en el trailer ESP y otro esta en el segmento de autenticación ESP. La figura 3.9 de la pág. 61 muestra la conformación de un paquete IP después que se ha procesado con el protocolo ESP, se observan la ubicación de los campos dentro de cada uno de los segmentos del nuevo paquete. Figura 3.9: Nuevo Paquete IP Procesado con ESP. La cabecera ESP se encuentra después de la nueva cabecera IP o después de la cabecera IP original modificada, esto dependiendo del modo. El trailer ESP se encuentra al final del paquete IP original y el segmento de autenticación ESP se encuentra después del trailer. Si la autenticación no es aplicada, el segmento de autenticación ESP no es añadido. Si el cifrado es aplicado, cada una de las partes desde el final de la cabecera ESP hasta el final de el trailer ESP son encriptadas (ver figura 3.10 de la página 62). Al igual que en el protocolo AH, los campos SPI, Sequence Number, Next Header y Authentication Data, se encuentran definidos a lo largo del nuevo paquete IP. También se encuentran otros dos campos, el campo Padding es usado para rellenar los datos a ser encriptados y completar un límite de 4 bytes, por tanto este campo es de longitud variable. El campo Pad Len especifica la longitud del relleno para poder luego ser eliminado después de que los datos son desencriptados. 62 CAPÍTULO 3. PROTOCOLOS VPN Figura 3.10: Funcionamiento del Protocolo IPSec. Modo Transporte En el modo transporte, la cabecera ESP es insertada entre la cabecera IP y la carga útil original, y los segmentos trailer y de autenticación ESP son añadidos si son necesarios. Si el paquete está siendo sujeto de un segundo proceso de encapsulamiento ESP, la nueva cabecera ESP es puesta después de la primera y los segmentos trailer y de autenticación son añadidos después de los primeros campos de su mismo ítem. Dado que la cabecera IP original sigue sin alteraciones, el modo de transporte para el protocolo ESP, al igual que en AH, solamente puede ser usado entre hosts. El modo de transporte es el más usado cuando no es necesario ocultar o autenticar las direcciones IP tanto de la fuente como del destino. En la gráfica 3.11 de la pág. 63 se detalla la conformación del nuevo paquete IP usando ESP en modo transporte, además se muestra la parte del paquete que puede ser encriptada y la parte del paquete que puede ser autenticada. Modo Túnel En modo túnel, el paquete IP original enteramente es encapsulado dentro de un nuevo paquete IP. En la figura 3.12 de la pág. 63 se muestra cómo la nueva cabecera IP y la cabecera ESP son puestas al comienzo del paquete IP original, y los segmentos trailer y de autenticación ESP son añadidos al final del mismo. Si el túnel se encuentra establecido entre hosts, las direcciones IP 3.3. IPSEC (INTERNET PROTOCOL SECURITY ) 63 Figura 3.11: Protocolo IPSec en Modo Transporte. fuente y de destino, en la nueva cabecera IP pueden ser las mismas que en la cabecera original. Si el túnel se encuentra establecido entre dos gateways de seguridad, las direcciones en la nueva cabecera IP serán las direcciones de los gateways. Ejecutando ESP en modo túnel entre gateways de seguridad se puede lograr tanto confidencialidad como autenticación del tráfico en tránsito entre los dos gateways. Figura 3.12: Protocolo IPSec en Modo Túnel. 3.3.5. Internet Key Exchange - IKE Un concepto esencial en IPSec es el de asociación de seguridad (SA) que consiste en un canal de comunicación unidireccional que conecta dos nodos, a través del cual fluyen los datagramas protegidos mediante mecanismos criptográficos acordados previamente. Al identificar únicamente un canal unidi- 64 CAPÍTULO 3. PROTOCOLOS VPN reccional, una conexión IPSec se compone de dos SAs, una por cada sentido de la comunicación. Hasta el momento se ha supuesto que ambos extremos de una asociación de seguridad deben tener conocimiento de las claves, así como del resto de la información que necesitan para enviar y recibir datagramas AH o ESP. Tal como se ha indicado anteriormente, es necesario que ambos nodos estén de acuerdo tanto en los algoritmos criptográficos a emplear como en los parámetros de control. Esta operación puede realizarse mediante una configuración manual, o mediante algún protocolo de control que se encargue de la negociación automática de los parámetros necesarios; a esta operación se le llama negociación de SAs. El IETF ha definido el protocolo IKE para realizar tanto esta función de gestión automática de claves como el establecimiento de las SAs correspondientes. Una característica importante de IKE es que su utilidad no se limita a IPSec, sino que es un protocolo estándar de gestión de claves que podría ser útil en otros protocolos, como, por ejemplo, OSPF o RIPv2. IKE es un protocolo híbrido que ha resultado de la integración de dos protocolos complementarios: ISAKMP y Oakley. ISAKMP define de forma genérica el protocolo de comunicación y la sintaxis de los mensajes que se utilizan en IKE, mientras que Oakley especifica la lógica de cómo se realiza de forma segura el intercambio de una clave entre dos partes que no se conocen previamente [9]. El objetivo principal de IKE consiste en establecer una conexión cifrada y autenticada entre dos entidades, a través de la cual se negocian los parámetros necesarios para establecer una asociación de seguridad IPSec. Dicha negociación se lleva a cabo en dos fases: Fase 1 La fase común a cualquier aplicación, en la que ambos nodos establecen un canal seguro y autenticado. Dicho canal seguro se consigue mediante el uso de un algoritmo de cifrado simétrico y un algoritmo HMAC. Las claves necesarias se derivan de una clave maestra que se obtiene mediante un algoritmo de intercambio de claves Diffie-Hellman. Este procedimiento no garantiza la identidad de los nodos, para ello es necesario un paso adicional de autenticación. Existen varios métodos de autenticación, los dos más comunes se describen a continuación: 1. Secreto compartido: como su propio nombre indica, es una cadena de caracteres que únicamente conocen los dos extremos que quieren es- 3.3. IPSEC (INTERNET PROTOCOL SECURITY ) 65 tablecer una comunicación IPSec. Mediante el uso de cada extremo demuestra al otro que conoce el secreto sin revelar su valor; así los dos se autentican mutuamente. Para no debilitar la seguridad de este mecanismo de autenticación, debe configurarse un secreto distinto para cada par de nodos, por lo que el número de secretos crece muy rápidamente cuando aumenta el número de nodos. Por esta razón en entornos en los que se desea interconectar muchos nodos IPSec la gestión de claves es muy complicada. 2. Certificados digitales: esta implementación soluciona el problema anterior. En los estándares IPSec está previsto el uso de un método de autenticación que se basa en utilizar certificados digitales X509v3. El uso de certificados permite distribuir de forma segura la clave pública de cada nodo, de modo que éste puede probar su identidad mediante la posesión de la clave privada y ciertas operaciones de criptografía pública. La utilización de certificados requiere de la aparición de un elemento más en la arquitectura IPSec, la PKI (Infraestructura de Clave Pública). Fase 2 En la segunda fase el canal seguro IKE es usado para negociar los parámetros de seguridad específicos asociados a un protocolo determinado, en nuestro caso IPSec. Durante esta fase se negocian las características de la conexión ESP o AH y todos los parámetros necesarios. El equipo que ha iniciado la comunicación ofrecerá todas las posibles opciones que tenga configuradas en su política de seguridad y con la prioridad que se hayan configurado. El sistema receptor aceptará la primera que coincida con los parámetros de seguridad que tenga definidos. Asimismo, ambos nodos se informan del tráfico que van a intercambiarse a través de dicha conexión.En la figura 3.13 de la pág. 66 se representa de forma esquemática el funcionamiento del protocolo IKE y el modo en que se obtiene una clave de sesión, que es la que se utiliza para proteger las conexiones ESP o AH. 3.3.6. Arquitecuras VPN con IPsec Intranet VPN con IPsec En la actualidad, incluso las organizaciones más pequeñas disponen de una infraestructura informática que consta de una red local con varios PCs que usan una variedad de aplicaciones y protocolos para los que es imposible 66 CAPÍTULO 3. PROTOCOLOS VPN Figura 3.13: Negociación de Llaves en IKE. o muy costoso añadir mecanismos de seguridad. Sin embargo, todo el tráfico de esta red local está basado en IP o puede ser encapsulado en IP, de modo que la instalación de un gateway IPSec es la mejor solución para garantizar la seguridad de las comunicaciones de la oficina con el exterior. Como puede observarse en la figura 3.14 de la página 67, es habitual que las oficinas de una organización, debido a su elevado número, presenten una gran diversidad de tecnologías de acceso. Para grandes empresas con presencia multinacional y oficinas dispersas en muchos países esta diversidad será mayor, de forma que incluso podría plantearse la conexión de algunas oficinas directamente a través de Internet. En cualquier caso, IPSec garantiza la protección de las comunicaciones con independencia de la tecnología de acceso empleada. En el mercado están disponibles gateways IPSec comerciales que incorporan la posibilidad de configuración redundante y el establecimiento de 50.000 túneles simultáneos o más. Estas prestaciones son suficientes incluso para las organizaciones más grandes. Acceso Remoto con IPSec Mediante la instalación de un software en el PC, denominado cliente IPSec, es posible conectar remotamente equipo móviles (o PC remota) a la red local de la corporación de forma totalmente segura. El uso del estándar IPSec per- 3.3. IPSEC (INTERNET PROTOCOL SECURITY ) 67 Figura 3.14: IPsec Sobre Distintas Redes. mite garantizar la confidencialidad y la autenticación de las comunicaciones extremo a extremo, de modo que esta solución de acceso remoto se integra perfectamente con los sistemas de seguridad de la red corporativa. La variedad de sistemas operativos no supone dificultad alguna, ya que todos los sistemas operativos Windows a partir de su versión 2000, Solaris (a partir de versión 8), Linux, etc., incluyen este cliente IPSec. Asimismo, existen aplicaciones de cliente IPSec, tanto comerciales como de libre distribución. Incluso existe un cliente IPSec para Palm Pilot. Para garantizar la seguridad de esta solución y evitar intrusiones, como las que han afectado a Microsoft y otras corporaciones en el pasado, es necesario complementar la tecnología IPSec con el uso, en los equipos remotos, de cortafuegos personales y autenticación fuerte mediante certificados digitales X.509 residentes en tarjeta inteligente. Desde el punto de vista del administrador de la red informática de la corporación, los requisitos prioritarios serán la facilidad de gestión y la necesidad de autenticar de forma fiable a cada usuario. La integración de IPSec con una infraestructura de clave pública (PKI) proporciona una respuesta adecuada a estos requisitos. Extranet VPN con IPSec En un escenario Extranet VPN la interoperabilidad que ofrece el estándar IPSec es una ventaja clave frente a otras soluciones; cada empresa comprará 68 CAPÍTULO 3. PROTOCOLOS VPN equipos de fabricantes distintos, pero todos ellos podrán conectarse de forma segura utilizando IPSec como lenguaje común, dado que es una tecnología avalada por estándares internacionales, garantiza la interoperabilidad entre los equipos de distintos fabricantes y proporciona el más alto nivel de seguridad gracias a las técnicas criptográficas más modernas. Una Extranet VPN puede llevarse a cabo perfectamente usando IPSec; para ello se requiere la instalación de un gateway IPSec en cada uno de los puntos de presencia de la extranet, mientras que el equipamiento de los usuarios remotos se reduce a un PC portátil (o PC remota) con un cliente IPSec. 3.3.7. Limitaciones de IPSec Si bien podría lograr VPN seguras, la conectividad remota y de sitio a sitio ha demostrado ser insuficiente en una gran cantidad de escenarios, debido principalmente a las siguientes limitaciones: IPSec VPN es costoso, las instalaciones de clientes consumen tiempo, carecen de la flexibilidad necesaria para proporcionar seguridad de acceso remoto a empleados, clientes y socios. Para los usuarios remotos que intentan conectarse a los recursos corporativos, IPSec VPN puede plantear dificultades en que se les permita cruzar algunos cortafuegos corporativo. Esto no es un problema sólo cuando la mayoría de las empresas tienen sus mismos puertos abiertos, entrantes y salientes, que pueden no ser siempre el caso. IPSec VPN son programas completos y, por tanto, son grandes, generalmente de 0,1 a 8 megabytes. Esto significa que la descarga es lenta y que no funcionan bien en pequeños dispositivos como PDAs y Blackberry. 3.4. VPN-SSL Combinar seguridad y sencillez es lo que prometen las Redes Virtuales Privadas basadas en SSL La tecnología VPN-SSL (ó SSL-VPN ) nació de las necesidades de las empresas que surgen a causa de estos problemas y limitaciones. Esto significó un cambio de paradigma en la propia percepción de la seguridad, acceso remoto, el objetivo de una VPN de acceso remoto ya no era sólo la construcción de los túneles de acceso seguro entre dispositivos remotos y redes de confianza, 3.4. VPN-SSL 69 sino proporcionar a los usuarios autenticados autorizados y con acceso a la información confidencial. La introducción de VPN-SSL trajo una revolución hacia la transparencia en la entrega de soluciones de acceso remoto VPN. Los objetivos iniciales de la primera generación de VPN-SSL son facilitar el acceso a través de cortafuegos y una solución de acceso remoto que trabaja desde cualquier lugar independientemente de los dispositivos NAT’s y un clientes VPN’s. Tradicionalmente IP (IPSec) entre otras, requiere la instalación de software cliente un equipo remoto para poder establecer una conexión, mientras que SSL-VPN cliente no necesita instalación y ofrece la funcionalidad de un VPN clientes o Web VPN. Los usuarios pueden tener acceso a las aplicaciones o archivos compartidos sólo con navegadores web estándares, esta es sin dudas una de las mayores ventajas de esta tecnología (se dice que si existe conexión HTTPS entonces debe funcionar ). Para las empresas, SSL-VPN ofrece versatilidad, facilidad de uso, seguridad y acceso remoto desde cualquier lugar a socios y clientes, usando los más variados dispositivos como computadoras portátiles, dispositivos móviles, equipos de casa y público. Las implementaciones por software más comunes bajo esta tecnología son SSTP (Secure Socket Tunneling Protocol) de Microsoft y OpenVPN del movimiento Open Sourse, mientras que por hardware hoy en día existen muchos dispositivos que la soportan. 3.4.1. SSL/TLS Secure Sockets Layer/Transport Layer Security TLS (Transport Layer Security - Seguridad de la Capa de Transporte) es el sucesor del SSL (Secure Sockets Layer ). Ambos protocolos se utilizan para proporcionar comunicaciones seguras en Internet, usando un modelo de autenticación y privacidad de la información entre extremos sobre Internet mediante criptografía. Esto es fundamental para mantener la seguridad en el comercio vía Internet. SSL fue diseñado de manera modular (extensible), con soporte para compatibilidad hacia delante y hacia atrás y negociación entre las partes (peer-topeer). La versión 3.0 del SSL fué desarrollada por Netscape en 1996, que fué la base para desarrollar la versión 1.0 del TLS, protocolo estándar IETF definido en el RFC 2246 por primera vez. El objetivo de Netscape era crear un canal de comunicaciones seguro entre un cliente y un servidor que fuese independiente del sistema operativo usado por ambos, y que éstos se beneficiaran de forma dinámica y flexible de los nuevos adelantos en materia de cifrado, a medida de 70 CAPÍTULO 3. PROTOCOLOS VPN que éstos estuvieran disponibles. SSL fue diseñado como un protocolo seguro de propósito general, existen pequeñas diferencias entre SSL 3.0 y TLS 1.0, pero el protocolo permanece sustancialmente igual. El término SSL según se usa en este trabajo, se aplica a ambos protocolos (SSL y TLS) a menos que el contexto indique lo contrario. Normalmente, en SSL sólo el servidor es autenticado (es decir, se garantiza su identidad) mientras que el cliente se mantiene sin autenticar; la autenticación mutua requiere un despliegue de infraestructura de claves públicas (PKI) para los clientes. Esta tecnología permite permiten a las aplicaciones clienteservidor comunicarse de una forma diseñada para prevenir escuchas (eavesdropping), la falsicación de la identidad del remitente y mantener la integridad del mensaje. Las primeras implementaciones de SSL sólo podían usar claves simétricas de 40 bits como máximo, ya que el gobierno de los EEUU imponía restricciones sobre la exportación de tecnología criptográfica. Esta clave era de 40 bits ya que las agencias de seguridad nacional americanas podían atacarla mediante fuerza bruta y poder leer así el tráfico cifrado, mientras que los posibles atacantes con menores recursos no podrían leerlo. Finalmente, después de diferentes juicios y la aparición de mejores productos criptográficos diseñados en otros países, se rebajaron las restricciones de exportación de tecnología criptográfica, desapareciendo casi por completo la limitación de claves de 40 bits. Actualmente se usan claves de 128 bits, o incluso más, para las claves de cifrado simétricas. Las implementaciones actuales proporcionan las siguientes opciones: Para criptografía de clave pública: RSA, Diffie-Hellman, DSA (Digital Signature Algorithm) o Fortezza. Para cifrado simétrico: RC2, RC4, IDEA (International Data Encryption Algorithm), DES (Data Encryption Standard), Triple DES o AES (Advanced Encryption Standard). Con funciones hash: MD5 o de la familia SHA. 3.4.2. Arquitectura de SSL SSL trabaja sobre el protocolo TCP y por debajo de protocolos como HTTP, IMAP, LDAP, etc., y puede ser usado por todos ellos de forma transparente para el usuario. Opera entre la capa de transporte y la capa de sesión del modelo OSI (o entre la capa de transporte y la de aplicación del modelo 3.4. VPN-SSL 71 TCP-IP) y está formado, a su vez, por dos capas y cuatro componentes bien diferenciados (ver figura 3.15 de la página 71). Figura 3.15: Estructura de Protocolos del Protocolo SSL. El protocolo de registro (Record Protocol) se encarga de encapsular el trabajo de los elementos de la capa superior, construyendo un canal de comunicaciones entre los dos extremos objeto de la comunicación. El verdadero corazón de SSL está en el protocolo de Handshake que es el encargado de intercambiar la clave que se utilizará para crear un canal seguro mediante un algoritmo eficiente de cifrado simétrico. También es responsabilidad de este protocolo coordinar los estados de ambos extremos de la transmisión. El protocolo de Alerta es el encargado de señalizar problemas y errores concernientes a la sesión SSL establecida. Por último, el Change Cipher Spec Protocol está formado por un único mensaje consistente en un único byte de valor 1 y se utiliza para notificar un 72 CAPÍTULO 3. PROTOCOLOS VPN cambio en la estrategia de cifrado. 3.4.3. Funcionamiento Básico de SSL El protocolo de Handshake es el encargado de negociar los atributos de la sesión SSL que permitirán construir un canal seguro de comunicaciones. En primer lugar el cliente envía un mensaje Client Hello al servidor el cual debe de responder con un mensaje similar de Server Hello. Estos mensajes son utilizados para dar a conocer ciertas características de ambos: versión del protocolo usada, algoritmos de cifrado conocidos y preferidos, funciones hash y métodos de compresión a utilizar. En este momento, además, el servidor asigna un identificador a la sesión y se hace constar la fecha y hora de la misma. Generalmente el servidor, que es el segundo en contestar, elige los algoritmos más fuertes de entre los soportados por el cliente. Si no hay acuerdo en este punto se envía un mensaje de error y se aborta la sesión. A continuación del mensaje de Server Hello, el servidor puede envíar su Certificado (típicamente un X.509) de forma que sea autenticado por el cliente y que, además, este reciba su clave pública. Si no es así, le envía al cliente su clave pública mediante un mensaje de Server Key Exchange (o también si ha enviado su Certificado y este es únicamente para firma y autenticación). Está claro que al menos uno de estos dos mensajes es necesario para establecer el canal seguro. Un último mensaje que puede enviar el servidor en esta fase de negociación es una solicitud de certificado al cliente. Por último, la fase concluye con el envío, por parte del servidor, de un mensaje de Server Hello Done. Si el Servidor ha solicitado su certificado al cliente, este debe de responder con él o con un mensaje de alerta indicando que no lo posee. A continuación se envía un mensaje de Client Key Exchange donde el cliente envía al servidor la clave maestra cifrada mendiante la clave pública, además un número aleatorio generado por él y que actuará como clave del algoritmo simétrico acordado para el intercambio de datos. Por último, si el cliente ha enviado un certificado y éste tiene capacidades de firma, enviará adicionalmente un mensaje de Certificate Verify firmado digitalmente con objeto de que el servidor pueda verificar que la firma es válida. En este punto el cliente da por concluida la fase mediante un mensaje de Change Cipher Spec seguido, inmediatamente, de un mensaje de Finished que ya va cifrado mediante los algoritmos y claves recién negociados. En respuesta, el servidor envía su propio mensaje de Change Cipher Spec y, a continuación, su mensaje de Finished cifrado con los parámetros negociados. 3.4. VPN-SSL 73 En este momento finaliza la fase de Handshake y cliente y servidor pueden intercambiar datos libremente. Podemos ver un esquema de este intercambio de mensajes en la figura 3.16 de la página 73: Figura 3.16: Intercambio de Mensajes en SSL. Durante la transmisión de datos los mensajes el protocolo de registro se encarga de fragmentar y comprimir cada mensaje, para luego aplicarle una función hash a cada uno de los bloques, proceso con el cuál pretende asegurar la integridad de los mismos. Por último realiza el cifrado de los datos y los envia.al otro extremo donde el mismo protocolo realizará un proceso inverso de reconstrucción. Una sesión SSL puede comprender múltiples conexiones. Adicionalmente, se pueden establecer múltiples sesiones SSL simultaneas, cada una de ellas es controlada por una máquina de control de estados. 74 CAPÍTULO 3. PROTOCOLOS VPN 3.4.4. Aplicaciones e Implementaciones de SSL Una de las ventajas de SSL es que es independiente del protocolo de aplicación, ya que es posible ubicarlo por encima del mismo en forma transparente. Este protocolo tiene multitud de aplicaciones en uso actualmente, la mayoría de ellas son versiones seguras de programas que emplean protocolos que no lo son. Hay versiones seguras de servidores y clientes de protocolos como el HTTP (HTTPS en este caso), NNTP, LDAP, IMAP, POP3, etc. Existen multitud sSnde implementaciones del protocolo, tanto comerciales como de libre distribución, una de las más populares es la biblioteca OpenSSL, que constituye la base del software OpenVPN, disponible bajo licencia GNU. El lenguaje Java también incluye soporte para el protocolo con la Extensión de Sockets Seguros de Java (JSSE). Cada una de las aplicaciones SSL tiene las siguientes propiedades: Privada: después de un proceso inicial de handshake en el cual se define una clave secreta, se envía la información encriptada por medio de algún método simétrico (DES, RC4). Segura: aporta identidad de cada extremo, es autenticada usando métodos de cifrado asimétricos o de clave pública (RSA, DSS). Confiable: el transporte del mensaje incluye un control de la integridad del mismo usando una MAC cifrada con SHA y MD5. 3.4.5. Conceptos y Técnicas de VPN-SSL El acceso remoto seguro basado en SSL aglutina diversas tecnologías, basados en cuatro conceptos básicos: Proxy: todos los dispositivos y software SSL-VPN ofrecen al menos la función de proxy de páginas Web. Cuando el usuario se conecta a un servidor Web, éste descarga la página solicitada y se la envía a su navegador sobre una conexión SSL. Conversión de aplicaciones: las cosas se complican cuando se trata de cualquier otros datos que no sean una página Web. Surge entonces la conversión de aplicaciones. Cuando, por ejemplo, los dispositivos SSLVPN han de tratar los servidores de ficheros, por lo general hablará 3.4. VPN-SSL 75 Figura 3.17: Advertencia de Instalación de Plugins en Internet Explorer. como protocolo nativo CIFS (de Microsoft), o FTP. Por ello, habrá de convertirlos a HTTP y HTML, a fin de que el usuario final vea el servidor de ficheros como si fuera una página Web; es decir, la aplicación se websifica. Port forwarding: pero la conversión de aplicaciones sólo funciona efectivamente con ciertas transacciones. Se impone, entonces, la técnica port forwarding, que requiere en el sistema cliente una herramienta del tipo Java o ActiveX (Pluning de Microsoft). Consiste en dedicar a cada aplicación un puerto determinado en el que se tunelizan los paquetes dentro de conexiones SSL. El server SSL-VPN los abre y los envía al servidor de aplicaciones. Se trata de una técnica muy efectiva pero muestra serias limitaciones, por ejemplo, sólo funciona con aplicaciones muy predecibles en cuanto a sus requerimientos y necesidades de conectividad de red. La figura 3.17 de la página 75 muestra un mensaje de advertencia en el navegador Internet Explorer, antes la instalación de un ActiveX correspondiente al software cliente de un dispositvo de la empresa Cisco. Extensión de red: conecta el sistema del usuario final a la red corporativa mediante controles de acceso exclusivamente basados en información de nivel de red, como dirección IP de destino y número de puerto. Dependen del sistema operativo que se utiliza y requiere acceso administrativo al sistema local. Las extensiones de red SSL-VPN corren en lo alto del protocolo SSL, sacrificando la mayor seguridad que ofrece IPSec. 76 CAPÍTULO 3. PROTOCOLOS VPN 3.4.6. Inconvenientes de las VPN-SSL Secure Sockets Layer (SSL) para realizar el acceso remoto se basa en un concepto simple, utilizar la encriptación y capacidades de autenticación incorporado en todos los navegadores web para proporcionar acceso remoto seguro a aplicaciones corporativas. Una ironía de las VPN-SSL es que su activo más importante es su aspecto más problemático. La libertad y la movilidad del navegador significa que los usuarios puedan ejecutar aplicaciones y recursos de la red de acceso desde cualquier parte, un kiosco del aeropuerto, un café Internet, incluso la casa de un amigo. Mientras que la libertad puede aumentar la productividad, también expone su red a un número ilimitado de equipos de seguridad cuyo estado es desconocido. Su red puede experimentar un mayor riesgo de virus, troyanos y otros códigos maliciosos, tales como capturadores de teclado [10]. El acceso basado en navegador tiene otras complicaciones también como la de autenticación de usuario, por defecto está limitado a un nombre de usuario y contraseña, que es notoriamente inseguro. Por último, los costos de los dispositvos VPN-SSL (Hardware) son elevados, aunque exista una variedad de precios entre las opciones que ofrecen los distintos fabricantes, existe una gran diferencia de precios con otros dispostivos que manejan protocolo como L2TP e IPSec. Esta última desventaja o inconveniente se podria decir que es relativa, porque una implementación IPsec puede ser redituable en costos de hardware pero costosa en tiempo de configuración y mantenimiento. 3.4.7. Ventajas de SSL-VPN sobre IPSec Las principales ventajas son las siguientes: SSL-VPN son a menudo mucho menos costoso que el despliegue de redes VPN IPSec. Esto se debe a que, con clientes SSL-VPN, no hay costo de licencias de software de propiedad del cliente, sin gastos generales de administración involucrados en la instalación de software cliente, y menos tiempo necesario para el apoyo técnico de clientes debido a la facilidad de uso [11]. SSL-VPN permite a las organizaciones a crear la identidad del usuario de acceso basado en políticas, que ofrece acceso a la red granular a los empleados, socios y clientes sobre la base de la identidad del usuario y el perfil de trabajo [11]. 3.4. VPN-SSL 77 SSL utiliza el puerto TCP 443, que normalmente se abre en los cortafuegos, trabajará a través de firewalls sin ninguna configuración especial [10]. IPSec usa puertos UDP específicos, si no están en uso, estos puertos estarán bloqueados por el servidor de seguridad. SSL-VPN también puede proporcionar una ventaja de seguridad. Cuando el acceso está restringido a aplicaciones específicas, las posibilidades de acceso no autorizado se reducen. Hoy en día, SSL-VPN ofrece también protección de datos en el navegador, después de que el usuario cierra la sesión, a fin de eliminar la información sensible que pueda haber sido utilizado durante el curso de un acceso seguro. Esto incluye la eliminación de cualquier caché las credenciales de usuario y la eliminación de la cola o temporal en caché de archivos. Algunos SSL-VPN pueden ser configuradas para evitar que un usuario realize copias locales de la información sensible de la empresa en un equipo de trabajo. Conexiones pobres, intermitentes e interrumpidas no causan la caída de la VPN. Permite mediante un certificado digital, usar su navegador para verificar la autenticidad del sitio y comunicarse con él en forma segura. 3.4.8. Software VPN-SSL Aunque se emplea SSL para crear túneles no existe un estándar que especifique cómo funciona una VPN-SSL, sino que hay distintas implementaciones que funcionan bastante bien. Entre las más interesantes se encuentran OpenVPN del movimieto Open Source y el protocolo SSTP (Secure Socket Tunneling Protocol) de Microsoft. OpenVPN OpenVPN es una solución de conectividad basada en software: SSL (Secure Sockets Layer) bajo la librería OpenSSL y VPN Virtual Private Network (Red Virtual Privada). Soporta diferentes medios de autenticación como certificados, smart cards, y / o usuarios / contraseñas, y permite políticas de control de acceso para usuarios o grupos usando reglas de firewall aplicadas a 78 CAPÍTULO 3. PROTOCOLOS VPN las interfaces virtuales de la VPN. Esta solución resulta una muy buena opción en tecnologías Wi-Fi (redes inalámbricas EEI 802.11) y soporta una amplia configuración, entre ellas balanceo de cargas entre otras. Está publicado bajo licencia de código libre (Open Source). Es una solución multiplataforma que ha simplificado mucho la configuración de VPN’s dejando atrás los tiempos de otras soluciones difíciles de configurar como IPSec haciéndola más accesible para gente inexperta en este tipo de tecnología [12]. Esta arquitectura está implementada sobre la capa 2 y capa 3 del modelo OSI, de esta manera los túneles de OpenVPN pueden transportar tramas Ethernet, paquetes IPX, y los paquetes NETBIOS del navegador (Explorer) de la red Windows, que son un problema en la mayoría de las otras soluciones VPN. Algunas de características de OpenVPN son: Protección de sesión con el cortafuego interno: en una sesión conectada con la oficina central de su compañía mediante un túnel VPN puede cambiar el setup de su red en su ordenador portátil, para enviar todo su tráfico de la red a través del túnel. Una vez que OpenVPN haya establecido un túnel, el cortafuego central en la oficina central de la compañía puede proteger el ordenador portátil, aún cuando él no sea una máquina local. Solamente un puerto de la red se debe abrir de forma local para trabajar la sesión. El cortafuego central protege al empleado siempre que él o ella esté conectado a través del VPN. Las conexiones de OpenVPN pueden ser establecidas a través de casi cualquier cortafuego, se dice que “si tienes acceso a Internet y si puedes tener acceso a la Web, los túneles de OpenVPN deben poder trabajar”. Soporte de Proxy y configuraciones: OpenVPN tiene soporte de Proxy y se puede configurar para funcionar como un servicio de TCP o de UDP, y como servidor o cliente. Como servidor, OpenVPN espera simplemente hasta que un cliente solicita una conexión, mientras que como cliente, intenta establecer una conexión según su configuración. Apertura de un solo puerto en el cortafuegos para permitir conexiones entrantes: desde OpenVPN 2.0, el modo especial del servidor permite conexiones entrantes múltiples en el mismo puerto del TCP o del UDP, mientras que todavía usa diversas configuraciones para cada 3.4. VPN-SSL 79 Figura 3.18: Interfaz GUI de OpenVPN Para Sistemas Operativos Windows. conexión. Los interfaces virtuales permiten reglas muy específicas del establecimiento de una red y del cortafuegos donde todas las reglas, restricciones, mecanismos de la expedición, y conceptos como NAT se pueden utilizar con los túneles de OpenVPN. Alta flexibilidad con posibilidades extensas de lenguaje interpretado (scripting): OpenVPN ofrece numerosos puntos durante la conexión para la ejecución de los scripts individuales. Estos scripts se pueden utilizar para una gran variedad de propósitos de la autentificación, recuperación en caso de fallos (failover) entre otros. Soporte transparente y alto rendimiento para IP’s Dinámicas: si se usa OpenVPN, no hay necesidad de utilizar más IPs estáticas de cualquier lado del túnel. Ambas puntos finales del túnel pueden tener acceso barato de ADSL con el IPs dinámicas y los usuarios no notarán un cambio del IP de cualquier lado. Las sesiones del Terminal Server de Windows y las sesiones seguras de Shell (SSH) parecerán congeladas solamente por algunos segundos, pero no terminarán y continuarán con la acción solicitada después de una corta pausa. Instalación simple en cualquier plataforma: la instalación y el uso son increíblemente simples. Especialmente, si se ha intentado instalar IPSec con diversas configuraciones, se apreciará la facilidad de instalación de OpenVPN. En plataformas Windows se cuenta con una interfaz gráfica muy amiglable que permite el monitero de la Red Privada Virtual, la cual puede ser visualizada en la imagen 4.27 de la página 119. 80 CAPÍTULO 3. PROTOCOLOS VPN Diseño modular: el diseño modular consta de un alto grado de simplicidad en seguridad y el establecimiento de una red virtual es excepcional. Ninguna otra solución VPN puede ofrecer la misma gama de posibilidades a este nivel de seguridad. Con respecto a la estabilidad, OpenVPN es un programa muy robusto y ofrece la posibilidad de implementar esquemas de servidores redundantes y con balance de carga [13]. Las principales desventajas de OpenVPN son las que se mencionan seguidamente: Todavía existe poca gente que conoce como usar OpenVPN. Al día de hoy sólo se puede realizar conexiones entre computadoras. Pero ésto empieza a cambiar, dado que ya existen compañías desarrollando dispositivos con clientes OpenVPN integrados. No tiene compatibilidad con IPSec que justamente es el estándar actual para soluciones VPN [12]. SSTP (Secure Socket Tunneling Protocol) El protocolo Secure Socket Tunneling Protocol (SSTP) de Microsoft es, por definición, un protocolo de capa de aplicación que encapsular tráfico PPP por un canal SSL del protocolo HTTPS. El uso de habilita la compatibilidad con métodos de autenticación seguros, como EAP-TLS. El empleo de HTTPS significa que el tráfico pasa a través del puerto 443 (TCP), un puerto que se suele usar para el acceso web y eliminando así los problemas asociados con las conexiones VPN basadas en L2TP o PPTP (conocido error 800 - problemas de conectividad ), que pueden ser bloqueadas por algunos proxies Web, firewall y routers en las configuraciones de los carrier’s. La Capa de sockets seguros (SSL) proporciona seguridad de nivel de transporte con negociación, cifrado y comprobación de integridad de claves mejorados. SSTP se basa en el protocolo SSL en lugar de PPTP o IPSec, a pesar de que está estrechamente relacionado con SSL, no se puede hacer una comparación directa entre SSL y SSTP, porque SSTP es sólo una diferencia de protocolo de túnel SSL. Existen muchas razones para elegir SSL y no IPSec como base para SSTP, las ventajas mensionadas en el apartado anterior son validas también para este protocolo, otras razones son: 3.4. VPN-SSL 81 Debido a que IPSec se ha desarrollado para conexión seguras de sitio a sitio, es probable que presente problemas para usuarios remotos que intentan conectarse desde un lugar con un número limitado de direcciones IP. IPSec no soporta dinamic DNS. Esta tecnología sólo está soportada por Windows Server 2008 y Windows Vista Service Pack 1; existen también paquetes de software como IAG 2007, un software que funciona como punto de bastión en interfaces de entrada a redes LAN’s Corporativas [13]. Funcionamiento Básico de SSTP Cuando se inicia una conexión VPN-SSTP sucede lo siguiente: 1. EL software cliente (SSTP client) establece una conexion TCP con el servidor SSTP entre un puerto dinámico del cliente y el puerto 443 del servidor. 2. El cliente SSTP envía un SSL Client-Hello, indicando que el cliente quiere crear una sesión SSL con el servidor. 3. EL servidor SSTP envía su certificado de máquina al cliente. 4. El Cliente SSTP valida el certificado de equipo, determina el método de cifrado para la sesión SSL, genera una clave para la misma y cifra esta con la clave pública del certificado del servidor SSTP, y a continuación lo envía al servidor. 5. El servidor SSTP descifra la clave de sesión SSL mandada por el cliente con su clave privada. Todas las comunicaciones posteriores se realizan ya con la nueva clave negociada. 6. El cliente SSTP envía una petición de HTTP sobre SSL al servidor de SSTP. 7. El cliente SSTP negocia un tunel SSTP con el servidor SSTP. 8. El cliente SSTP negocia una conexion PPP con el servidor SSTP. Esta negociación incluye las credenciales de autenticación del usuario, el metodo de autenticación y la configuracion de IPv4 e IPv6. 9. El cliente SSTP comienza a enviar tráfico IPv4 o IPv6 sobre el enlace PPP. 82 CAPÍTULO 3. PROTOCOLOS VPN Capítulo 4 Implementaciones VPN’s 4.1. Introducción En este capítulo se describen cómo se llevaron o a cabo las tareas de implementación de Redes Virtuales Privadas (VPN) en el Instituto de Obra Social de la Provincia de Corrientes (I.O.S.COR). Esta institución presta servicios de cobertura médica como así también apoyo social a los empleados provinciales desde 1977. Hoy en día cuenta con más de 160.000 afiliados, 36 delegaciones ubicadas en distintas ciudades del interior de la provincia, bocas de expendio en puntos estratégico de la capital y una Casa Central ubicada en la calle San Juan 1060, donde se concretan sus funciones elementales como el procesamiento de todos sus datos. La institución posee una red LAN con más de 170 estaciones (PC’s) en el edificio de su Casa Central, y otras 60 estaciones ubicados en delegaciones, los cuales estaban conectadas mediante una VPN que funcionaba bajo el protocolo PPTP (Protocolo de Tunel Punto a Punto). Ante la necesidad de conectar nuevas delegaciones y agregar estaciones de trabajo en el edificio surgieron los siguientes incovenientes: en un intento de ampliar la VPN se detectó que el dispositivo Server de la red (VPN) se encontraba saturado con un número de conexiones que superaban el límite de capacidad descripto en sus especificaciones técnicas. Además, la red LAN no podía asignar nuevas direcciones IP’s debido a la gran cantidad de estaciones de trabajo conectadas, lo que implicaba una división de la misma en segmentos de distinto dominio. Se llevó a cabo una solución provisoria adquiriendo hardware VPN de menor rango del requerido e implementaciones VPN’s por software, las cuales 83 84 CAPÍTULO 4. IMPLEMENTACIONES VPN’S actualmente (marzo/2010) cumplen sus funciones de forma eficiente. Como solución definitiva se planteó la necesidad de adquirir un dispositivo Server-VPN de alto rango, que manege protocolos de última generación como SSL (Security Layer Socket) e IPsec (Security IP). El objetivo es lograr el funcionamiento óptimo de la red institucional, aprovechando al máximo las capacidades del nuevo equipamiento. 4.2. Escenario Previo del I.O.S.COR. A grandes rasgos se podría decir que la red LAN del I.O.S.COR. se encontraba soportada sobre una única red lógica IP configurada sobre una única VLAN (Lan Virtual). Todas las estaciones de trabajo estaban conectada a esta única estructura lógica, dentro del edificio se las identificaba con una dirección IP estática, mientras que para las estaciones remotas existía un rango de direcciones reservado para la asignación por medio de un servidor DHCP. Contaba con dos conexión a Internet mediante cable-modem y ambas con IP’ fijas, una de ella proveía Internet a las máquinas del edificio mientras que la otra estaba destinada al uso exclusivo del servidor VPN-PPTP para aceptar las solicitudes de conexiones que provenían de las delegaciones. En general la mayoría de los dispostivos de red del Instituto estaban saturados, la falta de actualización de los equipos y la sobrecarga de trabajo por la adición constante de nuevas estaciones de trabajo crearon una red dificil de administrar, saturada en puntos claves (como en los routers) y sin la posibilidad de expandirse. 4.2.1. Red LAN Institucional A continuación se describe en detalle la estructura lógica-física de la Red Institucional, como así también los elementos que la componen, su configuración y las funciones que cumplían éstos elementos en aquel escenario previo. La figura 4.1 de la página 85 describe la estructura de la red, muestra la ubicación de cada uno de sus elemento y las conexiones con redes externas a la institución. Red LAN Institucional • Características técnicas: • Tipo de Topología: Estrella. 4.2. ESCENARIO PREVIO DEL I.O.S.COR. Figura 4.1: Escenacio Previo de la Red LAN Institucional. 85 86 CAPÍTULO 4. IMPLEMENTACIONES VPN’S • • • • Estandar: IEEE 802.3 10/100mbps. Estandar de cableado: TIA/EIA-568-B. Dirección: 192.168.0.0. / 255.255.255 (clase C). Cantidad de PC: 170. Router 3Com OfficeConnect Cable/DSL • Especificaciones Técnicas: ◦ Estandar: IEEE 802.3 10/100 mbps. ◦ Soporte para 256 usuarios bajo un conexión ADSL de 256 mbps de ancho de banda. ◦ No posee soporte para gestionar de VLAN’s. ◦ Funciones de cliente VPN con soporte para PPTP, L2TP e IPSec. • Funciones: ◦ Trabaja como Puerta de Enlace para la salida a internet de las estaciones de trabajo de la Casa Central. ◦ Trabaja como componente central de la topología estrella de la red. La figura 4.2 de la página 86 corresponde a la imagen del router 3Com Office Connect. Figura 4.2: Router 3Com Office Connect. Switch de Capa 2 3Com Baseline 20244 • Especificaciones Técnicas: ◦ Estandar: 802.3 10/100 mbps. 4.2. ESCENARIO PREVIO DEL I.O.S.COR. 87 ◦ 48 puertos 10/100 mbps. ◦ Dispositivo de capa 2 no gestionable. • Funciones de cada uno: ◦ Encargados de distribuir los paquetes que se transmiten al router central en cada uno de los pisos del edificio. ◦ Uno de estos dispositivos trabaja como elemento principal de la topología estrella, permite conectar a los demás switches. • Estado del dispositivo: ◦ Funciomamiento óptimo. En la figura 4.3 de la página 87 se puede apreciar un Rack Mural con dos de estos dispositivos (color celeste), cada uno conectado a un PatchPanel de 48 puertos (RJ45). Esta misma presentación se repite en el centro de la estrella de la topología, como así también, en cada uno de los pisos del edificio. Figura 4.3: Rack Mural en uno de los Pisos del Edificio. Problemas Detectados en la LAN Los principales problemas detectados son los que se detallan seguidamente: Dispositivo central 3Com Office Connect ADSL saturado: Este dispositivo se encontraba sobrecargado al tener que gestionar el uso 88 CAPÍTULO 4. IMPLEMENTACIONES VPN’S de una conexión ADSL de 3 mbps entre 170 estaciones de trabajo dispuestas en el edificio; fue diseñado para soportar 256 mbps de ancho de banda aproximadamente, que eran las velocidades que se manejaban en el tiempo en que fue fabricado el dispositivo. La cantidad de estaciones de trabajo a punto de exeder su límite máximo: la red LAN contaba con 170 puesto de trabajo en el edifico de Casa Central, más otras 50 estaciones en el interior de la Provincia, de las caules sólo algunas estaban conectadas a la red. Una red LAN que fuera concebida bajo el estandar IEEE 802.3 (Ethernet) tiene como restricción la cantidad máxima de 253 estaciones de trabajo por cada dominio, lo que implica que es necesaria una segmentación de la red en varias subredes, con el objetivo de disponer de un rango más amplio de direcciones IP. Si bien la cantidad de estaciones de trabajo de la red se encuentraba relativamente próxima a su límite máximo, se consideró justificable comenzar con una división de la red, ya que un proyecto de esta envergadura requiere de tiempo para realizar pruebas y corregir errores. 4.2.2. Red Virtual Privada (VPN) Institucional La Red Virtual Privada de la institución estaba constituida básicamente de la siguiente manera: en un extremo existía un único dispositivo ServerVPN (PPTP) que aceptaba solicitudes entrantes a través de una conexión a Internet dedicada (Casa Central), mientras que en los otros extremos existían las Delegaciones y Bocas de Expendio, que formaban túneles mediante clienteVPN por sofware, nativo del sistema operativo en la totalidad de los casos. A pesar de que las delegaciones son consideradas como clientes estáticos, la arquitectura de los túneles VPN era de tipo Acceso Remoto, inclusive en aquellas delegaciones en donde existían más de una estación de trabajo y demandaban varios túneles por localidad. Los problemas más comunes se presentaban en localidades donde los ISP’s bloqueaban los puertos claves del protocolo PPTP (puerto no : 1023), lo que causaba el conocido error 800 tan característico del mismo. Otro inconveniente eran las caídas de la conexión y cortes intermitentes que se presentaban en localidades donde el ancho de banda de las conexiones a Internet que proveían los ISP’s locales eran muy escasos. Por ejemplo, la delegación de Colonia Liebig contaba con un servicio de 54 kbps de ancho de banda. 4.2. ESCENARIO PREVIO DEL I.O.S.COR. 89 A continuación, la figura 4.4 de la página 89 muestra los túneles que conectan las delegaciones del interior,con la Casa Central del I.O.S.COR. Figura 4.4: Túneles PPTP formados con las Delegaciones del Interior. La figura 4.5 de la página 89 muestra los túneles formados con departamentos, divisiones y bocas de expendios ubicadas en distintos hospitales, ademas del tipo de conexión a Internet que tiene cada punto remoto, siempre dentro de la ciudad de Corrientes Capital. 90 CAPÍTULO 4. IMPLEMENTACIONES VPN’S Figura 4.5: Túneles PPTP en la Ciudad de Corrientes Capital. 4.2. ESCENARIO PREVIO DEL I.O.S.COR. 91 Cliente VPN en Corrientes Capital Cliente PPTP Túneles Hospital Juan Pablo II 1 Hospital Vidal 1 Hospital Escuela 1 Hospital Llano 1 Dep. Sumarios 1 Div. Archivos 1 Total 6 A continuación se detallan las características técnicas del servidor 3Com Office Connect VPN Firewall: 3Com Office Connect VPN Firewall: • Especificaciones Técnicas: Soporte standars 802.3 10/100 mbps. Soporte para aceptar 15 tuneles PPTP. Soporte para aceptar 5 tuneles IPsec. Funciones de cliente VPN con soporte para PPTP, L2TP e IPsec. ◦ Encriptación: AES-128, DES (56-bit) y 3DES (168-bit) IPSec encryption. ◦ Soporte para DNS dinámico (DynDNS support). ◦ ◦ ◦ ◦ • Funciones: ◦ Servidor VPN. • Configuración: ◦ Interfaz WAN: IP Pública fija. ◦ Servidor DHCP: activado, con un rango de 20 direcciones IP para la asignación a los clientes-VPN’s. Configuración de los Túneles La configuración en todos los casos es mediante acceso remoto con clientes PPTP por software, también llamado Road Warrior, usando el cliente nativo del sistema operativo Windows XP, cuyos parámetros se detallan a continuación: Parametros del Servidor PPTP Los parámetros son los siguientes: 92 CAPÍTULO 4. IMPLEMENTACIONES VPN’S Dispostivo: 3Com Office Connect VPN. Tipo de Servidor: PPP (Protocolo Punto a Punto). Interfaz WAN: IP pública fija asignada por el ISP contratado en la ciudad de Corrientes. DHCP activo: asigna direcciones IP dentro de un rango determinado (192.168.0.XXX a 192.168.0.XXX1 ). Firewall activo: usa el puerto no 1023 para recibir las solicitudes entrantes de conexión. Pass-through no disponible. Compresión: ninguna. Los parametros de autenticación y cifrado no están disponibles por cuestiones de seguridad. La siguiente figuras 4.6 y 4.7 de la pág. 4.7 corresponde al Panel de Configuración del servidor PPTP y un Panel de Estado de cada uno de los túneles formados con las delegaciones del interior. Parametros de los Clientes PPTP Los parámetros se detallan a continuación: Sistema Operativo: Windows XP SP3. Tipo de Servidor: PPP (Protocolo Punto a Punto). Interfaz WAN: dirección IP Pública dinámica asignada por el ISP de su localidad. Interfaz Virtual VPN: dirección IP dinámica asignada por el ServerVPN de Casa Central. Firewall: activo. Pass-through no disponible. Compresión: ninguna. 1 XXX corresponde a un número que no se indica por razones de seguridad. 4.2. ESCENARIO PREVIO DEL I.O.S.COR. Figura 4.6: Panel de Configuración del Server PPTP. 93 94 CAPÍTULO 4. IMPLEMENTACIONES VPN’S Figura 4.7: Panel de Estado de los Túneles en Server PPTP. 4.2. ESCENARIO PREVIO DEL I.O.S.COR. 95 Los parametros de autenticación y cifrado en los Clientes-VPN tampoco están disponibles por cuestiones de seguridad. La siguiente figuras 4.8 de la página 95, corresponde al Cliente VPN nativo de Windows XP, el mismo también se puede ulitizar para los protocolo L2TP y L2TP/IPsec, es decir, L2TP sobre una conección IPsec. Figura 4.8: Cliente VPN Nativo del S.O. Windows XP. Problemas Detectados en la VPN El Server-VPN constituía un único punto de falla: al no contar con otro dispositivo que cumpla las funciones de Server-VPN, una falla en en este router provocaría la caída total de la Red Virtual Privada. El Server-VPN se encontraba saturado: este dispositivo gestionaba una totalida de 30 túneles, excediendo los parametros máximos fijados en las especificaciones técnicas del router. 96 CAPÍTULO 4. IMPLEMENTACIONES VPN’S Problemas del Protocolo PPTP: este protocolo de red es la versión más antigua de los protocolos VPN (desarrollado en 1995), su seguridad fue corrompida varias veces en pruebas oficiales realizadas. Otros problemas asosiados con este protocolo son las caídas de la conexión y la mala gestión que realiza con aquellos túneles que están soportados sobre conexiones de excaso ancho de banda. 4.2.3. Modificaciones a Realizar Además de los problemas detectados en la estructura lógico - física de la red institucional, el escenario exigía otros requerimientos como: 1. Agregar 4 puestos de trabajo en las delegaciones de Alvear, Monte Caseros, Bella Vista, Curuzú Cuatiá y Paso de los Libres. 2. Cambiar a una arquitectura Lan-to-Lan en las delegaciones donde exitan más de dos túneles VPN de Acceso Remoto. 3. Crear una VPN-backup (redundante), totalmente operativa que se desempeñe en un dominio de red distinto y trabaje de forma paralela con la VPN oficial. Esta VPN-backup sería levantada en un plan de contingencia tomando las funciones de la VPN oficial, con el objetivo de que la instinución pueda seguir operando normalmente ante cualquier falla, por ejemplo, en el dispositivo central. Para cubrir cada uno de estos requerimientos se propuso una solución provisoria, la cual constituiría una primer etapa de la solución definitiva detallada en el final de este capítulo. En esta primer etapa, se solucionaría la mayoría de los inconvenientes de la red LAN, además de poder expandirla, se la preparía para un inminente cambio de escenario. 4.3. Solución Provisoria La solución provisoria se divide en tres conjuntos de tareas bien definidas: la Segmentación de la Red LAN, la Redistribución de Carga de Trabajo entre los routers VPN’s, y por último, la Implementación de una VPN-Backup por software. Como se mencionó en la introducción de este capítulo, esta etapa comienza con la adquisición de un nuevo dispositivo Router VPN-SSL, el cuál se detalla según las especificaciones técnicas del fabricante. 4.3. SOLUCIÓN PROVISORIA 97 Router Linksys RVL 200 SSL/IPsec Especificaciones Técnicas: • Estandars IEEE 802.3, IEEE 802.3u, IEEE 802.1q, IEEE 802.1p, RFC791 (IP Protocol). • Servidor de 5 túneles SSL para cliente de Acceso Remoto (requiere ActiveX habilitado Navegadores, por ejemplo, Internet Explorer y Netscape). • Soporte para un túnel IPSec Lan-to-Lan. • Cifrado DES/3DES/AES, MD5/SHA1. • Soporte de cliente VPN de PPTP, L2TP e IPSec. • Autenticación: Radius-PAP , NTDomain, Active Directory, CHAP. Funciones / Configuración: • Servidor de acceso a Internet: trabaja como Puerta de Enlace para la salida a Internet de las estaciones de trabajo de Casa Central. • Firewall de la conexión-1 a Internet. • Servidor VPN-SSL bajo arquitectura Acceso Remoto. • Servidor IPsec bajo arquitectura Lan-to-Lan. • Interfaz WAN: IP Pública fija. • Interfaz LAN: 192.168.0.0/255.255.255.0. • Servidor DHCP: desactivado. La figura 4.9 de la página 97 corresponde a la imagen del router Linksys RVL 200. Figura 4.9: Dispositivo Linksys RVL200. Con la adquisición de este dispositivo se pretendió corregir algunos de los problemas más urgentes relacionados con los túneles PPTP como son: 98 CAPÍTULO 4. IMPLEMENTACIONES VPN’S - Conexiones más estables en aquellas delegaciones con escaso ancho de banda (Internet). - Evitar los problemas de cierre de puertos claves, siendo que SSL trabajo sobre puerto 443 y resulta imposible para los ISP bloquearlo. 4.3.1. Segmentación de la Red LAN Con la intención de liberar direcciones IP y mejorar la performance de la Red Institucional, se llevó a cabo la segmentación de la red 192.168.0.0 en 6 redes LAN’s de distintos dominios, como se detalla en la figura 4.10 de la página 99, la cual muestra además la distribución de los dispositivos en el escenario incluyendos los nuevos. A continuación se detallan la configuración de cada dispositvios y la función cumplen dentro del nuevo escenario: Router 3Com Office Connect • Parametros: ◦ ◦ ◦ ◦ Interfaz WAN: 192.168.0.XX/255.255.255.255.0. Sevidor DHCP: desactivado. Firewall: desactivado. Puerta de enlace: router Linksys RVL 200. • Funciones: ◦ Segmentan la red principal. ◦ Se encargan de enrutar el tráfico de cada piso. Switch de capa 2 3Com Baseline 20244 • Cumple las mismas funciones que en el escenario previo. Algunas de las ventajas que se consiguieron gracias a la segmentación son: • Aumenta la eficiencia de la Red. • Se reduce el tráfico global aportando más espacio para tráfico legítimo, lo que implica mayor velocidad. 4.3. SOLUCIÓN PROVISORIA Figura 4.10: Segmentación de la Red LAN. 99 100 CAPÍTULO 4. IMPLEMENTACIONES VPN’S • Escalabilidad. • Se facilita la tarea del administrador de la red. • Las fallas quedan limitadas al segmento y permite que el resto de la red siga funcionando normalmente. • Facilita la detección de errores. Por ejemplo se puede identificar fácilmente una estación que este transmitiendo broadcast en exceso como también detectar estaciones con direcciones IP duplicadas. • Cada subred reduce el tamaño de colisión al menos uno por piso con la segmentación de salas correspondiente. • Otro punto a considerar es la seguridad ya que podemos limitar el acceso entre dos segmentos, estableciendo una LAN de acceso restringido a una LAN de acceso general. 4.3.2. Redistribución de Carga de Trabajo Entre los Routers VPN’s Con la puesta en marcha del router Linksys VPN-SSL, el nuevo escenario quedaría dispuesto de la siguiente manera, descripta en la figura 4.11 de la página 101. DNS Dinámico (DDNS) Al no contar con la posibilidad de poseer una IP fija (servicio corpotativo del ISP) en las delegaciones remotas, se aprovechó el soporte de DNS Dinámico (DDNS) que exitía en los dispositivos dispuestos en ambos extremos del túnel. De esta manera, se adquirió una cuenta gratuita del Servicio DynDNS (www.dyndns.org), la cual esta asociada con el cliente VPN de la delegación de Goya (Router 3Com Office Connect). Los dispositivos 3Com Office Connect por ejemplo, possee el software cliente DDNS incorporado en su hardware, y de forma transparente se encarga de actualizar la dirección IP correspondiente al dominio adquirido (cuenta DDNS), cada vez que el ISP asigna una nueva IP. La figura 4.12 de la página 102 corresponde a una captura de pantalla de la configuración de la cuenta dyndns. La siguinentes figuras muestra las pruebas de Resolución de Nombres que se realizaron sobre la dirección goya2.atx.cx (cuenta DDNS), mediante el uso 4.3. SOLUCIÓN PROVISORIA Figura 4.11: Nuevo Escenario VPN. 101 102 CAPÍTULO 4. IMPLEMENTACIONES VPN’S Figura 4.12: Cliente DNS Dinámico en dispositivo 3Com. de los comandos ping (acusa la conectividad con una dirección determinada) y nslookup (describe los nombre de servidores DNS y su correspondiente direción IP), ambos comandos pertenecientes a la familia de protocolo TCP-IP. La figura 4.13 de la página 103 muestra los resultados correctos arrojados por el comando ping mientras que la siguiente figura 4.14 de la página 103 corresponden al comando nslookup . Configuración Acceso Remoto SSL Parametros del Servidor VPN-SSL Dispostivo: Linksys RVL200 VPN-SSL. Tipo de Servidor: PPP (Protocolo Punto a Punto). Recursos compartidos LAN: activado. Interfaz WAN: IP Pública Fija asignada por el ISP contratado en la ciudad de Corrientes. 4.3. SOLUCIÓN PROVISORIA Figura 4.13: Pruebas de Conectividad con el Comando Ping. Figura 4.14: Resultados del Comando Nslookup. 103 104 CAPÍTULO 4. IMPLEMENTACIONES VPN’S DHCP activo: asigna direcciones IP dentro de un rango determinado (192.168.5.XXX a 192.168.5.XXX) Firewall activo: usa el puerto No 433 (abierto por defecto en todos los routers) para recibir las solicitudes entrantes de conexión. Pass-through no disponible. Compresión: ninguna. Los parametros de autenticación y cifrado no están disponibles por cuestiones de seguridad. La siguiente figura 4.15 de la pág. 104 corresponde al Panel de Estado de los Túneles del servidor VPN-SSL. Figura 4.15: Panel de Estado de Túneles SSL en Linksys RVL200. Autenticación del Servidor por Medio de Certificados Como solución provisoria se optó por autenticar solamente el ServidorVPN mediante un certificado SSL X.509, bajo el formato de archivo PEM 4.3. SOLUCIÓN PROVISORIA 105 (Certificado codificado en Base64). Este certificado fué generado de forma local usando una función propia del dispositivo server; debido a que no está firmado por una Autoridad Certificadora conocida, como son Thawte o Verisign, los navegadores generalmente rechazan la solicitud de conexión, o en otros casos, advierten como medida de seguridad que está a punto de ingresar a un sitio inseguro. La solución que se planteó a este problema en las delegaciones fué catalogar a la dirección del servidor VPN (Linksys RVL200) como un Sitio Seguro dentro de la configuración de cada browser. De esta manera se evita toda reestricción de seguridad, permitiendo cualquier solicitud proveniente de esta dirección como por ejemplo la instalación de un Pluging, condición necesaria para el establecimiento del tunel-SSL. En la figura 4.16 de la página 105 se puede apreciar un ejemplo de un certificado X.509 bajo un formato de archivo PEM. Figura 4.16: Ejemplo de un Certificado X.509. Parametros del Cliente VPN-SSL Como todo cliente VPN-SSL no tiene configuración, aunque este dispositivo en especial exige que en el navegador del cliente se tenga activado funciones de javascript ademas de otras, solamente se debe hacer referencia a la dirección IP del servidor VPN, (ej: https://ip-del-servidor). La figura 4.17 de la página 106 muestra el Portal Web de Acceso para el cliente VPN-SSL. Al pasar la validación en el Servidor, éste envía al cliente un Plugins de descarga, el cual permitirá extender la red, característica de las VNP-SSL descriptas en la sección Protocolo SSL del capitulo I . De esta manera la PC remota pasa a ser una nueva estación de trabaja legítima de la red LAN 106 CAPÍTULO 4. IMPLEMENTACIONES VPN’S Figura 4.17: Interfaz Web del Cliente SSL del Dispositvio Linksys RVL200. institucional, a partir de aquí, puede utilizar servicios, compartir recursos, etc., como si estuviera fisicamente ubicada en el edificio de Casa Central (ver figura 4.18 de la pág. 107). Arquitectura Lan-to-Lan Sobre IPsec en Linksys RVL 200 En esta implementación, al intentar conectar dispositivos de distintas marcas (3Com y Linksys) se detectaron problemas de interoperatividad, a pesar de estar usando el protocolo IPsec descripto como un estandar abierto en los RFCs 4301 y 4309. Los problemas radican en el dispositivo Linksys RVL200, que sólo acepta conexiones con dispositivos perteneciente a la misma familia en los modelos RVL200, RVL48 o RVL82, dejando a un lado la ventaja más grande que proporciona IPsec ( la interoperabilidad de dispositivos descripta en en capitulo I ). En la figura 4.19 de la página 107 se puede apreciar la interfaz gráfica de la conexión Lan-to-Lan, la cual resulta muy intituiva a la hora de establecer el túnel pero escasa en información acerca de errores y estado de los túneles. 4.3. SOLUCIÓN PROVISORIA 107 Figura 4.18: Mensaje de Advertencia Ante la Instalación del Plugins en Internet Explorer 7.0. Figura 4.19: Interfaz de Configuración de Arquitectura Lan-to-Lan. 108 CAPÍTULO 4. IMPLEMENTACIONES VPN’S Arquitectura Lan-to-Lan sobre IPsec en 3Com Office Connect VPN El objetivo de esta implementación es reemplazar los 4 tuneles PPTP de Acceso Remoto por un solo tunel Lan-to-Lan IPsec, el cuál, sería compartido por todas las estaciones de trabajo de la red LAN perteneciente a la delegación de Goya. Esta configuración, seria la correcta para este tipo de escenario, reduce la carga de trabajo en el saturado Server VPN de Casa Central, como asi también, disminuye la cantidad de inforamción de control transmitida y reduce los requisitos de ancho de banda en la delegación remota. Aunque las configuraciones de Acceso Remoto queden dispuestas en las estaciones de trabajo por una eventual caida del tunel Lan-to-Lan, éstas no afectarán el renidmiento de la VPN, ya que no serán un Servicio que se inicien al bootear el Sistema Operativo que trabaje con el tunel Lan-to-Lan. Detalles del Tunel Lan-to-Lan IPsec A continación de detallan los parametros que se escogieron para establencer el tunel, los cuales coinciden en ambos dispositivo (cliente y servidor): Protocolo de Tunel: IPsec (Internet Protocol security). Nombre del Tunel: goya. Protocolo de Encriptación: DES (Data Encryption Standard). Protocolo de Autenticación: MD5 (Message-Digest Algorithm 5). Life time (tiempo de vida de los paquetes): 28800ms. Clave compartida: clavejemplo. Servidor VPN Tunel Lan-to-Lan IPsec Red Local: 192.168.0.0/255.255.255.0. Dirección de red Local: xxx.xxx.xxx.xxx (IP). Red Remota: 192.168.8.0. Dirección de red Remota: goya2.ath.cx (IP resuelta por DNS). En la siguiente figura 4.20 de la página 109 muestra un panel correspondiente al estado de los tuneles VPN en servidor VPN. 4.3. SOLUCIÓN PROVISORIA 109 Figura 4.20: Panel de Estado de Tuneles en Server PPTP. Configuración del Puente HUAWEI SmartAX 810 Este dispositvo es el provisto por el ISP, es un Moden-Router y en este escenario cumple funciones de puente de capa 2 (Modelo OSI). El objetivo de esta configuración es usar a este dispositivo como nexo conector de distinto tipo de hardware, uniendo el estandar IEEE 802.3 (Ethernet) de la red LAN, con la conexión WAN corresponiente a la Red Telefónica Conmutada . La conexión entre los dos dispositivos está constituida por medio de un cable cruzado (conexión puente RJ45) a través de las interfaces RJ45, como se detalla en la siguiente figura 4.21 de la página 109. Figura 4.21: Conexión Física del Puente de Capa 2. De esta manera se anulan las funciones de Ruteo, Servidor NAT y Cliente PPPoE (cliente WAN) en el router Huawei, delegando estas tareas al router 3Com Office Connect ADSL, el cual también cumple otras funciones como la 110 CAPÍTULO 4. IMPLEMENTACIONES VPN’S de cliente VPN. Los parámetros de configuración del dispositivo HUAWEI SmartAX 810 son los siguientes: • Modo: Bridge. • Encapsulation: RFC2684. • Main IP address: 10.0.0.2. • DHCP: activado. • NAT Status: desactivado. (ver figura 4.22 de la página 110.) Figura 4.22: Configuración del Modo Puente en Dispositivo Huawei MT882. 4.3. SOLUCIÓN PROVISORIA 111 Parámetros del Servidor VPN Lan-to-Lan sobre IPsec: • Modo: Router. • Red Local: 192.168.0.0/255.255.255.0. • Tipo IP Pública: fija. • Red Remota (VPN): 192.168.8.0. • Dirección de la red Remota: goya2.ath.cx (IP resuelta por DNS). La siguiente figura 4.23 de la página 111 muestra un panel correspondiente al estado de los tuneles VPN en servidor VPN. Figura 4.23: Panel de Estado de los Túneles en 3Com Officce Connect ADSL. Cliente VPN Lan-to-Lan 3Com Office Connect ADSL: • Tipo de IP Pública: dinámica. • DHCP-LAN: activado. • NAT Status: activado. • CLiente PPPoE: activado. Las siguiente figura 4.24 de la página 112 muestras la interfaz de configuración del cliente PPPoE del router 3Com. Parametros del Cliente VPN: • Dirección de red Local: goya2.ath.cx (IP resuelta por DDNS). • Red Local: 192.168.8.0. • Red Remota: xxx.xxx.xxx.xxx. (IP). • Dirección de red Local Remota: 192.168.0.0. 112 CAPÍTULO 4. IMPLEMENTACIONES VPN’S Figura 4.24: Cliente PPPoE. 4.3. SOLUCIÓN PROVISORIA Figura 4.25: Configuración Lan-to-Lan en 3Com Office Connect. 113 114 CAPÍTULO 4. IMPLEMENTACIONES VPN’S La figura 4.25 de la página 113 muestra los parametros del tunel IPsec en el cliente VPN . Parámetros del Cliente VPN : - Dirección de red Local: goya2.ath.cx (IP resuelta por DDNS). - Red Local: 192.168.8.0. - Red Remota: xxx.xxx.xxx.xxx. (IP). - Dirección de red Local Remota: 192.168.0.0. 4.3.3. Implementación de una VPN-Backup por Software Basándose en las grandes ventajas que existen entre las VPN sobre SSL y demás protocolos, se decidió usar el software OpenVPN para implementarlo tanto en los clientes como en el servidor VPN de la red institucional. La arquitectura elegida es de tipo Road Warrior, bajo una infraestructura de llave pública (IKE) para incremantar la seguridad de dicha red. Arquitectura Road Warrior en Modo Tunneling Una de las posibilidades que brinda OpenVPN es crear una Red de Túnel tipo IP (alternativa al puente Ethernet de capa 2), que permita encaminar todo el tráfico de la red local del servidor (192.168.0.0 en este caso) a las estaciones de trabajo remotas de la VPN y viceversa, de tal forma que sea posible compartir recursos entre PC’s de distintas redes. Para lleva a cabo una arquitectura como ésta es necesario que el equipo server-VPN cumpla también funciones router (encaminador IP). En este caso, se decidió trabajar bajo un entorno Linux en su distribución Ubuntu versión 9.10, implementando las funciones de ruteo mediantes reglas IPTABLES (Firewall del Kernel de Linux), además de otras funciones como son funciones NAT (Traducción de Dirección de Red) y directivas de control de acceso. Reglas IPTABLES de Linux Las siguientes reglas IPTABLES están guardadas en un archivo local del servidor y se ejecutan al bootear el equipo: Reglas de función de Ruteo o Encaminador Esta función es necesaria en el servidor para que el tráfico IP pueda ser encaminado desde la interfaz física (eth0) hacia la intrefaz virtual (tun0) y 4.3. SOLUCIÓN PROVISORIA 115 viceversa. Una vez que los paquetes IP atraviesan cada interfaz, las funciones NAT se encargan de encontrar cada una de las direcciones IP que posean los paquetes en sus destinos. A continuación se puede aprecias la regla IPTABLE necesaria para dicha función, la cuál se conoce como regla de habilitación del IP forwarding (desabilitada por defecto): echo 1 > /proc/sys/net/ipv4/ip_forward Reglas para la función NAT Al igual que en una conexión a Internet compartida entre 2 PC o más, las funciones NAT hacen posible que una IP (pública en esta ejemplo) pueda ser compartida por varias PC usando la dirección de puerto destino de cada paquete para identificar a estas (PC’s). En nuestro escenario, la dirección IP de la interfaz física del Servidor (eth0) es compartida por todos clientes-VPN y mediante ésta, pueden acceder a cualquier pc de la red local, simulando ser el mismo servidor-VPN, el cúal se encargará de redireccionar los paquetes a los clientes-VPN destino por medio de la interfaz virtual (tun0). Esta configuración se considera válida, ya que el servidor-VPN es considerada una estación legítima para ambas redes. La siguiente regla IPTABLE correspondiente a ésta función: iptables -A FORWARD -s 192.168.0.0/24 -o tun0 -j ACCEPT iptables -A FORWARD -d 192.168.0.0/24 -m state —state ESTABLISHED, RELATED -i tun0 -j ACCEPT Reglas de Control de Acceso Por medidas de seguridad y a modo de ejemplo, se exponen las siguientes reglas de control de acceso totalmente permisivas, las cuales permiten que el esquema funcione permitiendo que atraviese cualquier tipo de tráfico IP por el firewall: • iptables iptables iptables iptables iptables -A -A -A -A -A INPUT -i tun0 -j ACCEPT OUTPUT -i tun0 -j ACCEPT FORWARD -i tun0 -j ACCEPT INPUT -p udp —dport 1194 -j ACCEPT INPUT -p tcp —dport 1194 -j ACCEPT 116 CAPÍTULO 4. IMPLEMENTACIONES VPN’S Infraestructura de Clave Pública (IKE) con OpenVPN Mediante el uso de las mismas herramientas que ofrece OpenVPN se pudo llevar a cabo este tipo de implementación; si bien éstas no son propias del software, se trata de un conjunto de funcionalidades de la librería openSSL, la cuál se copia al sistema de archivos al instalar el programa. Mediante éstas, se crearon los siguientes elementos: certificados X.509 del Servidor y Clientes VPN, parámetros Diffie Hellman y la propia Autoridad Certifacadora (AC). Autoridad Certificadora IOSCOR Fue necesario crear la autoridad certificador IOSCOR con el objetivo de ser usada exclusivamente en esta VPN. Esta AC se encarga de verificar la validez de los certificados en cada petición de conexión que envían los clientes-VPN, radica en el mismo equipo ( Servidor Ubuntu) donde ofrece sus servicios el server-OpenVPN. Para esta ocación no fué necesario contratar una Autoridad Certificadora Conocida para los navegadores, ya que OpenVPN no hace uso de un navegador web, las configuraciones se realizan sobre un archivo de texto plano e inclusive para los S.O. Windows, existe un GUI (Intefaz Gráfica de Usuario) que permite establecer los túneles de una manera muy sensilla como se describe más adelante. Certificados OpenVPN Cada uno de los certificados fue creado respetando el estandar X.509 y físicamente están almacenados como archivos “ *.CER ”. Todos los clientes-VPN del interior usan en principio el mismo certificado para validarse en el servidor; en una optimización de este esquema de seguridad se podrán crear certificados particulares para cada uno de ellos, como así también una forma más segura de almacenarlos como por ejemplo en tarjetas magnéticas. En la figura 4.26 de la página 117 se puede ver el certificado cliente VPN emitido por la Autoridad Certificadora IOSCOR 2 . Servidor OpenVPN La siguiente configuración corresponde al Server OpenVPN, se encuenta almacenada en el directorio OpenVPN dentro de un archivo *.conf, cada una de sus líneas está acopañada por una descipción en forma de comentario (líneas que comienzan con el signo ‘#’): 2 En el Certificado no se hace referencia a los parametro por cuestiones de seguirdad. 4.3. SOLUCIÓN PROVISORIA Figura 4.26: Certificado Emitido por la A.C. IOSCOR. 117 118 CAPÍTULO 4. IMPLEMENTACIONES VPN’S # puerto de escucha del servidor port 1194 # protoco que se usara proto udp # conexión tipo tunelamiento IP dev tun # ruta y nombre de cada certificado ca etc/OpenVPN/key/ca.crt cert etc/OpenVPN/key/server.crt key etc/OpenVPN/key/\server.key dh etc/OpenVPN/key/\dh1024.pem #Direcciones que se asignaran a los clientes, el server es .1 server 192.168.3.0 255.255.255.0 ifconfig-pool-persist ipp.txt #Ruta para que los clientes alcancen la red local del server (56.0/24) push route 10.0.0.0 255.255.255.0" # parametro de conexión del tunel persist-key persist-tun keepalive 10 120 comp-lzo status openvpn-status.log verb 4 Cliente OpenVPN El siguiente detalle corresponde a la configuración de los clientes OpenVPN, en este caso están almacenados en un archivo *.opvn, bajo un entorno Windows XP. #especifica que es un cliente tls-client client nobind # modo tuneling IP 4.3. SOLUCIÓN PROVISORIA 119 dev tun #se usa el protoco proto udp #dirección pública del servidor OpenVPN remote xxx.xxx.xxx.xxx float #es porque la ip del DDNS es dinamica # ruta de acceso y nombre de los certificados ca Ç:\\Archivos de programa\\OpenVPN\\ca.crt" cert Ç:\\Archivos de programa\\OpenVPN\\cliente.crt" key Ç:\\Archivos de programa\\OpenVPN\\cliente.key" #parametros de conexción del tunel resolv-retry infinite persist-key persist-tun comp-lzo verb 4 Interfaz de Usuario Cliente OpenVPN (GUI) de Windows Una de las ventajas que tiene OpenVPN es que para el usuario común existe una interfaz gráfica (GUI) muy amigable, que le permite usar al Cliente-OpenVPN de una manera muy fácil. Esta interfaz es también de código libre y gratuita, permite establecer el túnel con el servidor mediante un simple doble-clik en el ícono que se puede apreciar en la figura 4.27 de la página 119. Figura 4.27: Interfaz Gráfica de OpenVPN para S.O. Windows. 120 CAPÍTULO 4. IMPLEMENTACIONES VPN’S Permite también desconectar el túnel, reiniciar,configurar un servidor Proxy, entre otras. Configuraciones en la Puerta de Enlace del Servidor VPN (router Linksys RVL200) Debido a que el Servidor OpenVPN no es justamente la puerta de enlace de la red o bien no cumple funciones de máquina anfitriona de Internet, es necesario realizar algunas configuraciones en el equipo que esté compliendo esas funciones; en este caso se trata del nuevo dispositivo Linksys RVL200. Los ajustes necesarios son redireccionamiento de puertos y las nuevas rutas estáticas, que se detallan a continuación. Port Forwarding (Redireccinamiento de Puertos) en Linksys RVL200 Los cliente OpenVPN envían solicitudes de conexión desde las delegaciones a la dirección IP pública del IOSCOR, pero, ¿cómo encontrarían al Servidor OpenVPN dentro de la Red Privada Intitucional?. Este problema se soluciona redireccionando todo los paquetes con puerto destino nro1194 (puerto de escucha de OpenVPN) a la dirección de la interfaz física del servidor OpenVPN. Esta regla se configura en la puerta de enlace de la red instutucional, como se detalla a continuación en la figura 4.28 de la página 120. Figura 4.28: Redireccionamiento de Puertos (Port Forwarding). 4.4. SOLUCIÓN DEFINITIVA 121 Rutas Estáticas en Linksys RVL200 Fue necesario también agregar la siguiente ruta estática para que las PC’s de la red institucional puedan alcanzar la dirección 192.168.8.0 correspondiente a la VPN. La configuración se podría traducir “como todo lo que va a la red 192.168.8.0 se envía a la dirección de 192.168.xxx.xxx” (ver figura 4.29 de la pág. 121). Figura 4.29: Configuración de Rutas Estáticas en Linksys RVL200. 4.4. Solución Definitiva Para terminar con este capítulo, se considero como Solución Definitiva la unificación de los protocolos VPNs usados en la institución, en este caso se optó por usar unicamente SSL (Security Layer Socket), por lo que es necesario la adquisición de un nuevo dispositvio de alto rango acorde para desempeñar las funciones de Servidor-SSL. La VPN del I.O.S.COR. quedaria entonces resumida en un LAN que conecta a las delegaciones del interior con la red institucional, acompañada de la 122 CAPÍTULO 4. IMPLEMENTACIONES VPN’S VPN-Backup (bajo OpenVPN) descripta anteriormente. Luego de un amplio relevamiento de información entre los distintos sitios de fabricantes de dispositivos de redes más conocidos (ej: Cisco, 3Com, Barracuda, etc), se les propuso a las autoridades del I.O.S.COR., las siguientes opciones detalladas por orden de prioridad en la figura 4.30 de la pág.122. Figura 4.30: Servidores VPN-SSL de Distintos Fabricantes. Entre estos dispositvos, se destaca el router Cisco 5510 perteneciente a la familia ASA 5500, el cual cumple con todos los requisitos necesarios para desempeñar las funciones de Server-VPN en lo que consideramos el esquema óptimo correspondiente a este escenario. En la figura 4.31 de la pág. 123 se puede ver un detalle de las características de dicho dispositivo. 4.4. SOLUCIÓN DEFINITIVA Figura 4.31: Router Cisco ASA 5510. 123 Capítulo 5 E-Learning 5.1. Introducción al e-learning 5.1.1. El Concepto de Aprendizaje Electrónico En este primer capítulo se presenta una introducción sobre las nociones básicas del Aprendizaje Electrónico. El aprendizaje electrónico es un término que ha adquirido cada vez más 125 126 CAPÍTULO 5. E-LEARNING popularidad en lo que respecta a la capacitación digital y en línea; “e-learning”, s el término en inglés. El aprendizaje electrónico significa algo más que sólo la transmisión digital de conocimientos en línea, o la capacitación basada en la computación a través de la Red WWW. Se refiere a dos componentes importantes: • La experiencia del aprendizaje. • La tecnología electrónica. La experiencia que se logra del aprendizaje electrónico resalta lo importante de las metodologías y técnicas de capacitación que: • Hacen que el alumno desee investigar más el tema. • Proporcionan una práctica simulada de aptitudes y procedimientos. • Ayuden, apoyen y dirijan a los alumnos. • Permitan que el alumno interactúe con otros que también están aprendiendo. Definición de Aprendizaje Electrónico El término “e-learning” viene de dos siglas en inglés‚la “e” de e-learning se corresponda a la palabra “electronic” en inglés, así forma un sustantivo compuesto cuyo núcleo es la palabra learning que se traduce como aprendizaje. Ante esta combinación el término se traduce de manera apropiada como “Aprendizaje Electrónico” o aprendizaje por medios electrónicos. Este nuevo concepto hace referencia al aprendizaje por medio de equipos electrónicos, como una computadora, el correo electrónico, equipos y servicios relacionados, la red WWW y la tecnología del CD-ROM; ofreciendo de esta forma, una nueva y mejor posibilidad de capacitar a los alumnos y al personal de una determinada organización, que necesitan aprender rápidamente nuevas técnicas y asimilar nueva información, para competir eficazmente en la actualidad y no mantenerse aislados. También es una de las formas que ha adoptado la llamada educación a distancia, al desarrollarse y masificarse las intranets y redes de área amplia, como es la Red Internet. 5.1.2. ¿Por qué el E-Learning? Quizá decir que el e-learning es “la respuesta” para todas las personas y empresas, sea demasiado pretencioso. Pero desde luego sí que es una respuesta 5.1. INTRODUCCIÓN AL E-LEARNING 127 cualitativa (respecto a contenidos, tecnología, metodología, servicios) y cuantitativa (en tiempos, costes, número de participantes) a la realidad de nuestro tiempo. Si recordamos los elementos característicos que configuran la organización empresarial actual podemos constatar que e-learning responde a las necesidades que nuestra empresa tiene, ya que: Permite un fácil acceso a la formación y actualización tanto del personal como de la empresa. La mayor participación del alumno en el proceso formativo favorece la adquisición y asimilación de conocimientos y habilidades. Reduce costes indirectos al evitar desplazamientos (formación en el propio puesto de trabajo). Puede realizarse en cualquier lugar, en cualquier momento (anywhere, anytime). Supone una reducción de un 40-60 % de coste respecto a la formación tradicional. Crea hábitos de uso de nuevas tecnologías, que son aplicables en el trabajo diario. 5.1.3. La Tecnología y el Acceso Internet se presenta como una respuesta lógica para cubrir las nuevas demandas de educación y formación. Teniendo en cuenta la tendencia de crecimiento, las previsiones del mercado de las TIC para el año 2006 son verdaderamente positivas, lo cual proporciona al e-Learning una posición estructural muy favorable. Los obstáculos técnicos tales como el acceso, los estándares, las infraestructuras o el ancho de banda no serán un problema. El crecimiento del World Wide Web, la gran capacidad de las redes corporativas y los grandes avances en las computadoras personales proporcionarán la estructura tecnológica suficiente para que el aprendizaje online pueda estar disponible 24 horas al día y 7 días a la semana (24x7). 128 CAPÍTULO 5. E-LEARNING 5.1.4. La Globalización de Mercados Los mercados, los productos y la educación cada vez son más globales. Las barreras de la localización están siendo solventadas día a día a través de mercados de productos y de servicios (incluyendo la educación) abiertos o activos 24 horas al día y 7 días a la semana (24x7) a través de la utilización de métodos y tecnologías apropiadas. La sociedad debe adaptarse a estos cambios para resultar competitiva. 5.2. Qué es el E-Learning: Sus Características y Segmentación del Mercado 5.2.1. E-Learning vs. Online Learning La terminología tecnológica está en continuo desarrollo, al igual que el entorno en el que se genera y sobre todo los términos “e-” que abarcan aspectos muy amplios y muy diversos dependiendo de las organizaciones y de los grupos de usuarios. El término “e-Learning” hizo sus primeras apariciones a finales de 1997 y principios de 1998 y se utiliza actualmente para cubrir casi cualquier tipo de aprendizaje basado en las tecnologías de la información y la comunicación (TIC) en su significado más amplio. Según Elliot Marie, uno de los pioneros y gurús del e-Learning, “el e-Learning no es un curso puesto en un PC” sino una nueva mezcla de recursos, interactividad, rendimiento. Una nueva estructura para el aprendizaje, una combinación de servicios de enseñanza proporcionados a través del uso de herramientas tecnológicas que proporciona un alto valor añadido: a cualquier hora y en cualquier lugar (anytime, anywhere). Por lo tanto, el e-Learning se refiere tanto al entorno como a los procesos de aprendizaje, siendo los contenidos electrónicos solamente una parte del sistema. El término e-Learning se entiende como un método de enseñanza aprendizaje que hace uso de herramientas tecnológicas, recogiendo un amplio abanico de aplicaciones y procesos entre los que se incluye el aprendizaje a través de una computadora personal (PC), el aprendizaje basado en tecnologías Web, clases virtuales, colaboraciones digitales, etc. 5.2. QUÉ ES EL E- LEARNING 129 El e-Learning implica la entrega de contenidos por medios electrónicos como Internet, intranets, extranets, televisión interactiva, CD ROMs, etc. Así pues, el e-Learning incluye aquellas sesiones presenciales que utilicen herramientas digitales o electrónicas como medio para la difusión y la práctica de los contenidos de un curso. Online learnining se describe como contraposición al c-learning (Classroom learning), es decir, como el aprendizaje basado en Web. Online learning constituye sólo una parte del e-Learning e implica un sistema de enseñanza-aprendizaje vía Internet, intranets o extranets. Los niveles de sofisticación del online learning varían desde sistemas muy básicos de transmisión de los textos y gráficos de un curso, ejercicios, exámenes, etc. a niveles más sofisticados como animaciones, simulaciones, secuencias de vídeo y audio, grupos de discusión entre expertos y entre compañeros, enlaces a materiales de la Intranet, etc. e-Training: es el término utilizado para describir la formación empresarial conducida vía e-Learning. Los tres tipos de sistemas de enseñanza-aprendizaje pueden ser sincrónicos y/o asincrónicos: • Las entregas de cursos sincrónicos suponen un sistema de enseñanzaaprendizaje llevado por un tutor/facilitador en tiempo real, en el cual todos los participantes pueden comunicarse directamente entre ellos en el mismo espacio de tiempo. Ejemplos de este tipo de cursos son las clases virtuales, o incluso las clases presenciales que utilizan las tecnologías de la información y la comunicación (TIC) como herramienta para la enseñanza-aprendizaje. • Las entregas de cursos asincrónicos son aquellos en los que los procesos de comunicación entre los participantes se producen obligatoriamente con un desfase de tiempo. 5.2.2. Reducción de Costes Tanto a nivel empresarial como individual dentro de los costes de la educación o de formación hay que incluir los costes de transporte, alojamientos y manutención o dietas (dependiendo de los casos) en el lugar físico donde tiene lugar la actividad formativa en cuestión. Para aquellos individuos que quieren optar por universidades, cursos o maestrías internacionales los costes de transporte, alojamiento y manutención suponen un coste tan elevado o más 130 CAPÍTULO 5. E-LEARNING que el del curso que se desea seguir. Esto supone un impedimento para muchas personas que no se pueden permitir estos costes adyacentes a la educación pero que sí se podrían permitir el precio de la actividad formativa en cuestión. Si consideramos el derecho a la educación como un servicio de primera necesidad, se puede decir que, el e-Learning da un paso adelante a favor de la democratización de la educación (aunque siga aquí quedando pendiente el tema de los info-ricos e info-pobres). Para las empresas, aproximadamente dos tercios del coste de formación de los empleados se destina a gastos de transportes y dietas para los empleados que asisten a los cursos, lo cual supone una disminución notable de los beneficios netos de formación de la empresa. Otro aspecto que las empresas consideran a la hora de optar por el e-Learning o e-Training es el hecho de que los cursos se pueden ofrecer en sesiones más cortas y durante periodos de tiempo más largos sin que la formación monopolice todo el tiempo de los empleados pudiendo compaginar la formación con sus obligaciones dentro de la empresa, o con su vida personal. 5.2.3. Incremento de la Retención de los Contenidos El e-Learning permite un mayor espacio para los distintos ritmos y estilos de aprendizaje a través de un proceso más personalizado. Con un acceso 24x7 los estudiantes pueden aprender a su propio ritmo y revisar los materiales tantas veces como lo necesiten. El hecho de que sea el estudiante el que gestione su tiempo y materiales de acuerdo a sus posibilidades individuales ha demostrado que la curva de aprendizaje se acelera un 60 % con respecto a las clases presenciales. 5.2.4. Las Mejoras de la Interactividad en el E-Learning Las nuevas tecnologías aplicadas a las plataformas de e-Learning han eliminado muchas de las barreras de comunicación y de interactividad que se han identificado como una de las principales desventajas del e-Learning. Sin embargo, algunos de los principales inconvenientes que identifican todavía al eLearning son: 1) falta de relación personal 2) falta de calidad pedagógica y 3) escasa participación. A nivel tecnológico ya es posible crear un ambiente interactivo online a través de estudios de casos, demostraciones, juegos de rol, simulaciones, difusión online de vídeos, tutorías personalizadas, grupos de discusión, trabajos en grupo, chats, e-mail, tablones de anuncios, tutoriales, etc. 5.3. VENTAJAS DEL E-LEARNING 131 Según varios estudios, los alumnos tienden a profundizar más en los temas cuando el aprendizaje se produce online, esto se debe en parte a que en el e-Learning el profesor/facilitador no monopoliza toda la atención. Respecto a la escasa participación, merece la pena prestar atención al hecho de que el aprendizaje online “intimida” menos que las clases presenciales ya que los alumnos pueden cometer errores sin exponerse físicamente. Con el e-Learning se refleja que los estudiantes tienen menos problemas en volver a intentarlo después de haber cometido un error. El e-Learning elimina la “vergüenza” de equivocarse frente a un grupo de iguales. 5.3. Ventajas del e-learning Las principales ventajas se señalan a continuación: • Puede ampliar el aprendizaje a toda la organización. Con las tecnologías de aprendizaje electrónico, se puede llegar al personal gerencial y administrativo de todos los niveles con el mismo contenido de capacitación y apoyo educativo. Por ejemplo, al descentralizar sus servicios, las organizaciones tienen que desarrollar la capacidad del personal a nivel distrital y local. Con la infraestructura física adecuada, los administradores de esos niveles pueden recibir la capacitación y las herramientas gerenciales necesarias. • Puede llegar a un gran número de alumnos. El desarrollo gerencial y administrativo a menudo requiere que un gran número de administradores instituyan prácticas y técnicas nuevas. Las tecnologías de aprendizaje electrónico potencialmente pueden llegar y ayudar a capacitar, en el corto plazo, a esa masa crítica de administradores necesarios para un desarrollo eficaz. • Puede adecuar las actividades de aprendizaje electrónico a la medida de los individuos. La instrucción que emplea una estrategia basada en el aprendizaje electrónico puede organizarse para permitir que los alumnos avancen a su propio ritmo, concentrándose en temas que se adecúen a sus necesidades individuales. Se pueden saltar las partes con las que ya están familiarizados o repetir las partes difíciles. • Puede facilitar ayuda por instructores entre sus colegas. Muchos creen que los tutores deben ser personas cuyo ejemplo se debe seguir, y éste es uno de los componentes más importantes en el desarrollo gerencial y de liderazgo. En los programas de las carreras universitarias tradicionales, los tutores actúan como tutores y las relaciones que se establecen con los estudiantes de por vida 132 CAPÍTULO 5. E-LEARNING constituyen una base clave para desarrollar el potencial de liderazgo. El aprendizaje electrónico y las comunicaciones electrónicas brindan una mayor posibilidad de desarrollar relaciones a largo plazo entre los alumnos y sus educadores. 5.3.1. Qué Nos ha Llevado a Elegir E-learning Los aspectos que nos llevan a apostar por el e-learning, como metodología formativa son: Su capacidad de respuesta: 1. Aumenta y complementa las posibilidades formativas al ofrecer diversidad dentro de las modalidades existentes, formación presencial y a distancia. 2. Amplía y mejora la oferta formativa tanto en contenido como en el número de personas que van a recibir la formación. 3. Combinando la flexibilidad de la metodología y la rapidez aportada por el medio (Internet) permite la adaptación a las necesidades particulares de: Empresas: configurando planes de carrera individuales, reduciendo tiempos de inversión en formación y manteniendo sus áreas de trabajo permanente actualizadas para afrontar los cambios. Usuarios (alumnos): responder a las necesidades de cada uno (en contenido, ritmos de aprendizaje), y sobre todo con una gran rapidez para adaptarse a los del mercado de trabajo. La Innovación: 1. Apostar por e-learning puede parecer en sí mismo una acción innovadora por el hecho de romper con los métodos y modalidades de formación tradicionales. Pero no, la innovación radica en que supone la incorporación de nuevas tecnologías y metodologías al desarrollo de la formación. El uso de las Tecnologías de la Información y la Comunicación (TIC) se encuentra estrechamente relacionado con el desarrollo tecnológico de la 5.3. VENTAJAS DEL E-LEARNING 133 sociedad. Por lo que utilizar un método de formación que pone plenamente en contacto al alumno con las TIC, e-learning, favorece la incorporación y uso de nuevas tecnologías en la empresa y en el puesto de trabajo, generando a su vez una cultura de Internet. Los resultados de un mayor conocimiento de las Tecnologías de la Información y las Comunicaciones son: Aumento de las competencias y cualificación de los trabajadores, además de su “empleabilidad” a través de la formación continua. Aumento de la concienciación de la sociedad sobre el uso de las Nuevas Tecnologías, y las bondades que éstas pueden aportar tanto a nuestra vida personal como profesional, rompiendo una lanza a favor del cambio. Mejora de la utilización del capital humano a través de una mejora de la cualificación de los empleados. 2. La metodología e-learning, se caracteriza por ser: Sensorial: a través de la utilización de multimedia se aprovechan al máximo los canales sensitivos, logrando una mayor asimilación de los conocimientos. Interactiva: el alumno puede manejar la información como lo desee; puede imprimirla, copiarla a otro archivo, realizar conexiones a enlaces de interés, organizar el ritmo de lectura, detener en el momento que desee su estudio y continuar en el mismo sitio que lo dejó. Además tiene la posibilidad de conexión con otras personas: Tutor, alumnos, Participativa: implica al alumno como sujeto activo y protagonista del aprendizaje al ofrecer posibilidades de acción, variación, decisión, rompiendo con la pasividad y acentuando la implicación y responsabilidad del propio alumno en el proceso. El alumno puede realizar en el momento que lo desee una consulta sin tener que esperar de forma unidireccional recibir información. Comunicativa: el uso de tutorías on-line como técnica de conversación dirigida, con formato de mensajería instantánea o Chat, basado en preguntas más que en una discusión libre, permite la creatividad y el flujo de ideas y mejora las habilidades de expresión escrita. 134 CAPÍTULO 5. E-LEARNING Adaptable: aunque la información, contenidos, estén organizados y estructurados, el alumno puede seleccionar dentro de esa organización el camino que considera más adaptado a sus características. De esta forma rompe con la linealidad, ofreciendo un recurso flexible, que se adapta a las características personales, ritmos, gustos y aspiraciones del alumno. Sencilla: el entorno y las herramientas utilizadas no requieren conocimientos ni habilidades específicas. Esto permite atender el curso a diferentes alumnos con diferentes condiciones y horarios. La seguridad del entorno permite el acceso de diferentes alumnos al mismo material, aunque protegiendo el propio, e impidiendo que sus ideas y respuestas sean borradas por otros alumnos. 3. La superación de dificultades: Permite superar barreras tanto de espacio (dimensiones del aula o centro formativo), como de tiempo (adecuación a horarios, desplazamientos para acceder a los centros de formación) y distancia (dispersión geográfica de los alumnos, lejanía de los centros de conocimiento). El e-learning posibilita que la acción formativa tenga lugar desde cualquier lugar y en cualquier momento. Esta ventaja permite que, como personas que viven alejadas de los núcleos importantes de población donde se concentran escuelas y centros de conocimiento; como aquellas que por sus jornadas de trabajo les resulte incompatible el trabajo y el reciclaje profesional, tengan acceso a la formación. Otra gran ventaja del e-learning es que se puede acceder veinticuatro horas al día y los siete días de la semana (24x7), pudiendo así elegir cada cual el momento de estudio adecuado a sus necesidades y posibilidades. Eliminar el espacio físico-temporal posibilita que se pueda dar formación a un número muy superior de personas que a las posibles a través de la tradicional (presencial), se calcula que hasta unas diez veces más. 4. El ahorro: Se estima que alrededor del 60 % del coste empresarial de una acción formativa se destina a partidas que no son estrictamente formación. La tecnología posibilita que allí donde haya un ordenador conectado a la red exista un punto desde el cual formarse. 5.3. VENTAJAS DEL E-LEARNING 135 El e-learning supone un ahorro en costes, de un 40-60 % respecto a la formación tradicional, directos (coste propio de la formación) e indirectos (desplazamientos, comidas, horas de trabajo, etc.). Además, la formación on-line también puede llegar a reducir en un 60 % el tiempo que una persona tarda en adquirir determinados conocimientos respecto a la enseñanza tradicional y, así mismo, el nivel de retención de conocimientos aumenta hasta un 75 % debido a la metodología utilizada. 5. El conocimiento: El conocimiento es posible hacerlo llegar a más personas una vez que superamos las barreras señaladas anteriormente en el punto 3. Además esta metodología posibilita la cooperación y comunicación bidireccional (alumno-profesor, alumnos-alumnos,), así como el desarrollo de habilidades (uso de las TIC) y actitudes (responsabilidad, organización, autoaprendizaje,) trasladables posteriormente al puesto de trabajo. Ventajas Para los Usuarios de Formación e-Learning (alumnos) Acceso en cualquier momento, en cualquier lugar (anytime, anywhere). Acceso a una amplia oferta formativa al superarse las barreras geográficas. Acceso inteligente a la información. Disponibilidad del contenido 24x7 (24 horas al día, 7 días a la semana). Agilidad en la comunicación (consultas, comunicación entre participantes...). Alumno como sujeto activo y protagonista del proceso formativo. Personalización del aprendizaje (ritmos de aprendizaje, tutorías personalizadas,...). Mayor interacción entre participantes y profesores. Posibilidad de formación síncrona. Desarrollo de la formación en entornos colaborativos y dinámicos. Aunque hemos descubierto las múltiples ventajas del e-learning, y una de ellas ha sido el ahorro, es importante también insistir en que la formación online no va a sustituir por completo a la formación tradicional, ya que algunas personas y empresas considerarán que para ciertas materias es necesario, cuando no imprescindible, la formación presencial. [14] 136 5.4. CAPÍTULO 5. E-LEARNING ¿Qué Frena al E-learning en el Presente, y lo Traslada a un Desarrollo Pleno en el Futuro? Cierto es que el e-learning es una realidad presente, pero a la vez es “un ¡ya!, pero todavía no”. ¿Qué queremos decir? Pues que aunque actualmente son numerosas las empresas que desde sus Departamentos de Recursos Humanos han apostado por esta metodología formativa y muchas las empresas dedicadas al negocio de la formación a través de Internet, no podemos obviar que existen dificultades que impiden su desarrollo pleno a día de hoy y por tanto trasladan la consolidación del e-learning a un futuro próximo. Algunos de los inconvenientes con que nos encontramos son: 1. LA CULTURA La lenta incorporación de las empresas al uso de las Nuevas Tecnologías. La visión localista frente a la visión global de Internet. Pasar de la formación tradicional a un nuevo modelo de formación. Falta de “cultura de aprendizaje” sobre la pantalla de un PC. La falsa creencia de que el e-learning es totalmente individualista. 2. LAS INFRAESTRUCTURAS La baja calidad de las infraestructuras de comunicaciones con las que contamos es otro de los motivos de retraso en el despegue del e-learning. El hecho de que la banda ancha no haya llegado a todas las empresas y hogares (por su coste,) condiciona el desarrollo de los contenidos, ya que implementar todos los recursos posibles hoy en día al alcance de la tecnología supone, en muchos casos para el alumno, un alto tiempo de espera; lo cual desalienta en el proceso formativo pudiendo provocar abandonos. 3. LA MADUREZ Internet, las empresas y filosofía “punto com” siguen considerándose como un medio no maduro y genera desconfianza. 5.4. QUÉ FRENA AL E-LEARNING 137 Además aunque existe una gran variedad de oferta, la misma está muy segmentada, siendo difícil que una empresa encuentre en un solo proveedor respuesta a todas sus necesidades tecnológicas y formativas. 5.4.1. Mediadores e Interoperabilidad en E-Learning La revolución de las nuevas tecnologías y el crecimiento acelerado de Internet han permitido la creación de un gran número de plataformas de e-Learning y a su vez la necesidad de regular e interoperar estas plataformas. 1. La interoperabilidad es definida por la IEEE como “la habilidad de dos o más sistemas o componentes para intercambiar información y para usar la información que ha sido intercambiada” [15]. En los sistemas de e-Learning, la interoperabilidad permite el intercambio y reutilización de recursos educativos (cursos, documentos, videos, tutoriales, etc.) que han sido desarrollados en plataformas educativas heterogéneas, lo cual permite: Incrementar la calidad y variedad de recursos educativos disponibles en el mercado. Preservar el capital invertido en tecnología y desarrollo de recursos educativos, ya que un recurso educativo podrá ser intercambiado o usado sin la necesidad de realizar costosas modificaciones. Garantizar que los usuarios con diferentes plataformas hardware y software puedan acceder a recursos educativos de fuentes heterogéneas, con perdidas mínimas tanto de contenido como de funcionalidad. Para lograr la interoperabilidad en e-Learning es necesario: Definir una sintaxis y semántica común para la descripción de los recursos educativos (estándares y tecnologías del Web Semántico). 2. Estándares y especificaciones en e-Learning, en lo que respecta a las tecnologías de la información, los objetivos primordiales de los estándares consisten en lograr un “lenguaje común”, que facilite la integración e interoperabilidad entre diferentes sistemas y tecnologías, con pérdidas mínimas, tanto de contenido como de funcionalidad. La estandarización de las tecnologías aplicadas al aprendizaje pretende posibilitar la reutilización de recursos educativos y la interoperabilidad entre sistemas software heterogéneo. Los estándares en e-Learning permiten: [16] [17] 138 CAPÍTULO 5. E-LEARNING Accesibilidad: Proporcionar acceso de contenido desde cualquier lugar a través de un navegador de Internet sin importar la plataforma o el contenido en sí mismo. Interoperabilidad: El contenido debería ser independiente de herramienta o plataforma, de tal manera de poder utilizar diferentes plataformas para accesar un mismo contenido. También se refiere a la posibilidad de usar un contenido en una plataforma diferente. Adaptabilidad: Los estándares se refieren al hecho de poder facilitar la adaptación o personalización del entorno de aprendizaje. Re-usabilidad: Solo el uso de estándares nos facilitará el diseñar contenidos que puedan ser utilizados una y otra vez en diferentes asignaturas, cursos o programas educativos. Durabilidad: El contenido debería poder utilizarse sin importar cambios en la tecnología base en el cual se elaboró. Esto sin necesidad de tener que re-codificar o re-compilar programas de software. Productividad: Si los proveedores de tecnología e-Learning desarrollan sus productos siguiendo estándares comúnmente aceptados, la efectividad de eLearning se incrementa significativamente y el tiempo y costos serán reducidos 3. Mediadores educativos, Simultáneamente a la especificación de estándares para la descripción de recursos educativos, en el campo de los sistemas de información, la investigación sobre sistemas de integración ha tenido grandes avances. Los mediadores se definen como sistemas que soportan vistas integradas sobre múltiples fuentes de información. Un mediador es un módulo de software que emplea el conocimiento codificado de una serie de datos para crear información para una capa superior de aplicaciones. [18] Entre las principales características de los mediadores educativos se tiene: Son usados para integrar repositorios de información (Ej. Bases de datos y bases de conocimiento) Actúan como intermediarios entre las aplicaciones y los repositorios de información. Tienen capacidades de representación del conocimiento para el manejo de datos heterogéneos e incompatibles. Contiene 5.5. TENDENCIAS FUTURAS DEL E-LEARNING 139 conocimiento que va más allá del almacenamiento el cual es usado para analizar, combinar, reducir y homogeneizar una serie de posibles datos heterogéneos originados desde múltiples repositorios. La arquitectura de un esquema mediador. Logra la interoperabilidad entre los sistemas de información, usando módulos inteligentes (mediadores) para procesar las consultas de los usuarios. Una arquitectura de mediación comprende 4 capas: aplicaciones del usuario, mediador, wrappers (envoltorios) y los repositorios de información.Ver figura 5.1 de la pagina 139. Figura 5.1: Arquitectura de Sistema Mediador. 5.5. Tendencias Futuras del e-learning Hoy los educadores se debaten sobre la verdadera eficacia de las tecnologías de aprendizaje electrónico basadas en las computadoras. Por la evidencia existente se sugiere que los métodos de aprendizaje electrónico son tan eficaces para la enseñanza o aún más, que las aulas tradicionales. Mas allá de esto, queda claro que las tecnologías de aprendizaje electrónico pueden proporcionar oportunidades de aprendizaje para personas que de otra manera no tendrían acceso a nuevos conocimientos. Los métodos de aprendizaje electrónico pueden ser más eficaces que otros para la enseñanza de algunos 140 CAPÍTULO 5. E-LEARNING Figura 5.2: El Mundo Conectado por un Solo Click. tipos de contenidos. Las combinaciones de aprendizaje en aulas y aprendizaje electrónico podrían constituir la mejor estrategia educativa. El e-learning es el negocio del futuro. Esto no significa la muerte de la educación presencial, ésta con el entrenamiento a distancia, siempre van a coexistir, pero en proporciones diferentes (ver figura 5.2 de la página 140). Capítulo 6 Aplicación e-Learning Para VPN 6.1. Introducción En este capítulo se describe la aplicación en su totalidad, es decir, cómo está estructurada cada una de sus secciones, la forma en que se accede a sus funcionalidades, como así también, se describe el escenario en el que se encuentra soportada, donde se detallan aspectos fundamentales de hardware y software. La Aplicación e-Learning Para Redes Virtuales Privadas permite, entre otras cosas, la gestión de los usuarios que tienen acceso a la aplicación, de los temas (protocolo VPN), autoevaluaciones y pruebas sobre túneles VPN reales como parte de actividades de prácticas. Por la naturales del tema (VPN), el establecimiento de los túneles determina que el usuario ha adquirido los conocimientos necesarios para configurar los Clientes-VPN y entiende cómo funcionan las VPNs, por otro lado, la aplicación también permite evaluar los conocimiento teóricos del usuario que incluyen las configuraciones del lado del Servidor-VPN. 6.2. Escenario de la Aplicación Como se puede apreciar en la figura 6.1 de la página 142, el escenario incluye dispositivos físicos como PC servidores, PC clientes, routers y otros dispositivos lógicos como en el caso de los Servidores VPN virtualizados me141 142 CAPÍTULO 6. APLICACIÓN E-LEARNING PARA VPN diante el software VirtualBox. A continuación se detallan cada uno de los elementos del escenario acompañado de una breve descripción de la función que cumplen y su configuración en algunos casos. Figura 6.1: Escenario de la Aplicación. 6.2.1. Usuario del Sistema - (a) El usuario del sistema es aquel que ocupa el rol de alumno, luego de acceder como un usuario válido puede acceder a todas las funcionalidades del 6.2. ESCENARIO DE LA APLICACIÓN 143 sistema mediante un Cliente Web (Browser). Por otro lado, en el módulo de Prácticas con Túneles Reales (ver sección correspondiente en este capítulo) el usuario utiliza otro software cliente, en este caso un Cliente-VPN para establecer los túneles con los servidores virtuales. Vale aclarar que ambos clientes son independiente uno del otro, e incluso de la plataforma en donde se encuentran funcionando. 6.2.2. Router Huawei MT882 - (b) Este dispositivio, además de encaminar paquetes hacia sus destinos correspondientes, cumple otras funciones, como son: Cliente PPPeE: mediante un usuario y una contraseña otorgada por el ISP local establece la conexión a Internet que permitirá a los usurios alcanzar el Servidor Web y también será el medio de transporte que soportará los túneles VPN. Redireccionador de Puertos (IP-Forwarding): en este escenario se hace uso de una única dirección IP Pública, la cuál es compartida entre todos los servidores VPN y el mismo servidor Web que soporta la aplicación E-Learning. Para que los usuario puedan acceder a cada uno de estos Servidores, resulta necesario identificarlos de alguna manera para poder referenciarlos, por tal motivo, se utiliza el número de puerto destino de los paquetes IP para encaminarlos al servidor correspondiente. Cada protocolo de red tiene su propio número de puerto asignado oficialmente por IANA (Internet Assigned Numbers Authority), por medio de este puerto escucha las peticiones de conexión de los clientes (ver figura 6.2 de la página 144). En la figura 6.3 de la pág. 144 se puede apreciar la configuración necesaria en el router para la redirección de puertos, en una breve explicación se podría decir, por ejemplo, que todos los paquetes provientes de la interfaz WAN con puerto destino número 80 deben ser encaminados a la dirección 10.0.0.3 por medio de la interfaz Ethernet conectada a la red local (LAN). 6.2.3. Servidor E-Learning - (c) Este servidor consiste en una PC (física) provista de dos interfaces de red (una real Ethernet y una virtual VirtualBox); se lo considera el componente 144 CAPÍTULO 6. APLICACIÓN E-LEARNING PARA VPN Figura 6.2: Números de Puertos por cada Protocolo de Red. Figura 6.3: Redireccionamiento de Puertos en el Router Huawei MT882. 6.2. ESCENARIO DE LA APLICACIÓN 145 principal de la aplicación porque sobre el mismo está soportada toda la estructura, tanto la aplicación de e-Learning, la base de datos, como la virtualización de los servidores VPN. A continación se detallan cada una de sus funciones: Servidor Web - Tomcat v5.3: es el servidor correspondiente a la aplicación de e-Learning, mediante el cual los usuarios accederán a la misma y podrán descargar archivos en formato PDF,Word, etc. Servidor de Base de Datos - DB2: aparte de interactuar con el servidor web (aplicación e-Learning) en la actualización de los datos de usuarios, este servidor de base de datos también acepta conexiones desde aplicaciones web alojadas en los servidores virtuales. Virtualización de Servidores - VirtualBox: sobre este servidor se encuentra instalado el software de virtualización, las máquinas virtuales están almacenadas como archivos y cada una se ejecuta asignándole una parte de los recursos físicos de la PC. Por ejemplo, para el ServidorPPTP, se le asigna un disco virtual de 6 GB, 256 MB de la memoria principal, entre otros recursos. 6.2.4. Servidores Virtuales Todos los servidores virtuales tiene una aplicación en común; se trata de una aplicación web que se conecta al servidor de base de datos (b), con el objetivo de actualizar los datos de aquellos usuarios que hayan establecido correctamente los túneles VPN (sección correspondiente a Establecimiento de Túneles con Servidores Reales). La configuración de los servidores varía según los parametros de conexión que incluye cada práctica que realizan los usuarios. Por ejemplo, se puede asignar una dirección IP a los clientes VPN mediane DHCP o bien, se le envía al usuario la dirección IP como un parámetro de conexión. A continuación se detallan la características básicas de cada Servidor-VPN: Servidor PPP (Acceso Telefónico a Redes): • Sistema Operativo: Windows Server 2003. • Capacidad Disco Virtual: 6 GB. • Memoria Principal: 256 MB. • Interfaz de Red : VirtualBox Host-Only Ethernet Adapter. 146 CAPÍTULO 6. APLICACIÓN E-LEARNING PARA VPN • Protocolos: PPPeE. • Servidor PPP: activado. • Dirección IP: 10.0.1.1/8. • DHCP: activado según las prácticas. • Validación: Base de Datos Local. Servidor PPTP / L2TP: • Sistema Operativo: Windows XP SP3. • Capacidad Disco Virtual: 6 GB. • Memoria Principal: 256 MB. • Interfaz de Red : VirtualBox Host-Only Ethernet Adapter. • Protocolos: PPTP y L2TP. • Servidor PPP: activado. • Dirección IP: 10.0.1.2 /8. • DHCP: activado según las prácticas. • Validación: Base de Datos Local. Servidor OpenVPN: • Sistema Operativo: Linux Ubuntu Desktop 10.4. • Capacidad Disco Virtual: 10gb. • Memoria Principal: 256 MB. • Interfaz de Red : TAP-Win32 Adapter V8. • Protocolos: SSL (OpenVPN). • Dirección IP: 10.0.1.3./8 • DHCP: activado según las prácticas. • Esquema: Infraestructura de Clave Pública (PKI). • Validación: Certificados X.509. • Reglas de Firewall IPTables: iptables -P OUTPUT ACCEPT iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT 6.2. ESCENARIO DE LA APLICACIÓN 147 #iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o 192.168.3.0/24 -j MASQUERADE #iptables -t nat -I POSTROUTING -o 192.168.0.0/24 -s 192.168.3.0/24 -j MASQUERADE #iptables -t nat -I POSTROUTING -o 192.168.3.0/24 -j MASQUERADE iptables -t nat -I POSTROUTING -s 192.168.3.0/24 -o eth0 -j MASQUERADE iptables -t nat -I POSTROUTING -o tun0 -j MASQUERADE iptables -A FORWARD -s 192.168.0.0/24 -o tun0 -j ACCEPT iptables -A FORWARD -d 192.168.0.0/24 -m state —state ESTABLISHED, RELATED -i tun0 -j ACCEPT iptables -A INPUT -i tun0 -j ACCEPT iptables -A INPUT -p udp —dport 1194 -j ACCEPT iptables -A INPUT -p tcp —dport 1194 -j ACCEPT iptables -A FORWARD -i tun0 -j ACCEPT iptables -A FORWARD -i tun0 -j ACCEPT iptables -A OUTPUT -o tun0 -j ACCEPT • Configuración del archivo server.conf: port 1194 proto udp dev tun ca /etc/openvpn/key/ca.crt cert /etc/openvpn/key/server.crt key /etc/openvpn/key/server.key dh /etc/openvpn/key/dh1024.pem #Direcciones que se asignaran a los clientes, el server es .1 server 192.168.3.0 255.255.255.0 ifconfig-pool-persist ipp.txt #Ruta para que los clientes alcancen la red local del server (192.168.0.0/24) push route 10.0.0.0 255.255.255.0" #route 10.0.0.0 255.255.255.0 192.168.3.1 #push route-gateway 192.168.0.1" 148 CAPÍTULO 6. APLICACIÓN E-LEARNING PARA VPN route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.3.1 client-to-client persist-key persist-tun keepalive 10 120 comp-lzo status openvpn-status.log verb 4 6.3. Descripción de la Aplicación Web 6.3.1. Pantalla de Inicio La pantalla de inicio consta de un menú principal que cuenta con las opciones más importantes como se detalla a continación (ver figura 6.4 de la pág. 149): Inicio. Usuario. Profesor. Ayuda. Gestión de Usuarios El primer paso para poder acceder a la aplicación es ingresar al sistema como un usuario válido, para ello, la persona interesada debe ingresar sus datos personales en el siguiente formulario (ver figura 6.5 de la pág. 150). 6.3.2. Menú de Usuarios Para poder acceder a las opciones del “Sistema e-Hearling VPN” el usuario debe ingresar su nombre de usuario y contraseña, si es que está registrado. Al presionar el botón aceptar, la aplicación valida los datos, ya sea si los campos están vacíos o el usuario y contraseña son incorrectos o no existen. En el caso de que los datos sean incorrectos o no existan, el sistema da aviso del error. 6.3. DESCRIPCIÓN DE LA APLICACIÓN WEB Figura 6.4: Pantalla de Inicio de la Aplicación. 149 150 CAPÍTULO 6. APLICACIÓN E-LEARNING PARA VPN Figura 6.5: Formulario de Alta de Usuario. 6.3. DESCRIPCIÓN DE LA APLICACIÓN WEB 151 Una vez que el Usuario haya ingresado al sistema dispone de las siguientes opciones (ver figura 6.6 de la pág. 152 ): Teoría sobres VPN. Autoevaluar mis Conocimeintos . Actividades con Túneles Reales. Consultar Resultados. Teoría sobre VPN Esta sección se que se muestra en la figura 6.7 de la página 153 y permite al usuario seleccionar el tema sobre el cual desea aprender; por cada uno de los temas tendrá la posibilidad de descargar un archivo de extención *.doc o *.pdf con toda la documentación correspondiente. La lectura de este material por parte del usuario es muy importante, porque sobre estos documentos están basadas las preguntas de Autoevaluación y las prácticas de Túneles. Autevaluar mis Conocimientos Cuando el usuario decide en qué tema desea evaluarse, se abre un cuestionario con cinco preguntas múltiple opción, donde sólo una es la correcta, y se inicia un cronómetro que está programado para que el alumno tenga un límite de tiempo determinado para evaluarse (ver figura 6.8 de la pág. 154). Todas las preguntas tienen que tener marcadas una respuesta. El sistema muestra los resultados de la evaluación y pregunta si desea seguir rindiendo. Sólo se puede rendir 3 veces el mismo tema. Prácticas con Túneles Reales Las Prácticas con Túneles Reales son una forma de verificar los conocimientos adquiridos por los usuarios de la aplicación. El objetivo de esta sección es que el usuario sea capaz de establecer un Túnel VPN haciendo uso de un software Cliente mediante el cuál, deberá intentar conectarse a alguno de los Servidores VPN que forma parte del escenario de la aplicación e-Learning. Aquellos usuarios que fueron capaces de establecer los túneles tendrán acceso a un portal Web (sección distribuida de la aplicación e-Learning) donde 152 CAPÍTULO 6. APLICACIÓN E-LEARNING PARA VPN Figura 6.6: Menú de Usuario. 6.3. DESCRIPCIÓN DE LA APLICACIÓN WEB Figura 6.7: Menú de Descarga de Teoría. 153 154 CAPÍTULO 6. APLICACIÓN E-LEARNING PARA VPN Figura 6.8: Cuestionario de Autoevaluación. 6.3. DESCRIPCIÓN DE LA APLICACIÓN WEB 155 podrán ingresar sus datos, dejando asentado así, que concluyeron de forma satisfactorio la práctica correspondiente. Esta es una forma automática de evaluar a los usuarios y tiene la ventaja de que no necesita de un administrador que esté monitoreando cada una de las prácticas. A continuación se detallan los pasos que deberán respetar los usuarios para aprobar cada una de las prácticas: 1o Paso: El usuario ingresa a la sección Prácticas con Túneles Reales que figura en el menú de usuarios, donde deberá seleccionar el protocolo VPN correspondiente a la práctica que quiere realizar. A partir de aquí, podrá descargar un instructivo que le ayudará a completar la práctica acompañado de los párametros del Túnel, entre los cuales figuran según la práctica algunos de los siguientes: • Protocolo de Túnel. • Método de Encriptación. • Método de Autenticación. • Arquitectura VPN. • Dirección IP Privada del Portal de Validación. • Dirección IP del Cliente-VPN. • Dirección IP del Servidor-VPN. • Puerta de Enlaces. • Horario de Conexión al Servidor. • Certificados en casos de una Infraestructura de Clave Pública. En la figura 6.9 de la pág. 156 se puede apreciar un ejemplo de una práctica en formato PDF, la cual es usuario la descarga desde la aplicación. 2o Paso: Ayudados por las instrucciones y mediante los parámetros del túnel, los usuarios deberán establecer correctamente el túnel VPN para poder llegar al portal de validación donde dejarán asentados sus datos (usuario y contraseña). La dirección del servidor web corresponde a la IP Privada de la red Virtual Privada a la que pertenece, y la única manera de llegar a éste es perteneciendo a la misma red privada. En la figura 6.2 de la pág. 157 se puede ver un esquema en donde un usuario llega al Portal de Actualización por medio de un túnel VPN. 156 CAPÍTULO 6. APLICACIÓN E-LEARNING PARA VPN Figura 6.9: Prácticas con Túneles Reales. 6.3. DESCRIPCIÓN DE LA APLICACIÓN WEB Figura 6.10: Prácticas con Túneles Reales. 157 158 CAPÍTULO 6. APLICACIÓN E-LEARNING PARA VPN En la figura 6.11 de la pág. 158 se puede ver la interfaz gráfica de la aplicación Actualiza (portal de actualización), donde el usuario asentará sus datos en el sistema para antes de pasar por su correspondientes validaciones. Figura 6.11: Portal de Actualización de Túnel Establecido Correctamente. Cada Portal Web forma parte de la aplicación e-Learning, se lo podría considerar como parte de un sistema distribuido ya que están alojados en distintos servidores. Los portales poseen una conexión ODBC (Open DataBase Connectivity) con la base de datos de la aplicación, mediante la cuál pueden actualizar los datos de los usuarios. 3er Paso: En este último paso, los Portales de Validación se encargan de asentar los datos de los usuarios que aprobaron las prácticas, cuya 6.3. DESCRIPCIÓN DE LA APLICACIÓN WEB 159 tarea es transparente tanto para los usuarios como el administrador de la aplicación (ver figura 6.12 de la pág. 159). Figura 6.12: Conexión OBDC de un Portal Web con la Base de Datos de la Aplicación Una vez que son ingresados los datos del usuario, el sistema valida si son correctos y en ese caso, detalla un resumen con los valores y parámetros de la conexión como se ve en la figura 6.13 de la página 160. Consultar Resultados Esta página se divide en dos cuadros: 1. Actividades Realizadas: en este cuadro se puede consultar sobre todas las actividades con túneles reales que realizó el usuario. Si el usuario desea, puede descargar también un informe detallado de cada conexión. 2. Resultados de Autoevaluación: se detallan cada una de las evaluaciones que rindió el usuario. En la figura 6.14 de la pág. 161 se detalla las secciones de consultas del usuario. 160 CAPÍTULO 6. APLICACIÓN E-LEARNING PARA VPN Figura 6.13: Detalle de la Conexión VPN. 6.3. DESCRIPCIÓN DE LA APLICACIÓN WEB 161 Figura 6.14: Resultados de las Prácticas y Evaluaciones de los Usuarios. 162 CAPÍTULO 6. APLICACIÓN E-LEARNING PARA VPN 6.3.3. Menú Profesor Al igual que el usuario del sistema, el Profesor o también denominado Administrador del sistema, debe ingresar su usuario y contraseña para poder ingresar al sistema como se ve en la figura 6.15 de la pág. 162 .Una vez que el administrador se ha validad conrrectamente puede acceder a un menú con las siguientes opciones de administración para cada uno de los temas de la aplicación (ver figura 6.16 de la pág. 163). Autoevaluaciones (Agregar, eliminar y modificar las preguntas). Actualizar los temas. Actualizar las actividades. Figura 6.15: Validación de Profesor. 6.3. DESCRIPCIÓN DE LA APLICACIÓN WEB Figura 6.16: Menu de Administración. 163 164 CAPÍTULO 6. APLICACIÓN E-LEARNING PARA VPN Autoevaluaciones Por medio de esta sección, el usuario puede acceder a funciones ABM (Alta, Baja y Modificaciones) sobre las preguntas correspondientes a las autoevaluaciones. 1- Agregar preguntas: El profesor selecciona el tema en el cual desea agregar una pregunta. La pantalla que muestra el sistema es la de la figura 6.17 de la pág. 165. Se carga la pregunta con cinco opciones de respuestas, donde sólo una es la correcta. La respuesta correcta tiene que estar marcada. Se puede ver cuántas preguntas actualmente contiene cada tema, a través de una leyenda que muestra el sistema en esta página. Mientras más preguntas cargue el profesor por tema, el alumno a la hora de evaluarse en el mismo tema (como las preguntas del cuestionario son elegidas al azar) obtendrá mayor diversidad de preguntas. El sistema validará los datos al cargar una pegunta y mostrará mensajes de error, en caso de que: Los campos estén vacíos. Haya respuestas iguales. No haya marcado la respuesta correcta. La pregunta ya existe. Si ninguno de estos errores existe la carga se realizará exitosamente. 2- Modificar una pregunta: Se elige el tema y se selecciona la pregunta a modificar a través de una lista que contiene todas las preguntas del tema seleccionado, luego se procede a modificar ya sea, la pregunta, las respuestas o la respuesta correcta y se presiona el botón modificar, la pregunta se actualizará según la modificación hecha. 3- Eliminar una pregunta: Se procede de la misma forma que cuando se quiere modificar, sólo que antes de eliminar, el sistema muestra un mensaje si está seguro o no de realizar esta operación. 6.3. DESCRIPCIÓN DE LA APLICACIÓN WEB Figura 6.17: Alta de Pregunta de Autoevaluación. 165 166 CAPÍTULO 6. APLICACIÓN E-LEARNING PARA VPN Figura 6.18: Actualización de Apuntes Actualizar los Apuntes Para actualizar los apuntes el primer paso es elegir el tema al cuál pertenece el apunte en cuestión. Por cada uno de los apuntes se cuenta con la posibilidad de agregar apuntes y visualizar los disponibles, como así también modifarlos y eliminarlos (ver figura 6.18 de la pág. 166). Actualizar Actividades Se presenta la siguiente pantalla donde el profesor selecciona el tema con el que desea trabajar, al igual que en la actualización de los apuntes, cuenta 6.3. DESCRIPCIÓN DE LA APLICACIÓN WEB 167 con un menú con opciones como agregar, modificar o eliminar actividades (ver figura 6.19 de pág. 167). Figura 6.19: Actualización de Actividades de Túnles. Capítulo 7 Herramientas 7.1. Introducción al Lenguaje Java Java es un lenguaje orientado a objetos. Esto significa que posee ciertas características que hoy día se consideran estándares en los lenguajes OO: Objetos. Clases. Métodos. Subclases. 169 170 CAPÍTULO 7. HERRAMIENTAS Herencia simple. Enlace dinámico. Encapsulamiento. Para programar orientado a objetos es necesario primero diseñar un conjunto de clases. La claridad, eficiencia y mantenibilidad del programa resultante dependerá principalmente de la calidad del diseño de clases. Un buen diseño de clases significará una gran economía en tiempo de desarrollo y mantención. Lamentablemente se necesita mucha habilidad y experiencia para lograr diseños de clases de calidad. Un mal diseño de clases puede llevar a programas OO de peor calidad y de más alto costo que el programa equivalente no OO [19]. Por qué entonces la ventaja de programar en un lenguaje OO, si se requiere una experiencia que probablemente una persona nunca tendrá el tiempo de práctica para llegar a obtenerla. La respuesta a este interrogante es que Java es un lenguaje multiparadigma (como muchos otros lenguajes de programación). No se necesita hacer un diseño de clases para programar una aplicación de mil líneas. Entonces otro interrogante podrá ser porque no programar con otro lenguaje más simples, como puede ser Visual Basic, si no se necesita que sea OO. La respuesta a ésto es la gran ventaja de un lenguaje OO, que son las bibliotecas de clases que se pueden construir para la aplicación [20]. Una biblioteca de clases cumple el mismo objetivo de una biblioteca de procedimientos en una lenguaje como C. Sin embargo: Una biblioteca de clases es mucho más fácil de usar que una biblioteca de procedimientos, incluso para programadores sin experiencia en orientación a objetos. Esto se debe a que las clases ofrecen mecanismos de abstracción más eficaces que los procedimientos. Se puede distinguir entre varios tipos de programadores en Java: • El diseñador de clases: es el encargado de definir qué clases ofrece una biblioteca y cuál es la funcionalidad que se espera de estas clases. Esta persona tiene que ser muy hábil y de mucha experiencia. Un diseño equivocado puede conducir a clases que son incomprensibles para los clientes de la biblioteca. • El programador de clases de biblioteca: sólo programa la clases especificadas por el diseñador de clases. Esta persona debe entender 7.1. INTRODUCCIÓN AL LENGUAJE JAVA 171 orientación a objetos, pero no requiere mayor experiencia en diseño de clases. • El cliente de bibliotecas: es el programador de aplicaciones. Él sólo usa las clases que otros han diseñado y programado. Como en el caso anterior necesita entender orientación a objetos y conocer la biblioteca que va usar, pero no necesita mayor experiencia. Tanto programadores de clases como clientes de bibliotecas pueden llegar a convertirse en buenos diseñadores de clases en la medida que adquieran experiencia, comparando los diseños de las bibliotecas que utilicen. Por lo tanto es importante destacar que no se necesita gran experiencia en diseño orientado a objetos para poder aprovechar las ventajas de la orientación a objetos [21]. Bibliotecas de Clases Estándares de Java Toda implementación de Java debe tener las siguientes bibliotecas de clases: Manejo de archivos. Comunicación de datos. Acceso a la red Internet.. Acceso a bases de datos. Interfaces gráficas. La interfaz de programación de estas clases es estándar, es decir en todas ellas las operaciones se invocan con el mismo nombre y los mismos argumentos. Java es Multiplataforma Los programas en Java pueden ejecutarse en cualquiera de las siguientes plataformas, sin necesidad de hacer cambios: Windows/95 y /NT. Power/Mac. Unix (Solaris, Silicon Graphics, ...). La compatibilidad es total: 172 CAPÍTULO 7. HERRAMIENTAS A nivel de fuentes: el lenguaje es exactamente el mismo en todas las plataformas. A nivel de bibliotecas: en todas las plataformas están presentes las mismas bibliotecas estándares. A nivel del código compilado: el código intermedio que genera el compilador es el mismo para todas las plataformas. Lo que cambia es el intérprete del código intermedio. Características del Lenguaje Java Se características son las siguientes: Robustez: En Java no se pueden cometer los cuatro errores que se mencionarán a continuación: • Java siempre chequea los índices al acceder a un arreglo. Java realiza chequeo de tipos durante la compilación (al igual que C). En una asignación entre punteros el compilador verifica que los tipos sean compatibles. Además, Java realiza chequeo de tipos durante la ejecución (cosa que C y C++ no hacen). Cuando un programa usa un cast para acceder a un objeto como si fuese de un tipo específico, se verifica durante la ejecución que el objeto en cuestión sea compatible con el cast que se le aplica. Si el objeto no es compatible, entonces se levanta una excepción que informa al programador la línea exacta en donde está la fuente del error. • Java posee un recolector de basuras que administra automáticamente la memoria. Es el recolector el que determina cuando se puede liberar el espacio ocupado por un objeto. El programador no puede liberar explícitamente el espacio ocupado por un objeto. • Java no posee aritmética de punteros, porque es una propiedad que no se necesita para programar aplicaciones. En C sólo se necesita la aritmética de punteros para programa malloc/free o para programar el núcleo del sistema operativo. • Por lo tanto Java no es un lenguaje para hacer sistemas operativos o administradores de memoria, pero sí es un excelente lenguaje para programar aplicaciones. Flexibilidad: Java combina flexibilidad, robustez y legibilidad gracias a una mezcla de chequeo de tipos durante la compilación y durante la ejecución. En Java se pueden tener punteros a objetos de un tipo específico 7.1. INTRODUCCIÓN AL LENGUAJE JAVA 173 y también se pueden tener punteros a objetos de cualquier tipo. Estos punteros se pueden convertir a punteros de un tipo específico aplicando un cast, en cuyo caso se chequea en tiempo de ejecución de que el objeto sea de un tipo compatible. El programador usa entonces punteros de tipo específico en la mayoría de los casos con el fin de ganar legibilidad y en unos pocos casos usa punteros a tipos desconocidos cuando necesita tener flexibilidad. Por lo tanto Java combina la robustez de Pascal con la flexibilidad de Lisp, sin que lo programas pierdan legibilidad en ningún caso. Administración Automática de la Memoria: En Java los programadores no necesitan preocuparse de liberar un trozo de memoria cuando ya no lo necesitan. Es el recolector de basuras el que determina cuando se puede liberar la memoria ocupada por un objeto. Un recolector de basuras es un gran aporte a la productividad. Se ha estudiado en casos concretos que los programadores han dedicado un 40 % del tiempo de desarrollo a determinar en qué momento se puede liberar un trozo de memoria. Además este porcentaje de tiempo aumenta a medida que aumenta la complejidad del software en desarrollo. Es relativamente sencillo liberar correctamente la memoria en un programa de 1000 líneas. Sin embargo, es difícil hacerlo en un programa de 10000 líneas. Y se puede postular que es imposible liberar correctamente la memoria en un programa de 100000 líneas. Resumiendo, se puede concluir que: todo programa de 100000 líneas que libera explícitamente la memoria tiene errores latentes, sin un recolector de basuras no hay verdadera modularidad y un recolector de basuras resuelve todos los problemas de manejo de memoria en forma trivial. El interrogante sería cuál es el impacto de un recolector de basura en el desempeño de un programa. El sobrecosto de la recolección de basuras no es superior al 100 %. Es decir si se tiene un programa que libera explícitamente la memoria y que toma tiempo X, el mismo programa modificado de modo que utilice un recolector de basuras para liberar la memoria tomará un tiempo no superior a 2X. Este sobrecosto no es importante si se considera el periódico incremento en la velocidad de los procesadores. El impacto que un recolector de basura en el tiempo de desarrollo y en la confiabilidad del software resultante es muchos más importante que la pérdida en eficiencia. 174 CAPÍTULO 7. HERRAMIENTAS 7.1.1. Estructura General de un Programa Java En el siguiente ejemplo se presenta la estructura habitual de un programa realizado en cualquier lenguaje orientado a objetos u OOP (Object Oriented Programming), y en particular en el lenguaje Java: import java.awt.*; import java.lang.String; import java.lang.Integer; import java.awt.event.WindowEvent; import java.util.*; import java.awt.TextField; public class Simu extends Frame implements ActionListener,ItemListener{ MenuBar barra; m1 =new Menu(“Archivo”); barra.add(m1); m2 =new Menu(“Ver”); barra.add(m2); .... public static void main(String argv [ ]){ Simu menus = new Simu(); menus.setTitle(“Simulación de Redes”); menus.setVisible(true); } } Aparece una clase que contiene el programa principal Simu (aquel que contiene la función main()) y algunas clases de usuario (las específicas de la aplicación que se está desarrollando) que son utilizadas por el programa principal. La aplicación se ejecuta por medio del nombre de la clase que contiene la función main(). Las clases de Java se agrupan en packages, que son librerías de clases. Si las clases no se definen como pertenecientes a un package, se utiliza un package por defecto (default) que es el directorio activo. 7.1. INTRODUCCIÓN AL LENGUAJE JAVA 7.1.2. 175 Conceptos Básicos Clase Una clase es una agrupación de datos (variables o campos) y de funciones (métodos) que operan sobre esos datos. A estos datos y funciones pertenecientes a una clase se les denomina variables y métodos o funciones miembro. La programación orientada a objetos se basa en la programación de clases [21, Joyanes]. Un programa se construye a partir de un conjunto de clases. Una vez definida e implementada una clase, es posible declarar elementos de esta clase de modo similar a como se declaran las variables del lenguaje (int, double, String). Los elementos declarados de una clase se denominan objetos de la clase. De una única clase se pueden declarar o crear numerosos objetos. La clase es lo genérico: es el patrón o modelo para crear objetos. Cada objeto tiene sus propias copias de las variables miembro, con sus propios valores, en general distintos de los demás objetos de la clase. Las clases pueden tener variables static, que son propias de la clase y no de cada objeto [22, Bosz]. Ejemplo: public abstract class FuncionActivacion implements Cloneable,Serializable{ /*constructor sin argumentos que permite la herencia */ public FuncionActivacion () { } } Herencia La herencia permite que se puedan definir nuevas clases basadas en clases existentes, lo cual facilita reutilizar código previamente desarrollado. Si una clase deriva de otra (extends) hereda todas sus variables y métodos. La clase derivada puede añadir nuevas variables y métodos y/o redefinir las variables y métodos heredados. En Java, a diferencia de otros lenguajes orientados a objetos, una clase sólo puede derivar de una única clase, con lo cual no es posible realizar herencia múltiple en base a clases. Sin embargo es posible “simular” la herencia múltiple en base a las interfaces. Interface 176 CAPÍTULO 7. HERRAMIENTAS Una interface es un conjunto de declaraciones de funciones. Si una clase implementa (implements) una interface, debe definir todas las funciones especificadas por la interface. Una clase puede implementar más de una interface, representando una forma alternativa de la herencia múltiple. Una interface puede derivar de otra o incluso de varias interfaces, en cuyo caso incorpora todos los métodos de las interfaces de las que deriva. Ejemplo: La clase TangenteHiperbólica se extiende de la clase FunciónActivación que implementa la interface Serializable. /*función de activación tangente hiperbólica */ public class TangenteHiperbolica extends FuncionActivacion implements Serializable{ /*constructor sin argumentos */ public TangenteHiperbolica () { } } Package Un package es una agrupación de clases. Existen una serie de packages incluidos en el lenguaje. Además el programador puede crear sus propios packages. Todas las clases que formen parte de un package deben estar en el mismo directorio. Los packages se utilizan con las siguientes finalidades: 1. Para agrupar clases relacionadas. 2. Para evitar conflictos de nombres. En caso de conflicto de nombres entre clases importadas, el compilador obliga a cualificar en el código los nombres de dichas clases con el nombre del package. 3. Para ayudar en el control de la accesibilidad de clases y miembros. Por las razones citadas, durante la etapa de Diseño del Software desarrollado, se ha decido crear dos paquetes, calculos e interfase, utilizando la sentencia package. package myprojects.simu; import myprojects.calculos.*; import myprojects.interfase.*; 7.1. INTRODUCCIÓN AL LENGUAJE JAVA 7.1.3. 177 Variables Dentro del Lenguaje Java Una variable en Java es un identificador que representa una palabra de memoria que contiene información. El tipo de información almacenado en una variable sólo puede ser del tipo con que se declaró esa variable. En Java hay dos tipos principales de variables: 1. Variables de tipos primitivos. Están definidas mediante un valor único y almacenan directamente ese valor siempre que pertenezca al rango de ese tipo. Por ejemplo una variable int almacena un valor entero como 1, 2, 0, -1, etc. Esto significa que al asignar una variable entera a otra variable entera, se copia el valor de la primera en el espacio que ocupa la segunda variable. 2. Variables referencia. Las variables referencia son referencias o nombres de una información más compleja: arrays u objetos de una determinada clase. Una referencia a un objeto es la dirección de un área en memoria destinada a representar ese objeto. El área de memoria se solicita con el operador new. Al asignar una variable de tipo referencia a objeto a otra variable se asigna la dirección y no el objeto referenciado por esa dirección. Esto significa que ambas variables quedan referenciando el mismo objeto. En Java una variable no puede almacenar directamente un objeto, como ocurre en C y C++. Por lo tanto cuando se dice en Java que una variable es un string, lo que se quiere decir en realidad es que la variable es una referencia a un string. Desde el punto de vista de su papel dentro del programa, las variables pueden ser: 1. Variables miembro de una clase. Se definen en una clase, fuera de cualquier método; pueden ser tipos primitivos o referencias. 2. Variables locales. Se definen dentro de un método o más en general dentro de cualquier bloque entre llaves {}. Se crean en el interior del bloque y se destruyen al finalizar dicho bloque. Pueden ser también tipos primitivos o referencias. En la Tabla 7.1 de la pág. 178 se muestra una declaración, el nombre de la variable introducida y el tipo de información que almacena la variable: En la Tabla 7.2 de la pág. 178 se muestran las dos grandes categorías de tipos para las variables en Java: 178 CAPÍTULO 7. HERRAMIENTAS Declaración int i; String s; int a []; int[]b; Identificador i s a b Tipo entero referencia a string referencia a arreglo de enteros referencia a arreglo de enteros Cuadro 7.1: Tipos de Variables. Tipos Primitivos int, short, byte, long char, boolean float, double Referencias a Objetos Strings Arreglos otros objetos Cuadro 7.2: Categorías de Variables. En la Tabla 7.3de la pág. 178 se indica para cada tipo primitivo el número de bits que se emplea en su representación y el rango de valores que se puede almacenar en las variables de estos tipos. Tipo int short byte long boolean char float double Bits 32 16 8 64 1 16 32 64 Rango −231 ..231 − 1 −215 .,215 − 1 −27 .,27 − 1 −263 .,263 − 1 n/a n/a IEEE IEEE Ejemplos 0,1,5,-120,... 0,1,5,-120,... 0,1,5,-120,... 0,1,5,-120,... false, true ‘a’,‘A’,‘0’,‘*’,... 1.2 1.2 Cuadro 7.3: Tipos Primitivos de Variables. Se dice que un tipo A es de mayor rango que un tipo B si A es un superconjunto de B. Esto quiere decir que las variables de tipo B siempre se pueden asignar a variables de tipo A (eventualmente con pérdida de significancia). Por ejemplo int es de mayor rango que short, que a su vez es de mayor 7.1. INTRODUCCIÓN AL LENGUAJE JAVA 179 rango que byte. Float y double son de mayor rango que int. Double es de mayor rango que float. Esto se puede quedar resumido de la siguiente manera: double > float > long > int > short > byte Se entiende por visibilidad, ámbito o scope de una variable, la parte de la aplicación donde dicha variable es accesible y por lo tanto puede ser utilizada en cualquier expresión. En Java todos las variables deben estar incluidas en una clase. En general las variables declaradas dentro de unas llaves {}, es decir dentro de un bloque, son visibles y existen dentro de estas llaves. Por ejemplo las variables declaradas al principio de una función existen mientras se ejecute la función; las variables declaradas dentro de un bloque if no serán válidas al finalizar las sentencias correspondientes a dicho if y las variables miembro de una clase (es decir declaradas entre las llaves {} de la clase pero fuera de cualquier método) son válidas mientras existe el objeto de la clase. Las variables miembro de una clase declaradas como public son accesibles a través de una referencia a un objeto de dicha clase utilizando el operador punto (.). Las variables miembro declaradas como private no son accesibles directamente desde otras clases. Las funciones miembro de una clase tienen acceso directo a todas las variables miembro de la clase sin necesidad de anteponer el nombre de un objeto de la clase. Sin embargo las funciones miembro de una clase B derivada de otra A, tienen acceso a todas las variables miembro de A declaradas como public o protected, pero no a las declaradas como private. Una clase derivada sólo puede acceder directamente a las variables y funciones miembro de su clase base declaradas como public o protected. Otra característica del lenguaje es que es posible declarar una variable dentro de un bloque con el mismo nombre que una variable miembro, pero no con el nombre de otra variable local. La variable declarada dentro del bloque oculta a la variable miembro en ese bloque. Para acceder a la variable miembro oculta será preciso utilizar el operador this. Uno de los aspectos más importantes en la programación orientada a objetos (OOP) es la forma en la cual son creados y eliminados los objetos.La forma de crear nuevos objetos es utilizar el operador new.La eliminación de los objetos la realiza el denominado garbage collector, quien automáticamente libera o borra la memoria ocupada por un objeto cuando no existe ninguna referencia apuntando a ese objeto. 180 7.1.4. CAPÍTULO 7. HERRAMIENTAS Operadores en Java Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++. Estos operadores se describen brevemente a continuación. Operadores Aritméticos Son operadores binarios (requieren siempre dos operandos) que realizan las operaciones aritméticas habituales: suma (+), resta (-), multiplicación (*), división (/) y resto de la división ( %). Operadores de Asignación Los operadores de asignación permiten asignar un valor a una variable. El operador de asignación por excelencia es el operador igual (=). La forma general de las sentencias de asignación con este operador es: variable = expression; Java dispone de otros operadores de asignación. Se trata de versiones abreviadas del operador (=) que realizan operaciones “acumulativas” sobre una variable. La siguiente Tabla 7.4 de la pág. 180, muestra estos operadores y su equivalencia con el uso del operador igual (=). Operador += -= =* =/ %= Utilización op1 + = op2 op1 - = op2 op1 * = op2 op1 / = op2 op1 % = op2 ExpresiónEquivalente op1 = op1 + op2 op1 = op1 - op2 op1 = op1 * op2 op1 = op1 / op2 op1 = op1 % op2 Cuadro 7.4: Operadores de asignación. Operadores Unarios Los operadores más (+) y menos (-) unarios sirven para mantener o cambiar el signo de una variable, constante o expresión numérica. Su uso en Java es el estándar de estos operadores. Operadores Incrementales 7.1. INTRODUCCIÓN AL LENGUAJE JAVA 181 Java dispone del operador incremento (++) y decremento (—). El operador (++) incrementa en una unidad la variable a la que se aplica, mientras que (—) la reduce en una unidad. Estos operadores se pueden utilizar de dos formas: 1. Precediendo a la variable (por ejemplo: ++i ). En este caso primero se incrementa la variable y luego se utiliza (ya incrementada) en la expresión en la que aparece. 2. Siguiendo a la variable (por ejemplo: i++). En este caso primero se utiliza la variable en la expresión (con el valor anterior) y luego se incrementa. En muchas ocasiones estos operadores se utilizan para incrementar una variable fuera de una expresión. En este caso ambos operadores son equivalente. Si se utilizan en una expresión más complicada, el resultado de utilizar estos operadores en una u otra de sus formas será diferente. La actualización de contadores en bucles for es una de las aplicaciones más frecuentes de estos operadores. Operadores Relacionales Los operadores relacionales sirven para realizar comparaciones de igualdad, desigualdad y relación de menor o mayor. El resultado de estos operadores es siempre un valor boolean (true o false) según se cumpla o no la relación considerada. La siguiente Tabla 7.5 de la pág. 181 muestra los operadores relacionales de Java. Operador > >= < <= == != Utilización op1 > op2 op1 >= op2 op1 < op2 op1 <= op2 op1 == op2 op1 != op2 El resultado es true si op1 es mayor que op2 si op1 es mayor o igual que op2 si op1 es menor que op 2 si op1 es menor o igual que op2 si op1 y op2 son iguales sio p1 y op2 son diferentes Cuadro 7.5: Operadores relacionales. Estos operadores se utilizan con mucha frecuencia en las bifurcaciones y en los bucles, que se verán luego. Ejemplo de Operadores Incrementales y Operadores Relacionales en un método. 182 CAPÍTULO 7. HERRAMIENTAS public void cambiarParesEntrenamiento(double[ ] paresEntrenamiento){ /* inicialización de sus valores a partir de los valores pasados como argumentos */ for(int i = 0; i< paresEntrenamiento.length; i++) {for(int j = 0; j< numeroNeuronasEntrada; j++) {entradaEntrenamiento[i][j] = paresEntrenamiento[i][j]; } for(int j = 0; j< numeroSalidas; j++) {salidaEntrenamiento[i][j] = paresEntrenamiento[i][j+numeroNeuronasEntrada]; } } } Operador de Concatenación de Cadenas de Caracteres (+) El operador más (+) se utiliza también para concatenar cadenas de caracteres. Por ejemplo, para escribir una cantidad con un rótulo puede utilizarse la sentencia: editor.append(“Error Obtenido:” + String.valueOf(imprimoError) + “\n”); editor.append(“Iteraciones:”+ String.valueOf(imprimoIteraciones) + “\n”); editor.append(“Inicio: ” + horaInicial.toString() + “\n”); editor.append(“Final: ” + horaFinal.toString() + “\n”); Donde el operador de concatenación se utiliza dos veces para construir la cadena de caracteres que se desea imprimir. Las variables imprimoErrror, imprimoIteraciones, horaInicial, horaFinal son convertidas en cadena de caracteres para poder concatenarlas. Precedencia de Operadores El orden en que se realizan las operaciones es fundamental para determinar el resultado de una expresión. Por ejemplo, el resultado de x/y*z depende de 7.1. INTRODUCCIÓN AL LENGUAJE JAVA 183 qué operación (la división o el producto) se realice primero. La Tabla 7.6 de la pág. 183 muestra el orden en que se ejecutan los distintos operadores en una sentencia, de mayor a menor precedencia: Nombre Postfijos Unarios De creación Multiplicativo Adición Shift Relacional Igualdad AND Or Excluyente Or Incluyente Logico AND Logico OR Condicional Asignación Sintáxis [ ] .(params) expr++ expr++expr —expr +expr -expr ! (type) expr * /% +<< >> >>> <> <= >= instanceof == != & ^ | && || ?: = += -= *= /= %= &= ^= |= <<= >>= >>>= Cuadro 7.6: Precedencia de Operadores. En Java, todos los operadores binarios, excepto los operadores de asignación, se evalúan de izquierda a derecha. Los operadores de asignación se evalúan de derecha a izquierda, lo que significa que el valor de la izquierda se copia sobre la variable de la derecha. 184 CAPÍTULO 7. HERRAMIENTAS 7.2. WebSphere 7.2.1. ¿Que es WebSphere? WebSphere es una plataforma de Software para e-business. IBM WebSphere es una plataforma de IBM para desarrollo y gestión de sitios web y aplicaciones destinadas al comercio electrónico. WebSphere posee una amplia gama de servidores y aplicaciones para proporcionar todo tipo de capacidades de negocio y ayuda al desarrollo de las aplicaciones. La Plataforma de Software WebSphere está compuesta por un conjunto de herramientas de e-business integradas y basadas en estándares abiertos de mercado. WebSphere es ideal para todas las fases de un e-business, comenzando desde pequeños sitios Web a mega sitios. La figura 7.1 de la pág. 185 representa la plataforma virtual de WebSphere. 7.2.2. Plataforma de Software Se necesita una plataforma completa, escalable y flexible que proporcione soporte a la construcción y diseminación de aplicativos de e-business. Las soluciones de software WebSphere ofrecen las herramientas necesarias para alcanzar los objetivos de e-business. 7.2. WEBSPHERE Figura 7.1: Plataforma de WebSphere 185 186 CAPÍTULO 7. HERRAMIENTAS Al proporcionar un banco de trabajo abierto que integre y simplifique diferentes tareas, roles y herramientas, el software WebSphere ayuda a que el equipo desarrolle, entregue y administre los aplicativos de e-business [23]. El ambiente de desarrollo del software WebSphere: Da soporte al desarrollo y cambios rápidos de nuevos aplicativos utilizando un paradigma de desarrollo basado en reglas, permitiendo que todos utilicen el mismo ambiente y reduciendo costes de entrenamiento. Proporciona código pre-construido, pre-testeado. Proporciona herramientas especializadas para página Web y desarrollo de módulos migrables. Adicionalmente, servicios basados en estándares Web permiten mezclar y combinar componentes funcionales de diferentes orígenes de tal forma que se puede proveer nuevos procesos y servicios al mercado rápida y eficientemente. La capacidad de un portal de negocios tiene importancia crítica para permitir que las personas interactúen y transaccionen de forma personalizada con diversos recursos de negocios. Empieza dejando a la medida los ambientes de usuarios para sus necesidades específicas, integrándolo entonces con otros usuarios para permitir colaboración en tiempo real, y con los diversos ambientes de TI. WebSphere ofrece un amplio portafolio de soluciones clasificadas en tres áreas críticas: Infraestructura y herramientas de Desarrollo (Fundation & Tools): • Application server. • WebSphere studio: ◦ IBM WebSphere Studio Site Developer. ◦ IBM WebSphere Studio Application Developer. ◦ IBM WebSphere Studio Application Developer Integration Edition. ◦ IBM WebSphere Studio Enterprise Developer. ◦ IBM WebSphere Studio Homepage Builder. • Host Access. Alcance y experiencia con el usuario (Business Portals): 7.2. WEBSPHERE 187 • WebSphere Portal. • WebSphere Everyplace. • WebSphere Commerce. Integración de negocio (Business Integration): • WebSphere Business Integrator. • WebSphere MQ Integrator. 7.2.3. Application Server La plataforma de alto desempeño y extrema escalabilidad para diseminar aplicativos dinámicos de e-business, WebSphere Application Server, Versión 5.1, proporciona las funciones esenciales de e-business de manipulación de transacciones y ampliación de datos back-end del negocio y aplicativos para la Web. La plataforma ayuda a construir aplicativos que ejecutan esas funciones con seguridad sólida, fiabilidad y escalabilidad. Application Server. Advanced Edition La Edición Avanzada es la oferta del principal servidor de aplicativo dirigido a desarrolladores profesionales de tecnología Java que necesitan funcionalidad de servicios J2EE y Web para aplicativos dinámicos de e-business. La Edición Avanzada del WebSphere Application Server Versión 5.1, está disponible en tres configuraciones distintas: Edición Avanzada: 188 CAPÍTULO 7. HERRAMIENTAS Proporciona integración sólida a las bases de datos, middleware orientado a mensajes, y sistemas preexistentes y aplicativos, en conjunto con soporte de agrupación. Esta configuración se ajusta a la mayoría de los escenarios de la empresa e interesa a los negocios que necesitan construir aplicativos altamente transaccionales, administrables, disponibles y escalables que ofrecen seguridad distribuida y administración remota. Edición Avanzada del Single Server: Proporciona el mismo modelo de programación esencial J2EE y Web Services con administración simplificada. Esta configuración interesa a departamentos, negocios de tamaño mediano y aplicativos piloto que necesitan un coste bajo, opción de ejecución rápida, distribución de carga de trabajo o administración remota asociados a administración de multi-servidor. Edición Avanzada del IBM WebSphere Application Server V4.0, para Linux en zSeries: La Edición Avanzada del WebSphere Application Server V4.0, para Linux en zSeries continúa cumpliendo el compromiso de IBM en cuanto a mantener cobertura amplia para plataformas para el WebSphere Application Server. Este producto WebSphere tiene la combinación potente de un conjunto de dispositivos rico y soporte a estándares abiertos del WebSphere Application Server y el ambiente operacional familiar del sistema operativo Linux. También contiene los recursos de administración, alta fiabilidad, y la intensa velocidad de comunicación de datos internos del hardware de la plataforma zSeries. Application Server. Enterprise Edition La Edición empresarial del IBM WebSphere Application Server Versión 4.1, en conjunto con IBM WebSphere Studio Application Developer Integration Edition, ofrece una combinación potente de tiempo de ejecución y herramienta que permite integrar activos IT existentes, mejorar la productividad del desarrollador y crear y mantener aplicativos de e-business flexibles. Juntos, el IBM’s WebSphere Application Server 4.1 Enterprise Edition y el WebSphere Studio Application Developer Integration Edition ofrecen ahora a los desarrolladores la capacidad de: Coreografiar visualmente y componer servicios de la Web y componentes de aplicativo J2EE a través de una interfase de simple drag-and-drop. 7.2. WEBSPHERE 189 Construir potentes adaptadores de aplicativo basados en J2EE Connector Architecture (JCA) para integrar sistemas back-end con servicios Web y aplicativos J2EE. Crear una paleta de componentes de aplicativos que puede ser rápidamente montada para desarrollar nuevos aplicativos fácilmente publicada como servicio Web. Evitar la repetición del desarrollo y diseminación de aplicativos debido a condiciones cambiantes del mercado, separando las políticas del negocio de la lógica de aplicativos esenciales. Obtener una infraestructura completa de servicios Web que impulse un ambiente único, eficaz en cuanto a coste de tiempo de ejecución del servidor de aplicativo administrativo y operacional. Application Server. Standard Edition La Edición Estándar para desarrolladores de la web y autores de contenido incluye mejorías de facilidad de uso en toda su extensión, comprendiendo un Quick Installation que elimina conjeturas en cuanto al Enhanced Java, impulsando el Software Development Kit del Java 2 V1.2.2 en todos los sistemas operativos soportados. Servidor HTTP IBM WebSphere Application Server trabaja con un servidor HTTP para manejar las peticiones de servlets y otros contenidos dinámicos desde las aplicaciones Web. El servidor HTTP y el servidor de aplicaciones se comunican utilizando el plug-in HTTP de WebSphere para el servidor HTTP. El plug-in HTTP utiliza un archivo de configuración XML de fácil lectura para determinar si la petición la debe gestionar el servidor Web o el servidor de aplicaciones. Utiliza el protocolo HTTP estándar para comunicarse con el servidor de aplicaciones. También se puede configurar para implementar seguridad en el servidor HTTP, si fuera necesario. El plug-in HTTP está disponible para los servidores Web más conocidos. Servidor de Aplicaciones El servidor de aplicaciones colabora con el servidor Web intercambiando peticiones de clientes y respuestas de aplicaciones. Puede definir varios servidores de aplicaciones, cada uno de ellos ejecutándose en su propia Máquina Virtual Java (JVM). 190 CAPÍTULO 7. HERRAMIENTAS Contenedor de EJB El contenedor de EJB proporciona los servicios de tiempo de ejecución necesarios para desplegar y gestionar componentes EJB, de ahora en adelante conocidos como enterprise beans. Es un proceso de servidor que maneja peticiones para beans de sesión y beans de entidad. Los enterprise beans (dentro de los módulos EJB) instalados en un servidor de aplicaciones no se comunican directamente con el servidor; en su lugar, el contenedor de EJB ofrece una interfaz entre los enterprise beans y el servidor. Juntos, el contenedor y el servidor proporcionan el entorno de tiempo de ejecución del bean. El contenedor proporciona muchos servicios de bajo nivel, incluido el soporte de hebras y transacciones. Desde un punto de vista administrativo, el contenedor gestiona el almacenamiento y la recuperación de datos para los beans que contiene. Un solo contenedor puede gestionar más de un archivo JAR de EJB. Contenedor Web Los servlets y los archivos JSP (Java Server Pages) son componentes del servidor que se utilizan para procesar peticiones de clientes HTTP como, por ejemplo, navegadores Web. Se encargan de la presentación y el control de la interacción del usuario con los datos de aplicación subyacentes y la lógica empresarial. También pueden generar datos formateados, como XML, para que los utilicen otros componentes de aplicación. El contenedor Web procesa servlets, archivos JSP y otros tipos de inclusiones de servidor. Los servlets anteriores a J2EE se ejecutarán en un motor de servlets. Cada contenedor Web contiene automáticamente un único gestor de sesiones. Cuando se manejan los servlets, el contenedor Web crea un objeto de petición y un objeto de respuesta, e invoca el método de servicio de servlets. El contenedor Web invoca el método destroy() del servlet cuando corresponda y descarga el servlet, y después la JVM ejecuta la recolección de basura. Contenedor de Clientes de Aplicaciones Los clientes de aplicaciones son programas Java que se ejecutan normalmente en un sistema de sobremesa con una interfaz gráfica de usuario (GUI) . Tienen acceso a toda la gama de componentes y servicios de servidor J2EE. El contenedor de clientes de aplicaciones maneja programas de aplicaciones de Java que acceden a los beans enterprise, Java Database Connectivity (JDBC) y las colas de mensajes de Java Message Service. El programa Cliente de 7.2. WEBSPHERE 191 aplicaciones J2EE se ejecuta en las máquinas cliente. Este programa sigue el mismo modelo de programación Java que otros programas Java; no obstante, el cliente de aplicaciones J2EE depende del tiempo de ejecución del cliente de aplicaciones para configurar su entorno de ejecución, y utiliza el espacio de nombres JNDI (Java Naming and Directory Interface) para acceder a los recursos. Contenedor de Applets Un applet es una clase Java de cliente que se ejecuta normalmente en un navegador Web, pero que también se pueden ejecutar en otros dispositivos y aplicaciones de cliente. Los applets se utilizan a menudo junto con páginas HTML para mejorar la experiencia de usuario que ofrece el navegador Web. También se pueden utilizar para pasar parte de la carga de trabajo de proceso del servidor al cliente. El contenedor de applets maneja applets de Java incorporados en documentos HTML (HyperText Markup Language) que residen en una máquina cliente remota respecto al servidor de aplicaciones. Con este tipo de cliente, el usuario accede a un bean enterprise en el servidor de aplicaciones mediante el applet de Java en el documento HTML. Sistema Principal Virtual Un sistema principal virtual es una configuración que permite que una única máquina de sistema principal parezca varias máquinas de sistema principal. Los recursos asociados con un sistema principal virtual no pueden compartir datos con recursos asociados con otro sistema principal virtual, incluso si los sistemas principales virtuales comparten la misma máquina física. Los sistemas principales virtuales permiten al administrador asociar aplicaciones Web con un sistema principal particular configurado para la máquina que ejecuta la aplicación. 7.2.4. Arquitecturas de Tres Niveles WebSphere Application Server proporciona la capa de la lógica de aplicación en una arquitectura de tres niveles, lo que permite a los componentes de cliente interactuar con los recursos de datos y las aplicaciones heredadas. De manera colectiva, las arquitecturas de tres niveles son modelos de programación que permiten la distribución de la funcionalidad de la aplicación entre tres sistemas independientes, normalmente: 192 CAPÍTULO 7. HERRAMIENTAS Componentes de cliente que se ejecutan en estaciones de trabajo locales (nivel uno). Procesos que se ejecutan en servidores remotos (nivel dos). Una colección discreta de bases de datos, gestores de recursos y aplicaciones de sistema principal (nivel tres). Primer nivel: • La responsabilidad de la presentación y la interacción con el usuario reside en los componentes del primer nivel. Estos componentes de cliente permiten al usuario interactuar con los procesos del segundo nivel de forma segura e intuitiva. WebSphere Application Server da soporte a varios tipos de clientes. • Los clientes no acceden directamente a los servicios del tercer nivel. Por ejemplo, un componente de cliente proporciona un formulario en el que el cliente solicita los productos. • El componente de cliente entrega este pedido a los procesos del segundo nivel, que comprueban las bases de datos del producto y realizan las tareas necesarias para la facturación y el envío. Segundo nivel (capa de la lógica de aplicación): • Los procesos del segundo nivel se conocen normalmente como la capa de la lógica de aplicación. Estos procesos gestionan la lógica empresarial de la aplicación y pueden acceder a los servicios del tercer nivel. • La capa de la lógica de aplicación es donde se produce la mayor parte del trabajo de los procesos. • Varios componentes de cliente pueden acceder simultáneamente a los procesos del segundo nivel, por lo que esta capa de la lógica de aplicación debe gestionar sus propias transacciones. • Si varios clientes intentan realizar un pedido del mismo artículo, del que sólo queda uno, la capa de la lógica de aplicación debe determinar quién tiene derecho a ese artículo, actualizar la base de datos para reflejar la compra e informar a los otros clientes de que el artículo ya no está disponible. Sin una capa de la lógica de aplicación, los componentes de cliente acceden a la base de datos del producto directamente. 7.3. INTRODUCCIÓN A DB2 193 • La base de datos es necesaria para gestionar sus propias conexiones, normalmente bloqueando un registro que se está procesando. El bloqueo se puede realizar simplemente cuando un artículo se coloca en un carro de compra, para evitar que los demás clientes consideren la posibilidad de compra. • La separación del segundo y el tercer nivel reduce la carga en los servicios del tercer nivel, puede mejorar el rendimiento general de la red y permite una gestión de conexiones más elocuente. Tercer nivel: • Los servicios del tercer nivel están protegidos del acceso directo de los componentes de cliente al residir en una red segura. • La interacción debe producirse a través de los procesos del segundo nivel. Los tres niveles deben poder comunicarse entre ellos. Los protocolos abiertos estándar y las API expuestas simplifican esta comunicación. Los componentes de cliente se pueden escribir en cualquier lenguaje de programación como, por ejemplo, Java o C++, y se puedan ejecutar en cualquier sistema operativo, siempre que pueden comunicarse con la capa de la lógica de aplicación. De la misma forma, las bases de datos del tercer nivel pueden tener cualquier diseño, siempre que la capa de la lógica de aplicación pueda consultarlas y manipularlas. La clave de esta arquitectura es la capa de la lógica de aplicación. 7.3. Introducción a DB2 194 CAPÍTULO 7. HERRAMIENTAS 7.3.1. DB2 Universal Database (DB2 UDB) DB2 Universal Database, es una base de datos universal. Es completamente escalable, veloz y confiable. Corre en modo nativo en casi todas las plataformas, como Windows NT, Sun Solaris, HP-UX, AIX, y OS/2 [24]. Características y funciones: • DB2 UDB es el producto principal de la estrategia de Data Management de IBM. • DB2 UDB es un sistema para administración de bases de datos relacionales (RDBMS) multiplataforma, especialmente diseñada para ambientes distribuidos, permitiendo que los usuarios locales compartan información con los recursos centrales. Integridad: DB2 UDB incluye características de integridad, asegurando la protección de los datos aún en caso de que los sistemas sufran un colapso; y de seguridad, permitiendo realizar respaldos en línea con distintos grados de granularidad, sin que esto afecte la disponibilidad de acceso a los datos por parte de los usuarios. Múltiples usos: Provee la capacidad de hacer frente a múltiples necesidades, desde procesamiento transaccional de misión crítica (OLTP), hasta análisis exhaustivo de los datos para el soporte a la toma de decisiones (OLAP). Escalabilidad: Sus características distintivas de escalabilidad le permiten almacenar información en un amplio rango de equipos, desde una PC portátil hasta un complejo ambiente de mainframes procesando en paralelo. Web enabled para e-business: Incluye tecnología basada en Web que permite generar aplicaciones en las Intranets y responder a las oportunidades de negocios disponibles en Internet. Además, DB2 UDB provee soporte a Java.En la figura 7.2 de la pág. 195 se grafica el almacenamiento de documentos XML mediante DB2. 7.3. INTRODUCCIÓN A DB2 Figura 7.2: Almacenamiento XML de DB2. 195 196 CAPÍTULO 7. HERRAMIENTAS Facilidad de instalación y uso: La primera versión de DB2 para NT fue reconocida en el mercado como una base de datos muy poderosa, pero difícil de instalar y usar. En esta versión (DB2 UDB), IBM agregó muchas herramientas gráficas para facilitar el uso tanto de usuarios, como administradores y desarrolladores. Incluye guías para operaciones como instalación, configuración de performance, setup, etc. Además, se agregaron herramientas para facilitar las tareas de integración con otras bases de datos, tecnologías de networking y desarrollo de aplicaciones [25]. Universalidad: DB2 UDB es la única base de datos realmente universal, es multiplataforma (16 plataformas - 10 no IBM), brinda soporte a un amplio rango de clientes, soporta el acceso de los datos desde Internet y permite almacenar todo tipo de datos incluyendo texto, audio, imágenes y video o cualquier otro definido por el usuario. 7.3.2. Funciones Complementarias Conectividad. Las herramientas de conectividad permiten acceder a los datos más allá de donde ellos se encuentren. El slogan “cualquier cliente, a cualquier servidor, en cualquier red” está completamente sustentado por la funcionalidad que sus herramientas ofrecen. EL DB2 Connect permite acceder a los datos de DB2 en mainframe o AS/400, desde Windows NT, Windows 95 / 98, OS/2 o cualquiera de los Unix soportados. Además, el producto Datajoiner posibilita acceder de forma única y transparente a los datos residentes en Oracle, Sybase, Informix, Microsoft SQL Server, IMS, VSAM y otros. Data Warehousing. DB2 UDB provee la infraestructura necesaria para soportar el proceso de toma de decisiones en cualquier tamaño y tipo de organización. Está dirigido a resolver la problemática a nivel departamental (Data Marts), ya que un único producto provee la capacidad para acceder a datos en Oracle, Sybase, Informix, Microsoft SQL Server, VSAM o IMS, además de la familia DB2. Permite de forma totalmente gráfica acceder, transformar y distribuir los datos automáticamente y sin programar una línea de código. 7.3. INTRODUCCIÓN A DB2 197 Data Mining. DB2 UDB posibilita el análisis orientado al descubrimiento de información escondida en los datos, realizando modelización predictiva, segmentación de la base de datos, análisis de vínculos, o detección de desviaciones. Incluye las siguientes técnicas: clustering (segmentación), clasificación, predicción, descubrimiento asociativo, descubrimiento secuencial de patrones y secuencias temporales. Todas las técnicas mencionadas permiten realizar segmentación de clientes, detección de fraudes, retención de clientes, ventas cruzadas, etc. Partición Simple sobre un Único Procesador. Este entorno se basa en memoria y disco, conteniendo una única CPU. Este ambiente ha sido denominado de diversas maneras : base de datos aislada (standalone database), base de datos cliente/servidor (client/server database), base de datos serial (serial database), sistema uniprocesador (uniprocessor system), y entorno nodo simple/ no paralelo (single node/non-parallel). La base de datos en este ambiente sirve para cubrir todas las necesidades de un departamento o de una pequeña oficina de una empresa donde los datos y los recursos del sistema (incluyendo un único procesador o CPU) son administrados por un único administrador de la base. Capacidad y Escalabilidad. A este ambiente se le pueden agregar mas discos. Al tener uno o más servidores de entrada-salida para mas de un disco permite que más de una operación de entrada-salida ocurra al mismo tiempo. Un sistema de procesador único esta limitado por la cantidad de espacio en disco que pueda manejar dicho procesador. Sin embargo, como la carga de trabajo aumenta, una sola CPU puede llegar a ser insuficiente para satisfacer las peticiones solicitadas por los usuarios, aún sin importar cuántos discos y/o memoria adicional hayan sido agregados [26]. Si se ha alcanzado la máxima capacidad o escalabilidad, se podría considerar cambiarse a un sistema de partición única con múltiples procesadores. A continuación se describe esta configuración. • Partición Simple con Múltiples Procesadores Este entorno se compone de varios procesadores de igual potencia dentro de la misma máquina, llamándose a este ambiente Sistema Simétrico Multiprocesador (symmetric multi-processor o SMP). Los recursos tales como espacio de 198 CAPÍTULO 7. HERRAMIENTAS disco y memoria son compartidos. En esta máquina se encuentran más discos y memoria en comparación a una base de datos de partición simple, en el ambiente de procesador único. Este entorno es de fácil administración, debido a que todo esta ubicado en una sola máquina y además los discos y memoria están compartidos. Con varios procesadores disponibles, diferentes operaciones de la base de datos pueden ser completadas significativamente más rápido que en bases de datos asignadas a un solo procesador. DB2 también puede dividir el trabajo de una consulta simple entre los procesadores disponibles para mejorar la velocidad de procesamiento. Otras operaciones de la base de datos, tales como el resguardo (backup) y creación de índices sobre datos existentes pueden también aprovechar la ventaja de trabajar con múltiples procesadores. • ◦ Capacidad y Escalabilidad En este entorno se pueden agregar más procesadores. Sin embargo, es posible que los distintos procesadores traten de acceder al mismo dato en el mismo tiempo, lo cual generará la aparición de limitaciones a medida que las operaciones de se incrementen. Con discos y memoria compartidos, se puede efectivamente compartir todos los datos de la base. Una aplicación en un procesador puede estar accediendo un dato al mismo tiempo que otra aplicación lo hace en otro procesador, causando así que la segunda aplicación espere para acceder a ese dato. Se puede incrementar la capacidad de entrada-salida de la partición de la base de datos asociada a un procesador, así como también el número de discos. También se pueden establecer servidores de entrada-salida para repartir las solicitudes de entrada-salida. Al tener uno o mas servidores de entrada-salida para cada disco permite que una o mas operaciones de entrada-salida tengan lugar al mismo tiempo. Si se ha alcanzado la máxima capacidad o escalabilidad, se puede considerar la idea de cambiar la base a un sistema de partición múltiple, descrito a continuación. 7.3.3. Configuraciones de Particiones Múltiples Además de los entornos antes mencionados, se puede dividir la base de datos en particiones múltiples, cada una en su propia máquina. Y además 7.3. INTRODUCCIÓN A DB2 199 varias máquinas con particiones múltiples de una base de datos pueden ser agrupadas. Esta sección describe las siguientes configuraciones de particiones posibles : Particiones en sistemas cada uno con un procesador. Particiones en sistemas cada uno con múltiples procesadores. Particiones lógicas de base de datos. 7.3.4. Resúmen del Paralelismo Mejor Adaptable a cada Entorno de Hardware La siguiente tabla 7.7 de la pág. 199 resume los tipos de paralelismo que mejor se adaptan a los diferentes entornos de hardware. Entorno de Hardware Paralelismo I/O Si Paralelismo Inter Consulta Paralelismo Intra Partición No Paralelismo Inter Consulta Paralelismo Inter Partición No Partición Simple, Único Procesador Partición Simple, Múltiples Procesadores Particiones Múltiples, Un Procesador Particiones Múltiples, Múltiples Procesadores Particiones Lógicas de Base de Datos Si Si No Si No Si Si Si Si Si Si Si Cuadro 7.7: Paralelismo mejor Adaptable a cada Entorno de Hardware Herramientas de Administración Desde el punto de vista del administrador de base de datos, el DB2 incluye una larga lista de herramientas DBA. Además de esto hay: utilidades para 200 CAPÍTULO 7. HERRAMIENTAS B/R, reorganizador, importar/exportar y alta velocidad de llamadas, están incluidas y pueden ser ejecutadas a través de un objeto GUI Browser. DB2 Administración de Servidores. El DB2 administración de servidores (DAS) es una instancia de DB2 que habilita administración remota de servidores DB2. Esta instancia es creada y usada en una forma similar a cualquier instancia de DB2. Se puede tener una sola DAS sobre la máquina. Asistente para la Configuración de clientes. El asistente de configuración de clientes ayuda a manejar las conexiones de las bases de datos con servidores de base de datos remotas [27]. Este puede correr bajo servidores OS/2 y Windows NT, así como el cliente corre bajo OS/2, Windows NT y Windows 95. Con el asistente de configuración de clientes se podrá : • Definir conexiones a base de datos de modo que éstas pueden ser utilizadas por aplicaciones. Existen 3 métodos: ◦ Examinar la red por base de datos disponibles y seleccionar una. El cliente automáticamente se configura para esa base de datos. ◦ Usar los perfiles de acceso a base de datos que provee el administrador para definir automáticamente las conexiones. ◦ Configuración manual de conexiones a base de datos para modificar algunos parámetros de conexión requeridos. • Remover base de datos catalogadas o modificar sus propiedades. • Testear la conexión con la base de datos identificada en el sistema para asegurar que se puede establecer la conexión con el servidor que necesita. • Enlazar aplicaciones a una base de datos seleccionando utilidades o enlazar archivos de una lista. • Establecer conexiones con servidores DRDA si la conexión DB2 está instalada. Administrador 7.3. INTRODUCCIÓN A DB2 201 El administrador es usado para monitorear y cambiar el mejoramiento de aplicaciones que corren a través de la base de datos. Consiste en dos partes: • Una utilidad de frente-final. • Un dominio. Cuando arranca el administrador, se ejecuta el comando de inicio del administrador de utilidades de front-end, quienes ejecutan el dominio. Por default, el dominio es iniciado sobre toda partición en una base de datos particionada, pero se puede también usar la utilidad front-end para iniciar un dominio simple de una partición específica para monitorear la actividad a través de la partición de base de datos encontradas allí. O un dominio puede monitorear la actividad sobre una partición-simple de base de datos. Además un administrador de dominio colecciona estadísticas sobre las aplicaciones que corren a través de la base de datos. Estas son chequeadas a través de reglas que pueden ser especificadas en el archivo de configuración del administrador aplicadas a esa base de datos específica. El administrador actúa de acuerdo a éstas reglas. Por Ej.: una regla puede indicar que la aplicación esta usando demasiados recursos. En éste caso el administrador puede cambiar las prioridades de la aplicación o forzarla a dejar la base de datos, de acuerdo con las instrucciones específicas en el archivo de configuración del administrador. Si la acción asociada con ésta regla cambia las prioridades de la aplicación, el administrador cambia las prioridades del solicitante sobre la partición de la base de datos en la que el administrador detecta la violación de recurso. Si la acción asociada con la regla es de forzar la aplicación, ésta será forzada siempre que el administrador que ha detectado la violación del recurso esté corriendo sobre el nodo coordinador de la aplicación o en un entorno particionado de la base de datos. El administrador también almacena (logs) cualquier acción que tome, se pueden consultar éstos archivos log para rever las acciones tomadas por el administrador. Estándares Soportados en DB2 La UDB DB2 se adapta muy bien a los estándares industriales haciéndola muy integrable con otros productos IBM y también con aquellos que no lo son. La UDB DB2 soporta estándares API incluyendo ANSI SQL92E, Microsoft OBDC y JAVA/JDBC. 202 CAPÍTULO 7. HERRAMIENTAS La UDB DB2 también puede ser integrada con servicios de seguridad para administrar servidores de nombre y direcciones. DB2 también soporta SNMP y puede ser monitoreada desde cualquier Sistema de Administración de Servers de IBM. Para poder establecer una comunicación con otras bases de datos relacionales, la UDB DB2 soporta la Arquitectura de Base de Datos Relacional (DRDA). Esta arquitectura también incluye el Servidor de Aplicaciones (AS) y gracias a ella DB2 puede correr sobre TCP/IP en forma nativa, haciendo más fácil la implementación de un entorno abierto de redes. La UDB DB2 también incluye las innovaciones en SQL, que satisfacen diferentes requerimientos: 7.3.5. DB2 UDB Versión 8.1 Cada nueva versión de DB2 Universal Database se crea sobre la base sólida de la versión anterior. En la Versión 8.1 ofrece incluso un soporte más potente para Business Intelligence, Gestión de Datos y Soluciones e-business. DB2 Universal Database Versión 8.1 contiene muchas características nuevas, que incluyen el Centro de desarrollo, funciones ampliadas de XML Extender, soporte de Linux para DB2 Warehouse Manager, integración de Spatial Extender con herramientas de IBM Business Intelligence, un nuevo Centro de duplicación, mejoras de enlace y rendimiento de DB2 Data Links Manager. Nuevas herramientas de gestión y supervisión de bases de datos, soporte de 64 bits ampliado y nuevos asistentes de Instalación de DB2 y Centro de control de DB2. Centro de Desarrollo En la versión 8.1, el Centro de desarrollo sustituye al Stored Procedure Builder y proporciona un funcionamiento incrementado. Mediante el Centro de desarrollo, el usuario puede desarrollar procedimientos almacenados y funciones definidas por el usuario.También es posible correlacionar tipos estructurados de los Enterprise JavaBeans. Los asistentes simplifican las tareas de desarrollo. Las nuevas características incluyen: Soporte de varios proyectos y conexiones de base de datos. La Vista de servidor para examinar los objetos de desarrollo en el servidor. Depurador de SQL para depurar rutinas; incluye vistas para puntos de interrupción, variables y pila de llamadas. 7.3. INTRODUCCIÓN A DB2 203 Una interfaz mejorada para controlar el entorno de desarrollo. Asistentes para construir funciones definidas por el usuario para MQSeries, fuentes de datos OLE DB y documentos XML. Asistentes para exportar, importar y desplegar rutinas e información de proyectos Productos y Paquetes Nuevos. WebSphere Utilizando una tecnología parecida a la que se encuentra en el Centro de desarrollo, WebSphere Studio Application Developer proporciona también un creador de procedimientos almacenados y un creador de funciones definidas por el usuario. Si utiliza WebSphere para desarrollar aplicaciones, puede acceder a muchas de las mismas características del Centro de desarrollo y aprovecharse tanto del conjunto de productos WebSphere como de la potencia de DB2. DB2 Warehouse Manager Se han añadido nuevas características y mejoras a DB2 Warehouse Manager: Con el soporte de carga paralela nativa para DB2 Universal Database Enterprise Server Edition, es posible cargar grandes volúmenes de datos con más rapidez. DB2 Warehouse Manager tiene capacidades ampliadas, por lo que se puede incrementar y mejorar el rendimiento de las operaciones de depósito, manipular y localizar metadatos más deprisa, y ejecutar el agente de depósito, programas y transformadores en Linux. Los conectores para la Web y SAP se han mejorado en el paquete de DB2 Warehouse Manager. DB2 Warehouse Manager (cont.) Ahora, el Gestor de catálogos de información soporta un rango más amplio de sistemas operativos. El Centro de catálogos de información, que es una nueva interfaz, proporciona unas funciones y un uso mejorados para trabajar con metadatos comerciales. Ahora se soportan XP de Linux y de Windows(R) para el agente de depósito, además de los sistemas operativos que ya se soportaban: Windows NT, Windows 2000, AIX(R) y Solaris Operating Environment(R). 204 CAPÍTULO 7. HERRAMIENTAS El transformador de limpieza realiza ahora transformaciones con SQL, lo que tiene como resultado un mejor rendimiento. Centro de depósito de datos de DB2 Se han añadido nuevas características al Centro de depósito de datos: El soporte de servidor de depósito se amplía a AIX. El servidor de depósito y el iniciador de sesiones de depósito, que se ejecutan como servicios en Windows, se ejecutan como daemons en AIX. Es posible exportar e importar metadatos del lenguaje de código y exportar estos objetos: • Tablas, archivos y vistas de origen • Tablas y archivos de destino El proceso en cascada (varios intervalos) permite gestionar varios pasos definiendo y habilitando una planificación y un flujo de tareas para los procesos que contienen los pasos. Con el nuevo paso Select and Update de SQL, se puede actualizar una tabla de destino del depósito de datos sin sustituir la tabla completa ni grabar código adicional. Ahora, la Guía de aprendizaje de Business Intelligence se compone de dos guías de aprendizaje más cortas: Guía de aprendizaje de Business Intelligence: Introducción al Centro de depósito de datos y Guía de aprendizaje de Business Intelligence: Lecciones ampliadas sobre depósito de datos. DB2 Spatial Extender Se han añadido nuevas características a Spatial Extender: Ahora, Spatial Extender está integrado en las herramientas de IBM Business Intelligence, que incluyen QMF, Centro de depósito de datos y OLAP. Ahora es posible acceder a datos de DB2 para iSeries y de DB2 para z/OS con soporte federado. El soporte de plataformas incluye ahora los sistemas operativos siguientes: AIX, HP-UX, Linux, Solaris Operating Environment y Windows. 7.3. INTRODUCCIÓN A DB2 205 El Index Advisor, una nueva herramienta de indexación, tiene dos modalidades operativas: Analizar un índice espacial existente y crear y analizar un índice virtual. Analizar la geometría de una columna espacial que aún no tiene un índice espacial. La interfaz de Spatial Extender está ahora orientada al objeto. DB2 Spatial Extender (cont.) Ahora, Spatial Extender ha mejorado su rendimiento y funciones: Se ha mejorado el rendimiento de las funciones de importación y exportación. Se han reestructurado las vistas de Catálogos espaciales. Se han ampliado los procedimientos almacenados soportados. Ahora se puede añadir fácilmente un geocodificador de terceros a Spatial Extender. Se han ampliado las funciones existentes. Ahora se tiene acceso a funciones espaciales adicionales. Gestión de los Datos Las nuevas características de DB2 Universal Database Versión 8.1 incluyen: Un Servidor de administración de bases de datos rediseñado. Agrupamiento multidimensional de los datos. El Centro de desarrollo de DB2. El Centro de salud de DB2. Una supervisión mejorada de los puntos muertos. SQL en funciones definidas por el usuario. Un instalador basado en Java en UNIX(R). 206 CAPÍTULO 7. HERRAMIENTAS La posibilidad de cambiar parámetros en línea. Mejoras en la duplicación. Duplicación (DB2 DataPropagator) El DataPropagator de DB2 Versión 8.1 ha mejorado el uso, la fiabilidad, el rendimiento, las posibilidades de servicio y la seguridad. El nuevo Centro de duplicación facilita la configuración, el mantenimiento y la supervisión de duplicaciones. La duplicación se ejecuta con más rapidez que antes. Nuevo Centro de duplicación Las nuevas características del Centro de duplicación incluyen: Un iniciador que le permitirá configurar con rapidez el escenario de duplicación de extremo a extremo. La posibilidad de especificar “perfiles” específicos del servidor y del sistema operativo, así como de denominar convenios y propiedades para las tablas de destino, tablas de CD y tablas de control. La posibilidad de iniciar y detener los programas Capture, Apply y Monitor desde el Centro de duplicación. Un supervisor de alertas que envía alertas por correo electrónico cuando se superan los umbrales definidos por el usuario o se producen problemas. La posibilidad de calcular estadísticas tales como relación de productividad, valores de latencia y el número de errores de los programas Capture y Apply. Una comprobación mejorada de los errores y una validación de las operaciones de duplicación. En la figura 7.3 de la página 207 se puede observar el nuevo esquema de funcionamiento junto con las nuevas características del Centro de Duplicación de la versión 8.0. Posibilidades de Gestión Fundaciones de Bases de Datos de Autogestión Disponibles A partir de DB2 Universal Database Versión 8.1, verá incorporada en DB2 una apasionante tecnología inteligente; la base de datos se supervisa a sí misma y aconseja a los administradores de bases de datos cuando se requiere una 7.3. INTRODUCCIÓN A DB2 207 Figura 7.3: Centro de Duplicación de DB2 versión 8.0. acción. Esta tecnología de bases de datos inteligentes libera a los administradores de bases de datos de las tareas mundanas, de forma que se pueden centrar en las actividades que hacen prosperar el negocio. Visualizador de Memoria El Visualizador de memoria ayuda a los administradores de bases de datos a supervisar, gráficamente y en tiempo real, el rendimiento relativo a la memoria de una instancia y las bases de datos de la misma. Supervisor de salud Herramienta para la “gestión por excepción”, el Supervisor de salud evalúa la salud del sistema de bases de datos y notifica al usuario, por correo electrónico o mediante un buscapersonas, los problemas potenciales o existentes. El supervisor se ejecuta sobre cada una de las instancias de DB2. Soporte de plataformas Con el soporte de 64 bits, se dispone de más espacio de direcciones para almacenar más datos en la memoria y poder acceder a ellos con mucha mayor rapidez. Los productos DB2 Versión 8.1 siguientes proporcionan soporte de 64 bits: DB2 Personal Edition. DB2 Enterprise Server Edition. DB2 Connect Personal Edition. 208 CAPÍTULO 7. HERRAMIENTAS DB2 Connect Enterprise Edition. DB2 Application Development Client. DB2 Administration Client. DB2 Run-Time Client. DB2 Warehouse Manager. DB2 Spatial Extender. 7.4. Sun VirtualBox Oracle VM VirtualBox es un software de virtualización para arquitecturas x86, creado originalmente por la empresa alemana Innotek GmbH. Actualmente es desarrollado por Oracle Corporation como parte de su familia de productos de virtualización. Por medio de esta aplicación es posible instalar sistemas operativos adicionales, conocidos como sistemas invitados, dentro de otro sistema operativo anfitrión, cada uno con su propio ambiente virtual. Por ejemplo, se podrían instalar diferentes distribuciones de GNU / Linux en VirtualBox instalado en Windows XP o viceversa. Entre los sistemas operativos soportados (en modo anfitrión) se encuentran GNU / Linux, Mac OS X, OS / 2 Warp , Windows, y Solaris / OpenSolaris, y dentro de éstos es posible virtualizar los sistemas operativos FreeBSD, GNU / Linux, OpenBSD, OS / 2 Warp, Windows, Solaris, MS - DOS y muchos otros (ver figura 7.4 de la pág. 209). La aplicación fue inicialmente ofrecida bajo una licencia de software propietario, pero en enero de 2007, después de años de desarrollo, surgió VirtualBox OSE (Open Source Edition) bajo la licencia GPL 2. Actualmente existe la versión propietaria Oracle VM VirtualBox, 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, VirtualBox OSE, que es software libre, sujeta a la licencia GPL. En comparación con otras aplicaciones privadas de virtualización, como VMware Workstation o Microsoft Virtual PC, VirtualBox carece de algunas funcionalidades, pero provee de otras como la ejecución de maquinas virtuales de forma remota, por medio del Remote Desktop Protocol (RDP), soporte iSCSI. 7.5. MICROSOFT VISIO 209 Figura 7.4: Captura de Pantalla de una Máquina Virtual. En cuanto a la emulación de hardware, los discos duros de los sistemas invitados son almacenados en los sistemas anfitriones como archivos individuales en un contenedor llamado Virtual Disk Image, incompatible con los demás software de virtualización. Otra de las funciones que presenta es la de montar imágenes ISO como unidades virtuales de CD o DVD, o como un disco floppy [28]. 7.5. Microsoft Visio Microsoft Visio es un software de dibujo vectorial para Microsoft Windows. Visio comenzó a formar parte de los productos de Microsoft cuando fue adquirida la compañía Visio en el año 2000. Las herramientas que lo componen permiten realizar diagramas de oficinas, diagramas de bases de datos, diagramas de flujo de programas, UML, y más, que permiten iniciar al usuario en los lenguajes de programación. El navegador Internet Explorer incluye un visor de diagramas Visio, cuya extensión es vsd, llamado Visio Viewer. Aunque originalmente apuntaba a ser una aplicación para dibujo técnico para el campo de Ingeniería y Arquitectura, con añadidos para desarrollar diagramas de negocios, su adquisición por Microsoft implicó drásticos cambios de directrices de tal forma que a partir de la versión de Visio para Microsoft Office 2003 el desarrollo de diagramas para negocios pasó de añadido a ser 210 CAPÍTULO 7. HERRAMIENTAS el núcleo central de negocio, minimizando las funciones para desarrollo de planos de Ingeniería y Arquitectura que se habían mantenido como principales hasta antes de la compra. Una prueba de ello es la desaparición de la función property line tan útil para trabajos de agrimensura y localización de puntos por radiación, así como el suprimir la característica de ghost shape que facilitaba la ubicación de los objetos en dibujos técnicos. Al parecer Microsoft decidió que el futuro del programa residía en el mundo corporativo de los negocios y no en las mesas de dibujo de Arquitectos e Ingenieros compitiendo con productos como AutoCad, DesignCad, Microstation, etc. [29]. 7.6. OpenVPN El software OpenVPN es una solución de conectividad basada en software: SSL (Secure Sockets Layer) bajo la librería OpenSSL y VPN Virtual Private Network (Red Virtual Privada). Soporta diferentes medios de autenticación como certificados, smart cards, y / o usuarios / contraseñas, y permite políticas de control de acceso para usuarios o grupos usando reglas de firewall aplicadas a las interfaces virtuales de la VPN. Esta solución resulta una muy buena opción en tecnologías Wi-Fi (redes inalámbricas EEI 802.11) y soporta una amplia configuración, entre ellas balanceo de cargas entre otras. Está publicado bajo licencia de código libre (Open Source). Es una solución multiplataforma que ha simplificado mucho la configuración de VPN’s dejando atrás los tiempos de otras soluciones difíciles de configurar como IPSec haciéndola más accesible para gente inexperta en este tipo de tecnología. Esta arquitectura está implementada sobre la Capa 2 y Capa 3 del modelo OSI, de esta manera los túneles de OpenVPN pueden transportar tramas Ethernet, paquetes IPX, y los paquetes NETBIOS del navegador (Explorer) de la red Windows, que son un problema en la mayoría de las otras soluciones VPN. Algunas de características de OpenVPN son: Protección de sesión con el cortafuego interno: en una sesión conectada con la oficina central de su compañía mediante un túnel VPN puede cambiar el setup de su red en su ordenador portátil, para enviar todo su tráfico de la red a través del túnel. Una vez que OpenVPN haya establecido un túnel, el cortafuego central en la oficina central de la compañía puede proteger el ordenador portátil, aún cuando él no sea 7.6. OPENVPN 211 una máquina local. Solamente un puerto de la red se debe abrir de forma local para trabajar la sesión. El cortafuego central protege al empleado siempre que esté conectado a través del VPN. Las conexiones de OpenVPN pueden ser establecidas a través de casi cualquier cortafuego, se dice que “si tienes acceso a Internet y si puedes tener acceso a la Web, los túneles de OpenVPN deben poder trabajar”. Soporte de Proxy y configuraciones: OpenVPN tiene soporte de Proxy y se puede configurar para funcionar como un servicio de TCP o de UDP, y como servidor o cliente. Como servidor, OpenVPN espera simplemente hasta que un cliente solicita una conexión, mientras que como cliente, intenta establecer una conexión según su configuración. Apertura de un solo puerto en el cortafuegos para permitir conexiones entrantes: desde OpenVPN 2.0, el modo especial del servidor permite conexiones entrantes múltiples en el mismo puerto del TCP o del UDP, mientras que todavía usa diversas configuraciones para cada conexión. Los interfaces virtuales permiten reglas muy específicas del establecimiento de una red y del cortafuegos donde todas las reglas, restricciones, mecanismos de la expedición, y conceptos como NAT se pueden utilizar con los túneles de OpenVPN. Alta flexibilidad con posibilidades extensas de lenguaje interpretado (scripting): OpenVPN ofrece numerosos puntos durante la conexión para la ejecución de los scripts individuales. Estos scripts se pueden utilizar para una gran variedad de propósitos de la autentificación, recuperación en caso de fallos (failover) entre otros. Soporte transparente y alto rendimiento para IP’s Dinámicas: si se usa OpenVPN, no hay necesidad de utilizar más IPs estáticas de cualquier lado del túnel. Ambas puntos finales del túnel pueden tener acceso barato de ADSL con el IPs dinámicas y los usuarios no notarán un cambio del IP de cualquier lado. Las sesiones del Terminal Server de Windows y las sesiones seguras de Shell (SSH) parecerán congeladas solamente por algunos segundos, pero no terminarán y continuarán con la acción solicitada después de una corta pausa [30]. Capítulo 8 Conclusiones Las Redes Virtuales Privadas representan una gran solución para las empresas en cuanto a servicios de conectividad seguros; la facilidad de instalación y mantenimiento, la posibilidad de ejecución en la mayoría de las plataformas, y otras razones, las hacen idóneas para ser implementadas tanto en grandes corporaciones como en las instalaciones de pequeños usuarios para proteger sus redes. Hace unos años era común que una mediana o gran empresa tuviera su propio RAS corporativo para que sus empleados accedieran a la base de datos de la compañía desde cualquier lugar del país realizando una llamada de larga distancia. La llegada de Internet le brindó a las empresas una opción viable a los costosos enlaces dedicados y otras soluciones brindadas por empresas de telecomunicaciones. ¿Pero por qué usar Internet?, porque Internet se encuentra en todas partes, porque el comportamiento del mercado es y seguirá siendo más velocidad (entendiéndose como ancho de banda) por menos precio. Las empresas se dieron cuenta que por medio de Internet sus trabajadores podrían acceder a sus redes corporativas desde casi cualquier parte del mundo. Otro motivo es la mejora en los tiempos de entrega y los costos de sus productos si mantenían su inventario en línea, realizando pedidos en tiempo real a sus proveedores. Las redes VPN disminuyen significativamente costos adicionales por comunicación y/o compartición de recursos entre dependencias de una misma empresa que se encuentran geográficamente distantes; a diferencia de enlaces WAN que representan altos costos mensuales. Los siguientes son los principales factores a tener en cuenta para realizar 213 214 CAPÍTULO 8. CONCLUSIONES una adecuada elección de la tecnología VPN en una implementación: ¿Se necesita acceso remoto y/o LAN-to-LAN?. ¿Cúal es el presupuesto?. Dependiendo de la respuesta se debe escoger qué tipo de implementación realizar. Si sólo se necesita acceso remoto, el presupuesto es bajo y la seguridad que se requiere es mínima, lo recomendable es montar una solución con un servidor PPTP bajo Windows Server 2003 o en un entorno Linux en cualquier de sus distribuciones. Ya que es muy sencilla, requiere poca administración, es muy versátil dado que prácticamente todos los usuarios remotos tendrán PCs con ambientes Windows. Si se necesita mayor seguridad, se podría optar por montar una Infraestructura de Llave Pública (IKE) haciendo uso del software OpenVPN en su configuración Road Warrior. Si sólo se necesita LAN-to-LAN y el presupuesto es bajo, lo recomendable es montar un gateway seguro IPSec bajo Linux, en cada sede, siempre y cuando se cuente con personal capacitado. Ahora bien, si se disponde de los recursos, el escenario óptimo sería una solución por hardware con routers o equipos diseñados para hacer VPN (LAN-to-LAN) aparte de gestionar la conexión de Internet. En LAN-to-LAN no se evalúa la seguridad necesaria, ya que se asume que ésta debe ser alta, y bajo ese principio se parte. ¿Cuantos usuarios remotos se atenderán?. ¿Con qué frecuencia de intervalos de tiempo?. Esta pregunta es necesaria para comparar qué solución VPN es conveniente implementar. Si los usuarios remotos son pocos y el servicio no es crítico, bastará con una VPN por software bajo un protoco simple de implementar (ej.: PPTP), si los usuarios son muchos y el servicio requiere de alta disponibilidad, la solución debe llevarse por hardware usando un dispositivo servidor de marca líder, como ser Cisco , 3Com, entre otros. También se debe considerar la Movilidad de los cliente VPN, esto hace pensar en una solución usando el protocolo SSL para prescindir del software clientes-VPN en el establecimiento de los túneles y que no tenga ningún inconveniente con Servidores Proxy (en el caso de PPTP) y Servidores Nat (es el caso de IPsec) que puedan encontrarse como dispositivos intermediarios. Entre todas las soluciones VPN se destaca el Software OpenVPN, por su gran seguridad a nivel empresarial, facilidad de uso y riqueza de características. Esta solución multiplataforma bajo licencia GPL simplificó mucho la configuración de VPN’s dejando atrás los tiempos de otras soluciones difíciles de configurar como IPsec y haciéndola más accesible a más gente. 8.1. LÍNEAS FUTURAS 215 Otra cuestión está relacionada con empresas que poseen sistemas monolíticos y no cuentas con los recursos necesarios (u otras razones) para implementar una arquitectura Cliente-Servidor. La solución VPN permite remediar este problema pero será necesario para estas empresas, una migración a nuevas tecnologías que funcionen en entornos Web haciendo uso de conexiones seguras SSL. Por último se podría decir que el único inconveniente que pudieran tener las VPN es que si al implementarlas no se establecen correctamente las políticas de seguridad y de acceso, pueden existir consecuencias serias. La seguridad concentrada en el transporte de los datos en las VPN es muy eficiente con los métodos de encriptación y de autenticación. A los efectos de facilitar el proceso de enseñanza - aprendizaje referido a estas tecnologías, se ha desarrollado un sistema de e-learning que, mediante la utilización de tecnologías web y bases de datos multiplataforma, facilita el proceso mencionado precedentemente, incluyendo la posibilidad de consultar acerca de los aspectos teóricos de las VPN, descargar material de estudio y realizar pruebas de conexión reales. Respecto de las herramientas utilizadas en la realización del presente trabajo, cabe destacar la potencia de las mismas, como así también su facilidad de integración necesaria para la concreción de los objetivos planteados, que fueron logrados plenamente. 8.1. Líneas Futuras En lo referente al trabajo concreto de aplicación de las tecnologías VPN en el IOSCOR, se considera que debería profundizarse en el trabajo realizado, ampliándolo a sectores que aún no tienen acceso a las conexiones VPN, tanto en la Sede Central de Capital como en las bocas de expendio de Capital y las delegaciones del Interior de la Provincia. En cuanto a la aplicación de enseñanza - aprendizaje desarrollada, sería conveniente mejorar el hardware utilizado, la gestión de la seguridad en cuanto a los diferentes perfiles de usuarios, y la incorporación de nuevas funcionalidades para prácticas interactivas. Bibliografía [1] G. Brollo. Redes Virtuales Privadas. Brollo, Argentina, 2009. [2] Kim Lew Spanier and Stevenson. Internetworking Technologies Handbook. Cisco Press, USA, 1997. [3] Network Magazine. Internet-based VPNs: Business or Cattle Class. Revista Network Magazine, USA, 2004. [4] RFC2402. IP Authentication Header. RFC2402, USA, 1999. [5] Wikipedia. L2TP - Layer 2 Tunneling Protocol. www.wikipedia.org, USA, 2009. [6] RFC2401. Security Architecture www.wikipedia.org, USA, 1998. for the Internet Protocol. [7] RFC2406. IP Encapsulating Security Payload (ESP). RFC2406, USA, 1999. [8] RFC2409. The Internet Key Exchange (IKE). RFC2409, USA, 1999. [9] RFC2408. Internet Security Association and Key Management Protocol - ISAKM. RFC2408, USA, 1999. [10] D. Piscitello. Completing the Secure Application Access Puzzle: SSL VPNs offer the Greatest Promise, but their Capabilities Still need some Enhancement. Business Communications Review, USA, 2005. [11] Cyberoam White. SSL VPN over UTM Ű Secure Remote Access. Business Communications Review, USA, 2005. [12] Wikipedia. SSL VPN. Wikipedia, USA, 2009. [13] www.microsoft.com. SSTP en Windows Server 2008. Microsoft, USA, 2010. 217 218 BIBLIOGRAFÍA [14] G. Sánchez Ruipérez. E-leusis.net. EuCarPrint, España, 2004. [15] IEEE. IEEE Standard Computer Dictionary: A Compilation of IEEE Standard Computer Glossaries. IEEE Press, USA, 1990. [16] Fernández M. J. Caeiro M. Santos J. M. Gomez J. S. Llamas M. Anido, L. E. Educational metadata and brokerage for learning resources. Computers and Education 38: 351-374, USA, 2002. [17] W. Hodgins. IEEE LTSC Learning Technology Standards Committee P1484. ADLNET, USA, 2001. [18] M. Genesereth G. Wiederhold. The Conceptual basis for mediation services. IEEE Computer, 38-46, USA, 1997. [19] E. Castillo; A. Cobo; P. Gómez; C. Solares. JAVA - Un Lenguaje de Programación Multiplataforma para Internet. Paraninfo, Madrid-España, 1997. [20] L. Joyanes Aguilar; I. Zahonero Martínez. Estructura de Datos - Algoritmos, Abstracción y Objetos. Mc Graw Hill/Interamericana de España, S.A.U., España, 1998. [21] L. Joyanes Aguilar. Programación Orientada a Objetos - Segunda Edición. Mc Graw Hill/Interamericana de España, S.A.U., España, 1998. [22] L. Boszörményi. Why Java is not my Favourite First-course Language. Software - Concepts & Tools, N◦ 19, 141-145, 1998. [23] IBM. WebSphere Comerse V5.5 Architecture. IBM Press, USA, 2003. [24] IBM. IBM DB2 Warehouse Manager Guía de Instalación Versión 7. IBM Press, USA, 2001. [25] IBM Corporation. IBM DB2 Universal Database para Windows Guía Rápida de Iniciación Versión 7. IBM Press, USA, 2000. [26] IBM Corporation. IBM DB2 Universal Database Suplemento de Instalación y Configuración Versión 7. IBM Press, USA, 2000. [27] IBM Corporation. IBM DB2 Universal Database Personal Edition Guía Rápida de Iniciación Versión 7. IBM Press, USA, 2000. [28] Wikipedia. VirtualBox. Wikipedia, USA, 2010. BIBLIOGRAFÍA [29] Wikipedia. Visio. Wikipedia, USA, 2010. [30] Wikipedia. OpenVPN. Wikipedia, USA, 2010. 219 Índice alfabético AAA, 24 active directory, 30 AES, 70 AIX, 194 API, 201 Applets contenedor de, 191 ATM, 7, 8, 46, 47, 51 Authentication Header (AH), 58 B/R, 200 base de datos Segmentación de la, 197 bibliotecas de clases, 170 BRI, 12 Business Intelligence, 202 Centro de Desarrollo, 202 CHAP, 20, 24, 50 clear channel, 4 conectividad herramientas de, 196 controlador de dominio, 45 DAS, 200 Data Marts, 196 Datajoiner El producto, 196 DB2 Introducción a, 193 Universal Database, 194 DB2 Connect, 196 db2 Data Links Manager, 202 DB2 UDB Versión 8.1, 202 DB2 Warehouse Manager, 202 DBA, 199 DDNS, 100 DES, 51, 70 DHCP, 84 Diffie Hellman, 116 Diffie-Hellman, 28, 64, 70 DNS, 17 DRDA, 200 DSA, 70 e-business Web enabled para, 194 e-learning, 125, 128, 136 EAP, 16, 50 EAP-TLS, 44, 80 ECP, 51 ejemplo de operadores incrementales y relacionales, 181 enterprise beans, 190 ESP, 60 ETHERNET, 109 Ethernet, 41, 78, 88, 210 Firewall, 57 Fortezza, 70 Frame Relay, 4, 5, 7, 8, 41, 45—47, 51 front-end 221 222 ÍNDICE ALFABÉTICO Administrador de utilidades, 201 Gestión de Datos, 202 globalización, 128 GPL2, 208 granularidad grados de, 194 GRE, 40—44 cabecera mejorada, 44 GUI, 190 GUI Browser, 200 hash, 24, 27, 60, 65 HDLC, 17 HMAC, 64 HP-UX, 194 HTTP, 70 HTTPS, 80 IANA, 143 IBM Data Management de, 194 IDEA, 70 IEEE, 210 IETF, 45, 64, 69 IKE, 20, 63—65, 116, 214 IMAP, 70 IMS, 196 Informix, 196 Internet, 2, 13, 34, 46, 47, 69 Intranets, 194 introducción a la sociedad de la información y el conocimiento, 141 IPCP, 17, 51 IPSec, 34, 51—53, 55, 56, 63—67, 78, 210 IPsec, 106 IPTABLES, 114 IPv4, 52 IPv6, 52, 81 IPX, 46 ISAKMP, 64 ISP, 98 IT, 188 ITU-T, 7 J2EE, 187 Java, 171, 194 características, 172 conceptos, 169 conceptos básicos, 175 estructura general de un programa, 174 flexibilidad de, 172 JCA, 189 JDBC, 190 JNDI, 191 JSP, 190 JVM, 189 L2F, 39, 45, 46 L2TP, 33, 34, 46, 47, 50—52, 95 LAN, 2, 5, 13, 34, 37, 41, 45, 46, 214 LDAP, 70 Linux, 114, 208 listas de capacidades, 30 listas de control de acceso, 29 MD5, 70 Microsoft SQL Server, 196 Microsoft Visio, 209 middleware, 188 modelización predictiva, 197 MPLS, 38 MPPC, 17 MPPE, 17, 40, 44, 51 MS-CHAP, 44, 50 multiplataforma, 196 Multiprocesador Sistema Simétrico, 197 ÍNDICE ALFABÉTICO NAS, 16, 25, 42 NAT, 79, 211 NCP, 17 NETBEUI, 46 NSLOOKUP, 102 NT Windows, 194 NTFS, 45 223 PPTP, 33, 34, 39—46, 51, 83, 96 PPTP / L2TP, 146 PRI, 12 protocolo de autenticación extensible, 16 proxy, 78, 211 Quick Installation, 189 RADIUS, 24, 45 Oakley, 64 RAS, 13, 28, 213 OBDC, 158 RC2, 70 OLAP, 194 RC4, 70 OLTP, 194 RDBMS, 194 OOP, 174 RDSI, 10—12 Open Source, 78, 210 Red Telefónica Conmutada, 109 OpenSSL, 74, 77, 210 Redes Virtuales Privadas, 1 OpenVPN, 114, 116, 146, 210 RFC, 69 operadores RSA, 44, 51, 70 de concatenación de cadenas de RSDI, 4 caracteres, 182 RTPC, 10 precedencia de, 182 S/KEY, 24 Oracle, 196 SAD, 55 OS/2, 194 serial database, 197 OS/400, 194 Server OSI, 4, 33, 70 Application packages, 174 Enterprise Edition, 188 PAP, 20, 24 servlets, 190 particiones múltiples, 198 SHA, 70 password únicos, 23 single node/non-parallel, 197 password tradicionales, 23 SMP, 197 perfiles de acceso, 200 SNMP, 202 PING, 102 software, 176 PKI, 65, 67, 70 Soluciones e-business, 202 plataforma Spatial Extender, 202 de software, 184 SPD, 55 plug-in, 189 SQL, 202 POP, 36—38 SSL, 33, 37, 69—73 PPP, 13, 15—17, 33, 39, 41—47, 50—52, SSL/TLS, 69 80, 92, 145 SSTP, 80 224 standalone database, 197 Sun Solaris, 194 Sybase, 196 TACKCS+, 45 TCP, 20, 40, 42, 43, 54, 70, 78, 211 TCP-IP, 13, 71 TCP/IP, 202 triple DES, 70 tunelamiento, 32 UDP, 20, 47, 54, 78, 211 uniprocessor system, 197 UNIX, 29 VirtualBox, 208 VLAN, 84 VPN, 2, 10, 13, 214 Institucional, 88 VPN-SSL, 68, 69 VSAM, 196 WAN, 4, 7 Web Services, 188 WebSphere para el comercio, 184 Wi-Fi, 78, 210 X.25, 5, 46, 51 X.509, 72, 104, 116 XML Extender, 202 ÍNDICE ALFABÉTICO