Git Product home page Git Product logo

ddos-watchdog's Introduction

ddos-watchdog

DDOS Watchdog est un démon destiné à protéger les serveurs des attaques DDOS basées sur des requêtes valides et anodines.

Principe de fonctionnement:

  • Démarrage du démon: téléchargement et mise à jour de listes blanches (blocs d'adresses IPv4 et IPv6)
    • l'activité du démon est consignée dans syslog (syslog-tag ddos-watchdog)
  • Mise en place d'un lien symbolique vers le fichier de logs à surveiller
  • Si le nombre de lignes dépasse le seuil autorisé sur la période définie:
    • des règles Netfilter sont insérées pour n'autoriser que le trafic provenant du LAN et des listes blanches,
    • le déblocage automatique est planifié,
    • un mail d'alerte est envoyé.

Installation

git clone https://github.com/lspagnol/ddos-watchdog
cd ddos-watchdog
bash install.sh

Pour activer le démon au démarrage du serveur:

update-rc.d -f ddos-watchdog defaults

Configuration

Editer le fichier /usr/local/ddos-watchdog/etc/ddos-watchdog.conf:

###################################################################
# Fichier de log à surveiller
LOG_FILE=/var/log/nginx/access.log

# FACULTATIF: regexp de filtrage supplémentaire (attention simple-quotes obligatoire), ignoré si vide
#FILTER='^.* HTTP/(1|2)\.(0|1)" 403 '

# Commandes iptables "normales"
IPT4="/sbin/iptables -w"
IPT6="/sbin/ip6tables -w"

# Commandes iptables "sérialisées"
# A utiliser si un processus modifie les règles netfilter en arrière plan
# en utilisant "task-spooler" 
#IPT4="/usr/bin/tsp -nf /sbin/iptables"
#IPT6="/usr/bin/tsp -nf /sbin/ip6tables"

###################################################################
# Configuration de l'analyse et du blocage

# Délai d'attente entre deux analyses (secondes)
PERIOD=10

# Nombre max de lignes pendant la période
TRIGGER=2000

# Durée du blocage (minutes)
BLOCKING_DURATION=30

# Activer le blocage pour ces protocoles
ENABLE_IPV4=1
ENABLE_IPV6=1

###################################################################
# Définition des blocs d'adresses en liste blanche

# URL de téléchargement des blocs d'adresses IPv4
DL_URL_IPV4='https://www.ipdeny.com/ipblocks/data/countries/fr.zone'

# Blocs IPv4 à ajouter à la liste
LAN_IPV4="10.0.0.0/8"

# URL de téléchargement des blocs d'adresses IPv6
DL_URL_IPV6='https://www.ipdeny.com/ipv6/ipaddresses/blocks/fr.zone'

# Blocs IPv6 à ajouter à la liste
LAN_IPV6="fe80::/10"

###################################################################
# Divers

# Destinataires mail d'alerte
MAIL_DESTS="[email protected] [email protected]"

# Mode DEBUG
# 0: fonctionnement normal
# 1: alerte mail uniquement, pas de mise en place du blocage
# 2: pas d'alerte mail ni de blocage (permet de surveiller l'activité dans Syslog)
DEBUG=0

Tester la configuration:

ddos-watchdog test

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.