Prote
-
Upload
francisco-ribadas -
Category
Documents
-
view
781 -
download
3
Transcript of Prote
23 de xuño de 2010
Ferramentas de seguridade en GNU/LinuxCurso de Extensión Universitaria
Francisco José Ribadas [email protected] de InformáticaUniversidade de Vigo
Protección perimetral.Fundamentos de Firewalls e Redes Privadas Virtuais
2
Indice
Parte I. CortafuegosTipos de cortafuegosFiltrado de paquetesReglas de filtrado
Parte II. NETFILTER/iptablesArquitectura de NETFILTER/iptablesMódulos NETFILTERInterfaces, herramientas e información
Parte III. Topologías de cortafuegosTopologías básicasZonas desmilitarizadas
3
Indice
Parte IV. Uso de shorewallShorewallConfiguración de Shorewall
Parte V. Uso de OpenVPNRedes privadas virtuales (VPN)Configuración y uso de OpenVPN
ANEXO: Uso de iptables
4
PARTE I. Cortafuegos
Tipos de cortafuegosFiltrado de paquetesReglas de filtrado
5
Cortafuegos (I)
Cortafuegos/Firewalls: Mecanismos de control de acceso a la red y los recursos informáticos de una organización
Formado por componentes hardware y softwareSepara nuestra red interna (equipos de confianza) de los equipos externos (potencialmente hostiles) mediante el control del tráficoDeniega intentos de conexión no autorizados (en ambos sentidos)
Finalidad: Prevención de ataques desde exterior hacia equipos internos
Opcionalmente: control del uso de la red por parte de los equipos internosProtección del propio equipo: “firewalls personales”
6
Cortafuegos (II)
Tipos de controles realizadosControl de Servicios: determinar los tipos de servicios de red accesibles desde interior y exterior
Dos grandes alternativas:Cortafuegos filtra tráfico a los servicios basándose en la dirección IP + núms. de puertoCortafuegos proporciona un software intermediario (Proxy) para cada servicio concreto a controlar
Control de Usuarios: control de accesos en base al usuario concreto que pretende accederControl de Comportamiento: control de cómo se usan los servicios
7
Cortafuegos (II)
Utilidad de los Cortafuegos (I)Definen un punto único de resistencia frente a ataques
mantiene usuarios no autorizados fuera de la red protegidaprohibe entrada/salida de servicios potencialmente vulnerablesprotección frente a ciertos ataques de suplantación de IP (IP spoofing)simplifica la administración (punto único de entrada)
Ubicación donde realizar supervisión de eventos de seguridad
registro de accesos, intentos de intrusión, gestión de alarmas de seguridad, auditorias, etc
8
Cortafuegos (III)
Utilidad de los Cortafuegos (II)Ubicación para situar otros elementos de gestión de red
traducción de direcciones, NAT(network address translation) direc. locales (privadas) <-> direc. públicas de Internet
software de auditoria y registro del uso de la redplataforma para implantar pasarelas IPSec o similares (enlaces de redes virtuales privadas [VPN])plataforma donde centralizar sistemas de detección de intrusiones (ej.: SNORT)plataforma para filtros de nivel de aplicación (antivirus, SPAM)
LimitacionesNo protegen contra ataques que no pasen por el CortafuegosNo protegen contra amenazas internasPueden proporcionar una sensación de falsa seguridad
el Cortafuegos no basta por si sóloseguridad en redes afecta a muchos aspectos
9
Tipos de Cortafuegos (I)
Filtros de paquetesInspeccionan los paquetes recibidos/enviados y comprueban si encajan en las reglasFiltrado basado en la información contenida en cada paquete recibido/enviado
cada paquete se inspecciona de forma aislada y la decisión se toma de forma aisladafiltro ''sin estado'': no tiene en cuenta si los paquetes son parte de una conexión
Trabajan en los niveles de RED y TRANSPORTE de la pila TCP/IP
Manejan info. de los protocolos IP, TCP, UDP, ICMPUso de puertos estándar para bloquear servicios concretosIntegrados en routers o en equipos dedicados.Ejemplo en GNU/Linux: NETFILTER/iptables “básico”
10
Tipos de Cortafuegos (II)
Filtros ''con estado'' (filtros de circuitos)Llevan registro de las conexiones que pasan a través del CortafuegosEstudian y reconocen los paquetes
que inician/finalizan las conexionesque forman parte de conexiones establecidasque están relacionados con conexiones previas
Permiten un control más fino que los filtros sin estadoEjemplo en GNU/Linux: NETFILTER/iptables con módulos de seguimiento de conexiones (connection tracking)
11
Tipos de Cortafuegos (III)
Filtros a nivel de aplicación (Proxies)Cortafuegos basados en el uso de Proxies en el nivel de aplicación
interceptan los mensajes entre aplicaciones bloqueo de aplicaciones no permitidas (las que no cuenten con Proxy)control del tráfico de las aplicaciones permitidas
Proxy ''comprende'' el protocolo de una aplicación concretapreviene abusospermite limitar porciones concretas del protocolodetectan uso de protocolos no permitidos en puertos estándar
Mayor ''conocimiento'' sobre el tráficorealiza un análisis en profundidad de los paquetes
Pueden ofrecer otros servicios de valor añadido (caché)Ejemplos en GNU/Linux: Proxy-cache web SQUID
12
Filtrado de paquetes (I)
Implementado en los dispositivos que encaminan tráfico entre la red externa y la internaTrabaja en las capas Red (IP) y/o Transporte (TCP,UDP)Suele implementarse como un elemento añadido a un router o como un equipo dedicadoAnalizan cada paquete (antes de la decisión de enrutado) y aplican un conjunto de reglas para decidir si lo retransmite o lo descarta
inspecciona las cabeceras del paquete y comprueba si encajan en la lista de reglasdecisión: aceptación/rechazo
Filtrado basado en la información contenida en cada paquete concreto
cada paquete se analizan de forma aisladanormalmente no tienen en cuenta si son parte de una conexión
13
Filtrado de paquetes (II)
Las reglas de filtrado emplean la información contenida en cada paquete de red analizado
direcciones IP de origen y destinopuertos de origen y destino (TCP, UDP)tipo de protocolo: TCP, UDP, IMCPinterfaz de entrada o salida (en Cortafuegos con 3 o más conexiones de red)otra información:
tamaño del paquete, tiempo del vida del paquete, indicadores específicos de protocolos de transporte
El control de servicios se basa en el filtrado de los puertos estándar (http://www.iana.org/assignments/port-numbers)ftp 21/tcp dns 53/tcp,53/udp rpc 111/tcp,111/udpssh 22/tcp finger 79/tcp ldap 389/tcptelnet 23/tcp http 80/tcp https 443/tcpsmtp 25/tcp pop3 110/tcp mysql 3306/tcp
14
Reglas de filtrado
Funcionamiento generalFiltrado paquetes se configura mediante lista de reglas estáticas
condiciones: basadas en campos de cabeceras IP y/o TCPacciones: descartar, rechazar, retransmitir
Reglas comprobadas secuencialmente (el orden importa)Cuando hay una correspondencia, se invoca la acción Si ninguna regla encaja, se aplica la acción predeterminada
denegar por defecto: lo que no está expresamente permitido, está prohibido
indicar explicitamente qué servicios se dejan pasarpolítica conservadora, mayor nivel de protección
aceptar por defecto: lo que no está expresamente prohibido, está permitido
servicios vulnerables/peligrosos deben bloquearse explícitamentepolítica más permisible, nivel de protección más bajo
15
NETFILTER/iptables (I)
NETFILTER es un componente del núcleo de Linux (desde la ver. 2.4) encargado de la manipulación de paquetes de red
Tareas que realizafiltrado de paquetestraducción de direcciones (NAT)modificación de paquetes
Página del proyecto: http://www.netfilter.orgiptables es una herramienta/aplicación que hace uso de la infraestructura que ofrece NETFILTER para construir y configurar firewalls.
permite definir políticas de filtrado, de NAT y realizar logs remplaza a herramientas anteriores: ifwadmin, ipchainspuede usar las capacidades de seguimiento de conexiones NETFILTER para definir firewalls con estado
16
PARTE II. NETFILTER/iptables
Arquitectura de NETFILTER/iptablesMódulos NETFILTERInterfaces, herramientas e información
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
18
Arquitectura NETFILTER/iptables (I)
Componentes NETFILTER/iptables (I)TABLAS: se corresponden con los distintos tipos de procesamiento que se pueden aplicar sobre los paquetes (3 tablas disponibles)
filter: Controla decisiones de filtrado de paquetes (aceptar/denegar)
Cadenas: sc input, output, forwardnat: Controla traducción de direcciones (NAT: network address translation)
Cadenas: prerouting, postrouting} (opc. output)mangle: Controla los procesos de modificación del contenido y las opciones de los paquetes.
Cadenas: input, output, forward, prerouting, postroutingLas reglas de cada tabla se organizan en cadenas, que se consultarán en momentos concretos del flujo de los paquetes
19
Arquitectura NETFILTER/iptables (II)
Componentes NETFILTER/iptables (cont.)CADENAS: Contienen las listas de reglas a aplicar sobre los paquetes5 cadenas predeterminadas, asociadas a momentos concretos del flujo de los paquetes
INPUT: reglas a a plicar sobre los paquetes destinados a la propia máquina
controla las entradas al propio equipo/cortafuegosOUTPUT: reglas a aplicar sobre los paquetes originados en la propia máquina,
controla las salidas del propio equipo/cortafuegosFORWARD: reglas a aplicar sobre los paquetes que atraviesan la máquina con destino a otras (paquetes en tránsito reenviados)
usadas en Cortafuegos de borde (protección red interna)
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
21
Arquitectura NETFILTER/iptables (III)
Flujo de paquetes en NETFILTER/iptables
22
Arquitectura NETFILTER/iptables (IV)
Funcionamiento de la reglas NETFILTER/iptablesPara cada paquete, en función del procesamiento que vaya a sufrir, se consulta la cadena que corresponda a su situación dentro de NETFILTERDentro de cada cadena las reglas se inspeccionan secuencialmente [el orden de reglas es MUY importante]Si el paquete encaja con las condiciones de una regla, se ejecuta la acción correspondiente y se abandona la cadena (se deja de mirar la cadena)Si el paquete no encaja con ninguna regla, se le aplica política por defecto que se haya asignado a esa cadena.
por defecto las cadenas predeterminadas están inicializadas con una política acceptal agotar las cadenas definidas por el usuario, se retorna a la cadena predeterminada que la activó
23
Módulos NETFILTER adicionaes
NETFILTER tiene una arquitectura modular que permite la inclusión de nuevos componentes
Es posible incluir nuevas condiciones y objetivos que permitan hacer distintos tipos de controles/procesamiento sobre los paquetes.http://www.netfilter.org/projects/patch-o-matic/index.html
Repositorios: base, extra y externalAlgunos ejemplos
geoip: permite identificar el origen geográfico de un paquete en base a su dirección IP.Ipp2p: aporta capacidades para reconocer algunos tipos de tráfico P2P (kazaa, edk, etc)string: permite emplear reglas que analicen cadenas de texto presentes en la carga útil de los paquetes procesdos
Descripción de módulos disponibles (patches)http://www.netfilter.org/documentation/HOWTO/netfilter-extensions-HOWTO.html
24
Interfaces, herramientas e información
Interfaces gráficosFirestarter: http://www.fs-security.com/FirewallBuilder: http://www.fwbuilder.org/KMyFirewall: http://www.kmyfirewall.org/Guardog: http://www.simonzone.com/software/guarddog/
Herramientas en modo textoShorewall: http://shorewall.net/FireHOL: http://firehol.sourceforge.net/Dwall: http://dag.wieers.com/home-made/dwall/
Fuentes de informaciónPágina del proyecto:http://www.netfilter.org/documentation/Tutorial detallado: http://iptables-tutorial.frozentux.net/Tutorial práctico en español: http://www.pello.info/filez/firewall/iptables.html
25
PARTE III. Topologías de cortafuegos
Topologías básicasZonas desmilitarizadas
26
Topologías básicas de cortafuegos (I)
Cortafuegos básico de bordeUn equipo actúa como cortafuegos, conectando la red interna con la externa
Ofrece todas las funcionalidades de cortafuegos +(opcionalmente) todos los servicios adicionalesSi se ve comprometido, todo el sistema se compromete
Opción 1: Router con filtrado de paquetesOpción más simple, pero menos potenteEscasas posibilidades de monitorizacion
Opción 2: Equipo dedicado (dual homed host)Sistema estandar con 2 interfaces de red con la posibilidad de encaminamiento (IP forwarding) activadaTodas las conexiones pasan a traves de élPuede integrar los Proxies precisos
27
Topologías básicas de cortafuegos (II)
Cortafuegos básico de borde (cont.)Organizacion típica dual homed host
Los equipos de la red externa sólo pueden comunicarse con el dual homed hostIdealmente, lodos los servicios al exterior se ofrecerán únicamente desde el dual homed hostEquipos de red interna y externa no deberían poder entrar en contacto directamente, sino a traves de un intermediario(Proxy)
28
Topologías básicas de cortafuegos (III)
Host oculto (screened host)Ofrecer los servicios (internos y externos) en una única máquina ubicada en el interior
alojará a los Proxies de aplicación usados por la red internaalojará los servicios ofrecidos al exterior
en el esquema anterior estaban en el Cortafuegos o repartidos en la LAN interna
Única máquina accesible desde el exterior (host bastion)Elemento potencialmente vulnerable por ser el único accesible desde el exteriorAdministración delicada (es la base de la seguridad de este esquema)
mínimos servicios software imprescindiblesactualizaciones de seguridad del S.O. + servidoresmonitorización de ficheros de log
29
Topologías básicas de cortafuegos (VI)
Host inseguro (untrusted host) [variante del anterior]El host bastión con los servicios hacia el exterior se ubica fuera de la red protegida
Cortafuegos no tiene efecto sobre élOfrece los servicios públicos sin debilitar la red interna
Configuración y administración delicada
HOST OCULTO HOST INSEGURO
30
Zonas desmilitarizadas (I)
Red de Perímetro/Zona Desmilitarizada(DMZ)Objetivo: aislar los servicios ofrecidos al exterior en una red propia para evitar acceso a la red protegida
Los host bastión se sitúan detrás del cortafuegos, pero en una red aislada (DMZ)
Incrementa seguridad, fiabilidad y disponibilidad respecto a los esquemas anterioresLos equipos internos siguen sin poder confiar en los equipos de la DMZ
DMZ es accesible desde el exterior y sus equipos pueden haber sido comprometidos
La DMZ define una red de servicios públicos Contiene todos los equipos y sistemas que requieran acceso controlado desde el exterior (web, email, dns, etc)Puede incluir los proxies de aplicación para la red interna
31
Zonas desmilitarizadas (II)
DMZ con cortafuegos de 3 interfacesEsquema más simple para definir y gestionar una DMZ
32
Zonas desmilitarizadas (III)
DMZ doble cortafuegos (screened subnet)Mejora del esquema anterior: añade un segundo cortafuegos
cortafuegos externo (de acceso): bloquea/controla tráfico no deseado de red externa a DMZcortafuegos interno (de contención): bloquea/controla tráfico no deseado de DMZ a red interna
33
Zonas desmilitarizadas (IV)
Se aumenta la separación entre la red de servicios externos(DMZ) y la red interna
DMZ se sitúa entre cortafuegos externo e interno2 niveles de seguridad (red DMZ + red interna)
Tráfico de exterior a red interna atraviesa 2 cortafuegosMayor tolerancia a fallos: evita puntos únicos de fallo
Superando cortafuegos externo, sólo queda desprotegida DMZAún comprometiendo un equipo de la DMZ, se contaría con el cortafuegos de contención
Limitaciones:dificultad de administración (gestionar 2 conjuntos de reglas de filtrado funcionando en conjunto)sensación de falsa seguridad
Ventajas:mayor seguridad y tolerancia a fallosmayor flexibilidad: usar tantas DMZ como sea preciso, con distintos niveles de seguridad
34
PARTE IV. Uso de shorewall
ShorewallConfiguración de Shorewall
35
Shorewall
Shorewall (Shoreline Firewall) es una herramienta para simplificar la construcción de sistemas cortafuegos que hagan uso de NETFILTER
Shorewall no es un cortafuegos, es una herramienta de alto nivel para configurar NETFILTER
Genera reglas NETFILTER en base a ficheros de configuración que describen red y políticas de filtrado
Funciona de modo puntual, no continuoConfigura las reglas NETFILTER del kernel, pero no monitoriza el tráfico en el firewall
Web del proyecto: http://shorewall.net/Facilita la gestión de configuraciones de red complejas
La configuración de Shorewall se basa en el concepto de zonas (red interna, red externa, dmz, etc)Las políticas de filtrado y acceso se definen en base a esas zonas
36
Configuración de Shorewall (I)
La configuración de Shorewall se realiza mediante ficheros de texto ubicados en /etc/shorewallFichero /etc/shorewall/zones
Shorewall estructura la red en un conjunto de zonas, definidas en el fichero /etc/shorewall/zonesExiste una zona predefinida ($FW) asociada al propio firewallEjemplo (three-interfaces)
#ZONE TYPE OPTIONS IN_OPTIONS OUT_OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Los equipos de la red (y los externos) estarán ubicados en una de las zonas definidas.
Se especifica en los ficheros /etc/shorewall/interfaces y/o /etc/shorewall/hostsLas direcciones de los interfaces del firewall pertenecen a la zona del firewall $FW.
37
Configuración de Shorewall (II)
Fichero /etc/shorewall/interfacesIndica que interfaz/interfaces de red del firewall están asociados con el tráfico de cada zona
#ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect dhcp,routefilter,norfc1918loc eth1 detectdmz eth2 detect
Todas las máquinas (direcciones) conectadas a un interfaz “pertencerán” a la zona correspondienteCuando varias zonas son “servidas” por un mismo interfaz, se señala en el campo INTERFACE con “-”
Será necesario especificar en el fichero /etc/shorewall/hosts las máquinas concretas de cada zona
Ejemplos de opciones: norfc1918: interfaz no admite tráfico desde direcciones del rango de IPs privadas)blacklist: interfaz no admite máquinas de una lista negra de máquinas prohibidas (/etc/shorewall/blacklist)
38
Configuración de Shorewall (III)
Fichero /etc/shorewall/hostsIndica que equipos están asociados con cada zona (análogo a /etc/shorewall/interfaces)#ZONE HOST(S) OPTIONSlocal1 eth1:192.168.3.0/24local2 eth1:192.168.4.0/24
La reglas de filtrado de tráfico se expresan en términos de zonas, mediante 2 ficheros
Las políticas generales (por defecto) para las conexiones entre zonas se especifican en /etc/shorewall/policyLas excepciones a las políticas por defecto se indican en el fichero /etc/shorewall/rules
Funcionamiento del firewall definido por ShorewallLas peticiones de conexión son “comprobadas” contra las reglas de /etc/shorewall/rulesSi ninguna regla encaja se toma la acción que indique el fichero /etc/shorewall/policy
39
Configuración de Shorewall (IV)
Fichero /etc/shorewall/policyEspecifica la acción por defecto para el tráfico entre dos pares de zonas (origen+destino) y el tipo de log
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURSTloc net ACCEPTnet all DROP infoall all REJECT info
Políticas posibles: ACCEPT, DROP, REJECT, QUEUE, NFQUEUE, CONTINUE,NONELas políticas por defecto pueden tener acciones adicionales asociadas, definidas en /etc/shorewall/actions
40
Configuración de Shorewall (V)
Fichero /etc/shorewall/rulesControla el establecimiento de conexiones que supongan excepciones a las definidas en /etc/shorewall/policyPueden definirse a nivel de zona o de direcciones dentro de una zona (loc:192.168.100.23)
#ACTION SOURCE DEST PROTO DEST-PORT SOURCE-PORT ORIGINAL-DESTDNAT net loc:10.10.10.3 tcp 80 - 130.252.100.69REDIRECT loc 3128 tcp www - !192.168.2.2ACCEPT loc $FW tcp 22
Acciones posibles: ACCEPT, NONAT, DROP, REJECT, DNAT, SAME, REDIRECT, CONTINUE, LOG, etc
Posibilidad de definir/utilizar MACROS (combinaciones de ACCION+nums. de puertos) → permite reglas más compactas
No es necesario definir reglas para diferenciar entre el tráfico de establecimiento de conexiones y el tráfico que es parte de una conexión ya establecida o es tráfico relacionado.
Shorewall gestiona el seguimiento y el estado de las conexiones
41
Configuración de Shorewall (VI)
Traducción de direcciones (SNAT y DNAT)El enmascaramiento de direcciones (SNAT: source-NAT) se configura el fichero /etc/shorewall/masq
#INTERFACE SOURCE ADDRESS eth0 192.168.1.0/24 206.124.146.176 eth1 eth2
Tráfico con origen 192.168.0.0/24 se enmascarará al enviarlo por interfaz eth0 usando la dirección 206.124.146.176 (SNAT)Tráfico con origen e eth2 se enmascarará al enviarlo por interfaz eth1 usando la dir. IP de ese interfaz (SNAT)Si no se indica dirección se usa la asociada al interfazNOTA: Asegurarse que en /etc/shorewall/shorewall.conf tenga activada la redirección (IP_FORWARDING=On)
La redirección de puertos (DNAT: destination-NAT) se configura mediante reglas en /etc/shorewall/rules#ACTION SOURCE DEST PROTO DEST-PORTDNAT net dmz:10.10.10.23:80 tcp 80
Redirección tráfico web recibido hacia máquina 10.10.10.23 de DMZ
42
Configuración de Shorewall (VII)
Otros aspectos:Shorewall soporta el uso de diferentes mecanismos (IPSEc, OpenVPN, etc) para establecer túneles/enlaces cifrados con los que definir redes privadas virtuales (VPN).
Especificadas en fichero /etc/shorewall/tunnelsDefine el tipo de VPN (IPsec, OpenVPN, ...) y si interfaz asociado
Depuración y ejecución del firewall$ shorewall start/stop: arranca/para el firewall (no elimina las reglas en el kernel)$ shorewall clear: “borra” en memoria las reglas NETFILTER$ shorewall trace start: arranca el firewall emitiendo traza de los pasos seguidos
La distribución de Shorewall incluye conjuntos de ficheros de configuración de ejemplo, que sirven como punto de partida para crear el firewall.
Veremos three-interface http://shorewall.net/three-interface.htm
43
PARTE V. Uso de OpenVPN
Redes privadas virtuales (VPN)Configuración y uso de OpenVPN
44
Redes Virtuales Privadas
VPN (Virtual Private Network): Conjunto de tecnologías que permiten extender el alcance de una red local (privada) sobre la infraestructura de una red pública no controlada, manteniendo la confidencialidad del tráfico.
Hacen uso de enlaces cifrados para definir conexiones protegidas entre porciones “separadas” de la propia redEjemplos típicos:
Interconexión “segura” entre 2 delegaciones de una misma organización usando una red pública no segura (Internet) [VPN punto a punto]Conexión segura de un usuario a la red interna desde equipos fuera de la red de la organización [VPN de acceso remoto]
Evitan el uso de lineas dedicadasTecnologías: IPSec, PPTP, L2TP, túneles SSH, OpenVPN
45
OpenVPN (I)
OpenVPN es una implementacion de VPN que usa el protocolo SSL/TLS (Secure Socket Layer/Transport Layer Security) para crear enlaces de red cifrados.
Usualmente emplea la implementación OpenSSLWeb: http://www.openvpn.net
Permite 3 modos de operación:Host a Host: crea un enlace cifrado entre dos máquinas independientesRoad Warrior: permite que un usuario se conecte al servidor OpenVPN desde fuera de la red propia y pueda acceder a sus recursosRed a Red: permite que 2 redes separadas pueden comunicarse para formar una sóla red
Se crea la sensación de que están unidas por un enlace virtual Tráfico de comunicación enviado sobre la red pública va cifrado
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
47
OpenVPN (III)
OpenVPN soporta 2 modos de autenticación/cifradoClave estática: se genera una clave estática que será compartida por los 2 extremos
Esquema sencillo de configurar e implantarExige un mecanismo seguro para el intercambio previo de la clave y la protección de esa clave en ambos extremos
Modo SSL: hace uso del mecanismo de establecimiento de sesiones SSL (basado en certificados digitales) para acordar una clave de sesión temporal que se usará para cifrar cada conexión concreta
Exige que ambos extremos tengan certificados digitales firmados por una autoridad reconocida por ambos
Shorewall contempla la definición de zonas VPN y el uso de los enlaces virtuales cifrados creados por OpenVPN
48
Enlaces e información
Fuentes de informaciónPágina del shorewall: http://openvpn.net/Página de OpenVPN: http://shorewall.net/
Interfaces OpenVPNOpenVPNAdmin:http://home.gna.org/kvpncOpenVPNControl: http://sourceforge.net/projects/openvpn-control/KVPN: http://home.gna.org/kvpnc
Esquemas y manuales de configuración ShorewallStandalone: http://shorewall.net/standalone.htmTwo-interface: http://shorewall.net/two-interface.htmThree-interface: http://shorewall.net/three-interface.htm
49
Funcionamiento SSL/TLS
SSL: Secure Socket Layer Desarrollo inicial por NetscapeInicalmente para proteger tráfico HTTP, aplicable en otros protocolos.
Actualmente es el estándar TLS: Transport Later SecurityProtege el tráfico empleando cifrado asimétrico, cifrado simétrico y HMAC (autenticación de mensajes con HASH + clave secreta), garantizando:
Autenticación de las entidades (servidor y/o cliente): empleando certificados digitalesConfidencialidad de los mensajes: empleando cifrado simétrico con claves de cifrado negociadas/acordadas en cada conexiónIntegridad y atenticidad de los mensajes: uso de HMAC con claves de autenticación negociadas/acordadas en cada conexión
Establecimiento de conexión: Intercambio de certificados servidor y cliente (opcional)Si son reconocidos: intercambio seguro de clave secreta maestra (mediante cifrado asimétrico)
Tráfico de mensajes: cifrados + autenticados con claves de sesión generadas a partir de la clave secreta maestra
50
ANEXO. Uso de iptables
51
Uso de iptables (I)
Esquema reglas iptablesiptables -t tabla [COMANDO][CONDICIONES][OBJETIVO]
Comandos iptables-L/--list cadena lista las reglas en uso en una cadena-F/--flush cadena vacía una cadena-Z/--zero cadena reinicia los contadores de una cadena-P/--policy cadena DROP/ACCEPT establece la política por defecto de una cadena
-A/--append cadena añade una regla (condiciones+objetivo) a una cadena-D/--delete cadena borra una regla de una cadena-R/--replace cadena reemplaza una regla de una cadena-I/--insert cadena inserta una regla de una cadena
52
Uso de iptables (II)
Condiciones iptablesEspecifican los criterios que debe cumplir un paquete (campos que lo componene) para que le sea aplicable la acción de una reglaDirecciones IP
origen: -s/--source (-s 192.168.100.23, -s 10.10.10.0/24)destino: -d/--destination (-d 10.10.10.47,-d 10.10.10.0/24)
Interfaz (dispositivo por el que se ha recibido o por que que saldrá un paquete)
de entrada: -i/--in-interface (-i eth1) [en input, forward, pre-routing]
de salida: -o/--out-interface (-o ppp0) [en output, forward, post-routing]
Tipo de protocolo: -p/--protocolprotocolo nivel transporte: -p TCP, -p UDP, -p ICMP, -p all
53
Uso de iptables (III)
Condiciones iptables (cont.)Puertos (para TCP y UDP)
de origen: -sport/--source-portde destino: -dport/--destination-portpuede ser un número de puerto (-sport 80), un nombre de servicio (-sport http) o un rango de puertos (-sport 1024:65535)
Control del estado de la conexión:-m state --state [ESTADOS]Soporte básico para reglas de filtrado ''con estado''Situación del paquete respecto a la conexión a la que pertenece:
invalid: paquete no asociado a una conexión conocidaestablished: paquete que pertenece a una conex. válida ya establecidanew: paquete mediante el cual se está creando una nueva conexiónrelated: paquetes que inician una nueva conexión que está asociada con otra ya establecida
Otro módulo para filtros con estado (seguimiento de conexiones): -m conntrack –ctstate [ESTADOS]
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)
55
Uso de iptables (V)
Objetivos iptablesObjetivos predefinidos en la tabla -t filter
A usar en las cadenas INPUT,OUTPUT,FORWARD-j ACCEPT el paquete se acepta
Se lepermite que continúe su curso (a otra cadena o a su destino final ) y se deja de recorrer la cadena actual
-j DROP se rechaza el paquete (sin informar al origen)-j REJECT –reject-with [...] se rechaza el paquete, informando al origen con el mensaje icmp indicado
56
Uso de iptables (VI)
Objetivos iptables (cont.)Objetivos predefinidos en la tabla -t nat
-j SNAT –to-source Realiza SNAT(source-NAT) sobre los paquetes salientes [enmascaramiento de direcciones]
Cambia la dir. IP (opc. puerto) de origen del paqueteSólo se puede invocar en la cadena POST-ROUTING
-j MASQUERADE También realiza SNAT, pero usando la dir. IP del propio equipo
Útil en conexiones volátiles [adsl, modem]) Sólo se puede invocar en la cadena POST-ROUTING
-j DNAT –to-destination Realiza DNAT(destination-NAT) sobre los paquetes entrantes [redireccionamiento de puertos]
Cambia la dir. IP (opc. puerto) de destino del paquete Sólo se puede invocar en la cadena PRE-ROUTING(s´olo disponible en prerouting (y opcionalmente en OUTPUT)
57
Uso de iptables (VII)
Objetivos iptables (cont.)Objetivos predefinidos para hacer log
No se detiene el recorrido por la cadena-j log crea entrada en el log del sistema [/var/log/sysylog]
Opciones: --log-prefix, --log-level-j ulog crea entrada en un log definido por usuario
Objetivos definidos por el usuarioEs posible crear cadenas definidas por el usuario (-N micadena) y eliminarlas (-X micadena)Para acceder a una cadena de usuario bastará incluir la acción -j micadena en una regla de las cadenas predefinidas.El paquete recorre las reglas de la cadena de usuario hasta encajar en las condiciones de alguna regla, ejecutando su acciónSi no encaja en ninguna regla, el paquete retorna a la cadena anterior desde la que accedió a la cadena de usuario.
58
Ejemplo IPTABLES
Firewall básico de borde con enmascaramiento de la red interna (NAT)
Red interna del rango 10.10.10.0/24 [mascara 255.255.255.0]Una única dir. IP pública [193.147.87.47]Interfaces del firewall: eth0 (red externa), eth1 (red interna)
Servicios hacia el exterior (idealmente deberían ubicarse en DMZ)Servidores http y https públicos en la máquina interna 10.10.10.66Servidores corporativos de correo saliente (smtp) y entrante (pop3) en 10.10.10.77
Restricciones sobre el firewallTodas las conexiones hacia el firewall están prohibidasSólo se permiten conexiones ssh (puerto 22) que provengan de equipos de la red interna (para labores de administración)
Restriciones de tráfico desde el interiorNo se permite la conexión para envío de e-mail (smtp) con máquinas del exterior.Todas los demás tipos de conexión están autorizados
59
#!/bin/sh
# Vaciar y reiniciar las tablas actualesiptables -Fiptables -Xiptables -Ziptables -t nat -F
# Establecer politicas por defectoiptables -P INPUT DROP # descartar entradas al firewalliptables -P OUTPUT ACCEPT # aceptar salidas del firewalliptables -P FORWARD ACCEPT # aceptar reenvios a traves del firewalliptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT
# Permitir localhostiptables -A INPUT -i lo -j ACCEPT
60
# SNAT (enmascaram. de salida de red interna 10.10.10.0/24) hacia exterioriptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 \ -j SNAT --to-source 193.147.87.47 # otra posibilidad: -j MASQUERADE
# DNAT (redireccionamiento puertos tcp 80, 25, 110 a red interna)iptables -t nat -A PREROUTING -i eth0 -d 10.0.100.0/24 -j DROP # NOTA: descartar antes paquetes externos dirigidos a red interna # si se hiciera en FORWARD, se eliminarian las redireccionesiptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \ -j DNAT --to-destination 10.10.10.66:80iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 \ -j DNAT --to-destination 10.10.10.77:25iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 110 \ -j DNAT --to-destination 10.10.10.77.110
61
# Reglas de filtrado# Filtrado conexiones entrantes al firewall # - permitir SSH desde red interna, resto bloqueado por politica por defectoiptables -A INPUT -i eth1 -s 10.10.10/24 -p tcp --dport 22 -j ACCEPT
# Habilitar forward de paquetesecho 1 > /proc/sys/net/ipv4/ip_forward
# Filtrado salida red interna# - bloquear salida conex. SMTP de red interna, # el resto está permitido por politica por defectoiptable -A FORWARD -i eth1 -o eth0 -s 10.10.10.0/24 \ -p tcp -- dport 25 -j DROP