HABLEMOS DE IPTABLES EN TU RASPBERRY PI CON KALI LINUX

Antes de empezar este post quisiera aclarar que mi pagina web estará activar hasta que termine todos mis experimento con los servidores.

El otro día conversaba con la gente de la EKOSPACE y revisaron mi servidor que estaba protegido en muchos niveles y se me ocurrió comentarle sobre el tema de IPTABLES en el cual me explico sobre su función pero era un tema largo que llegue a casa y comencé a buscar sobre ese tema y hoy les comentare lo básico sobre esta herramienta.

Puedes encontrar más información en WIKIPEDIA AQUÍ

Que es IPTABLES?

Iptables permite filtración de paquetes, traducción de direcciones de red y modificación del encabezado de los paquetes.

Dos de los más comunes usos de iptables son dar soporte para cortafuegos y NAT.

iptables trabaja en las tres capas.
capa 2: Enlace de datos (mac-addres)
capa 3: Red (Protocolo IP)
capa 4: Transporte (TCP/UDP/ICMP)

Ver la configuración actual

Para ver qué reglas ya están configuradas, utilice este comando:

  iptables -L

La salida será similar a la siguiente:

 
 Chain INPUT (policy ACCEPT)
 target     prot opt source               destination

 Chain FORWARD (policy ACCEPT)
 target     prot opt source               destination

 Chain OUTPUT (policy ACCEPT)
 target     prot opt source               destination

Esto permite a cualquiera el acceso de lo que sea a donde sea.

Para proteger tu maquina y tu red hay que conocer a iptables. IPTABLES tiene tres tapas.
– La primera tabla: Es una tabla por default por lo general se enfoca en el filtrado de paquete, de detener, permitir o redireccionar.

Cada tabla tiene cadena diferente. Por ejemplo:
Cadena INPUT.
Cadena FORWARD.
Cadena OUTPUT.

Veamos la tabla NAT.
Para verlo tenemos que usar el siguiente comando:

iptables -t nat -L

Screenshot from 2016-06-06 21-42-48
otra tabla mejor y su nombre es mangle

 iptables -t mangle -L

Screenshot from 2016-06-06 21-45-36

es más compleja y combina las dos tablas, ademas tiene muchas más funciones.

HAGAMOS UNA DEMOSTRACIÓN

Escaneamos con nmap para saber que nos dicen.

Screenshot from 2016-06-06 21-52-37

El resultado es que tenemos abierto nuestro puerto 22. Pero con nuestra herramienta iptables lo que vamos hacer es prevenir es cuidar nuestro puerto 22 SSH.
El siguiente comando:

 

 iptables -A INPUT -p tcp --dport 22 -j DROP

Colocamos iptables el comando de la herramienta -A Añadir al nombre de la cadena INPUT -p seria por el protocolo “TCP” –dport sera el puerto que usaremos para bloquear -j decisión y DROP
Screenshot from 2016-06-06 22-00-31
Y si lo llegamos a escanear nos daremos cuenta que estará filtrado nuestro puerto 22.
Screenshot from 2016-06-06 22-02-57

Para poder borrar la ejecución que hicieron lo pueden hacer con el siguiente comando.

 

 iptables -F

Screenshot from 2016-06-06 22-07-16
Hagamos un RANGO DE PUERTOS con el siguiente comando

 iptables -A INPUT -p tcp --dport 1:1024 -j DROP

Lo que dice es colocar iptables de la herramienta -A añadimos INPUT -p seleccionamos el protocolo tcp –dport seleccionamos desde 1 al 1024 -j decisión DROP
Screenshot from 2016-06-06 22-11-52
Lo que ha hecho es bloquear todo el trafico TCP 1 al 1024
Screenshot from 2016-06-06 22-14-54

HAGAMOS AHORA PERMITIR SOLO NOSOTROS ACCESO.Y lo que haremos es hacer que iptables niegue todo.

Siguiente comando

 iptables -P INPUT DROP
iptables -P OUTPUT DROP

Esto lo que pasa es que hemos perdido acceso a la conexión de Internet entonces nmap no nos detecta.
Esto sucede porque los puertos ida y salida están bloqueados.

