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



Documentos relacionados
Cortafuegos (Firewalls) en Linux con iptables

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

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

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

Filtrado de paquetes y NAT

Cortafuegos (Firewalls) en Linux con iptables

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

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

IPTABLES. Gonzalo Alvarez Flores

Prácticas de laboratorio de Telemática II

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

Examen Parcial II de Sistemas Telemáticos para Medios Audiovisuales

Firewall en GNU/Linux netfilter/iptables

HOW TO SOBRE FIREWALL

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

Cortafuegos y Linux. Iptables

66.69 Criptografía y Seguridad Informática FIREWALL

CONFIGURACIÓN DE FIREWALL EN CLOUD DATACENTER

Configuración del firewall en Linux con IPtables

Redes de área local Aplicaciones y Servicios Linux Enrutamiento

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

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

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

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

Práctica 4 - Network Address Translation (NAT)

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

Iptables: un cortafuegos TCP/IP

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

PRÁCTICA 5: USO DE CORTAFUEGOS

SEGURIDAD EN SISTEMAS INFORMÁTICOS

Práctica 7 Network Address Translation en routers Cisco

(decimal) (hexadecimal) 80.0A.02.1E (binario)

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

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

Práctica 5: Listas de acceso estándar y extendidas

8. Cortafuegos (Firewall).

UNIDAD DIDACTICA 4 INTEGRACIÓN DE CLIENTES WINDOWS EN UN DOMINIO

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

Aprendiendo a usar IPTABLES desde cero.

En caso de que el cliente nunca haya obtenido una concesión de licencia de un servidor DHCP:

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

INTERNET 4º ESO INFORMATICA / DEP. TECNOLOGIA

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

Tipos de conexiones de red en software de virtualizacio n: VirtualBox y VMware

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

PROXY-NAT PARA USUARIOS ADSL DE TELEFÓNICA

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

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

UNIDAD DIDACTICA 16 USUARIOS SAMBA EN UN CONTROLADOR DE DOMINIO LINUX SERVER

Práctica 9: Configuración de NAT y DHCP

HOWTO: Cómo configurar SNAT

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

Firewall Firestarter. Establece perímetros confiables.

Existe una solicitud disponible a tal efecto en la url:

Práctica 2. Montaje de Redes Locales. Parte III

UNIDAD DIDACTICA 11 CONFIGURACIÓN DE LA RED EN GNU/LINUX

Redes Locales: El protocolo TCP/IP

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

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

5.2.- Configuración de un Servidor DHCP en Windows 2003 Server

LISTAS DE CONTROL DE ACCESO ACL

MANUAL BÁSICO PARA CLIENTES

Práctica 10 - Network Address Translation (NAT)

Administración de redes IP. Localización y manejo de problemas

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

Servidor DNS sencillo en Linux con dnsmasq

Práctica 2: Configuración de interfaces IP en equipos con sistema operativo GNU/Linux

Configurar un router-firewall utilizando los simuladores correspondientes:

4.2- Instalación y Configuración de un Servidor DNS Dnsmasq en Ubuntu sin DHCP

INSTITUTO TECNOLOGICO SUPERIOR DE TEZIUTLAN CONFIGURACION Y ADMON DE REDES

PASOS PREVIOS 1. Entrar en Disco local ( C: ) Buscar la carpeta SILEX y click con el botón derecho, seleccionamos la opción Compartir y seguridad

2. Diferencias respecto a IPCHAINS


Configurar NAT Windows 2003

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. CAPÍTULO 8: El nivel de transporte en Internet

CONFIGURACIÓN DE LAS IMPRESORAS DE RED

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

Agenda, continuación

Instalación y Configuración de un Servidor FTP

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

Conexión VPN en Windows XP

CONFIGURACION DEL SERVIDOR VIRTUAL EN EL ROUTER E968

DHCP. Dynamic Host Configuration Protocol. Protocolo de Configuración Dinámica de Host. Administración de Redes de Computadores

Certified Offensive and Defensive Security Professional - Entrenamiento E-learning - 3-SCANNING.

Balanceo de carga mediante PCC

DHCP NAT. Redes WAN. DHCP y NAT. Esteban De La Fuente Rubio esteban@delaf.cl L A TEX. Universidad Andrés Bello. 27 abr 2011

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

