Un cortafuegos (firewall, FW) es un sistema capaz de aplicar una determinada política de seguridad en una red. Estos sistemas pueden estar formados por uno o varios dispositivos de seguridad. En general existen dos grandes familias de cortafuegos dependiendo en la tecnología que apliquen:
1. Filtros de paquetes con inspección de estados
Se controla el envío, recepción y transmisión de los paquetes que atraviesan el firewall. Permite tomar decisiones con los paquetes que pasan por el firewall respecto a unas directivas tales como:
-Direcciones origen y destino
-Puertos TCP origen y destino
-Protocolo empleado
-Inspeccion de estado de la conexión
-Fecha y hora de la conexión
-Cantidad de tráfico
La mayoría de los sistemas firewalls modernos emplean técnicas de validación de paquetes en funcion del estado de la conexion lo cual mejora el rendimiento del sistema. Una variante de estos filtros son los TCP wrapers, es uno de los filtros TCP más utilizados en los sistemas GNU/Linux. Fue diseñado por Wietse Venema y se basa en un demonio tcpd con dos archivos de configuración /etc/host.allow y /etc/host.deny. Utilizando tcpdchk y tcpmatch se pueden verificar los posibles casos de uso.
2. Proxies de aplicación
Estos filtros requieren un mayor procesamiento ya que llegan a procesar información en la capa de aplicación. Son filtros que se sitúan entre el cliente y el servidor de forma que no se hacen peticiones de forma directa, sino que las peticiones y los resultados se envian el proxy, que es el que decide donde mandarlos. La gran ventaja de este esquema es que se tiene un control global sobre la seguridad y además este control se tiene a nivel individual sobre cada una de las aplicaciones. Esto permite comprender y mantener el estado en el que se encuentra una comunicación y con ello reconocer y evitar un mayor número de ataques. Con la aparicion de los proxies transparentes no es necesario que las aplicaciones deban ser modificadas para soportar este tipo de conexión y permiten filtrar contenidos para eliminar virus, correos indeseados y posibles ataques a la red.
Algunas de las aplicaciones que permiten configurar sistemas firewall son:
iptables (netfilter) Se implementa a partir de la version 2.4 del kernel de linux,contiene mecanismos de inspeccioón de estados
ipmenuhttp://users.pandora.be/stes/ipmenu.html Se trata de una interfaz textual basada en menus basada en la librería ncurses.Permite configurar el filtrado y modificación de paquetes,NAT e iproute2
Knetfilterhttp://expansa.sns.it/knetfilter/ Solo se encuentra disponible para la version 2.4 de linux y el escritorio KDE. Puede integrarse con tcpdump para examinar los paquetes que transcurren por la red y con nmap para realizar un escaneo
Mason Permite configurar el cortafuegos a partir de trafico real
PHP firewall generator Se trata de una herramienta generada en php a la cual se accede a traves de un navegador. Se distribuye bajo licencia GPL
Firewalls propietarios
Son una alternativa a los firewalls mencionados anteriormente. Son dispositivos que pueden agrupar varias funcionalidades como: software de gestión y monitorización del cortafuegos, generación de VPNs, integración con software de alta disponibilidad, capacidades de filtrado de URLs y código malicioso.