Limitation de trafic

Un article de Wiki SOS-ADMIN.

Sommaire

Introduction

Sous Debian il y a un package qui permet de limiter les accès à un serveur de différentes manières. Ce package se nomme libapache-mod-choke.

Pré-requis

Afin de mettre en place ces limitations nous allons installer le package qui va bien (libapache-mod-choke)
Pour l'installer, sur Debian, il suffit de faire:
apt-get install libapache-mod-choke

Le serveur Apache doit être en version 1.3.X et doit être compilé avec le support shared memory. Cela devrait normalement être le cas.

Paramètres

Le paramètrage se fait dans le fichier de configuration d'Apache ou dans les VirtualHost.
Voici un exemple de configuration:

 <IfModule mod_choke.c>
   MaxConnectionsPerIP   4
   MaxConnectionsPerUser 3
 </IfModule>

Autres Directives

Choke

Syntaxe: Choke On|Off
Par défaut: Off
Contexte: config serveur, virtual host, directory, .htaccess
Mis à On, on limite le trafic sortant pour chaque process Apache. Cela n'affecte pas le nombre maximum de connexions concurrentes.


ChokeRate

Syntaxe: ChokeRate BYTES
Par défaut:
Contexte: config serveur, virtual host, directory, .htaccess
Nombre de BYTES limites par seconde et par connexion. Les suffixes 'K' et 'M' peuvent être utilisés pour spécifier des Kilobytes ou des Megabytes. Configuré 0 pour être désactivé.


ChokeRateEnv

Syntaxe: ChokeRateEnv VARIABLE
Par défaut:
Contexte: config serveur, virtual host, directory, .htaccess
Nom de la variable d'environnement pour configurer la valeur de ChokeRate. Voir ChokeRate pour le format utilisé.


ChokeBurst

Syntaxe: ChokeBurst BYTES
Par défaut:
Contexte: config serveur, virtual host, directory, .htaccess
Envoi les premiers BYTES du fichier vers le client à la vitesse maximale. Ceci est utile pour les protocoles de streaming, tels que les vidéos et l'audio car les clients rapides démarreront la lecture du fichier plus rapidement. Vous pouvez utiliser les suffixes 'K' et 'M' pour spécifier Kilobytes ou Megabytes.


ChokeBurstEnv

Syntaxe: ChokeBurstEnv BYTES Par défaut:
Contexte: config serveur, virtual host, directory, .htaccess
Nom de la variable permettant d'avoir la valeur pour ChokeBurst. Voir le paramètre ChokeBurst pour les options de format.


ChokeSummary

Syntaxe: ChokeSummary On|Off
Par défaut: Off
Contexte: config serveur, virtual host, directory, .htaccess
Permet d'avoir un rapport sommaire envoyé vers le log d'erreurs après chaque envoi avec les informations du fichier envoyé, celui à qui il a été envoyé et la vitesse d'envoi. Très utile pour le debugging de config complexe avec différents niveaux de directives.


MaxConnectionsPerIP

Syntaxe: MaxConnectionsPerIP number
Par défaut:
Contexte: config serveur, virtual host
Nombre maximum de connexions concurrentes que chaque IP cliente peut avoir. Dans le cas de 2 serveurs virtuels, si pour chaque serveur le nombre de connexion est configuré à 5, une seule IP peut avoir 5 connexions ouverte vers chaque serveur virtuel pour un total de 10.


MaxConnectionsPerUser

Syntaxe: MaxConnectionsPerUser number
Par défaut:
Contexte: config serveur, virtual host
Nombre maximum de connexions concurrentes qu'un utilisateur authentifié est autorisé à ouvrir pour chaque serveur virtuel.


GlobalMaxConnectionsPerIP

Syntaxe: GlobalMaxConnectionsPerIP number
Par défaut:
Contexte: config serveur
Nombre maximum de connexions concurrentes qu'une seule IP est autorisé à ouvrir sur le serveur apache de façon globale.


GlobalMaxConnectionsPerUser

Syntaxe: GlobalMaxConnectionsPerUser number
Par défaut:
Contexte: config serveur
Nombre maximum de connexions concurrentes qu'un utilisateur est autorisé à ouvrir sur le serveur de façon globale.