Ir al contenido principal

Lo prometido es deuda: Configuración básica de un firewall con Iptables en Archlinux

Tal como lo dice el titulo, el día de ayer escribí una entrada sobre una pequeña conversación que tuve con uno de los expertos en seguridad, si bien no hay que ser paranoico con los computadores que tenemos en casa, eso no quiere decir que no debamos tomar medidas de seguridad. Como dije anteriormente tengo pensado tomar dos medidas, una es la de instalar mi propio router de gamma baja y administrarlo, para proteger la red interna de mi casa, y la otra medida fue instalar un Firewall en mi equipo con Archlinux.  Si buscamos en la Wiki de Archlinux, obtendremos que hay una gran cantidad de aplicaciones en Archlinux para esta función, aunque por decirlo así la mayoría son Front-end de iptables, y hay muchas GUI para administrar tu propio Firewall. Personalmente me puse a investigar sobre iptables y decidí aprender lo básico, que quede claro que no soy un experto en esta aplicación y mucho menos un experto en seguridad, pero con lo que he leído y sacado de muchas partes, creo que tengo la capacidad de configurar un firewall medianamente decente :). 



 Vamos al grano: 

- Lo primero que debemos de hacer es instalar iptables: 

#yaourt -S iptables 

- Luego de haberlo instalado, podremos revisar como está configurado netfilter por defecto con el comando que mostraré en la parte de abajo: 

[root@chucho ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   
 






Si queremos una información mas detallada, podremos usar la opción "nvL", así: 

[root@chucho ~]# iptables -nvL
Chain INPUT (policy ACCEPT 5057 packets, 4614K bytes)
pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 4824 packets, 839K bytes)
pkts bytes target     prot opt in     out     source               destination


En el caso anterior vimos los puertos además de las políticas por defecto que se encuentran todas en "ACCEPT". 

Entonces aquí tenemos las siguientes cadenas: 

INPUT: Es la cadena de entrada. En pocas palabras es el trafico que viene desde afuera hacia nuestra maquina.  

OUTPUT: Como su nombre lo indica es la cadena de salida, es decir, es el trafico que sale de nuestro equipo hacia Internet. 

FORDWARD: Es la cadena de redireccionamiento, esta cadena es muy útil cuando queremos hacer NAT o como su nombre lo indica redireccionamiento de trafico, a ver si me explico, supongamos que tenemos una maquina virtual con una dirección IP privada que NO tenga salida a Internet, digamos 10.0.0.15, y en la maquina real tenemos una dirección IP pública 200.232.17.205 y queremos conectarnos a la maquina virtual a través de ssh, ¿Pero como llegamos a la virtual si no tienes acceso a Internet? Entonces con iptables podemos decir algo como: 

"Todo el trafico que llegue a la dirección IP 200.232.17.205 en el puerto 10081 redirigalo a la dirección IP 10.0.0.15 al puerto 22".  
 
Lo del puerto 10081 puede ser un puerto aleatorio que no estés usando obviamente, y el 22 es el puerto por defecto de ssh aunque puede ser otro pero eso es otro tema.
 
Para los expertos en redes: Si ya lo se, el ejemplo anterior no es tan simple como soplar y hacer botella, pero omití algunas cosas solo para explicar mas o menos de que se trata el "FORDWARD". 

Lo primero que hay que tener claro a la hora de instalar un Firewall, es definir exactamente que es lo que quieres, para eso tienes dos opciones: 

1. Aceptar todo por defecto e ir cerrando los puertos que necesitas. 
2. Denegar todo por defecto y abrir los puertos que necesitas.  

La primera opción es mas sencilla de configurar, pero a nivel de seguridad no es tan recomendable ya que hay que tener claro que se va a dejar cerrado exactamente, es decir, puedes dejar el puerto 64000 abierto y quizás no te afecta pues no sabes para que es, pero se te pueden olvidar puertos importantes como el SNMP y podrías perder control de todo,  con la segunda opción la cosa cambia y tendremos un verdadero muro, pero el firewall es mas difícil de configurar.

En mi caso digamos que "denegamos" todo por defecto, aunque en realidad no es así, en pocas palabras lo recomendable es denegar la entrada (INPUT) y el redireccionamiento (FORDWARD) por defecto y aceptar la salida (OUTPUT).

Los comandos a ejecutar serían los siguientes: 

#iptables -P INPUT DROP
#iptables -P FORWARD DROP
#iptables -P OUTPUT ACCEPT 

Antes de ponernos a teclear comandos de iptables quiero dejar claro unas cosas, la cadena OUTPUT, que es el trafico de salida, se deja en ACCEPT por defecto debido a que es mucho mas practico, podemos colocarla en DROP pero eso haría que las cosas se complicaran mucho más y además toca tener mucha experiencia en este campo para poder trabajar así, por lo tanto, es mejor dejar las políticas tal cual mostré anteriormente, de todas maneras es muy extraño que se bloquee todo lo que sale de nuestra maquina :).

Mi idea, es explicar paso a paso lo que se está haciendo, en muchos sitios te recomiendan leer el aburrido manual de iptables, si ves eso, es para asustarse, así que en este caso explicaré las nomenclaturas de iptables de forma corta: 

-A = Agregar una regla. 
-D = Eliminar una regla. 
-P = Aplicar una política por defecto. 
-R = Remplazar una regla. 
-L = Listar el numero de reglas actuales. 
-F = Eliminar todas las reglas.
-X = Borrar una regla definida por el usuario. 
-Z = Colocar los contadores en cero. 

Ahora por cada regla podemos hacer uso de parámetros que nos pueden ayudar a hacerlas mas especificas. 

-p = Especificamos el protocolo a usar, por ejemplo: tcp,udp,etc
-s = Dirección IP fuente.
-d = Dirección IP destino 
-o = Interfaz de salida (ethx, lo, wlanx, etc)
-i = Interfaz de entrada (ethx, lo, etc)
--sport = Puerto o rango de puertos fuente
--dport = Puerto o rango de puertos destino
 -j = Acción a tomar ( ACCEPT, DROP, REJECT Aceptar o Denegar)

-m= match, mas abajo trataré de explicar de que trata porque es algo complicadito para mi :). 

 
Entonces, con todo el carretazo que eché anteriormente la pregunta sería:

¿Quiero que mi hermano mayor pueda acceder a mi servidor web porno, como hago?.  

Solo tenemos que tener la ip de tu hermano y tener claro que puerto debemos abrir, entonces, por lógica sabemos que el puerto de un servidor web es el TCP 80 (A menos que lo cambien), entonces las regla a aplicar serían: 

#iptables -A INPUT -s ipdetuhermano -p tcp --dport 80 -j ACCEPT. 

La politica de salida por defecto en nuestro firewall es ACEPTAR, pero si quieres especificarla pues solo sería: 

#iptables -A OUTPUT -d ipdetuhermano -p tcp --dport 80 -j ACCEPT.

Si ven que no es tan complicado como parece, cierto?. Si miramos las nomenclaturas que están anteriormente citadas y las reglas que coloqué verán que no tiene ciencia. Con iptables no solo podemos permitir que una IP se conecte a nuestra red, sino que también podemos decir que todos los equipos de nuestra red interna puedan hacerlo. 

En mi experiencia personal, la mejor forma de definir reglas en iptables es a través de un bash script. De esta manera tenemos todo en orden y podemos ahorrarnos muchos dolores de cabeza, por ejemplo: "La regla anterior (la del servidor web) no me sirve porque me equivoqué de ip". Entonces sería muy feo colocar. 

#iptables -D OUTPUT -d ipdetuhermano -p tcp --dport 80 -j ACCEPT.

Personalmente conozco dos formas de aplicar las reglas en iptables, una es añadiendo regla por regla, tal cual como muestran los ejemplos, pero tiene la desventaja de puedes correr el riesgo de cagarla a menos que sepas lo que haces, por ejemplo, si envías un paquete X, el firewall va comparando dicho paquete con cada regla hasta que lo encuentra, es decir, hace Match , y se hace lo que dicte dicha regla, luego de eso, NO SE MIRARÁN MAS REGLAS, así que si colocas una regla muy permisiva al principio, probablemente las que sigan NO se apliquen, la otra opción que yo propongo y es la que la mayoría de personas hacen, es a través de un bash script, pues simplemente ordenas tus reglas y las vas cambiando con el paso del tiempo, y así te evitas ejecutar comandos como el anterior.  

