Skip to content

Instantly share code, notes, and snippets.

@alphanetEX
Last active February 17, 2019 02:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alphanetEX/6490e0f465a56e06819582a6ab46f6c5 to your computer and use it in GitHub Desktop.
Save alphanetEX/6490e0f465a56e06819582a6ab46f6c5 to your computer and use it in GitHub Desktop.
IP%Tables
Tipos de filtros o Tablas
iptables -L //un filtrador sencillo
iptables -t nat -L //muestra el filtro de Traducción de direcciones de red
iptables -t mangle -L //adjunta las dos anteriores tablas
estructura del filtrador sencillo
INPUT //paquetes de entrada
FORWARD //paquetes que se redirigen
OUTPUT //paquetes de salida
-----------------------------herramientas de para testear con iptables---------------------------------------------------
nmap // nmap puede ver los puertos bloqueados o utilizados por el host solicitado
nmap 10.0.0.32 // se hace un escaneo al host
si en caso alguno de los puertos esta en modo 'filtered', entonces estan gestionados por algun firewall
-ping
-arp // para obtener la direccion mac
-ifconfig
----------------------------comandos utilizados durante la gestion de iptables--------------------------------------------
nano /var/log/messages //muestra los mensajes que ocurrienron en linux
tail messages //log de mensajes de iptables
watch tail messages //ver en tiempo real los mensajes
grep Intento messages //buscar cierta sintaxis en el log
watch tail messages /var/log/auth.log //ver el log de mensajes de iptables y el log de ssh
-----------------------------------------------sintaxis basica de iptables-------------------------------------------------
<binario><primera-opcion><cadena que se va a modificar>
Lista de letras utilizadas en la sintaxis de iptables
-L: lista de reglas
-v: Despliega información detallada
-A: Anadir una nueva regla
-n: Muestra la dirección IP y el puerto del formato numérico. //para leerlo bien
-j: Salta a
-R: Remover
-I: Insertar
-Z: resetear los contadores
-N: crear una cadena nueva
-X: remover una cadena
-p: protocolo
-P: Políticas
-s: (source)origen
-d: destino
-m: mach (que coincida con cierta característica para que x regla pueda ser afectada ya sean flags u otros parámetros )
-i: interfaces
-F: Flush //limpiar
--dport: destination port
Comandos de entrada basicos
iptables -L -n -v --line-numbers // inspeccionar el firewall con línea de números
iptables -L INPUT -n -v // entrada de direcciones IP
iptables -L INPUT -n -v --line-numbers // entrada de direcciones IP con línea de números
iptables -F // limpia las reglas del firewall
iptables -P INPUT DROP; sleep 10s; iptables -P INPUT ACCEPT // Deshabilitar todas las entradas, esperar 10s y habilitarlas
iptables -A INPUT -p tcp --dport 22 -j ACCEPT // Permitir acceso a paquetes desde un puerto especifico (puerto 22)
iptables -A INPUT -s 192.168.0.1/24 -j ACCEPT // Permitir acceso a paquetes desde la red LOCAL (todas las ip privadas)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT // Regla para que entren los paquetes a través de conexiones establecidas o relacionadas (como por ejemplo, HTTP).
Comandos de entrada intermedios
iptables -P INPUT ACCEPT //acepta cualquier paquete
iptables -P INPUT DROP //rechaza cualquier paquete
iptables -A INPUT -s 10.0.0.0/24 -j ACCEPT //acepta cualquier paquete de nuestra red local
iptables -A INPUT -p tcp --dport xxxx -j ACCEPT // acepta paquetes del puerto asignado en 'xxxx'
iptables -A INPUT -p tcp --dport xxxx -j DROP // deniega paquetes al puerto asignado en 'xxxx'
iptables -A INPUT -p tcp --dport x:xxxx -j DROP // bloquea de puerto de inicio 'x' al puerto final :'xxxx'
iptables -D INPUT 1 // borrar la regla 1 de input 'Utilizar el --line-numbers para identificar el numero'
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT // permitir trafico si en caso dicho host envio la trama
iptables -A OUTPUT -m state --state NEW,ESTABLISHED -j ACCEPT // permitir trafico si en caso dicho host envio la trama en output
iptables -R OUTPUT 1 -m state --state NEW, ESTABLISHED -j ACCEPT // editar la línea 1 para que acepte todas las tramas de salida 'Utilizar el --line-numbers para identificar el numero'
iptables -N LOGGIN //crear una nueva cadena ("Filtros").
iptables -X LOGGIN //elimina las cadenas ("Filtros").
Comandos avanzados ------------------------------xxxxxxxxxxxxxxxxxxxxxxxxxx
iptables -A INPUT -s 192.168.1.7 -m state --state NEW -j DROP // bloquea la direccion ip del host y solo el server tendra acceso a dicho host
iptables -A INPUT -p tcp --dport 22 -j DROP // bloquea el trafico en el puerto '22' ssh
iptables -A INPUT -j DROP -p TCP --dport 22 // otra forma de ingresarlo, la verdad iptables es bien flexible con sintaxis
iptables -A INPUT -m multiport -p tcp --dport 22,80,443 -j DROP // bloquea multiples puertos ya sea el 21,80 y 443
iptables -A INPUT -p icmp -j LOG //guardara la informacion en el log de los eventos que ocurran en el icmp
iptables -A INPUT -p icmp -j LOG --log-prefix "PING intervenido" // se guarda en el log la información que venga de cualquier dirección IP
iptables -A INPUT -m multiport -p tcp --dport 1996,22,23 -j LOG --log-prefix "Intento de conexion" // se guarda en el log todos los registros de conecxion de los puertos 21,1996 y 23
iptables -A INPUT -i eth0 -j DROP //bloquear la interface ethernet 0
iptables -A INPUT -i eth+ -j DROP //bloquea todas las interfaces que coincidan con eth
iptables -A INPUT ! -s 10.0.0.6 -j DROP // bloquea todas las ip a exepcion de esta
------filtrado de MAC address de capa 2 del modelo OSI ----
iptables -A INPUT -m mac --mac-source 00:0c:29:2f:26:8f -j DROP //bloquear el host de ese dispositivo desde la MAC address
---------------------------------------------guardar las configuraciones en los filtros------------------------------------
nano /etc/iptables.test.rules // create a .bin to save rules
iptables-restore < /etc/iptables.test.rules // Activate the new rules
iptables-save > /etc/iptables.test.rules // guarda la informacion temporalmente en bin bash
nano /etc/network/if-pre-up.d/iptables // se crea un archivo.bin dendo de el directorio network
/*
#!/bin/bash
/sbin/iptables-restore < /etc/iptables.test.rules
*/
chmod +x /etc/network/if-pre-up.d/iptables //cambiarle los permisos al archivos
/*La Información es poder, Pero como todo poder, hay algunos que buscan quedárselo para ellos mismos*/
/*Aaron Swartz*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment