Prote

61
23 de xuño de 2010 Ferramentas de seguridade en GNU/Linux Curso de Extensión Universitaria Francisco José Ribadas Pena [email protected] Departamento de Informática Universidade de Vigo Protección perimetral. Fundamentos de Firewalls e Redes Privadas Virtuais

Transcript of Prote

Page 1: Prote

23 de xuño de 2010

Ferramentas de seguridade en GNU/LinuxCurso de Extensión Universitaria

Francisco José Ribadas [email protected] de InformáticaUniversidade de Vigo

Protección perimetral.Fundamentos de Firewalls e Redes Privadas Virtuais

Page 2: Prote

2

Indice

Parte I. CortafuegosTipos de cortafuegosFiltrado de paquetesReglas de filtrado

Parte II. NETFILTER/iptablesArquitectura de NETFILTER/iptablesMódulos NETFILTERInterfaces, herramientas e información

Parte III. Topologías de cortafuegosTopologías básicasZonas desmilitarizadas

Page 3: Prote

3

Indice

Parte IV. Uso de shorewallShorewallConfiguración de Shorewall

Parte V. Uso de OpenVPNRedes privadas virtuales (VPN)Configuración y uso de OpenVPN

ANEXO: Uso de iptables

Page 4: Prote

4

PARTE I. Cortafuegos

Tipos de cortafuegosFiltrado de paquetesReglas de filtrado

Page 5: Prote

5

Cortafuegos (I)

Cortafuegos/Firewalls: Mecanismos de control de acceso a la red y los recursos informáticos de una organización

Formado por componentes hardware y softwareSepara nuestra red interna (equipos de confianza) de los equipos externos (potencialmente hostiles) mediante el control del tráficoDeniega intentos de conexión no autorizados (en ambos sentidos)

Finalidad: Prevención de ataques desde exterior hacia equipos internos

Opcionalmente: control del uso de la red por parte de los equipos internosProtección del propio equipo: “firewalls personales”

Page 6: Prote

6

Cortafuegos (II)

Tipos de controles realizadosControl de Servicios: determinar los tipos de servicios de red accesibles desde interior y exterior

Dos grandes alternativas:Cortafuegos filtra tráfico a los servicios basándose en la dirección IP + núms. de puertoCortafuegos proporciona un software intermediario (Proxy) para cada servicio concreto a controlar

Control de Usuarios: control de accesos en base al usuario concreto que pretende accederControl de Comportamiento: control de cómo se usan los servicios

Page 7: Prote

7

Cortafuegos (II)

Utilidad de los Cortafuegos (I)Definen un punto único de resistencia frente a ataques

mantiene usuarios no autorizados fuera de la red protegidaprohibe entrada/salida de servicios potencialmente vulnerablesprotección frente a ciertos ataques de suplantación de IP (IP spoofing)simplifica la administración (punto único de entrada)

Ubicación donde realizar supervisión de eventos de seguridad

registro de accesos, intentos de intrusión, gestión de alarmas de seguridad, auditorias, etc

Page 8: Prote

8

Cortafuegos (III)

Utilidad de los Cortafuegos (II)Ubicación para situar otros elementos de gestión de red

traducción de direcciones, NAT(network address translation) direc. locales (privadas) <-> direc. públicas de Internet

software de auditoria y registro del uso de la redplataforma para implantar pasarelas IPSec o similares (enlaces de redes virtuales privadas [VPN])plataforma donde centralizar sistemas de detección de intrusiones (ej.: SNORT)plataforma para filtros de nivel de aplicación (antivirus, SPAM)

LimitacionesNo protegen contra ataques que no pasen por el CortafuegosNo protegen contra amenazas internasPueden proporcionar una sensación de falsa seguridad

el Cortafuegos no basta por si sóloseguridad en redes afecta a muchos aspectos

Page 9: Prote

9

Tipos de Cortafuegos (I)

Filtros de paquetesInspeccionan los paquetes recibidos/enviados y comprueban si encajan en las reglasFiltrado basado en la información contenida en cada paquete recibido/enviado

cada paquete se inspecciona de forma aislada y la decisión se toma de forma aisladafiltro ''sin estado'': no tiene en cuenta si los paquetes son parte de una conexión

Trabajan en los niveles de RED y TRANSPORTE de la pila TCP/IP

Manejan info. de los protocolos IP, TCP, UDP, ICMPUso de puertos estándar para bloquear servicios concretosIntegrados en routers o en equipos dedicados.Ejemplo en GNU/Linux: NETFILTER/iptables “básico”

