TRABAJO TEORICO

Iván Moret Salvador
Cortafuegos en internet
    Un cortafuegos es un sistema para intentar impedir la diseminación del fuego y  normalmente consiste en un área franca resistente al fuego. Del mismo modo, un cortafuegos de red (Firewall) es un sistema de contención que intenta impedir la diseminación de daños a través suyo.

    Materialmente, un cortafuegos de internet es un sistema o grupo de sistemas informáticos situados en el perímetro de una red para proteger todas las vías de acceso estableciendo un control del tráfico de entrada y salida. Se puede pensar en él como en una aduana que vigila todo lo que atraviesa, decidiendo qué puede o no atravesarla y bajo qué condiciones. En consecuencia, un cortafuegos de internet solamente protege contra la diseminación de los ataques, es decir,  un cortafuegos sólo puede controlar el tráfico que pasa a través de él. De esta manera, es obvio que es preciso establecer una política de control de acceso adecuada a las necesidades del contorno protegido, y que su eficacia depende de la medida en que se aplique correctamente.
 
 

Tipos de cortafuegos Técnicas de cortafuegos
Antes de instalar un cortafuegos es preciso establecer la política de acceso que se quiere establecer. Por ejemplo, en entornos sensibles se puede usar una política de accesos necesarios, cancelando todos los servicios excepto los que sean estrictamente necesarios y permitiendo nuevos servicios a medida que sean necesarios. En contraposición, se puede establecer una política que permita todas las comunicaciones excepto las que sea necesario prohibir o resulten peligrosas para la integridad del sistema.
Además de establecer la política de acceso, también es necesario establecer un nivel de control histórico, almacenando cuanta información se considere necesaria para la vigilancia del sistema, teniendo en cuenta que cuantos más detalles se guarden mayores serán las necesidades de almacenamiento y el esfuerzo necesario para analizar esta información.

Política de acceso:

A la hora de establecer una política de acceso adecuada se deben analizar varios factores:
Configuraciones de cortafuegos:
Una de las configuraciones más frecuentes es el uso de una red local conectada al exterior mediante un cortafuegos.

A)                            Cortafuegos
                                            |                               Red interna
    Internet ---------------------------------------------------------------------------
                                                                            |                            |
                                                                    Terminal               Terminal

Esta configuración es la más sencilla y barata, puesto que sólo necesitamos una tarjeta de red, pero es incorrecta, ya que no impedirá a un computador situado en el exterior acceder directamente a los de la red local
 

B)                                                                        Red interna
                            Cortafuegos ----------------------------------------------------
                                    |                                        |                         |
    Internet ---------------                                Terminal            Terminal
 

Esta configuración es más cara y compleja, ya que nos obliga a disponer de dos tarjetas de red, pero de esta manera conseguimos que el resto de computadoras queden aisladas físicamente de la red externa.
 

Directrices para la configuración de un cortafuegos por filtrado de paquetes:
Como ya se ha comentado anteriormente, los cortafuegos por filtrado de paquetes consisten en el filtrado de comunicaciones en base a la dirección de origen y/o destino, el servicio y el puerto. Esto hace que se usen para bloquear conexiones a servidores o redes determinados, así como para bloquear puertos especiales. Esto nos permite activar o desactivar servicios de forma selectiva para aquellos servidores o redes que no consideremos seguros o que queramos proteger especialmente. Por ejemplo, un cortafuegos podría permitir el acceso externo al puerto SMTP (25) de su servidor de correo pero no a ningún otro, forzando así todo el correo entrante a pasar por su servidor y  protegiendo los demonios de correo de las demás máquinas de ataques externos. Pese a ello, hay que ser consciente de la existencia de aplicaciones de pasarela que pueden servir para saltarse los filtros del cortafuegos.

Servicios peligrosos o fácilmente susceptibles de abuso

 
Servicio
Puerto
bootp
67/68
tftp
69
rpc
111
xdmcp
177
rexec
512
rlogin
513
rsh
514
shell
514
syslog
514
X windows
6000
Open Windows
2000
Servicios filtrados habitualmente excepto para los servidores dedicados y considerados seguros
 
