Firewall en GNU/Linux netfilter/iptables



Documentos relacionados
Cortafuegos (Firewalls) en Linux con iptables

IPTABLES. Gonzalo Alvarez Flores

Iptables, herramienta para controlar el tráfico de un servidor

Cortafuegos (Firewalls) en Linux con iptables

INGENIERÍA EN SISTEMAS Y TELECOMUNICACIONES ÉNFASIS EN ADMINISTRACIÓN DE REDES

Apartado: BrutaliXL Versión: 3 Título: Cortafuegos - Iptables Fecha:

Firewall en Linux. Luis Eduardo Vivero Peña. Director Centro de Difusión del Software Libre Ingeniero de Proyectos Corporación Linux

Cortafuegos y Linux. Iptables

UNIDAD DIDACTICA 12 CONFIGURACIÓN DE IPTABLES EN GNU/LINUX

Gestión de Recursos y Seguridad en Redes Seguridad en la red con Open Source. Derman Zepeda Vega. dzepeda@unan.edu.ni

Charla de redes. Carlos Hernando ACM Facultad de Informática Universidad Politécnica de Madrid

SEGURIDAD EN SISTEMAS INFORMÁTICOS

66.69 Criptografía y Seguridad Informática FIREWALL

Filtrado de paquetes y NAT

Configuración del firewall en Linux con IPtables

En el anterior post había explicado que es necesario en un firewall primero denegar todo tráfico entrante, para ello:

P r á c t i c a 1 5. C o n f i g u r a c i ó n d e f i r e w a l l m e d i a n t e i p t a b l e s

PRÁCTICA 5: USO DE CORTAFUEGOS

Examen Parcial II de Sistemas Telemáticos para Medios Audiovisuales

EJERCICIOS DE REDES. 1. Configurar por completo la red mostrada en el siguiente diagrama:

Concepto de Seguridad de Alto Nivel: A lo largo del curso hemos establecido protecciones en los equipos y en la información que almacenan e

8. Cortafuegos (Firewall).

Iptables: un cortafuegos TCP/IP

Firewalls: iptables. Pablo Suau Pérez (aka Siew) Marzo 2002

Introducción al concepto y puesta en marcha de una pared de fuego utilizando IPTables

Prácticas de laboratorio de Telemática II

Curso avanzado de GNU/Linux

2. Diferencias respecto a IPCHAINS

Conferencias Abiertas de GNU/Linux MTLUG La Matanza GNU/Linux Users Group Firewalls con IPTABLES (y sus amigos)

Aprendizajes esperados

Firewall Firestarter. Establece perímetros confiables.

Redes de área local Aplicaciones y Servicios Linux Enrutamiento

Julio Gómez López Universidad de Almería

miércoles 7 de septiembre de 2011 Protección perimetral

Una ACL es una lista secuencial de sentencias de permiso o denegación que se aplican a direcciones IP o protocolos de capa superior.

Tema 5. Topologías de red Seguras. Módulo I : Topologías de Red Seguras

Lista de Control de Acceso (ACL) LOGO

PRACTICA NO. 17, FIREWALL -EJEMPLO REAL DE USO DEL FIREWALL BLOQUEAR O PERMITIR RED, EQUIPO, PUERTO. HACER NAT, ETC. Vielka Mari Utate Tineo

! " " & '( ) ( (( * (+,-.!(/0"" ) 8-*9:!#;9"<!""#

Informe Final Experiencia 2 Configuración de Firewall, Router y Gateway

HOWTO: Cómo configurar DNAT para publicar los servicios internos hacia Internet

HOWTO: Cómo configurar el acceso web en varios interfaces de Integra

HOW TO SOBRE FIREWALL

PARTE IV. Uso de shorewall. Shorewall Configuración de Shorewall

Bloque IV: El nivel de red. Tema 10: Enrutamiento IP básico

Tema 6. Funciones y protocolos del nivel de red. Ejercicios propuestos (II).

Firewalls de Internet. Ricardo D. Pantazis

Examen Cisco Online CCNA4 V4.0 - Capitulo 5. By Alen.-

Instituto Tecnológico Las Américas (ITLA) Sistemas Operativos 3 (SO3) Daniel Alejandro Moreno Martínez. Matrícula:

Laboratorio 2 Filtrado de paquetes con Netfilter

Parallels Plesk Panel. Módulo de firewall para Parallels Plesk Panel 10 para Linux/Unix. Guía del administrador

Seguridad Informática

IPTABLES Manual práctico

Alta Disponibilidad de Cortafuegos en Linux. Pablo Neira Ayuso Proyecto Netfilter Universidad de Sevilla

