HOWTO: Alto Rendimiento de IDS / IPS con SmoothSec 3.2

Dado que la configuración anterior (HOWTO) de SmoothSec no son perfectos, yo voy a usar AF_PACKET como motor de adquisición de paquetes. En esta configuración, que están obligados a tener al menos 3 interfaces de red, una para los fines de gestión.

Como AF_PACKET tiene un alto rendimiento, incluso el hardware muy de gama baja se beneficiaron. La siguiente configuración es ideal para ambiente doméstico / SOHO

(A) Hardware

Tarjetas Madre -. Intel Desktop Board D510MO
CPU – Intel Atom D510 (2 núcleos con HT)
RAM – 4GB (2 x 2GB)
Hard Drive – 320GB
Tarjeta de red 0 (eth0) – A bordo Gigabit
Tarjeta de red 1 (eth1) – Adaptador TP-Link TG-3269 Gigabit PCI de red (con un bajo perfil)
Tarjeta de red 2 (eth2) – D-Link DUB-E100 Adaptador USB 2.0 Fast Ethernet (hasta 200MB)

(B) Software

Sistema operativo – Debian 7.0 (Wheezy)
IDS / IPS sistema de pre-configure – SmoothSec 3.2 (64-bit) Interfaz Web Pocilga
– –
IDS / IPS Motor – Suricata cola Snorby
Normas de Gestión – pulledpork

(C) Configuración

Internet - Router - SmoothSec - Conmutador - Computadoras Personal

El SmoothSec controlará todo el tráfico entrante y saliente entre . router y el switch

Paso a – Conexión de cable:

En primer lugar, SmoothSec (tarjeta de red 2) está conectado al conmutador mientras Tarjeta de red 0 y 1 no se conectan al router en el momento. Es porque es necesario para acceder a Internet para la instalación SmoothSec

Paso 1 – Instalación de SmoothSec:.

Instalar SmoothSec como de costumbre o consulte SmoothSec Wiki. Cuando se le pregunte si desea instalar firmware no libre de interfaz de red, simplemente lo ignora. Se debe a que Debian ausentó firmware para Realtek 8169. Después de la instalación, reinicie el cuadro como un consejo. El nombre de usuario es «root «, mientras que la contraseña es « Toor »

Paso 0 – Instalar los paquetes que faltan:.

apt-get install fail2ban ethtool sufijo openjdk-7-jre

Si desea utilizar Postfix como servidor de correo para el informe Snorby, deberá instalarlo y configurarlo después de la instalación. Para la configuración de Postfix, puede solicitar a Google, si usted no sabe cómo.

Asegúrese de seleccionar « Sitio internet » al instalar Postfix.

Usted puede considerar instalar fail2ban para proteger su conexión ssh dentro de la red

Para mejorar la SmoothSec:.

apt-get - purge eliminar arpwatch
apt-get install Arpalert
cd / etc / Arpalert /
mv oui.txt oui.txt.old
wget http://standards.ieee.org/regauth/oui / oui.txt


Paso 1 – Obtener nuevo Kernel de Linux:

Con el fin de instalar un alto rendimiento IDS / IPS, usted necesita un kernel más reciente que la versión debe ser 3.7 o superior.

apt-cache search linux-image

Para ver la versión del kernel de Linux que es mayor que 3,7. Si no es así, sólo tiene que añadir los siguientes repos:

nano / etc / apt / sources.list

