Escolar Documentos
Profissional Documentos
Cultura Documentos
1
Indice
1 Introduccion 5
1.1 Motivaciones del proyecto . . . . . . . . . . . . . . . . . . . . 6
1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1 Estructura . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Vision general 9
2.1 El producto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 El sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 El proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 Tecnologas 23
6 Implementacion 28
6.1 Analisis de las plataformas existentes. . . . . . . . . . . . . . . 28
6.1.1 Servers fsicos . . . . . . . . . . . . . . . . . . . . . . . 28
6.1.2 Amazon Web Services . . . . . . . . . . . . . . . . . . 29
2
6.1.3 Telefonica Cloud Computing . . . . . . . . . . . . . . . 30
6.2 Eleccion de la plataforma . . . . . . . . . . . . . . . . . . . . . 31
6.3 Servidores Amazon Controler Unifi . . . . . . . . . . . . . . . 31
6.3.1 Introduccion al servidor Unifi . . . . . . . . . . . . . . 31
6.3.2 Objetivos y soluciones . . . . . . . . . . . . . . . . . . 32
6.3.3 Implementacion . . . . . . . . . . . . . . . . . . . . . . 33
6.3.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.4 Server Develop . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.4.1 Introduccion . . . . . . . . . . . . . . . . . . . . . . . . 33
6.4.2 Objetivos y soluciones . . . . . . . . . . . . . . . . . . 34
6.4.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.5 Ampliacion develop . . . . . . . . . . . . . . . . . . . . . . . . 35
6.5.1 Introduccion . . . . . . . . . . . . . . . . . . . . . . . . 35
6.6 Previo migracion del servidor de produccion . . . . . . . . . . 36
6.6.1 Introduccion . . . . . . . . . . . . . . . . . . . . . . . . 36
6.6.2 Migracion de base de datos . . . . . . . . . . . . . . . 37
6.6.3 Migracion de codigo . . . . . . . . . . . . . . . . . . . 39
6.6.4 Migracion de radiator . . . . . . . . . . . . . . . . . . . 39
6.6.5 Migracion de los servidores . . . . . . . . . . . . . . . . 40
6.7 Backups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.7.1 Analisis . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.7.2 Implementacion . . . . . . . . . . . . . . . . . . . . . . 41
6.7.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.8 Replicacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.9 HTTPS, SSL/TLS . . . . . . . . . . . . . . . . . . . . . . . . 43
6.10 Administracion de los dispositivos . . . . . . . . . . . . . . . . 45
6.10.1 Eleccion del tunel . . . . . . . . . . . . . . . . . . . . . 47
6.10.2 Implementacion . . . . . . . . . . . . . . . . . . . . . . 50
6.11 Monitorizacion de servidores . . . . . . . . . . . . . . . . . . . 51
6.12 Servicio generador de graficas . . . . . . . . . . . . . . . . . . 52
6.13 Automatizacion de servidores . . . . . . . . . . . . . . . . . . 54
6.13.1 Introduccion . . . . . . . . . . . . . . . . . . . . . . . . 54
6.13.2 Chef . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3
6.13.3 Recipes . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.14 AutoProvisionamiento . . . . . . . . . . . . . . . . . . . . . . 59
6.15 DenyHosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7 Estudio economico 63
7.1 Calculo de rentabilidad . . . . . . . . . . . . . . . . . . . . . . 63
8 Conclusiones 65
9 Bibliografa 67
10 Glosario 68
4
1 Introduccion
EL proyecto Diseno e implementacion del sistema de gestion de redes wire-
less con portal cautivo se ha desarrollado con la Start-up SocialAndBeyond.
Dicha empresa posee un producto en fase prototipo que se basa en un portal
cautivo, con el agregado de publicar campanas de marketing en las redes
sociales como contraprestacion a la conexion obtenida por el usuario.
5
1.1 Motivaciones del proyecto
En la actualidad, muchas empresas recientes tienen problemas de finan-
ciacion, donde la busqueda de capital se canaliza va el ahorro en tecnologas
mas asequibles para el desarrollo del producto. Ademas, cabe destacar que
es un hecho reiterado que una vez establecida la empresa, esta decida que los
costes de los servicios TI les resultan demasiado caros y difciles de mantener.
Para poder permitir a una empresa financiarse de forma mas eficiente este
proyecto intenta buscar soluciones TI mas eficientes, que permita un uso mas
adaptado a las necesidades de la empresa.
1.2 Objetivos
Seis son los objetivos que nos hemos marcado para este proyecto: la seleccion
y coordinacion de recursos, la estabilidad, la flexibilidad, la seguridad, la
gestion de usuarios y entornos de trabajo, la disponiblidad y finalmente la
automatizacion de tareas.
6
estabilidad, es importante que la plataforma donde se desarrolla la rama
DEVELOP sea lo mas similar posible a la plataforma donde se ubicara
el repositorio MASTER.
Como objetivo final, se han impulsado distintos servicios para poder re-
alizar ciertas tareas de forma automatica sin necesidad de intervencion.
Para cumplir estos objetivos se han usado distintas tecnologas, por ejemplo
highcharts and highstocks (para generar graficas), extjs, nodejs, JasonP, Git
y dos tipos de protocolos de tuneleado OpenVPN, PPTP, radiator (servicio
de autentificacion), chef (provisionamiento automatico de servidores).
1.2.1 Estructura
7
Estudio de la situacion inicial: Se plantea la situacion inicial de los
sistemas, ahondando en su funcionamiento y exponiendo sus carencias
y errores funcionales.
8
2 Vision general
La finalidad de este proyecto es configurar, mantener y administrar los recur-
sos TI de una start-up tecnologica, que pueda ser extrapolable a cualquier
otro tipo de empresa que necesite este tipo de servicios. Para ello, es necesario
reestructurar toda la instalacion ya existente e ir anadiendo mas funcionali-
dades imprescindibles, segun las necesidades de la empresa.
2.1 El producto
El producto que ofrece la empresa esta basado en el provecho de la necesi-
dad creciente de servicio Wi-Fi para dispositivos moviles, dotandolo de valor
comercial para comercios, locales, etc. Es decir, los clientes de la start-up
obtienen un beneficio potencial por disponer de Wi-Fi para sus clientes, este
beneficio es obtenido mediante la propaganda a traves de las redes sociales
del usuario final.
9
Se provee al cliente de los dispositivos networking necesarios para poder
disponer del servicio de portal cautivo, normalmente un router (appliance)
que se encarga de gestionar el portal cautivo. El cliente se conecta a la red
Wi-Fi, que le redirigira a un portal donde se logueara a traves de su red so-
cial, aceptara los permisos de la aplicacion para que se pueda publicar con su
nombre, dara Like a la pagina, etc, y posteriormente dispondra de Internet
libremente.
2.2 El sistema
Para llevar a funcionamiento este sistema son necesarios Access-Point, no
importa demasiado el modelo sino que este configurado en modo bridge, el
router con portal cautivo (encargado de redireccionar al portal y filtar las
conexiones hasta que sean aceptados en el sistema), y salida a internet.
10
Base de datos: Para poder guardar todos los datos necesarios de los
usuarios y sus conexiones.
2.3 El proyecto
El proyecto se compone de las siguientes fases:
11
se centrara en el metodo usado para recuparar sistemas, en caso de
necesitarlo.
Las tres primeras fases estan relacionadas entre ellas, pertenecen mas a la
configuracion de los recursos y su mantenimiento. En muchas ocasiones se
han tenido que desarrollar en paralelo, mientras que las tres siguientes fases
son componentes adicionales anadidas.
12
La ultima fase hace referencia a un sistema no previsto que se tuvo que
realizar debido al crecimiento de la empresa. Consiste en un conjunto de
software en distintas plataformas, para poder configurar cualquier tipo de
dispositivo en cualquier lugar. Sin tener que ser enviado a nuestras oficinas
y de nuestras oficinas configurarlo manualmente y enviarlo a cliente final, se
ahorra tal y como se explicara a posteriori bastantes recursos a la empresa.
13
3 Estudio de la situacion inicial
Dado que no se implementa un conjunto de sistemas TI desde cero, sino que
se empieza con algo implantado, es necesario realizar un estudio del sistema
existente, analizando sus puntos fuertes y debiles para saber que se puede
aprovechar y que no.
3.1 Producto
Para un mejor entendimiento de la situacion inicial, se explicara brevemente
el producto del que se parte:
Portal: Son los conjuntos de pantallas que el usuario tiene que visu-
alizar para tener conexion a internet. Es en donde se aprovecha para
hacer publicidad de la empresa que contrata el servicio. Un ejemplo de
las pantallas que se mostrara a un usuario al conectarse por ejemplo
en la red Wi-Fi desigual:
14
Figure 2: Ejemplo de Portal login realizado para desigual.
15
Figure 4: Portal ya conectado realizado para desigual.
16
Figure 5: Visualizacion y gestion de datos.
17
Administracion Wi-Fi: Para ciertos clientes se alquila y administra
las antenas Wi-Fi, que son controladas de forma centralizada.
3.2 Esquema
El servicio para el mision control esta situado en un server fsico de renting
ubicado en Alemania con un sistema operativo (SO) centos, respondiendo al
nombre de SocialAndBeyond.
El servicio para los portales y el servicio de Radius esta ubicado en Alemania,
en un server fsico de renting. Como en el caso anterior, tambien con centros
respondiendo el nombre de iLikeFreewifi.
El servicio de gestion de las antenas Wi-Fi esta ubicado en varios servers de
AmazonWebService (virtuales).
18
Figure 7: Diagrama basico del caso incial
19
parecido posible al final.
20
Figure 8: Diagrama basico del caso incial con develop
21
sistemas operativos, cuando obviamente lo mas recomendable es que fuesen
lo mas similar posible entre ellos. Ademas, no era un sistema flexible que
pudiese afrontar nuevas necesidades de computacion en un futuro.
Junto a los otros dos puntos, existen otros dos problemas: en develop se
usa una base de datos SQLite; mientras que en produccion, una Oracle.
Ello obligaba a mantener muchos codigos diferentes entre develop y master
ademas, es un motivo por el cual se pueden producir errores.
Otro problema eran los errores de configuracion, sobretodo en la maquina
NFS y la Develop, con los permisos de los usuarios.
22
4 Tecnologas
El producto consta de tres distintos grupos de usuarios: la persona que esta
usando el acceso Wi-Fi con portal, el cliente que contrata este servicio y los
developers que desarrollan para este. Es decir, el sistema tiene que agrupar
distintas tecnologas para cada grupO.
23
JasonP: JSONP o JSON con padding es una tecnica de comuni-
cacion utilizada en los programas JavaScript para realizar llamadas
asncronas a dominios diferentes. JsonP suple la limitacion de AJAX,
que unicamente permite realizar peticiones a paginas, quienes se en-
cuentran bajo el mismo dominio y puerto por razones de seguridad.
Esta herramienta se utiliza sobretodo en el proceso del portal cau-
tivo y permite cambiar de dominio entre ilikefreewifi.com, socialandbe-
yond.com y el router.
24
Cron: Sistema unix/linux para realizar tareas programadas en los
servidores, de gran utilidad para realizar backups o tareas de manten-
imiento, como tambien servicios de envo de estadsticas a los clientes.
25
5 Objetivos de la reestructuracion y ampliacion
A partir de la situacion inicial, es importante definir ciertos objetivos nece-
sarios para el correcto desarrollo de la reestructuracion y ampliacion. Estos
objetivos se toman valorando: la estabilidad, la flexibilidad, el rendimiento
necesario y los costes derivados. Teniendo en cuenta todo ello se han definido
como:
5.1 Consistencia
La consistencia se puede definir como una garanta de para un conjunto de
instrucciones, obtener el mismo resultado.
En este entorno se busca una consistencia en el codigo generado por los
developers en la rama devel; si este codigo funciona correctamente en esta
rama, funcionara igualmente en la rama produccion. Para acercarse lo mas
posible a este resultado, es necesario eliminar todo aquel sistema que pueda
interferir en el funcionamiento del codigo. No resulta logico que, por ejemplo,
el uso de herramientas y la plataforma usada en una entorno sea totalmente
distinta que en el otro entorno, puesto que eso puede inlfuir en el resultado.
5.3 Estabilidad
Uno de los puntos importantes en cualquier sistema es que este sea estable. Es
decir, que las herramientas proporcionadas no cambien su forma de trabajar,
teniendo que adaptar el desarrollo a cada cambio. Ademas, si se tienen que
hacer cambios, que estos sean de larga solucion y a largo plazo. Buscando
que se puedan ampliar estos mismos, sin repercutir en nuevos cambios.
26
5.4 Fiabilidad
Hay que evitar que las herramientas necesarias para el desarrollo y ex-
plotacion del producto fallen. Para ello, hay que desarrollar un conjunto
de herramientas para evitar fallos innecesarios. Como por ejemplo: her-
ramientas de proteccion sobre fallos de red, fallos de servicios, etc.
5.6 Recuperacion
Aun y con el desarrollo mas exhaustivo realizado para que un sistema no
falle, este puede fallar. Razon por la cual, se debe desarrollar un sistema
para poder recuperar lo antes posible este sistema. Como por ejemplo va:
backups, replicacion de servidores, etc.
5.7 Portabilidad
Existen muchas soluciones viables de hosting para los servidores y es posible
que en un futuro se cambie. Por ese mismo motivo, resulta necesario que
todo tipo de configuracion sea rapidamente portable a otro tipo de sistema
similar.
27
6 Implementacion
Antes de empezar cualquier implementacion, se decidio que tipo de plataforma
se iba usar. Debido a que el mantenimiento y la escalabilidad de un sistema
implementado en multiples tipos de plataformas es bastante pobre; para de-
cidir cual sera el tipo de plataforma a usar, hay que analizar los beneficios y
problemas de cada una de las posiblidades.
28
6.1.2 Amazon Web Services
29
6.1.3 Telefonica Cloud Computing
Una alternativa que se planteo fue usar el nuevo cloud computing de Telefonica,
un nuevo servicio disponible en fase de salida al mercado.
Debido a que Telefonica es un socio, esto nos aportaba bastantes ventajas
como:
Pago por uso: El coste era por maquina, y no por uso, haciendo que
otras soluciones a la larga pudiesen ser mas economicas.
30
6.2 Eleccion de la plataforma
Una vez analizadas las mejores opciones disponibles, inmediatamente se descarto
la opcion actual, sevidores fsicos de renting; debido a que sin duda era la
peor opcion de todas por su poca flexibilidad.
Como eleccion final, se decidio por el cloud computing de Telefonica, (a pesar
de la opcion de que Amazon posiblemente fuese la mejor por las herramientas
extras como: balanceadores servicios de forwarding de email, dns, etc, o por
su precio por horas y la posiblidad de aumentar los recursos de la maquina
bajo demanda) la razon fue motivada la situacion de que telefonica es un
socio estrategico, disponiendo de un soporte mas rapido, ademas de tener la
menor latencia de todas las opciones nos hizo decantar por esa opcion.
Sin embargo esta eleccion tenia algun incoveniente extra, una parte de la
instalacion estaba en servidores amazon y otra en servidores fsicos, debido
al uso de tecnologas distintas se anada un nivel de complejidad en la mi-
gracion.
31
Figure 9: Controladora Beta Unifi
Uno de los primeros objetivos era reducir el coste y las infraestructuras desti-
nadas para la gestion de las antenas unifi. Recordemos que se estaban usando
4 servidores unifi 24 horas, que jamas usaban mas del 1% de cpu.
El motivo de necesitar tantas maquinas vena por el hecho de que por cada
site se necesitaba una maquina, es decir, por cada sitio fsico donde hubiese
antenas se necesitaba un controlador aparte. Este tipo de infraestructura no
se considero viable ya que se tena planeado ampliar el numero de antenas,
por lo que no era suficientemente escalable si por cada sitio diferente se nece-
sitaba otro servidor.
Como solucion se planteo buscar una alternativa viable en la que, con solo
un servidor, que pudiese gestionar las antenas o cambiar de fabricante asum-
iendo todo el coste de cambiar las antenas, en los distintos sitios que estaban
ya instaladas. La solucion que se escogio fue la primera, ocurrio que al mismo
tiempo que se planteaban las posibles soluciones, la compana unifi saco una
32
controladora beta que permita la creacion de multiples sitios.
6.3.3 Implementacion
Una vez instalado, se decidio crear una entrada en el DNS para este ser-
vicio; as pues, si se cambiaba en el futuro de plataforma y se necesitaba
migrar la controladora, sera suficiente cambiar la traduccion DNS.
Sin embargo, las antenas ya conocan a su controladora va IP, el cam-
bio obligaba a cambiar localmente la IP antigua de amazon por el nombre
unifi.socialandbeyond.com en todas las antenas, que ya estaban configuradas.
6.3.4 Conclusion
33
implementacion en produccion (rama final).
34
ror.log independiente.
6.4.3 Conclusion
No solo se busca que funcione correctamente, sino que se adapte a las necesi-
dades de la empresa. Proveerlo de ciertos extras como logs independientes
ha ayudado a la empresa a crecer mas deprisa, antes cada develop tena
que filtrar su parte del log de los demas. Sumando, la instanciacion e im-
plementacion de virtualhosts permitira una facil ampliacion de los servicios
web.
35
Figure 10: Diagrama del funcionamiento del servicio beta.
36
Sin embargo, no era la unica diferencia, el sistema operativo no era el mismo,
uno era una Linux y la otra una Unix. A parte del servicio de Radius in-
stalado en produccion, estaba configurado para usar la base de datos Oracle.
Por tanto, se tuvo que realizar una migracion por partes divida en:
Migracion de codigo
Migracion de radius
Alto rendimiento.
Y como desventajas:
37
Basada en un fichero que es bastante facil de usar.
Licencia libre
Desventajas:
38
Entre las otras dos opciones, la que podra tener una mejor adaptacion sera
la postgreSQL. Sin embargo, al no tener el codigo totalmente encapsulado,
para anadir una nueva base de datos y el hecho de tener que migrar tanto
produccion como develop, provoco que se decidiese usar SQLite por el mo-
mento como base de datos en produccion. Se espero a mas adelante para
cambiar a alguna base de datos algo mas sofisticada.
Para la migracion del servidor Radius, se tuvieron que realizar varios cambios
para el uso de la base de datos SQLite. Ademas, se realizaba una profunda
reestructuracion de las querys, ya que bastante de ellas no estaban correcta-
mente programadas. Algunas de ellas usaban subquerys dentro del apartado
de SELECT, as que se aprovecho la migracion para fixear errores.
39
6.6.5 Migracion de los servidores
Una vez que todos los puntos anteriores estaban solucionados y estaban per-
fectamente funcionales, se empezo con la migracion entera de los dos servi-
dores. Lo primero que se decidio fue en que servidor se usara para hostear
todo produccion, ya que en el servidor develop dispona de dos cores y de
4GB de ram. Estos apenas eran usados, un 2% por el entorno develop, se
decidio usar la misma maquina tanto para develop como para produccion.
Para la migracion, el primer paso fue agregar en el servidor apache los dos
hosts, a los que la maquina tendra que responder: ilikefreewifi.com y socia-
landbeyond.com. Al igual que como se hizo con el entorno develop, dispone
de cada hosts de sus propios logs independientes. Sin embargo, a diferencia
de develop no se uso un entorno NFS y Dropbox para sincronizar el reposi-
torio, sino que el repositorio estaba en un directorio concreto. De ah, cada
vez que se realizaba un cambio en produccion se sincronizaba el contenido
local con el directorio web.
6.7 Backups
Las Copias de Seguridad son replicas de datos que nos permiten recuperar
la informacion original, en caso de ser necesario.
Sin embargo, para realizar copias de seguridad se necesita espacio de alma-
cenamiento de datos adicional. As pues, es necesario realizar un analisis
sobre que datos son necesarios para realizar copias de seguridad, de que tipo
y donde se guardaran.
6.7.1 Analisis
Lo primero que se decicidio analizar, era donde guardar estas copias de seguri-
dad. Exista la posiblidad de poder guardarlas localmente mediante unidades
de almacenamiento de datos. Esta solucion, existente en la gran mayoria de
40
Centro de procesamiento de datos (CPDS), no era una opcion realmente vi-
able, ya que era necesario hardware adicional y una infraestructura local de
la que no se dispona.
Debido a que toda la infraestructrura estaba en nodos virtuales en el cloud,
se decidio usar alguna de las herramientas adicionales que el cloud propor-
cionaba. La opcion mas adecuada era una adaptacion del S3 de Amazon Web
Services, que funcionaba de forma muy similar (algunas opciones avanzadas
no estaban habilitadas). Este tipo de servicio proporciona un nodo virtual
para almacenar datos mediante la API dada. Ademas, el coste de este servi-
cio esta basado en datos almacenados a un precio muy reducido.
(Este sistema S3 se basa en buckets, son una especie de directorios virtuales
donde se guardan los datos.)
6.7.2 Implementacion
41
de tener guardados todos los accesos realizados, durante al menos tres
meses.
Al ser un fichero en texto plano, que ocupa muy poco, se configuro
para realizar copias de seguridad diarias y completas sobre el log del
da anterior y ademas comprimido.
Base de datos: todos los datos de los clientes, como las estadsticas
estan almacenados aqu. Resulta de vital importancia realizar copias
de seguridad por si se pierden. Como la base de datos esta en SQLite,
se basa en un fichero de pocos MB. SQLite no proporciona ninguna
herramienta para poder realizar dumps de los datos, por lo que se
decididio realizar backups completos y diarios.
6.7.3 Conclusion
42
6.8 Replicacion
Uno de los objetivos de los que se hablo previamente, era conseguir que el
sistema estuviese siempre disponible, aunque fallase alguna maquina. Al
concentrar bastantes servicios en pocas maquinas, se corre el riesgo de que
un fallo pueda colapsar todos los servicios.
Para evitarlo, se necesita replicar el servicio, mediante una maquina identica
a la principal que, si la primera falla, esta coge el control y la sustituye.
Para conseguirlo, es necesario una base de datos que se pudiese replicar. Es
decir, que existiese en ambos servidores y en la que cualquier cambio que se
realizase, se propagase en ambas maquinas. Al no ser posible con la base
de datos SQLite, se decidio aplicar un sistema manual que cuando detectase
cambios en la base de datos del servidor principal, realizase una copia en la
maquina secundaria.
Como sistema de sustitucion, se planeo usar una tecnologa disponible en
muchos sistemas cloud: una tercera maquina que redirigiese el trafico a uno
de los dos servidores dependiendo de su estado.
Cifrado:
Cifra los datos, lo que significa que cualquier nodo intermediario no se
debera poder ver lo que el navegador enva al servidor, ni lo que el
servidor enva al navegador.
Autentificacion:
Autentifica el sitio web, lo que significa que le dice al navegador, que
ese sitio es quien realmente dice ser.
43
El server manda al cliente la version de SSL soportada, configuraciones
de cifrado, datos especficos de sesion y ademas manda su propio cer-
tificado.
Tanto el cliente como el servidor usan la clave secreta para generar las
llaves de la sesion, que son simetricas.
La solucion escogida fue utilizar una extension de TLS llamada SNI (ser-
vice name indication) el qual habilitaba el paso del nombre del dominio en el
handshaking, permitiendo al servidor utilizar el certificado correcto. Como
contraparte, en ciertos navegadores con ciertos sistemas operativos no fun-
ciona este correctamente, lanzando una advertencia de certificado no seguro.
44
No obstante, las plataformas afectadas eran muy reducidas. Las platafor-
mas afectadas son Internet explorer anterior a la version 6 o cualquier IE en
windowsXP y algunos android 2.x con el navegador por defecto.
45
Figure 12: Router realiza port forwarding.
46
dispositivos internos.
En el segundo caso, al tener el router una IP privada, (que es lo mas comun),
no se puede conectar directamente. En este caso, la conexion se establece
hacia el router de salida a traves de su IP de salida y un puerto. Es este el
encargado de redirigir la conexion hacia el puerto deseado del appliance.
El metodo de la tercera figura se basa en crear una red local virtual, se
consigue encapsulando un paquete IP sobre otro. As, cuando llega a su
destino al quitar la cabezera IP de internet, queda la cabecera de la red
local.
Para mantener un modo de acceso generico viable para todos los dispositivos,
la primera y segunda forma quedan automaticamente descartada. En el
primer caso, no es muy comun que la empresa tenga IP publicas para repartir.
En el segundo caso, es necesario realizar distintas configuraciones en el router
y no sera posible siempre que fuese ni el mismo puerto, ni que se permitiese
hacerlo.
Una vez decicido que era necesario crear una red virtual para poder admin-
istrar los dispositivos, solo quedaba escoger cual era el mejor metodo para
hacerlo. Para ello, se estudio distintos protocolos para ver cual encajaba
mejor para este caso:
PPTP:
Es un protocolo basico de tunneling publicado en 1999 por un consorcio
de empresas, en las que se incluye Microsoft, Alcatel, 3COM y otros.
La especificacion de pptp no describe un metodo de autentificacion y
encriptacion, sino que deja a las comunicaciones que viajen en la red
que se encargen de la seguridad. Algunas de las versiones mas moder-
nas pueden llegar a usar una encriptacion RSA de 128 bits.
47
de tuneling.
Debido a su encriptacion, el overhead que implica es el menor de todos,
convirtendolo en el mas rapido.
PPTP usa el puerto TCP 1723 y el protocolo GRE (protocolo 47).
L2TP/IPSEC
Es un conjunto de herramientas avanzadas, ahora mismo se aconseja
por Microsoft como sustituto de PPTP, para todas aquellas comunica-
ciones que tengan que ir encriptadas.
El payload de L2TP es encriptado usando el standar IPSec protocol.
El algoritmo mas seguro que acepta estas herramientas, es AES 256 bit
keys.
En vulnerabilidades de seguridad, IPSec no tiene ninguna vulnerabili-
dad mayor y se considera extremadamente seguro, cuando es usado con
un algoritmo de encriptacion muy seguro como es el AES.
En tema de rendimiento L2TP/IPSec tiene un overhead mayor, debido
a su doble encapsulacion, muy similar al OpenVPN.
En temas de configuracion de red, L2TP/IPSEC usa el puerto UDP
500 para el primer intercambio de llaves, el protocolo 50 para el envo
de datos encriptados, el puerto UDP 1701 para la configuracion inicial
del tunel y el puerto UDP 4500 para realizar el NAT traversal.
Sobre compatibildad, este tipo de tunel es bastante mas difcil de con-
figurar que las otras opciones. Ademas, el cliente tiene que soportar
NAT traversal.
OpenVPN
Considerado como el estandar, dentro del conjunto de protocolos de
tuneleado (dentro de opensource).
En temas de encriptado, se usa el mas que probado protocolo de en-
criptacion SSL/TLS, mediante la herramienta OpenSSL. Soporta bas-
tantes tipos de encriptacion como: 3DES, AES, RC5, Blowfish. Ademas,
la posiblidad de usar el extremadamente seguro AES-256bits.
En temas de seguridad, no se conoce ningun tipo de vulnerabilidad
hasta el reciente descubrimiento del bug de seguridad en la libraria SS-
48
L/TLS, conocido como HeartBleed.
Funciona a traves de un puerto TCP o UDP, pudiendolo configurar en
cualquier tipo de puerto.
Aunque no esta incluido en ningun sistema operativo de forma nativa,
s que esta instalado en la mayora de dispositivos networking utiliza-
dos.
Se considera el mas rapido y estable, sobretodo en dispositivos moviles.
Como se ha explicado previamente, el objetivo de tener un tunel es poder
conectarse a cualquiera de nuestros dispositivos independientemente de la
infraestructura de red en la que este. Intentando as evitar cualquier firewall
existente entremedio.
Como solucion: usar un tunel PPTP tena ciertas ventajas, es extremada-
mente facil, funciona con un usuario contrasena para poder entrar. Aunque
fuese muy inseguro, al crear una red virtual que solo serva para poder co-
municarse entre servidor y dispositivo, (no para enrutar cualquier tipo de
trafico), se poda relegar el tema de seguridad al protocolo SSH (secure shell).
Incialmente, el unico que se iba a permitir; sin embargo, exista un inconve-
niente bastante importante, como era no ser posible de configurar el puerto.
Por ello se usaba el protocolo GRE, que podra ser filtrado por algun firewall
existente.
IPSec en cambio, es bastante mas seguro que el PPTP. Aunque tena ciertos
problemas de compatibildad con algun dispositivo usado para nuestro servi-
cio. Ademas el no poder adaptar el puerto TCP/UDP usado y tener otro
protocolo distinto, haca que no fuese una opcion aplicable.
49
donde se puede configurar el CN del certificado/llave usada por el cliente,
permita poder distinguir facilmente la relacion entre dispositivo e IP de la
VPN. Por tanto, fue la opcion escogida.
6.10.2 Implementacion
Se decidio provisionar una nueva maquina Linux para usarla como servidor
del tunel. Usando TCP y puerto 443 para evitar firewalls, encriptacion AES-
256 por ser la mas segura, ademas se cambio la ejecucion del servicio una vez
inicializado al usuario del sistema nouser y al grupo nogroup. Se reducan
as los privilegios del servicio, una vez arrancado.
50
6.11 Monitorizacion de servidores
Telefonica cloud computing dispone de varias formas de monitorizacion de
las maquinas en forma de graficas y estadsticas de gran utilidad.
51
Gracias a este servicio, en caso de fallo de estos servicios, nos permitira
conocerlo aunque no hubiese nadie en la oficina.
52
Figure 17: Ejemplo de grafica generada con nodejs.
53
6.13 Automatizacion de servidores
6.13.1 Introduccion
6.13.2 Chef
El usuario escribe recetas que describen como Chef gestiona las apli-
caciones de servidor (como Apache, MySQL, o Hadoop) y como se debe
configurar. En estas recetas se describen una serie de recursos que deben
estar en un estado determinado: que se instalen paquetes, el estado de eje-
cucion de los servicio, o los archivos que deben ser escritos. Chef asegura que
cada recurso esta configurado y corrige los archivos de recursos que no estan
en el estado deseado.
54
El entorno tpico chef se compone de 3 partes: el servidor Chef , la estacion
de trabajo y nodos.
55
El nodo es un servidor de la infraestructura. Los nodos son los equipos
donde se va a aplicar la recipe, ya sea un equipo fsico, virtual o este en la
nube.
6.13.3 Recipes
56
Openvpn: Instala, configura y arranca el servicio de openvpn para
gestionar los dispositivos networking.
i f node [ p l a t f o r m ] == s m a r t o s
package py27e x p a t
package s c m g i t b a s e
end
i f node [ p l a t f o r m ] == ubuntu
package g i t
end
action : sync
end
execute i n s t a l l boto do
end
cookbook_file / u s r / l o c a l / b i n / backupprod . py do
source backupprod . py
mode 0744
57
owner r o o t
group r o o t
end
cron backup l o g s i l i k e f r e e w i f i do
minute 0
hour 5
day
month
action : create
end
cron backup s o c i a l a n d b e y o n d do
minute 3
hour 5
day
month
action : create
end
cron backup r a d i a t o r do
minute 5
hour 5
58
day
month
action : create
end
cron backup d a t a b a s e do
minute 7
hour 5
day
6.14 AutoProvisionamiento
La razon de este sistema es proporcionar una plataforma confiable y estable,
para cualquier empresa que quiera vender nuestro producto. Este sistema
esta preparado para poder configurar cualquier tipo de Mikrotik con solo 1
archivo ( supplier.auto.rsc ). Este archivo se genera y forman las ubicaciones
de las ventanas Control de Mision.
Uno de los requisitos del sistema es, para hacer mas facil tal y como sea
posible para el usuario no tecnico, llevar a cabo el proceso . Por lo tanto,
se ha disenado para que solo se requiera subir un unico archivo para que el
usuario incie el proceso.
Sin embargo, en ese script no esta toda la configuracion. Sino que solo
se conecta a un servidor pptp, ya que es el tipo de tunel que no necesita
mas archivos. Una vez ah, existe un proceso que comprueba si hay algun
dispositivo conectado para continuar con el proceso.
59
Segun las fases:
El primer archivo configura el mikrotik dandole acceso a internet (eth0
con dhcpclient), drop de cualquier regla de firewall por defecto que evitase
tener conexion, ademas de configurar el tunel PPTP.
60
Figure 20: Diagrama del proceso de provisionamiento.
6.15 DenyHosts
Al revisar los logs de los servidores, se encuentran muchos tipo de ataques:
ordenadores que intentan entrar en la maquina, es tpico que intenten entrar
a traves del servicio de SSH, ya que suele estar abierto.
Evitarlo es bastante sencillo, solo hace falta cambiar en la configuracion de
SSH el acceso a la maquina con password. Es decir, solo se permite acceder
a la maquina que tenga la llave privada a juego con las llaves publicas, que
se permite acceder a ese usuario en concreto.
Aun as, los ataques son bastante molestos apareciendo sin parar en los logs
61
del sistema. Por lo tanto, se decidio primero bloquear a las IPs de los at-
acantes a traves de denyhosts, este programa comprueba en el log intentos
de acceso fallidos. Guarda la informacion de la IP original de los accesos,
el numero de intentos y comprueba si supera el lmite permitido. Si es as,
asume un intento de fuerza bruta y bloquea el acceso de esta IP. Ademas,
las ultimas versiones de DenyHosts sincronizan y centralizan la informacion
de los atacantes, estando disponible para cualquiera.
62
7 Estudio economico
Al haber realizado el proyecto en una empresa, este ha tenido un coste cal-
culable para ella, teniendo en cuenta que:
Salario:
Coste por hora: 8 e.
Horas: 680h
Coste: 5.440 e.
63
al mes.
Los cambios realizados en el entorno de develop han conseguido aumentar la
produccion de los developers. Se ha estimado que gracias a la simplifacion
y el aislado de los entornos entre s, se ha conseguido al menos un aumento
de un 10%. Al ser 3 developers (dos front-end y 1 back-end), este aumento
implicara al menos un ahorro de unos 350 e.
al mes. (Es un calculo estimado ya que se desconoce el sueldo exacto de los
developers).
64
8 Conclusiones
En este proyecto en donde se ha usado tecnologas tan diversas como nodejs
(plataforma de lado servidor para javascript), extjs, highcharts y highstocks
(para realizar graficas consistentes con el modelo de grafica presente en el mi-
sion control), sistemas operativos Unix, Linux, iptables (redireccionamiento
de puertos), chef (provisionamiento de servidores automatizado), git-bitbucket
(para control de versiones), protocolos de tuneleado (para administracion re-
mota de dispositivos), radiator (autentificacion de usuarios en la red), cron
(para automatizacion de tareas en el servidor), ademas de una extensa plan-
ificacion para un uso adecuado y rentable de los recursos TI, dando como
resultado un producto escalable, fiable, estable y flexible a las necesidades de
la empresa.
65
sponsabilidades crticas, que los responsables me han ido asignando. Ya sea
la configuracion y migracion de todo el servidor de produccion, como disenar
y gestionar el sistema de copias de seguridad o como desarrollar las platafor-
mas de provisionamiento automatizado. Sin embargo, cabe lamentar que no
haya podido acabar ciertas funcionales que queria aportar: como un sistema
totalmente replicado con ciertos anadidos extras, sea un balanceo de carga.
66
9 Bibliografa
Pagina wiki de SmartOS
http://wiki.smartos.org/display/DOC/Home
67
10 Glosario
TI=Tecnlogas de la informacion.
68
11 Anexo y futuras implementaciones
11.1 Hearthbleed
Considero que es importante hablar sobre el fallo de seguridad dentro de
OpenSSL llamado hearthbleed, por la gran importancia que ha tenido den-
tro de cualquier tipo de infraestructuras de sistemas.
69
Figure 22: Vineta ilustrando el fallo de seguridad.
70
Este bug es extremadamente grave, no nos llego a afectar, debido a que las
maquinas Unix usaban una version anterior a la primera afectada. As como
que la instalacion y configuracion de OpenVPN al configurar que librera de
OpenSSL iba a usar, se decidio utilizar la misma version que en el servidor
SmartOS, haciendo que tampoco fuese vulnerable al bug.
71
11.3 Instalaciones
Durante la realizacion del proyecto se tuvieron que asistir y configurar distin-
tas instalaciones en varios de nuestros clientes, usando distintas tecnologas,
como antenas controladas con controladora central, remota, tuneles a distin-
tas sedes, vlans, etc.
Algunos ejemplos:
72
Figure 24: Instalacion para el ayuntamiento de Girona con tecnologa punto
a punto.
73
Figure 25: Diagrama ilustrativo de un sistema de balanceo de carga.
Hay distintas formas de conseguir este efecto, ya sea por DNS, es decir
el DNS va contestando las distinas IPs de los servidores, como un nodo
intermedio (igualmente necesario para replica) que divide el trafico entrante
hacia los dos servidores. Ya sea de forma sencilla como IP origen par/impar,
como formas mas complejas teniendo el cuenta el trafico ya existente para
una mejor optimizacion.
74