Page 10: Prote

10

Tipos de Cortafuegos (II)

Filtros ''con estado'' (filtros de circuitos)Llevan registro de las conexiones que pasan a través del CortafuegosEstudian y reconocen los paquetes

que inician/finalizan las conexionesque forman parte de conexiones establecidasque están relacionados con conexiones previas

Permiten un control más fino que los filtros sin estadoEjemplo en GNU/Linux: NETFILTER/iptables con módulos de seguimiento de conexiones (connection tracking)

Page 11: Prote

11

Tipos de Cortafuegos (III)

Filtros a nivel de aplicación (Proxies)Cortafuegos basados en el uso de Proxies en el nivel de aplicación

interceptan los mensajes entre aplicaciones bloqueo de aplicaciones no permitidas (las que no cuenten con Proxy)control del tráfico de las aplicaciones permitidas

Proxy ''comprende'' el protocolo de una aplicación concretapreviene abusospermite limitar porciones concretas del protocolodetectan uso de protocolos no permitidos en puertos estándar

Mayor ''conocimiento'' sobre el tráficorealiza un análisis en profundidad de los paquetes

Pueden ofrecer otros servicios de valor añadido (caché)Ejemplos en GNU/Linux: Proxy-cache web SQUID

Page 12: Prote

12

Filtrado de paquetes (I)

Implementado en los dispositivos que encaminan tráfico entre la red externa y la internaTrabaja en las capas Red (IP) y/o Transporte (TCP,UDP)Suele implementarse como un elemento añadido a un router o como un equipo dedicadoAnalizan cada paquete (antes de la decisión de enrutado) y aplican un conjunto de reglas para decidir si lo retransmite o lo descarta

inspecciona las cabeceras del paquete y comprueba si encajan en la lista de reglasdecisión: aceptación/rechazo

Filtrado basado en la información contenida en cada paquete concreto

cada paquete se analizan de forma aisladanormalmente no tienen en cuenta si son parte de una conexión

Page 13: Prote

13

Filtrado de paquetes (II)

Las reglas de filtrado emplean la información contenida en cada paquete de red analizado

direcciones IP de origen y destinopuertos de origen y destino (TCP, UDP)tipo de protocolo: TCP, UDP, IMCPinterfaz de entrada o salida (en Cortafuegos con 3 o más conexiones de red)otra información:

tamaño del paquete, tiempo del vida del paquete, indicadores específicos de protocolos de transporte

El control de servicios se basa en el filtrado de los puertos estándar (http://www.iana.org/assignments/port-numbers)ftp 21/tcp dns 53/tcp,53/udp rpc 111/tcp,111/udpssh 22/tcp finger 79/tcp ldap 389/tcptelnet 23/tcp http 80/tcp https 443/tcpsmtp 25/tcp pop3 110/tcp mysql 3306/tcp

Page 14: Prote

14

Reglas de filtrado

Funcionamiento generalFiltrado paquetes se configura mediante lista de reglas estáticas

condiciones: basadas en campos de cabeceras IP y/o TCPacciones: descartar, rechazar, retransmitir

Reglas comprobadas secuencialmente (el orden importa)Cuando hay una correspondencia, se invoca la acción Si ninguna regla encaja, se aplica la acción predeterminada

denegar por defecto: lo que no está expresamente permitido, está prohibido

indicar explicitamente qué servicios se dejan pasarpolítica conservadora, mayor nivel de protección

aceptar por defecto: lo que no está expresamente prohibido, está permitido

servicios vulnerables/peligrosos deben bloquearse explícitamentepolítica más permisible, nivel de protección más bajo

Page 15: Prote

15

NETFILTER/iptables (I)

NETFILTER es un componente del núcleo de Linux (desde la ver. 2.4) encargado de la manipulación de paquetes de red

Tareas que realizafiltrado de paquetestraducción de direcciones (NAT)modificación de paquetes

Página del proyecto: http://www.netfilter.orgiptables es una herramienta/aplicación que hace uso de la infraestructura que ofrece NETFILTER para construir y configurar firewalls.

permite definir políticas de filtrado, de NAT y realizar logs remplaza a herramientas anteriores: ifwadmin, ipchainspuede usar las capacidades de seguimiento de conexiones NETFILTER para definir firewalls con estado

Page 16: Prote

16

PARTE II. NETFILTER/iptables

Arquitectura de NETFILTER/iptablesMódulos NETFILTERInterfaces, herramientas e información

Page 17: Prote

17

NETFILTER/iptables (II)

Las 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 /etc/init.d ó /etc/rcX.d para que sea ejecutado cada vez que arranca el sistema

Otras utilidades: iptables-save, iptable-restore

Page 18: Prote

18

Arquitectura NETFILTER/iptables (I)

Componentes NETFILTER/iptables (I)TABLAS: se corresponden con los distintos tipos de procesamiento que se pueden aplicar sobre los paquetes (3 tablas disponibles)

filter: Controla decisiones de filtrado de paquetes (aceptar/denegar)

Cadenas: sc input, output, forwardnat: 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, postroutingLas reglas de cada tabla se organizan en cadenas, que se consultarán en momentos concretos del flujo de los paquetes

Page 19: Prote

19

Arquitectura NETFILTER/iptables (II)

Componentes NETFILTER/iptables (cont.)CADENAS: Contienen las listas de reglas a aplicar sobre los paquetes5 cadenas predeterminadas, asociadas a momentos concretos del flujo de los paquetes

INPUT: reglas a a plicar sobre los paquetes destinados a la propia máquina

controla las entradas al propio equipo/cortafuegosOUTPUT: reglas a aplicar sobre los paquetes originados en la propia máquina,

controla las salidas del propio equipo/cortafuegosFORWARD: 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)