& '( ) ( (( * (+,-.!(/0"" ) 8-*9:!#;9"<!""#

Tema 3. Firewalls y Proxies con OpenBSD Y GNU/Linux

Laboratorio de PCs. Práctica 3: Montaje de una red de Área local

Práctica 4 - Network Address Translation (NAT)

Servidor Firewall. Patrick Hernández Cuamatzi. Maestría en Ingeniería de Software Redes Avanzadas

IPTABLES Manual práctico

Configurar NAT Windows 2003

Lab 10. CortaFuegos (Firewall) Área de Telemática. Seguridad de la información Universidad de Antioquia

Redes I Soluciones de la Práctica 1: /etc/network/interfaces, tcpdump y wireshark

XARXES 2. Seguretat de Xarxa. Módul 2: Carles Mateu Departament d'informàtica i Enginyeria Industrial Universitat de Lleida

Tema: Firewall basado en IPTABLES.

Manual de Configuración de Modevasive VenCERT

HOWTO: Cómo configurar SNAT

Práctica 7 Network Address Translation en routers Cisco

Ing. Ma. Eugenia Macías Ríos. Administración de Redes

GUÍA PARA LA CONFIGURACIÓN BÁSICA DEL ROUTER MONOPUERTO ADSL2+ OBSERVA TELECOM AR1061

Tema 6. Firewalls. SEGURIDAD EN SISTEMAS DE INFORMACIÓN Libre Elección de abril de 2009

Firewalls, IPtables y Netfilter

IPTables: Filtrado de paquetes en Linux

Ejercicios de Seguridad en Redes. Firewalls y túneles cifrados

Software de Comunicaciones. Práctica 9 - Filtrado de Paquetes. IPTables y Shorewall

Instalar Firewall en Linux Server con Shorewall

INSTITUTO TECNOLÓGICO DE CUAUTLA INGENIERIA EN SISTEMAS COMPUTACIONALES SEGURIDAD EN SISTEMAS DE INFORMACIÓN PRÁCITCA I:

Ciclo Formativo de Grado Superior de Administración de Sistemas Informáticos en Red

Cortafuegos ( Firewall ) Arquitecturas de cortafuegos Juan Nieto González IES A Carballeira -

Enrutamiento y filtrado

Cortafuegos en Linux con iptables

Nombre: Misael Acosta Ayala ID: Asignatura: Sistemas Operativos III. Instructor: José Doñe. Tema: Firewall

CONFIGURACIÓN DE FIREWALL EN CLOUD DATACENTER

Seguridad en Sistemas Informáticos Seguridad perimetral. Área de Ingeniería Telemática Dpto. Automática y Computación

Prevención Dinámica de Ataques con IPTables.

Routers y Firewalls. Seguridad en Redes TCP/IP. Tabla de Contenidos

Manual de Iptables. Networking basics.

Smoothwall y Servicios de Internet. Marzo, 2006.

Seguridad y Alta Disponibilidad

Contenidos. Introducción. Seguridad y Alta Disponibilidad Instalación y configuración de cortafuegos. Introducción Tipos de cortafuegos.

Ciclo Formativo de Grado Superior de Administración de Sistemas Informáticos en Red

Firewall con IPTABLES

Transcripción:

Firewall en GNU/Linux netfilter/iptables SEGURIDAD EN SISTEMAS DE INFORMACIÓN Libre Elección http://ccia.ei.uvigo.es/docencia/ssi 13 de mayo de 2008 FJRP, FMBR 2008 ccia SSI

