Top Banner
Curso Básico de Firewall/Proxy
51
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Basico Firewall Proxy

Curso Básico de Firewall/Proxy

Page 2: Basico Firewall Proxy

Agenda

Cortafuegos o Firewall

• Conceptos Básicos

• Algunos Firewalls Comerciales

• Firewall Check Point

• Firewall Firebox-1

• El firewall de LINUX: IPTABLES

Proxies

• Conceptos Básicos

• Algunos Proxies Comerciales

• Proxy WinProxy

• Proxy ISA Server

• El Proxy de LINUX: SQUID

• Generando estadísticas del Proxy: Calamaris

Page 3: Basico Firewall Proxy

Qué es un firewall ?

Un firewall es un dispositivo que filtra el tráfico entre redes, como mínimo dos.

El firewall puede ser un dispositivo físico o un software sobre un sistema operativo.

En general debemos verlo como una caja con dos o mas interfaces de

red en la que se establecen una reglas de filtrado con las que se decide si una conexión determinada puede establecerse o no.

Incluso puede ir más allá y realizar modificaciones sobre las comunicaciones, como el NAT.

Page 4: Basico Firewall Proxy

Qué es un firewall ? (cont.)

La anterior es una definición genérica

Hoy en dia un firewall es un hardware especifico con un sistema operativo o una IOS que filtra el tráfico TCP/UDP/ICMP/../IP y decide si un paquete pasa, se modifica, se convierte o se descarta. Para que un firewall entre

redes funcione como tal debe tener al menos dos tarjetas de red.

Page 5: Basico Firewall Proxy

Esquema de firewall típico entre red local e internet

Esquema típico de firewall para proteger una red local conectada a internet a través de un router. El firewall debe colocarse entre el router con un único cable) y la red local (conectado al switch o al hub de la LAN)

Page 6: Basico Firewall Proxy

Esquema de firewall entre red local e internet con zona DMZ para servidores expuestos

Con esta arquitectura, permitimos que el servidor sea accesible desde internet de tal forma que si es atacado y se gana acceso a él, la red local sigue protegida por el firewall. Esta estructura de DMZ puede hacerse también con un doble firewall (aunque como se ve se puede usar un único dispositivo con al menos tres interfaces de red)

Page 7: Basico Firewall Proxy

Esquema de firewall entre red local e internet con zona DMZ para servidores expuestos creado con doble firewall(perímetro)

Page 8: Basico Firewall Proxy

Hay dos maneras de implementar un firewall:

1) Política por defecto ACEPTAR: en principio todo lo que entra y sale por el firewall se acepta y solo se denegará lo que se diga explícitamente

2) Política por defecto DENEGAR: todo esta denegado, y solo se permitirá pasar por el firewall aquellos que se permita explícitamente

Si la política por defecto es ACEPTAR, se facilita mucho la gestión del firewall, ya que simplemente nos tenemos que preocupar de proteger aquellos puertos o direcciones que sabemos que nos interesa

Si la política por defecto es DENEGAR, a no ser que lo permitamos explícitamente, el firewall se convierte en un auténtico MURO infranqueable. El problema es que es mucho más difícil preparar un firewall así

Page 9: Basico Firewall Proxy

Agunos Firewalls Existentes en el Mercado

Nombre Empresa

Check Point Express Check Point

ISA Server Microsoft

Firebox-1 Watchguard

Sun Screen Sun

IPTABLES Software Libre

Page 10: Basico Firewall Proxy

Check Point Express

Page 11: Basico Firewall Proxy

Aplicación de Reglas en el Check Point

objeto

origen destino

protocolo

acción

Page 12: Basico Firewall Proxy

Funciones de Proxy en el Check Point

Page 13: Basico Firewall Proxy

R e d I n te rn a : B a s e s de D a to s , Es ta cio n e s , S e rv ido re s de R e d

R e d Pú blica : S e rv ido re s W e b, C o rre o , e t c .

R e d Ex te rn a : R o u te rs , R A S , e t c .

I NTER NET

Firebox-1 de WatchGuard

Page 14: Basico Firewall Proxy

Arena de Servicios en el Firebox-1

Servicios

Page 15: Basico Firewall Proxy

Asignación de Políticas por Servicios en el Firebox-1

Page 16: Basico Firewall Proxy

Qué es iptables?

Iptables es un sistema de firewall vinculado al kernel de linux que se ha extendido enormemente a partir del kernel 2.4 de este sistema operativo. Al igual que el anterior sistema ipchains, un firewall de iptables no es como un servidor que lo iniciamos o detenemos o que se pueda caer por un error de programación

Iptables esta integrado con el kernel, es parte del sistema operativo

¿Cómo se pone en marcha?