Page 20: Prote

20

Arquitectura NETFILTER/iptables (II)

(cadenas predefinidas cont.)

PRE-ROUTING: reglas a aplicar sobre paquetes justo antes de enviarlos a la red

usadas para DNAT (destination NAT) [redirección de puertos]POST-ROUTING: reglas aplicar sobre paquetes (propios o ajenos) recibidos de la red

se aplican antes de decidir a dónde encaminarlos [proceso local o reenvío]usadas 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

Page 21: Prote

21

Arquitectura NETFILTER/iptables (III)

Flujo de paquetes en NETFILTER/iptables

Page 22: Prote

22

Arquitectura NETFILTER/iptables (IV)

Funcionamiento de la reglas NETFILTER/iptablesPara cada paquete, en función del procesamiento que vaya a sufrir, se consulta la cadena que corresponda a su situación dentro de NETFILTERDentro de cada cadena las reglas se inspeccionan secuencialmente [el orden de reglas es MUY importante]Si el paquete encaja con las condiciones de una regla, se ejecuta la acción correspondiente y se abandona la cadena (se deja de mirar la cadena)Si el paquete no encaja con ninguna regla, se le aplica política por defecto que se haya asignado a esa cadena.

por defecto las cadenas predeterminadas están inicializadas con una política acceptal agotar las cadenas definidas por el usuario, se retorna a la cadena predeterminada que la activó

Page 23: Prote

23

Módulos NETFILTER adicionaes

NETFILTER tiene una arquitectura modular que permite la inclusión de nuevos componentes

Es posible incluir nuevas condiciones y objetivos que permitan hacer distintos tipos de controles/procesamiento sobre los paquetes.http://www.netfilter.org/projects/patch-o-matic/index.html

Repositorios: base, extra y externalAlgunos ejemplos

geoip: permite identificar el origen geográfico de un paquete en base a su dirección IP.Ipp2p: aporta capacidades para reconocer algunos tipos de tráfico P2P (kazaa, edk, etc)string: permite emplear reglas que analicen cadenas de texto presentes en la carga útil de los paquetes procesdos

Descripción de módulos disponibles (patches)http://www.netfilter.org/documentation/HOWTO/netfilter-extensions-HOWTO.html

Page 24: Prote

24

Interfaces, herramientas e información

Interfaces gráficosFirestarter: http://www.fs-security.com/FirewallBuilder: http://www.fwbuilder.org/KMyFirewall: http://www.kmyfirewall.org/Guardog: http://www.simonzone.com/software/guarddog/

Herramientas en modo textoShorewall: http://shorewall.net/FireHOL: http://firehol.sourceforge.net/Dwall: http://dag.wieers.com/home-made/dwall/

Fuentes de informaciónPágina del proyecto:http://www.netfilter.org/documentation/Tutorial detallado: http://iptables-tutorial.frozentux.net/Tutorial práctico en español: http://www.pello.info/filez/firewall/iptables.html

Page 25: Prote

25

PARTE III. Topologías de cortafuegos

Topologías básicasZonas desmilitarizadas

Page 26: Prote

26

Topologías básicas de cortafuegos (I)

