bastion-firewall Instalar
1.0
Copyright © 2004 Jose María López
Hernández <jkerouac@bgsec.com>
Este documento esta protegido bajo la licencia pública FDL de
la Free Software Foundation.
bastion-firewall ha sido liberado bajo la licencia pública
GPL de la Free Software Foundation.
El titular del copyright da permiso para que este documento sea
copiado, distribuido y/o modificado bajo los terminos de la GNU Free
Documentation License (FDL), siempre que se incluya una nota donde se
especifiquen los autores originales del documento y el título
del mismo. El texto de la licencia en inglés se incluye en este
mismo documento y tiene validez legal plena.
Este documento y cualquier código fuente que se incluya se
distribuyen con la esperanza de que resulten útiles, pero SIN
NINGUNA GARANTIA; sin incluso la garantía implícita de
COMERCIALIZACIÓN o ADECUACION PARA UN PROPÓSITO EN
PARTICULAR. Si necesita más detalles consulte la GNU Free
Documentation License (FDL) y la GNU General Public License (GPL) de la
Free Software Foundation.
Tabla de Contenidos
Sobre bastion-firewall
Sobre los autores de bastion-firewall y
este tutorial
- Introducción
- Características de
bastion-firewall
- Conceptos de bastion-firewall
- Información general sobre la
instalación
- Instalación desde rpm
- Instalación desde archivo tar.bz2
- Instalación desde código fuente
- Instalación de los programas de
firewall stressing
Sobre bastion-firewall
bastion-firewall es un firewall desarrollado por Jose María
López Hernández <jkerouac@bgsec.com>
y bgSEC (www.bgsec.com) basado en
Netfilter e iptables y liberado bajo la licencia GPL de la Free
Software Foundation.
bastion-firewall está pensado como firewall llave en
mano para usuarios finales así como firewall completamente
customizable para usuarios avanzados. La configuración por medio
de ficheros bash permite una gran flexibilidad en la generación
de reglas. El código del firewall esta escrito en un 99 por
ciento en bash, con una pequeña parte en C para obtener los
datos de Netfilter y generar las paginas con las gráficas de
estadísticas de tráfico, este planteamiento permite a un
usuario que pueda programar en bash el cambiar bastion-firewall para
adaptarlo a cualquier sistema de producción. bastion-firewall ha
sido liberado por bgSEC bajo licencia GPL y su documentación
bajo licencia FDL, así que puede cambiar cualquier aspecto de
bastion-firewall y usarlo en su sistemas de producción o
liberarlo bajo licencia GPL manteniendo el Copyright original.
Como ejemplo de la flexibilidad de bastion-firewall bgSEC ha
liberado UNbeatABLE CD bajo licencia GPL, una adaptación de la
distribución Knoppix 3.3 con bastion-firewall integrado y que
permite usar el firewalll desde el CD sin necesidad de disco duro.
UNbeatABLE CD es una demostración de tecnología y debe
considerarse como tal, puede tomarse como ejemplo de la flexibilidad
del código o como punto de partida para generar firewalls ad-hoc
para sistemas de producción.
bastion-firewall 1.0 ha sido considerado apto para sistemas de
producción y se encuentra funcionando en varias máquinas
con buenos resultados, también ha sido utilizado para generar
scripts que son firewalls en si mismos y que después de editados
y adaptados se encuentran funcionando en sistemas de producción
con éxito.
bastion-firewall 1.0 ha sido desarrollado en España por Jose
María López Hernández <jkerouac@bgsec.com> y bgSEC (www.bgsec.com)
y por tanto los ficheros de configuración, la
documentación y los comentarios del código están
en español. Desde el comienzo del proyecto se pensó en
traducir todo el firewall al idioma ingles, y se han adaptado las
ordenes y los nombres de los ficheros para facilitar el cambio de
idioma sin tener que cambiar la estructura general del firewall. En
este momento se encuentran traducidos al ingles los ficheros de
configuración con toda su ayuda, las páginas de manual,
la ayuda de las órdenes, parte del interface gráfico
bastion-firewall-interface y bastion-firewall-stats en su totalidad.
También se han traducido los ficheros que acompañan a la
distribución y la guía rápida de
configuración. Esto debería bastar para que los
angloparlantes puedan usar bastion-firewall sin ningún tipo de
problemas, pero queda en el TODO la traducción completa de los
comentarios del código, del tutorial, de la ayuda y completar la
traducción del interface gráfico
bastion-firewall-interface.
Sobre los autores de
bastion-firewall y este tutorial
bastion-firewall, bastion-firewall-interface y
bastion-firewall-stats han sido creados por Jose María
López Hernández <jkerouac@bgsec.com>
y bgSEC (www.bgsec.com) y liberados
bajo licencia GPL (codigo) y FDL (documentación).
bastion-firewall-interface funciona sobre el servidor HTTP apache y
PHP4, deberá consultar las licencias de ambos programas si
quiere utilizarlos en su sistema de producción. Tanto apache
como PHP4 son Copyright de sus propietarios y no tienen ninguna
relación con bgSEC, aunque sus licencias permiten que sean
distribuidos junto al firewall sin modificar.
Tanto ulogd como rrdtool son parte integrante de bastion-firewall
pero sus Copyright pertenecen a sus propietarios, deberá
consultar sus licencias si quiere usarlos en su sistema de
producción con bastion-firewall-stats. Se distribuyen sin
modificar en forma binaria y codigo fuente, en los ficheros de
distribución se pueden consultar las licencias de cada uno de
los programas.
Los addons hogwash, snort-inline, snort, pdumpq, Netfilter e
iptables y los ficheros de firewall stressing (ethereal, fragrouter,
ftest/ftestd, hping2, nasl, nmap/nmapfe, sing, snot y tcpdump) son
Copyright de sus propietarios y no tienen ninguna relación con
bgSEC. Se aconseja su uso para probar el firewall y se distribuyen sin
ninguna modificación como addons de bastion-firewall. Su uso es
opcional y no forman parte de bastion-firewall, se distribuyen como
binarios y como código fuente sin modificar. En la
distribución de cada programa se puede consultar la licencia y
el Copyright de cada uno de ellos.
1. Introduccion
bastion-firewall es un firewall completo para el Sistema Operativo
Linux basado en Netfilter e Iptables. Las premisas sobre las que se ha
desarrollado bastion-firewall son las siguientes:
- Flexibilidad: Se
elegió bash como lenguaje de programación por ser
suficientemente conocido por los administradores de sistemas, sencillo
de modificar y reprogramar o añadir código.
También es lo suficientemente potente para realizar casi
cualquier algoritmo que se desee desarrollar.
- Robustez: La
elección de bash como lenguaje de programación asegura
una gran facilidad en la realización de tests y en la
modificación del código. Esto asegura que cualquier error
o fallo en el firewall pueda ser solucionado por el mismo administrador
del sistema, sin necesidad de contratar servicios de consultoría
o aprender lenguajes de programación nuevos. El lenguaje es lo
suficientemente rígido para asegurar que cualquier error en los
scripts o los ficheros de configuración sea detectado
fácilmente.
- Extensibilidad:
bastion-firewall puede ser modificado y extendido por medio del
añadido de addons o por medio de plugins muy fáciles de
programar en codigo bash y que se integran fácilmente en el
código del firewall. En puntos claves del firewall se permite la
introducción de código local para que un administrador
pueda añadir reglas o código sin tener que tocar los
ficheros básicos de bastion-firewall. Los addons permiten usar
programas externos integrados con bastion-firewall usando la
funcionalidad de este para usar programas externos para distintas
tareas. Dos ejemplos de addons integrados son ulogd y snort-inline, que pueden ser
añadidos al firewall usando la funcionalidad implementada en
este.
- Fácil mantenimiento:
La utilización de bash tanto en el código como en los
ficheros de configuración permite modificar y mantener el
firewall de forma muy sencilla para cualquier administrador con
conocimientos básicos de programación en shell.
- Actualizaciones:
bastion-firewall se compone de una parte central compuesta por
código bash y bastion-firewall-stats programado en C, todo lo
demás son addons que se integran sin necesidad de ser
modificados, lo que permite que puedan ser actualizados sin afectar al
funcionamiento del firewall. Una colección de ficheros build
permiten la configuración inmediata mediante comandos
./configure de los addons y los complementos como rrdtools, apache o
php4, y pueden así ser actualizados en un tiempo mínimo
sin afectar al firewall. Es posible en muchos casos incluso actualizar
parte de estos addons en caliente, sin tener que parar el firewall.
- Soporte: bastion-firewall
puede ser administrado y modificado por los mismos administradores del
sistema de producción, pero también puede solicitarse
servicios de consultoria y soporte técnico a bgSEC( www.bgsec.com).
También es posible solicitar a bgSEC modificaciones o
adaptaciones a sistemas de producción de bastion-firewall.
- Documentación completa:
Simplemente con los ficheros de configuración es posible
comenzar a funcionar con bastion-firewall, pues incluyen una gran
cantidad de ayuda en forma de comentarios para cada variable que se
puede modificar. Además se adjunta en la distribución una
gran cantidad de ficheros de ayuda que explican todos y cada uno de los
aspectos de bastion-firewall. Los ficheros de código
están profusamente comentados para una fácil
comprensión y mantenimiento, y se espera que estén
traducidos al ingles en un corto espacio de tiempo.
- Funcionalidad: bastion-firewall
permite crear una cantidad de reglas enorme simplemente editando una
serie de variables en los ficheros de configuración, usando las
facilidades de grupos de redes, grupos de servicios, mensajes icmp y
protocolos, así como el uso de listas de IPs que pueden
incluirse en cualquier sitio donde se solicite una dirección IP.
Es posible el crear scripts con más de 3000 reglas simplemente
editando cuatro o cinco variables de los ficheros de
configuración.
- Adaptabilidad:
bastion-firewall se adapta a múltiples entornos, e incluye
templates para algunos de estos, que permiten tener un firewall en
producción simplemente editando media docena de variables y sin
tener que leer prácticamente documentación. Esta
preparado para poder ser usado como un simple firewall personal, como
un firewall con DMZ para una gran empresa o como generador de scripts
de firewalls que pueden ser instalados en varias máquinas.
- Portabilidad: El
código bash y la utilización de herramientas estandard de
Linux hacen a bastion-firewall perfecto para ser adaptado a
múltiples distribuciones de Linux o a sistemas de
producción completamente diferentes.
- Rapidez: La
ordenación de las reglas por medio de tablas según el
tipo de tráfico y la agrupación de puertos para servicios
con varios puertos permiten a bastion-firewall generar reglas que
Netfilter puede recorrer muy rápido, proporcionando una
respuesta superior a la de otros firewalls o a la de scripts escritos a
mano por un administrador. La cache de reglas permite cargar miles de
ellas en segundos usando iptables-restores/iptables-save cuando los
ficheros de configuración no hayan cambiado, hecho que el propio
firewall detecta y tiene en cuenta. Una vez configurado el firewall la
carga y descarga de cadenas y reglas lleva un tiempo mínimo para
el sistema, lo que aventaja a los scripts que ejecutan iptables orden
por orden y tardan un tiempo en generar las reglas.
2. Características de
bastion-firewall
Las características principales de bastion-firewall son entre
otras:
- 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.
Estas son simplemente las características más importantes
de bastion-firewall, para más información consultar los
ficheros de configuración y si tiene conocimientos de bash el
codigo de firewall. De cualquier forma la manera más
gráfica de ver como funciona el firewall es configurandolo
someramente y luego estudiando el script que se ha creado, y comparando
las opciones que hemos especificado con las reglas iptables que se han
quedado. También podemos ver con iptables -L como se organizan
las reglas, pero puede ser complicado seguir el flujo del
tráfico en este momento, todo esto se explicará en las
siguientes secciones.
3. Conceptos de bastion-firewall
El funcionamiento de un firewall es simple, se trata de un dispositivo
que se introduce entre dos redes y que regula el tráfico que
puede
pasar de una red a otra, teniendo en cuenta una serie de reglas
predeterminadas que indican que tráfico debe pasar y que
tráfico debe
bloquearse. Estas reglas pueden indicar que se bloquee o se permita el
tráfico según una serie de parámetros que pueden
ser entre otros: la
dirección de origen, la dirección de destino, el
interface de entrada,
el interface de salida, el puerto de origen, el puerto de destino, etc.
bastion-firewall introduce el concepto de flujos de tráfico,
entendiendo por flujo el flujo de datos que va de una red o una
máquina
a otra red u otra máquina, atravesando siempre el firewall.
Estos
flujos de datos se ordenan por medio de cuatro datos, el interface de
entrada, el interface de salida, la red de origen y la red de destino,
con lo que tenemos los siguientes flujos de datos:
lan-to-fw : Tráfico de
la red LAN interna al firewall
fw-to-lan : Tráfico del
firewall a la red LAN interna
ext-to-fw : Tráfico de
la red EXT externa al firewall
fw-to-ext : Tráfico del
firewall a la red EXT externa
lan-to-ext : Tráfico de
la red LAN interna a la red LAN externa
ext-to-lan : Tráfico de
la red EXT externa a la red LAN interna
Y por último un tipo de flujo especial que sirve para hacer DNAT
(Destination Network Address Translation) de una red o maquina exterior
de la red EXT a una maquina de la red LAN interna:
ext-to-dnat : Tráfico
DNAT de la red EXT externa a una máquina de la red LAN interna
Estos tráficos son los que incluiremos en las variables de la
configuración para habilitar el tráfico en una
dirección para un flujo
de datos, teniendo en cuenta que luego pueden llevar las siguientes
opciones:
:drop Bloquear el
tráfico (para hacer solo log o estadísticas de trafico)
:log Hacer log de las
conexiones para este tipo de tráfico
:stats Sacar
estadísticas para este tipo de tráfico (para luego crear
gráficas de tráfico)
:ulog Mandar el trafico a
ulogd para que cree un log en una base de datos o en un fichero de
texto plano
Estos flujos de tráfico son para EL INICIO DE LA CONEXION, pues
como el
firewall usa la facilidad de Connection Tracking (conntrack) de
Netfilter el tráfico de vuelta se permite siempre que se haya
permitido
el inicio de la conexión.
Por ejemplo: ext-to-lan:log:stats permitiría que se iniciara una
conexión desde la red exterior EXT a la interior LAN y el
trafico entre
la red EXT y LAN y también por medio de conntrack el
tráfico de LAN a
EXT. Conntrack es lo suficientemente hábil como para llevar
cuenta de
las conexiones y sólo habilita el tráfico para una
conexión en
particular, por lo que se habla de Stateful Firewall (Firewall con
estado), pues recuerda cuando se ha establecido una conexión
(estado
ESTABLISHED) e incluso cuando es otra conexión relacionada con
la
primera, como en el ftp (estado RELATED). El firewall permite por tanto
con esta regla el trafico de EXT a LAN por ser el inicio de la
conexión y el de LAN a EXT por ser ESTABLISHED. Además el
firewall
apunta en los logs en el inicio de la conexión y crea
estadísticas de
todo el tráfico que se produce en la conexión. Netfilter
guarda una
tabla en /proc/net/ip_conntrack con las conexiones aceptadas, las
establecidas y las relacionadas, para mantener en todo momento el
estado del firewall y saber que conexiones permitir y cuales no.
Graficamente los tipos de tráfico que tenemos son:
donde cada tipo de tráfico es el explicado más arriba, y
se entiende
que cada dirección de tráfico indica el inicio de la
conexión,
habilitandose el tráfico en el sentido contrario por medio de
Connection Tracking.
Veamos tres ejemplos gráficamente de flujos o direcciones de
tráfico:
lan-to-ext
fw-to-lan
fw-to-ext
4. Información general sobre la
instalación
bastion-firewall viene en dos versiones,
la version en español y la version semi-traducida al ingles.
Descargue de bgSEC (
www.bgsec.com)
la más conveniente según su idioma y proceda a la
instalación según estas instrucciones.
El programa se distribuye en tres formatos, como paquetes rpm para
distribuciones de tipo RedHat o deb para distribuciones de tipo Debian,
como paquetes .tar.bz2 archivados con tar y comprimidos con bzip2 y
como código fuente. Lo más conveniente es usar las
distribuciones binarias, sean en forma de paquetes rpm o deb o como
paquetes tar.bz2, pues es mucho más sencilla que la
instalación desde el código fuente, que sólo
debería usarse si no funcionan alguno de los paquetes binarios
distribuidos o queremos realizar modificaciones en la
distribución de bastion-firewall.
Los paquetes que tenemos son los siguientes:
Sistema base
- bastion-firewall-base-1.0.[rpm][deb][tar.bz2][src.tar.bz2] :
Distribución base de bastion-firewall. Es el firewall completo,
junto con el paquete de estadísticas.
- bastion-firewall-stats-1.0.[rpm][deb][tar.bz2][src.tar.bz2] :
Sistema de estadísticas de bastion firewall, casi imprescindible.
Addon para el Interface a través de web
- bastion-firewall-interface-1.0.[rpm][deb][tar.bz2][src.tar.bz2] :
Interface gráfico a través de web basado en Apache y PHP
4.
Addons integrados con bastion-firewall
- bastion-firewall-ulogd-1.0.[rpm][deb][tar.bz2][src.tar.bz2] :
Sistema de logs basado en ulogd, integrado con bastion-firewall.
- bastion-firewall-snort-inline-1.0.[rpm][deb][tar.bz2][src.tar.bz2]
: Snort-inline integrado con bastion-firewall, un IPS que se integra
con bastion-firewall.
Addons independientes no integrados con bastion-firewall
- bastion-firewall-snort-1.0.[rpm][deb][tar.bz2][src.tar.bz2] :
Snort para bastion-firewall, un IDS muy potente y configurable.
- bastion-firewall-hogwash-1.0.[rpm][deb][tar.bz2][src.tar.bz2] :
Hogwash para bastion-firewall, un IPS similar a snort-inline pero no
integrado con bastion-firewall.
Deberá descargar obligatoriamente los dos primeros, y luego los
addons que considere necesarios, en concreto es muy interesante contar
con el addon para el Interface Web y los addons para ulogd y
snort-inline. Luego deberá instalarlos en su sistema.
5. Instalación desde rpm o deb
Los pasos a seguir son los siguientes:
- Crear un usuario llamado bastion
y un grupo llamado también bastion,
puede usar adduser en RedHat
por ejemplo para este cometido.
- Instalar los paquetes que haya elegido con rpm -i nombre_del_paquete.rpm para
RedHat o dpkg -i nombre_del
paquete.deb para Debian. Puede usar --nodeps si pregunta por otros
paquetes
- Añadir si se considera necesario a los scripts de arranque
los scripts de bastion-firewall, en RedHat puede hacerse con chkconfig.
- Configurar bastion-firewall con los ficheros de
configuración o usando el Interface Web (debe haber arrancado
primero el interface para esto)
- Arrancar bastion-firewall, el sistema de estadísticas y
los addons de bastion-firewall.
6. Instalación desde archivo tar.bz2
Los pasos a seguir son los siguientes:
- Descomprimir los paquetes .tar.bz2 con la orden tar xjvf nombre_del_paquete.tar.bz2,
se crearan una serie de directorios que se llamarán igual que el
paquete pero sin la extensión .tar.bz2.
- Entrar en cada directorio y ejecutar la orden ./install.sh
que instalará el programa o el addon en el sistema, copiando los
ficheros necesarios y creando los directorios necesarios para
bastion-firewall.
- Crear un usuario llamado bastion
y un grupo llamado también bastion,
puede usar adduser en RedHat
por ejemplo para este cometido.
- Añadir si se considera necesario a los scripts de arranque
los
scripts de bastion-firewall, en RedHat puede hacerse con chkconfig.
- Configurar bastion-firewall con los ficheros de
configuración o
usando el Interface Web (debe haber arrancado primero el interface para
esto)
- Arrancar bastion-firewall, el sistema de estadísticas y
los addons de bastion-firewall.
7. Instalación desde código
fuente
Para instalar bastion-firewall desde el código fuente se
necesitan algunos conocimientos de como compilar un programa bajo Linux
y de las complicaciones que pueden aparecer en este proceso,
además necesitaremos el compilador gcc y las librerías
necesarias para cada programa o addon.
Los pasos a seguir son los siguientes:
- Descomprimir los paquetes .tar.bz2 con la orden tar xjvf nombre_del_paquete.tar.bz2,
se crearan una serie de directorios que se llamarán igual que el
paquete pero sin la extensión .tar.bz2.
- Para el sistema base basta con entrar en el directorio y ejecutar
la orden ./install-redhat.sh
o install-debian.sh
según la distribución que tengamos que instalará
el programa en el sistema, copiando los
ficheros necesarios y creando los directorios necesarios para
bastion-firewall. bastion-firewall está escrito en bash y no
necesita ser compilado. Este comando instalará también
los scripts de inicio de bastion-firewall en /etc/rc.d/init.d para
RedHat o /etc/init.d para Debian.
- Entrar en cada directorio y ejecutar la orden ./compile.sh
que ejecutará el script configure
de cada addon y luego make y make install para instalar el
programa o el addon en el sistema, copiando los
ficheros necesarios y creando los directorios necesarios para
bastion-firewall. También puede hacerse a mano usando los
scripts que vienen en el directorio build
para cada programa o addon y que ejecutan la orden configure con los parámetros
correctos, y luego ejecutando make
y make install,
y realizando los cambios que se consideren necesarios. La
compilación de los addons puede llevar una gran cantidad de
tiempo y espacio en el disco duro.
- Crear un usuario llamado bastion
y un grupo llamado también bastion,
puede usar adduser en RedHat
por ejemplo para este cometido.
- Añadir si se considera necesario a los scripts de arranque
los
scripts de bastion-firewall, en RedHat puede hacerse con chkconfig.
- Configurar bastion-firewall con los ficheros de
configuración o
usando el Interface Web (debe haber arrancado primero el interface para
esto)
- Arrancar bastion-firewall, el sistema de estadísticas y
los addons de bastion-firewall.
8. Instalación de los programas de
firewall stressing
Se incluye un último paquete con bastion-firewall llamado
bastion-firewall-fwstressing.tar.bz2 que contiene un directorio con una
serie de scripts que permiten configurar de forma adecuada una serie de
programas de firewall stressing (prueba de firewalls) como por ejemplo
nmap, ethereal, hping2 y similares. El usuario deberá descargar
de los sitios web que se indican en la página web cada programa
y usar los scripts para configurarlos (o configurarlos a mano) y luego
compilarlos con las ordenes make necesarias. Algunos de estos programas
pueden estar ya en su sistema y no necesitar ser compilados.