Your SlideShare is downloading. ×
  • Like
Prote
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Prote

  • 755 views
Published

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
755
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
19
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Francisco José Ribadas Penaribadas@uvigo.esDepartamento de Informática Protección perimetral.Universidade de Vigo Fundamentos de Firewalls e Redes Privadas Virtuais Ferramentas de seguridade en GNU/Linux Curso de Extensión Universitaria 23 de xuño de 2010
  • 2. IndiceParte I. Cortafuegos Tipos de cortafuegos Filtrado de paquetes Reglas de filtradoParte II. NETFILTER/iptables Arquitectura de NETFILTER/iptables Módulos NETFILTER Interfaces, herramientas e informaciónParte III. Topologías de cortafuegos Topologías básicas Zonas desmilitarizadas  2
  • 3. IndiceParte IV. Uso de shorewall Shorewall Configuración de Shorewall Parte V. Uso de OpenVPN Redes privadas virtuales (VPN) Configuración y uso de OpenVPN ANEXO: Uso de iptables 3
  • 4. PARTE I. CortafuegosTipos de cortafuegosFiltrado de paquetesReglas de filtrado 4
  • 5. Cortafuegos (I)Cortafuegos/Firewalls: Mecanismos de control de acceso ala red y los recursos informáticos de una organización Formado por componentes hardware y software Separa nuestra red interna (equipos de confianza) de los equipos externos (potencialmente hostiles) mediante el control del tráfico Deniega intentos de conexión no autorizados (en ambos sentidos)Finalidad: Prevención de ataques desde exterior haciaequipos internos Opcionalmente: control del uso de la red por parte de los equipos internos Protección del propio equipo: “firewalls personales” 5
  • 6. Cortafuegos (II)Tipos de controles realizados Control 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 puerto Cortafuegos proporciona un software intermediario (Proxy) para cada servicio concreto a controlar Control de Usuarios: control de accesos en base al usuario concreto que pretende acceder Control de Comportamiento: control de cómo se usan los servicios 6
  • 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 protegida prohibe entrada/salida de servicios potencialmente vulnerables protecció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 7
  • 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 red plataforma 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)Limitaciones No protegen contra ataques que no pasen por el Cortafuegos No protegen contra amenazas internas Pueden proporcionar una sensación de falsa seguridad el Cortafuegos no basta por si sólo seguridad en redes afecta a muchos aspectos 8
  • 9. Tipos de Cortafuegos (I)Filtros de paquetes Inspeccionan los paquetes recibidos/enviados y comprueban si encajan en las reglas Filtrado 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 aislada filtro 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, ICMP Uso de puertos estándar para bloquear servicios concretos Integrados en routers o en equipos dedicados. Ejemplo en GNU/Linux: NETFILTER/iptables “básico” 9
  • 10. Tipos de Cortafuegos (II)Filtros con estado (filtros de circuitos) Llevan registro de las conexiones que pasan a través del Cortafuegos Estudian y reconocen los paquetes que inician/finalizan las conexiones que forman parte de conexiones establecidas que están relacionados con conexiones previas Permiten un control más fino que los filtros sin estado Ejemplo en GNU/Linux: NETFILTER/iptables con módulos de seguimiento de conexiones (connection tracking) 10
  • 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 concreta previene abusos permite limitar porciones concretas del protocolo detectan uso de protocolos no permitidos en puertos estándar Mayor conocimiento sobre el tráfico realiza 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 11
  • 12. Filtrado de paquetes (I)Implementado en los dispositivos que encaminan tráficoentre la red externa y la internaTrabaja en las capas Red (IP) y/o Transporte (TCP,UDP)Suele implementarse como un elemento añadido a unrouter o como un equipo dedicadoAnalizan cada paquete (antes de la decisión de enrutado) yaplican un conjunto de reglas para decidir si lo retransmite olo descarta inspecciona las cabeceras del paquete y comprueba si encajan en la lista de reglas decisión: aceptación/rechazoFiltrado basado en la información contenida en cadapaquete concreto cada paquete se analizan de forma aislada normalmente no tienen en cuenta si son parte de una conexión 12
  • 13. Filtrado de paquetes (II)Las reglas de filtrado emplean la información contenida encada paquete de red analizado direcciones IP de origen y destino puertos de origen y destino (TCP, UDP) tipo de protocolo: TCP, UDP, IMCP interfaz 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 transporteEl control de servicios se basa en el filtrado de los puertosestá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 13
  • 14. Reglas de filtradoFuncionamiento general Filtrado paquetes se configura mediante lista de reglas estáticas condiciones: basadas en campos de cabeceras IP y/o TCP acciones: 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 pasar política conservadora, mayor nivel de protección aceptar por defecto: lo que no está expresamente prohibido, está permitido servicios vulnerables/peligrosos deben bloquearse explícitamente política más permisible, nivel de protección más bajo 14
  • 15. NETFILTER/iptables (I)NETFILTER es un componente del núcleo de Linux (desde laver. 2.4) encargado de la manipulación de paquetes de red Tareas que realiza filtrado de paquetes traducció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 lainfraestructura que ofrece NETFILTER para construir yconfigurar firewalls. permite definir polí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 15
  • 16. PARTE II. NETFILTER/iptables Arquitectura de NETFILTER/iptables Módulos NETFILTER Interfaces, herramientas e información 16
  • 17. NETFILTER/iptables (II)Las tareas a realizar sobre los paquetes (filtrado, NAT,modificación) se controlan mediante distintos conjuntos dereglas, en función de la situación/momento en la que seencuentre un paquete durante su procesamiento dentro deNETFILTER. Las listas de reglas y demás datos residen en el espacio de memoria del kernelLa herramienta de nivel de usuario iptables permite aladministrador configurar las listas de reglas que usa el kernelpara 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 sistemaOtras utilidades: iptables-save, iptable-restore 17
  • 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, 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 18
  • 19. Arquitectura NETFILTER/iptables (II)Componentes NETFILTER/iptables (cont.) CADENAS: Contienen las listas de reglas a aplicar sobre los paquetes 5 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/cortafuegos OUTPUT: reglas a aplicar sobre los paquetes originados en la propia máquina, controla 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) 19
  • 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 20
  • 21. Arquitectura NETFILTER/iptables (III)Flujo de paquetes en NETFILTER/iptables 21
  • 22. Arquitectura NETFILTER/iptables (IV)Funcionamiento de la reglas NETFILTER/iptables Para cada paquete, en función del procesamiento que vaya a sufrir, se consulta la cadena que corresponda a su situación dentro de NETFILTER Dentro 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 accept al agotar las cadenas definidas por el usuario, se retorna a la cadena predeterminada que la activó 22
  • 23. Módulos NETFILTER adicionaesNETFILTER tiene una arquitectura modular que permite lainclusió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 procesdosDescripción de módulos disponibles (patches) http://www.netfilter.org/documentation/HOWTO/netfilter-extensions-HOWTO.html 23
  • 24. Interfaces, herramientas e informaciónInterfaces gráficos Firestarter: 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 texto Shorewall: http://shorewall.net/ FireHOL: http://firehol.sourceforge.net/ Dwall: http://dag.wieers.com/home-made/dwall/Fuentes de información Pá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 24
  • 25. PARTE III. Topologías de cortafuegos Topologías básicas Zonas desmilitarizadas  25
  • 26. Topologías básicas de cortafuegos (I)Cortafuegos básico de borde Un equipo actúa como cortafuegos, conectando la red interna con la externa Ofrece todas las funcionalidades de cortafuegos + (opcionalmente) todos los servicios adicionales Si se ve comprometido, todo el sistema se compromete Opción 1: Router con filtrado de paquetes Opción más simple, pero menos potente Escasas 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) activada Todas las conexiones pasan a traves de él Puede integrar los Proxies precisos 26
  • 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 host Idealmente, lodos los servicios al exterior se ofrecerán únicamente desde el dual homed host Equipos de red interna y externa no deberían poder entrar en contacto directamente, sino a traves de un intermediario(Proxy) 27
  • 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 interna alojará 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 exterior Administración delicada (es la base de la seguridad de este esquema) mínimos servicios software imprescindibles actualizaciones de seguridad del S.O. + servidores monitorización de ficheros de log 28
  • 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 él Ofrece los servicios públicos sin debilitar la red interna Configuración y administración delicada HOST OCULTO HOST INSEGURO 29
  • 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 anteriores Los 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 30
  • 31. Zonas desmilitarizadas (II)DMZ con cortafuegos de 3 interfaces Esquema más simple para definir y gestionar una DMZ 31
  • 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 DMZ cortafuegos interno (de contención): bloquea/controla tráfico no deseado de DMZ a red interna 32
  • 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 interno 2 niveles de seguridad (red DMZ + red interna) Tráfico de exterior a red interna atraviesa 2 cortafuegos Mayor tolerancia a fallos: evita puntos únicos de fallo Superando cortafuegos externo, sólo queda desprotegida DMZ Aún comprometiendo un equipo de la DMZ, se contaría con el cortafuegos de contenciónVentajas: Limitaciones: mayor seguridad y tolerancia a dificultad de administración fallos (gestionar 2 conjuntos de mayor flexibilidad: usar tantas reglas de filtrado funcionando DMZ como sea preciso, con en conjunto) distintos niveles de seguridad sensación de falsa seguridad 33
  • 34. PARTE IV. Uso de shorewall Shorewall Configuración de Shorewall  34
  • 35. ShorewallShorewall (Shoreline Firewall) es una herramienta parasimplificar la construcción de sistemas cortafuegos quehagan 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 continuo Configura 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 35
  • 36. Configuración de Shorewall (I)La configuración de Shorewall se realiza mediante ficherosde texto ubicados en /etc/shorewallFichero /etc/shorewall/zones Shorewall estructura la red en un conjunto de zonas, definidas en el fichero /etc/shorewall/zones Existe una zona predefinida ($FW) asociada al propio firewall Ejemplo (three-interfaces) #ZONE TYPE OPTIONS IN_OPTIONS OUT_OPTIONS fw firewall net ipv4 loc ipv4 dmz 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/hosts Las direcciones de los interfaces del firewall pertenecen a la zona del firewall $FW. 36
  • 37. Configuración de Shorewall (II)Fichero /etc/shorewall/interfaces Indica 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 correspondiente Cuando 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) 37
  • 38. Configuración de Shorewall (III)Fichero /etc/shorewall/hosts Indica que equipos están asociados con cada zona (análogo a /etc/shorewall/interfaces) #ZONE HOST(S) OPTIONS local1 eth1:192.168.3.0/24 local2 eth1:192.168.4.0/24La reglas de filtrado de tráfico se expresan en términos dezonas, mediante 2 ficheros Las políticas generales (por defecto) para las conexiones entre zonas se especifican en /etc/shorewall/policy Las excepciones a las políticas por defecto se indican en el fichero /etc/shorewall/rulesFuncionamiento del firewall definido por Shorewall Las peticiones de conexión son “comprobadas” contra las reglas de /etc/shorewall/rules Si ninguna regla encaja se toma la acción que indique el 38 fichero /etc/shorewall/policy
  • 39. Configuración de Shorewall (IV)Fichero /etc/shorewall/policy Especifica 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,NONE Las políticas por defecto pueden tener acciones adicionales asociadas, definidas en /etc/shorewall/actions 39
  • 40. Configuración de Shorewall (V) Fichero /etc/shorewall/rules Controla el establecimiento de conexiones que supongan excepciones a las definidas en /etc/shorewall/policy Pueden 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 40
  • 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 interfaz NOTA: 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-PORT DNAT net dmz:10.10.10.23:80 tcp 80 Redirección tráfico web recibido hacia máquina 10.10.10.23 de DMZ 41
  • 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/tunnels Define el tipo de VPN (IPsec, OpenVPN, ...) y si interfaz asociadoDepuració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 seguidosLa distribución de Shorewall incluye conjuntos de ficheros deconfiguración de ejemplo, que sirven como punto de partidapara crear el firewall. Veremos three-interface http://shorewall.net/three-interface.htm 42
  • 43. PARTE V. Uso de OpenVPN Redes privadas virtuales (VPN) Configuración y uso de OpenVPN  43
  • 44. Redes Virtuales PrivadasVPN (Virtual Private Network): Conjunto de tecnologíasque permiten extender el alcance de una red local(privada) sobre la infraestructura de una red pública nocontrolada, manteniendo la confidencialidad del tráfico. Hacen uso de enlaces cifrados para definir conexiones protegidas entre porciones “separadas” de la propia red Ejemplos 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 44
  • 45. OpenVPN (I)OpenVPN es una implementacion de VPN que usa elprotocolo SSL/TLS (Secure Socket Layer/Transport LayerSecurity) para crear enlaces de red cifrados. Usualmente emplea la implementación OpenSSL Web: http://www.openvpn.netPermite 3 modos de operación: Host a Host: crea un enlace cifrado entre dos máquinas independientes Road Warrior: permite que un usuario se conecte al servidor OpenVPN desde fuera de la red propia y pueda acceder a sus recursos Red 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 45
  • 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 46
  • 47. OpenVPN (III)OpenVPN soporta 2 modos de autenticación/cifrado Clave estática: se genera una clave estática que será compartida por los 2 extremos Esquema sencillo de configurar e implantar Exige 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 ambosShorewall contempla la definición de zonas VPN y el uso delos enlaces virtuales cifrados creados por OpenVPN 47
  • 48. Enlaces e informaciónFuentes de información Página del shorewall: http://openvpn.net/ Página de OpenVPN: http://shorewall.net/Interfaces OpenVPN OpenVPNAdmin:http://home.gna.org/kvpnc OpenVPNControl: http://sourceforge.net/projects/openvpn-control/ KVPN: http://home.gna.org/kvpncEsquemas y manuales de configuración Shorewall Standalone: http://shorewall.net/standalone.htm Two-interface: http://shorewall.net/two-interface.htm Three-interface: http://shorewall.net/three-interface.htm 48
  • 49. Funcionamiento SSL/TLSSSL: Secure Socket Layer Desarrollo inicial por Netscape Inicalmente 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 yHMAC (autenticación de mensajes con HASH + clave secreta), garantizando: Autenticación de las entidades (servidor y/o cliente): empleando certificados digitales Confidencialidad de los mensajes: empleando cifrado simétrico con claves de cifrado negociadas/acordadas en cada conexión Integridad y atenticidad de los mensajes: uso de HMAC con claves de autenticación negociadas/acordadas en cada conexiónEstablecimiento 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 generadasa partir de la clave secreta maestra 49
  • 50. ANEXO. Uso de iptables 50
  • 51. Uso de iptables (I)Esquema reglas iptables iptables -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 51
  • 52. Uso de iptables (II)Condiciones iptables Especifican los criterios que debe cumplir un paquete (campos que lo componene) para que le sea aplicable la acción de una regla Direcciones 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/--protocol protocolo nivel transporte: -p TCP, -p UDP, -p ICMP, -p all 52
  • 53. Uso de iptables (III)Condiciones iptables (cont.) Puertos (para TCP y UDP) de origen: -sport/--source-port de 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) 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 conocida established: paquete que pertenece a una conex. 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 Otro módulo para filtros con estado (seguimiento de conexiones): -m conntrack –ctstate [ESTADOS] 53
  • 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) 54
  • 55. Uso de iptables (V)Objetivos iptables Objetivos 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 55
  • 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 paquete Só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) 56
  • 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 usuario Es 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ón Si no encaja en ninguna regla, el paquete retorna a la cadena anterior desde la que accedió a la cadena de usuario. 57
  • 58. Ejemplo IPTABLESFirewall 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.66 Servidores corporativos de correo saliente (smtp) y entrante (pop3) en 10.10.10.77Restricciones 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 58
  • 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 ACCEPTiptables -t nat -P POSTROUTING ACCEPT# Permitir localhostiptables -A INPUT -i lo -j ACCEPT 59
  • 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 60
  • 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 61