Este documento describe cómo configurar un sistema de prevención de intrusiones (IPS) utilizando el software libre GNAP en equipos Soekris Eng. Explica cómo generar un núcleo personalizado con módulos específicos, crear extensiones como Snort e iptables, y configurar las reglas y redes para monitorear el tráfico entrante y tomar medidas en caso de anomalías. Finalmente, detalla cómo instalar el sistema generado en una tarjeta de memoria para implementarlo como un dispositivo de seguridad de red activo.
Creacion de un IPS utilizando Linux y hardware Soekris
1. CONGRESO NACIONAL DE SOFTWARE LIBRE
INSTITUTO POLITECNICO NACIONAL
Creación de un IPS utilizando
Linux y equipo Soekris Eng.
Javier Reyna Padilla
Agosto, 2006
2. Agenda
●
Objetivo.
●
GNAP (Gentoo Network ApPliance).
●
Equipos Soekris.
●
IDS e IPS.
●
Configurando un IPS para Soekris.
2
3. Objetivo
Construir una solución (?) utilizando S.L. y
hardware tipo appliance, la cual sea fácil de
crear y mantener.
3
4. GNAP
●
Serie de scripts para manipular catalyst.
●
GNAP – Gentoo Network APpliance.
●
Sistema tipo Unix minimalista.
●
Compatible con el hardware de Soekris.
●
Fácil de modificar .
●
Diseñado para crear SO para appliance.
4
5. Características de GNAP
●
FS recortado y comprimido con squashfs.
●
Usa hardened-sources para el kernel.
●
No utiliza busybox.
●
SSH, FW, VPN, NTPD, RP-PPOE.
●
Iftop, tcpdump.
●
Extensiones: boa, rrdtool, dash.
5
6. Cómo funciona GNAP
●
overlay.conf - determina el uso final.
● $ gnap_overlay i myfirewall.iso o
myoverlay/
6
7. gnap_overlay
●
Genera el sistema final.
●
Overlay - arbol de archivos que se agregarán
al sistema final (indispensable).
●
GNAPcore - base de gnap (indispensable).
●
Conflet - paquete de configuraciones ya
hechas que seran agregadas al sistema final
(opcional).
7
8. ¡¡¡ GNAP Avanzado !!!
●
gnap_dev & gnap extensions.
●
Recompilar kernel para agregar nuevos
modulos mediante genkernel.
●
Agregar o quitar programas del GNAPcore.
8
11. Hardware Soekris Eng.
●
Sistema embebido diseñado para sistemas
operativos tipo UNIX.
●
Diseñado como dispositivo de comunicaciones.
●
Procesador 266MHz Geode.
●
128MB en RAM.
●
Memoria CF como medio de almacenamiento.
●
Pequeñas dimensiones.
11
17. Sistema Previsor de Intrusos
●
Genera una acción inmediata frente anomalías
que indiquen un riesgo potencial.
●
Es un elemento activo.
●
Funciona en modo puente y es transparente
para la red.
●
Parche Virtual!
●
Principal punto de fallo si se rompe el puente.
Fail over!!!
17
18. Paso 1. Preparar el ambiente
●
Utilizar de preferencia Gentoo !!
●
Actualizar árbol de portes y
descargar portage_latest.
●
Obtener el software necesario:
gnap, gnap-dev, gnap-ext, hardened
sources.
●
Directorio de trabajo /usr/lib/gnap.
18
19. Paso 2. Kernel y módulos
●
Incluir modulos ip_queue y
bridge.
●
Generar modules.tbz2 y
kernel.tbz2 mediante
genkernel.
19
20. Kernel y módulos - CLI
linux usr # emerge oneshot ask hardenedsources
linux usr # cd /usr/lib/gnap
linux gnap # tar xvfj gnapspecs.tar.bz2
linux gnap # cd specs/
linux specs # cat kernel.config | grep BRIDGE
CONFIG_BRIDGE=m
linux specs # cat kernel.config | grep QUEUE
CONFIG_IP_NF_QUEUE=m
20
21. Kernel y módulos – CLI Cont. 1
linux gnap #mkdir tempmod
linux gnap #genkernel kerneldir=/usr/src/linux
2.6.13hardenedr2/
kernelconfig=/usr/lib/gnap/specs/kernel.config
minkernpackage=/usr/lib/gnap/kernel.tar.bz2
–modulespackage=/usr/lib/gnap/modules.tar.bz2 –no
install –moduleprefix=/usr/lib/gnap/tempmod all
21
22. Paso 3. Generar extensiones
●
Se van a agregar los paquetes snort y bridge-
utils.
●
Se debe modificar el archivo extensions.conf
dentro de /usr/lib/gnap/specs.
●
Es necesario obtener el snapshot de portage
más actualizado.
22
23. Generar extensiones - CLI
linux gnap # cat specs/extensions.conf
# List of extensions to build
extensions: snort bridgeutils
snort/packlist: snort
snort/useflags: inline
snort/cleanup: /usr/share /etc/
bridgeutils/packlist: bridgeutils
bridgeutils/cleanup: /usr/share
23
24. Generar extensiones – CLI Cont 1
linux gnap # gnap_make t extensions p portage
latest.tar.bz2 e specs/
GNAP Core Building tool gnap_make version 1.8.2
* Checking parameters...
[ ok ]
* 'livecdstage1' or 'extensions' was selected without
'stage3'.
* Should I use the seed stage as stage3 result ? [N]: Y
* The following targets will be called:
* [extensions]
* Preparing portage snapshot...
linux gnap # ls 1 *.tbz2
gnapext_bridgeutils20051030.tbz2
gnapext_snort20051030.tbz2
24
25. Paso 4. Generar un nuevo Core
●
El nuevo núcleo incluirá el nuevo kernel, los
módulos extras, las extensiones adicionales y
el sistema de archivos básico de GNAP.
●
Nos poroveerá el sistema listo para ser
configurado.
25
26. Generar un nuevo Core - CLI
linux gnap # gnap_remaster d extensions/ e snort e
bridge k kernel.tar.bz2 m modules.tar.bz2 o
ElfOS_rev7_SB.tar
26
27. Paso 5. Configuraciones
●
Las configuraciones en GNAP se llaman
overlay.
●
Se trata de un árbol de directorios que serán
copiados al sisteman final.
Se debe de configurar:
●
Modulos del kernel (ip_queue, bridge)
●
Tarjetas de red, bridge y firewall
●
Snort
●
Reglas de snort (Bleeding Snort)
27
28. /etc/conf.d/
●
Existen 3 interfaces en el equipo Soekris: 2
para el bridge y 1 para la administración.
/etc/conf.d/net
linux conf.d # cat net
ipaddr_eth0=(
"192.168.1.215/24"
)
iproute_eth0=(
"default via 192.168.1.7"
28
30. /etc/conf.d/
●
La contraseña de root es “imposible”.
●
Se utiliza crypt para cifrar una contraseña
utilizando DES.
etc/gnap/chpasswd
linux etc # cat gnap/chpasswd
root:qdp5EtUN0ttCM
30
34. /etc/snort_inline
snort_inline.conf – Prácticamente
●
la
configuración es igual que para snort.
snort_inline/rules – Contiene
●
todas las
reglas que podrán habilitarse para inspección.
drop tcp $HOME_NET any -> $EXTERNAL_NET 6881:6889
(msg:"P2P BitTorrent transfer"; flow:to_server,established; content:"|
13|BitTorrent protocol")
34
35. Paso 6. Instalar el sistema
●
Antes de escribir el sistema en la tarjeta es
necesario preparar el medio, en este caso se
crearon 2 particiones:
Device Boot Start End Blocks Id System
/dev/hda1 * 1 764 195568 83 Linux
/dev/hda2 765 978 54784 83 Linux
●
E instalar el MBR
linux gnap # dd if=/usr/lib/gnap/mbr/mbr.bin
of=/dev/sdb bs=512 count=1
35
36. Instalar el sistema
●
Antes de escribir se debe cuidar desmontar la
tarjeta.
linux gnap # gnap_overlay n d /dev/sdb1 r hda1 g
ElfOS_rev7_SB.tar o examples/idp/ m s 19200
GNAP overlay tool gnap_overlay 1.8.2
* Checking parameters...
* Warning : you have selected disk install
* Make sure you are root or have full access to /dev/sdb1
* /dev/sdb must have an MBR installed, run:
* dd if=/usr/lib/gnap/mbr/mbr.bin of=/dev/sdb bs=512 count=1
if needed
* /dev/sdb1 must contain an active partition:
* use fdisk /dev/sdb if needed
* Current data on /dev/sdb1 will be destroyed !
* Are your sure you want to continue [N] Y
36
38. Consideraciones
●
GNAP genera un LiveCD todo esta en ramdisk.
●
Cuidado con los logs !!!
●
Soekris no incluye Fail Over en sus NIC.
●
No hay actualizaciones automáticas.
●
No es necesario reconstruir para reconfigurar.
●
Permite lo no bloqueado específicamente.
38