Tutoriales

Primer sistema de protección DDoS de código descubierto

Cancerbero es el primer sistema de protección DoS de código descubierto. Está diseñado para resquilar a cualquier pancho de partida mayor, por lo que puede resistir los ataques DoS tanto de hoy como de mañana. A pesar de la cimentación distribuida geográficamente de Gatekeeper, la política de red que describe todas las decisiones que deben aplicarse al tráfico entrante está centralizada.

Esta política centralizada permite a los operadores de red usar los algoritmos distribuidos que no serían viables con una latencia muy entrada (por ejemplo, bases de datos distribuidas) y guerrear contra múltiples ataques DoS de múltiples vectores a la vez.

Los usuarios previstos de Gatekeeper son operadores de red de instituciones, proveedores de servicios y contenido, redes empresariales, etc. No está destinado a ser utilizado por usuarios individuales de Internet.

¿Como instalar?

Configurar páginas gigantes

DPDK requiere el uso de páginas gigantes; Las instrucciones para copular páginas gigantes están disponibles en la documentación de requisitos. En muchos sistemas, la posterior configuración de páginas gigantes es suficiente:

$ echo 256 | sudo tee / sys / kernel / mm / hugepages / hugepages-2048kB / nr_hugepages

  • Opción 1: obtener paquetes

Los paquetes Debian para Gatekeeper están disponibles en la página de versiones del plan.

Instalar en pc

Una vez que se descargan los paquetes, se pueden instalar con los siguientes comandos:

$ tar -zxvf gatekeeper-ubuntu-18.04-packages.tar.gz
$ cd gatekeeper-ubuntu-18.04-packages
$ sudo dpkg -i libgkrte-*.deb 
    libgkdpdk-dev_*_amd64.deb 
    gatekeeper-dpdk_*_amd64.deb 
    gatekeeper-dpdk-dev_*_amd64.deb 
    gatekeeper-dpdk-igb-uio-dkms_*_amd64.deb 
    gatekeeper-dpdk-rte-kni-dkms_*_amd64.deb 
    gatekeeper-bird_*_amd64.deb 
    gatekeeper_*_amd64.deb

los gatekeeper-dpdk-dev package es una dependencia de los paquetes DKMS, que construyen sus respectivos módulos del kernel durante la instalación del paquete y las actualizaciones del kernel.

Configurar adaptadores de red

Edite el /etc/gatekeeper/envvars archivo e inserte los nombres de los adaptadores de red que se vincularán a DPDK. Por ejemplo:

GATEKEEPER_INTERFACES = ”eth0 eth1 ″

Alternativamente, se pueden especificar las direcciones PCI de las interfaces:

GATEKEEPER_INTERFACES = ”0000: 00: 07.0 0000: 00: 08.0 ″

En el mismo archivo, puede especificar opcionalmente las opciones de Capa de conceptualización ambiental en el DPDK_ARGS opciones variables y específicas de Gatekeeper en GATEKEEPER_ARGS.

¿Como pasar?

Ejecute los siguientes comandos para iniciar Gatekeeper y cerciorarse de que se inicie automáticamente al reiniciar.

$ sudo systemctl start gatekeeper
$ sudo systemctl enable gatekeeper

  • Opción 2: reunir a partir de la fuente

Instalar dependencias

Instale las siguientes dependencias de software:

$ sudo apt-get update
$ sudo apt-get -y -q instalar git clang devscripts doxygen hugepages
build-essential linux-headers-uname -r libmnl0 libmnl-dev
libkmod2 libkmod-dev libnuma-dev libelf1 libelf-dev libc6-dev-i386
autoconf flex bison libncurses5-dev libreadline-dev

Nota: Uno y otro libmnl0 y libmnl-dev son necesarios para reunir y ejecutar gatekeeper, pero sólo libmnl0 es necesario para simplemente pasar gatekeeper. Uno y otro libkmod2 y libkmod-dev son necesarios para reunir y ejecutar gatekeeper, pero sólo libkmod2 es necesario para simplemente pasar gatekeeper. libnuma-dev es necesario para reunir el postrero DPDK y para aposentar sistemas NUMA. El paquete libelf-dev es necesario para reunir DPDK con soporte para adivinar programas BPF desde archivos ELF, pero solo libelf1 es necesario para ejecutarlo. El paquete libc6-dev-i386 es necesario para reunir los programas BPF en la carpeta bpf/. los autoconf, flex, bison, libncurses5-dev, y libreadline-dev Los paquetes son para BIRD. los devscripts El paquete se usa para construir paquetes Gatekeeper Debian.

Para usar DPDK, asegúrese de cumplir con todos los requisitos ambientales.

Repositorio de clonación

Clone el repositorio de Gatekeeper, incluidos los submódulos que contienen dependencias de Gatekeeper:

$ git clone: ​​recursivo http://github.com/AltraMayor/gatekeeper.git

Si no usa el --recursive opción de clonación, debe obtener los submódulos que contienen las dependencias desde adentro de la gatekeeper directorio:

$ git submodule init
$ git submodule aggiornamento

Clasificar

Esta sección explica cómo construir Gatekeeper manualmente. Si desea reunir paquetes Debian, consulte la sección Cómo reunir paquetes.

Mientras en el gatekeeper directorio, ejecute el script de configuración:

PS setup.sh

Este script compila DPDK, LuaJIT y BIRD, y carga los módulos del kernel necesarios. Encima, observancia los nombres de la interfaz y sus respectivas direcciones PCI en el archivo lua/if_map.lua para que los nombres de interfaz se puedan utilizar en los archivos de configuración de Gatekeeper.

Asimismo establece dos variables ambientales: RTE_SDK y RTE_TARGET. Deben configurarse antaño gatekeeper compilará.

Luego de ejecutar el script de configuración, es posible que desee desentenderse las variables ambientales en el archivo de preferencias de su shell. Por ejemplo, en Bash, puede hacer:

$ echo «exportar RTE_SDK = $ {RTE_SDK}» >> $ {HOME} /. perfil
$ echo «exportar RTE_TARGET = $ {RTE_TARGET}» >>
$ {HOME} /. Perfil

De lo contrario, cada vez que inicie sesión, deberá retornar a configurar estas variables ambientales.

Una vez que se compila DPDK y se establecen las variables, gatekeeper se puede reunir:

$ hacer

Configurar adaptadores de red

Ayer gatekeeper puede utilizarse, los adaptadores de red deben estar vinculados a DPDK. Para ello, puede utilizar el script dependencies/dpdk/usertools/dpdk-devbind.py. Por ejemplo:

$ sudo dependencies / dpdk / usertools / dpdk-devbind.py –bind = uio_pci_generic enp131s0f0

Este comando une la interfaz enp131s0f0 en torno a uio_pci_generic compensador para que los marcos se puedan producirse directamente a DPDK en ocasión del kernel. Tenga en cuenta que este enlace debe tener ocasión a posteriori de que Gatekeeper esté configurado en los pasos anteriores para que la interfaz vinculada aparezca en la registro de interfaces lua/if_map.lua.

¿Como pasar?

Una vez gatekeeper está compilado y el entorno está configurado correctamente, ejecute:

$ sudo build / gatekeeper [EAL OPTIONS] – [GATEKEEPER OPTIONS]

Dónde [EAL OPTIONS] se especifican antaño de un línea doble y representan los parámetros para la capa de conceptualización ambiental de DPDK y [GATEKEEPER OPTIONS] se especifican a posteriori del línea doble y representan opciones específicas de Gatekeeper.

La configuración auténtico del sistema, incluida la configuración del dispositivo y la memoria en DPDK, se registrará en stdout. Una vez que se inicia Gatekeeper, toda la información se envía al registro de Gatekeeper.

¿Cómo construir paquetes?

Los paquetes Gatekeeper Debian se pueden construir con los siguientes comandos. Están destinados a ejecutarse desde la raíz del repositorio y suponen que se han extraído los submódulos git y que se han instalado las dependencias de compilación, como se indicó anteriormente. Gatekeeper y los submódulos se compilarán automáticamente durante el proceso de construcción del paquete.

$ tar –exclude-vcs -Jcvf ../gatekeeper_1.0.0.orig.tar.xz -C .. gatekeeper
$ debuild -uc -us

El paquete Gatekeeper estará arreglado en el directorio padre.

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba