Está en la página 1de 44

FIREWALL

¿Qué es un Firewall?

FIREWALL = “Cortafuegos”
¿Qué es un Firewall?

FIREWALL = “Cortafuegos”
¿Qué es un Firewall?

FIREWALL = “Cortafuegos”

Elemento de hardware o software utilizado en una red de


computadoras para controlar las comunicaciones, permitiéndolas o
prohibiéndolas según las políticas de seguridad.
¿Dónde opera un Firewall?

Punto de conexión de la red interna con la red exterior

Zona Desmilitarizada (DMZ)


Funciones posibles del Firewall (I)

• NAT (Network Address Translation)

10.0.0.1

10.0.0.2
Funciones posibles del Firewall (I)

• NAT (Network Address Translation)

10.0.0.1

10.0.0.2
Funciones posibles del Firewall (I)
• NAT (Network Address Translation)

10.0.0.1

10.0.0.2
Funciones posibles del Firewall (II)

• PROXY

La información solicitada al exterior es recuperada por el firewall y


después enviada al host que la requirió originalmente.
Funciones posibles del Firewall (II)

• PROXY

La información solicitada al exterior es recuperada por el firewall y


después enviada al host que la requirió originalmente.
Funciones posibles del Firewall (II)

• PROXY

La información solicitada al exterior es recuperada por el firewall y


después enviada al host que la requirió originalmente.
Funciones posibles del Firewall (III)

• QOS

HTTP HTTP

La LAN esta haciendo mucho uso de Intenet via HTTP y el firewall


limita la salida para que por ejemplo los usuarios puedan recibir sin
problemas su correo
Funciones posibles del Firewall (IV)

• Balanceo de Carga

HTTP HTTP

La LAN tiene dos vinculos con internet y el firewall distribuye la


carga entre las dos conexiones.
Limitaciones del Firewall

• No protege de ataques fuera de su área

• No protege de espías o usuarios inconscientes

• No protege de ataques de “ingeniería social”

• No protege contra ataques posibles en la transferencia de datos,


cuando datos son enviados o copiados a un servidor interno y son
ejecutados despachando un ataque.
Implementación

Hardware específico configurable o bien una aplicación de software


corriendo en una computadora, pero en ambos casos deben existir al
menos dos interfaces de comunicaciones (ej: placas de red)
Implementación

Hardware específico configurable o bien una aplicación de software


corriendo en una computadora, pero en ambos casos deben existir al
menos dos interfaces de comunicaciones (ej: placas de red)

1) ACEPTAR

REGLAS
2) DENEGAR
Implementación

Hardware específico configurable o bien una aplicación de software


corriendo en una computadora, pero en ambos casos deben existir al
menos dos interfaces de comunicaciones (ej: placas de red)

IPTABLES
(LINUX)
IPtables

= NETFILTER

LINUX

Kernel

IPTables

• Filtrado de paquetes
• “Connection tracking”
• NAT
Funcionamiento de IPtables

paquete IP

regla1 regla2 regla3 ...

cadena 1

INPUT
cadenas básicas OUTPUT
FORWARD

... el usuario puede crear tantas como desee.


Funcionamiento de IPtables

paquete IP

regla1 regla2 regla3 ...

cadena 1

regla1 regla2 regla3 ...

cadena 2

... enlace a otra cadena


Funcionamiento de IPtables

REGLAS

condiciones a matchear DESTINO

• ACCEPT
• DROP
• QUEUE
• RETURN
• ...

• cadena definida
por usuario
Funcionamiento de IPtables

REGLAS

condiciones a matchear DESTINO

• protocolo • ACCEPT
• IP origen • DROP
• IP destino • QUEUE
• puerto destino • RETURN
• puerto origen • ...
• flags TCP
• ...
• cadena definida
por usuario
Funcionamiento de IPtables

paquete IP

... cadena 1

... cadena 2

.
.
.

... cadena N

TABLA
Funcionamiento de IPtables

Hay tres tablas ya incorporadas, cada una de las cuales contiene ciertas
cadenas predefinidas :
• responsable del filtrado • INPUT
• FILTER TABLE
• cadenas predefinidas • OUTPUT
• FORWARD

• NAT TABLE • responsable de configurar las reglas de


reescritura de direcciones o de puertos de los
paquetes
• PREROUTING (DNAT)
POSTROUTING (SNAT) •
OUTPUT (DNAT local) •

• MANGLE TABLE responsable de ajustar las opciones de los


paquetes, como por ejemplo la calidad de servicio;
contiene todas las cadenas predefinidas posibles.
Funcionamiento de IPtables
Ejemplo de IPtables (I)

Queremos bloquear todos aquellos paquetes entrantes provenientes de


la dirección IP 200.200.200.1.
iptables -s 200.200.200.1

No estamos especificando qué hacer con los paquetes. Para esto, se


usa el parámetro -j seguido por alguna de estas tres opciones:
ACCEPT, DENY o DROP.

iptables -s 200.200.200.1 -j DROP

Necesitamos también especificar a qué chain o cadena vamos a aplicar


esta regla. Para eso está el parámetro -A.

iptables -A INPUT -s 200.200.200.1 -j DROP


Ejemplo de IPtables (II)

Si lo que buscamos es que a nuestra computadora le sea imposible