Servicio
Puerto
ftp
20/21
telnet
23
smtp
25
time
37
dns
53
gopher
70
http
80
pop
109/110
uucp
117/540
nntp
119
ntp
123
imap
143
snmp
161
snmp-trap
162
printer
515
rip
520
timed
525
courier
530
netnews
532

Servicios de escasa o nula utilidad que conviene cancelar


Servicio
Puerto
echo
7
discard
9
systat
11
daytime
13
netstat
15
whois
43
finger
79
who
513

Otros servicios proporcionados por el fabricante que pueden permanecer ocultos y que hay que tener en cuenta


Servicio
Puerto
sgi-dogfight
5130
sgi-arena
5131
sgi-bznet
5133
wn-http
8778
sgi_iphone
32769

Ejemplos de cortafuegos por filtrado de paquetes

Este tipo de cortafuegos son los más extendidos en sistemas Unix/Linux. Concretamente en sistemas Linux podemos encontrar los siguientes:
  1. ipwands
  2. ipchains
  3. iptables
Aqui muestro un ejemplo de configuración de iptables para un cortafuegos estandar, si es que es posible considerar que hay una configuración estándar para cortafuegos.
La IP de la máquina en la que se alojará el cortafuegos será 192.168.0.1
La IP del servidor de correo de la red local será 192.168.0.2

#Cámbia todas las políticas a DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
echo "  Politicas puestas a DROP"

#Da permiso a todas las acciones hechas desde la máquina local.
#No se da permisos en INPUT pq nunca llegaran paquetes desde la máquina local
iptables -A FORWARD -s 127.0.0.1 -j ACCEPT
iptables -A FORWARD -s 192.168.0.1 -j ACCEPT

iptables -A OUTPUT -s 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -s 192.168.0.1 -j ACCEPT
echo "  Permisos para la máquina local a ACCEPT en todos los protocolos y puertos"

#Paquetes ICMP que podran atravesar el FIREWALL
#Source quench(4),Parameter problem(12), destination unreachable(3)
iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 4 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 12 -j ACCEPT

iptables -A FORWARD -p icmp --icmp-type 3 -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type 4 -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type 12 -j ACCEPT

iptables -A OUTPUT -p icmp --icmp-type 3 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 4 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 12 -j ACCEPT
echo "  Paquetes ICMP de tipo Source Quench, Parameter Problem y Destination Unreachable pueden atravesar el FIREWALL"

#Paquetes ICMP de tipo Echo Reply (0) pueden atravesar el FIREWALL
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A FORWARD -s! 10.0.0.0/255.0.0.0 -p icmp --icmp-type 0 -j ACCEPT
iptables -A OUTPUT -s! 10.0.0.0/255.0.0.0 -p icmp --icmp-type 0 -j ACCEPT
echo "  Paquetes ICMP de tipo Echo Reply que no vengan de la Red Local pueden atravesar el FIREWALL"

#Paquetes ICMP de tipo Echo Request (8) desde la red local a todas las direcciones pueden atravesar el FIREWALL
iptables -A INPUT -s 192.168.0.0/255.255.0.0 -p icmp --icmp-type 8 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/255.255.0.0 -p icmp --icmp-type 8 -j ACCEPT
iptables -A OUTPUT -s 192.168.0.0/255.255.0.0 -p icmp --icmp-type 8 -j ACCEPT
echo "  Paquetes ICMP de tipo Echo Request de la Red Local pueden atravesar el FIREWALL"

#Protocolo TCP puertos TELNET (23), FTP (21), SSH (22)
#Permite el acceso desde la red local a la máquina local.
iptables -A INPUT -s 192.168.0.0/255.255.0.0 -p TCP --dport 23 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/255.255.0.0 -p TCP --dport 21 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/255.255.0.0 -p TCP --dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/255.255.0.0 -p TCP --dport 80 -j ACCEPT
echo "  Servicios de TELNET, FTP, SSH y HTTP accesibles desde la red local"