Añada la siguiente línea (la dirección de la origen puede ser diferente a la suya, pero debe ser « inestable «:
deb http://ftp.us.debian.org/debian/ unstable main
deb-src http://ftp.us.debian.org/debian/ unstable main


A continuación, busque la versión del kernel de Linux que es mayor que 3.7:

apt-get update

selecciono la versión 3.10:

apt-get install linux-image-3,10-2-amd64 linux-headers-3,10-2-amd64

Cuando se le pide que reinicie algunos servicios al instalar, simplemente conteste «sí «.

Usted será advertido por algún firmware faltante, simplemente lo ignoran. Esto se debe a que Debian no tiene algún firmware para Realtek 8169. De todos modos, es inofensivo.

Una vez que los nuevos kernel instalar, comentario lo que agregó en « / etc / apt / sources.list .» Este paso es muy importante ya que la versión más reciente de Apache (2.4.x) y Perl romperá el Snorby y pulledpork, la web interfaz de la herramienta de gestión SmoothSec y normas

A continuación, reinicie el SmoothSec y seleccione el nuevo kernel cuando está disponible

Paso 2 – Configurar Suricata:..

nano / etc / suricata / suricata.yaml

Localizar « # - retraso de detección: sí «y sustituir por» - retraso de detección: sí «

Localizar.» - rápido: «y reemplazar» habilitado: no «con» habilitada: yes "

Localizar.» - caída: «y reemplazar» habilitado: no «con» habilitado: sí af-paquete "

Localizar.":
«y reemplazar» hilos : 1 «con» hilos : 4 # checksum controles "O bien, el número de núcleo de CPU tiene

Localizar.».: kernel
«y sustituirla por» checksum comprobaciones: kernel # copy-mode "

Localizar.": ips
«y sustituirla por «copy-mode : ips «.

Localizar « # copia del iface: eth1 » y sustituirla por «copy-iface de : eth1 «

Agregar.» buffer-size: 64535 «justo debajo de» copy-iface de :. eth1 «

Localizar « - Interfaz: eth1 » y reemplazar «hilos : 1 » con «hilos : 4 » O. el número de núcleo de CPU tiene

Añada las siguientes líneas justo por debajo. « # disable-promisc: no «:

buffer-size: 64535
-modo de copia: ips
copiar-del iface eth0
utilizar mmap: sí
checksum comprobaciones: kernel


Localizar « regla-archivos: «. y añade « - local.rules » justo debajo de « - emerging.rules »

touch / etc / suricata / reglas / local.rules

nano / etc / init.d / suricata

Localizar " / usr / local / bin / Suricata - usuario suricata-c / etc / suricata / suricata.yaml-i $ INTERFACES-D " con " / usr / local / bin / Suricata - usuario suricata-c / etc / suricata / suricata.yaml - af-packet-D "

Hay 2 entradas, debe reemplazarlos todos

Paso 3 - Zona horaria:..

Asegúrese de que su SmoothSec es UTC, sin importar la zona horaria es Es porque, Snorby es . sólo trabaja en UTC lo contrario, la fecha y hora de Snorby será un error

Para comprobar zona horaria de SmoothSec:.

fecha

Si el tiempo no es UTC, necesita cambiar de nuevo a lo siguiente:

dpkg-reconfigure tzdata

Ajuste el huso horario a " UTC " en "Ninguno de lo anterior "

Paso 4 - Configurar función de correo electrónico de Snorby:.

Si ha instalado Postfix, configurarlo correctamente de acuerdo a tu red en " / etc / postfix / main.cf ".

nano / var / www / snorby / config / inicializadores / mail_config.rb

A continuación, quite el comentario de las líneas justo debajo de "# Sendmail Ejemplo:" O bien, consulte el SmoothSec Wiki para la instalación. .

Paso 5 - Configurar las interfaces de red:

Que sea como la siguiente Asegúrese de que su eth2 tiene su IP " dirección. "y" pasarela de "en lugar de" 192.168.2.180 ", ya que es sólo un ejemplo:

nano / etc / network / interfaces

# La interfaz de red de bucle invertido
lo auto
del iface lo inet loopback

auto eth0
Manual iface eth0 inet
hasta ifconfig eth0 0.0.0.0 arriba
abajo ifconfig eth0 down
post- hasta ethtool-K eth0 gro off

auto eth1
del iface eth1 inet Manual
hasta ifconfig eth1 0.0.0.0 arriba
abajo ifconfig eth1 abajo
Poste-up ethtool-K eth1 gro off

# La interfaz de red primaria
# allow-hotplug eth2
# eth2 iface de inet dhcp
auto eth2
del iface eth2 inet static
dirección 192.168.2.180
netmask 255.255.255.0
gateway 192.168.2.1


* Tenga en cuenta que ethtool se utiliza como las interfaces de red Realtek producirá error cuando se trabaja como método AF_PACKET.

Los mensajes de error al hacer la depuración con " suricata-c / etc / suricata / suricata.yaml - af-paquete ":

[ERRCODE: SC_ERR_SOCKET (200)] - Envío de paquetes falló en tubo de 10: Mensaje demasiado largo
[ERRCODE: SC_ERR_INVALID_ACTION (142)] - No es posible conocer los datos de paquetes


Paso 6 - Configurar SmoothSec:

Ejecute el siguiente script para configurar SmoothSec:

smoothsec.first.setup

Escriba " eth0 " cuando se le pregunta por la interfaz de monitor. Enter " 192.168.2.0/24 " cuando se le preguntó por la red. Tenga en cuenta que la dirección de aquí es un ejemplo solamente. Cuando se le preguntó por Intrusión Detection Engine, escribe " 2 " para Suricata. La dirección de correo electrónico y contraseña pedido son con el propósito de inicio de sesión de Snorby (interfaz web).

Paso b - Conexión del cable:

Tarjeta Connect Network 0 al router y la tarjeta de red 1 al interruptor de la tarjeta de red 2 conecta con el interruptor
Cuando haya terminado, reinicie el SmoothSec

Paso 7 - Navegar Snorby:

Tienes que esperar por varios minutos antes de que usted se puede conectar a la Internet como Suricata necesita algo de tiempo para ver con las reglas

Abra su navegador y escriba la siguiente URL:.

https: / / 192.168.2.180

Acepte el certificado y espere alrededor de un minuto el Snorby se mostrará

Paso 8 - IPS Setup:.

Ahora su SmoothSec se está ejecutando como IDS (Intrusion Detection System) y no va a bloquear o eliminar cualquier tráfico malicioso.

Para configurar el SmoothSec a correr como IPS (Intrusion Prevention System), es necesario:

nano / etc / pulledpork / suricata / dropsid.conf

Añada la siguiente:

pcre: EM (0 [0-9] | 1 [0-9]) - d +, bugtraq: d +, cve: 20 [0-9] [0-9] - d +

Por lo tanto, ya se habrá cansado / bloquear cualquier tráfico malicioso que coinciden con las vulnerabilidades en los informes de vulnerabilidad, tales como CVE y bugtraq, así como de Microsoft. Mientras tanto, usted puede añadir su propia reglas en " / etc / suricata / reglas / local.rules ". Asegúrese de ejecutar " smoothsec.suricata.rules.update " después de su agregarlos.

Es posible que desee desactivar algunas reglas:

nano / etc / pulledpork / suricata / disablesid.conf

Añada la siguiente :

1:2210000-1:2210049

Se desactivará las reglas de serie 2210000-2.210.049 Un total de 50 reglas desactivados..

Una vez hecho, ejecute el siguiente script:

smoothsec.suricata.rules.update

* Tenga en cuenta también que usted está obligado a esperar varios minutos antes de que pueda conectarse a la Internet como Suricata requiere un poco de tiempo para hacer las normas.

(D) Solución de problemas

(1) En caso de encontrar que no hay información GeoIP sobre los acontecimientos, debe comprobar si el archivo "-GeoIP.dat snorby
" en / var / www / snorby / config / o no. Si no es así, sólo tiene que descargar, por favor siga los siguientes comandos. Si no existe el archivo, que significa que no pueda conectarse a Internet durante la instalación Snorby.

cd / tmp /
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
gzip-d GeoIP.dat.gz
mv GeoIP.dat snorby-GeoIP.dat
chown www-data: www-data snorby-GeoIP.dat
cp snorby-GeoIP.dat / var / www / snorby / config /


(2) En caso de que no capturar los eventos, usted debe asegurarse de que el nombre de la interfaz correcta (tal como eth0, eth1 y eth2) están conectados correctamente. Usted debe examinar la dirección MAC de la Red Tarjeta para determinar el nombre de la interfaz correcta.

(E) Rendimiento

El SmoothSec está instalado en un hardware de gama baja (Intel Atom D510 CPU con tarjetas de red Gigabit Realtek). También está detrás de un router, el cual se está ejecutando Untangle (CPU Intel Atom D510 con NIC Gigabit Realtek). Untangle es un (Sistema de Gestión Unificada de Amenazas) que puede bloquear una parte del tráfico malicioso (sólo unos pocos solamente) UTM . El interruptor es D-Link DGS-1008D switch (Inicio) Gigabit.

Para probar el rendimiento, estoy viendo una youtube a 1080p con PC-1 (vía wifi), viendo un youtube a 720p el PC-2 (vía wifi) y ver un youtube en HD en el teléfono inteligente Android con wifi. El resultado es muy suave, sin ningún retraso para todos los dispositivos.

La carga de la CPU para la prueba es inferior a 4 . x y la memoria utilizada es inferior a 3 GB.

AF_PACKET es ideal para la implementación de IDS / IPS cuando se tiene un hardware muy de gama baja.

(F) Limitación

Desde SmoothSec 3.2 es construir sobre Debian 7.0 (Wheezy), el sistema se romperá cuando se actualiza a Sid (inestable). La versión más reciente de Apache (2.4.x) y Perl se negará a ejecutar debido a un error. Por lo tanto, al instalar el nuevo núcleo (para el propósito AF_PACKET), asegúrese de que usted comente los repos que ha añadido con el fin de evitar que el sistema actualice a la Sid (inestable) por accidente.

Otra limitación es que se le solicita que tenga por lo menos 3 tarjetas de red para IDS o IPS.

Una limitación más es la Snorby no puede mostrar el tráfico a tierra en el momento.

Problema conocido

Pocilga se bloqueará aleatoriamente Como resultado, no captura en Snorby El problema ha sido reportado, ver aquí ... - > La solución es ejecutar una secuencia de comandos bash en las pruebas cada 5 minutos para empezar Pocilga de nuevo.

nano / root / chkpigstylog

#! / bin / bash
# Compruebe si "Error:" en pigsty.log o no ser así, una vez más empezar Pocilga
STRING = "Error:"..
si grep-R "$ cadena" / var / log / pigsty.log
y
/ root / runpigsty
fi


nano / root / runpigsty

#! / bin / bash
/ usr / local / etc / pocilga / suricata.pigsty.config.js-i eth0-n "Suricata"-d / var / log / suricata / m unified2.alert. *-D


crontab-e
* / 5 **** / root / chkpigstylog


actualización

Los desarrolladores acaba de arreglar el problema Usted acaba de actualizar el Pocilga con el siguiente comando:.

npm actualización pocilga-mysql-g
npm actualización pocilga-g


Eso es todo! Nos vemos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *