Upload
macbenachelcid1
View
19
Download
0
Embed Size (px)
Citation preview
TECNOLGICO DE ESTUDIOS SUPERIORES DE CHALCO
Ingeniera en Sistemas Computacionales
REFERENCIA:
CENTRO ESPECIALIZADO DE ATENCIN PRIMARIA A LA SALUD ATLAUTLA
MONTAJE DE UN SERVIDOR WEB PARA EL CENTRO ESPECIALIZADO DE ATENCIN PRIMARIA A LA SALUD
ATLAUTLA (CEAPS ATLAUTLA)
TESIS
QUE PARA OBTENER EL TITULO DE:
Ingeniero en Sistemas Computacionales
P R E S E N T A:
ANTONIO ALVAREZ GALICIA
CHALCO, ESTADO DE MXICO A 20 DE MAYO DE 2014
2
INDICE NDICE DE FIGURAS .......................................................................................................................... 6
CAPITULO 1. INTRODUCCIN ......................................................................................................... 8
1.1. PLANTEAMIENTO DEL PROBLEMA .................................................................................. 8
1.2. JUSTIFICACIN ....................................................................................................................... 9
1.3. OBJETIVOS ............................................................................................................................. 10
1.3.1. Objetivo General ............................................................................................................ 10
1.3.2. Objetivos Especficos .................................................................................................. 10
1.4. HIPTESIS .............................................................................................................................. 11
1.5. ACTIVIDADES REALIZADAS .............................................................................................. 11
1.5.1. Interaccin con el cliente ............................................................................................ 12
1.5.2. Planificacin ................................................................................................................... 12
1.5.3. Diseo, desarrollo y pruebas ..................................................................................... 13
1.5.4. Cronograma de actividades........................................................................................ 14
CAPITULO 2. MARCO TERICO ................................................................................................... 15
2.1. SERVIDORES .............................................................................................................................. 15
2.1.1. Definicin de Servidor ...................................................................................................... 15
2.1.2. Tipos de Servidores ....................................................................................................... 17
2.2. SISTEMAS OPERATIVOS PARA SERVIDORES ................................................................. 19
2.2.1. Caractersticas de los Sistemas Operativos de Red ................................................ 19
2.3. SERVIDORES WEB ................................................................................................................... 21
2.3.1. Definicin de servidor web .......................................................................................... 21
2.4. ADMINISTRACIN DE LA SEGURIDAD. .............................................................................. 24
2.4.1. Definicin de administracin de la seguridad. ........................................................... 25
2.4.2. Buenas Prcticas en la seguridad de servidores ..................................................... 26
2.5. TECNOLOGAS DE LOS SISTEMAS WEB ........................................................................... 29
2.5.1. HTML 5 .................................................................................................................................. 29
2.5.1.1. Ventajas ......................................................................................................................... 30
2.5.1.2. Desventajas .................................................................................................................. 30
2.5.2. PHP ........................................................................................................................................ 31
2.5.2.1. Ventajas ......................................................................................................................... 32
2.5.2.2. Desventajas .................................................................................................................. 33
2.5.3. DomPDF ................................................................................................................................ 33
3
2.5.3.1. Ventajas ......................................................................................................................... 34
2.5.3.2. Desventajas .................................................................................................................. 34
2.5.4. MySQL .................................................................................................................................. 34
2.5.4.1. Ventajas ......................................................................................................................... 36
2.5.4.2. Desventajas .................................................................................................................. 37
2.5.4.3. Algunos detalles tcnicos de MySQL .................................................................... 37
2.5.5. Apache .................................................................................................................................. 37
2.5.5.1. Ventajas ......................................................................................................................... 39
2.5.5.2. Desventajas .................................................................................................................. 40
2.5.6. AJAX ...................................................................................................................................... 41
2.5.6.1. Tecnologas incluidas en Ajax ................................................................................ 42
2.5.6.2. Problemas e Inconvenientes.................................................................................... 42
2.5.7. JQuery ................................................................................................................................... 43
2.5.7.1. Ventajas ......................................................................................................................... 43
2.5.7.2. Desventajas .................................................................................................................. 44
2.6. VULNERABILIDAD DE LOS SERVICIOS EN LA WEB ...................................................... 44
2.7. DESCRIPCIN DE LAS VULNERABILIDADES CON MAYOR RIESGO PARA LAS
APLICACIONES WEB ....................................................................................................................... 46
2.7.1. Fallos de Inyeccin ............................................................................................................ 46
2.7.2. Secuencia de Comandos en Sitios Cruzados (XSS) ................................................. 46
2.7.3. Perdida de Autenticacin y Gestin de Sesiones ..................................................... 47
2.7.4. Referencia Insegura y Directa a Objetos ..................................................................... 47
2.7.5. Falsificacin de Peticin en Sitios Cruzados (CSRF)............................................... 47
2.7.6. Configuracin defectuosa de seguridad...................................................................... 47
2.7.7. Almacenamiento Criptogrfico Inseguro ..................................................................... 48
2.7.8. Fallos de restriccin de acceso a URL ......................................................................... 48
2.7.9. Comunicaciones Inseguras ............................................................................................. 48
2.7.10. Redirecciones y Reenvos no validados.................................................................... 48
2.8. MEDIDAS DE PREVENCIN CONTRA LAS VULNERABILIDADES .............................. 48
2.9. PROGRAMACIN EXTREMA .................................................................................................. 50
2.9.1. Caractersticas fundamentales ....................................................................................... 54
2.10. DIAGRAMA DE CASO DE USO ............................................................................................ 56
2.10.1. Diagramas de Casos de Uso UML ............................................................................... 56
4
2.11. DIAGRAMA UML ...................................................................................................................... 57
2.12. DIAGRAMA ENTIDAD RELACIN .................................................................................... 58
2.13. CALIDAD .................................................................................................................................... 60
2.13.1. Medida de la calidad de software ................................................................................ 62
2.14. ESTADISTICA INFERENCIAL ............................................................................................... 62
2.14.1. Planteamiento del problema ......................................................................................... 63
2.14.2. Elaboracin de un modelo ............................................................................................. 63
2.14.3. Extraccin de la muestra ............................................................................................... 63
2.14.4. Tratamiento de los datos ............................................................................................... 64
2.14.5. Estimacin de los parmetros ...................................................................................... 64
2.14.6. Contraste de hiptesis ................................................................................................... 64
2.14.7. Conclusiones .................................................................................................................... 64
2.15. SOFTENG AGILE ..................................................................................................................... 64
2.15.1. Estudio estratgico ......................................................................................................... 64
2.15.3. Produccin ........................................................................................................................ 66
2.15.3. Control de calidad ............................................................................................................ 66
2.15.4. Puesta en marcha ............................................................................................................ 66
2.15.5. Gestin del proyecto ....................................................................................................... 67
2.16. VARIABLES DE MEDICION ................................................................................................... 67
Tamao Muestral ........................................................................................................................... 67
2.16.1. Variables Humanas de Medicion ................................................................................. 68
2.16.1.1. Satisfaccin ................................................................................................................ 68
2.16.1.2. Calidad ......................................................................................................................... 70
2.16.2. Variables Tecnolgicas de Medicin .......................................................................... 70
2.16.2.1. Carga ............................................................................................................................ 70
2.16.2.2. Tiempo ......................................................................................................................... 72
2.17. ADMINISTRACIN DEL SERVIDOR EN UBUNTU SERVER 12.04 ............................... 72
2.17.1. Instalacion del sistema operativo Ubuntu Server 12.04 ........................................ 73
2.17.2. Instalacion de servidor DNS en Ubuntu Server 12.04 ............................................ 82
2.17.3. Configuracin de Samba ............................................................................................... 85
2.17.4. Instalacion de un servidor de Correo en Ubuntu Server 12.04 ............................ 93
2.17.5. Instalacion de los Servicios SSH y Telnet en Ubuntu Server 12.04 ................. 107
2.17.6. Conclusiones Sobre Telnet ......................................................................................... 110
5
2.17.7. Manejo e instalacin de SSH ...................................................................................... 110
REFERENCIAS ................................................................................................................................. 114
6
NDICE DE FIGURAS
Figura 1. Imagen de un servidor ....................................................................................................... 15
Figura 2. Esquema del funcionamiento del modelo cliente-servidor ........................................... 16
Figura 3. Operatividad bsica de una peticin cliente-servidor .................................................. 21
Figura 4. Predominancia de servidores con sistema operativo presintalado a la venta en el
mercado ................................................................................................................................................ 22
Figura 5. Distribucion de los sistemas operativos para servidor de las familias UNIX y Linux
en el mercado ...................................................................................................................................... 23
Figura 6. Distribucion de los sistemas operativos Linux en servidores ..................................... 24
Figura 7. Ciclo de la administracin de la seguridad ..................................................................... 25
Figura 8. Monitoreo Bsico del anlisis de seguridad en servidores ......................................... 28
Figura 9. Estructura bsica del documento HTML 5 ..................................................................... 29
Figura 10. Logo de PHP .................................................................................................................... 31
Figura 11. Posicionamiento de los lenguajes de programacin para servidor .......................... 32
Figura 12. Uso de los Sistemas Gestores de Base de Datos mas populares a nivel mundial 36
Figura 13. Posicionamiento de Apache frente a sus competidores ............................................ 38
Figura 14. Funcionamiento bsico de Apache ............................................................................... 39
Figura 15. Analisis Basico del ataque SQL injection ..................................................................... 45
Figura 16. Esquematizacion de los valores de XP ......................................................................... 53
Figura 17. Principios bsicos del trabajo con programacin extrema ........................................ 55
Figura 18. Simbologia bsica de los diagramas de caso de uso ................................................. 56
Figura 19. Ejemplo de un diagrama de caso de uso para un restaurante ................................. 57
Figura 20. Ejemplo del diagrama entidad relacin. .................................................................... 59
Figura 21. Gestion de proyectos segn SOFTENG Agile ............................................................. 65
Figura 22. Eleccion de Lenguaje para Instalacion de Ubuntu Server ......................................... 73
Figura 23. Instalacion de Ubuntu Server ......................................................................................... 74
Figura 24.Eleccion de pas en Ubuntu Server ................................................................................ 75
Figura 25. Configuracin de un teclado para latam para nuestra PC. ........................................ 76
Figura 26. Configuracin del nombre de la mquina, en este caso, naranja. ........................... 77
Figura 27. Configuracin del nombre de nuestro superusuario para usarlo dentro del sistema
operativo. .............................................................................................................................................. 77
Figura 28. creamos nuestro usuario personal y no un superusuario ya que una es la cuenta
individual y la otra la del superusuario. ............................................................................................ 78
Figura 29. Configuracin de la contrasea de la cuenta del usuario. ......................................... 78
Figura 30. Configuracin de la zona horaria del servidor, debemos seleccionar de la lista
completa para conseguir el adecuado. ............................................................................................ 79
Figura 31. Confirmacin de la parte del disco a formatear para instalar nuestro sistema
operativo. .............................................................................................................................................. 80
Figura 32. Confirmacin de escritura en disco de los cambios propuestos. .............................. 80
Figura 33. Servicios con los que cuenta el servidor y que pueden ser instalados desde un
principio usando la barra espaciadora como seleccionador. ........................................................ 81
Figura 34. Pantalla de finalizacin de instalacin de Ubuntu Server 12.04 ............................... 82
Figura 35. Configuracion de Carpetas ............................................................................................. 83
Figura 36. Instalacion de Complementos ........................................................................................ 84
7
Figura 37. Configuracion del archivo smb.conf .............................................................................. 86
Figura 38. Configuracion del archivo smb.conf (parte2) ............................................................... 87
Figura 39. Configuracion de la carpeta ............................................................................................ 88
Figura 40. Configuracion de usuarios en samba ............................................................................ 89
Figura 41.Configuracion de usuarios en samba ............................................................................. 90
Figura 42. Entrada al dominio desde un cliente ............................................................................. 91
Figura 43. Windows XP en el dominio ............................................................................................. 92
Figura 44. Alternativa de Acceso al dominio ................................................................................... 92
Figura 45. Servicios Previos ante instalacin de un servidor de Correo .................................... 93
Figura 46. Configuracion de La red estatica ................................................................................... 94
Figura 47Confguracion del servidor Web Apache.......................................................................... 95
Figura 48. Instalacion de los servicios de Correo .......................................................................... 96
Figura 49. Instalacion de otros servicios ......................................................................................... 97
Figura 50. Configuracion de Postfix ................................................................................................. 98
Figura 51. Configuacion de Squirrelmail .......................................................................................... 99
Figura 52. Configuracion de Squirrelmail (parte2) ....................................................................... 100
Figura 53. Configuracion de Squirrelmail (parte3) ....................................................................... 101
Figura 54. Configuracion de Squirrelmail (parte4) ....................................................................... 102
Figura 55. Configuracion de Squirrelmail (parte5) ....................................................................... 103
Figura 56. Creacion de un enlace simbolico ................................................................................. 104
Figura 57. Primer acceso a SquirrelMail ........................................................................................ 105
Figura 58. Interfaz Cliente Servidor de correo. ............................................................................. 105
Figura 59. Primer Correo en el cliente ........................................................................................... 106
Figura 60.Detalle de la pantalla de correo enviado. .................................................................... 107
Figura 61. Instalacion de los servicios ........................................................................................... 108
Figura 62. Acceso a Telnet .............................................................................................................. 109
Figura 63. Finalizacion del Servicio telnet ..................................................................................... 110
Figura 64. Instalacion del servicio SSH ......................................................................................... 111
Figura 65. Uso de Putty .................................................................................................................... 112
Figura 66. Uso de Putty (parte2) ..................................................................................................... 112
Figura 67. Configuracion de Putty .................................................................................................. 113
Figura 68. Incio de Putty .................................................................................................................. 113
8
CAPITULO 1. INTRODUCCIN
1.1. PLANTEAMIENTO DEL PROBLEMA
El CEAPS Atlautla es una institucin regional que cuenta con un sistema web
de administracin web, sin embargo, dicho sistema no cuenta con una generacin
dinmica de formatos para evitar datos redundantes que apoyen a los mdicos en
sus informes para evitar la sobrecarga de trabajo, esto disminuye la atencin que se
le da a los pacientes evitando un servicio ptimo, adems de que el sistema est en
internet y muchas veces se traba1.
Implementar un servidor web Linux en centros regionales con estas
caractersticas y, en particular, para los CEAPS que tienen la misma problemtica
abre las puertas a la implementacin intranet de sistemas ms eficientes y de bases
de datos ms rpidas trabajando con recursos mnimos. Otra caracterstica valuada
en dicho centro es el impacto que tiene en la sociedad, directamente afecta a 3
agentes, los cuales son en orden de importancia, los derechohabientes, los mdicos
de rea externa y la administracin del rea de estadstica.
Por un lado los derechohabientes deben esperar largas filas en los
consultorios ya que con cada cita que atienden los mdicos estos ltimos deben
llenar alrededor de 22 formatos para llevar un correcto control de informacin, ya que
por da deben entregar un informe de actividades traducido en ficha del da lo que
ocasiona que el tiempo de respuesta para la siguiente consulta sea muy tardado y el
tiempo en consulta sea mnimo, ello se traduce en una atencin muy rpida y poco
profunda para el paciente.
Por otro lado el rea de estadstica se enfrenta al problema de entregar
informes mensuales a sus autoridades y muchas veces los datos que entregan los
mdicos no son correctos por la enorme carga que tiene de trabajo a la hora de
1 (Pea, 2014)
9
hacer sus registros ocasionando datos redundantes, falsos, y regreso de documentos
para su realizacin una y otra vez.
Un servidor con sistema libre que pueda almacenar una base de datos y
respaldarla en servidores ajenos (usando trabajos en CRON) para evitar prdidas y
siempre tener un respaldo2, resulta costeable y de alto impacto a los
derechohabientes, los mdicos externos y el flujo de informacin estadstico
formando un canal que abre las posibilidades del centro a mejorar an ms los
servicios proporcionados.
1.2. JUSTIFICACIN
En la actualidad, y con el incremento de la poblacin, uno de los problemas
ms comunes en las clnicas regionales es el flujo de informacin para llevar un
correcto control de las operaciones realizadas acertadamente en el rea de consulta
externa.
Tal es el caso del Centro Especializado de Atencin Primaria a la Salud
seccin Atlautla (CEAPS Atlautla) donde el rea de consulta externa carece de un
sistema que apoye a los mdicos para generar sus informes mensuales que cuentan
con datos como el nmero de pacientes atendidos, el tipo de programa al que
pertenecen (Seguro Popular, por ejemplo), su diagnstico entre otros datos, ello
provoca que al final de cada mes se vean muy presionados para poder entregar
dicha documentacin al rea de estadstica provocando un descontrol en el flujo de
informacin, un desorden de datos y, en algunas ocasiones, datos que no coinciden
por lo apresurado de registrarlos3.
2 (W3Techs, Linux.org, 2014)
3 (Pea, 2014)
10
Implementar un servidor web con tecnologas libres en una de las maquinas
con las que cuenta el centro para la instalacin de un sistema a medida que ayude a
la administracin de formatos del rea de consulta externa ayudara a que los datos
generados por consulta en cada da y multiplicada por mes y por 24 horas generando
dichos formatos de manera dinmica ayudara a que los mdicos del centro tengan
menos trabajo para brindar un mejor servicio y mayor tiempo de atencin a los
derechohabientes evitando que los datos no coincidan cuando pasen al rea de
estadstica ya que estos ya fueron llenados apoyados desde el servidor web que se
encontrara en intranet.
Hacer uso de tecnologas libres e indagar sobre ellas creara un nuevo
panorama de accin para cualquier estancia de gobierno y no solo limitndose a un
rea de clnica, ya que este tipo de administracin de servidores Linux evitara
problemas sobre licencias, creara una conciencia de legalidad en las instituciones y
aumentara gravemente la seguridad, fiabilidad y flujo de informacin para esta y
otras instituciones.
1.3. OBJETIVOS
1.3.1. Objetivo General
Montar un servidor web con sistema operativo Linux, para instalar el sistema
de administracin de consulta externa en una clnica regional, acelerando su
atencin a derechohabientes.
1.3.2. Objetivos Especficos
Convertir una PC del Centro Especializado de Atencin Primaria a la Salud de
Atlautla (CEAPS Atlautla) en un servidor web Linux con sistema operativo
Ubuntu Server en apache para la instalacin de un sistema de administracin
de consulta externa programado en PHP, HTML 5, JQuery, AJAX, JavaScript,
JQuery UI en una plataforma de navegacin Google Chrome.
11
Generar automticamente los informes diarios y mensuales de cada mdico,
extrayendo dicha informacin de los registros de cada da de la base de datos
en MySQL en el servidor usando la librera DomPDF para reducir el trabajo en
el rea de consulta externa proporcionando ms atencin a los
derechohabientes.
Instalar el protocolo SSH para la comunicacin remota al servidor por parte de
administrador, facilitando su mantenimiento y evitando estar presente para
crear nuevas funcionalidades o corregir errores posibles que se presenten
ante en el centro.
Instalar el protocolo FTP mediante los repositorios de Ubuntu para la gestin
de archivos remotamente en caso de requerirse una actualizacin en el
servidor o en el propio sistema de administracin, reduciendo el tiempo de
mantenimiento generando mayor satisfaccin en los usuarios.
1.4. HIPTESIS
El montaje de un servidor web para instalar un sistema de administracin
de los pacientes aumentara la calidad del servicio proporcionado a los
derechohabientes y la satisfaccin del servicio.
Un servidor web dedicado a un sistema de administracin de pacientes
reduce el tiempo invertido en trabajo de los mdicos de consulta externa al generar
sus reportes de manera automtica.
1.5. ACTIVIDADES REALIZADAS El montaje del servidor web y la programacin del sistema administrador de
pacientes para consulta externa fueron elaborados bajo la filosofa de la
programacin extrema debido a la necesidad de implementar lo ms rpido posible
este sistema informtico.
12
1.5.1. Interaccin con el cliente
Se plantea la realizacin de 5 entrevistas con respectivos 5 avances para
generar el software destinado a los mdicos bajo la supervisin del jefe de
estadstica, Lic. Orlando Valdez Pea del Centro Especializado de Atencin Primaria
a la Salud en el municipio de Atlautla. En primera instancia se puntualiz en la
necesidad que tienen los mdicos de entregar informes mensuales y diarios dados
los datos de los pacientes ya que estos consumen tiempo que ya no dedican a los
pacientes sino a generar documentacin de su trabajo. Estos informes muchas veces
no coinciden con los datos que se tienen en el rea de archivo, generando fallas e
inconsistencias que ms tarde repercuten en rehacer todos los informes desde cero.
Adicionalmente, el centro cuenta con un sistema de administracin, sin
embargo es ineficiente y carece de funcionalidades ya que es necesaria una
conexin a internet mejor que la tpica con la que se cuenta y por ello el sistema no
es utilizado.
Momentneamente el centro cuenta con un rea de consulta externa la cual
llena formatos iguales para todos los mdicos una clase de formatos denominados
SIS, los cuales evocan a datos particulares de los pacientes como su edad, genero,
programa de apoyo de adscripcin, diagnostico que presenta, si viene o no de otra
clnica, si pertenece a otro seguro, si es indgena, migrante, extranjero, etc. Todo
esto con un marcado riesgo de error ya que al registrar la consulta tambin debera
registrarse el informe mensual pero a su vez ocasionara inconsistencia o riesgo a
perdida de datos ya que cada paciente se maneja por una clave y lo mismo ocasiona
para el diagnstico.
1.5.2. Planificacin
Una vez obtenido el objetivo del proyecto se plantea el montaje de un servidor
web en el centro donde se instale un sistema de administracin para el rea de
consulta externa, registrando los pacientes para cada consulta, esto con el fin de
13
compartir la conexin a internet en una red intranet y que cada mdico pueda
acceder desde su consultorio al sistema en cuestin, por supuesto, para evitar el
problema de la conexin tambin es necesario este servidor, ya que, al encontrarse
en el centro mismo no requerir de un gran ancho de banda para generar resultados
ptimos.
Dada la necesidad los mdicos solo tendran que dar consulta ordinaria para
generar los informes correspondientes a los das y meses del ao, ya que en una
consulta se pueden recuperar los datos necesarios para este fin evitando la
redundancia de datos cumpliendo con el objetivo general.
1.5.3. Diseo, desarrollo y pruebas
Bajo la filosofa de la programacin extrema se han realizado varias pruebas
conforme avances se realizan acordes a las especificaciones e ideas generadas en
las entrevistas como se marca en el cronograma de actividades siguiente.
Lo que se pretende es continuar hasta la finalizacin del prototipo con las
entrevistas y la retroalimentacin de los involucrados en el proyecto para
enriquecerlo y extenderlo, adicionalmente este sistema apoyara en la generacin
ms rpida de los informes diarios y mensuales de cada mdicos para despus
adaptarlo a otros centro y a otras reas subsecuente a la finalizacin del software
como se indica en el cronograma.
14
1.5.4. Cronograma de actividades
TIEMPO ESTABLECIDO MARZO ABRIL MAYO JUNIO JULIO
NP ACTIVIDADES 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2
1 ELECCIN DEL TEMA
2 IDENTIFICACIN DEL PROBLEMA
3 ELABORACIN DE LA PROPUESTA DEL PROYECTO
4 PRIMERA ENTREVISTA CEAPS ATLAUTLA
5 ELABORACIN DE OBJETIVOS
6 DESARROLLO DEL PROTOTIPO FASE 1
7 ELABORACIN DE LA JUSTIFICACIN Y PLANTEAMIENTO DEL PROBLEMA
8 SEGUNDA ENTREVISTA CEAPS ATLAUTLA
9 DESARROLLO DEL PROTOTIPO FASE 2
10 TERCERA ENTREVISTA CEAPS ATLAUTLA
11 ELABORACIN DE LA HIPTESIS Y CARATULA
12 DESARROLLO DEL PROTOTIPO FASE 3
13 MARCO TERICO
14 CUARTA ENTREVISTA CEAPS ATLAUTLA
15 DESARROLLO DEL PROTOTIPO FASE 4
16 QUINTA ENTREVISTA CEAPS ATLAUTLA
17 PRUEBAS E IMPLEMENTACIN EN SERVIDOR
18 ANLISIS DE RESULTADOS
19 CONCLUSIONES Y RECOMENDACIONES
20 ELABORACIN DE ESQUEMAS FINALES DEL TRABAJO ESCRITO
15
CAPITULO 2. MARCO TERICO
2.1. SERVIDORES
2.1.1. Definicin de Servidor
Un servidor, es un ordenador o mquina informtica que est al servicio de
otras mquinas, ordenadores o personas llamadas clientes y que le suministran a
estos, todo tipo de informacin4.
Figura 1. Imagen de un servidor
Un servidor en informtica es un ordenador u otro tipo de dispositivo que
suministra una informacin requerida por unos clientes (que pueden ser personas, o
tambin pueden ser otros dispositivos como ordenadores, mviles, impresoras, etc.).
Por tanto, el siguiente esquema general, en el denominado esquema cliente-
servidor que es uno de los ms usados ya que en l se basa gran parte de internet.
4 (Augusto, 2011)
16
Figura 2. Esquema del funcionamiento del modelo cliente-servidor
Como se aprecia, tenemos una mquina servidora que se comunica con
variados clientes, todos demandando algn tipo de informacin. Esta informacin
puede ser desde archivos de texto, video, audio, imgenes, emails, aplicaciones,
programas, consultas a base de datos, etc.
Por regla general, las mquinas servidoras suelen ser algo ms potentes que
un ordenador normal5. Sobre todo suelen tener ms capacidad tanto de
almacenamiento de informacin como de memoria principal, ya que tienen que dar
servicio a muchos clientes. Pero como todo, tambin depende de las necesidades,
ya que podemos tener un servidor de menores prestaciones si vamos a tener pocos
clientes conectados, o si los servicios que queramos en el servidor no requieren una
gran capacidad servidora. Por general, los servidores suelen estar situados en
centros de datos de empresas (edificios con grandes salas dedicadas a alojar a los
servidores).
5 (Dueas, 2008)
17
2.1.2. Tipos de Servidores
Servidores de Aplicaciones (Application Servers)
Designados a veces como un tipo de middleware (software que conecta dos
aplicaciones), los servidores de aplicaciones ocupan una gran parte del territorio
entre los servidores de bases de datos y el usuario, y a menudo los conectan.
Servidores de Audio/Video (Audio/Video Servers)
Los servidores de Audio/Video aaden capacidades multimedia a los sitios
web permitindoles mostrar contenido multimedia en forma de flujo continuo
(streaming) desde el servidor.
Servidores de Chat (Chat Servers)
Los servidores de chat permiten intercambiar informacin a una gran cantidad
de usuarios ofreciendo la posibilidad de llevar a cabo discusiones en tiempo real.
Servidores de Fax (Fax Servers)
Un servidor de fax es una solucin ideal para organizaciones que tratan de
reducir el uso del telfono pero necesitan enviar documentos por fax.
Servidores FTP (FTP Servers)
Uno de los servicios ms antiguos de Internet, File Transfer Protocol permite
mover uno o ms archivos.
18
Servidores Groupware (Groupware Servers)
Un servidor groupware es un software diseado para permitir colaborar a los
usuarios, sin importar la localizacin, va Internet o va Intranet corporativo y trabajar
juntos en una atmsfera virtual.
Servidores IRC (IRC Servers)
Otra opcin para usuarios que buscan la discusin en tiempo real, Internet
Relay Chat consiste en varias redes de servidores separadas que permiten que los
usuarios conecten el uno al otro va una red IRC.
Servidores de Listas (List Servers)
Los servidores de listas ofrecen una manera mejor de manejar listas de correo
electrnico, bien sean discusiones interactivas abiertas al pblico o listas
unidireccionales de anuncios, boletines de noticias o publicidad.
Servidores de Correo (Mail Servers)
Casi tan ubicuos y cruciales como los servidores web, los servidores de correo
mueven y almacenan el correo electrnico a travs de las redes corporativas (va
LANs y WANs) y a travs de Internet.
Servidores Proxy (Proxy Servers)
Los servidores proxy se sitan entre un programa del cliente (tpicamente
un navegador) y un servidor externo (tpicamente otro servidor web) para filtrar
peticiones, mejorar el funcionamiento y compartir conexiones.
19
Servidores Web (Web Servers)
Bsicamente, un servidor web sirve contenido esttico a un navegador, carga
un archivo y lo sirve a travs de la red al navegador de un usuario. Este intercambio
es mediado por el navegador y el servidor que hablan el uno con el otro mediante
HTTP.
Se pueden utilizar varias tecnologas en el servidor para aumentar su potencia
ms all de su capacidad de entregar pginas HTML; stas incluyen scripts CGI,
seguridad SSL y pginas activas del servidor (ASP).
2.2. SISTEMAS OPERATIVOS PARA SERVIDORES
Un sistema operativo de red (Network Operating System) es un componente
software de una computadora que tiene como objetivo coordinar y manejar las
actividades de los recursos del ordenador en una red de equipos. Consiste en un
software que posibilita la comunicacin de un sistema informtico con otros equipos
en el mbito de una red. Dependiendo del fabricante del sistema operativo de red, el
software de red para un equipo personal se puede aadir al propio sistema operativo
del equipo o integrarse con l. Netware de Novell es el ejemplo ms familiar y
famoso de sistema operativo de red donde el software de red del equipo cliente se
incorpora en el sistema operativo del equipo. El equipo personal necesita ambos
sistema operativos para gestionar conjuntamente las funciones de red y las funciones
individuales.
2.2.1. Caractersticas de los Sistemas Operativos de Red
En general, se puede decir que un Sistema Operativo tiene las siguientes
caractersticas:
- Conveniencia. Un Sistema Operativo hace ms conveniente el uso de una
computadora.
20
- Eficiencia. Un Sistema Operativo permite que los recursos de la
computadora se usen de la manera ms eficiente posible.
- Habilidad para evolucionar. Un Sistema Operativo deber construirse de
manera que permita el desarrollo, prueba o introduccin efectiva de nuevas
funciones del sistema sin interferir con el servicio.
- Encargado de administrar el hardware. El Sistema Operativo se encarga
de manejar de una mejor manera los recursos de la computadora en
cuanto a hardware se refiere, esto es, asignar a cada proceso una parte
del procesador para poder compartir los recursos.
- Relacionar dispositivos (gestionar a travs del kernel). El Sistema
Operativo se debe encargar de comunicar a los dispositivos perifricos,
cuando el usuario as lo requiera.
- Organizar datos para acceso rpido y seguro.
- Manejar las comunicaciones en red. El Sistema Operativo permite al
usuario manejar con alta facilidad todo lo referente a la instalacin y uso de
las redes de computadoras.
- Procesamiento por bytes de flujo a travs del bus de datos.
- Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fcil al
usuario el acceso y manejo de los dispositivos de Entrada/Salida de la
computadora.
- Tcnicas de recuperacin de errores.
- Evita que otros usuarios interfieran. El Sistema Operativo evita que los
usuarios se bloqueen entre ellos, informndoles si esa aplicacin est
siendo ocupada por otro usuario.
- Generacin de estadsticas.
- Permite que se puedan compartir el hardware y los datos entre los
usuarios.
21
Figura 3. Operatividad bsica de una peticin cliente-servidor
2.3. SERVIDORES WEB
2.3.1. Definicin de servidor web
Los servidores web son los que hacen posible el Web hosting, es decir, la
posibilidad de alquilar un espacio en un servidor para alojar nuestro sitio.
La principal funcin de un servidor Web es almacenar los archivos de un sitio y
emitirlos por Internet para poder ser visitado por los usuarios. Bsicamente, un
servidor Web es una gran computadora que guarda y transmite datos va Internet.
Cuando un usuario entra en una pgina de Internet su navegador se comunica con
el servidor enviando y recibiendo datos que determinan qu es lo que ve en la
pantalla.
Cada servidor Web y cada computadora conectada a Internet tienen
asignado una direccin de IP irrepetible que lo identifica en la red. La direccin de
IP vendra a ser como los datos del remitente en una carta postal. Cuando se entra
a un sitio Web, se enva un pedido desde la direccin de IP hacia la direccin IP del
servidor. El servidor Web responde mandando datos a la direccin IP que los pide.
22
La capacidad de un servidor depende del tipo de servidor que sea y de los
componentes que lo conforman.
Por supuesto, la gran diferencia en velocidad, seguridad, viabilidad,
usabilidad y administracin de un servidor web depende mucho del sistema
operativo como punto de montaje. En la actualidad, los servidores vienen con
sistemas operativos instalados por defecto (Vease figura 4) que pueden o no
cumplir con las normas y/o policas empresariales.
Figura 4. Predominancia de servidores con sistema operativo presintalado a la venta en el mercado
extraida de W3Techs Web Technology Surveys: http://w3techs.com/technologies/details/os-
linux/all/all
Observamos una clara predominancia de los sistemas operatrivos de la
familia Microsoft, sin embargo, ello no implica que los mas usados sean estos
precisamente, sino que la figura muetra aquellos servidores cuyo sistema por
defecto es Windows, en este aspecto, es necesario destacar que cuando la
73.90%
21.10%
Sistemas Operativos de Servidor
Windows Server Linux
23
empresa lo requiere los sistemas operativos por defecto son sustituidos
primordialmente por productos de la familia Linux6.
Adjunto a las polticas y predominancia de los sistemas operativos de
servidor y la actualizacin a familia Linux ello implica un anlisis detallado de la
concurrencia de esta familia en el mercado de los servidores en contraste a la
familia Windows (Vease Figura 5).
Figura 5. Distribucion de los sistemas operativos para servidor de las familias UNIX y Linux en el
mercado
extraida de W3Techs Web Technology Surveys: http://w3techs.com/technologies/details/os-
linux/all/all
Quizs la predominancia de la familia Linux se deba a la facilidad de uso
para usuarios promedio adjuntos a las nuevas tecnologas, ello implica un anlisis
de la predominancia de esta familia de sistemas operativos en el mercado para
destacar la viabilidad en contraste a la conveniencia del fin ultimo (Vase Figura 6).
6 (Gelbmann, 2013)
67.50%
38.90%
UNIX y Linux en Servidores
Linux UNIX
24
Figura 6. Distribucion de los sistemas operativos Linux en servidores
extraida de W3Techs Web Technology Surveys: http://w3techs.com/technologies/details/os-
linux/all/all
.
2.4. ADMINISTRACIN DE LA SEGURIDAD.
Para que un esquema de seguridad quede completo, es necesario que se
lleve a cabo la administracin de la seguridad.
29%
22.80% 19.80%
6.70%
2.00%
1.90%
1.20% 16.60%
Linux en Servidores
Debian Ubuntu CentOS RedHat
Gentoo Fedora SuSE Otros
25
Figura 7. Ciclo de la administracin de la seguridad
imagen de Claudia Yvette Castro Jaime, T. H. (2010). Polticas y Buenas Prcticas de seguridad en
Servidores Web del CDMIT. Distrito Federal: Ciudad Universitaria.
.
2.4.1. Definicin de administracin de la seguridad.
La administracin de la seguridad se refiere a gestionar y dirigir todas las
acciones que se lleven a cabo con el fin de proteger la informacin, hacer uso lcito
de sta, as como de los recursos con los que cuenta la organizacin7.
La administracin consta de cuatro etapas
que son:
Etapa 1: Planeacin. Se debe llevar a cabo una revisin peridica de las polticas
de seguridad, por lo que hay que revisar el esquema de seguridad
desarrollado para identificar si se requiere actualizar, remover y modificar las que
ya existen.
Etapa 2: Proteccin. Despus de revisar y actualizar las polticas de seguridad
del entorno, se debe de reforzar la seguridad con base en stas y hacer uso de
7 (Claudia Yvette Castro Jaime, 2010)
26
nuevas tecnologas, ya que estas nuevas formas de proteccin elevan el nivel de
seguridad del entorno en cuestin.
Etapa 3: Deteccin. Es necesario contar con sistemas que permitan realizar
actividades de monitoreo de forma continua y permanente en toda informacin,
reas y sistemas que sean considerados dentro de las polticas como de
relevancia; y as mismo, generar reportes que permitan detectar alguna anomala
para tomar las medidas pertinentes, es decir, reaccionar a la anomala.
Etapa 4: Reaccin ante el incidente. En sta etapa se toman las decisiones que
dictan las acciones orientadas a salvaguardar los bienes informticos de
la empresa u organizacin, esto con base en la informacin obtenida de la etapa
anterior, se realiza de manera continua un anlisis de sta para tomar una decisin
de cambio de polticas o mecanismos. Estos cambios pueden ser desde actualizar
la tecnologa para llevar a cabo la proteccin de los bienes, modificar esquemas
de seguridad o llevar a cabo una revisin extraordinaria de las polticas, entre
otros.
2.4.2. Buenas Prcticas en la seguridad de servidores
Aunque nadie puede garantizar la seguridad al 100% de los algoritmos y la
estabilidad de un servidor, si que es posible generar un grado alto de calidad en el
montaje y administracin de los mismos para obtener resultados optimos, la
deteccin de las fallas es posible mediante el anlisis de las vulnerabilidades que
mas afectan en la actualidad a esta clase de dispositivos (vase Figura) por lo que es
importante seguir algunos patrones de conducta cuando se habla de instalar un
servidor:
1. No instalar servicios que no son necesarios. En general, en una operacin
tpica de instalacin, por defecto, del sistema no es seguro, ya que muchos
servicios de red que se descargan no son realmente necesarios por el usuario.
Esto se convierte en ms peligroso porque los servicios estn abiertos en el
servidor, es decir, ms puertos potenciales para los hackers puedan introducirse
27
en el mismo. Al eliminar estos servicios innecesarios de su servidor de red o
nunca descargarlos en primer lugar, estaras tomando importantes medidas
preventivas para prevenir una brecha en la seguridad del servidor.
2. Accesibilidad de inicio de sesin remoto. En el pasado, muchos servidores
slo eran accesibles a travs de un Login de forma local. Sin embargo, esto no es
propicio para el entorno empresarial actual. Existe una mayor posibilidad de un
fallo de seguridad en el servidor cuando el acceso remoto est disponible, pero
se pueden tomar medidas para asegurar una conexin remota. Tneles y cifrado
junto con software de seguridad y otros equipos son una buena manera de
garantizar la mayor proteccin posible si se utiliza el acceso remoto a un servidor.
3. Seguimiento, Monitoreo, y auditora del servidor. A menudo, las brechas de
seguridad se producen porque el departamento de TI no es consciente de lo que
est pasando. Todos los registros en los servidores web deben ser almacenados
en un rea inaccesible por separado. Estos registros, incluyendo registros de
acceso del sitio web, registros de servicios de red, los registros del sistema y los
registros de la base de datos del servidor se les debe realizar un seguimiento de
por lo menos una vez por semana, si no todos los das. Ser consciente de una
posible infraccin, ya que si se produce puede ser la mejor manera de minimizar
los daos, se puede resolver o incluso se puede detectar que se est
produciendo.
4. Desarrollo y prueba de aplicaciones Web. Debido a que es ms fcil y ms
rpido probar nuevas aplicaciones web en el servidor en s, muchos
desarrolladores lo hacen. Sin embargo, esto es muy peligroso porque estas
aplicaciones web por lo general en sus primeras fases de desarrollo y no tienen
28
ningn tipo de restricciones de seguridad desarrollada. Debido a estos peligros,
las nuevas aplicaciones web ya sea en desarrollo o prueba siempre deben
llevarse a cabo en distintos servidores de Internet, y an ms importante, nunca
se debe conectar a los datos importantes o bases de datos.
5. Privilegios y acceso al servidor. Cuando un servidor web se ve comprometido
por medio de una violacin del mismo, a menudo el hacker puede utilizar la
cuenta que est corriendo en el servidor para ejecutar tareas maliciosas. Es por
esto que es tan importante que para conceder determinados permisos slo a
ciertos individuos, por lo general una violacin no da lugar a que el hacker tenga
acceso a toda la informacin. Como regla general, slo se debe permitir que los
privilegios mnimos para el usuario annimo, estos privilegios usualmente slo
permiten el acceso a la pgina web, archivos de aplicaciones web, datos
generales y bases de datos.
Figura 8. Monitoreo Bsico del anlisis de seguridad en servidores
imagen de Claudia Yvette Castro Jaime, T. H. (2010). Polticas y Buenas Prcticas de seguridad en
Servidores Web del CDMIT. Distrito Federal: Ciudad Universitaria.
29
.
2.5. TECNOLOGAS DE LOS SISTEMAS WEB
2.5.1. HTML 5
HTML 5 es una coleccin de estndares para el diseo y desarrollo de pginas web.
Esta coleccin representa la manera en que se presenta la informacin en el
explorador de internet y la manera de interactuar con ella.
HTML 5 est siendo desarrollado por Ian Hickson de Google Inc. y David Hyatt de
Apple Inc. junto con todas las personas que participan en Web Hypertext Application
Technology Working Group.
HTML 5 nos permite una mayor interaccin entre nuestras pginas web y contenido
media (video, audio, entre otros) as como una mayor facilidad a la hora de codificar
nuestro diseo bsico8.
Figura 9. Estructura bsica del documento HTML 5
Esta nueva versin se bas en el diseo ms comn de las pginas web
8 (Gauchat, 2012)
30
alrededor del mundo para llegar a un estndar de etiquetas que realicen las mismas
tareas de manera ms rpida y eficiente
2.5.1.1. Ventajas
Las principales ventajas que presenta HTML5, tenemos las siguientes:
Nueva estructura de etiquetas mejorada, esta nueva estructura permite
definir por separado el encabezado, la barra de navegacin, las secciones de la
pgina web, los textos del sitio, los dilogos y el pi de pgina de los sitios web. Esta
nueva estructura, incluso permite desarrollar blogs con gran facilidad.
Inclusin de las etiquetas video y audio, dicha etiqueta soporta de manera
eficiente y estable cualquier opcin de ejecucin de video y audio, sin generar
errores o incluir cdigo flash en nuestro sitio web.
Capacidad de realizar ejecuciones offline de las pginas web creadas con
cdigo HTML5, lo que permite realizar aplicaciones de escritorio con este cdigo tan
verstil.
Incluye una nueva etiqueta de dibujo sobre la pgina web, llamada canvas,
que vuelve el proceso de crear dibujos en el sitio web tan fcil como dibujar con
aplicaciones como Paint.
2.5.1.2. Desventajas
No se preveen buenos filtros a los campos de texto insertados
En algunas ocasiones el PHp emebebido ocasiona conflictos con las nuevas
etiquetas
No todos los navegadores detectan aun esta nueva tendencia
Aun no se prevee la inclusin del CSS3 en todos los navegadores
Algunos dispositivos mviles no reconocen la snuevas etiquetas.
31
2.5.2. PHP
PHP es un lenguaje de cdigo abierto muy popular, adecuado para desarrollo
web y que puede ser incrustado en HTML. PHP (acronimo de "PHP: Hypertext
Preprocessor") es un lenguaje interpretado de alto nivel embebido enpginas HTML y
ejecutado en el servidor9.
Figura 10. Logo de PHP
PHP se utiliza para generar pginas web dinmicas. Se llama pgina esttica
a aquella cuyos contenidos permanecen siempre igual, mientras que se llama pgina
dinmica a aquella cuyo contenido no es el mismo siempre. Por ejemplo, los
contenidos pueden cambiar en base a los cambios que haya en una base de datos,
de bsquedas o aportaciones de los usuarios, etc.
Estas caractersticas convierten a PHp en una de las herramientas mas tiles
en la programacin e intalacion de sistemas web y ha generado gran expectativa por
su constante actualizacin frente a sus competidores (vase figura 11)
9 (Martnez, 2002) (Jimmy Wales, 2011)
32
Figura 11. Posicionamiento de los lenguajes de programacin para servidor
extraida de W3Techs Web Technology Surveys: http://w3techs.com/technologies/details/os-
linux/all/all
2.5.2.1. Ventajas
- Es un lenguaje multiplataforma.
- Completamente orientado al desarrollo de aplicaciones web dinmicas con
acceso a informacin almacenada en una Base de Datos.
- El cdigo fuente escrito en PHP es invisible al navegador y al cliente ya que
es el servidor el que se encarga de ejecutar el cdigo y enviar su resultado HTML al
navegador. Esto hace que la programacin en PHP sea segura y confiable.
- Capacidad de conexin con la mayora de los motores de base de datos que
se utilizan en la actualidad, destaca su conectividad con MySQL y PostgreSQL.
- Capacidad de expandir su potencial utilizando la enorme cantidad de
mdulos (llamados ext's o extensiones).
81.80%
17.90%
2.70% 0.80% 0.60% 0.50% 0.20% 0.10%
Lenguajes para Servidores
PHP ASP .NET Java ColdFusion
Perl Ruby Python JavaScript
33
2.5.2.2. Desventajas
Como es un lenguaje que se interpreta en ejecucin para ciertos usos puede
resultar un inconveniente que el cdigo fuente no pueda ser ocultado. La ofuscacin
es una tcnica que puede dificultar la lectura del cdigo pero no la impide y, en
ciertos casos, representa un costo en tiempos de ejecucin
2.5.3. DomPDF
En ocasiones surge la necesidad de devolver va web un fichero con
formato PDF. La utilizacin de herramientas para la elaboracin de informes suelen
dar resultados muy profesionales permitiendo personalizar la parte visual poniendo
nmero de pgina, cabecera, etc. Sin embargo, cuando esta informacin se est
mostrando por pantalla en un HTML y se desea que sea descargable en un
documento nos obliga a tener que realizar la misma tarea dos veces, una
para HTML y otra para PDF.
DomPDF es una herramienta que permite leer un documento HTML y
convertirlo a PDF. El objetivo de esta herramienta no es crear un documento
estticamente profesional y personalizado, sino permitir con el mismo
documento HTML generar un documento PDF para que el usuario lo pueda
descargar ms fcilmente. Cuando la parte esttica no es tan importante, a veces
viene bien simplificar el trabajo realizando una sola vez la programacin.
Este proyecto es muy reciente, an por la versin Dompdf v0.5, por lo que en
la actualidad es una herramienta para considerarla con mucha prudencia.
Actualmente, la mayor parte de la funcionalidad soporta la mayor parte de CSS2. El
mayor reto que se pueden encontrar est en el desarrollo del soporte de los ltimos
estndares HTML 5 y CSS3.
Aunque tambin tiene limitaciones importantes. No siempre se puede plasmar
lo que puede ver el usuario en el caso de utilizar AJAX o contiene JavaScript. Por
otra parte, para poder utilizar esta librera es necesario que el HTML est en una
cadena por lo que el consumo de memoria puede ser considerable si el informe que
34
se desea imprimir es muy grande. Adems obligara a poner el CSS dentro del
fichero HTML.
Como punto positivo adicional, no es preciso incorporar mdulos o libreras
externas (en la configuracin del apache) ya que utiliza la clase R&OS escrita
en PHP que genera el PDF. Esta librera soporta PHP5 o superior y la licencia
es LGPL.
2.5.3.1. Ventajas
- Es posible convertir el cdigo HTML visualizado en una web en un
documento PDF
- Detecta CSS3 en las etiquetas de HTML
- Los diseos son fieles a la visualizacin en PDF despus de renderizar.
- Es agil con el servidor apache
2.5.3.2. Desventajas
- Existen varios problemas en cuanto a coordenadas en la inclusin de
etiquetas HTML
- No es posible atrapar aun todas las excepciones
- Es un proyecto de origen nuevo y por ello no cuenta con gran
documentacin
- La mayora de las funcionalidades nuevas se basan en la experiencia de
otros usuarios.
2.5.4. MySQL
MySQL es el servidor de bases de datos relacionales ms popular,
desarrollado y proporcionado por MySQL AB. MySQL AB es una empresa cuyo
35
negocio consiste en proporcionar servicios en torno al servidor de bases de datos
MySQL10.
Una base de datos es una coleccin estructurada de datos. La informacin
que puede almacenar una base de datos puede ser tan simple como la de una
agenda, un contador, o un libro de visitas, o tan vasta como la de una tienda en lnea,
un sistema de noticias, un portal, o la informacin generada en una red corporativa.
Para agregar, accesar, y procesar los datos almacenados en una base de datos, se
necesita un sistema de administracin de bases de datos, tal como MySQL.
Una base de datos relacional almacena los datos en tablas separadas en lugar
de poner todos los datos en un solo lugar. Esto agrega velocidad y flexibilidad. Las
tablas son enlazadas al definir relaciones que hacen posible combinar datos de
varias tablas cuando se necesitan consultar datos. La parte SQL de "MySQL"
significa "Lenguaje Estructurado de Consulta", y es el lenguaje ms usado y
estandarizado para accesar a bases de datos relacionales.
El servidor MySQL fue desarrollado originalmente para manejar grandes
bases de datos mucho ms rpido que las soluciones existentes y ha estado siendo
usado exitosamente en ambientes de produccin sumamente exigentes por varios
aos. Aunque se encuentra en desarrollo constante, el servidor MySQL ofrece hoy
un conjunto rico y til de funciones. Su conectividad, velocidad, y seguridad hacen de
MySQL un servidor bastante apropiado para accesar a bases de datos en Internet.
10
(Jimmy Wales, 2011)
36
Figura 12. Uso de los Sistemas Gestores de Base de Datos mas populares a nivel mundial
extraida de W3Techs Web Technology Surveys: http://w3techs.com/technologies/details/os-linux/all/all
2.5.4.1. Ventajas
1. MySQL software es Open Source
2. Velocidad al realizar las operaciones, lo que le hace uno de los gestores con
mejor rendimiento.
3. Bajo costo en requerimientos para la elaboracin de bases de datos, ya
que debido a su bajo consumo puede ser ejecutado en una mquina con
escasos recursos sin ningn problema.
4. Facilidad de configuracin e instalacin.
Soporta gran variedad de Sistemas Operativos
5. Baja probabilidad de corromper datos, incluso si los errores no se producen
en el propio gestor, sino en el sistema en el que est.
6. Su conectividad, velocidad, y seguridad hacen de MySQL Server
altamente apropiado para acceder bases de datos en Internet
MongoDB, 12% CouchDB,
0%
MySQL, 58%
PostgreSQL, 10%
MariaDB, 20%
USO DE SGBD
37
7. El software MySQL usa la licencia GPL
2.5.4.2. Desventajas
1. Un gran porcentaje de las utilidades de MySQL no estn documentadas.
2. No es intuitivo, como otros programas (ACCESS).
2.5.4.3. Algunos detalles tcnicos de MySQL
El software de bases de datos MySQL consiste de un sistema cliente/servidor
que se compone de un servidor SQL multihilo, varios programas clientes y
bibliotecas, herramientas administrativas, y una gran variedad de interfaces de
programacin (APIs). Se puede obtener tambin como una biblioteca multihilo que se
puede enlazar dentro de otras aplicaciones para obtener un producto ms pequeo,
ms rpido, y ms fcil de manejar.
2.5.5. Apache
Apache es el Servidor Web ms utilizado, lder con el mayor nmero de
instalaciones a nivel mundial muy por delante de otras soluciones como el IIS
(Internet Information Server) de Microsoft. Apache es un proyecto de cdigo abierto y
uso gratuito, multiplataforma (hay versiones para todos los sistemas operativos ms
importantes), muy robusto y que destaca por su seguridad y rendimiento (vase
figura).
38
Figura 13. Posicionamiento de Apache frente a sus competidores
extraida de W3Techs Web Technology Surveys: http://w3techs.com/technologies/details/os-linux/all/all
Su misin es crtica, ya que es el encargado de aceptar las peticiones de
pginas (o recursos en general) que provienen de los visitantes que acceden a
nuestro sitio web y gestionar su entrega o denegacin, de acuerdo a las polticas de
seguridad establecidas. Esto, que puede parecer simple, implica muchas facetas y
funcionalidades que debe cubrir, como pueden ser:
Atender de manera eficiente, ya que puede recibir un gran nmero de peticiones
HTTP, incluyendo una ejecucin multitarea ya que pueden darse peticiones
simultneas. Cualquier peticin compleja (por ejemplo con acceso a base de datos)
dejara colapsado el servicio.
Restricciones de acceso a los ficheros que no se quieran exponer, gestin de
autentificaciones de usuarios o filtrado de peticiones segn el origen de stas.
Manejar los errores por pginas no encontradas, informando al visitante y/o
redirigiendo a pginas predeterminadas.
Gestin de la informacin a transmitir en funcin de su formato e informar
adecuadamente al navegador que est solicitando dicho recurso.
64.92%
14.39%
9.89% 3.16%
Uso de Servidores (2012)
Apache Microsoft Nginx Google
39
Gestin de logs, es decir almacenar las peticiones recibidas, errores que se han
producido y en general toda aquella informacin que puede ser registrada y
analizada posteriormente para obtener las estadsticas de acceso al sitio web.
Figura 14. Funcionamiento bsico de Apache
imagen de Claudia Yvette Castro Jaime, T. H. (2010). Polticas y Buenas Prcticas de seguridad en
Servidores Web del CDMIT. Distrito Federal: Ciudad Universitaria.
2.5.5.1. Ventajas
El paquete del servidor es ms flexible en tiempo de ejecucin porque el
proceso actual del servidor puede ser ensamblado en tiempo de ejecucin por
medio de LoadModule en httpd.conf en lugar de hacerlo por medio de la
configuration en tiempo de compilacin. De este modo se pueden arrancar
diferentes instancias del servidor (estndar, versin SSL, mnima, versin
potenciada [PHP, etc. ], etc.) con una nica instalacin de Apache.
El paquete del servidor puede ser fcilmente ampliado con mdulos de
terceros incluso despus de la instalacin. Esto representa un gran beneficio
para los que mantienen paquetes, ya que les permite crear el paquete del
ncleo de Apache y adicionalmente paquetes que contengan extensiones
como PHP, mod_perl, mod_fastcgi, ...
40
Mayor facilidad en los prototipos de mdulos Apache porque con DSO y apxs
se puede trabajar fuera del rbol fuente de Apache y necesitar un nico
comando apxs -i seguido de un apachectl restart para cargar una nueva
versin del mdulo desarrollado en el servidor Apache que est funcionando
actualmente.
2.5.5.2. Desventajas
El mecanismo DSO no puede ser usado en todas las plataformas porque no
todos los sistemas operativos soportan carga dinmica del cdigo en el
espacio de direcciones de un programa.
El servidor es aproximadamente un 20% ms lento en su arranque debido a la
sobrecarga que la resolucin representa para el cargador (loader).
El servidor es aproximadamente un 5% ms lento en su ejecucin bajo
algunas plataformas porque el PIC (Position Independent Code, posicin de
cdigo independiente) necesita maniobras complicadas para direccionamiento
dinmico, que no es necesariamente tan rpido como el direccionamiento
absoluto.
No se puede usar DSO para todo tipo de mdulos, debido a que los mdulos
DSO no pueden ser enlazados con otras bibliotecas basadas en DSO (ld -lfoo)
en todas las plataformasB.4. En otras palabras, los mdulos compilados como
ficheros DSO estn restringidos a utilizar slo smbolos del ncleo de Apache,
de las biblioteca C (libc ) y todas las dems bibliotecas dinmicas o simblicas
usadas por el ncleo de Apache o desde archivos de bibliotecas estticas
(libfoo.a ) que contengan PIC. La nica ocasin de usar otro cdigo es, o bien
asegurarse de que el ncleo de Apache ya contenga una referencia a l,
cargando uno mismo el cdigo por medio de dlopen() , o bien habilitando la
regla SHARED_CHAIN cuando se compila Apache y la plataforma soporta el
enlace de ficheros DSO contra bibliotecas DSO.
Bajo algunas plataformas (varios sistemas SVR4) no hay forma de forzar al
enlazador para que exporte todos los smbolos globales cuando se enlaza el
41
programa ejecutable httpd. Pero sin la visibilidad de los smbolos del ncleo de
Apache, ningn mdulo estndar de Apache podra ser usado como DSO. La
nica posible solucin es compilar el sistema con la opcin SHARED_CORE
porque de este modo los smbolos globales se fuerzan a ser exportados.
2.5.6. AJAX
Ajax, acrnimo de Asynchronous JavaScript And XML (JavaScript asncrono
y XML), es una tcnica de desarrollo web para crear aplicaciones interactivas o RIA
(Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en
el navegador de los usuarios mientras se mantiene la comunicacin asncrona con el
servidor en segundo plano. De esta forma es posible realizar cambios sobre las
pginas sin necesidad de recargarlas, lo que significa aumentar la interactividad,
velocidad y usabilidad en las aplicaciones11.
Ajax es una tecnologa asncrona, en el sentido de que los datos adicionales
se solicitan al servidor y se cargan en segundo plano sin interferir con la visualizacin
ni el comportamiento de la pgina. JavaScript es el lenguaje interpretado (scripting
language) en el que normalmente se efectan las funciones de llamada de Ajax
mientras que el acceso a los datos se realiza mediante XMLHttpRequest, objeto
disponible en los navegadores actuales. En cualquier caso, no es necesario que el
contenido asncrono est formateado en XML.
Ajax es una tcnica vlida para mltiples plataformas y utilizable en muchos
sistemas operativos y navegadores dado que est basado en estndares abiertos
como JavaScript y Document Object Model (DOM).
11
(Jimmy Wales, 2011)
42
2.5.6.1. Tecnologas incluidas en Ajax
Ajax es una combinacin de cuatro tecnologas ya existentes:
XHTML (o HTML) y hojas de estilos en cascada (CSS) para el diseo que
acompaa a la informacin.
Document Object Model (DOM) accedido con un lenguaje de scripting por
parte del usuario, especialmente implementaciones ECMAScript como
JavaScript y JScript, para mostrar e interactuar dinmicamente con la
informacin presentada.
El objeto XMLHttpRequest para intercambiar datos de forma asncrona con el
servidor web. En algunos frameworks y en algunas situaciones concretas, se
usa un objeto iframe en lugar del XMLHttpRequest para realizar dichos
intercambios.
XML es el formato usado generalmente para la transferencia de datos
solicitados al servidor, aunque cualquier formato puede funcionar, incluyendo
HTML preformateado, texto plano, JSON y hasta EBML.
Como el DHTML, LAMP o SPA, Ajax no constituye una tecnologa en s, sino que
es un trmino que engloba a un grupo de stas que trabajan conjuntamente.
2.5.6.2. Problemas e Inconvenientes
Las pginas con AJAX son ms difciles de desarrollar que las pginas
estticas.
Las pginas creadas dinmicamente mediante peticiones sucesivas AJAX, no
son registradas de forma automtica en el historial del navegador, as que
haciendo clic en el botn de "volver" del navegador, el usuario no ser
devuelto a un estado anterior de la pgina, en cambio puede volver a la ltima
pgina que visit. Soluciones incluyen el uso de IFrames invisible para
desencadenar cambios en el historial del navegador y el cambio de la porcin
de anclaje de la direccin.
43
Los motores de bsquedas no entienden JavaScript. La informacin en la
pgina dinmica no se almacena en los registros del buscador.
Hay problemas usando Ajax entre nombres de dominios. Eso es una funcin
de seguridad.
El sitio con Ajax usa ms recursos en el servidor. Recomendacin: slo usar
las peticiones necesarias en Ajax, no desarrollar todo el sitio en AJAX. Con
esto garantizamos menos recursos del servidor.
Es posible que pginas con Ajax no puedan funcionar en telfonos mviles,
PDA u otros aparatos. Ajax no es compatible con todo el software para ciegos
u otras discapacidades.
2.5.7. JQuery
JQuery es una biblioteca de JavaScript, creada inicialmente por John Resig,
que permite simplificar la manera de interactuar con los documentos HTML,
manipular el rbol DOM, manejar eventos, desarrollar animaciones y agregar
interaccin con la tcnica AJAX a pginas web. Fue presentada el 14 de enero de
2006 en el BarCamp NYC12.
JQuery es software libre y de cdigo abierto, posee un doble licenciamiento
bajo la Licencia MIT y la Licencia Pblica General de GNU v2, permitiendo su uso en
proyectos libres y privativos. jQuery, al igual que otras bibliotecas, ofrece una serie
de funcionalidades basadas en JavaScript que de otra manera requeriran de mucho
ms cdigo, es decir, con las funciones propias de esta biblioteca se logran grandes
resultados en menos tiempo y espacio.
2.5.7.1. Ventajas
La ventaja principal de jQuery es que es mucho ms fcil que sus
competidores. Usted puede agregar plugins fcilmente, traducindose esto en un
12
(Jimmy Wales, 2011)
44
ahorro substancial de tiempo y esfuerzo. De hecho, una de las principales razones
por la cual Resig y su equipo crearon jQuery fue para ganar tiempo (en el mundo de
desarrollo web, tiempo importa mucho).
La licencia open source de jQuery permite que la librera siempre cuente con
soporte constante y rpido, publicndose actualizaciones de manera constante. La
comunidad jQuery es activa y sumamente trabajadora.
Otra ventaja de jQuery sobre sus competidores como Flash y puro CSS es su
excelente integracin con AJAX.
2.5.7.2. Desventajas
Una de las principales desventajas de jQuery es la gran cantidad de versiones
publicadas en el corto tiempo. No importa si usted est corriendo la ltima versin de
jQuery, usted tendr que hostear la librera usted mismo (y actualizarla
constantemente), o descargar la librera desde Google (atractivo, pero puede traer
problemas de incompatibilidad con el cdigo).
Adems del problema de las versiones, otras desventajas que podemos mencionar:
jQuery es fcil de instalar y aprender, inicialmente. Pero no es tan fcil si lo
comparamos con CSS
Si jQuery es implementado inapropiadamente como un Framework, el entorno
de desarrollo se puede salir de control.
2.6. VULNERABILIDAD DE LOS SERVICIOS EN LA WEB
Los primeros ataques a la red aprovecharon las vulnerabilidades relacionadas
con la implementacin de conjuntos de protocolos TCP/IP. Al corregirlas
gradualmente, los ataques se dirigieron a las capas de aplicaciones y a la Web en
45
particular, ya que la mayora de las empresas abrieron sus sistemas de firewall al
trfico en Internet13.
El protocolo HTTP (o HTTPS) representa el estndar que posibilita la
transferencia de pginas Web a travs de un sistema de solicitud y respuesta.
Internet, que se utiliza principalmente para transferir pginas Web estticas, se ha
convertido rpidamente en una herramienta interactiva que permite proporcionar
servicios en lnea14. El trmino "aplicacin Web" se refiere a cualquier aplicacin a
cuya interfaz se pueda acceder en la Web desde un simple navegador. Hoy en da, el
protocolo HTTP, la base para una determinada cantidad de tecnologas (SOAP,
JavaScript, XML-RPC, etc.), juega un indudable papel estratgico en la seguridad de
sistemas de informacin.
Debido a que los servidores Web estn cada vez ms protegidos, los ataques estn
dirigiendo su atencin al aprovechamiento de las fallas de las aplicaciones Web.
Como tal, la seguridad de los servicios de Internet debe tenerse en cuenta al
momento del diseo y desarrollo.
Figura 15. Analisis Basico del ataque SQL injection
imagen de Claudia Yvette Castro Jaime, T. H. (2010). Polticas y Buenas Prcticas de seguridad en
Servidores Web del CDMIT. Distrito Federal: Ciudad Universitaria.
13
(Claudia Yvette Castro Jaime, 2010) 14
(Claudia Yvette Castro Jaime, 2010)
46
Las vulnerabilidades de aplicaciones Web se pueden clasificar de la siguiente
manera:
Vulnerabilidades del servidor Web. Este tipo es cada vez ms atpico ya que la
mayora de los desarrolladores de servidores Web han aumentado su seguridad
con los aos;
Manipulacin de URL, incluida la modificacin manual de parmetros de URL para
modificar el comportamiento esperado del servidor Web;
Aprovechamiento de las debilidades de los identificadores de sesin y sistemas de
autenticacin;
Inyeccin de cdigo HTML y Secuencia de comandos entre sitios;
Inyeccin de comandos SQL.
2.7. DESCRIPCIN DE LAS VULNERABILIDADES CON MAYOR
RIESGO PARA LAS APLICACIONES WEB
2.7.1. Fallos de Inyeccin
Los fallos de inyeccin, tales como SQL, OS, y LDAP, ocurren cuando datos
no confiables son enviados a un intrprete como parte de un comando o consulta.
Los datos hostiles del atacante pueden engaar al intrprete y ejecutar comandos no
intencionados o acceder a datos sin autorizacin.
2.7.2. Secuencia de Comandos en Sitios Cruzados (XSS)
Los fallos XSS ocurren cada vez que una aplicacin toma datos no confiables
y los enva al navegador web sin una validacin y codificacin apropiada. XSS
permite a los atacantes ejecutar secuencia de comandos en el navegador de la
vctima los cuales pueden secuestrar las sesiones de usuario, destruir los sitios web,
o dirigir al usuario hacia un sitio malicioso.
47
2.7.3. Perdida de Autenticacin y Gestin de Sesiones
Las credenciales de cuentas y los testigos de sesin (session token)
frecuentemente no son protegidos adecuadamente. Los atacantes obtienen
contraseas, claves, o testigos de sesin para obtener identidades de otros usuarios.
2.7.4. Referencia Insegura y Directa a Objetos
Una referencia directa a objetos ("direct object reference") ocurre cuando un
programador expone una referencia hacia un objeto interno de la aplicacin, tales
como un fichero, directorio, registro de base de datos, o una clave tal como una URL
o un parmetro de formulario Web. Un atacante podra manipular este tipo de
referencias en la aplicacin para acceder a otros objetos sin autorizacin.
2.7.5. Falsificacin de Peticin en Sitios Cruzados (CSRF)
Un ataque CSRF fuerza al navegador validado de una vctima a enviar una
peticin a una aplicacin Web vulnerable, la cual entonces realiza la accin elegida
por el atacante a travs de la vctima. CSRF puede ser tan poderosa como la
aplicacin que est siendo atacada.
2.7.6. Configuracin defectuosa de seguridad
Una buena seguridad requiere tener definida e implementada una
configuracin segura para la aplicacin, marcos de trabajo, servidor de aplicacin,
servidor web, base de datos, y plataforma. Todas estas configuraciones deben ser
definidas, implementadas, y mantenidas ya que por lo general no son seguras por
defecto. Esto incluye mantener todo el software actualizado, incluidas las libreras de
cdigo utilizadas por la aplicacin.
48
2.7.7. Almacenamiento Criptogrfico Inseguro
Las aplicaciones Web raramente utilizan adecuadamente funciones
criptogrficas para proteger datos y credenciales. Los atacantes usan datos
dbilmente protegidos para llevar a cabo robos de identidad y otros crmenes, tales
como fraude de tarjetas de crdito.
2.7.8. Fallos de restriccin de acceso a URL
Frecuentemente, una aplicacin solo protege funcionalidades delicadas
previniendo la visualizacin de enlaces o URLs a usuarios no autorizados. Los
atacantes utilizan esta debilidad para acceder y llevar a cabo operaciones no
autorizadas accediendo a esas URLs directamente.
2.7.9. Comunicaciones Inseguras
Las aplicaciones frecuentemente fallan al autenticar, cifrar, y proteger la
confidencialidad e integridad de trfico de red sensible. Cuando esto ocurre, es
debido a la utilizacin de algoritmos dbiles, certificados expirados, invlidos, o
sencillamente no utilizados correctamente.
2.7.10. Redirecciones y Reenvos no validados
Las aplicaciones web frecuentemente redirigen y reenvan a los usuarios hacia
otras pginas o sitios web, y utilizan datos no confiables para determinar la pgina de
destino. Sin una validacin apropiada, los atacantes pueden redirigir a las vctimas
hacia sitios de phishing o malware, o utilizar reenvos para acceder pginas no
autorizadas.
2.8. MEDIDAS DE PREVENCIN CONTRA LAS VULNERABILIDADES
El anlisis de las vulnerabilidades potenciales es un objetivo bsico para el
incremento de la seguridad en las aplicaciones web, que en ocasiones es
subestimado como factor de riesgo crtico. El mantener parmetros que no son
49
verificados, roles sin controlar, desbordamientos que se producen en la memoria son
algunas de las situaciones que pueden provocar brechas de seguridad en las
aplicaciones.
Los desarrollos que se realizan comercialmente presentan las mismas
deficiencias. De ah, que necesiten una actualizacin constante para asegurar la
reparacin de bugs que se van encontrando en el tiempo de vida de las aplicaciones.
Con frecuencia, se asemeja la seguridad de una aplicacin con la seguridad de la
plataforma donde se ejecuta. El esfuerzo que se realice para aumentar la seguridad
tanto a nivel de desarrollo como de diseo, debe de ser un esfuerzo a nivel de grupo.
Los servidores de produccin y los otros sistemas deben mantenerse
regularmente con las ltimas firmas para garantizar que estn libres de
vulnerabilidades a nivel de sistema. Se recomienda seguir las siguientes indicaciones
destinadas a mantener una aplicacin alejada de las vulnerabilidades:
Entornos de trabajo diferenciados. Es muy aconsejable mantener entornos
separados del de produccin. Los entornos de calidad y de desarrollo son
frecuentemente manipulados por lo que entrarn en conflicto con los datos
mostrados por produccin. Es primordial que sus entornos estn bien diferenciados,
a ser posible mediante unos cortafuegos. Esta situacin es prioritaria cuando el
entorno de produccin es una zona interna o de transicin y accesible desde Internet.
Si el entorno de produccin tramita y ejecuta procesos, hay que asegurar los mismos
tanto a nivel de sistema como de aplicacin previamente a incluir nuevos procesos.
Este principio hay que mantenerlo cada vez que se actualice o mejore.
Distribucin de las actualizaciones. Con cierta frecuencia las aplicaciones realizan
actualizaciones para cubrir posibles deficiencias que se detectan a lo largo del ciclo
de vida de la aplicacin. Dependiendo del carcter de estas aplicaciones, si son
externas, las actualizaciones son inmediatas, si son internas se debe adems
examinar el cdigo de las aplicaciones creadas internamente e introducir las
actualizaciones o nuevas versiones a medida que vaya siendo necesario.
Contramedidas temporales. Es necesario realizar un protocolo de respuesta ante
posibles situaciones que entraen riesgo para las aplicaciones. En este protocolo se
50
pueden indicar acciones a realizar en funcin de la gravedad del riesgo detectado
(cerrar puertos, bloquear direcciones, routers). Es muy importante, para lograr
eficiencia en la respuesta, saber interpretar los efectos que delimitan el riesgo y
mantener a todo el equipo de trabajo involucrado plenamente informado del protocolo
de respuesta ante la activacin del mismo.
Modo de Fallos. Se debe de disponer de un plan que permita mantener en
funcionamiento el proceso crtico si se da la situacin que una aplicacin falle. Es
decir, debe de permitir una transaccin que permita enrutarse, de forma ajena a la
aplicacin, o bien permitir realizar de forma manual las funciones descritas en la
aplicacin. Lo ms importante es mantener el criterio de " cierre ante fallo". Una
aplicacin no debe abrirse si detecta un fallo. Si lo hace, corre el riesgo de permitir
todo tipo de acciones en el sistema. Las aplicaciones o sus comprobaciones internas
siempre deben cerrarse al fallar.
Conocimiento de desarrolladores y polticas. Es muy importante que todas las
personas involucradas en