1. Introducción a netfilter/iptables netfilter (http://www.netfilter.org) es un componente del núcleo Linux (desde la versión 2.4) encargado de la manipulación de paquetes de red, que permite: filtrado de paquetes traducción de direcciones (NAT) modificación de paquetes iptables es una herramienta/aplicación (forma parte del proyecto netfilter) que hace uso de la infraestructura que ofrece netfilter para construir y configurar firewalls permite definir poĺıticas de filtrado, de NAT y realizar logs remplaza a herramientas anteriores: ifwadmin, ipchains puede usar las capacidades de seguimiento de conexiones netfilter para definir firewalls con estado Las posibles tareas a realizar sobre los paquetes (filtrado, NAT, modificación) se controlan mediante distintos conjuntos de reglas, en función de la situación/momento en la que se encuentre un paquete durante su procesamiento dentro de netfilter. Las listas de reglas y demás datos residen en el espacio de memoria del kernel La herramienta de nivel de usuario iptables permite al administrador configurar las listas de reglas que usa el kernel para decidir qué hacer con los paquetes de red que maneja. En la práctica un firewall iptables consistirá en un script de shell conteniendo los comandos iptables para configurar convenientemente las listas de reglas. tipicamente ese script residirá en el directorio /etc/init.d ó en /etc/rc.d para que sea ejecutado cada vez que arranca el sistema Otras utilidades (guardar/recuperar reglas en memoria): iptables-save, iptable-restore FJRP, FMBR 2008 ccia SSI 1

(a) Elementos TABLAS. Se corresponden con los distintos tipos de procesamiento que se pueden aplicar sobre los paquetes. Tablas disponibles: filter. Controla decisiones de filtrado de paquetes (aceptar/denegar) Cadenas: input, output, forward nat. Controla traducción de direcciones (NAT:network address translation) Cadenas: prerouting, postrouting (opc. output) mangle. Controla los procesos de modificación del contenido y las opciones de los paquetes. Cadenas: input, output, forward, prerouting, postrouting Las reglas de cada tabla se organizan en cadenas, que se consultarán en momentos concretos del flujo de los paquetes.. CADENAS. Contienen las listas de reglas a aplicar sobre los paquetes Cadenas predeterminadas: (asociadas a momentos concretos del flujo de los paquetes) INPUT reglas a aplicar sobre los paquetes destinados a la propia máquina, (justo antes de pasarlos a las aplicaciones) Usada para controlar las entradas al propio equipo/cortafuegos OUTPUT reglas a aplicar sobre los paquetes originados en la propia máquina, (justo después de recibirlas desde las aplicaciones) Usada para controlar las salidas del propio equipo/cortafuegos FORWARD reglas a aplicar sobre los paquetes que atraviesan la máquina con destino a otras (paquetes en tránsito reenviados) Usadas en Cortafuegos de borde (protección red interna) PRE-ROUTING reglas a aplicar sobre paquetes justo antes de enviarlos a la red Usada para DNAT (destination NAT) [redirección de puertos] POST-ROUTING reglas aplicar sobre paquetes (propios o ajenos) recibidos de la red (antes de decidir a dónde encaminarlos [local o reenvío]) Usada para SNAT (source NAT) [enmascaramiento] Se pueden crear cadenas definidas por el usuario (comando iptables -N cadena ), a las que se accederá desde reglas incluidas en alguna de las cadenas predeterminadas ( subrutinas) FJRP, FMBR 2008 ccia SSI 2

(b) Flujo de paquetes a través de netfilter (c) Funcionamiento Para cada paquete, en función del procesamiento que vaya a sufrir, se consulta la cadena que corresponda a su situción dentro de netfilter. Dentro de cada cadena las reglas se inspeccionan secuencialmente [orden de reglas importante] Si el paquete encaja con las condiciones de una regla, se ejecuta la acción correspondiente y se abandona la cadena Si el paquete no encaja con ninguna regla, se le aplica la poĺıtica por defecto que se haya asignado a esa cadena. por defecto las cadenas predeterminadas están inicializadas con una poĺıtica accept al agotar las cadenas definidas por el usuario, se retorna a la cadena predeterminada que la activó FJRP, FMBR 2008 ccia SSI 3

2. Reglas iptables (a) Esquema iptables -t tabla comando condiciones objetivo Nota: Si no se indica una tabla, se usa por defecto -t filter (b) Comandos más relevantes -L/--list cadena lista las reglas actualmente en uso en una cadena -F/--flush cadena vacía una cadena -Z/--zero cadena reinicia los contadores de una cadena -P/--policy cadena DROP/ACCEPT establece la poĺıtica por defecto -A/--append cadena añade una regla (condiciones+objetivos) a una cadena -D/--delete cadena borra una regla de una cadena -R/--replace cadena reemplaza una regla de una cadena -I/--insert cadena inserta una regla de una cadena (c) Condiciones { origen: -s/--source dirección IP destino: -d/--destination Puede ser una dirección (-s 193.147.87.47) o un rango (-s 193.147.87.0/24) { de salida: -i/--in-interface (en input,forward,prerouting) interfaz de entrada: -o/--out-interface (en output,forward,postrouting) Dispositivo (eth0,eth1,...,lo) por el que se ha recibido el paquete o por el que saldrá el paquete. tipo protocolo -p/--protocol Protocolo de nivel de transporte: tcp,udp,icmp,all { origen: -sport/--source-port puertos destino: -dport/--destination-port Puede ser un número de puerto (-sport 80), un nombre de servicio (-sport http) o un rango de puertos (-sport 1024:65535) FJRP, FMBR 2008 ccia SSI 4

control estado conexión -m state --state estados Soporte básico para reglas de filtrado con estado. Situación del paquete respecto a la conexión a la que pertenece: invalid paquete no asociado a una conexión conocida established paquete que pertenece a una conexión válida ya establecida new paquete mediante el cual se está creando una nueva conexión related paquetes que inician una nueva conexión que está asociada con otra ya establecida Filtros con estado más detallados: -m conntrack --ctstate --tcp-flag (bits de paquetes TCP) otros -m --mac-source (direcciones MAC [en redes ethernet]) -m limit (--limit --limit-burst (ĺımites pqts./seg.) Para expresar la negación de una restricción se antepone un!. -sport! 80 -p! icmp -s!193.147.87.47 (d) Objetivos Objetivos predefinidos (tabla -t filter) [en cadenas input,output,forward] -j accept. el paquete se acepta y se deja de recorrer la cadena -j drop. se rechaza el paquete (sin informar al origen) -j reject --reject-with. se rechaza el paquete, informando al origen con el mensaje icmp indicado Objetivos predefinidos (tabla -t nat) -j snat --to-source. Realiza SNAT(source-NAT) sobre los paquetes salientes [enmascaramiento de direcciones] Cambia dir. IP (opc. puerto) de origen del paquete (sólo disponible en postrouting) -j masquerade. IDEM que snat, pero usando la dir. IP del propio equipo (útil en conexiones volátiles [adsl, modem]) (sólo disponible en postrouting) -j dnat --to-destination. Realiza DNAT(destination-NAT) sobre los paquetes entrantes [redireccionamiento de puertos] Cambia dir. IP (opc. puerto) de destino del paquete (sólo disponible en prerouting y opc. en output) Objetivos de log (no detienen el recorrido por la cadena) -j log. crea entrada en el log del sistema [/var/log/sysylog] -j ulog. crea entrada en un log definido por usuario Más detalles: iptables --help, man iptables FJRP, FMBR 2008 ccia SSI 5

3. Ejemplo de script iptables Firewall básico de borde con enmascaramiento de la red interna (NAT) Red interna del rango 10.10.10.0/24 [mascara 255.255.255.0] Una única dir. IP pública [193.147.87.47] Interfaces del firewall: eth0 (red externa), eth1 (red interna) Servicios hacia el exterior (idealmente deberían ubicarse en una DMZ) Servidores http y https públicos en la máquina interna 10.10.10.66 Servidores corporativos de correo saliente (smtp) y entrante (pop3) en 10.10.10.77 Restricciones sobre el firewall Todas las conexiones hacia el firewall están prohibidas Sólo se permiten conexiones ssh (puerto 22) que provengan de equipos de la red interna (para labores de administración) Restriciones de tráfico desde el interior No se permite la conexión para envío de e-mail (smtp) con máquinas del exterior. Todas los demás tipos de conexión están autorizados FJRP, FMBR 2008 ccia SSI 6

#!/bin/sh # Vaciar y reiniciar las tablas actuales iptables -F iptables -X iptables -Z iptables -t nat -F # Establecer politicas por defecto iptables -P INPUT DROP # descartar entradas al firewall iptables -P OUTPUT ACCEPT # aceptar salidas del firewall iptables -P FORWARD ACCEPT # aceptar reenvios a traves del firewall iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT # Permitir localhost iptables -A INPUT -i lo -j ACCEPT # SNAT (enmascaramiento de lo que sale de red interna 10.10.10.0/24) hacia exterior iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 \ -j SNAT --to-source 193.147.87.47 # otra posibilidad: -j MASQUERADE # DNAT (redireccionamiento puertos tcp 80, 25, 110 a red interna) iptables -t nat -A PREROUTING -i eth0 -d 10.0.100.0/24 -j DROP # NOTA: hay que descartar antes paquetes externos dirigidos a red interna # si se hiciera en FORWARD, se eliminarian las siguientes redirecciones iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \ -j DNAT --to-destination 10.10.10.66:80 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 \ -j DNAT --to-destination 10.10.10.77:25 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 110 \ -j DNAT --to-destination 10.10.10.77.110 # Reglas de filtrado # Filtrado conexiones entrantes al firewall # - permitir SSH desde red interna, resto bloqueado por politica por defecto iptables -A INPUT -i eth1 -s 10.10.10/24 -p tcp --dport 22 -j ACCEPT # Habilitar forward de paquetes echo 1 > /proc/sys/net/ipv4/ip_forward # Filtrado salida red interna # - bloquear salida conex. SMTP de red interna, resto permitido por politica por defecto iptable -A FORWARD -i eth1 -o eth0 -s 10.10.10.0/24 -p tcp --dport 25 -j DROP FJRP, FMBR 2008 ccia SSI 7