| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia |
| linux:tcpip:iptables [11/11/2016 03:22] – [instrucciones básicas:] mate | linux:tcpip:iptables [19/04/2020 10:37] (actual) – [eliminar] admin |
|---|
| |
| == uso | == uso |
| mantener las conexiones ya establecidas:<code bash># iptables -A INPUT -m commtrack --ctstate RELATED,ESTABLISHED -j ACCEPT</code> | mantener las conexiones ya establecidas, incluso conmigo mismo:<code bash># iptables -A INPUT -m commtrack --ctstate RELATED,ESTABLISHED -j ACCEPT</code> |
| | <code bash># iptables -A INPUT -s 127.0.0.1 -j ACCEPT</code> |
| descartar todos los paquetes entrantes:<code bash># iptables -P INPUT DROP</code> | descartar todos los paquetes entrantes:<code bash># iptables -P INPUT DROP</code> |
| permitir ping entrante:<code bash># iptables -A INPUT -p icmp --icmp-type 8 -s <origen> -d <servidor> -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT -m comment "aceptación PINGs entrantes"</code> | permitir ping entrante:<code bash># iptables -A INPUT -p icmp --icmp-type 8 -s <origen> -d <servidor> -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT -m comment "aceptación PINGs entrantes"</code> |
| permitir conexiones SSH:<code bash># iptables -A INPUT -p tcp --dport 22 -j ACCEPT</code> | permitir conexiones SSH:<code bash># iptables -A INPUT -p tcp --dport 22 -j ACCEPT</code> |
| permitir conexiones OPENVPN:<code bash># iptables -A INPUT -p udp --dport 1194 -j ACCEPT</code> | permitir conexiones OPENVPN:<code bash># iptables -A INPUT -p udp --dport 1194 -j ACCEPT</code> |
| volcar información:<code bash># iptables-save > volcado-iptables</code> | borrar direcciones de red privadas en interfaz pública (IP Spoofing):<code bash> |
| | $ iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j DROP |
| | $ iptables -A INPUT -i eth1 -s 10.0.0.0/24 -j DROP |
| | </code> |
| |
| * [[https://help.ubuntu.com/community/IptablesHowTo]] | * [[https://help.ubuntu.com/community/IptablesHowTo]] |
| |
| === añadir/insertar | === añadir/insertar |
| * añadir regla: | * añadir regla: ''$ iptables -A {INPUT|OUTPUT} -p tcp %%--%%dport <puerto> -j {DROP|ACCEPT}'' |
| * ''$ iptables -A {INPUT|OUTPUT} -p tcp --dport <puerto> -j {DROP|ACCEPT}'' | |
| * insertar regla: ''$ iptables -I {INPUT|OUTPUT} <linea> -s <IP> -j {DROP|ACCEPT}'' | * insertar regla: ''$ iptables -I {INPUT|OUTPUT} <linea> -s <IP> -j {DROP|ACCEPT}'' |
| * borrar direcciones de red privadas en interfaz pública (IP Spoofing): | * ''$ iptables -I <chain> <nº regla> -> insertar'' |
| * ''$ iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j DROP'' | * ''$ iptables -A <chain> <nº regla> -> insertar'' |
| * ''$ iptables -A INPUT -i eth1 -s 10.0.0.0/24 -j DROP'' | |
| |
| === eliminar | === eliminar |
| * borrar regla: ''$ iptables -D {INPUT|OUTPUT} <linea>'' | * borrar regla: ''$ iptables -D {CHAIN} <regla#>'' |
| * borrar regla (por IP): ''$ iptables -D {INPUT|OUTPUT} -s <IP> -j DROP'' | * borrar regla: ''$ iptables -D {CHAIN} -s <IP> -j DROP'' -> ? |
| |
| === save-restore | === save-restore |
| * restaurar reglas: ''$ iptables-restore < mis.reglas'' | * restaurar reglas: ''$ iptables-restore < mis.reglas'' |
| |
| * bloquear: | == bloqueos |
| * IP: ''$ iptables -A INPUT -s 1.2.3.4 -j DROP'' | * IP: ''$ iptables -A INPUT -s 1.2.3.4 -j DROP'' |
| * RED: ''$ iptables -A INPUT -s 192.168.1.0/24 -j DROP'' | * RED: ''$ iptables -A INPUT -s 192.168.1.0/24 -j DROP'' |
| * PUERTO: ''$ iptables -A INPUT -p tcp --dport <puerto> -j DROP'' | * PUERTO: ''$ iptables -A INPUT -p tcp --dport <puerto> -j DROP'' |
| * PUERTO+IP: ''$ iptables -A INPUT -p tcp -s <ip o red> --dport <puerto> -j DROP'' | * PUERTO+IP: ''$ iptables -A INPUT -p tcp -s <ip o red> --dport <puerto> -j DROP'' |
| * IP (de salida): ''$ iptables -A OUTPUT -d <IP o RED> -j DROP'' | * IP (de salida): ''$ iptables -A OUTPUT -d <IP o RED> -j DROP'' |
| * MAC: ''$ iptables -A INPUT -m mac --mac-source XX:XX:XX:XX:XX:XX -j DROP'' | * MAC: ''$ iptables -A INPUT -m mac --mac-source XX:XX:XX:XX:XX:XX -j DROP'' |
| * MAC + PUERTO: ''$ iptables -A INPUT -p tcp --destination-port 22 -m mac --mac-source 00:0F:EA:91:04:07 -j ACCEPT'' | * MAC + PUERTO: ''$ iptables -A INPUT -p tcp --destination-port 22 -m mac --mac-source 00:0F:EA:91:04:07 -j ACCEPT'' |
| * PING: ''$ iptables -A INPUT -p icmp --icmp-type echo-request -j DROP'' | * PING: ''$ iptables -A INPUT -p icmp --icmp-type echo-request -j DROP'' |
| * PING: ''iptables -A INPUT -s 192.168.1.0/24 -p icmp --icmp-type echo-request -j ACCEPT'' | * PING: ''iptables -A INPUT -s 192.168.1.0/24 -p icmp --icmp-type echo-request -j ACCEPT'' |
| * bloquear dominio: | * bloquear dominio: |
| * averiguar IP: ''$ host -t a www.facebook.com'' | * averiguar IP: ''$ host -t a www.facebook.com'' |
| * averiguar el CIDR: ''$ whois <IP> | grep CIDR'' | * averiguar el CIDR: ''$ whois <IP> | grep CIDR'' |
| * ''$ iptables -A OUTPUT -p tcp -d <CIDR> -j DROP'' | * ''$ iptables -A OUTPUT -p tcp -d <CIDR> -j DROP'' |
| * o también con los nombres de dominio: ''$ iptables -A OUTPUT -p tcp -d www.facebook.com -j DROP'' | * o también con los nombres de dominio: ''$ iptables -A OUTPUT -p tcp -d www.facebook.com -j DROP'' |
| * añadir comentarios al LOG: ''$ iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j LOG --log-prefix "IP SPOOFING A:" | * añadir comentarios al LOG: ''$ iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j LOG --log-prefix "IP SPOOFING A:"'' |
| * LOG+limites LOG (elimina spoofing cada 5 minutos en ráfagas de 7 entradas): ''$ iptables -> INPUT -i eth1 -s 10.0.0.0/8 -m limit --limit 5/m --limit-burst 7 -j LOG --log-prefix "IP SPOOFING A:" | * LOG+limites LOG (elimina spoofing cada 5 minutos en ráfagas de 7 entradas): ''$ iptables -> INPUT -i eth1 -s 10.0.0.0/8 -m limit --limit 5/m --limit-burst 7 -j LOG --log-prefix "IP SPOOFING A:"'' |
| |
| /via: [[http://elbauldelprogramador.com/20-ejemplos-de-iptables-para-sysadmins/]] | /via: [[http://elbauldelprogramador.com/20-ejemplos-de-iptables-para-sysadmins/]] |
| | |
| == opciones | == opciones |
| * ''$ iptables -L -v'' -> listar reglas | <code bash> |
| * ''$ iptables -D <chain> <regla>'' -> borrar regla | |
| * ''$ iptables -I <chain> <nº regla> -> insertar | |
| * ''$ iptables -A <chain> <nº regla> -> insertar<code> | |
| $ iptables -A <chain> | $ iptables -A <chain> |
| -p [tcp|upd] | -p [tcp|upd] |