Ing. Juan Báez Rojas http://caminandoconlinux.com http://twitter.com/juan_baez [email protected] [email protected]
Que es un cortafuegos? ■
■
Un cortafuegos (firewall) es un equipo protegido y fiable que funciona como punto regulador entre un grupo de redes y la internet El núcleo de Linux proporciona varias funciones integradas que le permiten funcionar como un cortafuegos IP. La implementación de red incluye código (netfilter) para procesar los paquetes IP a voluntad gracias a la utilidad iptables
Que es un cortafuegos?
Que es Netfilter? ■
Netfilter es un framework disponible en el
núcleo Linux que permite interceptar y manipular paquetes de red. Dicho framework permite realizar el manejo de paquetes en diferentes estados del procesamiento. Netfilter es también el nombre que recibe el proyecto que se encarga de ofrecer herramientas libres para cortafuegos basados en Linux.
Que es Iptables? ■
iptables es el nombre de la herramienta de
espacio de usuario mediante la cual el administrador puede definir políticas de filtrado del tráfico que circula por la red. El nombre iptables se utiliza
frecuentemente de forma errónea para referirse a toda la infraestructura ofrecida por el proyecto Netfilter. iptables es un software disponible en prácticamente todas las distribuciones de Linux actuales.
Cadenas integradas ■
■ ■
■
■
FORWARD: Flujo a través de un ordenador
pasarela, procedente de una interfaz y yendo hacia otra INPUT: Justo antes del proceso local OUTPUT: Justo después de ser generado por proceso local POSTROUTING: Justo antes de salir por la interfaz de red PREROUTING: Justo al llegar desde una interfaz y después de la limpieza y control
Tablas ■
■
■
filter: Usado para establecer políticas para
el tipo de trafico permitido hacia, a través y desde el ordenador. A menos que hagamos referencia explícitamente a otra tabla, iptables funcionara por defecto con las cadenas de esta tabla mangle: Se usa para la alteración de paquetes, como quitarles sus opciones IP nat: Usada en conjunción con el rastreo de conexiones de NAT, basándose normalmente en las direcciones de origen y destino
Recorrido de un paquete RED
PREROUTING mangle,nat
RUTEO
POSTROUTING mangle, nat
FORWARD mangle, filter
INPUT mangle,filter
OUTPUT mangle, filter,nat
LOCAL
Objetivos ■
■
ACCEPT: Permite al paquete pasar a la siguiente fase de procesamiento DROP: Deja de procesar el paquete. No lo coteja con otra regla, cadena o tabla. Si queremos proporcionar respuesta al remitente podemos usar REJECT
■
LOG: Envía la información del paquete al demonio syslog
■
DNAT: se emplea principalmente en los casos donde se tiene una IP pública y
se quiere redirigir los accesos al firewall hacia algún otro host (en una "zona desmilitarizada", DMZ, por ejemplo). Dicho de otro modo, cambiamos la dirección de destino del paquete y lo re-enrutamos a otro host.
■
SNAT: Se cambia la dirección dirección IP de origen, origen, es la situación situación más utilizada
cuando estamos utilizando una dirección dirección IP privada en una red r ed local y establecemos una conexión conexión con un equipo de Internet. Un equipo de la red (normalmente la puerta de enlace) se encarga de cambiar la dirección IP privada origen por la dirección IP pública, para que el equipo de Internet pueda contestar. ■
MASQUERADE se usa exactamente para lo mismo que SNAT, pero requiere
más de trabajo del procesador para permitir trabajar con IP dinamicas
■
REDIRECT sirve para redirigir paquetes y flujos hacia la máquina. Ésto quiere
decir que podemos redirigir todos los paquetes destinados a los puertos HTTP hacia un caché HTTP como squid, o hacia nuestro host
Comparaciones ■
-p, --protocol emplea para comprobar la presencia de los siguientes
protocolos: TCP, UDP, ICMP
■
-s, --src, --source se basa en la dirección IP de origen de los paquetes
■
-d, --dst, --destination se basa en saber a dónde se dirijen los paquetes
■
-i, --in-interface reconocer a través de qué interfaz proviene un paquete
entrante.
■
-o, --out-interface se emplea con los paquetes que están a punto de
abandonar la interfaz de salida
■
--sport, --source-port se emplea para comparar paquetes basándose en su
puerto de origen ■
--dport, --destination-port compara paquetes TCP basándose en el puerto
de destino ■
--mac-source Como ya se ha dicho, esta comparación se emplea para buscar
paquetes basándose en su dirección MAC de origen
Comandos ■
-A, --append añade la regla al final de la cadena. La regla siempre se
pondrá la última en el conjunto de reglas y lógicamente se comprobará la última ■
-D, --delete borra una regla de la cadena. Esto puede hacerse de dos
maneras: bien introduciendo la regla completa a comparar (como en el ejemplo anterior), bien especificando el número de regla que deseas eliminar
■
-R, --replace sustituye la entrada existente en la línea especificada.
Funciona de la misma forma que el comando --delete
■
-I, --insert inserta una regla en la posición de la cadena que
especifiquemos ■
-L, --list lista todas las entradas de la cadena especificada
■
-F, --flush elimina todas las reglas de una cadena
■
-N, --new-chain cree una nueva cadena con el nombre especificado
■
-X, --delete-chain borra de la tabla la cadena especificada
■
-P, --policy establece la política u objetivo por defecto en una cadena
Filter iptables [-t tabla] [comando] [cadena][comparación ] [objetivo]
iptables -A INPUT -p tcp -i eth0 --dport 80 -j DROP iptables -A INPUT -i eth0 -p icmp --icmp-type 8 -j DROP iptables -A FORWARD -i eth0 -p icmp --icmp-type 8 -j DROP iptables -A INPUT -p tcp -i eth0 --dport 25 -j ACCEPT iptables -A INPUT -p udp -i eth0 --dport 25 -j ACCEPT iptables -A FORWARD -s 0/0 -i eth0 -d 192.168.1.58 -o eth1 -p TCP --sport 1024:65535 --dport 80 -j ACCEPT iptables -A OUTPUT -p udp -o eth0 --dport 53 --sport 1024:65535 -j ACCEPT iptables -A INPUT -p udp -i eth0 --sport 53 --dport 1024:65535 -j ACCEPT
NAT iptables [-t tabla] [comando] [cadena][comparación ] [objetivo]
iptables -A PREROUTING -i eth0 -p tcp –dport 80 -j DNAT –to 192.168.3.2:80
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT -o eth0 --to-source 97.158.253.29 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE iptables -t nat -A POSTROUTING -o ppp0 -j SNAT --to-source 97.158.253.29
Mangle iptables [-t tabla] [comando] [cadena][comparación ] [objetivo]
iptables -t mangle -A PREROUTING -s 192.168.0.1 -i eth0 –dport 1950 -j TOS –set-tos 0×10 iptables -t mangle -A FORWARD -p tcp -j TCPMSS –clampmss-to-pmtu iptables -t mangle -A FORWARD -d 0.0.0.0/0 -i eth0 -p tcp –dport 1234 -j TTL –ttl-set 1
■
PREGUNTAS, ACERTIJOS, FRASES CELEBRES