#Protocolo TCP puerto HTTP (80) puede atravesar el FIREWALL
iptables -A INPUT -p TCP --dport 80 -j ACCEPT

iptables -A FORWARD -p TCP --dport 80 -j ACCEPT
iptables -A OUTPUT -p TCP --dport 80 -j ACCEPT
echo "  Paquetes TCP pueden atravesar el FIREWALL por el puerto HTTP (80)"

#Protoco TCP puerto SHTTP (443) puede artavesar el FIREWALL
iptables -A INPUT -p TCP --dport 443 -j ACCEPT
iptables -A INPUT -p TCP --sport 443 -j ACCEPT

iptables -A FORWARD -p TCP --dport 443 -j ACCEPT
iptables -A FORWARD -p TCP --sport 443 -j ACCEPT

iptables -A OUTPUT -p TCP --dport 443 -j ACCEPT
iptables -A OUTPUT -p TCP --sport 443 -j ACCEPT
echo "  Paquetes TCP pueden atravesar el FIREWALL por el puerto SHTTP (443)"

#El correo entrante al servidor de correo 192.168.0.2 podra atravesar el FIREWALL
iptables -A INPUT -d  192.168.0.2 -p TCP --dport 25 -j ACCEPT
iptables -A INPUT -d 192.168.0.2 -p TCP --dport 25 -j ACCEPT

iptables -A FORWARD -d 192.168.0.2 -p TCP --dport 25 -j ACCEPT
iptables -A FORWARD -d 192.168.0.2-p TCP --dport 25 -j ACCEPT

iptables -A OUTPUT -d 192.168.0.2 -p TCP --dport 25 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.2 -p TCP --dport 25 -j ACCEPT
echo "  Permisos para que el correo atraviese el FIREWALL en direccion al servidor de correo"
 

#El correo saliente de puede atravesar el FIREWALL
iptables -A INPUT -s 192.168.0.2 -p TCP --sport 1024: -j ACCEPT
iptables -A INPUT -s 192.168.0.2 -p TCP --sport 1024: -j ACCEPT

iptables -A FORWARD -s 192.168.0.2 -p TCP --sport 1024: -j ACCEPT
iptables -A FORWARD -s 192.168.0.2 -p TCP --sport 1024: -j ACCEPT

iptables -A OUTPUT -s 192.168.0.2 -p TCP --sport 1024: -j ACCEPT
iptables -A OUTPUT -s 192.168.0.2 -p TCP --sport 1024: -j ACCEPT
echo "  Permiso al servidor de correo para enviar correo a traves del FIREWALL"

#Permite la respuesta a las conexiones desde la máquina local a otras
#de los paquetes TCP desde el puerto 1025 al 65535 excepto el puerto X11(6000)
iptables -A INPUT -s 192.168.0.0/255.255.0.0 -p TCP --dport 1025:5999 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/255.255.0.0 -p TCP --dport 6001:65535 -j ACCEPT
echo "  Puertos 1025-65535 excepto 6000 abiertos para la red local"

#Permite la respuesta a las conexiones TCP desde la máquina local a internet
#a traves de los puertos 1025-65535 excepto el 6000
#Deniega paquetes de peticián de conexián procedentes de la internet
iptables -A INPUT -s! 192.168.0.0/255.255.0.0 -p TCP ! --syn --dport 1025:5999 -j ACCEPT
iptables -A INPUT -s! 192.168.0.0/255.255.0.0 -p TCP ! --syn --dport 6001:65535 -j ACCEPT
echo "  Puertos 1025-65535 excepto 6000 abiertos para internet excepto para peticiones de conexión"

#Permite la utilizacón de DNS mediante protocolos TCP y UDP a traves del FIREWALL
iptables -A INPUT -p TCP --sport 53 -j ACCEPT
iptables -A INPUT -p TCP --dport 53 -j ACCEPT
iptables -A INPUT -p UDP --sport 53 -j ACCEPT
iptables -A INPUT -p UDP --dport 53 -j ACCEPT

iptables -A FORWARD -p TCP --sport 53 -j ACCEPT
iptables -A FORWARD -p TCP --dport 53 -j ACCEPT
iptables -A FORWARD -p UDP --sport 53 -j ACCEPT
iptables -A FORWARD -p UDP --dport 53 -j ACCEPT

iptables -A OUTPUT -p TCP --sport 53 -j ACCEPT
iptables -A OUTPUT -p TCP --dport 53 -j ACCEPT
iptables -A OUTPUT -p UDP --sport 53 -j ACCEPT
iptables -A OUTPUT -p UDP --dport 53 -j ACCEPT
echo "  Servicio DNS abierto a traves del FIREWALL"
 
 

Directrices para la configuración de un cortafuegos por pasarela de aplicación:
Los filtros de paquetes tiene varios problemas; son demasiado rígidos, difíciles de configurar y sus capacidades de registro son muy limitadas. Su funcionamiento está basado en un sistema de todo o nada.
En las pasarelas a nivel de aplicación el usuario no accede directamente al servicio, sino a un sistema intermedio que realiza las comprobaciones pertinentes, anota la transacción, toma una decisión y actúa de intermediario entre el cliente y el servicio remoto correspondiente. El problema de los cortafuegos por pasarela de aplicación reside en la pérdida de transparencia para el usuario que debe ser consciente de su existencia y tomar medidas adicionales para tratar con ellas.
Antes de  instalar un cortafuegos de aplicación hay que tomar una serie de decisiones: el cortafuegos puede ser comercial o construido por uno mismo; un cortafuegos construido por uno mismo se adaptará más a nuestras necesidades, pero un cortafuegos comercial será más barato y requerirá menos conocimientos aunque el control será mucho menor.

Los servicios de protección más comunes son probablemente los siguientes:

Telnet: Se hace un login inicial en el cortafuegos, durante el cual se puede filtrar por la dirección de origen y de destino, realizar una identificación sólida y una verificación segura de la identidad. Si se acepta, el cortafuegos establece una comunicación con el punto de destino y puede opcionalmente traducir las comunicaciones sobre la marcha. A lo largo del proceso se pueden hacer anotaciones sobre su evolución.

FTP: Puede admitir o negar comandos concretos de clientes específicos.

SMTP: Establece sistemas de verificación de la identidad del sistema remoto y del remitente de los mensajes y permite centralizar todo el correo en una sola máquina. Muchos cortafuegos disponen de un servidor de correo especial con mayores niveles de seguridad.

Otros: X, gopher, http y nntp son servicios que resulta deseable poder interceptar, identificando a los usuarios y aceptando o denegando el acceso a partir de criterios establecidos.

Verificación de identidad: Todas las conexiones remotas  y, en especial, las de módems deberían atravesar un sistema de verificación avanzado en el cortafuegos. El problema es que esto requiere enseñar a los usuarios a manejar sistemas de verificación avanzados.

Llamadas de E/S: Los módems, lineas RDSI, etc. son muy útiles para los usuarios, pero es conveniente disponer de un cortafuegos que pueda interceptar y controlar estas lineas directas verificando la identidad de los usuarios y los patrones de uso.

Conexión de red remota: Las conexiones vía SLIP y PPP son un peligro potencial en la medida en que son una vía de entrada y deben centralizarse y filtrarse a  través de un cortafuegos que entienda y controle esos protocolos.

Servicios de información: Son servicios que están abiertos públicamente para proporcionar información. Para evitar que se conviertan en un peligro es conveniente ponerlos fuera del área protegida por el cortafuegos.

Interacciones remotas: Un problema adicional surge cuando se necesita que áreas protegidas por cortafuegos interaccionen entre sí. Si no se tiene cuidado, las interacciones pueden hacer imposible la colaboración o la seguridad.
 

Conclusiones