Post on 25-Jan-2016
Iptables
Introduccion Comandos Basicos
Ejemplos
Iptables
Que es un Firewall?
Básicamente podríamos decir que un Firewall es un dispositivo, ya sea por hardware o por software, que actúa de intermediario entre varias redes (al menos 2), dependiendo del tipo de configuración que posea, es que dejara pasar, salir o entrar determinado trafico. Es un elemento de seguridad importante, ya que con el mismo podremos
especificar todo el trafico que deseemos denegar o permitir, y de esta manera tener un mejor control sobre lo que ingresa o sale de nuestra red.
Iptables
Que es Netfilter e Iptables?Netfilter es un Framework disponible en el núcleo linux, su principal función es el manejo de los paquetes ip, pudiendo
manipular los mismos. Además bajo este nombre también se encuentra el proyecto que provee de herramientas libres para
Firewalls basados en Linux, y aquí es donde aparece Iptables, una de las herramientas mas importantes, la misma
permite filtrar paquetes, hacer NAT (Network Address Translation) y mantener registros (Logs), es una herramienta
muy potenete. Anteriormente hasta el kernel 2.4, se encontraban las herramientas ipfwadm e ipchains, las cuales filtraban los paquetes y realizaban NAT, pero con la aparicion de Netfilter se comenzó a realizar packet filtering (filtrado de
paquetes), connection tracking (seguimiento de conexiones) y Network Address Translation (NAT o traducción de
direcciones de red), mejorando notablemente el desempeño del firewall.
Iptables
Politicas de un Firewall:
Denegar Todo
Aceptar Todo
Iptables
Trabaja a nivel de capa 3 de OSI
Pose tablas que se dividen en filter,nat,mangle,raw
Iptables
Nat: Esta tabla es la responsable de configurar las reglas de reescritura de direcciones o de puertos de
los paquetes. El primer paquete en cualquier conexión pasa a través de esta tabla; los veredictos determinan
como van a reescribirse todos los paquetes de esa conexión
Iptables
Filter: Esta tabla es la responsable del filtrado (es decir, de bloquear o permitir que un paquete continúe su camino). Todos los paquetes pasan a través de la
tabla de filtros.
Iptables
Mangle : Esta tabla es la responsable de ajustar las opciones de los paquetes, como por ejemplo la calidad de servicio. Todos los paquetes pasan por esta tabla. Debido a que está diseñada para efectos avanzados,
contiene todas las cadenas predefinidas posibles
Iptables
Cadenas
Input: Todo lo que entra.
Output: Todo lo que sale
Forward: Todo lo que pasa, pero tiene como direccion otro destino.
Prerouting: Lo que se va a realizar antes de enviar el paquete.
Postrouting: Lo que se va a realizar inmediatamente después de enviar el paquete.
Iptables
.
.
Iptables
Opciones Generales:-t : tabla a utilizar, por defecto filter
-j : al final , dado que especifica objetivo-p: indica protocolo
-s: ip origen-d: ip destino
--dport: puerto destino--sport: puerto origen
Iptables
Listar Reglas:
Iptables -L (solo lista filter con cadenas)Iptables -t filter -L
Iptables -t filter -L –line-numbers (lista con numeros)
Iptables
Borrar Reglas:
Iptables -F (borra solo filter)Iptables -t nat -F ( solo borra nat)
Iptables -t mangle -F (solo borra mangle)
Iptables
Agregando una regla basica:
Iptables -A INPUT -p icmp -j DROP (no deja pasar ICMP)Iptables -D INPUT -p icmp -d DROP (borra la regla
anterior)
Iptables
Reemplazando:
Iptables -R INPUT 1 -p icmp -J ACCEPT
Otro:Iptables -t nat -A POSTROUTING -i eth0 -s 192.168.1.0/24 -j MASQUERADE (original)
Iptables -t nat -R POSTROUTING 1 -i eth1 -s 192.168.1.0/24 -j MASQUERADA (reemplazo)
Iptables
Logs : -A INPUT -p tcp -m limit --limit 3/min -j LOG --log-
prefix "FIREWALL: " --log-level 6-A INPUT -p udp -m limit --limit 3/min -j LOG --log-
prefix "FIREWALL: " --log-level 6
Iptables
Guardando reglas:/etc/sysconfig/iptables
O Iptables-save
Al reiniciar el servicio carga el archivo de arriba
Carga las regas del archivo reglasIptables restore < reglas
Iptables
Algunos ejemplos de filtrado mas usados:
Por protocolo (TCP, UDP, ICMP)Por Puerto (tanto de origen como destino)
Por dirección (tanto de origen como destino)Por interfaz
Por estado de conexión
Iptables
Por protocolo:iptables -A INPUT -p TCP -j ACCEPTiptables -A INPUT -p UDP -j DROPiptables -A INPUT -p ICMP -j DROPiptables -A OUTPUT -p all -j DROP
iptables -A FORWARD -p ! TCP -j DROP
Iptables
Por Puerto:iptables -A OUTPUT -p tcp --dport 80 -j DROPiptables -A INPUT -p tcp --dport ! 22 -j DROP
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 5492 -j DNAT --to-destination 192.168.4.11:80
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 5021 -j DNAT --to-destination 192.168.4.10:22
Iptables
Por dirección:iptables -A FORWARD -d www.google.com.ar -j DROP
Iptables
Por dirección:iptables -A FORWARD -d www.google.com.ar -j DROP
iptables -A FORWARD -s 192.168.1.101 -d 192.168.5.1 -j DROP
aquí tenemos otro ejemplo, en este caso se le esta denegando todo el trafico proveniente
de 192.168.1.101 con destino 192.168.5.1.
Iptables
Por Interfaz:iptables -A INPUT -i lo -p icmp -j DROP (aca estoy
denegando el ping a la interfazlocalhost, -i para INPUT)
iptables -A OUTPUT -o eth0 -p icmp -j DROP (igual que arriba pero -o para OUTPUT)
Iptables
Por estado:Las opciones para filtrar las conexiones por estado son:
INVALID: una dirección desconocida.ESTABLISHED: conexión ya establecida.
NEW: conexión que recién se esta creando.RELATED: asocia una conexión a otra existente.
Iptables
iptables -A FORWARD -m state --state NEW -s 192.168.30.102 -p tcp --dport 1:24 -j
DROP (se deniegan las conexiones nuevas para los puertos del 1 al 24)
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
aceptan conexiones relacionadas y establecidas)
Iptables
Estableciendo políticas:
iptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPTiptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
Se establecen políticas ACCEPT para las tablas filter y nat.
Iptables
Por Interfaz:iptables -A INPUT -i lo -p icmp -j DROP (aca estoy
denegando el ping a la interfazlocalhost, -i para INPUT)
iptables -A OUTPUT -o eth0 -p icmp -j DROP (igual que arriba pero -o para OUTPUT)
Iptables
Por Interfaz:iptables -A INPUT -i lo -p icmp -j DROP (aca estoy
denegando el ping a la interfazlocalhost, -i para INPUT)
iptables -A OUTPUT -o eth0 -p icmp -j DROP (igual que arriba pero -o para OUTPUT)
Iptables
Samba:Iptabes -A INPUT -m state –state new -m udp -p udp –
dport 137 -j ACCEPTIptabes -A INPUT -m state –state new -m udp -p udp –
dport 138 -j ACCEPTIptabes -A INPUT -m state –state new -m tcp -p tcp –
dport 139 -j ACCEPTIptabes -A INPUT -m state –state new -m tcp -p tcp –
dport 445 -j ACCEPT
Iptables
Rsyslog:
Iptabes -A INPUT -m state –state new -m tcp -p tcp -s 192.168.122.50 –dport 514 -j ACCEPT
DNS-A INPUT -m state state –state new -m tcp -p tcp –dport
53 -j ACCEPT-A INPUT -m state state –state new -m udp -p udp –dport
53 -j ACCEPT
Iptables
FTP:
Iptabes -A INPUT -m state –state new -m tcp -p tcp –dport 21 -j ACCEPT
Iptables
NFS:
Iptabes -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -m –state new -m tcp -p tcp –dport 2049 -j ACCEPT
-A INPUT -m –state new -m tcp -p tcp –dport 111 -j ACCEPT
-A INPUT -m –state new -m udp -p udp –dport 111 -j ACCEPT
Iptables
Muchos clientes a un equipo:
-A FORWARD -i eth0 -o eth1 -m state -state ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j ACCEPT-A FORWARD -j LOG
-t nat -A POSTROUTING -o eth0 -j MASQUERADEO
-A FORWARD -j LOG-t nat -A POSTROUTING -o eth0 -s 192.168.0.0-
192.168.0.32 -j MASQUERADE
Bibliografía
http://netfilter.org/documentation/http://es.wikipedia.org/wiki/Netfilter/iptablesFedrico Nan www.rootlinux.com.ar