Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para...

48
Introducci´ on Cortafuegos con Linux Cortafuegos y Linux. Iptables Ra´ ul S´ anchez S´ anchez [email protected] Atica Mi´ ercoles 22 de Septiembre de 2004 Ra´ ul S´ anchez S´ anchez [email protected] Cortafuegos y Linux. Iptables

Transcript of Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para...

Page 1: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Cortafuegos y Linux. Iptables

Raul Sanchez [email protected]

AticaMiercoles 22 de Septiembre de 2004

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 2: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

IntroduccionConceptos basicosFiltrado de paquetesCortafuegos de aplicacionConfiguraciones de cortafuegos

Cortafuegos con LinuxRouting en linuxIptables

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 3: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Conceptos basicosFiltrado de paquetesCortafuegos de aplicacionConfiguraciones de cortafuegos

Proxy

I Aplicacion o un dispositivo hardware.

I Hace de intermediario entre los usuarios de una red local eInternet.

I Recibe peticiones de usuarios y las redirige a Internet.

I Normalmente es un servidor de cache web.

I Existen proxies para muchos protocolos.

I No es transparente al usuario (casi siempre).

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 4: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Conceptos basicosFiltrado de paquetesCortafuegos de aplicacionConfiguraciones de cortafuegos

Cortafuegos

I Dispositivos/sistemas que permiten controlar el trafico entredos o mas sistemas.

I Pueden ser:RouterEquipos bastionSistemas operativos modificadosNormalmente es una mezcla de varios

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 5: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Conceptos basicosFiltrado de paquetesCortafuegos de aplicacionConfiguraciones de cortafuegos

Cortafuegos (II)

I Combinacion de elementos software y hardware situado entredos redes.

I Permite restringir el acceso y las comunicaciones entre ambassegun criterios configurables.

I Trata de asegurar que se cumplen las politicas de seguridad dela organizacion.

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 6: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Conceptos basicosFiltrado de paquetesCortafuegos de aplicacionConfiguraciones de cortafuegos

Bastion Host

I Equipo situado en una zona accesible desde el exterior de laorganizacion y protegido para permitir acceso a los recursos deeste de una forma segura.

I Puede o no ser un firewall.

I No suele tener modificaciones importantes en el S.O.

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 7: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Conceptos basicosFiltrado de paquetesCortafuegos de aplicacionConfiguraciones de cortafuegos

Screening router

I Router con capacidad de filtrado de paquetes.

I Implementado en todos los routers modernos.

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 8: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Conceptos basicosFiltrado de paquetesCortafuegos de aplicacionConfiguraciones de cortafuegos

Filtrado de paquetes (I)

I Bloquear todos los paquetes dirigidos a servicios noautorizados.

I Bloquear paquetes que conengan opciones dentro de losdatagramas ip como el source routing.

I Permitir conexiones a determinadas maquinas.

I Permitir conexiones hacia el exterior.

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 9: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Conceptos basicosFiltrado de paquetesCortafuegos de aplicacionConfiguraciones de cortafuegos

Filtrado de paquetes (II)

I Preferible en router.

I Necesita pocos recursos hardware?

I Facil de anadir nuevos protocolos y aplicaciones.

I Dificil de manejar autenticacion y autorizacion.

I Linux: ifwadm, ipchains, iptables.

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 10: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Conceptos basicosFiltrado de paquetesCortafuegos de aplicacionConfiguraciones de cortafuegos

Filtrado de paquetes (ventajas)

I Barato: Pc viejo con linux haciendo de router.

I Mejor opcion para redes sencillas.

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 11: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Conceptos basicosFiltrado de paquetesCortafuegos de aplicacionConfiguraciones de cortafuegos

Filtrado de paquetes (desventajas)

I No se puede hacer un registro pormenorizado de lo que pasaen la conexion. Solo si se establece o no.

I No hay proteccion contra el contenido de las conexiones.

