SlideShare uma empresa Scribd logo
1 de 61
Baixar para ler offline
Francisco José Ribadas Pena
ribadas@uvigo.es
Departamento 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
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 



                                                    2
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




                                              3
PARTE I. Cortafuegos

Tipos de cortafuegos
Filtrado de paquetes
Reglas de filtrado



                       4
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”


                                                                   5
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
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
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
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
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
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
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                                                       12
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
                                                                      13
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            14
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

                                                                  15
PARTE II. NETFILTER/iptables

   Arquitectura de NETFILTER/iptables
   Módulos NETFILTER
   Interfaces, herramientas e información



                                            16
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
                                                                       17
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
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
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
Arquitectura NETFILTER/iptables (III)

Flujo de paquetes en NETFILTER/iptables




                                                      21
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
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

                                                                                 23
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
                                                                24
PARTE III. Topologías
   de cortafuegos

 Topologías básicas
 Zonas desmilitarizadas 



                            25
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
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
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
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
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
Zonas desmilitarizadas (II)


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




                                                        31
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
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
Ventajas:                         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
PARTE IV. Uso de shorewall
  Shorewall
  Configuración de Shorewall 




                                 34
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                                                   35
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.                                                   36
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)                  37
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
                                                                    38
  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




                                                                     39
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                                                                     40
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
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 42
PARTE V. Uso de OpenVPN

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




                                      43
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

                                                                     44
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
                                                                       45
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
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


                                                                  47
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



                                                              48
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                                        49
ANEXO. Uso de iptables




                         50
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
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
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
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
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
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
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
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
                                                                        58
#!/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




                                                                           59
# 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




                                                                             60
# 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




                                                                               61

Mais conteúdo relacionado

Mais procurados (16)

Firewall
FirewallFirewall
Firewall
 
Seguridad en redes tcp
Seguridad en redes tcpSeguridad en redes tcp
Seguridad en redes tcp
 
06 airc firewalls
06 airc   firewalls06 airc   firewalls
06 airc firewalls
 
Firewall y seguridad de internet
Firewall y seguridad de internetFirewall y seguridad de internet
Firewall y seguridad de internet
 
Firewall
FirewallFirewall
Firewall
 
Firewall
FirewallFirewall
Firewall
 
Ultimo trabajo de informatica
Ultimo trabajo de informaticaUltimo trabajo de informatica
Ultimo trabajo de informatica
 
Defensa perimetral
Defensa perimetralDefensa perimetral
Defensa perimetral
 
Snort 2006
Snort 2006Snort 2006
Snort 2006
 
Sistemas
SistemasSistemas
Sistemas
 
Politicas de seguridad en linux
Politicas de seguridad en linuxPoliticas de seguridad en linux
Politicas de seguridad en linux
 
Que es un firewall y su función
Que es un firewall y su funciónQue es un firewall y su función
Que es un firewall y su función
 
Seguridad en los s.o.
Seguridad en los s.o.Seguridad en los s.o.
Seguridad en los s.o.
 
Redes ,,,,
Redes ,,,,Redes ,,,,
Redes ,,,,
 
Seguridad perimetral de servidores acls e ip tables
Seguridad perimetral de servidores acls e ip tablesSeguridad perimetral de servidores acls e ip tables
Seguridad perimetral de servidores acls e ip tables
 
Segurida de redes
Segurida de redesSegurida de redes
Segurida de redes
 

Semelhante a Prote (20)

Protección perimetral. Fundamentos de firewalls y redes privadas virtuales
Protección perimetral. Fundamentos de firewalls y redes privadas virtualesProtección perimetral. Fundamentos de firewalls y redes privadas virtuales
Protección perimetral. Fundamentos de firewalls y redes privadas virtuales
 
Firewalls
FirewallsFirewalls
Firewalls
 
Firewalls
FirewallsFirewalls
Firewalls
 
Criterio45cortafuegos
Criterio45cortafuegosCriterio45cortafuegos
Criterio45cortafuegos
 
INFORMATICA.pptx
INFORMATICA.pptxINFORMATICA.pptx
INFORMATICA.pptx
 
Cortafuegos
CortafuegosCortafuegos
Cortafuegos
 
Firewalls
FirewallsFirewalls
Firewalls
 
Expo firewall
Expo firewallExpo firewall
Expo firewall
 
Firewall
FirewallFirewall
Firewall
 
FIREWALL
FIREWALLFIREWALL
FIREWALL
 
Firewall
FirewallFirewall
Firewall
 
Firewall
FirewallFirewall
Firewall
 
Actividad 5 seguridad informatica
Actividad 5 seguridad informaticaActividad 5 seguridad informatica
Actividad 5 seguridad informatica
 
Firewall
FirewallFirewall
Firewall
 
Firewall Leidy
Firewall LeidyFirewall Leidy
Firewall Leidy
 
Firewall Leidy
Firewall LeidyFirewall Leidy
Firewall Leidy
 
Firewall Leidy
Firewall LeidyFirewall Leidy
Firewall Leidy
 
Seguridad4
Seguridad4Seguridad4
Seguridad4
 
Seguridad
SeguridadSeguridad
Seguridad
 
Cortafuego
CortafuegoCortafuego
Cortafuego
 

Prote

  • 1. Francisco José Ribadas Pena ribadas@uvigo.es Departamento 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. 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  2
  • 3. 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 3
  • 4. PARTE I. Cortafuegos Tipos de cortafuegos Filtrado de paquetes Reglas de filtrado 4
  • 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 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” 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á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 12
  • 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 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 13
  • 14. 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 14
  • 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 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 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 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 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 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 23
  • 24. 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 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ón Ventajas: 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. 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 35
  • 36. 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. 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 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) 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/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 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: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 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-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 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 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 42
  • 43. PARTE V. Uso de OpenVPN Redes privadas virtuales (VPN) Configuración y uso de OpenVPN  43
  • 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 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 44
  • 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 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 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 ambos Shorewall contempla la definición de zonas VPN y el uso de los enlaces virtuales cifrados creados por OpenVPN 47
  • 48. 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 48
  • 49. 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 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 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 58
  • 59. #!/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 59
  • 60. # 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 60
  • 61. # 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 61