Después de terminar con toda la carreta dejo el script que hice comentado, pueden copiar y pegar lo que está acá pero la idea es que analicen cada detalle y entiendan bien lo que se está haciendo.
#!/bin/bash
#
## SCRIPT IPTABLES
## Script para la protección del computador. 

#--------------------------------------------------------
#Asignamos un valor a la interfaz que nos interesa, esto puede ser útil si manejas muchas interfaces, y muchas reglas. En mi caso es la wlan0, si no es así DEBES cambiar este valor.
#--------------------------------------------------------

Interfaz=wlan0

#--------------------------------------------------------
## FLUSH de reglas, como vimos en las nomenclaturas anteriormente, esto nos sirve para borrar cualquier configuración de iptables que hayamos hecho anteriormente.
#--------------------------------------------------------

iptables -F && echo Flush_OK
iptables -X && echo Flush_OK
iptables -Z && echo Flush_OK
iptables -t nat -F && echo Flush_OK

#--------------------------------------------------------
# Estableciendo politicas por defecto
#--------------------------------------------------------

iptables -P FORWARD DROP && echo FORWARD_DROPPED
iptables -P OUTPUT ACCEPT && echo OUTPUT_ACCEPTED
iptables -P INPUT DROP && echo OK INPUT_DROPPED

#--------------------------------------------------------
## Aquí comienza los filtros
#--------------------------------------------------------

# Le dejamos acceso a localhost para todo, importante esta regla. 

iptables -A INPUT -i lo -j ACCEPT && echo Localhost_accepted
iptables -A OUTPUT -o lo -j ACCEPT && echo Localhostout_accepted

#--------------------------------------------------------
# Habilitar puertos 80 (www) and 443 (https) desde el firewall
#--------------------------------------------------------

iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -o $Interfaz -p tcp --dport 80 --sport 1024:65535 -j ACCEPT && echo Conexion_establecida_puerto_80

iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -o $Interfaz -p tcp --dport 443 --sport 1024:65535 -j ACCEPT  && echo Conexion_establecida_puerto_443

#--------------------------------------------------------
# Habilitar conexiones previamente establecidas a la interface de red, en este caso es wlan0
#--------------------------------------------------------

iptables -A INPUT -m state --state ESTABLISHED,RELATED -i $Interfaz -j ACCEPT && echo Salida_Internet

#Fin del Script.
Tal cual como está el script, es como lo tengo configurado en estos momentos en mi equipo, solo tengo acceso al puerto 80 y al 443 porque son los puertos www y https, en pocas palabras, tengo lo estrictamente necesario para navegar en Internet, no necesito más, si tu caso es el mismo que el mío entonces copia lo anterior en un archivo de texto, guardarlo y darles permisos de ejecución.

En mi caso lo guardé como "iptablescript". Entonces le damos permisos de ejecución.

$chmod +x iptablescript.

Y lo ejecutamos como root.

#./iptablescript.

Ahora podemos ver que nos muestra el parámetro -nvL en este caso:

[root@chucho ~]# iptables -nvL
Chain INPUT (policy DROP 126 packets, 31197 bytes)
pkts bytes target     prot opt in     out     source               destination         
10   500 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
3   144 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           ctstate INVALID 
167K  227M ACCEPT     all  --  wlan0  *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 

Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 333 packets, 23316 bytes)
pkts bytes target     prot opt in     out     source               destination         
10   500 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0           
47383 4223K ACCEPT     tcp  --  *      wlan0   0.0.0.0/0            0.0.0.0/0           state NEW,RELATED,ESTABLISHED tcp spts:1024:65535 dpt:80 
10199 1839K ACCEPT     tcp  --  *      wlan0   0.0.0.0/0            0.0.0.0/0           state NEW,RELATED,ESTABLISHED tcp spts:1024:65535 dpt:443 


Ahora muchos se preguntarán ¿Que coños significa -m RELATED y demás tonterías?. He aquí la explicación.

