IPTABLES
Manual práctico
En este manual se muestran las habituales arquitecturas de redes con firewall y la forma de montar iptables para cada
caso, con distintas opciones para cada ejemplo.
1. Qué es un firewall
2. Qué es iptables
3. Al grano: creando un firewall con iptables
3.1 Proteger la propia máquina
3.2 Firewall de una LAN con salida a internet
3.3 Firewall de una LAN con salida a internet con DMZ
3.4 Firewall puro y duro entre redes
3.5 Firewall con política por defecto DROP
4. Cómo depurar el funcionamiento del firewall
Enlaces, notas, autor
1. Qué es un firewall
Un firewall es un dispositivo que filtra el tráfico entre redes, como mínimo dos. El firewall puede ser un dispositivo
físico o un software sobre un sistema operativo. En general debemos verlo como una caja con DOS o mas interfaces de
red en la que se establecen una reglas de filtrado con las que se decide si una conexión determinada puede establecerse o
no. Incluso puede ir más allá y realizar modificaciones sobre las comunicaciones, como el NAT.
Esa sería la definición genérica, hoy en dia un firewall es un hardware especifico con un sistema operativo o una IOS que
filtra el tráfico TCP/UDP/ICMP/../IP y decide si un paquete pasa, se modifica, se convierte o se descarta. Para que un
firewall entre redes funcione como tal debe tener al menos dos tarjetas de red. Esta sería la tipología clásica de un
firewall:
Esquema típico de firewall para proteger una red local conectada a internet a través de un router. El firewall debe
colocarse entre el router (con un único cable) y la red local (conectado al switch o al hub de la LAN)
Dependiendo de las necesidades de cada red, puede ponerse uno o más firewalls para establecer distintos perímetros de
seguridad en torno a un sistema. Es frecuente también que se necesite exponer algún servidor a internet (como es el caso
1
IPTABLES manual practico, tutorial de iptables con ejemplos
de un servidor web, un servidor de correo, etc..), y en esos casos obviamente en principio se debe aceptar cualquier
conexión a ellos. Lo que se recomienda en esa situación es situar ese servidor en lugar aparte de la red, el que
denominamos DMZ o zona desmilitarizada. El firewall tiene entonces tres entradas:
Figura 2: esquema de firewall entre red local e internet con zona DMZ para servidores expuestos
En la zona desmilitarizada se pueden poner tantos servidores como se necesiten. Con esta arquitectura, permitimos que el
servidor sea accesible desde internet de tal forma que si es atacado y se gana acceso a él, la red local sigue protegida por
el firewall. Esta estructura de DMZ puede hacerse también con un doble firewall (aunque como se ve se puede usar un
único dispositivo con al menos tres interfaces de red). Sería un esquema como este:
2
IPTABLES manual practico, tutorial de iptables con ejemplos
Figura 3: esquema de firewall entre red local e internet con zona DMZ para servidores expuestos creado con doble
firewall(perímetro)
Los firewalls se pueden usar en cualquier red. Es habitual tenerlos como protección de internet en las empresas, aunque
ahí también suelen tener una doble función: controlar los accesos externos hacia dentro y también los internos hacia el
exterior; esto último se hace con el firewall o frecuentemente con un proxy (que también utilizan reglas, aunque de más
alto nivel).
También, en empresas de hosting con muchos servidores alojados lo normal es encontrarnos uno o más firewalls ya sea
filtrando toda la instalación o parte de ella:
Figura 4: esquema de firewall entre redes, en la que solo se filtra y no se hace NAT
Sea el tipo de firewall que sea, generalmente no tendrá mas que un conjunto de reglas en las que se examina el origen y
destino de los paquetes del protocolo tcp/ip. En cuanto a protocolos es probable que sean capaces de filtrar muchos tipos
de ellos, no solo los tcp, también los udp, los icmp, los gre y otros protocolos vinculados a vpns. Este podría ser (en
pseudo−lenguaje) un el conjunto de reglas de un firewall del primer gráfico:
3
IPTABLES manual practico, tutorial de iptables con ejemplos
Como es obvio imaginar, la primera política facilita mucho la gestión del firewall, ya que simplemente nos tenemos que
preocupar de proteger aquellos puertos o direcciones que sabemos que nos interesa; el resto no importa tanto y se deja
pasar. Por ejemplo, si queremos proteger una máquina linux, podemos hacer un netstat −ln (o netstat −an, o netstat −puta
| grep LISTEN), saber que puertos están abiertos, poner reglas para proteger esos puertos y ya está. ¿Para qué vamos a
proteger un puerto que realmente nunca se va a abrir?
El único problema que podemos tener es que no controlemos que es lo que esta abierto, o que en un momento dado se
instale un software nuevo que abra un puerto determinado, o que no sepamos que determinados paquetes ICMP son
peligrosos. Si la política por defecto es ACEPTAR y no se protege explícitamente, nos la estamos jugando un poco.
En cambio, si la política por defecto es DENEGAR, a no ser que lo permitamos explícitamente, el firewall se convierte
en un auténtico MURO infranqueable. El problema es que es mucho más difícil preparar un firewall así, y hay que tener
muy claro como funciona el sistema (sea iptables o el que sea) y que es lo que se tiene que abrir sin caer en la tentación
de empezar a meter reglas super−permisivas.
Esta configuración de firewall es la recomendada, aunque no es aconsejable usarla si no se domina mínimamente el
sistema. Uno de los objetos principales de este documento es mostrar la forma de crear este tipo de firewalls.
IMPORTANTE
El orden en el que se ponen las reglas de firewall es determinante. Normalmente cuando hay que decidir que se hace con
un paquete se va comparando con cada regla del firewall hasta que se encuentra una que le afecta (match), y se hace lo
que dicte esta regla (aceptar o denegar); después de eso NO SE MIRARÁN MÁS REGLAS para ese paquete. ¿Cuál es el
peligro? Si ponemos reglas muy permisivas entre las primeras del firewall, puede que las siguientes no se apliquen y no
sirvan de nada.
2. Qué es iptables
IPtables es un sistema de firewall vinculado al kernel de linux que se ha extendido enormemente a partir del kernel 2.4
de este sistema operativo. Al igual que el anterior sistema ipchains, un firewall de iptables no es como un servidor que lo
iniciamos o detenemos o que se pueda caer por un error de programación(esto es una pequeña mentira, ha tenido alguna
vulnerabilidad que permite DoS, pero nunca tendrá tanto peligro como las aplicaciones que escuchan en determinado
puerto TCP): iptables esta integrado con el kernel, es parte del sistema operativo. ¿Cómo se pone en marcha? Realmente
lo que se hace es aplicar reglas. Para ellos se ejecuta el comando iptables, con el que añadimos, borramos, o creamos
reglas. Por ello un firewall de iptables no es sino un simple script de shell en el que se van ejecutando las reglas de
firewall.
Notas: bueno, para los más geeks y tocapelotas. Vale, se puede implementar un script de inicio en /etc/rc.d/INIT.d (o
/etc/INIT.d ) con el que hagamos que iptables se "inicie o pare" como un servidor más. Lo podemos hacer nosotros o es
4
IPTABLES manual practico, tutorial de iptables con ejemplos
probable que venga en la distribución (como en redhat por ejemplo). También se pueden salvar las reglas aplicadas con
el comando iptables−save en un fichero y gestionar ese fichero con una aplicación o front−end desde la X o desde
webmin.
Vale, tenemos una máquina linux con soporte para iptables, tiene reglas aplicadas y empiezan a llegar/salir/pasar
paquetes. No nos liemos: olvidemos cuantas tarjetas de red hay, que direcciones ip tiene la máquina y olvidemos si el
paquete entra o sale. Las reglas de firewall están a nivel de kernel, y al kernel lo que le llega es un paquete (digamos, un
marrón ;) ) y tiene que decidir que hacer con él. El kernel lo que hace es, dependiendo si el paquete es para la propia
maquina o para otra maquina, consultar las reglas de firewall y decidir que hacer con el paquete según mande el firewall.
Este es el camino que seguiría un paquete en el kernel:
Figura 5: cuando un paquete u otra comunicación llega al kernel con iptables se sigue este camino
Como se ve en el gráfico, básicamente se mira si el paquete esta destinado a la propia maquina o si va a otra. Para los
paquetes (o datagramas, según el protocolo) que van a la propia maquina se aplican las reglas INPUT y OUTPUT, y para
filtrar paquetes que van a otras redes o maquinas se aplican simplemente reglas FORWARD.
INPUT,OUTPUT y FORWARD son los tres tipos de reglas de filtrado. Pero antes de aplicar esas reglas es posible
aplicar reglas de NAT: estas se usan para hacer redirecciones de puertos o cambios en las IPs de origen y destino.
Veremos ejemplos.
E incluso antes de las reglas de NAT se pueden meter reglas de tipo MANGLE, destinadas a modificar los paquetes; son
reglas poco conocidas y es probable que no las usen.
Por tanto tenemos tres tipos de reglas en iptables:
− MANGLE
− NAT: reglas PREROUTING, POSTROUTING
− FILTER: reglas INPUT, OUTPUT, FORWARD.
En este tutorial se ha intentado dar una breve introducción sobre lo que es un firewall, sus tipologías básicas y en
concreto se presenta el sistema iptables. Pero vamos al grano y empezamos a ver configuraciones de firewall con
iptables, empezando desde la más básica a las más complejas, en las que se establece la denegación como política por
defecto.
Nota: se recomienda encarecidamente ir practicando estas reglas en alguna maquina linux disponible, y especialmente
hacer uso de la herramienta iptraf para depurar y comprobar el funcionamiento de iptables. Con iptraf podemos
comprobar si las conexiones TCP/IP se llegan a establecer o no. Una conexión tcp/ip empieza con el
three−way−handshake:
5
IPTABLES manual practico, tutorial de iptables con ejemplos
− La maquina que desea conectarse a otra envia un paquete con flan SYN
− Si la otra maquina acepta, envia un SYN/ACK − Entonces la máquina
establece la conexión.
Si el firewall esta denegando la conexión, con iptraf veremos que la maquina origen solo manda paquetes con el flan S
(de SYN), y que del otro lado no sale nada. Saber usar iptraf nos ayudará mucho.
#!/bin/sh
## SCRIPT de IPTABLES − ejemplo del manual de iptables
## Ejemplo de script para proteger la propia máquina
## Pello Xabier Altadill Izura ##
www.pello.info − pello@pello.info
echo −n Aplicando Reglas de Firewall...
## FLUSH de reglas
iptables −F iptables
−X iptables −Z
iptables −t nat −F
## Empezamos a filtrar
6
IPTABLES manual practico, tutorial de iptables con ejemplos
# Y el resto, lo cerramos
iptables −A INPUT −p tcp −−dport 20:21 −j DROP iptables
−A INPUT −p tcp −−dport 3306 −j DROP iptables −A INPUT
−p tcp −−dport 22 −j DROP iptables −A INPUT −p tcp
−−dport 10000 −j DROP echo " OK . Verifique que lo que se
aplica con: iptables −L −n"
En fin, ya se ve, un script de los más simple, con unas pocas reglas con las que cerramos puertos al público a los que no
tienen porque tener acceso, salvo el 80. Pero cualquiera con algo de ojo se habrá dado cuenta de que ni se filtra el UDP
ni el ICMP. Apostaría cualquier cosa a que el sistema tiene algún puerto udp abierto, y además peligroso como el SNMP.
Como he dicho anteriormente, en este tipo de firewall es recordable hacer un netstat para ver que puertos están en estado
de escucha (abiertos), y salve que un rootkit nos haya modificado los binarios, netstat nos dará la información precisa
que necesitamos. Hay gente que se decanta por hacerse un nmap así mismos. Cuidado: dependiendo de cómo lo
ejecutemos quizá no nos muestre todos los puertos, ya que suele mirar los bien conocidos.
Imaginemos que hemos dado un repaso a nuestro sistema, y ahora si que tenemos mejor identificados los puertos tcp y
udp abiertos. Pero por si acaso nos curamos en salud y al final del script cerraremos el rango de puertos del 1 al 1024, los
reservados tanto para tcp como udp.
#!/bin/sh
## SCRIPT de IPTABLES − ejemplo del manual de iptables
## Ejemplo de script para proteger la propia máquina
## Pello Xabier Altadill Izura ##
www.pello.info − pello@pello.info
echo −n Aplicando Reglas de Firewall...
## FLUSH de reglas
iptables −F iptables
−X iptables −Z
iptables −t nat −F
## Empezamos a filtrar
7
IPTABLES manual practico, tutorial de iptables con ejemplos
¿Sencillo, no? Ahora basta con hacer copy−paste de estas reglas y aplicarlas y ajustarlas en su sistema (quizás uses
PostgreSQL). Si tiene miedo de perder el control de una máquina remota, pruebe el script en una máquina local y
asegúrese de que aplica lo que usted quiere. Funcionar va a funcionar seguro.
¿Qué es lo que hace falta? Obviamente, una regla que haga NAT hacia fuera (enmascaramiento en iptables), con lo que
se haría dos veces NAT en el firewall y en el router. Entre el router y el firewall lo normal es que haya una red privada
(192.168.1.1 y 192.168.1.2 por ejemplo), aunque dependiendo de las necesidades puede que los dos tengan IP pública. El
router se supone que hace un NAT completo hacia dentro (quizá salvo puerto 23), o sea que desde el exterior no se llega
al router si no que de forma transparente se "choca" contra el firewall. Lo normal en este tipo de firewalls es poner la
política por defecto de FORWARD en denegar (DROP), pero eso lo vemos más adelante. Veamos como sería este
firewall−gateway:
#!/bin/sh
## SCRIPT de IPTABLES − ejemplo del manual de iptables
## Ejemplo de script para firewall entre red−local e internet
##
8
IPTABLES manual practico, tutorial de iptables con ejemplos
## FLUSH de reglas
iptables −F iptables
−X iptables −Z
iptables −t nat −F
## Empezamos a filtrar
## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN
# El localhost se deja (por ejemplo conexiones locales a mysql)
/sbin/iptables −A INPUT −i lo −j ACCEPT
Pero como somos muy malvados queremos que los empleados solamente puedan navegar por internet, denegando el
acceso a Kazaa o edonkey. Esta sería una configuración simple pero efectiva.
#!/bin/sh
## SCRIPT de IPTABLES − ejemplo del manual de iptables
## Ejemplo de script para firewall entre red−local e internet
## con filtro para que solo se pueda navegar.
9
IPTABLES manual practico, tutorial de iptables con ejemplos
## FLUSH de reglas
iptables −F iptables
−X iptables −Z
iptables −t nat −F
## Empezamos a filtrar
## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN
# El localhost se deja (por ejemplo conexiones locales a mysql)
/sbin/iptables −A INPUT −i lo −j ACCEPT
10
IPTABLES manual practico, tutorial de iptables con ejemplos
Supongamos que este firewall tiene alguna función adicional: es un servidor proxy y además es un servidor de correo.
Darle funcionalidades de este tipo a un firewall no es recomendable, porque si no se protegen bien esos puertos o si no
está actualizado el software pueden entrar en el firewall a base de xploits comprometiendo TODA la red local. De todas
formas muchas empresas no se pueden permitir o no quieren tener una máquina para cada cosa, bastante les cuesta a
muchas poner un firewall. Por tanto: si se añaden servicios que deben estar abiertos al público en el propio firewall, nos
la estamos jugando, y se recomienda pasar el servicio a otra máquina y ponerla en la DMZ.
Supongamos también que la empresa tiene comerciales en ruta y que se conectan a internet desde su portátil y con una ip
dinámica. Supongamos también que el jefe de la empresa quiere acceder a la red local desde casa con una conexión
ADSL. Ahora en el firewall debieramos tener instalado un servidor SMTP, pop3, y un PPTPD.
#!/bin/sh
## SCRIPT de IPTABLES − ejemplo del manual de iptables
## Ejemplo de script para firewall entre red−local e internet
## con servicios abiertos de puerto 25, 110, y 1723
## Pello Xabier Altadill Izura ##
www.pello.info − pello@pello.info
echo −n Aplicando Reglas de Firewall...
## FLUSH de reglas
iptables −F iptables
−X iptables −Z
iptables −t nat −F
## Empezamos a filtrar
## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN
# El localhost se deja (por ejemplo conexiones locales a mysql)
iptables −A INPUT −i lo −j ACCEPT
# Abrimos el puerto 25, hay que configurar bien el relay del servidor SMTP
iptables −A INPUT −s 0.0.0.0/0 −p tcp −−dport 25 −j ACCEPT
# Abrimos el pop3
iptables −A INPUT −s 0.0.0.0/0 −p tcp −−dport 110 −j ACCEPT
# Y abrimos el puerto pptpd para la ip del adsl de casa del jefe iptables
−A INPUT −s 211.45.176.24 −p tcp −−dport 1723 −j ACCEPT
11
IPTABLES manual practico, tutorial de iptables con ejemplos
#!/bin/sh
## SCRIPT de IPTABLES − ejemplo del manual de iptables
## Ejemplo de script para firewall entre red−local e internet
## con servicios abiertos de puerto 25, 110, y 1723
12
IPTABLES manual practico, tutorial de iptables con ejemplos
## FLUSH de reglas
iptables −F iptables
−X iptables −Z
iptables −t nat −F
## Empezamos a filtrar
## REDIRECCIONES
# Abrimos el puerto 25, hay que configurar bien el relay del servidor SMTP
iptables −A INPUT −s 0.0.0.0/0 −p tcp −−dport 25 −j ACCEPT
# Abrimos el pop3
iptables −A INPUT −s 0.0.0.0/0 −p tcp −−dport 110 −j ACCEPT
# Y abrimos el puerto pptpd para la ip del adsl de casa del jefe iptables
−A INPUT −s 211.45.176.24 −p tcp −−dport 1723 −j ACCEPT
13
IPTABLES manual practico, tutorial de iptables con ejemplos
Bueno ya tenemos montada la red, pero conviene insistir en que esta última configuración, con las redirecciones y los
servicios de correo funcionando en el firewall es bastante insegura. ¿Qué ocurre si hackean el servidor IIS de la red
local? Pues que el firewall no sirve de gran cosa, lo poco que podría hacer una vez se ha entrado en la red local es evitar
escaneos hacia el exterior desde la máquina atacada, aunque para ello el firewall debiera tener una buena configuración
con denegación por defecto. Si necesitamos ese servidor IIS, basta con comprar una tarjeta de red por 6 o dolares y crear
una DMZ.
Bueno, esto se va complicando. Imaginemos que tenemos una red parecida a la anterior pero ahora hacemos las cosas
bien y colocamos ese servidor IIS en una DMZ:
14
IPTABLES manual practico, tutorial de iptables con ejemplos
Figura 7: esquema de firewall entre red local e internet con zona DMZ para servidores expuestos
## FLUSH de reglas
iptables −F iptables
−X iptables −Z
iptables −t nat −F
## Empezamos a filtrar
## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN
# Todo lo que venga por el exterior y vaya al puerto 80 lo redirigimos
# a una maquina interna
iptables −t nat −A PREROUTING −i eth0 −p tcp −−dport 80 −j DNAT −−to 192.168.3.2:80
15
IPTABLES manual practico, tutorial de iptables con ejemplos
Vamos a ver: si las máquinas de la DMZ tienen una ip pública hay que tener muchísimo cuidado de no permitir el
FORWARD por defecto. Si en la DMZ hay ip pública NO ES NECESARIO HACER REDIRECCIONES de puerto, sino
que basta con rutar los paquetes para llegar hasta la DMZ. Este tipo de necesidades surgen cuando por ejemplo tenemos
dos máquinas con servidor web (un apache y un IIS); ¿A cuál de las dos le redirigimos el puerto 80? No hay manera de
saberlo (No, con servidores virtuales tampoco, piénsalo), por eso se deben asignar IPs públicas o en su defecto usar
puertos distintos.
16
IPTABLES manual practico, tutorial de iptables con ejemplos
Por tanto hay que proteger convenientemente toda la DMZ. Tampoco haría falta enmascarar la salida hacia el exterior de
la DMZ, si tiene una ip pública ya tiene una pata puesta en internet; obviamente hay que decirle al router como llegar
hasta esa ip pública. Así podría ser esta red:
Figura 8: esquema de firewall entre red local e internet con zona DMZ para servidores expuestos usando IPs públicas
Y este podría ser un firewall adecuado:
#!/bin/sh
## SCRIPT de IPTABLES − ejemplo del manual de iptables
## Ejemplo de script para firewall entre red−local e internet con DMZ
## pero con IPs públicas.
## Pello Xabier Altadill Izura ##
www.pello.info − pello@pello.info
echo −n Aplicando Reglas de Firewall...
## FLUSH de reglas
iptables −F iptables
−X iptables −Z
iptables −t nat −F
## Empezamos a filtrar
## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN
17
IPTABLES manual practico, tutorial de iptables con ejemplos
ATENCIÓN
Merece la pena pararse a explicar esta parte del firewall:
18
IPTABLES manual practico, tutorial de iptables con ejemplos
¿Por qué se explicita el puerto de origen/destino 1024:65535 en la primera y segunda regla? Imaginemos que un hacker
logra acceso a la máquina de la DMZ. Si no especificamos el puerto de destino en esas dos reglas, el hacker puede abrir
CUALQUIER puerto de la LAN siempre que pueda establecer como puerto origen suyo el tcp/3389, cosa fácil para un
hacker que sepa algo de C o que tenga el programa pertinente a mano. De todas formas el hacker tendría que saber que
existe ese tipo de reglas, si es listo probara con puertos de gestión o con puertos netbios. El problema es que se deja un
vínculo con la LAN bien para administrarlo remotamente o para establecer relaciones de confianza y ahí es donde reside
el peligro.
En las conexiones "legales" no se usa como puerto origen nada por debajo del 1024; cuando alguien se conecta a otro
puerto en su extremo abre un puerto por encima del 1024. Especificándolo en la regla de firewall protegeremos un poco
mejor la LAN, aunque los puertos por encima de 1024 estarán en peligro.
En este caso olvidémonos de redes locales y de NAT. Aquí solo tendremos reglas de filtrado INPUT y FORWARD.
Pongamos que tenemos el siguiente escenario:
19
IPTABLES manual practico, tutorial de iptables con ejemplos
Figura 9: esquema de firewall entre redes, en la que solo se filtra y no se hace NAT
En el firewall debemos indicar una serie de reglas para proteger los equipos que están al otro lado de este dispositivo,
todos ellos de la red 211.34.149.0/24
Cada uno de ellos da un servicio determinado, y puede estar gestionado desde distintas IPs, lo que significa que habrá
que dar acceso a determinados puertos de gestión (22, 3389, etc..). Este podría ser el aspecto del script del firewall:
#!/bin/sh
## SCRIPT de IPTABLES − ejemplo del manual de iptables
## Ejemplo de script para firewall entre redes.
## Pello Xabier Altadill Izura ##
www.pello.info − pello@pello.info
echo −n Aplicando Reglas de Firewall...
## FLUSH de reglas
iptables −F iptables
−X iptables −Z
iptables −t nat −F
## Establecemos politica por defecto
iptables −P INPUT ACCEPT
iptables −P OUTPUT ACCEPT
iptables −P FORWARD ACCEPT
## Empezamos a filtrar
## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN
# El resto, cerrar
iptables −A FORWARD −d 211.34.149.2 −j DROP
20
IPTABLES manual practico, tutorial de iptables con ejemplos
# El resto, cerrar
iptables −A FORWARD −d 211.34.149.3 −j DROP
# El resto, cerrar
iptables −A FORWARD −d 211.34.149.4 −j DROP
# El resto, cerrar
iptables −A FORWARD −d 211.34.149.5 −j DROP
# El resto, cerrar
iptables −A FORWARD −d 211.34.149.6 −j DROP
# El resto, cerrar
21
IPTABLES manual practico, tutorial de iptables con ejemplos
Con esta firewall y sobretodo gracias a las reglas de DROP que metemos tras especificar lo que dejamos abiertos,
protegeremos de manera eficaz todos lo puertos abiertos de las máquinas.
#!/bin/sh
## SCRIPT de IPTABLES − ejemplo del manual de iptables
## Ejemplo de script para firewall entre redes con DROP por defecto
## Pello Xabier Altadill Izura ##
www.pello.info − pello@pello.info
echo −n Aplicando Reglas de Firewall...
## FLUSH de reglas
iptables −F iptables
−X iptables −Z
iptables −t nat −F
## Empezamos a filtrar
## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN
22
IPTABLES manual practico, tutorial de iptables con ejemplos
# El resto, cerrar
23
IPTABLES manual practico, tutorial de iptables con ejemplos
Ya esta, hemos levantado un verdadero muro entre internet y el conjunto de servidores que esta
Tras el firewall. No se puede ni hacer un ping a las máquinas, salvo que se haya dado acceso total a una ip. Si
quisieramos dar acceso al ping, pondríamos algo así:
Es más llevadero aplicar el DROP por defecto cuando el firewall es para la propia máquina. El primer escenario de esta
manual trataba sobre este caso, ahora lo revisamos con la política por defecto drop.
#!/bin/sh
## SCRIPT de IPTABLES − ejemplo del manual de iptables
## Ejemplo de script para proteger la propia máquina
## con política por defecto DROP
## Pello Xabier Altadill Izura ##
www.pello.info − pello@pello.info
echo −n Aplicando Reglas de Firewall...
## FLUSH de reglas
iptables −F iptables
24
IPTABLES manual practico, tutorial de iptables con ejemplos
−X iptables −Z
iptables −t nat −F
## Empezamos a filtrar
Programas útiles
IPTRAF. Sin duda alguna uno de los programas más prácticos para depurar el firewall es iptables, ya que con el
podemos observar si la conexiones se establecen o no; es un programa de consola que es aconsejable controlar ya que
25
IPTABLES manual practico, tutorial de iptables con ejemplos
muestra en tiempo real el tráfico que atraviesa nuestra máquina con todo lujo de detalles: origen/destino de ips y puertos,
tráfico total o tráfico total según el interfaz de red, etc… Si vemos muchas conexiones simultaneas y nos perdemos,
existe la posibilidad de aplicar filtros para captar solo aquello que nos interesa.
NMAP. La herramienta para escanear puertos por excelencia, rechace imitaciones. Es una herramienta de consola rápida,
efectiva y con multitud de opciones. Podemos usarla desde máquinas ajenas a nuestra red para comprobar si realmente el
firewall esta filtrando correctamente y en cierta manera para hacernos una idea de que "visión" pueden tener los hackers
de nuestro sistema.
SHELL. En el propio script del firewall podemos añadir algunas opciones para descubrir fallos de sintaxis en las reglas.
Claro, imaginemos que tenemos un firewall de 40 lineas y una de ellas falla cuando ejecutamos el script. ¿Cuál es? Es
probable que el mensaje de error no aclare lo suficiente, por eso se puede añadir algo así al final de cada regla:
...
iptables −A INPUT −s 195.55.234.2 −j ACCEPT && echo " regla−21 ok"
iptables −A INPUT −s 213.62.89.145 −j ACCEPT && echo " regla−22 ok"
...
26
PFC ULPGC – Aplicaciones Criptográficas Java
___________________________________________________________________
2.Introducción a la seguridad
Las necesidades de seguridad de la información han ido evolucionando al igual que las
ciencias de la computación y las tecnologías de la información. De este modo, las herramientas de
seguridad empleadas también lo han hecho.
En sus comienzos, la seguridad consistía en el uso de medios físicos, tales como cajas fuertes
o armarios con cierre de seguridad. Poco después, aparecieron los medios administrativos, como lo
son los contratos de empleados para salvaguardar información confidencial de la empresa.
Con la llegada de la computación, hicieron falta nuevas herramientas de seguridad diseñadas
para proteger los datos y evitar la intrusión de los hackers. Estas herramientas se conocen con el
nombre de “seguridad informática”.
Finalmente, con la aparición de Internet, las redes locales y los sistemas distribuidos, surgió la
necesidad de disponer de seguridad durante la transmisión. Las herramientas que satisfacen estas
nuevas necesidades se engloban bajo la denominación “seguridad en redes”. A continuación se
puede observar la evolución en el tiempo tanto de la seguridad como de la informática.
Para mayor información puede consultar los recursos bibliográficos utilizados; a los cuales
también se puede acceder desde http://jcef.sourceforge.net/doc/resources.pdf.
21
PFC ULPGC – Aplicaciones Criptográficas Java
Para analizar de forma efectiva las necesidades de seguridad de una organización, evaluar y
elegir distintos productos y políticas de seguridad, el responsable de la seguridad necesita una forma
sistemática de definir los requisitos de seguridad y caracterizar los enfoques para satisfacer dichos
requisitos.
Uno de estos posibles enfoques interesantes se centra en los ataques a la seguridad, los
mecanismos y los servicios.
Un ataque a la seguridad es cualquier acción que comprometa la seguridad de la información
de una organización. Los ataques a la seguridad se detectan, eliminan, previenen y/o se reestablece
el sistema de su daño, siendo los encargados de estas funciones los mecanismos de seguridad.
Por el contrario, un servicio de seguridad es un servicio que mejora la seguridad de los
sistemas, contrarrestando los ataques a la seguridad, haciendo uso de uno o más mecanismos y
políticas de seguridad con el objetivo de proporcionar el servicio.
En resumen, los componentes de una arquitectura de seguridad junto con sus objetivos son:
Componentes Objetivo
Ataque a la seguridad Comprometer la seguridad de la información de un sistema
Servicio de seguridad Contrarrestar los ataques a la seguridad
Mecanismo de seguridad Ayudar a contrarrestar los ataques a la seguridad
Tabla 2: Componentes de una arquitectura de seguridad y sus objetivos
2 Ataques a la seguridad
Ataques
Características
Pasivos Activos
¿Acceden a recursos? Sí Sí
¿Obtienen información? Sí Sí
Objetivo
¿Alteran el sistema? No Sí
¿Alteran recursos? No Sí
Tabla 3: Comparativa entre Ataques Pasivos y Activos (1/2)
22
PFC ULPGC – Aplicaciones Criptográficas Java
Ataques
Características
Pasivos Activos
¿Se pueden prevenir? Sí No
Solución ¿Se pueden detectar? No Sí
¿Se pueden recuperar? No Sí
Tabla 4: Comparativa entre Ataques Pasivos y Activos (2/2)
1 Ataques pasivos
De la misma forma, existen varios tipos de ataques pasivos. En la siguiente tabla se muestran
cada uno de ellos junto con sus objetivos básicos:
23
PFC ULPGC – Aplicaciones Criptográficas Java
En las siguientes ilustraciones se pueden ver cada uno de los diagramas de los ataques pasivos
existentes:
Un ejemplo de ataque pasivo mediante obtención de contenidos de mensajes podría ser: “Un
usuario A envía un archivo a otro usuario B. El archivo contiene información confidencial que debe
protegerse, por ejemplo los registros de nóminas. Otro usuario C, que no está autorizado a leer el
archivo, observa la transmisión y captura una copia del archivo durante dicha transmisión”.
Para el caso de ataques basado en el análisis del tráfico, el ejemplo sería equivalente al
anterior, excepto que en lugar de analizar el contenido de los paquetes que se transmiten a través de
la red, se observan las cabeceras de cada uno de ellos.
24
PFC ULPGC – Aplicaciones Criptográficas Java
2 Ataques activos
Existen varios tipos de ataques activos, que junto con sus objetivos, se mencionan a
continuación:
A continuación, se pueden observar cada uno de los diagramas para cada uno de los ataques
activos existentes:
25
PFC ULPGC – Aplicaciones Criptográficas Java
Un ejemplo de ataque por suplantación de identidad podría ser: “Más allá de interceptar un
mensaje, un usuario podría construir un mensaje con las entradas deseadas, transmitiéndolo
posteriormente a otro usuario como si procediera de la entidad suplantada, como por ejemplo la
entidad de un administrador. Por consiguiente, el usuario receptor acepta el mensaje y reacciona
ante el mensaje como si del administrador procediera. El mensaje podría ser cualquier tipo de
información, como un fichero de los usuarios que están autorizados o no”.
Por otro lado, un ejemplo de una posible consecuencia de un ataque mediante repetición de
mensajes sería: “Haber ingresado dinero repetidas veces en una cuenta dada”.
Para el caso de ataques mediante modificación de mensajes, algunos de sus objetivos podrían
ser: “alterar un programa para que funcione de forma diferente” o “modificar una orden”, por
ejemplo, en lugar del mensaje “Ingresa un millón de pesetas en la cuenta A”, podría ser modificado
para decir “Ingresa un millón de pesetas en la cuenta B”.
26
PFC ULPGC – Aplicaciones Criptográficas Java
Finalmente, ejemplos de ataques mediante interrupción de servicio son: “Suprimir todos los
mensajes dirigidos a una determinada entidad”, “Interrumpir el servicio de una red inundándola con
mensajes espurios” o “Deshabilitar el sistema de gestión de ficheros”.
3 Servicios de seguridad
27
PFC ULPGC – Aplicaciones Criptográficas Java
Un símil entre los servicios de seguridad y la vida cotidiana se establece en la siguiente tabla:
Cada uno de los servicios de seguridad está pensado para hacer frente a uno o varios ataques.
La siguiente tabla muestra dichas relaciones:
4 Mecanismos de seguridad
Los mecanismos de seguridad son utilizados por los servicios de seguridad con el objetivo de
contrarrestar los ataques a la seguridad. Es decir, para que los servicios de seguridad hagan frente a
los ataques, es necesario que utilicen una serie de mecanismos de seguridad:
28
PFC ULPGC – Aplicaciones Criptográficas Java
29
PFC ULPGC – Aplicaciones Criptográficas Java
30
Registrarse/Entrar
Iptables
Uno o más colaboradores están trabajando actualmente en extender esta página. Es posible que, a
artículo causa deeditar
discusión ello, hayahistorial
lagunas de contenido, deficiencias de formato o texto en otros idiomas. Por favor, antes
de realizar correcciones mayores o reescrituras, contacta con ellos en su página de usuario o en la página
de discusión del artículo para poder coordinar la redacción.
INPUT
Filtrado de paquetes que llegan al firewall
Filtrado de OUTPUT
FILTER Filtrado de los paquetes de salida
paquetes
FORWARD
Permite el paso de paquetes a otra dirección del firewall
Chequea la dirección de red antes de reenviarla.
PREROUTING
Facilita la modificación de la información para facilitar el enrutado
Se usa también como DESTINATION NAT o DNAT
Enrutamiento
de Tratamiento de la dirección IP después del enrutado.Esto hace
NAT POSTROUTING
direcciones de que no sea necesario la modificación del destino de la dirección IP
red del paquete como en pre-routing.Se usa como SOURCE NAT o SNAT
OUTPUT Interpretación de las direcciones de Red de los paquetes
que salen del firewall.Escasamente usado.
PREROUTING
Modificación de
POSTROUTING Permite la modificación del paquete como puede ser TOS
las
MANGLE INPUT (type of Service), marcado de los mismos para
cabeceras de
OUTPUT QOS o calidad de servicio
TCP
FORWARD
PREROUTING
Esta tabla se usa para configurar principalmente excepciones
Acción
RAW en el seguimiento de paquetes en combinación
NOTRACK
OUTPUT con la acción o target NOTRACK.
A partir de aquí, dividiremos las opciones en algunos grupos
Como hacíamos referencia mas arriba, dentro de las tablas hay cadenas a su vez vez formadas por agrupaciones de reglas. Es importante
ver que, cada tabla tiene cadena por defecto, que no se pueden eliminar.
A las CADENAS por defecto podemos unir cadenas creadas por nosotros mismos para un mejor funcionamiento del filtrado o el
enrutamiento.
El comando IPTABLES tiene a su vez parámetros y comandos que permitirán definir el comportamiento de una o varias reglas. Esto es,
agregar una regla, modificar una regla existente, eliminar el nombre de una cadena
Describimos algunos de los comandos mas comunes.
FUNCION de COMANDOS
COMANDO FUNCION
-N Crear nueva cadena asociándola a un nombre.
-P Modifica la acción por defecto de la cadena preseleccionada.
-D Eliminar la regla_número(rulenum) en la cadena seleccionada.
Parámetros [editar]
Todas las reglas en iptables tienen definida su condición por los parámetros, que constituyen su parte primordial.
Algunos de estos parámetros son:
PARAMETROS y su FUNCION
PARAMETRO FUNCION
El protocolo del paquete a comprobar, tcp, udp, icmp ó all.
-p
Por defecto es all
-j Esto especifica el objetivo de la cadena de reglas, o sea una acción
Cuando listamos las reglas, agrega el número que ocupa cada regla
--line-numbers
dentro de la cadena
Acciones [editar]
Ya tenemos los componetes esenciales para formar las reglas que determinarán la aceptación o denegación de entrada y salida de paquetes
de nuestra máquina, tanto a través de Internet,como de nuestra propia red doméstica.
Ahora veremos cómo se construyen las reglas y como hacer un script de shell en el que se van aplicando aquellas reglas que necesitemos.
La estructura o el esqueleto de una regla basicamente sería:
¿Qué nos dice esta cadena de reglas?
Que en la tabla filter, la cadena input filtra los paquetes con protocolo tcp que entran por el puerto 23 (puerto asignado a telnet) y éstos son
rechazados (DROP) sin ninguna notificación.
Algunas consideraciones. De acuerdo con lo hemos comentado antes, podríamos escribir lo mismo de otra forma,por ej. quitando "-t filter", ya
que es la tabla por defecto, además podemos cambiar el número de puerto por"telnet" que en realidad es su puerto asignado. Queda:
Si por el contrario, quisiéramos aceptar estos paquetes:
O aceptamos tráfico http:
donde también podemos especificar el interfaz de entrada (-i etho)
también:
sudo iptables -L
se listan las actuales reglas en iptables. Si acabas de instalar un servidor, aun no tendrás normas, así que deberías ver:
Podemos también permitir sesiones establecidas para recibir el tráfico:
Permitir tráfico entrante de puertos específicos [editar]
Se podría empezar por el bloqueo de tráfico, pero deberías estar trabajando a través de SSH, por lo que necesitas permitir SSH antes de bloquear
todo lo demás.
Para permitir el tráfico SSH por el puerto por defecto (22), puedes decirle a iptables que permita a todo el tráfico TCP entrante por ese puerto.
Refiéndonos a la lista anterior, puedes ver que ésto le dice a iptables:
Añadir esta regla a la cadena input (-A INPUT), de manera que nos fijamos en el tráfico
Comprueba si el tráfico es TCP (-p tcp).
Si lo es, comprueba que la entrada va al puerto SSH (--dport ssh).
Si es así, acepta la entrada (-j ACCEPT).
Vamos comprobar las reglas: (solo se muestra la primera linea, tu verás más)
sudo iptables -L
Ahora, vamos a permitir todo el tráfico entrante
sudo iptables -L
Tenemos permitido específicamente el tráfico tcp en los puertos ssh y web, pero como no tenemos bloqueado nada, todo el tráfico puede aun
entrar.
Una vez que se toma la decisión de aceptar un paquete, ninguna regla más le afecta. Como las reglas que permiten el tráfico web y ssh vienen
de antes, ya que nuestra regla de bloquear el tráfico viene después, podemos aun aceptar el tráfico que queramos. Todo lo que necesitamos
hacer es poner la regla para bloquear todo el tráfico.
Y obtenemos
Como no hemos especificado un interfaz o protocolo, cualquier tráfico de cualquier puerto en cualquier interfaz está bloqueado, excepto para web
y ssh.
El único problema con nuestra configuración de lejos es que incluso el puerto loopback está bloqueado.
Podríamos haber escrito la regla solo para eth0 especificando -i eth0, pero, pero también podríamos añadir una regla para el loopback. Si se
agrega esta regla, esta llegará muy tarde - después de que todo el tráfico sea bloqueado. Necesitamos insertar la regla antes de ésto. Dado que
se trata de una gran cantidad de tráfico, la insertaremos como primera regla para que sea procesada en primer lugar
sudo iptables -L
Y obtenemos
La primera y última linea parecen lo mismo, así que listaremos iptables con más detalle con la opción -v.
sudo iptables -L -v
Y obtenemos
Ahora puedes ver más información. Esta regla es de hecho muy importante, dado que muchos programas utilizan la interfaz loopback para
comunicarse con otras. Si no permites la comunicación, podrías romper esos programas.
Enmascaramiento IP [editar]
El propósito del Enmascaramiento IP (IP Masquerading) es permitir que máquinas con direcciones IP privadas no enrutables de una red accedan
a Internet a través de la máquina que realiza el enmascaramiento. Se debe manipular el tráfico que va de su red privada con destino a Internet,
para que las respuestas puedan encaminarse adecuadamente a la máquina que hizo la petición. Para ello, el núcleo debe modificar la dirección
IP fuente de cada paquete de forma que las respuestas se encaminen hacia ella, en lugar de encaminarla hacia la dirección IP privada que hizo la
petición, lo que resulta imposible en Internet. Linux usa Seguimiento de Conexión (Connection Tracking, conntrack) para llevar la cuenta de qué
conexiones pertenencen a qué máquinas, y reencaminar adecuadamente cada paquete de retorno. El tráfico que sale de su red privada es, por
consiguiente, «enmascarada» dando la sensación de que se ha originado en la máquina Ubuntu que hace de pasarela. Este proceso se
denomina Compartición de Conexiones de Internet (Internet Connection Sharing) en la documentación de Microsoft.
Esto se puede conseguir con una sóla regla de iptables, que puede variar ligeramente en función de la configuración de su red:
La orden anterior supone que su espacio de direcciones privadas es 192.168.0.0/16 y que el dispositivo que conecta con Internet es ppp0. La
sintaxis se descompone de la siguiente forma:
-t nat -- la regla es para ir a la tabla nat
-A POSTROUTING -- la regla es para añadir (-A) a la cadena POSTROUTING
-s 192.168.0.0/16 -- la regla se aplica al tráfico originado desde la dirección específica
-o ppp0 -- la regla se aplica al tráfico programado para ser enrutado a través del dispositivo de red especificado
-j MASQUERADE -- el tráfico que se ajuste a esta regla «saltará» («jump», -j) al destino MASQUERADE para ser manipulado como se
describió anteriormente
Cada cadena en la tabla de filtrado (la tabla predeterminada, y donde ocurren la mayoría de los filtrados de paquetes) tiene una política
predeterminada de ACCEPT, pero si está creando un firewall además de un dispositivo de pasarela, debería establecer las políticas a DROP o
REJECT, en cuyo caso necesitará habilitar su tráfico enmascarado a través de la cadena FORWARD para que la regla anterior funcione:
Las órdenes anteriores permitirán todas las conexiones que vayan de su red local a Internet, así como el retorno a la máquina que las inició de
todo el tráfico relacionado con esas conexiones.
Herramientas [editar]
Hay muchas herramientas disponibles que pueden ayudarle a construir un completo firewall sin necesidad de conocer iptables en profundidad.
Para los que se inclinan por una solución gráfica, Firestarter es muy popular y fácil de usar, y fwbuilder es muy potente y tiene un aspecto
familiar para aquellos administradores que hayan usado herramientas comerciales de firewall como Checkpoint FireWall-1. Si prefiere una utilidad
de línea de órdenes con archivos de configuración en texto plano, Shorewall es una solución muy potente para ayudarle a configurar un firewall
avanzado para cualquier red. Si su red es relativamente simple, o no dispone de red, ipkungfu le proporcionará un firewall funcional con desde el
principio sin necesidad de configuración, y le permitirá crear fácilmente un firewall más avanzado editando archivos de configuración sencillos y
bien documentados. Otra herramienta interesante es fireflier, diseñado para ser una aplicación firewall de escritorio. Está formada por un
servidor (fireflier-server) y una selección de clientes GUI (GTK o QT), y se comporta de manera muy similar a muchas aplicaciones interactivas de
firewall para Windows.
Logs [editar]
Los registros del firewall son esenciales para reconocer ataques, corregir problemas en las reglas de su firewall, y observar actividades inusuales
en su red. Debe incluir reglas de registro en su firewall para poder activarlos, y las reglas de registro deben aparecer antes de cualquier otra regla
final aplicable (una regla con un objetivo que decide el destino del paquete, como ACCEPT, DROP o REJECT). Por ejemplo,
sudo iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j LOG --log-prefix "NEW_HTTP_CONN: "
Una petición al puerto 80 desde la máquina local, por tanto, podría generar un registro en dmesg con el siguiente aspecto:
Si reiniciara el sistema luego de haber aplicado estas reglas los cambios se perderían. Más que volver a escribir esto cada vez que reinicias, lo
lógico es guardar la configuración y hacer que se aplique automáticamente. Para guardar la configuración puedes usar iptables-save y
iptables-restore.
Fuentes [editar]
https://help.ubuntu.com/community/IptablesHowTo
https://help.ubuntu.com/6.10/ubuntu/serverguide/es/firewall-configuration.html
Esta página fue modificada por última vez el 15:34, 22 abr 2011. Esta página ha sido visitada 45.255 veces.
El contenido está disponible bajo los términos de la Atribución-Licenciar Igual 3.0 Política de protección de datos Acerca de doc.ubuntu-e s Aviso legal
Comandos de IPTables
Una regla pude tener varias condiciones. Existen cinco categorías de condiciones:
• Condiciones genericas: Pueden ser usados en cualquier regla
• Condiciones TCP: Solo pueden ser usados en paquetes TCP
• Condiciones UDP: Solo pueden ser usados en paquetes UDP
• Condiciones ICMP: Solo pueden ser usados en paquetes ICMP
• Otras condiciones: Como condiciones de estado, etc.
Condiciones genéricas
Condiciones TCP
Estas condiciones son específicas del protocolo TCP, por lo tanto solo se pueden usar con paquetes
TCP. Es por ello que previo a especificar cualquiera de estas condiciones se debe especificar la
condición -p tcp.
Condiciones UDP
Para seleccionar paquetes a través de los puertos origen y destino, se hace de la misma forma que con
TCP, la diferencia que se debe anteponer -p udp en lugar de -p tcp
Condiciones ICMP
Condición --icmp-type
Kernel 2.3, 2.4, 2.5 and 2.6
Ejemplo iptables -A INPUT -p icmp --icmp-type 8
Evita el tipo de paquetes icmp que especifiquemos. El del ejemplo es peligroso ya que puede
Explicación
redirigir a lugares peligrosos.
Condiciones explicitas
Condiciones AH/ESP
Condición --ahspi
Kernel 2.5 and 2.6
Ejemplo iptables -A INPUT -p 51 -m ah --ahspi 500
Permite seleccionar paquetes del protocolo AH de IPSEC en base a su SPI (Security Parameter
Index). El SPI es usado en conjunción con la dirección destino, la dirección origen y la clave
Explicación
secreta para establecer una asociación segura.
Se puede seleccionar un rango de SPI's haciendo un intervalo.
Condición --espspi
Kernel 2.5 and 2.6
Ejemplo iptables -A INPUT -p 50 -m esp --espspi 500
Explicación IDEM pero con el protocolo ESP de IPSEC.
Condición --src-range
Kernel 2.4, 2.5 and 2.6
Ejemplo iptables -A INPUT -p tcp -m iprange --src-range 192.168.1.13-192.168.2.19
Selecciona paquetes de ese rango de IPS origen, pudiendo también usarse en forma invertida (ej:
Explicación
iptables -A INPUT -p tcp -m iprange ! --src-range 192.168.1.13-192.168.2.19 )
Condición --dst-range
Kernel 2.4, 2.5 and 2.6
Ejemplo iptables -A INPUT -p tcp -m iprange --dst-range 192.168.1.13-192.168.2.19
Explicación IDEM pero con IPS destino
Condiciones MAC
Condición --mac-source
Kernel 2.3, 2.4, 2.5 and 2.6
Ejemplo iptables -A INPUT -m mac --mac-source 00:00:00:00:00:01
Permite seleccionar paquetes en función a su dirección MAC origen.
Explicación
Esta regla solo puede ser usada en las cadenas PREROUTING, FORWARD and INPUT.
Condiciones de Marca
La marca es un entero de 32 bits que se le puede realizar a ciertos paquetes para luego poder tomar
decisiones con los mismos de acuerdo a estas.
La marca es un campo especial mantenido en el kernel que es asociado a un conjunto de paquetes y
solo es valido en el transcurso en que los paquetes están dentro de la computadora.
Condición --mark
Kernel 2.3, 2.4, 2.5 and 2.6
Ejemplo iptables -t mangle -A INPUT -m mark --mark 1
Permite seleccionar paquetes en función a marcas previamente realizadas dentro de la misma
Explicación
computadora.
Condiciones de dueño
Permite seleccionar paquetes en de acuerdo al UID, GID, PID o SID que los haya creado.
La condición de dueño (owner match) solo se puede usar en la cadena OUTPUT por rasones obvias.
Condición --uid-owner
Kernel 2.3, 2.4, 2.5 and 2.6
Condición --gid-owner
Kernel 2.3, 2.4, 2.5 and 2.6
Ejemplo iptables -A OUTPUT -m owner --gid-owner 0
Permite seleccionar paquetes de un determinado grupo en función de su Group ID (GID).
Explicación Puede usarse para bloquear la salida a internet a todos los usuarios excepto un grupo o solo
permitirles a los miembros del grupo http crear paquetes que salen por el por el puerto http.
Condición --pid-owner
Kernel 2.3, 2.4, 2.5 and 2.6
Ejemplo iptables -A OUTPUT -m owner --pid-owner 78
Permites seleccionar paquetes que un determinado proceso creó en función a su Process ID
Explicación (PID). Se complica su uso si el proceso posee muchos hilos y en este caso se debe manejar con
un script que lea los PID del comando ps.
Condición --sid-owner
Kernel 2.3, 2.4, 2.5 and 2.6
Ejemplo iptables -A OUTPUT -m owner --sid-owner 100
Permite seleccionar paquetes en base a una sesión de un determinado programa en cuestión a
Explicación través del Session ID. El valor del SID de un proceso, es el PID del proceso y todos los procesos
resultantes de este tendrán el mismo SID.
Condiciones de estado
Condición --state
Kernel 2.3, 2.4, 2.5 and 2.6
Ejemplo iptables -A INPUT -m state --state RELATED,ESTABLISHED
Nos permite seleccionar paquetes de acuerdo al estado de su conexión
Existen cuatro tipos de estados en los que puede estar una conexión y sus paquetes asociados.
Estos son:
● ESTABLISHED Significa que el paquete es parte de una conexión existente, que manda
paquetes en ambas direcciones.
● NEW Significa que el paquete iniciará una conexión nueva o es asociado a una conexión
Explicación
a la que todavía no se le ha visto paquetes en ambas direcciones.
● RELATED Significa que el paquete esta creando una nueva conexión asociada a otra
existente conocida. (Ejs: Una transferencia FTP iniciada por una TCP o un paquete
ICMP como resultado de un error en TCP o UDP).
● INVALID Significa que el paquete no se puede asociar a ninguna conexión y lo que
generalmente se hace es un DROP
Condición --tos
Kernel 2.3, 2.4, 2.5 and 2.6
Ejemplo iptables -A INPUT -p tcp -m tos --tos 0x16
Permite seleccionar paquetes en función al campo TOS de la cabecera IP
Esto se puede usar conjuntamente con iproute2 y las marcas previamente descriptas para hacer
un ruteo avanzado (Ej: Se podría marcar paquetes con un determinado TOS y luego con iproute2
Explicación
routerlos por una interfaz mas veloz.)
Los type of services pueden escribirse como números en hexadecimal o escribirse como
nombres sacados de iptables -m tos -h
Condiciones TTL
Condición --ttl
Kernel 2.3, 2.4, 2.5 and 2.6
Ejemplo iptables -A OUTPUT -m ttl --ttl 60
Permite seleccionar paquetes de un determinado tiempo de vida. Esto se usa en muchos caso
Explicación
para debuguear el funcionamiento de una LAN
Targets y Jumps
Los target y jumps deciden que se hará con un paquete que cumpla todas las condiciones que le
hayamos especificado.
Jumps
Con -j podemos hacer saltos a una cadena, que debe previamente haber sido creada si no existe.
ej:
iptables -A INPUT -p tcp -j tcp_packets
Podríamos estar en la cadena INPUT y si el paquete cumple por ejemplo la condición -p tcp saltar a
una cadena previamente creada por nosotros donde hagamos un filtrado refinado de los distintos
paquetes TCP. En este caso se pueden dar dos situaciones: que el paquete se aceptado dentro de la
cadena tcp_packets o bien que alcance el final de la misma sin haber encontrado ninguna condición
que se iguale a la del paquete. En este caso el mismo volverá al la cadena desde la que vino a la
próxima linea donde la abandonó..
Targets
La opción -j también puede usarse para especificar una acción con un paquete que cumple todas
condiciones. Las dos acciones mas comunes son: DROP or ACCEPT (eliminarlo o aceptarlo
Target ACCEPT
Un vez que el paquete cumple la todas las condiciones que hayamos especificado, si usamos la opción
-j ACCEPT el mismo será aceptado y no recorrerá mas reglas de la cadena actual y de ninguna otra de
esa misma tabla. Esto es importante aclararlo ya que el paquete puede ser eliminado en otra tabla.
La forma en que usamos este target es -j ACCEPT.
Target DROP
Un vez que el paquete cumple la todas las condiciones que hayamos especificado, si usamos la opción
-j DROP el mismo será bloqueado y no sera procesado en ningún otra cadena ni tabla.
Esto puede traer como inconveniente dejar sockets muertos y en muchos casos conviene usar el target
REJECT
Este target es usado para reescribir el IP de destino. Por lo tanto, si un paquete cumple todas las
condiciones y este es el target de la regla, este paquete y todos los subsecuentes del mismo flujo, le
serán reescrita su dirección de destino y por lo tanto ruteados a la correspondiente red o host.
Esto es muy útil cuando tenemos un servidor dentro de una LAN con una IP no publicable, ya que le
decimos al firewall que todos los paquetes que reciba él, en el puerto que escucha el servidor, los
reenvie a el IP real y no publicable del servidor. De esta forma desde afuera de la LAN (internet),
pareciera que el servidor tiene como IP, el valor de IP que en realidad tiene nuestro firewall.
Cabe destacar que se puede “dnatear” a un rango de IPS y el firewall tomará una decisión aleatoria a la
hora de decidir a quien enviarle el flujo de paquetes.
El target DNAT solo se puede usar dentro de las cadenas PREROUTING y OUTPUT de la tabla
NAT.
Opción --to-destination
iptables -t nat -A PREROUTING -p tcp -d 15.45.23.67 --dport 80 -j DNAT --to-destination
Ejemplo
192.168.1.1-192.168.1.10
Reescribe la dirección de destino de un paquete y todos los subsecuentes del mismo flujo.
Explicación también es posible reescribir el puerto de destino a otro puerto o a un rango
ej: --to-destination 192.168.1.1:80 ó --to-destination 192.168.1.1:80-100
Since DNAT requires quite a lot of work to work properly, I have decided to add a larger explanation on
how to work with it. Let's take a brief example on how things would be done normally. We want to publish
our website via our Internet connection. We only have one IP address, and the HTTP server is located on
our internal network. Our firewall has the external IP address $INET_IP, and our HTTP server has the
internal IP address $HTTP_IP and finally the firewall has the internal IP address $LAN_IP. The first
thing to do is to add the following simple rule to the PREROUTING chain in the nat table:
Now, all packets from the Internet going to port 80 on our firewall are redirected (or DNAT'ed) to our
internal HTTP server. If you test this from the Internet, everything should work just perfect. So, what
happens if you try connecting from a host on the same local network as the HTTP server? It will simply
not work. This is a problem with routing really. We start out by dissecting what happens in a normal case.
The external box has IP address $EXT_BOX, to maintain readability.
1. Packet leaves the connecting host going to $INET_IP and source $EXT_BOX.
2. Packet reaches the firewall.
3. Firewall DNAT's the packet and runs the packet through all different chains etcetera.
4. Packet leaves the firewall and travels to the $HTTP_IP.
5. Packet reaches the HTTP server, and the HTTP box replies back through the firewall, if that is
the box that the routing database has entered as the gateway for $EXT_BOX. Normally, this
would be the default gateway of the HTTP server. (Recordemos que el paquete llega al server con
destino $HTTP y origen $EXT_BOX. El server responde con destino $EXT_BOX y origen $HTTP.
Como el firewall suele generalmente ser el gateway del server, el paquete de respuesta llega de
vuelta al firewall)
6. Firewall Un-DNAT's the packet again, so the packet looks as if it was replied to from the firewall
itself.
7. Reply packet travels as usual back to the client $EXT_BOX.
Now, we will consider what happens if the packet was instead generated by a client on the same network
as the HTTP server itself. The client has the IP address $LAN_BOX, while the rest of the machines
maintain the same settings.
The simple solution to this problem is to SNAT all packets entering the firewall and leaving for a host or
IP that we know we do DNAT to. For example, consider the above rule. We SNAT the packets entering
our firewall that are destined for $HTTP_IP port 80 so that they look as if they came from $LAN_IP.
This will force the HTTP server to send the packets back to our firewall, which Un-DNAT's the packets
and sends them on to the client. The rule would look something like this:
You think this should be enough by now, and it really is, unless considering one final aspect to this whole
scenario. What if the firewall itself tries to access the HTTP server, where will it go? As it looks now, it
will unfortunately try to get to its own HTTP server, and not the server residing on $HTTP_IP. To get
around this, we need to add a DNAT rule in the OUTPUT chain as well. Following the above example, this
should look something like the following:
Adding this final rule should get everything up and running. All separate networks that do not sit on the
same net as the HTTP server will run smoothly, all hosts on the same network as the HTTP server will be
able to connect and finally, the firewall will be able to do proper connections as well. Now everything works
and no problems should arise.
Target SNAT
El target SNAT es usado para hacer reescribir la dirección de destino. Esto es muy usado cuando
queremos que varios host compartan una sola conexión. De esta forma, todos salen a Internet con la
misma dirección de destino. Cabe aclarar que para hacer esto es necesario activar el bit de forwardeo en
le kernel del host que va a compartir la conexión a internet.
El target SNAT solo es valido dentro de la tabla nat en la cadena POSTROUTING y puede usarse con
la siguiente opción:
Opción --to-source
iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 194.236.50.155-
Ejemplo
194.236.50.160:1024-32000
Reescribe la dirección de destino de los paquetes que cumplan con la condiciónes especificadas,
Explicación a alguna de las direcciones y puertos seleccionados, dentro de los rangos especificados, en forma
aleatoria.
Target MASQUERADE
El target MASQUERADE es usado de la misma forma que SNAT pero no requiere –to-source opción
ya que el mismo fue hecho especialmente para trabajar con conexiones donde se recibe un IP dinámico.
(Ej: Dial-up, ADSL, etc).
En el caso que tengamos un IP estático es mejor trabajar con SNAT ya que MASQUERADE genera
mas carga en el procesador.
Cuando se hace MASQUERADE en una conexión estaremos fijando como dirección de destino la
dirección IP que posee la interfaz por donde están saliendo los paquetes. Por lo tanto usar
MASQUERADE solo es válido en la cadena POSTROUTING. El mismo puede usarse con la siguiente
opción ya explicada en el target SNAT.
Target MARK
Este es usado para asociar paquetes a marcas. El mismo solo es valido en la tabla Mangle.
Las marcas son usadas para poder hacer un ruteo mas avanzado y organizado. Cabe aclarar que la
marca solo es mantenida dentro del host y no se debe esperar que la misma permanezca en un paquete
enviado a otro host, ya que es una asociación que se hace dentro del kernel.
Opción --set-mark
Ejemplo iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 2
A los paquetes que cumplen las condiciones especificadas se les setea un determinado valor de
Explicación
marca. El valor puede ser un número de 32 bits (tenemos para tirar marcas al techo!!)
Target TOS
El target TOS se usa dentro de la tabla MANGLE solo puede tomar una opción y es la descripta a
continuación
Opción --set-tos
Ejemplo iptables -t mangle -A PREROUTING -p TCP --dport 22 -j TOS --set-tos 0x10
Explicación Setea el valor de TOS, el mismo se pasa en numeración hexadecimal
Target TTL
Opción --ttl-set
Ejemplo iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-set 64
Explicación Setea un determinado valor de TTL en los paquetes que cumplen la condición especificada.
Opción --ttl-dec
Ejemplo iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-dec 1
Decrementa un determinado valor de TTL en los paquetes que cumplen la condición
Explicación
especificada.
Opción --ttl-inc
Ejemplo iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-inc 1
Explicación Incrementa un determinado valor de TTL en los paquetes que cumplen alguna condición.
2 ¿Qué es WhatsApp?
WhatsApp messenger Inc., fue fundada por Jan Koronado y por Brian Acton. La
compañía tiene su sede en Silicon Valley.
La aplicación WhatsApp está disponible para los sistemas operativos Windows Phone,
iOS, BlackBerry OS, Android, y los dispositivos que utilizan Symbian de Nokia.
3.1 Protocolo
XMPP es un protocolo abierto basado en el estándar XML para el intercambio en tiempo
real de mensajes y presencia entre dos puntos en Internet. La principal aplicación de la
tecnología XMPP es una plataforma extensible de mensajería y una red de MI
(Mensajería Instantánea).
Características:
• Es libre: XMPP es libre porque no solo se puede ver cómo funciona, sino además
el usuario tiene la libertad de implementarlo él mismo, la libertad de adaptarlo a
sus necesidades, sin necesitar la aprobación de nadie.
Las RFCs que definen el actual protocolo XMPP son las siguientes:
3.2 Arquitectura
Generalmente, XMPP se implementa y se usa como una arquitectura cliente-servidor
descentralizada, pero puede emplearse XMPP para establecer una comunicación directa,
de extremo a extremo peer-to-peer (P2P), entre los clientes.
3.3 Direcciones
Cada entidad XMPP necesita tener su propia dirección, llamada JabberID (JID). La JID
tiene el mismo formato que las direcciones de correo, usuario@dominio.
La ventaja de esto es que es mucho más fácil recordar éste tipo de direcciones que si se
utilizara directamente el protocolo IP. Pero éste formato depende completamente de la
infraestructura del DNS.
Ejemplo:
JID:34999999999@whatsapp.net
Ejemplo XMPP:
Cliente: <stream:stream>
Cliente: <presence/>
Cliente: <iq type="get">
Cliente: <query xmlns="jabber:iq:roster"/>
Cliente: </iq>
Servidor: <iq type="result">
Servidor: <query xmlns="jabber:iq:roster">
Servidor: <item jid="fscavone@uca.edu.py"/>
Servidor: <item jid="jeuzzarru@jeuzzarru.com"/>
Servidor: </query>
Servidor: </iq>
Cliente: <message from="fscavone@uca.edu.py"
Cliente: to="jeuzzarru@jeuzzarru.com">
Cliente: <body>Esto es un mensaje !</body>
Cliente: </message>
.
.
.
Cliente: <presence type="unavailable"/>
Cliente: </stream:stream>
El protocolo TLS es un protocolo para establecer una conexión segura entre un cliente y
un servidor, o entre dos servidores. TLS es capaz de autenticar en ambos lados de la
comunicación, y crea una conexión cifrada entre los dos.
La principal propiedad del protocolo TLS, es ofrecer privacidad e integridad de los datos,
entre dos aplicaciones que se comunican; el protocolo está compuesto por dos capas, el
TLS Record Protocol y el TLS Handshake Protocol.
El TLS Record Protocol ofrece seguridad en las conexiones y el El TLS Record Protocol,
es utilizado para la encapsulación de varios protocolos de nivel superior.
Si las conversaciones no estuvieran cifradas sería muy fácil un ataque y podría hacer
que se interceptaran de forma fácil las conversaciones.
Este tipo de ataques son muy simples, con una herramienta de análisis de redes y
protocolos como puede ser Wireshark, de hecho existe una versión para WhatsApp
llamada WhatsApp Xtract, se puede interceptar una conversación entre dos usuarios.
Si el servidor XMPP tiene habilitada la seguridad TLS, la captura de estos mensajes ya
no es por lo menos tan fácil de conseguir.
SASL provee a XMPP de un método generalizado para la autenticación. Para ello se han
aplicado ciertas normas:
• Si la autenticación SASL se da entre dos servidores, la comunicación no se
establecerá hasta que cada servidor se asegure de la auténtica DNS del otro.
• Si quien quiere autenticarse soporta SASL, deberá incluir el atributo ‘version’ con
el valor ‘1.0’ por lo menos, en la cabecera del stream inicial.
• Si el servidor soporta SASL, deberá informar de sus tipos de autentificaciones con
la etiqueta <mechanisms/> en la contestación de la etiqueta de inicio de sesión,
si es que el cliente soporta la conexión SASL.
• La entidad que pida una autentificación SASL deberá incluir el atributo ‘version’
en la etiqueta de inicio de sesión enviada al servidor con el valor ‘1.0’ como
mínimo.
• Cuando el servidor recibe la etiqueta de inicio de sesión con el atributo ‘version’
deberá comunicar los tipos de autentificación SASL que implementa, cada uno de
ellos irá dentro de un hijo del tipo <mechanisms/>.
• El cliente deberá seleccionar uno de los mecanismos enviando el elemento
<auth/> con un valor adecuado para el mecanismo de autentificación SASL
elegido. Si el cliente debe responder con un elemento vacío, responderá con el
carácter ‘=’, que indicará que la respuesta no contiene datos.
• Si fuera necesario, el servidor enviará el elemento <challenge/> al cliente que
contendrá datos en formato XML, esto dependerá del tipo de autentificación SASL
que el cliente haya elegido.
• El cliente responderá al “desafío” enviando la etiqueta <response/> al servidor.
• Si fuera necesario el servidor enviaría más elementos <challenge/> y el cliente
respondería a los mismos.
Ejemplo de challenge para Whatsapp ya formado que es enviado por el cliente para
finalizar la autenticación:
username="34666666666",
realm="s.whatsapp.net",
nonce="1438536309",
cnonce="E0487DC6-6D1A-4A67-AV70-3299TD89O29A",
nc=00000001,
qop=auth,
digest-uri="xmpp/s.whatsapp.net",
response=b98d50c159a938723d8eb8f3039afab2,
charset=utf-8
Los cinco primeros son los tipos más normales de mensajes en los sistemas XMPP. Los
mensajes ‘jabber:x:oob’ se denominan out-of-band messages, y facilitan un mecanismo
para intercambio de datos directamente entre dos usuarios, estos mensajes usan el
servidor XMPP para intercambiar datos de la conexión entre los dos clientes,
normalmente el usuario que va a servir un fichero enviaría un mensaje de este tipo al
otro cliente con la IP y el puerto al que se debe conectar el cliente que va a descargarse
el fichero. Se pueden enviar etiquetas de ‘oob’ dentro de la extensión ‘x’ de un mensaje
normal, o empaquetadas dentro de un paquete del tipo Info/Query
Queremos destacar como rivales de WhatsApp a LINE y ChatON 2.0. El por qué es fácil,
la primera por ser la que más terreno le ha comido en usuarios a WhatsApp,
posicionándose como una alternativa real y palpable, y ChatOn porque no podemos
obviar que también tiene una importante cuota de usuarios ya que se distribuye con
terminales Samsung, principal fabricante en estos momentos de terminales Android.
Todos ellos tienen sus pros y sus contras, sus defectos y sus virtudes pero sin duda son
tres opciones a tener en cuenta.
Así que vamos a tratar de analizar cuales son las ventajas y las desventajas que tienen
cada uno de ellos.
4.1 WhatsApp
4.1.1 Ventajas
Su principal ventaja se puede decir que es la gran cantidad de usuarios que tiene, es lo
que hace que la aplicación tenga sentido y utilidad. Es un cliente de mensajería
realmente intuitivo, con las opciones justas y necesarias y que es fácil de manejar y
habituarse. Podemos compartir imágenes, vídeos o notas de voz. Crear grupos con
nuestros contactos, se asocia con nuestro número de teléfono y no tenemos que hacer
prácticamente nada para tener agregados más contactos. Es personalizable en muchos
aspectos como los fondos, los tonos y es posible silenciar a contactos y conversaciones.
El hecho de que se encuentre prácticamente en cualquier plataforma móvil es lo que lo
hace realmente indispensable, puesto que no tendremos límites a la hora de
comunicarnos con cualquier persona sin necesidad de que tenga que disponer de una
plataforma determinada. Existe para Android, iOS, Blackberry, Windows Phone y
Symbian. Esta versatilidad sin duda es otro de los puntos fuertes de WhatsApp.
Un servicio que ya está tan extendido, que es raro encontrar alguien que tenga
smartphone y no lo tenga instalado. La entrada de WhatsApp ha supuesto unas
pérdidas millonarias para las operadoras móviles, lo que significa un ahorro más que
considerable para nuestros bolsillos.
Con un sistema tan sencillo, WhatsApp permite generar tráfico cifrado y evitar los
problemas derivados de diseminar millones de contraseñas. Podemos observar que el
sistema de generación de claves es altamente inseguro. Cualquier persona con acceso a
un teléfono ajeno puede obtener su IMEI sin más que pulsar la secuencia *#06#. Un
atacante más sigiloso puede crear una aplicación que filtre ese dato, o bien atacar
directamente a la empresa telefónica y robarle su base de datos de usuarios.
Para rematar la faena, la versión para Android guarda un fichero adicional que funciona
como copia de seguridad (backup). Se supone que ese fichero está cifrado con el
algoritmo AES(Advanced Encryption Standard) mediante una clave de 192 bits. Sólo
hay dos problemillas. El primero es que la clave está insertada en el propio paquete de
software de WhatsApp. Y el segundo es que todos los móviles Android del mundo
utilizan la misma clave. Ni siquiera añaden algún factor dependiente del móvil. Esta es
la clave:
346a23652a46392b4d73257c67317e352e3372482177652c
Si unimos inseguridad a una plataforma bastante inestable, realmente nos queda una
aplicación un poco coja. Últimamente WhatsApp ha tenido bastantes interrupciones en
el servicio.
Otra de las debilidades de WhatsApp es su escasa o nula innovación. La aplicación
prácticamente permanece igual que cuando salió. Sigue cumpliendo con su principal
función, pero habiendo alternativas mucho mejores y con más amplitud de miras lo
único que está sosteniendo a WhatsApp es su enorme cantidad de usuarios.
Una cantidad importante que reclama mejoras y novedades y que WhatsApp no
escucha, cosa que sus perseguidores si que hacen en su amplia mayoría. Disponer de
un cliente para PC, Mac y Linux, llamadas por voip o que se pueda usar tanto en
smartpone como tablet, son algunas de las reclamaciones que muchísimos usuarios han
pedido y de las que no se ha obtenido respuesta.
WhatsApp sigue reinando pero seguido cada vez más cerca por alternativas más
competentes y con más funciones. Quizá se haya acomodado durante este tiempo,
quizá tengan una idea muy concreta de negocio. Lo que está claro es que sigue siendo
la opción principal para muchísimos usuarios y con algunas mejoras puede seguir siendo
el imprescindible que es actualmente.
4.2.1 Ventajas
Son muchas las características que hacen de ChatON un servicio interesante. Además
de las funciones más básicas como son las conversaciones con contactos, compartir
multimedia como fotos, vídeos o voz, también dispone de mensajes animados,
funciones sociales como ranking de amigos con más actividad o un “baúl” virtual donde
encontrar todo aquello que hemos compartido en un grupo. También la función walkie-
talkie es realmente útil y divertida para mantener conversaciones con nuestros
contactos.
Pero sin duda sus puntos más fuertes son tanto el cliente web del que dispone
(https://web.samsungchaton.com/), con el que podemos disfrutar del servicio estemos
donde estemos, y también el hecho de que sea instalable en cualquier dispositivo, ya
sea móvil o tablet. Algo de lo que no se dispone en WhatsApp, y que es realmente
interesante tener. El cliente web permite cierta independencia de uso y el hecho de que
no tengamos limitación alguna para poder usarlo alternando tablet y móvil también
hace que gane muchos puntos a favor. A diferencia del cliente web de WhatsApp
(WebSapp) que funciona pésimamente, cuando funciona.
Es gratuita y muy estable, fácil y bastante intuitiva en el uso normal y disponible tanto
4.2.2 Desventajas
Una de las principales, al igual que todos los clientes de mensajería, es la gran cantidad
de usuarios que utilizan WhatsApp y por tanto convencerles de utilizar una aplicación
diferente. La suerte de ChatON es que viene preinstalado en los terminales Samsung, y
no son pocas las unidades que vende actualmente la compañía, pero aún así muchos
prefieren seguir utilizando WhatsApp.
Pero ChatON también tiene un diseño excesivamente minimalista y sin gran atractivo,
que hace que desmerezca mucho y que las funciones extra que tiene respecto a
WhatsApp queden algo más escondidas. Todo y que es realmente intuitiva, sacarle buen
provecho cuesta algo más y no se le acaba de ver todo el potencial. Es como que vive
eternamente en una fase Beta. Sigue sin cautivar al usuario.
Para muchos también echa para atrás el hecho de que sea Samsung la desarrolladora
de la aplicación, evidentemente como en todo siempre hay quien simpatiza más o
menos con la marca y esto influye mucho a la hora de adoptar una aplicación como
sistema de comunicación habitual.
ChatON en menor medida, también sufre algunos problemas en su plataforma, y sobre
todo los sufre con la sincronización, cosa que le quita estabilidad. El consumo de batería
también se puede ver afectado en cierta medida y así lo manifiestan muchos usuarios
con distintos terminales.
4.3 Line
De todas las alternativas, Line ha crecido rápidamente (89 millones de usuarios, lo cual
amenaza la hegemonía de WhatsApp) con una fórmula simple: diferenciarse del resto.
Los Stickers o iconos han sido una de las piezas fundamentales que han disparado LINE.
Sin duda otra de las bazas con las que juega LINE es el uso de llamadas Voip, algo que
ya tienen otras aplicaciones pero es un extra para esta. No son pocos los que han
adoptado LINE por esta combinación de llamadas, mensajería y otras ventajas. También
hay mucha gente que no termina de adaptarse a ella ya que tiene sus particularidades.
De origen Japonés, y precedida de gran éxito tanto en su tierra como en el resto de
Asia, LINE goza de una plataforma muy estable y gratuito. Se sustenta con pagos in-
app por ejemplo para adquirir más stickers o obtener otras ventajas dentro de la
aplicación. Una fórmula muy interesante y que les está produciendo beneficios sin
sacrificar funciones o añadir publicidad.
4.3.1 Ventajas
Al igual que WhatsApp y ChatON, con LINE disfrutamos también de todas las ventajas
de un cliente de mensajería, con los chats individuales o en grupos (de usuarios
ilimitados), compartir fotos y mensajes de voz, las pegatinas e iconitos divertidos y
unas cuantas funciones dentro de la aplicación como juegos, salas de chat al estilo IRC,
herramientas y una cámara específica con efectos. Muchísimas opciones dentro de la
misma aplicación que la hacen mucho más completa que el resto.
Las llamadas a contactos por medio del Voip es también una de las ventajas más
sonadas de LINE, y es que la palabra gratis es muy potente y el hecho de poder llamar
así (aunque depende de la tarifa de datos que tengas no es tan gratis) la hacen muy
4.3.2 Desventajas
Aunque tiene muchas ventajas, padece una gran desventaja, es el consumo excesivo de
batería, algo que eclipsa a la aplicación.
5 Bibliografía.
http://www.elandroidelibre.com/2013/01/comparativa-de-servicios-de-
mensajeria-line-vs-WhatsApp-vs-chaton-2-0.html
http://www.xmpp.org
http://oriolrius.cat/blog/wp-
content/uploads/2009/10/Oreilly.XMPP.The.Definitive.Guide.May.2009.pdf
http://www.whatsapp.com
http://www.securitybydefault.com/2011/03/whatsapp-y-su-seguridad-
pwn3d.html
https://github.com/venomous0x/WhatsAPI/issues/278
Realizar un ping a la dirección IP que deseemos Consiste en hacer una petición tipo ICMP echo
para analizar el retardo de los paquetes. Una vez (ping) a la dirección IP que queramos pero con
visto el resultado, creamos conexiones TCP falsas una MAC errónea. Esto mediante los comandos
en esa red durante un período de tiempo, Si que nos ofrece ARP, ejemplo:
cuando volvemos a analizar el retardo del ping
vemos que el tiempo en milisegundos aumenta Arp –s [IP] [MAC]
considerablemente, es posible que tengamos un
sniffer en nuestra red. Se sobreentiende que la MAC es falsa, si
posteriormente tecleamos arp –a(muestra el
contenido de la tabla)
4.- SniffDet 1.- PGP (Pretty Good Privacy): Uso de clave pública y clave
privada.
5.- NEPED
2.- SSL (Secure Socked Layer): proporciona autenticación
6.- Promiscan privada en páginas web mediante protocolo https.
Mysql_
Mysql (Versión 5)
Oracle:
Sql Injection.
Un ejemplo de un panel de administración.
Sql Injection.
Sql Injection.
Como realizar un ataque de inyeccion
sql en kali.
En kali linux utilizaremos sql map. En el
comando U escribiremos la direccion de la
pagina web vulnerable ejecutamos y
realizara su trabajo.
Con esto obtendremos el nombre de la
base de SqldatosInjection.
o bases de datos
disponibles.
Sql Injection.
Apuntaremos hacia la base de datos para
obtener las tablas. Al final debemos de
agregar –tables. Ya que eso es nuestro
objetivo.
Sql Injection.
Apuntaremos hacia la base de datos para
obtener las tablas. Al final debemos de
agregar –tables. Ya que eso es nuestro
objetivo.
Apuntaremos hacia la base de datos para
obtener lasSql Injection.
tablas. Al final debemos de
agregar –tables. Ya que eso es nuestro
objetivo. Y la que necesitamos es la del
administrador para acceder al panel de
administrador.
Extraeremos los datos de la tabla
webmaster. Sql Injection.
El comando que se usa es el
siguiente sqlmap u(se refiere a la url)
(pagina vulnerable) –D (datos) –T la tabla –
C (usuario, el de acceso, contraseña la que
se necesita –Dump(extraer datos).
Extraeremos los datos de la tabla
webmaster. Sql Injection.
El comando que se usa es el
siguiente sqlmap u(se refiere a la url)
(pagina vulnerable) –D (datos) –T la tabla –
C (usuario, el de acceso, contraseña la que
se necesita –Dump(extraer datos).
Al finalizar nos indicara un
mensaje Sql
que Injection.
hemos extraido los
datos de la tabla de panel de
administrador.
Sql Injection.
Algunas
formas de
evitar la
Inyección
Escapar los caracteres especiales
SqllasInjection.
utilizados en consultas SQL
Sql Injection.
Otra de las opciones que podemos utilizar para realizar un
análisis de nuestro código es el uso de herramientas que
testeen nuestras aplicaciones en busca de vulnerabilidades
por inyección SQL. Algunas de estas herramientas son:
Sql Injection.
En Junio de 2012, la gran empresa cinematográfica Sony
Pictures Entertainment fue objetivo de
los ciberdelincuentes. El grupo de hackers conocido
como LulzSec se atribuye el robo de datos personales de
un millón de usuarios de Sony Pictures Entertainment, la
división de cine de Sony.
La técnica empleada para perpetrar el ataque es la
conocida como SQL injection, mediante la cual lograron
los datos de más de 1.000.000 de usuarios, incluyendo
contraseñas, direcciones de correo electrónico,
direcciones postales y fechas de nacimiento. También han
podido acceder a detalles de la administración de Sony
Pictures, incluidas las contraseñas, además de 75.000
“códigos de la música” y 3,5 millones de “cupones de la
música”.
Ciberataque SQL injection
Sql Injection.
Datos de Yahoo! expuestos a través de inyección
SQL
Sql Injection.
Anonymous Guatemala ataca sitios web del
gobierno
Muchas gracias
por su atención.
HACKING ÉTICO -
WIFI
Seguridad Informática
Grupo 1
Este proyecto fue desarrollado para brindar las herramientas y técnicas que
los hackers utilizan para la des-encriptación de claves para acceso a redes
inalámbricas con seguridad WEP, WPA y WPA2.
Nota Importante:
En la pantalla de escaneo tomar en cuenta el BSSID y canal de la
red que será atacada
• Sintaxis :
8 8 numero de caracteres en el password de la red.
Sniffers de paquetes
Barridos de ping
Escaneo de puertos
Búsquedas de información en Internet
1.3.2 Ataques de Acceso
Ataques de Acceso
% &
' ! () $
&
* '
&
' '
'
'
+
+
, &
- +
& .
& & %
& ' %
. /
0 '
& ! * "
0. )
&
/
"
"
+
"
. "1 &
' '
".
$
& &
!1 ,1)
,
&
, ! () (,,. (,,.
2 * 31 . ! 21.)
% & &
Seguridad Informática
Clase 2
Licenciatura en Tecnología y Administración de Telecomunicaciones
La Seguridad Informática se refiere a las características y condiciones de
sistemas de procesamiento de datos y su almacenamiento, para garantizar
su confidencialidad, integridad y disponibilidad.
Se debe distinguir entre los dos, porque forman la base y dan la razón, justificación
en la selección de los elementos de información que requieren una atención
especial dentro del marco de la Seguridad Informática y normalmente también
dan el motivo y la obligación para su protección.
Sin embargo hay que destacar que, aunque se diferencia entre la Seguridad de la
Información y la Protección de Datos como motivo u obligación de las actividades
de seguridad, las medidas de protección aplicadas normalmente serán las mismas.
Son estos los Activos de una institución que tenemos que proteger, para evitar su
perdida, modificación o el uso inadecuado de su contenido, para impedir daños
para nuestra institución y las personas presentes en la información.
Las actividades del proceso, tienen que estar integradas en el plan operativo
institucional, donde se define los momentos de las intervenciones y los
responsables de ejecución.