I Las reglas se complican cuando las redes se hacen grandes.

I Prueba solo con ensayo.

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 12: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Conceptos basicosFiltrado de paquetesCortafuegos de aplicacionConfiguraciones de cortafuegos

Cortafuegos de aplicacion

I Surgen para protocolos TCP interactivos.

I Aparecen las pasarelas de aplicacion. Requieren laconfiguracion de los programas cliente.

I Linux: Firewall ToolKiT (antiguo).

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 13: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Conceptos basicosFiltrado de paquetesCortafuegos de aplicacionConfiguraciones de cortafuegos

Cortafuegos de aplicacion (ventajas)

I Control total sobre la conexion.

I Se pueden interpretar los datos de la conexion. Mayorfacilidad a la hora de emplear sistemas de autenticacionfuertes ( carnet inteligente ...)

I Logs mucho mas precisos.

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 14: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Conceptos basicosFiltrado de paquetesCortafuegos de aplicacionConfiguraciones de cortafuegos

Cortafuegos de aplicacion (desventajas)

I Configuracion de los clientes.

I Pasarela para cada protocolo.

I No se adapta bien al trafico multimedia ni udp.

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 15: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Conceptos basicosFiltrado de paquetesCortafuegos de aplicacionConfiguraciones de cortafuegos

Dual Homed Gateway

I Sin screening router. El bastion host se situa entre las dosredes.

I Toda la informacion pasa a traves de el.I No permite el trafico directo.

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 16: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Conceptos basicosFiltrado de paquetesCortafuegos de aplicacionConfiguraciones de cortafuegos

Screened Host Gateway

I El bastion host se situa en la red privada.

I El screening router le redirige el trafico.

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 17: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Conceptos basicosFiltrado de paquetesCortafuegos de aplicacionConfiguraciones de cortafuegos

Screened Subnet

I Se crea una red aislada utilizando dos routers.I Todos los hosts pueden acceder a la red intermedia.I No la pueden atravesar directamente.I Bastion host en la red intermedia.

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 18: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Conceptos basicosFiltrado de paquetesCortafuegos de aplicacionConfiguraciones de cortafuegos

DMZ

I Red separada del resto con servicios para internet.

I No hay trafico directo entre internet y la red privada.

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 19: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

Routing en linux

I Se recibe el datagrama de IP

I Se examina el datagrama IP entrante para determinar si eldestino es esta maquina.

I Si el datagrama es para esta maquina, se procesa localmente.

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 20: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

Routing en linux (II)

I Si no esta destinado a esta maquina se realiza una busquedaen la tabla de rutas y se reenvıa por la interfaz adecuada o seelimina si no encuentra una ruta adecuada.

I Los datagramas procedentes de procesos locales se tratan deigual manera: Se encaminan por la interfaz adecuada si existeuna ruta para ellos o se elimina si no existe.

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 21: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

Filtrado en Linux

I El cortafuegos de IP del nucleo de Linux es capaz de aplicarfiltrados en varias etapas de este proceso.

I Se pueden filtrar los datagramas de IP que:Entren en su maquinaReenvios a traves de la maquinaPaquetes Salientes

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 22: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

Cadenas de filtrado

I INPUT

I OUTPUT

I FORWARD

I PREROUTING

I POSTROTING

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 23: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

Cadenas de filtrado

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 24: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

iptables

I Un script de iptables se compone de multiples reglas.

I Los datagramas deben de ir probando regla tras regla y parancuando concuerdan con una de ellas.

I Normalmente es un script bash que carga las reglas en elarranque del sistema.

I Sera bueno crear otro script para borrar todas las reglas defiltrado.

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 25: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

Primer ejemplo

I Un script basico de iptables serıa ası:

firewall.sh

#!/bin/sh

# Primer script de iptables del curso de linux

# Polıticas por defecto

/sbin/iptables -P INPUT ACCEPT

/sbin/iptables -P OUTPUT ACCEPT