CONFIGURACIÓN BÁSICA DE UNA VPN EN WINDOWS XP PROFESIONAL

Escritorio remoto y VPN. Cómo conectarse desde Windows 7

PRACTICA DE REDES Redes Ad Hoc

PAUTAS DE VERIFICACIÓN TCP/IP

INSTITUTO TECNOLÓGICO DE SALINA CRUZ. Fundamentos De Redes. Semestre Agosto-Diciembre Reporte De Lectura

Redes de área local: Aplicaciones y servicios WINDOWS

Nota Técnica. Conexión a una red externa Internet / LAN / WAN / ADSL

P2: Configuración Básica de Redes IP con Equipos TELDAT

TALLER LINUX Modo Matrix Disponibilidad de Host Configuración Red Administración Remota Segura Servidor. Comandos Básicos en Consola

Solución de actividad 2.2.5: Uso de NeoTrace para ver Internetworks

Transcripción:

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

IPTABLES La comanda IPTABLES se utiliza en linux para la configuración de un firewall. IPTABLES permite realizar la programación de servicios NAT y Listas de Acceso 2

1. INTRODUCCIÓN El comando iptables se utiliza en linux para la configuración de un firewall. La comanda iptables permite filtrar i/o modificar algunos campos de los paquetes a medida que atraviesan diferentes etapas (o chains) del nivel IP de la máquina linux. Estas etapas son PREROUTING, FORWARD, POSTROUTING, INPUT y OUTPUT. Cuando el paquete atraviesa una de estas etapas, el nivel IP consulta unas tablas donde la comanda iptables permite añadir las reglas de procesado. Estas tablas son mangle, filter y nat. 3

1. ETAPAS QUE SIGUE UN PAQUETE DENTRO EN LAS RUTINAS TCP/IP Esquema de las etapas que sigue un paquete desde que se recibe de la red o se genera en un proceso local, hasta que se transmite o se recibe por un proceso local. En la figura se muestra las tablas que hay en cada etapa y el orden en el que se consultan. 4

1. ETAPAS QUE SIGUE UN PAQUETE DENTRO EN LAS RUTINAS TCP/IP Camino del routing POSTROUTING Llamada al firewall Proceso local Proceso local FORWARDING INPUT OUTPUT PREROUTING PREROUTING POSTROUTING Llamada localhost desde el firewall INPUT OUTPUT Proceso Local 5

1. TABLAS DE LAS IPTABLES La tabla mangle permite añadir reglas que cambian algunos campos de los paquetes, como TTL o TOS. La tabla nat permite añadir reglas que cambian las direcciones IP de los paquetes. Los tipos de reglas son: SNAT para cambiar la dirección fuente y DNAT para cambiar la dirección destino. La tabla filter permite añadir reglas de filtrado. Los tipos de reglas son: DROP para rechazar un paquete y ACCEPT para aceptarlo. 6

2. CREACIÓN DE REGLAS CON EL COMANDA IPTABLES El formato genérico del comando iptables es: iptables [-t <taula>] <comando> <expresión> -j <tipo de regla> Si no se indica la tabla, se considera que la regla se aplica a la tabla filter. La expresión (o match) identifica cuales son los paquetes a los que hay que aplicar la regla. El tipo de regla (o target) identifica que es lo que se debe de hacer con los paquetes (DROP, ACCEPT, SNAT o DNAT). 7

2. COMANDOS DE LAS IPTABLES -A <chain>: añade una regla a una tabla de la etapa <chain>. Por ejemplo: iptables A INPUT... -D <chain> <n>: borra la regla <n> de una taula de la etapa <chain>. Las reglas se enumeran a partir de 1. Por ejemplo: iptables t <taula> D <chain> <n> -I <chain> <n>...: inserta una regla en la línea indicada. Por ejemplo: iptables I INPUT 1 -dport 80 j ACCEPT -L <chain>: lista las reglas de una tabla de <chain>. Admite la opción n para que no intente traducir las direcciones numéricas a nombres, -v porque sea más verbose y --line para mostrar el número de regla. Por ejemplo, iptables t <tabla> --line nvl <chain>. 8