AHORA LO QUE HAREMOS ES REGENERAR EL TRAFICO SI ES QUE NOSOTROS QUEREMOS.
Con el siguiente comando.

 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

pero aun no tenemos Internet.
Corregiremos eso.

 iptables -A OUTPUT -m state --state NEW,RELATED -j ACCEPT

Pero solo hemos permitido al acceso solo una vez un saludo pero no permitió seguir recibiendo.

iptables -A OUTPUT -m state --state NEW,RELATED -j ACCEPT

Pero veamos la linea de proyección

iptables -L --line-numbers

ahora modificaremos eso.

iptables -R OUTPUT 1 -m state --state NEW,ESTABLISHED -j ACCEPT

Y ahora tenemos internet.

Con la opción (-m) iptables es capaz de darle seguimiento al trafico aun este allá dejado el firewall mediante los flags del saludo 3 vías (3 way handshake) SYN,SYN-ACKL,ACK
Pero que pasa si lo escaneamos con NMAP. No muestra nada porque tu maquina esta protegida.

 

PARA PODER GUARDAR LOS DATOS MODIFICADO SERIA.

 

 iptables-save > cread.txt

Si llegamos a borrar lo modificado podemos recuperar con el archivo .txt regenerar la configuración guardada.

 iptables-restore < cread.txt

Y listo puedes recuperar la configuración anterior.

Ahora hagamos por default en iptables

iptables -A : Añadir
iptables -R : Remover
iptables -I : Insertar
iptables -z : Para resetear los contadores.
iptables -n : para crear una cadena nueva
iptables -x : para remover una cadena.
iptables -N LOGGIN

Inmeditamente nos crea una cadena nueva.
Ahora lo que haremos es usar el log

 service rsyslog status

Screenshot from 2016-06-06 22-51-58
para verificar si esta corriendo.
Ahora que te he mostrado sobre las cadenas, veamos a ver un comando.

iptables -X INPUT -p tcp --dport 22 -j DROP

Esta bloqueando el trafico, no importa de donde venga ni hace donde vaya ya sea ssh lo va a tumbar. También puede usar otro comando que cumple la misma función como.

iptables -A INPUT -j DROP -p tcp --dport 22

Hagamos una inversion con el siguiente comando.

 iptables -A INPUT -s 192.168.1.2 -j DROP

Lo que pasa es que si hacemos un ping al firewall no nos va a contestar.
Ahora hagamos tener acceso a una maquina que seria el administrador.

 iptables -A INPUT ! -s 192.168.1.2 -j DROP

Y ahora vemos que tenemos conexión.
Ahora veamos si tu jefe te pide que bloquee los puertos del 1 al 5

 iptables -A INPUT -p tcp --dport 1:5 -j DROP

Ahora vamos a ver con los puertos seleccionado.

 iptables -A INPUT -m multiport -p tcp --dport 21,66,455 -j DROP

Ahora haremos con la MAC

 iptables -A INPUT -m mac --mac-source (MAC) -j DROP

La mac sera de tu maquina que corre el servidor.

Ahora veremos los mensajes en la siguiente ruta

cd /var/log
tail messages

Screenshot from 2016-06-06 23-12-28

cat messages

Nos muestra toda la información.
Ahora veremos las evidencia de las conexiones

 iptables -A INPUT -p icmp -j LOG

Si la victima usa un ping veremos lo que corre.

 watch tail messages

Screenshot from 2016-06-06 23-17-15
Fijate que inmediatamente sale información del destino que se hace ese trafico.
Para ver las conexiones pero en la mejor manera.

 iptables -A INPUT -icmp -j LOG --log-prefix "HACKINEDO PING"

Guardar las conexiones de los puertos

 iptables -A INPUT -m multiport -p tcp --dport 21,22,23 -j LOG --log-prefix "INTENTO DE CONEXION"

Si alguien intenta ingresar al puerto ssh podrás capturarlo.
Para verlo con el texto seria

 grep INTENTO messages

Screenshot from 2016-06-06 23-32-47

Para defiinir interfaces

 iptables -A INPUT -i eth0 -j DROP

Para todas tus eth

 iptables -A INPUT -i eth+ -j DROP

Bueno espero haberte ayudado con este pequeño tutorial y no te olvides de compartirlo con tus amigos.
GRACIAS