Realmente lo que se hace es aplicar reglas.

Se ejecuta el comando iptables, con el que añadimos, borramos, o creamos reglas.

Un firewall de iptables no es sino un simple script de shell en el que se van ejecutando las reglas de firewall.

Page 17: Basico Firewall Proxy

Importante

El kernel lo que hace es, dependiendo si el paquete es para la propia maquina o para otra maquina, consultar las reglas de firewall

y decidir que hacer con el paquete según mande el firewall.

A continuación se muestra el camino que seguiría un paquete en el kernel

Page 18: Basico Firewall Proxy

Elementos que componen IPTABLES

Reglas: establecen las políticas a aplicar sobre los paquetes y datagramas

En cada regla se encuentran los siguientes objetos:

Tablas

Cadenas

Comandos y Parámetros

Page 19: Basico Firewall Proxy

Ejemplo de Regla:

iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -j SNAT --to-source 172.20.204.63

Tabla

Cadena

Comando

Se lee:

Aplicarle la tabla “nat” durante la fase de POSTROUTING a todoslos paquetes que posean dirección de origen 172.16.X.X paracambiarla a 172.20.204.63

Page 20: Basico Firewall Proxy

Tabla: Establece el tipo de objeto sobre el que se tomará la acción

mangle: altera campos del paquete

nat: permite NAT´s de dirección de origen y de destino

filter: filtra o restringe en base a los cambos de los paquetes

Cadena: Indica en qué momento se aplicará la regla

PREROUTING, POSTROUTING,INPUT, OUTPUT, FORWARD

Comandos y Parámetros : definen la acción a realizar

Ej: DROP, ACCEPT

Funciones de los Objetos de IPTABLES

Page 21: Basico Firewall Proxy

Flujo del Paquete dentro del Firewall

Page 22: Basico Firewall Proxy

Antena

ServidorCorreo

172.20.0.1255.255.0.0

Linux

IPTABLES SQUID

172.16.0.0/16

172.20.0.0/16

Enlaces de Fibra Óptica(Torres Parque Central)

Enlaces Inalámbricos

RouterCabletron

8600

Switch(Segmento Externo)

172.20.204.63172.20.204.4

172.16.43.201Eth1 Eth0

ServidorWeb

Ejemplo Práctico: Una Red LAN conectada a Red Platino

Page 23: Basico Firewall Proxy

Aplicación de Reglas

# se activa la bandera ip_forward para hacer redireccionamiento (routing) de # tráfico entre interfases

echo 1 > /proc/sys/net/ipv4/ip_forward

# Proxy transparente para http. Para no modificar los browser activandole "proxy".Redirige el #tráfico Web al Web Cache (squid) interno: le cambia el puerto de destino a los paquetes # que ingresan: 80 por 3128 iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128

# Servidor de correo #NAT estático entrante. Se aplica a dirección de destino 172.20.204.4 iptables -t nat -A PREROUTING -d 172.20.204.4 -j DNAT --to-destination 172.16.43.201 #Se le asigna una segunda dirección a la tarjeta de red eth0 para que pueda ser vista desde el exterior ip addr add 172.20.204.4 dev eth0

# Se permiten entradas sólo hacia los puertos relacionados con el correo y salida hacia el servidor ftp 161.196.215.65 de red platino : iptables -t filter -A FORWARD -p tcp -i eth0 -d 172.20.204.4 --dport 25 -j ACCEPT iptables -t filter -A FORWARD -p tcp -i eth0 -d 172.20.204.4 --dport 110 -j ACCEPT iptables -t filter -A FORWARD -p tcp -i eth1 -d 161.196.215.65 --dport 21 -j ACCEPT iptables -t filter -A FORWARD -p tcp -i eth1 -d 161.196.215.65 --dport 20 -j ACCEPT # NAT dinámico saliente: las direcciones de origen 172.16.X.X se convierten a 172.20.204.63 iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -j SNAT --to-source 172.20.204.63

Page 24: Basico Firewall Proxy

Otro Ejemplo#!/bin/sh## Establecemos politica por defectoiptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPTiptables -t nat -P PREROUTING ACCEPTiptables -t nat -P POSTROUTING ACCEPT

# Se habilita la comunicación entre las dos tarjetas de red

echo 1 > /proc/sys/net/ipv4/ip_forward

# Se redirige el tráfico al puerto 80 hacia el SQUID

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128

# Se acepta que entre al SQUID el tráfico desde la red 172.20.X.X

iptables -A INPUT -s 172.20.0.0/16 -p tcp --dport 3128 -j ACCEPT

# Otras direcciones IP no pueden pasar a través del firewall

iptables -A FORWARD -s 0.0.0.0/0 -j DROP