Cortafuegos básico de bordeUn equipo actúa como cortafuegos, conectando la red interna con la externa

Ofrece todas las funcionalidades de cortafuegos +(opcionalmente) todos los servicios adicionalesSi se ve comprometido, todo el sistema se compromete

Opción 1: Router con filtrado de paquetesOpción más simple, pero menos potenteEscasas posibilidades de monitorizacion

Opción 2: Equipo dedicado (dual homed host)Sistema estandar con 2 interfaces de red con la posibilidad de encaminamiento (IP forwarding) activadaTodas las conexiones pasan a traves de élPuede integrar los Proxies precisos

Page 27: Prote

27

Topologías básicas de cortafuegos (II)

Cortafuegos básico de borde (cont.)Organizacion típica dual homed host

Los equipos de la red externa sólo pueden comunicarse con el dual homed hostIdealmente, lodos los servicios al exterior se ofrecerán únicamente desde el dual homed hostEquipos de red interna y externa no deberían poder entrar en contacto directamente, sino a traves de un intermediario(Proxy)

Page 28: Prote

28

Topologías básicas de cortafuegos (III)

Host oculto (screened host)Ofrecer los servicios (internos y externos) en una única máquina ubicada en el interior

alojará a los Proxies de aplicación usados por la red internaalojará los servicios ofrecidos al exterior

en el esquema anterior estaban en el Cortafuegos o repartidos en la LAN interna

Única máquina accesible desde el exterior (host bastion)Elemento potencialmente vulnerable por ser el único accesible desde el exteriorAdministración delicada (es la base de la seguridad de este esquema)

mínimos servicios software imprescindiblesactualizaciones de seguridad del S.O. + servidoresmonitorización de ficheros de log

Page 29: Prote

29

Topologías básicas de cortafuegos (VI)

Host inseguro (untrusted host) [variante del anterior]El host bastión con los servicios hacia el exterior se ubica fuera de la red protegida

Cortafuegos no tiene efecto sobre élOfrece los servicios públicos sin debilitar la red interna

Configuración y administración delicada

HOST OCULTO HOST INSEGURO

Page 30: Prote

30

Zonas desmilitarizadas (I)

Red de Perímetro/Zona Desmilitarizada(DMZ)Objetivo: aislar los servicios ofrecidos al exterior en una red propia para evitar acceso a la red protegida

Los host bastión se sitúan detrás del cortafuegos, pero en una red aislada (DMZ)

Incrementa seguridad, fiabilidad y disponibilidad respecto a los esquemas anterioresLos equipos internos siguen sin poder confiar en los equipos de la DMZ

DMZ es accesible desde el exterior y sus equipos pueden haber sido comprometidos

La DMZ define una red de servicios públicos Contiene todos los equipos y sistemas que requieran acceso controlado desde el exterior (web, email, dns, etc)Puede incluir los proxies de aplicación para la red interna

Page 31: Prote

31

Zonas desmilitarizadas (II)

DMZ con cortafuegos de 3 interfacesEsquema más simple para definir y gestionar una DMZ

Page 32: Prote

32

Zonas desmilitarizadas (III)

DMZ doble cortafuegos (screened subnet)Mejora del esquema anterior: añade un segundo cortafuegos

cortafuegos externo (de acceso): bloquea/controla tráfico no deseado de red externa a DMZcortafuegos interno (de contención): bloquea/controla tráfico no deseado de DMZ a red interna

Page 33: Prote

33

Zonas desmilitarizadas (IV)

Se aumenta la separación entre la red de servicios externos(DMZ) y la red interna

DMZ se sitúa entre cortafuegos externo e interno2 niveles de seguridad (red DMZ + red interna)

Tráfico de exterior a red interna atraviesa 2 cortafuegosMayor tolerancia a fallos: evita puntos únicos de fallo

Superando cortafuegos externo, sólo queda desprotegida DMZAún comprometiendo un equipo de la DMZ, se contaría con el cortafuegos de contención

Limitaciones:dificultad de administración (gestionar 2 conjuntos de reglas de filtrado funcionando en conjunto)sensación de falsa seguridad

Ventajas:mayor seguridad y tolerancia a fallosmayor flexibilidad: usar tantas DMZ como sea preciso, con distintos niveles de seguridad

Page 34: Prote

34

PARTE IV. Uso de shorewall

ShorewallConfiguración de Shorewall

Page 35: Prote

35

Shorewall

Shorewall (Shoreline Firewall) es una herramienta para simplificar la construcción de sistemas cortafuegos que hagan uso de NETFILTER

