Información sobre bastion-firewall

bastion-firewall es un firewall basado en Netfilter e iptables, funciona bajo cualquier versión de Linux con el kernel 2.4 o superior y tiene las siguientes características:

  • Desarrollado por bgSEC (http://www.bgsec.com) y Jose María López Hernández (jkerouac@bgsec.com) y liberado bajo licencia GPL.
  • Programado en bash (99 por ciento del código) y C. Esto proporciona flexibilidad y facilidad de modificación del código. Unas 26000 lineas de código bash y C que proporcionan una funcionalidad muy alta, implementando casi todas las posibilidades de protecciones del kernel de Linux, incluidas las que se modifican en /proc y las del sistema Netfilter/iptables.
  • Basado en las facilidades Netfilter e Iptables proporcionadas por casi todas las distribuciones de Linux y por el kernel oficial. El firewall no usa ningún tipo de código propio o facilidades programadas, por lo que las ordenes que invoca son todas comandos iptables que crean reglas como lo haría un script, pero sin tener que escribir ni una sola linea de código.
  • El sistema no usa perl, python, ruby o comandos que puedan ser utilizados por un supuesto atacante como herramientas de trabajo después de un compromiso del sistema.  bastion-firewall puede correr en una distribución muy pequeña, en modo texto y con un número de paquetes instalados mínimo.
  • Administración basada en ficheros de configuración en texto plano y tratados como código bash, permitiendo introducir código en los ficheros de configuración para la generación de los valores de las variables.
  • Administración basada en web mediante bastion-firewall-interface que modifica los ficheros de configuración, habilitando al administrador a realizar una configuración mixta, editando cosas con el interface y retocando luego si es necesario o útil los ficheros de configuración.
  • Ficheros de configuración totalmente comentados y con ayuda para cada variable que se puede alterar en el firewall. Los ficheros son autoexplicativos e incluyen documentación sobre el funcionamiento del firewall. En teoría sólo con esta documentación bastaría para configurar completamente el firewall y todas sus opciones, sin necesidad de leer ni una sola linea de documentación.
  • Sistema de estadísticas del tráfico basadas en web y que contienen gráficas del tráfico realizadas con rrdtool. Estas gráficas se generan automáticamente con solo incluir una directiva en el fichero del configuración del firewall o una opción en cada servicio o grupo de servicios de los que queremos obtener gráficas de tráfico. Creación automática de una página web que permite ver las estadísticas gráficas con facilidad.
  • Sistema de separación del tráfico y de agrupación y ordenación de las reglas, servicios y protocolos para obtener una máxima velocidad en el tratamiento del tráfico por parte de Netfilter. La idea es que Netfilter tenga que comprobar el mínimo número de reglas y que las reglas que afectan a un servicio y tienen varios puertos estén agrupadas en un solo comando.
  • Ficheros preparados para añadir código local por el administrador en puntos estratégicos de la carga de reglas del firewall, esto permite modificar el firewall sin tener que tocar el codigo.
  • Posibilidad de escribir plugins de forma muy sencilla para añadir funcionalidad al firewall. El firewall detecta los nuevos plugins y los integra en las reglas a generar, proporcionando una forma inmejorable de añadir código a bastion-firewall.
  • Uso de programas externos y addons totalmente estandard, sin ninguna modificación, permitiendo que sean actualizados o substituidos por otros con facilidad.
  • Funciona en sistemas o distribuciones con un mínimo de comandos, básicamente usa bash, los comandos estandard de Linux e incluye rrdtool y ulogd en la distribución, por lo que no es preciso que estén instalados en el sistema.
  • Sistema de blacklist para bloquear direcciones IP permanentemente. Sistema de whitelist para indicar que direcciones nunca se deben bloquear. Se proporcionan ordenes para administrar ambas listas y pueden ser usadas desde un IDS o IPS para bloquear posibles atacantes sin peligro de provocar un ataque de denegación de servicio.
  • Sistema de blacklist y whitelists para direcciones MAC. Es similar al sistema de blacklist/whitelist para direcciones IP.
  • Sistema de MACs restringidas que permite elegir que máquinas podrán hablar con el firewall y cuales no, tanto en la red local como en la red externa (como en una DMZ).
  • Posibilidad de utilizar listas de IPs en cada lugar donde normalmente introduciríamos una dirección IP. bastion-firewall expandirá la lista de IPs y creará las reglas para cada IP.
  • Posibilidad de crear nuevos servicios, grupos de servicios y grupos de redes, para gestionar el funcionamiento del firewall simplemente editando un número mínimo de variables.
  • Sistema MD5 para detectar cambios en la configuración y elegir entre regenerar de nuevo las reglas o cargar las reglas en la cache si no se ha modificado la configuración desde el último reinicio del firewall.
  • Doble filosofía de funcionamiento del firewall, la primera usando flujos de tráfico a bloquear o permitir y la segunda usando tablas donde se especifican las reglas.
  • Permite para cada servicio especificar los flujos de tráfico entre los interfaces de entrada y salida y las IPs de la red local y la remota, así como si quieremos que se apunten las conexiones en los logs, si queremos que se pasen a ulogd y si queremos que se creen estadísticas para el servicio en cuestión.
  • El administrador puede añadir mediante ordenes o editando los ficheros nuevos servicios o grupos de servicios de forma muy sencilla, y luego especificar las reglas para estos grupos o servicios. No es necesario tocar el código para añadir nuevos servicios al firewall, e incluso existe una orden para añadir una lista de servicios contenida en un fichero al firewall, permitiendo añadir gran cantidad de servicios sin tener que editar los ficheros de configuración.
  • Implementación de las facilidades incluidas en los pom incluidos con iptables.
  • Proteccion contra ataques contra el kernel, spoofing, ataques de denegación de servicio, ataques de llenado de los logs, escaneos de puertos.
  • Posibilidad de especificar como queremos rechazar o aceptar los paquetes. Uso de REJECT o DROP a elección del administrador.
  • Creación de un fichero script cada vez que se regeneran las reglas que contiene TODAS las ordenes que ha ejecutado el firewall, tanto para activar las protecciones del kernel como las ordenes iptables que ha ejecutado. La ejecución de este script tiene el mismo efecto que arrancar el firewall. El script incluye comentarios de cada orden que ejecuta y de los servicio que habilita o bloquea. Este script permite usar bastion-firewall como un potente generador de scripts que son firewalls en si mismos, habilitando al administrador a crear firewalls ad-hoc para sistemas en concreto simplemente alterando algunas variables en los ficheros de configuración. Es una de las características más potentes y útiles de bastion-firewall.
  • Creación de logs del funcionamiento del firewall y avisos de inicio y parada de este, así como de los addons.
  • Detección y posible bloqueo de trafico nuevo sin SYN, de fragmentos de tráfico, de tráfico considerado invalido por conntrack o de trafico no valido o considerado spoofing.
  • Permite mandar por ejemplo el trafico HTTP que se ha decidido aceptar a snort-inline para que este lo inspeccione y decida si el firewall debe bloquearlo o dejarlo pasar. Esto constituye una forma de IPS bastante eficaz y muy segura si mantenemos una cantidad pequeña de reglas en snort-inline. La ventaja de usar este método es que snort-inline realiza un tratamiento completo del tráfico HTTP por poner un ejemplo antes de comprobar con sus reglas si debe ordenar al firewall que bloquee o permita el tráfico.
  • Permite usar ulogd para mandar los logs a una base de datos como mysql o postgresql, o crear logs personalizados que luego pueden ser tratados con swatch o programas similares.
  • Tratamiento personalizado o configuración por defecto de todo el trafico ICMP. Posiblidad de que conntrack devuelva mensajes ICMP o no los devuelva.
  • Posibilidad de creación de reglas mediante tablas usando todas las facilidades de grupos de IPs o servicios del firewall y que tienen precedencia sobre las demás reglas del firewall para ajustar el firewall cuando tenemos varias redes que queremos tratar de forma diferente.
  • Funcionalidad de proxy transparente, NAT, SNAT, DNAT o REDIRECT por medio de tablas y mediante fichero de configuración. Para cada servicio puede indicarse un servidor interno de la red local que proporcione servicios al exterior mediante DNAT simplemente introduciendo su IP en una variable.
  • Funciona sin modificaciones tanto sobre las versiones 2.4 del kernel como en las 2.6.
  • Al cargar el firewall y si debe regenerar las reglas comprueba que estan disponibles todos los comandos necesarios así como todas las IPs, grupos y listas que se incluyan en los ficheros de configuración. También comprueba que las reglas tengan la sintaxis correcta y produce errores intentando dar ayuda sobre donde se ha producido el error si se introducen datos incorrectos.
  • Permite el uso de rangos y listas de IPs, expandiendolos a direcciones IPs, pues iptables no soporta rangos de IPs directamente.
  • bastion-firewall puede funcionar con cualquier número de interfaces de entrada o de salida, siempre que el enrutado sea correcto entre estos interfaces y redes, esto permite por ejemplo tener conexiones a varios routers ADSL desde una LAN y especificar reglas para todo el trafico que ha de entrar o salir por ellos. Es necesario que el administrador use el comando ip para habilitar el enrutado entre la LAN y las interfaces que conectan a los routers.
  • Permite una gran cantidad de combinaciones de logs, usando los logs de apache o ulogd.

 

SourceForge.net Logo
© 2005 bgSEC   (bgSEC Seguridad y Consultoria de Sistemas)   (http://www.bgsec.com)