• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Protección perimetral. Fundamentos de firewalls y redes privadas virtuales
 

Protección perimetral. Fundamentos de firewalls y redes privadas virtuales

on

  • 3,042 views

Protección perimetral. Fundamentos de firewalls y redes privadas virtuales.

Protección perimetral. Fundamentos de firewalls y redes privadas virtuales.

Statistics

Views

Total Views
3,042
Views on SlideShare
3,036
Embed Views
6

Actions

Likes
1
Downloads
142
Comments
0

1 Embed 6

http://seguridadinformatica.alianzasuperior.com 6

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Protección perimetral. Fundamentos de firewalls y redes privadas virtuales Protección perimetral. Fundamentos de firewalls y redes privadas virtuales Presentation Transcript

    • Protección perimetral. Fundamentos de Firewalls e Redes Privadas Virtuais
    • Indice
      • Parte I. Cortafuegos
        • Tipos de cortafuegos
        • Filtrado de paquetes
        • Reglas de filtrado
      • Parte II. NETFILTER/ iptables
        • Arquitectura de NETFILTER/ iptables
        • Módulos NETFILTER
        • Interfaces, herramientas e información
      • Parte III. Topologías de cortafuegos
        • Topologías básicas
        • Zonas desmilitarizadas 
    • Indice
      • Parte 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
    • PARTE I. Cortafuegos
            • Tipos de cortafuegos
            • Filtrado de paquetes
            • Reglas de filtrado
    • 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 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 hacia equipos internos
        • Opcionalmente: control del uso de la red por parte de los equipos internos
        • Protección del propio equipo: “firewalls personales”
    • 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
    • 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
    • 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
    • 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”
    • 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 )
    • 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
    • Filtrado de paquetes (I)
      • Implementado en los dispositivos que encaminan tráfico entre la red externa y la interna
      • Trabaja en las capas Red (IP) y/o Transporte (TCP,UDP)
      • Suele implementarse como un elemento añadido a un router o como un equipo dedicado
      • Analizan 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 reglas
        • decisión: aceptación/rechazo
      • Filtrado basado en la información contenida en cada paquete concreto
        • cada paquete se analizan de forma aislada
        • normalmente no tienen en cuenta si son parte de una conexión
    • Filtrado de paquetes (II)
      • Las reglas de filtrado emplean la información contenida en cada 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 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/udp ssh 22/tcp finger 79/tcp ldap 389/tcp telnet 23/tcp http 80/tcp https 443/tcp smtp 25/tcp pop3 110/tcp mysql 3306/tcp
    • Reglas de filtrado Funcionamiento 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
    • 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 realiza
          • filtrado de paquetes
          • traducción de direcciones (NAT)
          • modificación de paquetes
        • Página del proyecto: http://www.netfilter.org
      • iptables 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 , ipchains
        • puede usar las capacidades de seguimiento de conexiones NETFILTER para definir firewalls con estado
    • PARTE II. NETFILTER/ iptables
          • Arquitectura de NETFILTER/ iptables
          • Módulos NETFILTER
          • Interfaces, herramientas e información
    • 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
    • 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
    • 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)
    • 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
    • Arquitectura NETFILTER/ iptables (III) Flujo de paquetes en NETFILTER/ iptables
    • 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ó
    • 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 external
      • Algunos 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
    • Interfaces, herramientas e información
      • Interfaces 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
    • PARTE III. Topologías de cortafuegos
            • Topologías básicas
            • Zonas desmilitarizadas 
    • 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
    • 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)
    • 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
    • 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
    • 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
    • Zonas desmilitarizadas (II) DMZ con cortafuegos de 3 interfaces
      • Esquema más simple para definir y gestionar una DMZ
    • 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
    • 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ó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 fallos
      • mayor flexibilidad: usar tantas DMZ como sea preciso, con distintos niveles de seguridad
    • PARTE IV. Uso de shorewall
            • Shorewall
            • Configuración de Shorewall 
    • 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 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
    • Configuración de Shorewall (I)
      • La configuración de Shorewall se realiza mediante ficheros de texto ubicados en /etc/shorewall
      • Fichero /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.
    • 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 OPTIONS net eth0 detect dhcp,routefilter,norfc1918 loc eth1 detect dmz 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 )
    • 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/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/policy
        • Las excepciones a las políticas por defecto se indican en el fichero /etc/shorewall/rules
      • Funcionamiento 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 fichero /etc/shorewall/policy
    • 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:BURST loc net ACCEPT net all DROP info all 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
    • 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-DEST DNAT net loc:10.10.10.3 tcp 80 - 130.252.100.69 REDIRECT loc 3128 tcp www - !192.168.2.2 ACCEPT 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
    • 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
    • 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 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
    • PARTE V. Uso de OpenVPN
            • Redes privadas virtuales (VPN)
            • Configuración y uso de OpenVPN 
    • 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 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 dedicadas
      • Tecnologías: IPSec, PPTP, L2TP, túneles SSH, OpenVPN
    • 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 OpenSSL
        • Web: http://www.openvpn.net
      • Permite 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
    • 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
    • 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 ambos
      • Shorewall contempla la definición de zonas VPN y el uso de los enlaces virtuales cifrados creados por OpenVPN
    • Enlaces e información
      • Fuentes 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/kvpnc
      • Esquemas 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
    • Funcionamiento SSL/TLS
      • SSL: 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 Security
      • Protege 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 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ó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
    • ANEXO. Uso de iptables
    • 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
    • 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 out put, forward, post-routing ]
      • Tipo de protocolo: -p/--protocol
        • protocolo nivel transporte: -p TCP, -p UDP, -p ICMP, -p all
    • 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 ]
    • 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)
    • 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
    • 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)
    • 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.
    • 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.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
    • #!/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 (enmascaram. de salida 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: descartar antes paquetes externos dirigidos a red interna # si se hiciera en FORWARD, se eliminarian las 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, # el resto está permitido por politica por defecto iptable -A FORWARD -i eth1 -o eth0 -s 10.10.10.0/24 -p tcp -- dport 25 -j DROP