PDF de programación - Implementación de una DMZ

Imágen de pdf Implementación de una DMZ

Implementación de una DMZgráfica de visualizaciones

Publicado el 25 de Marzo del 2018
1.054 visualizaciones desde el 25 de Marzo del 2018
1,2 MB
67 paginas
Creado hace 18a (02/04/2006)
Implementación de una DMZReunion CUDIPrimavera 2006Jorge A. Zárate Pérez / Mario Farias Elinos DMZ

¿Que es un Firewall ?
Hablando de manera generica, un firewall es un método de protección de servidores o
redes, que estan conectados a otros servidores o redes, existen diferentes maneras de
“colocar” un firewall en la red, de manera muy concreta un firewall es un packet filter
(filtrado de paquetes) entre los dispositivos anteriores, este filtrado de paquetes puede
ser en varios niveles del modelo OSI.
El firewall define un conjunto de reglas y politicas para filtrar los paquetes que pasan por
el.
¿Que no es un firewall ?
No es una bala de plata que proveea una protección total a la red o servidores.

Introducción

Hardware vs Software
Muchas veces hablamos de firewall entre un firewall basado en software y los que estan
en hardware, la diferencia si se analiza es que los firewalls que estan basados en
hardware tiene un “software” en la EPROM... y por la naturaleza cambiante de las reglas
de estos no es viable tener un circuito virtual fijo, la diferencia mas bien esta en la “caja”
que viene con un manual y un conjunto de cursos para operarlo, y un respaldo de soporte
“incondicional”.
¿Como son ?
Los sabores que podemos tener de firewalls de manera general serian los siguientes:

Screened Host:
Es un equipo que proteje una maquina de ataques externos, através de un filtrado de
paquetes. Este filtrado es básico, en esencia no acepta paquetes del exterior que no
sean respuesta de una petición de una máquina interna.

Screened LAN:
Es similar al anterior, excepto que no protejemos una sola maquina, si no dos o mas
equipos (una red), este modelo no ofrece seguridad si el ataque es generado desde el
interior a un equipo de la misma red.

Bastion Host:
Este tiene características del screened host, con la diferencia que se permiten accesos
desde afuera a ciertos servicios (SMTP, HTTP, DNS....) en la red interna.

Demilitarized Zone (DMZ)
Este diseño parecido al anterior, con la diferencia que tiene al menos 2 segmentos
internos (zonas), las cuales se conectan por lo regular de la siguiente forma:

1.- Interface a Area Pública (internet)
2.- Interface a Zona de Servidores
3.- Interface a Usuarios

Las Características que nos ofrecerá nuesto DMZ serán:

- Filtrado de paquetes a cualquier zona
- NAT, Mapero Bidireccional
- Colas de tráfico y Prioridad
- Salidas redundantes / balanceo de carga
- Balanceo de carga a servicios
- Filtrado de contenido (web-cache)
- Monitoreo de tráfico en interfaces via netflow

Que necesitamos?

Hardware
- Una PC (Preferentemente servidor)
HD 20 GB, P2 300 Mhz, 64 MB RAM, 3 NICs 10/100.
- 2 Switches
Software
- OpenBSD 3.8 http://www.openbsd.org/
- Squid cache http://www.squid-cache.org/
- Softflowd http://www2.mindrot.org/files/softflowd/

NOTA:
Se recomienda diseñar y probar el modelo en una maqueta antes de poner en producción

Filtrado de Paquetes
Nos permite definir la seguridad perimetral, el primer bloque de segmentos, área de
usuarios, internet y servidores (DMZ). Para eso utilizaremos el Packet Filter (al que en
este documento nos referiremos como PF) es el sistema de OpenBSD para filtrar el
tráfico TCP/IP y llevar a cabo la Traducción de Direcciones de Red (a la que nos
referiremos como NAT, Network Address Translation). Además de estas funciones, PF
también es capaz de normalizar y acondicionar el tráfico TCP/IP y de proveer control del
ancho de banda y la priorización de paquetes TCP/IP. PF ha formado parte del núcleo
GENERIC del sistema OpenBSD desde la versión 3.0 del sistema.
Para activar PF y que lea archivo de configuración correspondiente durante el arranque,
hay que modificar el archivo /etc/rc.conf de tal modo que la línea de PF quede como
sigue:
pf=YES
También se puede activar y desactivar PF con el programa pfctl(8), mediante los
siguientes comandos:
# pfctl -e
# pfctl -d

Configuración
PF lee las reglas de configuración desde el archivo /etc/pf.conf durante el arranque; este
archivo se encargan de cargarlo los guiones de ejecución rc de inicio del sistema.
El archivo pf.conf consta de siete partes:
Macros: Variables definidas por el usuario que pueden contener direcciones IP, nombres
de interfaces, etc.
Tablas: Una estructura que se utiliza para contener listas de direcciones IP.
Opciones: Varias opciones para el control del funcionamiento de PF.
Normalización (Scrub): Reprocesamiento de paquetes para su normalización y
desfragmentación.
Formación de Colas: Provee control del ancho de banda y priorización de paquetes.
Traducción de Direcciones: Controla la Traducción de Direcciones de Red (NAT) y el
redireccionamiento de paquetes.
Reglas de Filtrado: Permite el filtrado selectivo o el bloqueo de paquetes según van
pasando a través de cualquiera de las interfaces de red.

