Configuración DMZ en Linux

Construcción DMZ en Linux

La forma más común de proteger la red es utilizar un firewall. Como primera línea de defensa de una red, los firewalls generalmente se colocan entre la red externa y la red que necesita protección. El caso más simple es colocar el firewall directamente entre la red externa y la red empresarial. Todo el tráfico de datos que fluye hacia la red empresarial pasará a través del firewall, de modo que todos los clientes y servidores de la empresa estén bajo la protección del firewall. Esto es simple y fácil para algunas pequeñas y medianas empresas, y esta solución funciona bien en algunos casos. Sin embargo, después de todo, esta estructura es relativamente simple. Hay muchos servidores, clientes y otros recursos en la empresa que necesitan protección, y diferentes recursos tienen diferentes requisitos de seguridad. El servidor no puede ser tratado con el mismo nivel de seguridad que el cliente, ya que el servidor será muy peligroso. Del mismo modo, el cliente no puede ser tratado con el mismo nivel de seguridad que el servidor, ya que el usuario se sentirá muy incómodo.

Para proporcionar diferentes niveles de seguridad y protección para diferentes recursos, puede considerar construir una zona llamada "Zona Desmilitarizada" (DMZ). DMZ puede entenderse como un área de red especial que es diferente de la red externa o de la red interna. DMZ suele colocar algunos servidores públicos que no contienen información confidencial, como Web, Correo, FTP, etc. De esta manera, los visitantes de la red externa pueden acceder a los servicios en la DMZ, pero no pueden acceder a secretos de la empresa ni a información privada almacenada en la intranet. Incluso si el servidor de la DMZ resulta dañado, la información confidencial de la intranet no se verá afectada.

Muchos productos de firewall proporcionan interfaces DMZ (generalmente los firewalls antiguos solo tienen dos interfaces, es decir, no pueden hacer DMZ. Los firewalls actuales generalmente tienen tres o cuatro interfaces). Los firewalls de hardware tienen ventajas absolutas en rendimiento y tráfico porque utilizan chips de hardware especializados. Los firewalls de software son muy rentables y generalmente funcionan bien para las empresas. Si utiliza un firewall de Linux, su costo será menor. Lo que presentaremos aquí es el método para dividir la zona DMZ en el firewall de Linux.

Estrategias para construir DMZ

A partir del kernel 2.4, Linux usa oficialmente iptables para reemplazar los ipfwadm e ipchains anteriores para administrar la función de filtrado de paquetes de Linux. El filtrado de paquetes de Linux se implementa a través de un componente del kernel llamado netfilter. Netfilter tiene tres tablas integradas. La tabla predeterminada Filter también incluye tres cadenas de reglas: la cadena de ENTRADA responsable de filtrar los datos que fluyen hacia la interfaz de red desde el exterior y la cadena de SALIDA responsable de filtrar los datos emitidos por la interfaz de red. y la cadena de SALIDA responsable de filtrar la salida de datos por la interfaz de red para reenviar el filtrado de datos entre interfaces de red. Para construir un firewall con una DMZ, necesita configurar estas cadenas. Primero, se deben juzgar los datos que fluyen desde la tarjeta de red (eth0) conectada a la red externa. Esto se hace en la cadena de ENTRADA. Si la dirección de destino de los datos pertenece al segmento de red DMZ, los datos deben reenviarse a la tarjeta de red (eth1) conectada a la red DMZ; si es una dirección de red interna, los datos deben reenviarse a la tarjeta de red ( eth2) conectado a la red interna. La Tabla 1 muestra las relaciones de acceso entre varias redes.

Tabla 1 Tabla de relaciones de acceso entre redes

Red interna Red externa DMZ

Red interna / Y Y

Red externa N/Y

DMZ N N /

Según la Tabla 1, se pueden aclarar las siguientes seis políticas de control de acceso.

1. La red interna puede acceder a la red externa

Los usuarios de la red interna obviamente necesitan acceder libremente a la red externa. En esta estrategia, el firewall requiere la traducción de la dirección de origen.

2. La intranet puede acceder a la DMZ

Esta política tiene como objetivo facilitar a los usuarios de la intranet el uso y administración de servidores en la DMZ.

3. La red externa no puede acceder a la red interna

Obviamente, la red interna almacena datos internos de la empresa y los usuarios de la red externa no pueden acceder a estos datos.

4. La red externa puede acceder a la DMZ

El servidor en la DMZ en sí debe proporcionar servicios al mundo exterior, por lo que la red externa debe poder acceder a la DMZ. Al mismo tiempo, el acceso de la red externa a la DMZ requiere que el firewall complete la conversión de la dirección externa a la dirección real del servidor.

5. La DMZ no puede acceder a la intranet

Obviamente, si se viola esta política, cuando el intruso capture la DMZ, podrá atacar aún más datos importantes en la intranet.

6. DMZ no puede acceder a la red externa

Hay excepciones a esta política. Por ejemplo, cuando un servidor de correo se coloca en la DMZ, necesita acceder a la red externa. de lo contrario no funcionará correctamente.