comunicarse con la anterior, simplemente cambiaremos el INPUT por el
OUTPUT, y el parámetro -s por el -d.

iptables -A OUTPUT -d 200.200.200.1 -j DROP

Si quisiéramos ignorar sólo las peticiones Telnet provenientes de esa


misma IP

iptables -A INPUT -s 200.200.200.1 -p tcp --puerto-destino telnet -j DROP

Si vamos a usar la computadora como router, deberemos setear la


cadena de FORWARD para que también quede en ACCEPT.

iptables -P FORWARD ACCEPT


Implementación (escenario 1)

REGLAS

Todo lo que venga de la red local al Firewall : ACEPTAR


Todo lo que venga de una IP domiciliaria al puerto TCP 22 = ACEPTAR
Todo lo que venga de la IP domiciliaria del Gerente al puerto TCP 1723 = ACEPTAR
Todo lo que venga de la red local al exterior = ENMASCARAR
Todo lo que venga del exterior al puerto TCP 1 al 1024 = DENEGAR
Todo lo que venga del exterior al puerto TCP 3389 = DENEGAR
Todo lo que venga del exterior al puerto UDP 1 al 1024 = DENEGAR

ALTERNATIVA: implementar reglas por PROXY a nivel aplicación


Implementación (escenario 2)

VPN L1

L2
PaP L3

• VPN con túnel IPSEC.


• Punto a Punto seguro, o política de seguridad anti-intrusos o sniffing (ENCRIPT.)
NETWORK ADDRESS
TRANSLATION (NAT)
NAT: NECESIDAD

• Escasez de direcciones IP reales


• Esta idea es aún debatible, pero…
• El hecho de que Internet empezó en E.E.U.U significó una
repartición desbalanceada

• Dificultad en obtener bloques


• Necesidad de NICs regionales
NAT: NECESIDAD

• Seguridad
• Los bloques RFC-1918 no son ‘enrutados’
• Los routers suelen bloquear cualquier paquete con estas
direcciones en origen o destino
• Ningún AS debe publicar estos bloques
• Se enmascara la topología de la red interna
• Gestión
• Protegerse de los cambios de bloques del ISP
RFC 1918

• Asigna varios bloques para uso interno y privado


10.0.0.0 - 10.255.255.255 (10/8 prefix)

172.16.0.0 - 172.31.255.255 (172.16/12 prefix)

192.168.0.0 - 192.168.255.255 (192.168/16 prefix)


FUNCIONAMIENTO

• NAT básico
• Una sola dirección pública
• El router recibe el paquete y cambia la dirección origen (O) con la
dirección pública (P) y reenvía el paquete al destino (D)
• Inserta una entrada en su tabla dinámica
• D -> O
• Recibe el paquete de vuelta, busca la dirección remota en su tabla
(D), cambia la dirección destino (P) por la original (O)
TERMINOLOGÍA (CISCO)

• Inside Local, Inside Global


• Outside Local, Outside Global
TERMINOLOGÍA (CISCO)
FUNCIONAMIENTO

• Problema:
• Qué pasa si dos máquinas locales acceden a la misma máquina
remota simultáneamente?
• La tabla contendrá
• D -> O1
• D -> O2
• A quién le devuelvo el paquete?
NAT MÚLTIPLE

• Utiliza un rango de direcciones públicas para traducir


• Cada nuevo paquete saliente con dirección origen O1, 02…,On
es traducido en P1, P2…,Pn etc

• Permite que n máquinas internas accedan a un mismo


servidor simultáneamente
NAPT/PAT

• NAPT = Network Address Port Translation


• Otra solución es agregar más información a la tabla
• Traducir también los números de puerto origen y destino
NAPT/PAT

• NAT múltiple y NAPT se pueden combinar


• Cisco utiliza el comando ‘overload’, con el que el router utiliza otra
dirección del rango sólo si ha mapeado todos los puertos de la
primera dirección en su tabla
NAT/PAT ESTÁTICO

• Se configura una relación fija entre una dirección privada


y una pública
• Generalmente sólo es necesario cuando se quiere proveer un
servicio desde la red interna
• Los puertos no tienen que coincidir necesariamente
• Ej: 192.168.0.5:80 -> 203.132.165.9:8080

• Los firewalls suelen usar esta técnica


LIMITACIONES

• Protocolos que incluyen direcciones IP y números de puerto


en su campo de datos
• ICMP (Destination Unreachable)
• FTP (incluye dirección y puerto del cliente para conexión de
datos)
• H.323, SIP (videoconferencia, VOIP)
• RealAudio
• SNMP en algunos casos
• X-Windows
• Las nuevas implementaciones resuelven algunos de éstos
• El router tiene que inspeccionar el contenido del paquete IP
(más carga de procesamiento)
PROBLEMAS CON CIFRADO

• TCP header checksum


• Direcciones IP en su pseudo-cabecera
• Calcula un checksum de ésta
• Como las direcciones cambian, el checksum tiene que ser
recalculado

• Qué pasa si está cifrado?


• Caso SSH/SSL vs. IPSEC end-to-end
CONSIDERACIONES

• Decisión de usar NAT debe tomar en cuenta la relación


costo/beneficio
• Qué tanto pesan las ventajas obtenidas en comparación con
• Complejidad
• Incapacidad para proveer ciertos servicios
• Gestión más difícil
• Descontento de usuarios

También podría gustarte