Como dije anteriormente, la -m significa un match, es decir, compara el tipo de conexión existente, aquí muestro los tipos de conexiones que hay:

NEW Conexión nueva
ESTABLISHED Conexión establecida anteriormente
RELATED Conexión relacionada
INVALID Conexión invalida

Entonces cuando ejecutamos esta regla en el shell: 

$ sudo iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -o wlan0 -p tcp --dport 80 --sport 1024:65535 -j ACCEPT && echo Conexion_establecida_puerto_80

Estamos diciendo a netfilter, todas las conexiones de salida NUEVAS, ESTABLECIDAS y RELACIONADAS a través del puerto 80 dejalas pasar. los puertos 1024 al 65535 son los puertos por defecto asociados a ciertos programas o servicios, es recomendable usarlos porque los puertos fueras de este rango se consideran inseguros, sin embargo, si quieres que se haga a través de cualquier puerto puedes remover la parte que dice "--sport 1024:65535".

Normalmente después de cada regla coloco && echo, esto es para que después de que se ejecute la regla, el script me diga si se ejecutó correctamente, de esa forma si coloco un parámetro mal, ya se donde tengo que corregir.

Después de ejecutar el script y hacer las respectivas revisiones, si nos gusta como quedó todo, simplemente guardamos las reglas en Archlinux:

#/etc/rc.d/iptables save

De esta manera cada vez que iniciemos el demonio iptables, cargará las reglas que hemos puesto en el script automáticamente, si deseamos que iptables arranque automáticamente cada vez que encendamos el equipo, simplemente agregramos "iptables" en la sección DAEMON de nuestro archivo ubicado en /etc/rc.conf.

Ahora, si el script anterior no te es útil, puedes agregar mas reglas, en mi caso tengo una base de datos para amarok en mysql, no me interesa que nadie mas tenga acceso a ella, pero si lo deseo, simplemente puedo agregar al script una linea mas. Por ejemplo:


#!/bin/bash
#
## SCRIPT IPTABLES
## Script para la protección del computador. 

#--------------------------------------------------------
#Asignamos un valor a la interfaz que nos interesa, esto puede ser útil si manejas muchas interfaces, y muchas reglas. En mi caso es la wlan0, si no es así DEBES cambiar este valor.
#--------------------------------------------------------

Interfaz=wlan0

#--------------------------------------------------------
## FLUSH de reglas, como vimos en las nomenclaturas anteriormente, esto nos sirve para borrar cualquier configuración de iptables que hayamos hecho anteriormente.
#--------------------------------------------------------

iptables -F && echo Flush_OK
iptables -X && echo Flush_OK
iptables -Z && echo Flush_OK
iptables -t nat -F && echo Flush_OK

#--------------------------------------------------------
# Estableciendo politicas por defecto
#--------------------------------------------------------

iptables -P FORWARD DROP && echo FORWARD_DROPPED
iptables -P OUTPUT ACCEPT && echo OUTPUT_ACCEPTED
iptables -P INPUT DROP && echo OK INPUT_DROPPED

#--------------------------------------------------------
## Aquí comienza los filtros
#--------------------------------------------------------

# Le dejamos acceso a localhost para todo, importante esta regla. 

iptables -A INPUT -i lo -j ACCEPT && echo Localhost_accepted
iptables -A OUTPUT -o lo -j ACCEPT && echo Localhostout_accepted

#--------------------------------------------------------
# Habilitar puertos 80 (www) and 443 (https) desde el firewall
#--------------------------------------------------------

iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -o $Interfaz -p tcp --dport 80 --sport 1024:65535 -j ACCEPT && echo Conexion_establecida_puerto_80

iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -o $Interfaz -p tcp --dport 443 --sport 1024:65535 -j ACCEPT  && echo Conexion_establecida_puerto_443

#--------------------------------------------------------
# Habilitar conexiones previamente establecidas a la interface de red, en este caso es wlan0
#--------------------------------------------------------

iptables -A INPUT -m state --state ESTABLISHED,RELATED -i $Interfaz -j ACCEPT && echo Salida_Internet

#--------------------------------------------------------
#HABILITAMOS EL PUERTO 3306 DE MYSQL PARA LA DIRECCIÓN 192.168.0.12 (PUEDE SER EL COMPUTADOR DE UN AMIGO)
#--------------------------------------------------------

