martes, 29 de julio de 2014

IPTABLES



Como ya les he mencionado en los post anteriores soy un amante de la seguridad informática y es un tema que me llama mucho la atención y uno de los temas base para la seguridad en redes es sobre IPTABLES, y esto no es otra cosa sino la parte del kernel Linux (un módulo) que se ocupa de filtrar paquetes. Esto dicho de otra forma, significa que IPTABLES es la parte del kernel cuyo trabajo es saber qué información/datos/paquete quieres que entre a tu ordenador, y cuáles no, sera el encargado de filtrar información a una red, es la base de todos los firewall, y como hemos descrito anteriormente el firewall es un dispositivo perimetral que se encarga de proteger mi red, y mediante IPTABLES le das las ordenes. 

Para trabajar con IPTABLES es necesario tener permisos administrativos, por lo que acá usaré sudo (pero si entras como root, no hay necesidad).

Ahora para que sea de una forma mas fácil de entender para todos los que no manejan redes y dispositivos de seguridad vamos a colocar un ejemplo en el cual podrá experimentar desde tu computador personal. (ojo no nos hacemos responsables por pruebas que no son satisfactorias... jajajaja)

Para que nuestro ordenador sea realmente seguro, tenemos que solo permitir lo que nosotros queramos. Vean su ordenador como si fuera su propia casa, en su casa ustedes por defecto NO dejan que nadie entre, solo pueden entrar determinadas personas específicas que ustedes hayan aprobado antes no? Con los firewall`s sucede igual, por defecto nadie puede entrar a nuestro ordenador, solo podrán entrar quienes nosotros deseemos.


Para lograr esto que explico, aquí los pasos:

1. Abran una terminal, en ella pongan lo siguiente y presionen [Enter]:
sudo iptables -P INPUT DROP


Esto bastará para que nadie, absolutamente nadie pueda entrar a su ordenador… y, este “nadie” los incluye a ustedes mismos :D Explicación de la línea anterior: Con ella indicamos a IPTABLES  que la política por defecto (-P) para todo lo que desee entrar a nuestro ordenador (INPUT) es obviarlo, no hacerle caso (DROP)

Nadie es bastante general, absoluto de hecho, ni ustedes mismos podrán navegar por Internet ni nada, es por eso que debemos en esa terminal poner lo siguiente y presionar [Enter]:

sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

La primera línea lo que dice es que el propio ordenador (-i lo … por cierto, lo = localhost) puede hacer lo que le plazca. Algo obvio, que puede parecer hasta absurdo… pero créanme, es tan importante como el aire jajajaja

La segunda línea la explicaré usando el ejemplo/comparación/metáfora que usé antes, me refiero a comparar al ordenador con la casa :) Por ejemplo, supongamos que vivimos con más personas en nuestra casa (madre, padre, hermanos, novia, etc). Si alguna de estas personas sale de casa, ¿es obvio/lógico que dejaremos que entre una vez regrese no?

Precisamente eso es lo que hace esa segunda línea. Todas las conexiones que nosotros iniciemos (que salgan desde nuestro ordenador), cuando por esa conexión quiera entrar algún dato, IPTABLES dejará que ese dato entre. Poniendo un ejemplo más para explicarlo, si usando nuestro navegador intentamos navegar por internet, sin estas 2 reglas no podremos, pues sí… el navegador se conectará a Internet  pero cuando intente bajar datos (.html, .gif, etc) hacia nuestro ordenador para mostrárnoslo, no podrá pues IPTABLES le negará la entrada de paquetes (datos), mientras que con estas reglas, como nosotros iniciamos la conexión desde dentro (desde nuestro ordenador) y esa misma conexión es la que intenta entrar datos, sí se le permitirá el acceso.

Con esto listo, ya tenemos declarado que nadie puede acceder a ningún servicio de nuestro ordenador, nadie excepto el propio ordenador (127.0.0.1) y además, excepto conexiones que se inicien en el propio ordenador.

Ahora, explicaré un detalle más de forma rápida, pues la 2da parte de este tutorial explicará y abarcará más sobre esto jeje, no quiero adelantar mucho :D

Sucede que por ejemplo, tienen un sitio web publicado en su ordenador, y desean que ese sitio web todos lo puedan ver, como antes declaramos que todo por defecto es NO permitido, excepto no se indique lo contrario, nadie podrá ver nuestro sitio web. Ahora haremos que cualquiera pueda ver el o los sitios webs que tengamos en nuestro ordenador, para ello ponemos:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Esto es muy simple de explicar :D

Con esa línea estamos declarando que acepte o permita (-j ACCEPT) todo tráfico al puerto 80 (–dport 80) que sea TCP (-p tcp), y que además sea tráfico entrante (-A INPUT). Puse puerto 80, porque ese es el puerto del host web, o sea … cuando un navegador intenta abrir un sitio de X ordenador, siempre mira por defecto en ese puerto.

Related Posts:

  • IPTABLES Como ya les he mencionado en los post anteriores soy un amante de la seguridad informática y es un tema que me llama mucho la atención y uno de los temas base para la seguridad en redes es sobre IPTABLES, y esto no es ot… Read More
  • Virtual Switching System (VSS) Cisco Para mi segunda entrada quiero compartir con ustedes esta información que me ha ayudado mucho a nivel profesional, espero les guste, quise compartirla porque la conseguí solamente en ingles y aquí&nb… Read More
  • Firewall Siguiendo el tema de seguridad en redes, y es algo que realmente me apasiona y desearía seguir profundizando en este tema, en este y en las próximas publicaciones estaré hablando sobre el fire… Read More
  • IPTABLES (comandos y ejemplos) Como les había prometido en el post anterior sobre montarle algunos ejemplos para que pudieran realizarlos en sus computadoras, para que no llevarme una semana decidí probar unos … Read More
  • IPTABLES (desde otra perspectiva) Indagando mas sobre seguridad en redes y sobre configuración de IPTABLES, encontré un curso muy interesante que quisiera compartir con ustedes, pero de forma mas clara y resumida, ya que es algo … Read More

0 comentarios :

Publicar un comentario