● INPUT. Todo aquel tráfico que viene desde fuera hacia nuestro servidor. ● OUTPUT. Todo tráfico originado desde nuestro servidor hacia fuera. ● FORWARD. Todo tráfico que viaja en nuestro servidor y posteriormente es redireccionado, similar al concepto de un router. RESET IPTABLES TO SETTINGS DEFAULT # IPv6 ## ## set default policies to let everything in ip6tables --policy INPUT ACCEPT; ip6tables --policy OUTPUT ACCEPT; ip6tables --policy FORWARD ACCEPT; ## ## start fresh ip6tables -Z; # zero counters ip6tables -F; # flush (delete) rules ip6tables -X; # delete all extra chains # IPv4 ## ## set default policies to let everything in iptables --policy INPUT ACCEPT; iptables --policy OUTPUT ACCEPT; iptables --policy FORWARD ACCEPT; ## ## start fresh iptables -Z; # zero counters iptables -F; # flush (delete) rules iptables -X; # delete all extra chains Set accept all policy to all connections iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT List Rules as Tables iptables -L -L: Lista de reglas. -V: Muestra información detallada. Esta opción hace que el comando de la lista muestra el nombre de la interfaz, las opciones de la regla, y las máscaras TOS. Los contadores de bytes y de paquetes también están en la lista, con 'K' el sufijo 'M' o 'G' para 1000, 1.000.000 y multiplicadores de 1,000,000,000, respectivamente. -N: la dirección IP y el puerto de visualización en formato numérico. No utilizar DNS para resolver nombres. Esto acelerará la lista. Para inspeccionar firewall con los números de línea, escriba: #iptables -n -L -v --line-numbers List Specific Chain iptables -S TCP (chain) LIST RULES NUMERIC-NUMBER/DELETE # # # # # iptables iptables iptables iptables iptables -L -L -L -L -L --line-numbers INPUT -n --line-numbers OUTPUT -n --line-numbers OUTPUT -n --line-numbers | less OUTPUT -n --line-numbers | grep 202.54.1.1 Delete rule by number #iptables -D INPUT N [ <-- Number rule ] O buscar IP de origen 202.54.1.1 y eliminar del dominio: # iptables -D INPUT -s 202.54.1.1 -j DROP -D: Eliminar una o más reglas de la cadena seleccionada FLUSH CHAIN #SINGLE iptables -F INPUT #ALL iptables -F Coloque las reglas del cortafuegos Para insertar una o más reglas en la cadena seleccionado como el número de la regla dada, utilice la siguiente sintaxis. En primer lugar saber los números de línea, escriba: # Iptables-L INPUT-n - line-numbers Salidas de la muestra: Chain INPUT (policy DROP) num target prot opt source 1 DROP all -- 202.54.1.1 2 ACCEPT all -- 0.0.0.0/0 state NEW,ESTABLISHED destination 0.0.0.0/0 0.0.0.0/0 Para insertar la regla entre el 1 y 2, escriba: # iptables -I INPUT 2 -s 202.54.1.2 -j DROP Para ver las reglas actualizadas, escriba: # iptables -L INPUT -n --line-numbers Salidas de la muestra: Chain INPUT (policy DROP) num target prot opt source 1 DROP all -- 202.54.1.1 2 DROP all -- 202.54.1.2 3 ACCEPT all -- 0.0.0.0/0 state NEW,ESTABLISHED SAVE RULES destination 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 # service iptables save BLOQUEAR/ACEPTAR TRÁFICO Bloquear iptables Bloquear iptables Bloquear iptables tráfico entrante -P INPUT DROP tráfico saliente -P OUTPUT DROP tráfico reenviado -P FORWARD DROP Aceptar tráfico entrante iptables -P INPUT ACCEPT Aceptar tráfico saliente iptables -P OUTPUT ACCEPT Aceptar tráfico reenviado iptables -P FORWARD ACCEPT Guardar las reglas del cortafuegos Para guardar las reglas de firewall en CentOS / RHEL / Fedora Linux, escriba: # service iptables save En este ejemplo, colocar un IP y guarda las reglas de firewall: # iptables -A INPUT -s 202.5.4.1 -j DROP # service iptables save Para el resto de distros utilizar el comando iptables-save: # iptables-save > /root/my.active.firewall.rules # cat /root/my.active.firewall.rules Reglas de restaurar el cortafuegos Para restaurar las reglas del cortafuegos formar un archivo llamado / root / my.active.firewall.rules, escriba: # iptables-restore < /root/my.active.firewall.rules Para restaurar las reglas del firewall en CentOS / RHEL / Fedora Linux, escriba: # service iptables restart El bloqueo de una dirección IP (direcciones IP bloqueadas) # iptables -A INPUT -s 1.2.3.4 -j DROP # iptables -A INPUT -s 192.168.0.0/24 -j DROP bloquear las solicitudes de puertos entrantes (BLOQUE DE PUERTO) # iptables -A INPUT -p tcp --dport 80 -j DROP # iptables -A INPUT -i eth1 -p tcp --dport 80 -j DROP Para bloquear el puerto 80 sólo para una dirección IP 1.2.3.4, escriba: # iptables -A INPUT -p tcp -s 1.2.3.4 --dport 80 -j DROP # iptables -A INPUT -i eth1 -p tcp -s 192.168.1.0/24 --dport 80 -j DROP Bloque de direcciones IP de salida Para bloquear el tráfico saliente a un host en particular o de dominio, como cyberciti.biz, escriba: # host -ta cyberciti.biz Salidas de la muestra: cyberciti.biz tiene la dirección 75.126.153.206 Anote su dirección IP y escriba lo siguiente para bloquear todo el tráfico saliente a 75.126.153.206: # iptables -A OUTPUT -d 75.126.153.206 -j DROP Puede utilizar una subred de la siguiente manera: # iptables -A OUTPUT -d 192.168.1.0/24 -j DROP Bloque de dominio En primer lugar, saber todas las direcciones ip de facebook.com, escriba: # host -ta www.facebook.com Salidas de la muestra: www.facebook.com tiene la dirección 69.171.228.40 Buscar CIDR para 69.171.228.40, escriba: # whois 69.171.228.40 | grep CIDR Salidas de la muestra: CIDR: 69.171.224.0/19 Para prevenir el acceso externo a www.facebook.com, escriba: # iptables -A OUTPUT -p tcp -d 69.171.224.0/19 -j DROP También puede usar el nombre de dominio, escriba: # iptables -A OUTPUT -p tcp -d www.facebook.com -j DROP # iptables -A OUTPUT -p tcp -d facebook.com -j DROP Bloquear o Permitir solicitud de ICMP Ping Escriba el siguiente comando para bloquear las solicitudes de ping ICMP: # iptables -A INPUT -p icmp --icmp-type echo-request -j DROP # iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP Respuestas Ping también puede estar limitada a ciertas redes o hosts: # iptables -A INPUT -s 192.168.1.0/24 -p icmp --icmp-type echorequest -j ACCEPT A continuación sólo acepta tipo limitado de peticiones ICMP: ### ** assumed that default INPUT policy set to DROP ** ############# iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT ## ** all our server to respond to pings ** ## iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT Open Range de Puertos Utilice la siguiente sintaxis para abrir un rango de puertos: iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000:7010 -j ACCEPT Caída o aceptar tráfico de direcciones de Mac Utilice la siguiente sintaxis: # iptables -A INPUT -m mac --mac-source 00:0F:EA:91:04:08 -j DROP ## *only accept traffic for TCP port # 8080 from mac 00:0F:EA:91:04:07 * ## iptables -A INPUT -p tcp --destination-port 22 -m mac --mac-source 00:0F:EA:91:04:07 -j ACCEPT