2. COMANDOS DE LAS IPTABLES -P <chain>: especifica el tipo de regla por defecto de una taula de <chain> (análogo a la comanda que rechaza todos los paquetes que hay al final de una lista de acceso en un router Cisco). Si esta comanda no se ejecuta, la regla por defecto es ACCEPT. Por ejemplo, para que la regla por defecto en la tabla filter de la etapa INPUT sea descartarlo todo ejecutaríamos: iptables P INPUT DROP. 9

3. EXPRESIONES GENERICAS - p <protocol>: identifica el protocolo Para identificar los protocolos se puede utilizar el número de protocolo o el nombre (fichero /etc/protocols), asi como: icmp, udp, tcp, ip, etc Se puede utilizar el nombre ALL para identificar todos los protocolos (valor por defecto si no se utiliza -p) Se puede invertir la expresión con el operador! Ejemplos: -p! tcp Indica cualquier protocolo excepto TCP. iptables A INPUT p tcp... Añadirá a la tabla filter de la etapa INPUT una regla que se aplicará a todos los paquetes TCP. 10

3. EXPRESIONES GENERICAS -s <@IP fuente>: Identifica todos los paquetes con <@IP fuente>. Se puede añadir una máscara para identificar un rango de direcciones y se puede utilizar el operador! para negar la expresión. Ejemplo: iptables A INPUT s! 192.168.0.0/24 añadirá a la tabla filter de la etapa INPUT una regla que se aplicará a todos los paquetes que tengan una @IP fuente que no pertenezca al rango 192.168.0.0/24. -d <@IP destino>: Idem que antes para la dirección destino. 11

3. EXPRESIONES GENERICAS -i <interfície-entrada>: Identifica una interfície de llegada de paquetes. Sólo se puede aplicar en las etapas INPUT, FORWARD y PREROUTING. Ejemplo: iptables A INPUT i eth0... añadirá una regla que se aplicará a todos los paquetes que lleguen por la interfície eth0. -o <interfície-salida>: Idem que antes para una interfície de salida. Sólo se puede aplicar en las etapas OUTPUT, FORWARD y POSTROUTING. 12

4. EXPRESIONES PARA TCP Y UDP Sólo se pueden aplicar a los protocolos TCP y UDP, por tanto, la expresión ha de comenzar con p tcp ó p udp. --sport <puerto-fuente>: Identifica los paquetes TCP que tienen el <puerto-fuente>. Se puede utilizar un número o uno de los nombres de /etc/services. También se puede especificar un rango: inicial:final. Si no se indica el valor inicial es 0 y si no se indica el final es 65535. Por ejemplo: iptables A INPUT p tcp -sport 1024: aplicará la regla a todos los paquetes TCP que tengan un número de puerto 1024. --dport <port-destino>: Idem que antes por el puerto destino. 13

4. EXPRESIONES SÓLO PARA TCP --tcp-flags <lista de flags> <lista de flags a 1>: Mira los paquetes de la <lista de flags> que sólo tienen a 1 los flags de la <lista de flags a 1>. Los flags pueden ser SYN, FIN, ACK, RST, URG, PSH, ALL, NONE. Ejemplo: iptables p tcp - tcp-flags SYN,RST,ACK SYN... aplicará la regla a todos los paquetes que tienen el flag de SYN activado y los de RST y ACK a 0. 14

4. EXPRESIONES PARA ICMP Sólo se pueden aplicar al protocolo ICMP, por tanto, la expresión ha de comenzar con p icmp. --icmp-type <tipo>: identifica los paquetes icmp del tipo <tipo>. Ejecutando iptables p icmp -help nos da un listado de los posibles tipos. 15

4. EXPRESION DE ESTADO Este tipo de expresión se considera no implícita, y se debe de añadir m state para poder aplicarla. Los estados pueden ser: NEW. Cuando se recibe un paquete que se identifica como el de una conexión nueva, la conexión se registra como NEW. Afecta a los paquetes TCP, UDP y ICMP (aunque UDP y ICMP sean no orientados a la conexión) ESTABLISHED. Si se recibe un paquete en sentido contrario asociado a una conexión registrada como NEW, entonces la conexión se registra como ESTABLISHED. 16