Shorewall no es un cortafuegos, es una herramienta de alto nivel para configurar NETFILTER

Genera reglas NETFILTER en base a ficheros de configuración que describen red y políticas de filtrado

Funciona de modo puntual, no continuoConfigura las reglas NETFILTER del kernel, pero no monitoriza el tráfico en el firewall

Web del proyecto: http://shorewall.net/Facilita la gestión de configuraciones de red complejas

La configuración de Shorewall se basa en el concepto de zonas (red interna, red externa, dmz, etc)Las políticas de filtrado y acceso se definen en base a esas zonas

Page 36: Prote

36

Configuración de Shorewall (I)

La configuración de Shorewall se realiza mediante ficheros de texto ubicados en /etc/shorewallFichero /etc/shorewall/zones

Shorewall estructura la red en un conjunto de zonas, definidas en el fichero /etc/shorewall/zonesExiste una zona predefinida ($FW) asociada al propio firewallEjemplo (three-interfaces)

#ZONE TYPE OPTIONS IN_OPTIONS OUT_OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4

Los equipos de la red (y los externos) estarán ubicados en una de las zonas definidas.

Se especifica en los ficheros /etc/shorewall/interfaces y/o /etc/shorewall/hostsLas direcciones de los interfaces del firewall pertenecen a la zona del firewall $FW.

Page 37: Prote

37

Configuración de Shorewall (II)

Fichero /etc/shorewall/interfacesIndica que interfaz/interfaces de red del firewall están asociados con el tráfico de cada zona

#ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect dhcp,routefilter,norfc1918loc eth1 detectdmz eth2 detect

Todas las máquinas (direcciones) conectadas a un interfaz “pertencerán” a la zona correspondienteCuando varias zonas son “servidas” por un mismo interfaz, se señala en el campo INTERFACE con “-”

Será necesario especificar en el fichero /etc/shorewall/hosts las máquinas concretas de cada zona

Ejemplos de opciones: norfc1918: interfaz no admite tráfico desde direcciones del rango de IPs privadas)blacklist: interfaz no admite máquinas de una lista negra de máquinas prohibidas (/etc/shorewall/blacklist)

Page 38: Prote

38

Configuración de Shorewall (III)

Fichero /etc/shorewall/hostsIndica que equipos están asociados con cada zona (análogo a /etc/shorewall/interfaces)#ZONE HOST(S) OPTIONSlocal1 eth1:192.168.3.0/24local2 eth1:192.168.4.0/24

La reglas de filtrado de tráfico se expresan en términos de zonas, mediante 2 ficheros

Las políticas generales (por defecto) para las conexiones entre zonas se especifican en /etc/shorewall/policyLas excepciones a las políticas por defecto se indican en el fichero /etc/shorewall/rules

Funcionamiento del firewall definido por ShorewallLas peticiones de conexión son “comprobadas” contra las reglas de /etc/shorewall/rulesSi ninguna regla encaja se toma la acción que indique el fichero /etc/shorewall/policy

Page 39: Prote

39

Configuración de Shorewall (IV)

Fichero /etc/shorewall/policyEspecifica la acción por defecto para el tráfico entre dos pares de zonas (origen+destino) y el tipo de log

#SOURCE DEST POLICY LOG LEVEL LIMIT:BURSTloc net ACCEPTnet all DROP infoall all REJECT info

Políticas posibles: ACCEPT, DROP, REJECT, QUEUE, NFQUEUE, CONTINUE,NONELas políticas por defecto pueden tener acciones adicionales asociadas, definidas en /etc/shorewall/actions

Page 40: Prote

40

Configuración de Shorewall (V)

Fichero /etc/shorewall/rulesControla el establecimiento de conexiones que supongan excepciones a las definidas en /etc/shorewall/policyPueden definirse a nivel de zona o de direcciones dentro de una zona (loc:192.168.100.23)

#ACTION SOURCE DEST PROTO DEST-PORT SOURCE-PORT ORIGINAL-DESTDNAT net loc:10.10.10.3 tcp 80 - 130.252.100.69REDIRECT loc 3128 tcp www - !192.168.2.2ACCEPT loc $FW tcp 22

Acciones posibles: ACCEPT, NONAT, DROP, REJECT, DNAT, SAME, REDIRECT, CONTINUE, LOG, etc

Posibilidad de definir/utilizar MACROS (combinaciones de ACCION+nums. de puertos) → permite reglas más compactas