/sbin/iptables -P FORWARD ACCEPT

# Vaciando las tablas

/sbin/iptables -F

/sbin/iptables -F INPUT

/sbin/iptables -F OUTPUT

/sbin/iptables -F FORWARD

/sbin/iptables -X

/sbin/iptables -F -t nat

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 26: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

iptables (sintaxis)

I -A Anade una regla al final.

I -I Anade una regla al principio.

I -D Borra.

I -R Reemplaza.

I -L Muestra reglas.

I -F Borra reglas.

I -P Polıtica por defecto.

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 27: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

iptables (primer ejercicio)

I crear script que no deje pasar ningun tipo de trafico hacia ydesde nuestra maquina de manera que parezca que notenemos ningun servicio disponible.

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 28: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

Segundo ejemplo

I El script de iptables serıa ası:

firewall.sh

#!/bin/sh

# Primer script de iptables del curso de linux

# Polıticas por defecto

/sbin/iptables -P INPUT DROP

/sbin/iptables -P OUTPUT DROP

/sbin/iptables -P FORWARD DROP

# Vaciando las tablas

/sbin/iptables -F

/sbin/iptables -F INPUT

/sbin/iptables -F OUTPUT

/sbin/iptables -F FORWARD

/sbin/iptables -X

/sbin/iptables -F -t nat

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 29: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

Segundo ejemplo

I ¿Que problema nos encontramos?

I Ni siquiera podemos acceder a los servicios localmente. Porsupuesto tampoco podemos enviar ningun tipo de trafico.

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 30: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

iptables (mas parametros)

I Parametros basicos:

-p [!]protocolo-s [!]direccion_origen[/mascara]-d [!]direccion_destino[/mascara]-j blanco-i [!]nombre_de_interfaz_entrada-o [!]nombre_de_interfaz_salida[!] -f

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 31: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

iptables (Accediendo a los servicios locales)

I Igual que antes. Anadimos las siguientes lıneas.

firewall.sh

# loopback rules/sbin/iptables -A INPUT -i lo -j ACCEPT/sbin/iptables -A OUTPUT -o lo -j ACCEPT

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 32: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

iptables (mas opciones. Extensiones de tcp)

[- -sport [!] [puerto[:puerto]]][- -dport [!] [puerto[:puerto]]][- -tcp-flags [!] mascara comp][[!] - -syn][- -tcp-flags SYN,RST,ACK SYN]

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 33: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

iptables (mas opciones. Extensiones de udp)

[ -sport [!] [port[:port]]][-dport [!] [port[:port]]]

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 34: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

iptables (mas opciones. Extensiones de icmp y mac)

I ICMP

[- -icmp-type [!] nombre_de_tipo]echo-request, echo-reply,source-quench, time-exceeded,destination-unreachable,network-unreachable, host-unreachable,protocol-unreachable, y port-unreachable.

I MAC

[- -mac-source [!] address]

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 35: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

iptables (Un ejemplo mas elaborado)

firewall.sh

#!/bin/sh

# Polıticas por defecto

/sbin/iptables -P INPUT DROP

/sbin/iptables -P OUTPUT DROP

/sbin/iptables -P FORWARD DROP

# Vaciando las tablas

/sbin/iptables -F

/sbin/iptables -F INPUT

/sbin/iptables -F OUTPUT

/sbin/iptables -F FORWARD

/sbin/iptables -X

/sbin/iptables -F -t nat

# loopback

/sbin/iptables -A INPUT -i lo -j ACCEPT

/sbin/iptables -A OUTPUT -o lo -j ACCEPT

# www

/sbin/iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT

/sbin/iptables -A OUTPUT -p tcp -o eth0 --sport 80 -j ACCEPT

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 36: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

Destination NAT (DNAT)

I Alteramos la direccion de destino del primer paquete: esto es,cambiamos la direccion a donde se dirige la conexion.

I Antes del encaminamiento, cuando el paquete entra por elcable.