4. EXPRESION DE ESTADO RELATED. Si se detecta una nueva conexión que se interpreta que es consecuencia de una ya existente (por ejemplo, porque se deduce que un paquete ICMP de error se ha generado como consecuencia de una conexión ya establecida), entonces la nueva conexión se registra como RELATED. --state <lista de estados>: identifica los paquetes de una conexión que está en uno de los estados de <lista de estados>. Por ejemplo: iptables m state -state RELATED, ESTABLISHED... aplicará la regla a los paquetes de las conexiones que estén en uno de estos estados. 17

5. TIPOS DE REGLAS Los tipos de reglas pueden ser: ACCEPT, DROP, SNAT y DNAT. ACCEPT Acepta el paquete DROP Descarta el paquete. En caso de ser aceptado/descartado, se dejan de mirar el resto de reglas de la tabla y se continua con las reglas del resto de tablas y etapas que queden por atravesar. SNAT NAT en la fuente. Para conexiones iniciadas dentro de la red. Es equivalente a PAT (NAT por puertos) DNAT NAT en el destino. Para conexiones iniciadas fuera de la red. Por tanto lo primero que se hace es una traducción del destino. Es equivalente a NAT estático. 18

5. LA REGLAS ACCEPT Etapas en el camino de routing POSTROUTING SNAT FORWARDING ACLS PREROUTING DNAT Definición de reglas ACL iptables A FORWARD i eth0 o eth1 j ACCEPT iptables A FORWARD i eth0 o eth1 m state state ESTABLISHED,RELATED j ACCEPT Se permite el paso de todo paquete que entra por eth0 y sale por eth1. Se permite el paso de todo paquete que entra por eth1 y sale por eth0 siempre que sea una conexión ya iniciada o establecida. 19

5. LA REGLA DNAT Este tipo de regla se utiliza con la opción -todestination para indicar la dirección donde debe hacerse la traducción. Sólo se puede poner en la tabla nat de las etapas PREROUTING y OUTPUT. Se puede especificar una dirección o un rango de direcciones (y se distribuirán las conexiones aleatoriamente entre las direcciones indicadas, es decir, se hará un load-balancing). En el caso de una expresión TCP o UDP también se puede indicar un puerto o rango de puertos (para distribuir las conexiones entre el rango de puertos). 20

5. LA REGLA DNAT Etapas en el camino de routing POSTROUTING SNAT FORWARDING ACLS PREROUTING DNAT Definición de un DNAT iptables t nat A PREROUTING p tcp i eth0 d 200.10.10.5 -dport ssh j DNAT --to-destination 192.168.1.2 Todo paquete TCP con servicio ssh que entre por la interficie eth0 con destino 200.10.10.5, se traducirá esa dirección destino por la dirección 192.168.1.2, que es la dirección interna privada del servidor ssh. 200.10.10.5 Dirección pública externa del servidor ssh 192.168.1.2 Dirección privada interna del servidor ssh 21

5. LA REGLA SNAT Tiene una sintaxis análoga a la de DNAT, pero con la opción -to-source. Sólo se puede poner en la tabla nat de la etapa POSTROUTING. iptables t nat A POSTROUTING p tcp o ppp0 j SNAT -tosource 200.10.10.10-200.10.10.20:1024-32000 Cambiará las direcciones fuente de los paquetes que salgan por la interficie ppp0 por una de las direcciones del rango 200.10.10.10-200.10.10.20 y puerto del rango 1024-32000. Si no se indica el rango de puertos y es necesario cambiarlo (para que se haga PAT), entonces los puertos inferiores a 512 se mapean a otro puerto inferior a 512, e igualmente para los rangos entre 512-1023 y 1024 (para conservar la semántica del puerto). A los paquetes de una misma conexión se les aplica la misma traducción de dirección/puerto 22

5. LA REGLA SNAT Etapas en el camino de routing POSTROUTING SNAT FORWARDING ACLS PREROUTING DNAT Definición de un SNAT iptables t nat A POSTROUTING o eth0 j SNAT --to-source 200.10.10.5 Todo paquete que salga por la interficie eth0, se le traducirá su dirección privada origen por la dirección pública 200.10.10.5 para que pueda circular por Internet 23

Sea la siguiente red: PRACTICA 12. CONFIGURACIÓN DE IPTABLES EN LINUX 24