No es necesario definir reglas para diferenciar entre el tráfico de establecimiento de conexiones y el tráfico que es parte de una conexión ya establecida o es tráfico relacionado.

Shorewall gestiona el seguimiento y el estado de las conexiones

Page 41: Prote

41

Configuración de Shorewall (VI)

Traducción de direcciones (SNAT y DNAT)El enmascaramiento de direcciones (SNAT: source-NAT) se configura el fichero /etc/shorewall/masq

#INTERFACE SOURCE ADDRESS eth0 192.168.1.0/24 206.124.146.176 eth1 eth2

Tráfico con origen 192.168.0.0/24 se enmascarará al enviarlo por interfaz eth0 usando la dirección 206.124.146.176 (SNAT)Tráfico con origen e eth2 se enmascarará al enviarlo por interfaz eth1 usando la dir. IP de ese interfaz (SNAT)Si no se indica dirección se usa la asociada al interfazNOTA: Asegurarse que en /etc/shorewall/shorewall.conf tenga activada la redirección (IP_FORWARDING=On)

La redirección de puertos (DNAT: destination-NAT) se configura mediante reglas en /etc/shorewall/rules#ACTION SOURCE DEST PROTO DEST-PORTDNAT net dmz:10.10.10.23:80 tcp 80

Redirección tráfico web recibido hacia máquina 10.10.10.23 de DMZ

Page 42: Prote

42

Configuración de Shorewall (VII)

Otros aspectos:Shorewall soporta el uso de diferentes mecanismos (IPSEc, OpenVPN, etc) para establecer túneles/enlaces cifrados con los que definir redes privadas virtuales (VPN).

Especificadas en fichero /etc/shorewall/tunnelsDefine el tipo de VPN (IPsec, OpenVPN, ...) y si interfaz asociado

Depuración y ejecución del firewall$ shorewall start/stop: arranca/para el firewall (no elimina las reglas en el kernel)$ shorewall clear: “borra” en memoria las reglas NETFILTER$ shorewall trace start: arranca el firewall emitiendo traza de los pasos seguidos

La distribución de Shorewall incluye conjuntos de ficheros de configuración de ejemplo, que sirven como punto de partida para crear el firewall.

Veremos three-interface http://shorewall.net/three-interface.htm

Page 43: Prote

43

PARTE V. Uso de OpenVPN

Redes privadas virtuales (VPN)Configuración y uso de OpenVPN

Page 44: Prote

44

Redes Virtuales Privadas

VPN (Virtual Private Network): Conjunto de tecnologías que permiten extender el alcance de una red local (privada) sobre la infraestructura de una red pública no controlada, manteniendo la confidencialidad del tráfico.

Hacen uso de enlaces cifrados para definir conexiones protegidas entre porciones “separadas” de la propia redEjemplos típicos:

Interconexión “segura” entre 2 delegaciones de una misma organización usando una red pública no segura (Internet) [VPN punto a punto]Conexión segura de un usuario a la red interna desde equipos fuera de la red de la organización [VPN de acceso remoto]

Evitan el uso de lineas dedicadasTecnologías: IPSec, PPTP, L2TP, túneles SSH, OpenVPN

Page 45: Prote

45

OpenVPN (I)

OpenVPN es una implementacion de VPN que usa el protocolo SSL/TLS (Secure Socket Layer/Transport Layer Security) para crear enlaces de red cifrados.

Usualmente emplea la implementación OpenSSLWeb: http://www.openvpn.net

Permite 3 modos de operación:Host a Host: crea un enlace cifrado entre dos máquinas independientesRoad Warrior: permite que un usuario se conecte al servidor OpenVPN desde fuera de la red propia y pueda acceder a sus recursosRed a Red: permite que 2 redes separadas pueden comunicarse para formar una sóla red

Se crea la sensación de que están unidas por un enlace virtual Tráfico de comunicación enviado sobre la red pública va cifrado

Page 46: Prote

46

OpenVPN (II)

Funcionamiento:Se establece una conexión SSL cifrada entre los 2 extremos usando la red pública (por defecto usa el puerto UDP)En los equipos conectados se crearán interfaces de red virtuales (tun0, tun1, ...) para acceder a esa conexión

Funcionan como un interfaz de red convencional (ethX)Tiene dir. IP asignada, participan en las reglas del firewall, etc

El tráfico que reciban se enviará cifrado sobre la conexión SSL

Page 47: Prote

47

OpenVPN (III)

OpenVPN soporta 2 modos de autenticación/cifradoClave estática: se genera una clave estática que será compartida por los 2 extremos