iptables -A INPUT -s 192.168.0.12 -p tcp --dport 3306 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.12 -p tcp --dport 3306 -j ACCEPT

#--------------------------------------------------------
#HABILITAMOS EL PUERTO 80 PARA QUE NUESTRO AMIG@ PUEDA NAVEGAR A NUESTRO SERVIDOR
#--------------------------------------------------------
iptables -A INPUT -s 192.168.0.12 -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.12 -p tcp --dport 80 -j ACCEPT

#Fin del Script.

Solo sería guardar el script, ejecutarlo, y hacer los mismos pasos anteriores para que el iptables cargue las reglas por defecto, repito:

#/etc/rc.d/iptables save. 

Herramientas para probar tu firewall: 

Nmap: Con nmap podemos revisar que puertos se encuentran cerrados, en el caso de los puertos TCP con este comando sabríamos que puertos están abiertos.

#nmap -sS localhost -p 1-65535

Para los puertos UDP:

#nmap -sU localhost

Iptraf: Con este programa podemos saber que conexiones se establecen y cuales no, si lo controlan bien, es una excelente herramienta para hacer depuraciones sobre el firewall.

CRÉDITOS: 

Bueno, esta ha sido una guía algo larga, espero que haya sido lo mas clara posible, si alguien no entiende nada, pues agradecería que me lo hagan saber para tratar de ser lo mas claro posible. Esta pequeña guía no hubiera sido posible sin estos sitios a los cuales hay que darle todos los créditos:

http://foro.elhacker.net/tutoriales_documentacion/iptables_introduccion-t102656.0.html


http://www.estrellateyarde.org/equiv/firewall-en-linux


http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch14_:_Linux_Firewalls_Using_iptables

http://administradores.educarex.es/wiki/index.php/IpTables

Comentarios

Courage dijo…
Si me permites te comento que has tenido un error garrafal aquí:

"1. Aceptar todo por defecto e ir cerrando los puertos que necesitas. "

Se te ha olvidado un no

Me parece que voy a hacer peyas durante 4 horas y media para instalarlo porque parece complicado y si no lo es es largo
Unknown dijo…
Creo que está bien :).. Muchas gracias por la nota, creo que me faltó explicar bien esa parte, cuando dejas la política por defecto en ACEPTAR, solo proteges los puertos que necesites, por ejemplo, puedo dejar todo en ACEPTAR pero solo bloqueo el puerto 22 porque NO me interesa que nadie entre por SSH a mi maquina, entonces en este caso el puerto 22 es el único que me interesa. En realidad el articulo no es tan largo, el problema es que puse el mismo script 2 veces y hace que se vean mas letras, si ves algo mas te agradecería que me avisaras para corregir. Un saludo.
Unknown dijo…
@Courage: Te recomiendo que pruebes y si ves que es muy complicado, puedes probar Shorewall que es mas sencillo y es un front-end de iptables :). Un saludo.
Courage dijo…
Me ha cortado el internet, he usado el primer script ¿alguna idea?
Unknown dijo…
@Courage: Al principio, hay una variable que se llama Interfáz, tienes que asignarle el valor correcto, en mi caso es Wlan0, pero en tu caso puede ser distinto, si le asignas el valor que es, no deberías de tener problemas :).
Courage dijo…
Ahora me va perfecto, eso sí, cuando pones los primeros comandos has puesto "FORDWARD", la primera D sobra y en siguiente después de ACCEPT sobra el punto

Si no la terminal no los coge (Coger en España no significa lo que significa en Argentina, Uruguay, Paraguay, lo digo porque si en Colombia significa eso que sabemos que no haya malentendidos)
Unknown dijo…
Muchas gracias Courage por hacer la prueba, efectivamente cometí dos errores de tipificación :) y ya está corregido :)..