Características de la red PRACTICA 12. CONFIGURACIÓN DE IPTABLES EN LINUX El PC 200.10.10.1 (pci) representa Internet y está conectado por un enlace punto a punto al firewall (pcf) de la red privada. El PC 200.10.10.1 (pci) representa Internet y está conectado por un enlace punto a punto al firewall (pcf) de la red privada. En la red privada hay una red DMZ donde hay el servidor (pcs). Es el único lugar donde se puede acceder desde Internet. Además hay una red interna con pch que ha de tener acceso al servidor. Hemos contratado dos direcciones públicas en el ISP 200.10.10.2-200.10.10.3: una identifica el firewall (200.10.10.2) y la otra la utilizaremos para poder salir de la red privada. pci no ve pcs ni pch, debido a que pci pertenece a Internet y no puede encaminar paquetes hacia las direcciones privadas. 25

PRACTICA 12. CONFIGURACIÓN DE IPTABLES EN LINUX Paso 1. Si ejecutamos la siguiente comanda en pcf: pcf# iptables t nat A POSTROUTING o ppp0 j SNAT --tosource 200.10.10.3 Qué hace? Comprobar que ahora pcs y pch ven pci pero no viceversa, por qué? Paso 2. Ejecutar la comanda: pcf# iptables t nat A PREROUTING p tcp i ppp0 d 200.10.10.3 - dport ssh j DNAT --to-destination 192.168.1.2 Qué se ha programado? Qué trafico se habilita? Qué pasa si pci hace un ping a pcs?. Paso 3. Qué regla se tendría que ejecutar para que se pueda hacer ping desde pci a pcs? y para que se pueda conectar al servidor de ftp de pcs? 26

PRACTICA 12. CONFIGURACIÓN DE IPTABLES EN LINUX Paso 4. Ejecuta los comandos: pcf# iptables P INPUT DROP pcf# iptables P OUTPUT DROP pcf# iptables P FORWARD DROP Comprueba que ninguno de los PCs se ve. Por qué? Paso 5. Ejecuta los comandos: pcf# iptables A FORWARD i eth0 o ppp0 j ACCEPT pcf# iptables A FORWARD i ppp0 o eth0 m state state ESTABLISHED,RELATED j ACCEPT Comprueba que pcs puede hacer ping a pci pero no viceversa. Comprueba que pcs puede acceder a cualquier servicio de pci (por ejemplo, ssh y ftp) pero no viceversa. Por qué? 27

PRACTICA 12. CONFIGURACIÓN DE IPTABLES EN LINUX Paso 6. Ejecuta la comanda: pcf# iptables A FORWARD p tcp i ppp0 o eth0 d 192.168.1.2 jaccept Comprueba que ahora sí que pci puede hacer ssh a pcs pero pch no. Por qué? Comprueba que pci sólo puede acceder al servidor de ssh (comprueba por ejemplo que pci no puede hacer ftp a pcs), Por qué? Paso 7. Configura el firewall para que pci pueda hacer ping a pcs. Paso 8. Ejecuta las comandas: pcf# iptables A FORWARD i eth1 o eth0 j ACCEPT pcf# iptables A FORWARD i eth0 o eth1 j ACCEPT Ahora pcs y pch se ven, pero no ven pcf. Por qué? 28

PRACTICA 12. CONFIGURACIÓN DE IPTABLES EN LINUX Paso 9. Ejecuta los comandos: pcf# iptables A INPUT p icmp i eth1 d 192.168.0.1 j ACCEPT pcf# iptables A OUTPUT p icmp o eth1 s 192.168.0.1 m state - -state ESTABLISHED,RELATED j ACCEPT -j ACCEPT Ahora pch puede hacer ping a pcf, pero no puede acceder a ninguno de los servicios de pcf. Por qué? Ejecuta los comandos necesarios para que pcs tenga las mismas restricciones de acceso a pcf que pch. Paso 10. Configura el firewall para que pch sea el único host que pueda conectarse al servidor de ssh de pcf. Pch no ha de poderse conectar a ningún otro servicio de pcf. Paso 11. Configura el firewall para que pch pueda conectarse al servidor de ssh de pci, pero a ninguno de los servicios de pci ni cap altra host de Internet. pci no ha de poder iniciar ninguna conexión con pch, ni siquiera hacer ping. 29