Last active
February 17, 2019 02:49
-
-
Save alphanetEX/6490e0f465a56e06819582a6ab46f6c5 to your computer and use it in GitHub Desktop.
IP%Tables
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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