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.