Implementación de DMZ

De acuerdo con la política de control de acceso anterior, se pueden configurar las reglas de filtrado del firewall de Linux. A continuación se analizará cómo establecer las reglas de filtrado de firewall correspondientes basadas en las seis políticas de control de acceso anteriores en un entorno de red ficticio. La discusión aquí y la aplicación específica serán diferentes, pero esta discusión será útil para la aplicación práctica. Los usuarios pueden configurarlo según situaciones específicas durante la aplicación real. La topología de red de este entorno virtual se muestra en la Figura 1.

Figura 1 Topología de red DMZ

Como se muestra en la Figura 1, el enrutador se conecta a Internet y al firewall. El servidor Linux utilizado como firewall utiliza tres tarjetas de red: la tarjeta de red eth0 está conectada al enrutador, la tarjeta de red eth1 está conectada al Hub en el área DMZ y la tarjeta de red eth2 está conectada al Hub de intranet. Como ejemplo abstracto, usamos "[dirección de intranet]" para representar valores específicos como "192.168.1.0/24". Del mismo modo, existen "[dirección de red externa]" y "[dirección DMZ]".

Uno de los principios de los firewalls es bloquear todo el tráfico de datos de forma predeterminada y luego activar el tráfico necesario. Por lo tanto, al comienzo del script del firewall, debe borrar las reglas originales del sistema y luego establecer las reglas predeterminadas de ENTRADA, SALIDA y ADELANTE para descartar todos los paquetes de datos.

El fragmento de script de firewall correspondiente es el siguiente:

# Limpiar las tablas y eliminar todas las cadenas definidas por el usuario

/sbin/iptables -F

/sbin/iptables -X

/sbin/iptables -t nat -F

/sbin/iptables -t nat -X

# Desechar cada paquete

/sbin/iptables -P INPUT DROP

/sbin/iptables -P OUTPUT DROP

/sbin/iptables -P FORWARD DROP

A continuación, se explica una a una la implementación de las seis estrategias.

1. La red interna puede acceder a la red externa

El fragmento de script del firewall correspondiente es el siguiente:

/sbin/iptables -t nat -A POSTROUTING -s [Dirección de red interna] -d [Dirección de red externa] -o eth0 -j SNAT --to [IP real de NAT]

Cuando los datos fluyen desde eth0 conectado a la red externa, los datos de la red interna debe ser Cambie la dirección de origen del paquete a la IP real en Internet para que pueda comunicarse con el host en la red externa.

"[IP real de NAT]" indica la IP real asignada al usuario de NAT. Escribe tantas como quieras, separadas por espacios, pero se debe escribir al menos una.

2. La intranet puede acceder a la DMZ

El fragmento de script del firewall correspondiente es el siguiente:

/sbin/iptables -A FORWARD -s [Dirección de intranet ] - d [dirección DMZ] -i eth2 -j ACCEPT

El comando anterior permite que pasen todos los paquetes de datos de la intranet y destinados a DMZ.

3. La red externa no puede acceder a la red interna

El fragmento de script del firewall correspondiente es el siguiente:

/sbin/iptables -t nat -A PREROUTING -s [Dirección de red externa] -d [Dirección de red interna] -i eth0 -j DROP

El comando anterior descartará todos los paquetes de datos de la red externa y los destinados a la red interna.

4. La red externa puede acceder a la DMZ

Para proteger los servidores en la DMZ, el acceso a la DMZ desde la red externa también debe estar restringido. La idea habitual es permitir que la red externa sólo acceda a servicios específicos proporcionados por los servidores en la DMZ, como HTTP.

El fragmento de script del firewall correspondiente es el siguiente:

/sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -d [Puerto real en Internet asignado a la IP del servidor HTTP] -s [Dirección de red externa] -i eth0 -j DNAT --to [La IP real del servidor HTTP]

/sbin/iptables -A FORWARD -p tcp -s [ Dirección de red externa] - d [IP real del servidor HTTP] -i eth0 --dport 80 -j ACCEPT

/sbin/iptables -A FORWARD -p tcp -d [Dirección de red externa] -s [ IP real del servidor HTTP] -i eth1 --sport 80 ! --syn -j ACCEPT

/sbin/iptables -t nat -A PREROUTING -s [dirección de red externa] -d [dirección DMZ] -i eth0 -j DROP

Este fragmento de script del firewall abrirá el servicio HTTP para que solo los paquetes que accedan al servicio HTTP en la DMZ puedan pasar a través del firewall.

Configurado correctamente, Linux puede convertirse en un muy buen cortafuegos. Cabe añadir que cualquier tipo de firewall sólo puede proporcionar una protección limitada. Configurar un buen firewall no significa que la red sea segura. El firewall en muchas unidades y escuelas es básicamente una herramienta de comodidad psicológica, e incluso las estrategias básicas lo son todas, por lo que la clave es utilizar de manera integral varios métodos de seguridad.