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.Tipos de cortafuegosMaterialmente, 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.
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.Conclusiones
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:
- ¿Qué servicios de internet se van a usar?
- ¿Dónde se encuentran los servicios a los que se desea acceder?
- ¿Qué necesidades adicionales voy a tener? ¿Criptografía?
- Riesgos asociados.
- Coste de proporcionar la protección y coste de lo protegido.
- Balance de protección frente a facilidad de uso.
Una de las configuraciones más frecuentes es el uso de una red local conectada al exterior mediante un cortafuegos.Directrices para la configuración de un cortafuegos por filtrado de paquetes:A) Cortafuegos
| Red interna
Internet ---------------------------------------------------------------------------
| |
Terminal TerminalEsta 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.
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 Directrices para la configuración de un cortafuegos por pasarela de aplicación:
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: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.
- ipwands
- ipchains
- iptables
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 ACCEPTiptables -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 ACCEPTiptables -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 ACCEPTiptables -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 ACCEPTiptables -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 ACCEPTiptables -A FORWARD -p TCP --dport 443 -j ACCEPT
iptables -A FORWARD -p TCP --sport 443 -j ACCEPTiptables -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 ACCEPTiptables -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 ACCEPTiptables -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 ACCEPTiptables -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 ACCEPTiptables -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 ACCEPTiptables -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 ACCEPTiptables -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"
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.