=iptables
== uso
mantener las conexiones ya establecidas, incluso conmigo mismo:# iptables -A INPUT -m commtrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# iptables -A INPUT -s 127.0.0.1 -j ACCEPT
descartar todos los paquetes entrantes:# iptables -P INPUT DROP
permitir ping entrante:# iptables -A INPUT -p icmp --icmp-type 8 -s -d -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT -m comment "aceptación PINGs entrantes"
permitir conexiones SSH:# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
permitir conexiones OPENVPN:# iptables -A INPUT -p udp --dport 1194 -j ACCEPT
borrar direcciones de red privadas en interfaz pública (IP Spoofing):
$ 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
* [[https://help.ubuntu.com/community/IptablesHowTo]]
== instrucciones básicas:
=== status
* listado reglas: ''$ iptables -L {INPUT|OUTPUT} -n -v --line-numbers''
=== añadir/insertar
* añadir regla: ''$ iptables -A {INPUT|OUTPUT} -p tcp %%--%%dport -j {DROP|ACCEPT}''
* insertar regla: ''$ iptables -I {INPUT|OUTPUT} -s -j {DROP|ACCEPT}''
* ''$ iptables -I -> insertar''
* ''$ iptables -A -> insertar''
=== eliminar
* borrar regla: ''$ iptables -D {CHAIN} ''
* borrar regla: ''$ iptables -D {CHAIN} -s -j DROP'' -> ?
=== save-restore
* guardar reglas: ''$ iptables-save > mis.reglas''
* restaurar reglas: ''$ iptables-restore < mis.reglas''
== bloqueos
* IP: ''$ iptables -A INPUT -s 1.2.3.4 -j DROP''
* RED: ''$ iptables -A INPUT -s 192.168.1.0/24 -j DROP''
* PUERTO: ''$ iptables -A INPUT -p tcp --dport -j DROP''
* PUERTO+IP: ''$ iptables -A INPUT -p tcp -s --dport -j DROP''
* IP (de salida): ''$ iptables -A OUTPUT -d -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''
* 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''
* bloquear dominio:
* averiguar IP: ''$ host -t a www.facebook.com''
* averiguar el CIDR: ''$ whois | grep CIDR''
* ''$ iptables -A OUTPUT -p tcp -d -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:"''
* 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/]]
== opciones
$ iptables -A
-p [tcp|upd]
--dport [mysql]
-j [ACCEPT|REJECT]
-s xxx.xxx.xxx.xxx
-m state
---state NEW,[STABLISHED]