Esquema sencillo de configurar e implantarExige un mecanismo seguro para el intercambio previo de la clave y la protección de esa clave en ambos extremos

Modo SSL: hace uso del mecanismo de establecimiento de sesiones SSL (basado en certificados digitales) para acordar una clave de sesión temporal que se usará para cifrar cada conexión concreta

Exige que ambos extremos tengan certificados digitales firmados por una autoridad reconocida por ambos

Shorewall contempla la definición de zonas VPN y el uso de los enlaces virtuales cifrados creados por OpenVPN

Page 48: Prote

48

Enlaces e información

Fuentes de informaciónPágina del shorewall: http://openvpn.net/Página de OpenVPN: http://shorewall.net/

Interfaces OpenVPNOpenVPNAdmin:http://home.gna.org/kvpncOpenVPNControl: http://sourceforge.net/projects/openvpn-control/KVPN: http://home.gna.org/kvpnc

Esquemas y manuales de configuración ShorewallStandalone: http://shorewall.net/standalone.htmTwo-interface: http://shorewall.net/two-interface.htmThree-interface: http://shorewall.net/three-interface.htm

Page 49: Prote

49

Funcionamiento SSL/TLS

SSL: Secure Socket Layer Desarrollo inicial por NetscapeInicalmente para proteger tráfico HTTP, aplicable en otros protocolos.

Actualmente es el estándar TLS: Transport Later SecurityProtege el tráfico empleando cifrado asimétrico, cifrado simétrico y HMAC (autenticación de mensajes con HASH + clave secreta), garantizando:

Autenticación de las entidades (servidor y/o cliente): empleando certificados digitalesConfidencialidad de los mensajes: empleando cifrado simétrico con claves de cifrado negociadas/acordadas en cada conexiónIntegridad y atenticidad de los mensajes: uso de HMAC con claves de autenticación negociadas/acordadas en cada conexión

Establecimiento de conexión: Intercambio de certificados servidor y cliente (opcional)Si son reconocidos: intercambio seguro de clave secreta maestra (mediante cifrado asimétrico)

Tráfico de mensajes: cifrados + autenticados con claves de sesión generadas a partir de la clave secreta maestra

Page 50: Prote

50

ANEXO. Uso de iptables

Page 51: Prote

51

Uso de iptables (I)

Esquema reglas iptablesiptables -t tabla [COMANDO][CONDICIONES][OBJETIVO]

Comandos iptables-L/--list cadena lista las reglas 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 política por defecto de una cadena

-A/--append cadena añade una regla (condiciones+objetivo) 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

Page 52: Prote

52

Uso de iptables (II)

Condiciones iptablesEspecifican los criterios que debe cumplir un paquete (campos que lo componene) para que le sea aplicable la acción de una reglaDirecciones IP

origen: -s/--source (-s 192.168.100.23, -s 10.10.10.0/24)destino: -d/--destination (-d 10.10.10.47,-d 10.10.10.0/24)

Interfaz (dispositivo por el que se ha recibido o por que que saldrá un paquete)

de entrada: -i/--in-interface (-i eth1) [en input, forward, pre-routing]

de salida: -o/--out-interface (-o ppp0) [en output, forward, post-routing]

Tipo de protocolo: -p/--protocolprotocolo nivel transporte: -p TCP, -p UDP, -p ICMP, -p all

Page 53: Prote

53

Uso de iptables (III)

Condiciones iptables (cont.)Puertos (para TCP y UDP)

de origen: -sport/--source-portde destino: -dport/--destination-portpuede ser un número de puerto (-sport 80), un nombre de servicio (-sport http) o un rango de puertos (-sport 1024:65535)

Control del estado de la 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 conocidaestablished: paquete que pertenece a una conex. válida ya establecidanew: paquete mediante el cual se está creando una nueva conexiónrelated: paquetes que inician una nueva conexión que está asociada con otra ya establecida

Otro módulo para filtros con estado (seguimiento de conexiones): -m conntrack –ctstate [ESTADOS]

Page 54: Prote

54

Uso de iptables (IV)

Condiciones iptables (cont.)Flags protocolo TCP: --tcp-flags ...

bits de control en paquetes TCP (SYN,ACK,FIN,RST,URG,PSH)

Direcciones MAC: -m –mac –mac-source ...Límites:

-m limit –limit [ratio] la regla encajará hasta que se alcance el ratio de ocurrencia (n/second, n/minute, n/hour, n/day) especificado