I El port forwarding , el balanceo de carga y el proxytransparente son formas de DNAT.

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 37: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

Destination NAT (Ejemplos)

I Cambia la direccion de destino por 5.6.7.8

iptables -t nat -A PREROUTING -i eth1 -j DNAT --to 5.6.7.8

I Cambia la direccion de destino por 5.6.7.8, 5.6.7.9 o 5.6.7.10.

iptables -t nat -A PREROUTING -i eth1 -j DNAT --to 5.6.7.8-5.6.7.10

I Cambia la direccion de destino del trafico web por 5.6.7.8,puerto 8080.

iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 \

-j DNAT --to 5.6.7.8:8080

I Redirige los paquetes locales que van a 1.2.3.4 hacia eldispositivo loopback.

iptables -t nat -A OUTPUT -d 1.2.3.4 -j DNAT --to 127.0.0.1

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 38: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

Source NAT (SNAT)

I Source NAT es cuando alteramos el origen del primer paquete:esto es, estamos cambiando el lugar de donde viene laconexion.

I Source NAT siempre se hace despues del encaminamiento,justo antes de que el paquete salga por el cable.

I El enmascaramiento es una forma especializada de SNAT.

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 39: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

Source NAT (Ejemplos)

I Cambiar la direccion de origen por 1.2.3.4

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4

I Cambiar la direccion de origen a 1.2.3.4, 1.2.3.5 o 1.2.3.6

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6

I Cambiar la direccion de origen por 1.2.3.4, puertos 1-1023

iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 1.2.3.4:1-1023

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 40: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

Enmascaramiento

I Utilizara la direccion de origen de la interfaz por la que elpaquete esta saliendo.

I Pero mas importante aun, si el enlace cae, las conexiones (quese iban a perder de todas maneras) se olvidan, lo que significaque habra menos follon cuando la conexion vuelva a lanormalidad con una IP diferente.

I Enmascarar todo lo que salga por ppp0:

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 41: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

Ejercicio de Examen

I Crear script que enmascare a todos los clientes de mi lan lasalida a internet. Ademas, tenemos un servidor web dentro dela lan y queremos darle acceso a internet.

I Subred de la lan: 192.168.2.0/24

I Ip de router: 192.168.2.1 (lan) 155.54.1.60 (internet)

I Ip apache: 192.168.2.24

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 42: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

Redireccion

I Es exactamente lo mismo que hacer DNAT, pero con ladireccion de la interfaz de entrada.

I Envıa el trafico que entra dirigido al puerto 80 (web) anuestro proxy squid (transparente)

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 \

-j REDIRECT --to-port 3128

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 43: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

Resolucion examen (I)#!/bin/sh

# eth0 Red Local

# eth1 Internet

# Activamos forwarding

echo 1 > /proc/sys/net/ipv4/ip_forward

# Vaciamos las cadenas de iptables

iptables --flush

iptables -t nat --flush

iptables -t mangle --flush

iptables -F INPUT

iptables -F OUTPUT

iptables -F FORWARD

# Politicas por defecto

iptables -P INPUT DROP

iptables -P OUTPUT DROP

iptables -P FORWARD DROP

# Acceeso a tutiplein para localhost

iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 44: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

Resolucion examen (II)

# Permitimos la entrada por ssh desde el servidor

iptables -A INPUT -s 192.168.2.1 -p tcp --dport 1600 -j ACCEPT

iptables -A OUTPUT -d 192.168.2.1 -p tcp --sport 1600 -j ACCEPT

# Enmascaramos NAT

iptables -A POSTROUTING -t nat -o eth1 -s 192.168.2.0/24 -d 0/0 -j MASQUERADE

# Permitimos conexiones establecidas

iptables -A FORWARD -s 0/0 -o eth0 -d 192.168.2.0/24 -m state --state ESTABLISHED -j ACCEPT

# Permitimos la navegacion por internet a la red local