# Cerramos el rango de puertos bien conocidosiptables -A INPUT -s 0.0.0.0/0 -p tcp -dport 1:1024 -j DROPiptables -A INPUT -s 0.0.0.0/0 -p udp -dport 1:1024 -j DROP

# NAT dinámico saliente: las direcciones de origen 0.0.0.0/0 se convierten a 172.20.245.205iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -j SNAT --to-source 172.30.245.205

Page 25: Basico Firewall Proxy

IPTABLES desde el Webmin

Page 26: Basico Firewall Proxy

Proxies

Las pasarelas trabajan en el nivel más alto del stack del protocolo para suministrar más oportunidades para monitorear el acceso entre redes.

Una pasarela es como un agente que lleva mensajes de clientes internos a servicios externos.

El servicio cambia la dirección IP de los paquetes de clientes para ocultar el cliente interno en relación a Internet, luego actúa como un agente proxy para

el cliente en Internet.

Los servidores proxy ocultan las direcciones internas

Page 27: Basico Firewall Proxy

Un servidor proxy a nivel de aplicación suministra las propiedades proxy básicas y también análisis extensivo de paquetes.

Cuando llegan paquetes desde fuera a la pasarela son examinados y evaluados para determinar si la política de seguridad permite al paquete

entrar en la red interna.

¿ Como Trabajan ?

Page 28: Basico Firewall Proxy

¿ Como Trabajan ?

No sólo evalúa el servidor las direcciones IP, sino también mira los datos de los paquetes para evitar que los hackers oculten información

en dichos paquetes.

Una pasarela a nivel de aplicación típica puede proporcionar servicios proxy para aplicaciones y protocolos como Telnet, FTP, HTTP (servicios

Web) y SMTP (correo electrónico).

Debe instalarse un proxy separado para cada servicio a nivel de aplicación (algunos fabricantes consiguen seguridad simplemente no proporcionando proxy para algunos servicios, por lo que se debe ser

cuidadoso en la evaluación).

Page 29: Basico Firewall Proxy

Algunos Proxies Existentes en el Mercado

Nombre Empresa

Check Point Ckeck Point

ISA Server Microsoft

Firebox-1 Watchguard

PIX Cisco

WinProxy Ositis

WinGate Microsoft SQUID Software Libre

Page 30: Basico Firewall Proxy

192.168.1.1

WinProxy 2.1: Interfases Interna y Externa

Interna

Externa

Page 31: Basico Firewall Proxy

WinProxy 2.1: Habilitación de Protocolos

Page 32: Basico Firewall Proxy

WinProxy 2.1: Administración de Usuarios

Page 33: Basico Firewall Proxy

WinProxy 2.1: Establecimiento del Caché

Page 34: Basico Firewall Proxy

ISA Server: Habilitación de Servicio

Page 35: Basico Firewall Proxy

ISA Server: Configuración de Proxy y Firewall

Page 36: Basico Firewall Proxy

ISA Server: Filtro de Paquetes

Page 37: Basico Firewall Proxy

El SQUID es el Proxy de Web o Web-Caché para LINUX/UNIX

Squid es el software para servidor Proxy más popular y extendido entre los sistemas operativos basados sobre UNIX®.

Es muy confiable, robusto y versátil.

Al ser software libre, está disponible el código fuente y está libre del pago de licencias por uso o con restricción a un uso con determinado número de usuarios.

Squid puede hacer Proxy y cache con los protocolos HTTP, FTP, GOPHER y WAIS, Proxy de SSL, cache transparente, aceleración HTTP, cache de consultas DNS y otras más como filtración de contenido y control de acceso por IP y por usuario.

Squid no puede funcionar como proxy para servicios como SMTP, POP3, TELNET, SSH, etc

Page 38: Basico Firewall Proxy

SQUID: Configuración

Squid utiliza el fichero de configuración localizado en /etc/squid/squid.conf, y se podrá trabajar sobre este utilizando un editor de texto

Parámetros recomendados:

http_port cache_mem cache_dir Al menos una Lista de Control de Acceso Al menos una Regla de Control de Acceso httpd_accel_host httpd_accel_port httpd_accel_with_proxy

Page 39: Basico Firewall Proxy

Configuración del SQUID

proxy:/etc# more squid.conf

# IP address with port. ## The default port number is 3128.

Tamaños máximos y mínimos de los objetos a ser almacenados temporalmente:

# TAG: maximum_object_size (bytes)# Objects larger than this size will NOT be saved on disk. The# value is specified in kilobytes, and the default is 4MB#Default: maximum_object_size 4096 KB

# TAG: minimum_object_size (bytes)# Objects smaller than this size will NOT be saved on disk. The# value is specified in kilobytes, and the default is 0 KB, which# means there is no minimum.##Default:# minimum_object_size 0 KB

Page 40: Basico Firewall Proxy

Configuración del SQUID (cont.)

En el siguiente archivo se guardan las solicitudes realizadas por los clientes e información sobre su permiso o rechazo.

# TAG: cache_access_log# Logs the client request activity. Contains an entry for# every HTTP and ICP queries received.##Default: cache_access_log /var/log/squid/access.log

La auditoria de la actividad del SQUID queda registrada en el archivo “cache.log”, cuya ruta se configura a continuación.# TAG: cache_log# Cache logging file. This is where general information about# your cache's behavior goes. You can increase the amount of data# logged to this file with the "debug_options" tag below.##Default: cache_log /var/log/squid/cache.log

Page 41: Basico Firewall Proxy

Configuración del SQUID (cont.)

La etiqueta acl permite la definición de las listas de acceso (Access list)

acl aclname acltype

El aclname es el nombre que el usuario le desea dar a la lista.

El acltype se refiere al tipo de objeto que se le aplicará la lista de acceso. Entre los tipos más comunes están:

· src: dirección-IP/máscara de origen· acl: dirección-IP/máscara de destino· srcdomain: dominio de origen· dstdomain: dominio destino· srcdom_regex: nombre de la máquina cliente· dstdom_regex: nombre del servidor· time: establece días y horas dentro de la semana· url_regex: indica un URL particular· port: se aplica a los puertos· myport: se aplica al puerto propio· proto: establece el protocolo como HTTP, FTP, etc.· method: indica el método dentro de un servicio, como: GET, POST, etc

Page 42: Basico Firewall Proxy

Configuración del SQUID (cont.)

#Recommended minimum configuration:

acl all src 0.0.0.0/0.0.0.0acl manager proto cache_objectacl localhost src 127.0.0.1/255.255.255.255acl porno url_regex .*http://www.sexplexx.com* .*http://www.adulteras.com*acl porno url_regex .*http://www.sexyven.net* .*http://a-rated-sex.com* .*http://www.all-sex.com*acl porno url_regex .*http://ranking.sexranks.com* .*http://www.sex-movies-qualyty.co*acl porno url_regex .*http://www.anpland.com*.*http://www.megapage.org/html* .*http://www.sexylegsplaygirl.com*acl SSL_ports port 443 563acl Safe_ports port 80 # httpacl Safe_ports port 21 # ftpacl Safe_ports port 443 563 # https, snewsacl Safe_ports port 70 # gopheracl Safe_ports port 210 # waisacl Safe_ports port 1025-65535 # unregistered portsacl Safe_ports port 280 # http-mgmtacl Safe_ports port 901 # SWAT

Page 43: Basico Firewall Proxy

La etiqueta http_access permite o niega el acceso basado en las listas de acceso anteriores. El formato es:

http_access allow|deny [!]aclname ...

donde “ !aclname “ significa “no pertenece” a la lista de acceso. Si no aparecen líneas http_access, la opción por defecto es negar la solicitud. A continuación se muestran la configuración para restringir o permitir el tráfico tipo http:

http_access allow localhosthttp_access deny pornohttp_access allow all

Page 44: Basico Firewall Proxy

Administración de SQUID desde Webmin

SQUID

Page 45: Basico Firewall Proxy

Parámetros configurables: el más importante es Control de Acceso

Page 46: Basico Firewall Proxy

Listas de Acceso y Restricciones

Nombre del ACLRestricción

Page 47: Basico Firewall Proxy

Calamaris

Es un software generador de reportes que se utiliza para leer, de forma cómoda, los archivos de auditoría de SQUID, Oops y otros Proxies

Lee los archivos access.log, cache.log, y otros. Luego los muestra en formato html u otro

Secuencia de comandos para generar una página Web con estadísticas:

#cat /var/squid/logs/access.log.0 | calamaris -F html -u > /web_server_root/calamaris/index.html

Previamente, para generar los logs rotativos debe usarse:

# squid -k rotate

Page 48: Basico Firewall Proxy

Listado de Estadísticas de Calamaris

Page 49: Basico Firewall Proxy

Dominios de 2° Nivel más Visitados

Page 50: Basico Firewall Proxy

Tips• Requisitos del PC:

Pentium III a mayor

Dos (2) tarjetas de red, de fabricantes diferentes

RAM de 256 MB o más

Disco Duro de 40 GB o más

• Poseer acceso de servicio alternativo para pruebas de conexiones entrantes

• Revisar diariamente la actividad de los servicios

Page 51: Basico Firewall Proxy

Concluyó la charla:Firewalls y Proxis

¡¡Muchas gracias por su atención!!