-m limit –limit-burst [numero] la regla encajará hasta que se alcance el valor máximo indicado (reinicio de contadores)

Utiles para limitar logs y realizar una detección y control básico de posibles ataques de denegación de servicio DoS(denial of service)

Nota: para expresar la negación de una condición en una regla se emplea el símbolo !-s ! localhost : el paquete no procede de la própia máquina-dport ! ssh : todos los puertos destinos excepto el 23 (ssh)

Page 55: Prote

55

Uso de iptables (V)

Objetivos iptablesObjetivos predefinidos en la tabla -t filter

A usar en las cadenas INPUT,OUTPUT,FORWARD-j ACCEPT el paquete se acepta

Se lepermite que continúe su curso (a otra cadena o a su destino final ) y se deja de recorrer la cadena actual

-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

Page 56: Prote

56

Uso de iptables (VI)

Objetivos iptables (cont.)Objetivos predefinidos en la tabla -t nat

-j SNAT –to-source Realiza SNAT(source-NAT) sobre los paquetes salientes [enmascaramiento de direcciones]

Cambia la dir. IP (opc. puerto) de origen del paqueteSólo se puede invocar en la cadena POST-ROUTING

-j MASQUERADE También realiza SNAT, pero usando la dir. IP del propio equipo

Útil en conexiones volátiles [adsl, modem]) Sólo se puede invocar en la cadena POST-ROUTING

-j DNAT –to-destination Realiza DNAT(destination-NAT) sobre los paquetes entrantes [redireccionamiento de puertos]

Cambia la dir. IP (opc. puerto) de destino del paquete Sólo se puede invocar en la cadena PRE-ROUTING(s´olo disponible en prerouting (y opcionalmente en OUTPUT)

Page 57: Prote

57

Uso de iptables (VII)

Objetivos iptables (cont.)Objetivos predefinidos para hacer log

No se detiene el recorrido por la cadena-j log crea entrada en el log del sistema [/var/log/sysylog]

Opciones: --log-prefix, --log-level-j ulog crea entrada en un log definido por usuario

Objetivos definidos por el usuarioEs posible crear cadenas definidas por el usuario (-N micadena) y eliminarlas (-X micadena)Para acceder a una cadena de usuario bastará incluir la acción -j micadena en una regla de las cadenas predefinidas.El paquete recorre las reglas de la cadena de usuario hasta encajar en las condiciones de alguna regla, ejecutando su acciónSi no encaja en ninguna regla, el paquete retorna a la cadena anterior desde la que accedió a la cadena de usuario.

Page 58: Prote

58

Ejemplo 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 DMZ)Servidores http y https públicos en la máquina interna 10.10.10.66Servidores corporativos de correo saliente (smtp) y entrante (pop3) en 10.10.10.77

Restricciones sobre el firewallTodas las conexiones hacia el firewall están prohibidasSó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 interiorNo 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

Page 59: Prote

59

#!/bin/sh

# Vaciar y reiniciar las tablas actualesiptables -Fiptables -Xiptables -Ziptables -t nat -F

# Establecer politicas por defectoiptables -P INPUT DROP # descartar entradas al firewalliptables -P OUTPUT ACCEPT # aceptar salidas del firewalliptables -P FORWARD ACCEPT # aceptar reenvios a traves del firewalliptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT

# Permitir localhostiptables -A INPUT -i lo -j ACCEPT

Page 60: Prote

60

# SNAT (enmascaram. de salida de red interna 10.10.10.0/24) hacia exterioriptables -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: descartar antes paquetes externos dirigidos a red interna # si se hiciera en FORWARD, se eliminarian las redireccionesiptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \ -j DNAT --to-destination 10.10.10.66:80iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 \ -j DNAT --to-destination 10.10.10.77:25iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 110 \ -j DNAT --to-destination 10.10.10.77.110

Page 61: Prote

61

# Reglas de filtrado# Filtrado conexiones entrantes al firewall # - permitir SSH desde red interna, resto bloqueado por politica por defectoiptables -A INPUT -i eth1 -s 10.10.10/24 -p tcp --dport 22 -j ACCEPT

# Habilitar forward de paquetesecho 1 > /proc/sys/net/ipv4/ip_forward

# Filtrado salida red interna# - bloquear salida conex. SMTP de red interna, # el resto está permitido por politica por defectoiptable -A FORWARD -i eth1 -o eth0 -s 10.10.10.0/24 \ -p tcp -- dport 25 -j DROP