iptables -A FORWARD -s 192.168.2.0/24 -d 0/0 -j ACCEPT

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 45: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

Resolucion examen (y III)

# Reedirecciones de los servicios de internet

iptables -A FORWARD -p tcp --dport 80 -j ACCEPT

iptables -t nat -A PREROUTING -p tcp --dport 80 -d 155.54.1.60 -j DNAT --to-destination 192.168.2.24

# Reedirecciones de los servicios de internet

iptables -A FORWARD -p tcp --dport 25 -j ACCEPT

iptables -t nat -A PREROUTING -p tcp --dport 25 -d 155.54.1.60 -j DNAT --to-destination 192.168.2.24

iptables -A FORWARD -p tcp --dport 110 -d 192.168.2.24 -j ACCEPT

iptables -t nat -A PREROUTING -p tcp --dport 110 -d 155.54.1.60 -j DNAT --to-destination 192.168.2.24

iptables -A FORWARD -p tcp --dport 21 -d 192.168.2.24 -j ACCEPT

iptables -t nat -A PREROUTING -p tcp --dport 21 -d 155.54.1.60 -j DNAT --to-destination 192.168.2.24

iptables -A FORWARD -p tcp --dport 22 -d 192.168.2.24 -j ACCEPT

iptables -t nat -A PREROUTING -p tcp --dport 22 -d 155.54.1.60 -j DNAT --to-destination 192.168.2.24

iptables -A FORWARD -p tcp --dport 53 -d 192.168.2.24 -j ACCEPT

iptables -t nat -A PREROUTING -p tcp --dport 53 -d 155.54.1.60 -j DNAT --to-destination 192.168.2.24

iptables -A FORWARD -p udp --dport 53 -d 192.168.2.24 -j ACCEPT

iptables -t nat -A PREROUTING -p udp --dport 53 -d 155.54.1.60 -j DNAT --to-destination 192.168.2.24

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 46: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

Logging

I De alguna manera debemos de registrar lo que esta ocurriendo

I usaremos -j LOG

I Crearemos una cadena para esto

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 47: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

Creando una cadena que rechaza y registra

/sbin/iptables -N DUMP > /dev/null

/sbin/iptables -F DUMP

/sbin/iptables -A DUMP -p tcp -j LOG

/sbin/iptables -A DUMP -p udp -j LOG

/sbin/iptables -A DUMP -p tcp -j REJECT --reject-with tcp-reset

/sbin/iptables -A DUMP -p udp -j REJECT --reject-with icmp-port-unreachable

/sbin/iptables -A DUMP -j DROP

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables

Page 48: Cortafuegos y Linux. Iptables - Universidad de Murcia · I Ser´a bueno crear otro script para borrar todas las reglas de ... # Primer script de iptables del curso de linux ... /sbin/iptables

IntroduccionCortafuegos con Linux

Routing en linuxIptables

Logging (Mandando hacia la cadena nueva)

# Rechazamos y registramos direcciones reservadas que

# llegan por la interfaz externa

/sbin/iptables -A INPUT -i eth1 -s 0.0.0.0/8 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 1.0.0.0/8 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 2.0.0.0/8 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 5.0.0.0/8 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 7.0.0.0/8 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 23.0.0.0/8 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 27.0.0.0/8 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 31.0.0.0/8 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 36.0.0.0/8 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 39.0.0.0/8 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 41.0.0.0/8 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 42.0.0.0/8 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 58.0.0.0/8 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 59.0.0.0/8 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 60.0.0.0/8 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 127.0.0.0/8 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 169.254.0.0/16 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 172.16.0.0/12 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 192.168.0.0/16 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 197.0.0.0/8 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 224.0.0.0/3 -j DUMP

/sbin/iptables -A INPUT -i eth1 -s 240.0.0.0/8 -j DUMP

Raul Sanchez Sanchez [email protected] Cortafuegos y Linux. Iptables