PD: En Colombia "coger" significa las dos cosas, depende en el sentido que lo digas ;).. Un saludo..
Morris0n dijo…
Gracias por publicarlo, realice lo que mencionas en el artículo, y todo va bien!
Unknown dijo…
@Morris0n: Muchas gracias por comentar, me alegra que te haya servido el manual :)
Clari dijo…
yo no pude instalarlo porque mi antivirus lo toma como si estuviera algo dañado.. voy a seguir intentando.. sino conoces otro lugar para poder bajarlo? saludos!
Unknown dijo…
Antivirus en Linux?. La mejor forma es descargar los paquetes desde repositorio, te recomiendo revisar tu antivirus y dar el permiso necesario, no se mucho sobre ese producto pero si lo tienes instalado sobre un Linux probablemente tenga su propio firewall, aunque la mayoría de productos que tienen firewall utilizan iptables por debajo.

Cordial saludos.
Anónimo dijo…
Casi que no hago funcionar tu script XD estoy en manjaro y me toco agregar unos comandos más, tengo una duda pongo este comando : nmap -sS localhost -p 1-65535

y em sigue saliendo el mismo puerto que tenía abierto por qué?

PORT STATE SERVICE
631/tcp open ipp

Entradas más populares de este blog

Permitir redirección de micrófono a través de RDP en Windows 7.

Muy buenos días.  Como es costumbre solo escribo cuando tengo contenido original. Desde hace tiempo en la compañía que trabajo me hicieron un cambio de portátil por uno mas potente, un lenovo con intel core i5 y 8GB de RAM. La potencia del equipo me permite ejecutar dos máquinas virtuales al mismo tiempo, 1 con Windows 7 y otra con cualquier distribución Linux sin servidor gráfico o me permite ejecutar hasta 4 máquinas virtuales Unix sin servidor gráfico, ¿genial no creen? Bien, básicamente no voy a hablar de la potencia del equipo, en estos momentos tengo instalado en el portátil un Fedora con el entorno de escritorio Mate. Me va muy bien con ellos, sin embargo en ocasiones especiales necesito de Windows, es el portátil de la oficina y ahí no me puedo dar el lujo de inventar cosas a menos que exista la alternativa libre.  Hace un tiempo tuve que hacer una reunión por GoToMeeting y desde Linux no está habilitada la opción para toma remota de la máquina, me tocaba hac

Como hacer funcionar la impresora Kyocera FS-720 en Windows 7.

Hace una semana estuve dando soporte a un equipo y estuve actualizándolo a la nueva versión de Windows. Una de las grandes ventajas de Windows 7 es que tiene un alto reconocimiento de hardware por lo cual ya no es necesario buscar los drivers de los diferentes dispositivos en la web e instalarlos manualmente porque ya Windows 7 instala los drivers automáticamente o en el peor de los casos el mismo los busca en Internet, los descarga y los instala. En algunos casos tenemos problemas y la solución es buscar los drivers en la web del fabricante, pero que pasa cuando no encuentras el dichoso driver en la pagina para tu version nueva de Windows 7? He aquí una solución, la mas sencilla es buscar los drivers para Windows vista, esto se debe a que vista tiene el mismo kernel de Windows 7 por lo cual hay mucha compatibilidad. Volviendo al tema, estuve actualizando el computador a Windows 7 y tuve un problema con la impresora y me llevé un verdadero susto cuando no encontraba ni siquiera el

Reboot: Reviviendo un clásico :)

Hola a todos, esta vez quiero hablar de la primera serie animada completamente en computadora; Reboot. Esta serie solía verla cuando tenía alrededor de 15 años en Discovery Kids, creo que gracias a esta serie me empezó a gustar la informática :). Para uno, meter un juego en la computadora y jugarlo es todo un placer pero para ellos es algo muy peligroso y es una aventura completa :).  La serie fue transmitida por primera vez en el año de 1994 y finalizó en el año 2001, tengo entendido que solo fueron 3 temporadas, luego se hicieron 2 peliculas y mucha gente dice que las peliculas son la 4 temporada, personalmente me he visto hasta la tercera, apenas tengo 2 capitulos de la ultima temporada que transmitieron. Ahora el gran problema es que es muy complicado encontrar la serie en Español a través de Internet, yo me la descargué en Ingles por medio de este torrent que se encuentra en The Pirate Bay. El otro gran problema es que NO HAY SUBTITULOS, ni siquiera en Inglés, apenas hay 2 capit