51
Curso Básico de Firewall/Proxy

Basico Firewall Proxy

Embed Size (px)

Citation preview

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

Red Interna: Bases de Datos, Estaciones,

Servidores de RedRed Pública: Servidores Web, Correo, etc.

Red Externa: Routers, RAS, etc.

INTERNET

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 todos

los paquetes que posean dirección de origen 172.16.X.X para

cambiarla 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

Servidor

Correo

172.20.0.1

255.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

Router

Cabletron

8600

Switch

(Segmento Externo)

172.20.204.63

172.20.204.4

172.16.43.201Eth1 Eth0

Servidor

Web

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 defecto

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -t nat -P PREROUTING ACCEPT

iptables -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 conocidos

iptables -A INPUT -s 0.0.0.0/0 -p tcp -dport 1:1024 -j DROP

iptables -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.205

iptables -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.0

acl manager proto cache_object

acl localhost src 127.0.0.1/255.255.255.255

acl 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-qua

lyty.co*

acl porno url_regex .*http://www.anpland.com*.*http://www.megapage.org/html*

.*http://www.sexylegsplaygirl.com*

acl SSL_ports port 443 563

acl Safe_ports port 80 # http

acl Safe_ports port 21 # ftp

acl Safe_ports port 443 563 # https, snews

acl Safe_ports port 70 # gopher

acl Safe_ports port 210 # wais

acl Safe_ports port 1025-65535 # unregistered ports

acl Safe_ports port 280 # http-mgmt

acl 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 localhost

http_access deny porno

http_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 ACL Restricció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!!