Este es mi primera guia, asi que esperad algunos fallos :)
Objetivo de esta guia:
-Conocimientos basicos de lo que hace un firewall
-Conexion CLI a nuestro router
-Activacion y configuracion del firewall interno del SpeedTouch510 manual
¿Que es un firewall?
La mayoria de nosotros conoce las aplicaciones comerciales que hacen de firewall (p.ej ZoneAlarm). Estas son aplicaciones que bloquean el acceso a la red a programas externos e internos a menos que se les de permiso.
Pero un firewall tambien puede ser un dispositivo aparte o, como en nuestro caso, una serie de directrices. Asi, que aunque muchos lo desconocen, no se necesita ningun software externo para protegernos con nuestro flamante router, configurandolo adecuadamente, podemos asegurar nuestra red contra potenciales intrusos.
Los firewall lo que hacen es controlar todas las conexiones entrantes y salientes de nuestro sistema, examinando los protocolos y puertos, cancelando todo trafico que consideran ilicito. Esta es la razon que para el uso de programas p2p se tengan que abrir los puertos y configurar correctamente el firewall, o de lo contrario no descargaremos casi nada.
-Conexion CLI a nuestro router
Muchos os estareis preguntando "como configuro el firewall interno del trasto este?" y la respuesta no es facil. Hasta el momento, el firmware no contempla un interfaz GUI (via web) para la configuracion del firewall, asi que hay 2 metodos, aunque son basicamente el mismo:
-Conexion via Telnet y configuracion manual
-Uso del programa st_fwconfig.exe
Digo que son basicamente el mismo metodo porque el programa hace automaticamente exactamente lo mismo que nosotros via telnet. En este apartado se tratara el modo manual, aunque la idea es que sea tambien de ayuda para los usuarios del programa.
Necesitamos acceder al CLI ( Command Line Interface ) del router , esto es un interfaz de lineas de comandos, osea, un interfaz de texto.
Lo primero que necesitamos para acceder a nuestro router es un programa telnet. No os preocupeis porque casi todos los sistemas operativos traen uno. En Menu inicio --> Ejecutar... escribid: telnet donde ip es la ip que teneis asignada a vuestro router, por ejemplo en mi caso telnet 172.168.0.1.
Si todo va bien os tendria que pedir nombre de usuario y password (los habituales). A continuacion os tendria que aparecer algo como esto.
=>
En este manual solo tratare de la configuracion del firewall y dejaremos el resto de cositas para mas adelante, aunque todo esta contenido en el manual. Por lo tanto escribiremos
=> firewall y obtendremos
[firewall]=>
Ya estamos en la seccion que nos interesa. Ahora voy a una explicacion mas tecnica, y un poco tediosa, pero necesaria. Una vez acabado el rollo, proseguire con un par de ejemplos.
Firewall, terminologia, comandos y parametros (Seguro que me queda oscuro...)
Terminologia
Esta es una explicacion en palabras sencillas de terminos muy usados en el mundo de las redes. Si alguien quiere mejorar las deficiniones, adelante. Si estan en ingles algunos terminos, es porque el CLI esta en ingles y asi no nos liamos.
Paquete - las partes que componen un mensaje en internet. Los datos son divididos en paquetes, enviados al ordenador y vueltos a "montar". Por ejemplo, si ves una pagina web en internet, primero habra sido desmenuzada en paquetes, enviada a traves de la red y reensamblada en tu pc.
Port # (puerto) - cada paquete esta relacionado con un nº de puerto. Cada servicio/protocolo tiene un numero determinado de puerto asignado, asi es como los reconocen los programas y el firewall. Por ejemplo, las paginas web se reciben a traves del puerto 80.
Rules (reglas) - una regla establece sin un paquete recibido a un puerto definido puede "pasar" o no. Las reglas estan contenidas en cadenas (chains).
Chain (cadena) - una serie de reglas. Deben estar asociadas a un Hook para que las reglas esten en vigor.
Hook - Podemos pensar que son todos los "puntos" por donde pasan todos los paquetes. Nuestro router tiene 5 puntos:
- input - todos los paquetes entrantes
- sink - paquetes destinados al router
- forward - los paquetes que son enviados desde y a nuestro pc
- source - los paquetes que son enviados desde nuestro router
- output - todos los paquetes salientes
Los hooks te permiten decidir cuando una regla se activa o no. Cada hook puede tener solo una cadena activa. En el siguiente dibujo se muetra un pequeño esquema de los hooks y su "posicion".
Esta guia no pretende ser exhaustiva, asi que algunos hooks no se mencionaran.
Comandos y parametros
Puede encontrarse una descripcion mas exhaustiva de todos los comandos CLI en la guia oficial. Aqui solo voy a poner una descripcion general y algunos parametros que necesitamos conocer. Por orden alfabetico. Cada parametro se explica solo una vez.
- Assign hook= chain=
Asigna a un hook (input, sink, forward, source, output) la cadena
- flush (hook=)
Desvincula el hook seleccionado de la chain asignada. Si se escribe sin parametros los desvincula todos.
- list
Lista los hooks y si estan vinculados, a que cadena
- unassign hook=
Lo contrario que assign.
- chain
- create chain=
Crea una cadena llamada
- delete chain=
Borra una cadena llamada
- flush
Limpia todas las cadenas.
- list
Lista todas las cadenas
- rule
Las reglas tienen un orden, por lo tanto estan indexadas. Cada rule tiene un numero # asociado, que es su "posicion" en la cadena.
- clear chain= index=#
Resetea las estadisticas de esa regla.
- delete chain= index=#
Borra la regla
- flush chain=
Borra todas las reglas de la cadena
- list chain=
Lista todas las reglas de la cadena
- stats chain= index=#
Muestra las estadisticas de esa cadena
- create (este es el comando mas importante, asi que solo pongo lo mas relevante, sugiero que mireis la guia oficial).
Estos son algunos de los parametros del comando rule create. El [!] significa que se pone != para negar la igualdad:
chain = index = #
Obvios
[srcintfgrp [!]= ]
El grupo de donde debe (o no) venir el paquete.
[src [!]= ]
El rango de la ip de donde deben (o no) venir los paquetes.
[dstintfgrp [!]= ][dst [!]= ]
Analogos a los anteriores, pero los paquetes van y no vienen.
[prot [!]= |}>]
El protocolo usado (o no) por el paquete: Nombres validos: icmp, igmp, ipinip, tcp, udp, ah, esp, ipcomp.
[srcport [!]= |}>]
El puerto TCP/UDP (o inicio del rango) de procedencia del paquete.
[srcportend = |}>]
El fin de rango del puerto TCP/UDP de procedencia.
[dstport [!]= |}>][dstportend = |}>]
Analogo para puertos de destino.
action =
Lo que pasa con el paquete en cuestion:
- accept el paquete puede pasar
- deny el paquete no pasa y se manda un mensage al "remitente"
- drop el paquete simplemete desaparece. Ningun mensage
- count el paquete se usa para las estadisticas. No afecta al paquete
Bueno, y hasta aqui el rollo teorico, ahora voy a poner un par de ejemplos practicos.
Ejemplos
Aqui van un par de ejemplos practicos de creacion de reglas, cadenas y asignacion. Los comandos estaran escritos en cursiva, lo que responde el router en negrita y significa darle a Intro.
Para empezar vamos a bloquear todo el trafico de la web excepto para navegar.
Primero creamos una cadena llamada forward (si no existe ya, si existe, aseguraos que esta vacia).
[firewall]=>chain create chain=forward
A continuacion crearemos la regla correspondiente. El trafico web va por el puerto 80, asi que tenemos:
firewall]=>rule create chain=forward index=0 srcintgrp=lan prot=tcp dstport=80 action accept
Esto significa que creamos una regla en la cadena chain de posicion 0, los paquetes vienen del grupo LAN usan el protocolo tcp por el puerto 80 y aceptamos que salgan.
Ahora nos interesa que los paquetes entren
[firewall]=>rule create chain=forward index=0 srcintgrp=wan prot=tcp srcport=80 action accept
Esto significa que creamos una regla en la cadena chain de posicion 0, los paquetes vienen del grupo WAN (internet), usan el protocolo tcp por el puerto 80 y los aceptamos.
Rechazamos el resto de trafico
[firewall]=>rule create chain=forward action drop
Asignamos la cadena a un hook, en este caso forward.
[firewall]=>assign hook=forward chain=forward
Ahora mismo solo funcionara el navegador web. Esto puede ser util combinado con otros parametros para, por ejemplo, limitar el uso de ciertos programas en otros pc's de tu red.
En este otro ejemplo, activaremos FTP. Este ejemplo no sera tan explicito como el anterior. El ftp usa los puertos 20 y 21.
Firewall=> rule create chain=forward index=0 srcintfgrp=lan prot=tcp dstport=21 action=accept
Firewall=> rule create chain=forward index=0 srcintfgrp=wan prot=tcp srcport=21 ack=yes action=accept
Firewall=> rule create chain=forward index=0 srcintfgrp=lan prot=tcp dstport=20 action=accept
Firewall=> rule create chain=forward index=0 srcintfgrp=wan prot=tcp srcport=20 action=accept
Y ahora el correo.
Firewall=> rule create chain=forward index=0 srcintfgrp=lan prot=tcp dstport=110 action=accept
Firewall=> rule create chain=forward index=0 srcintfgrp=wan prot=tcp srcport=110 ack=yes action=accept
Firewall=> rule create chain=forward index=0 srcintfgrp=lan prot=tcp dstport=25 action=accept
Firewall=> rule create chain=forward index=0 srcintfgrp=wan prot=tcp srcport=25 ack=yes action=accept
Para guardar los cambios, lo mas comodo es entrar via Web al administrador y darle a Save All.
Y hasta aqui esta guia, se que es poco, pero creo que con un poco de paciencia, cualquiera puede configurarse un buen firewall sin necesidad de cargar mas programas en memoria.
Guia adaptada y modificada de la original sdharris.com/speedtouch510/
Informacion extra de las guias oficiales.
El programa podeis encontrarlo en (link roto)
Hecho por N8cko, podeis distribuirlo libremente, pero siempre indicando quien es el autor. Gracias.