PF ignorará las líneas en blanco, y no interpretará las líneas que empiecen con #,
tratándolas como simples comentarios.

Control

Después del arranque del sistema operativo, se puede gestionar la operación de PF
usando el programa pfctl. Algunos comandos de ejemplo son:

# pfctl -f /etc/pf.conf Carga el archivo pf.conf
# pfctl -nf /etc/pf.conf Analiza el archivo, pero no lo carga
# pfctl -Nf /etc/pf.conf Carga sólo las reglas de NAT del archivo
# pfctl -Rf /etc/pf.conf Carga sólo las reglas de filtrado del archivo
# pfctl -sn Muestra las reglas en vigor de NAT
# pfctl -sr Muestra las reglas en vigor de filtrado
# pfctl -ss Muestra la tabla de estado en vigor
# pfctl -si Muestra estadísticas y contadores del filtrado
# pfctl -sa Muestra TODO lo que puede

Listas
Una lista permite especificar múltiples criterios similares dentro de una misma regla,
como puedan ser múltiples protocolos, números de puertos, direcciones, etc. De este
modo, en lugar de escribir una regla de filtrado para cada dirección IP que haya que
bloquear, se puede escribir una sola regla e indicar las direcciones IP en una lista aparte.
Las listas se definen especificando los componentes dentro de { } llaves.
Así, cuando pfctl(8) está cargando el grupo de reglas y se encuentra con una lista, crea
automáticamente múltiples reglas, una para cada uno de los componentes. Por ejemplo:

block out on fxp0 from { 192.168.0.1, 10.5.32.6 } to any
sería una contracción de:

block out on fxp0 from 192.168.0.1 to any
block out on fxp0 from 10.5.32.6 to any

Además, se pueden incluir varias listas dentro de una misma regla:

block out on fxp0 proto { tcp udp } from \
{ 192.168.0.1, 10.5.32.6 } to any port { ssh telnet }

Macros
Las macros son variables definidas por el usuario que pueden contener direcciones IP,
números de puertos, nombres de interfaces, etc. Las macros reducen la complejidad de
un grupo de reglas de PF, y también facilitan mucho el mantenimiento de un grupo reglas.
Los nombres de las macros deben empezar con una letra y pueden contener letras,
dígitos y guiones bajos. Los nombres de las macros no pueden ser palabras reservadas
(como pass, out, o queue).

ext_if = “fxp0”
block in on $ext_if from any to any
o bien se pueden combinar macros

host2 = “192.168.1.2”
all_hosts = “{“ $host1 $host2 “}”
Ahora, la macro $all_hosts se expandiría a 192.168.1.1, 192.168.1.2.

Filtrado de Paquetes
La acción de filtrar paquetes es bloquear o permitir el paso a los paquetes de datos de
forma selectiva, según van llegando a una interfaz de red. Los criterios que usa pf para
inspeccionar los paquetes los toma de la información existente en la capa ‘Layer 3’ (IPv4
y IPv6) y en la capa ‘Layer 4’ (TCP, UDP, ICMP, y ICMPv6) de las cabeceras de los
paquetes. Los criterios que más se utilizan son los de la dirección de origen y de destino,
el puerto de origen y de destino, y el protocolo.
Las reglas de filtrado especifican los criterios con los que debe concordar un paquete y la
acción a seguir, bien sea bloquearlo o permitir que pase, que se toma cuando se
encuentra una concordancia. Las reglas de filtrado se evalúan por orden de secuencia,
de la primera a la última. A menos que el paquete concuerde con una regla que contenga
la clave quick, se evaluará el paquete comparándolo con todas las reglas de filtrado antes
de decidir una acción final. La última regla que concuerde será la «ganadora» y la que
dictamine qué acción se tomará con el paquete. Al principio del grupo de reglas de filtrado
hay un pass all implícito que indica que si algún paquete no concuerda con ninguna de
las reglas de filtrado, la acción a seguir será pass, o sea permitirle el paso.

Sintaxis de las Reglas
La sintaxis general, muy simplificada, para las reglas de filtrado es:

action direction [log] [quick] on interfaz [af] [proto protocol] \
from src_addr [port src_port] to dst_addr [port dst_port] \
[tcp_flags] [state]
action
La acción a seguir para los paquetes que concuerden, ya sea pass o block. La acción
pass permitirá el paso al paquete de vuelta hasta el núcleo del sistema, para que éste lo
procese, mientras que la acción block actuará según se indique en la configuración de la
opción de la política de bloqueo, block-policy. La acción predeterminada se puede anular
especificando block drop (bloquear y eliminar el paquete) o block return (bloquear y
devolver el paquete).
direction
La dirección en la que se mueve el paquete en una interfaz, que será in (entrante) o out
(saliente).

Sintaxis de las Reglas (3)
protocol
El protocolo de la capa ‘Layer 4’ del paquete:
tcp
udp
icmp
icmp6
Un nombre de protocolo válido del archivo /etc/protocols
Un número de protocolo entre 0 y 255
Un grupo de protocolos que usen una lista.
src_addr, dst_addr
La dirección de origen y/o de destino en la cabecera I
  • Links de descarga
http://lwp-l.com/pdf9880

Comentarios de: Implementación de una DMZ (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad