Apache
- "no space left on device"
- Exemple robots.txt
- Exemples de règles Rewrite
- Activation et explication de server-status
- Redirection pour maintenance, vers un autre serveur ou localement
- Apache mod security, mod evasive : limitation du traffic, protection anti-DDOS
"no space left on device"
Si apache ne redémarre pas avec cette erreur dans l'error_log :
[core:emerg] [pid 27864] (28)No space left on device: AH00023: Couldn't create the ssl-cache mutex
AH00016: Configuration Failed
c'est que des semaphores sont restés coincés et que le système atteint son max. Voir les sémaphores :
ipcs -s
Pour les libérer :
for i in `ipcs -s | awk '/apache/ {print $2}'`; do (ipcrm -s $i); done
La raison peut être que systemctl fait un kill pour stopper apache et ce n'est pas propre. Apachectl fait ça mieux apparemment, mais pour régler le problème de systemd/systemctl s'il devient récurrent, on peut ajouter la commande ipcrm au script /etc/systemd/system/multi-user.target.wants/httpd.service :
ExecStartPre=/bin/sh -c "for i in `ipcs -s | awk '/apache/ {print $2}'`; do (ipcrm -s $i); done"
Si nécessaire (système très chargé qui a besoin de beaucoup de processus apache) on peut étendre la limite aussi dans /etc/systcl.conf en doublant les chiffres :
kernel.sem = 500 512000 64 2048
puis
sysctl -p
Exemple robots.txt
Exemple de fichier robots.txt
http://www.arnold-soft.de/robots.txt
# BotDoku: de.wetena.com/bot # Doku: www.robotstxt.org # erlaubte robots # google.com Googlebot # bing.com bingbot # msn.com # MSIE # info@netcraft.com # Hier ein Liste der unerwuenschten robots # Yandex # www.infohelfer.de # warebay.com # thunderstone.com # pixray.com # aihit.com # ips-agent # MALC # metadatalabs.com User-agent: MLBot Disallow: / # Ahrefs.com (http://ahrefs.com/robot/) # IP 5.10.83.36 # "Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://ahrefs.com/robot/)" user-agent: AhrefsBot disallow: / # ezooms.bot User-agent: Ezooms Disallow: / # domaintools.com User-agent: SurveyBot Disallow: / # www.infohelfer.de User-agent: Infohelfer Disallow: / # www.pixray.com User-agent: Pixray* Disallow: / # warebay.com User-agent: WBSearchBot Disallow: / # aihit.com User-agent: aiHitBot Disallow: / # yandex.com YandexBot YandexImages # IP 141.8.147.17 # "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" User-agent: YandexBot Disallow: / User-agent: YandexImages Disallow: / # U User-agent: U Disallow: / # unister.de User-agent: UnisterBot Disallow: / # www.Nutch.de # IP 62.146.2.234, 117.78.13.18 # "Domnutch-Bot/Nutch-1.0 (Domnutch; http://www.Nutch.de/)" User-agent: nutch-1.4 Disallow: / User-agent: discobot Disallow: / # SEO Spider spider@spiderlytics.com # IP 5.199.136.130 # "Mozilla/5.0 (compatible; Spiderlytics/1.0; +spider@spiderlytics.com)" User-agent: Spiderlytics Disallow: / # Unknown # IP 207.241.226.239 # "ia_archiver(OS-Wayback)" User-agent: ia_archiver Disallow: / # crawler@alexa.com # IP 204.236.235.245 # "ia_archiver (+http://www.alexa.com/site/help/webmasters; crawler@alexa.com)" User-agent: alexa Disallow: / # Unknown # IP 108.59.8.70 # "Mozilla/5.0 (compatible; MJ12bot/v1.4.4; http://www.majestic12.co.uk/bot.php?+)" User-agent: MJ12bot Disallow: / # http://go.mail.ru/help/robots # IP 217.69.133.253 # "Mozilla/5.0 (compatible; Linux x86_64; Mail.RU_Bot/2.0; +http://go.mail.ru/help/robots)" User-agent: Mail.RU_Bot Disallow: / # macinroy.com # IP 85.25.137.24 # "MacInroy Privacy Auditors. See jarnold.org's privacy violation report: http://jarnold.org.macinroy.com/jarnold.org" User-agent: MacInroy Disallow: / # www.semrush.com/bot.html # IP 46.229.164.102 # "Mozilla/5.0 (compatible; SemrushBot/0.97; +http://www.semrush.com/bot.html)" User-agent: SemrushBot Disallow: / # http://www.icjobs.de # IP 85.25.71.40 # "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.0.1; compatible; iCjobs Stellenangebote Jobs; http://www.icjobs.de) Gecko/20100401 iCjobs/3.2.3" User-agent: iCjobs Disallow: / # http://fulltext.sblog.cz # IP 77.75.77.32 # "SeznamBot/3.0 (+http://fulltext.sblog.cz/)" User-agent: SeznamBot Disallow: / # http://webmeup-crawler.com # IP 108.178.53.146 # "Mozilla/5.0 (compatible; BLEXBot/1.0; +http://webmeup-crawler.com/)" User-agent: BLEXBot Disallow: / # http://siteexplorer.info # IP 208.43.225.84 # "Mozilla/5.0 (compatible; SiteExplorer/1.0b; +http://siteexplorer.info/)" User-agent: SiteExplorer Disallow: / # www.linkdex.com/about/bots # IP 54.242.123.170, 23.22.229.75, 54.225.52.217 23.20.126.233 # "Mozilla/5.0 (compatible; linkdexbot/2.0; +http://www.linkdex.com/about/bots/)" User-agent: linkdexbot Disallow: / # www.wotbox.com/bot # IP 81.144.138.34 # "Wotbox/2.01 (+http://www.wotbox.com/bot/)" User-agent: Wotbox Disallow: / # http://www.domaintuno.com # IP 192.96.204.42 # "http://www.domaintuno.com/whois/jarnold.org" "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)" User-agent: domaintuno Disallow: / # unknown addressendeutschland.de # IP 86.109.249.174 # "http://arnold-soft.de/" "dubaiindex (addressendeutschland.de)" User-agent: dubaiindex Disallow: / # www.pagesinvenotry.com # IP 130.185.109.243 # "PagesInventory (robot http://www.pagesinvenotry.com)" User-agent: PagesInventory Disallow: / # www.abonti.com # IP 77.233.225.115 # "Mozilla/5.0 (compatible; Abonti/0.91 - http://www.abonti.com)" User-agent: Abonti Disallow: / # www.backlinktest.com/crawler.html # IP 46.4.100.231 # "BacklinkCrawler (http://www.backlinktest.com/crawler.html)" User-agent: BacklinkCrawler Disallow: / # http://netcomber.com # IP 54.227.175.17 # "NCBot http://netcomber.com?st=ba2Tool for finding all their domain names." User-agent: NCBot Disallow: / # Unknown # IP 69.58.178.58 # "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:14.0; ips-agent) Gecko/20100101 Firefox/14.0.1" User-agent: ips-agent Disallow: / # www.grapeshot.co.uk/crawler.php # IP 89.145.95.2 # "Mozilla/5.0 (compatible; GrapeshotCrawler/2.0; +http://www.grapeshot.co.uk/crawler.php)" User-agent: GrapeshotCrawler Disallow: / # www.80legs.com/webcrawler.html # IP 64.125.222.16 # "Mozilla/5.0 (compatible; 008/0.83; http://www.80legs.com/webcrawler.html;) Gecko/2008032620" User-agent: 008/0.83 Disallow: / User-agent: 008/0.85 Disallow: / # it2media.de # IP 86.109.249.169 # "it2media-domain-crawler/1.0 on crawler-prod.it2media.de" User-agent: it2media-domain-crawler Disallow: / # http://crawler.sistrix.net # IP 176.9.148.197, IP 176.9.155.226, 5.9.112.66 # "Mozilla/5.0 (compatible; SISTRIX Crawler; http://crawler.sistrix.net/)" User-agent: SISTRIX Disallow: / # www.picsearch.com/bot.html # IP 217.212.224.183 # "psbot/0.1 (+http://www.picsearch.com/bot.html)" User-agent: psbot Disallow: / # worio.com # IP 107.22.250.59 # "Mozilla/5.0 (compatible; woriobot +http://worio.com)" User-agent: woriobot Disallow: / # semantissimo.de # IP 88.198.24.173 # "ssearch_bot (sSearch Crawler; http://www.semantissimo.de)" User-agent: sSearch Disallow: / # www.archive.org/details/archive.org_bot # IP 207.241.237.102 + .103 (abwechselnd!) + 207.241.226.234 # Mozilla/5.0 (compatible; archive.org_bot; Wayback Machine Live Record; +http://archive.org/details/archive.org_bot)" User-agent: archive.org_bot Disallow: / # +spider@waybackarchive.org # IP 5.199.136.130 # "Mozilla/5.0 (compatible; waybackarchive.org/1.0; +spider@waybackarchive.org)" User-agent: waybackarchive.org Disallow: / # www.website-datenbank.de # IP 81.209.177.145 # "netEstate NE Crawler (+http://www.website-datenbank.de/)" User-agent: netEstate Disallow: / # www.compspy.com/spider.html # IP 68.47.129.55 # "Mozilla/5.0 (compatible; CompSpyBot/1.0; +http://www.compspy.com/spider.html)" User-agent: CompSpyBot Disallow: / # www.seoprofiler.com/bot # IP 198.199.89.149, 162.243.203.202 # "Mozilla/5.0 (compatible; spbot/4.1.0; +http://OpenLinkProfiler.org/bot )" User-agent: spbot Disallow: / # http://filterdb.iss.net/crawler/ # IP 206.253.226.18 # "Mozilla/5.0 (compatible; oBot/2.3.1; http://filterdb.iss.net/crawler/)" User-agent: oBot Disallow: / # http://www.baidu.com # 183.60.243.187 # "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0" User-agent: baidu Disallow: / # http://www.exabot.com/go/robot # IP 178.255.215.69 # "Mozilla/5.0 (compatible; Exabot/3.0; +http://www.exabot.com/go/robot)" User-agent: Exabot Disallow: / # www.tiscali.it # IP 217.73.208.103 # "Mozilla/5.0 (compatible; IstellaBot/1.18.81 +http://www.tiscali.it/)" User-agent: IstellaBot Disallow: / # www.netseer.com/crawler.html # IP 75.98.9.250 # "Mozilla/5.0 (compatible; NetSeer crawler/2.0; +http://www.netseer.com/crawler.html; crawler@netseer.com)" User-agent: NetSeer Disallow: / # http://www.opensiteexplorer.org/dotbot, help@moz.com # IP 208.115.113.92 # "Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensiteexplorer.org/dotbot, help@moz.com)" User-agent: DotBot Disallow: / # http://www.proximic.com/info/spider.php# IP 54.211.1.18 # "Mozilla/5.0 (compatible; proximic; +http://www.proximic.com/info/spider.php)" User-agent: proximic Disallow: / # http://commoncrawl.org/faq/ # IP 54.227.12.4 # "CCBot/2.0 (http://commoncrawl.org/faq/)" User-agent: CCBot Disallow: / # # IP 130.211.186.147, 146.148.35.52 # "GET / HTTP/1.0" 200 10064 "-" "NerdyBot" User-agent: NerdyBot Disallow: / # http://semalt.semalt.com/crawler.php # IP 187.79.214.121 # "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36" #User-agent: xxx #Disallow: / # # IP 69.84.207.246 # "LSSRocketCrawler/1.0 LightspeedSystems" User-agent: LSSRocketCrawler Disallow: / # ??? # 50.17.21.141 # "Cliqzbot" User-agent: Cliqzbot Disallow: / User-agent: Mediapartners-Google* Disallow: / # standard Einstellungen User-agent: * Disallow: /atd/ Disallow: /backup/ Disallow: /files/ Disallow: /log/ Disallow: /phptmp/ Disallow: /restore/ Disallow: /html/_media/ Disallow: /html/media/images/ Disallow: /html/media/Scripting/ Disallow: /html/cgi-bin/ Disallow: /html/mediawiki/ # Allow: /html/ # Allow: /html/media/files/
Exemples de règles Rewrite
Charger le module Rewrite dans httpd.conf :
LoadModule rewrite_module modules/mod_rewrite.so AddModule mod_rewrite.c
Dans chaque VirtualHost qui doit avoir des règles de réécriture, activer le rewriting par
RewriteEngine on
Rediriger le traffic HTTP vers HTTPS
A l'intérieur du bloc <VirtualHost xx.xx.xx.xx:80> ajouter :
RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^/(.*) https://<'''URL du site HTTPS'''>/$1 [L,R] RewriteOptions inherit
Signifie :
- Condition = tout ce qui n'est pas à destination du port 443
- Règle = est redirigé vers https://<'''URL du site HTTPS'''>, et ce qui suit le "/" (^/(.*)) après le nom de virtualhost est copié tel quel dans la redirection ($1)
Réécrire le nom des pages
RewriteRule ^test\.html$ /test.php [L]
Transforme par exemple le nom test.html (le nom commence par test ("^test"), puis un point (échappé grâce à l'anti-slash pour qu'il soit interprété comme le caractère "." et pas autre chose), et finit par html (html$)) en /test.php.
RewriteRule ([a-z]+)/([a-z]+)\.php$ /frames.php?page=$1&view=$2
http://votresite.com/index/source.php tapé dans le navigateur deviendra http://votresite.com/frames.php?page=index&view=source sur le serveur
RewriteRule ([0-9]+)/([0-9]+)$ /photo.php?album=$1&id=$2
http://votresite.com/photo/12/1 dans le navigateur deviendra http://votresite.com/photo.php?album=12&id=1 sur le serveur
Le format des expressions ("[a-z]", "[0-9]"...) correspond aux expressions régulières (ou "regex").
Flags
Quelques notes sur les flags :
- [NC] indique "No Case" dans les condition : majuscules/minusciles non prises en compte
- [L] signifie "Last rule" : la réécriture s'arrête là, pour éviter qu'une autre règle qui suit n'altère celle-ci. Exemple :
RewriteCond %{HTTP_USER_AGENT} ^Mozilla RewriteRule ^/$ /homepage.max.html [L] RewriteCond %{HTTP_USER_AGENT} ^IE RewriteRule ^/$ /homepage.min.html [L] RewriteRule ^/$ /homepage.std.html [L]
- [R] ou [R=code] signifie "Redirect", redirection externe. Sans ce flag, mod_rewrite supprime le "http://<nom du vhost>" dans la redirection et ne garde que la fin. Pour rediriger vers un site externe, ou un autre site interne (autre virtualhost) ou de http à https, ajouter [R] pour qu'il laisse l'URL complète. Le code par défaut retourné au navigateur est 302 (Moved temporarily), on peut forcer un autre code avec [R=code].
Activation et explication de server-status
Permet d'avoir le statut du serveur et de ses modules
Utile aussi pour plugins munin apache_*
Le status est accessible via http://127.0.0.1/server-status, ou server-status?auto. Le localhost est suffisant pour l'accès local du plugin munin, pas besoin de l'ouvrir au monde.
Debian
Activer le module status (activé par défaut dur Debian 6 Squeeze)
a2enmod status
Munin-node a besoin de libwww-perl pour accéder au server-status:
apt-get install libwww-perl
Autoriser l'accès : modifier /etc/apache2/apache2.conf, décommenter :
<IfModule mod_status.c> # # Allow server status reports generated by mod_status, # with the URL of http://servername/server-status # Change the ".example.com" to match your domain to enable. # <Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from 127.0.0.1 ::1 # Allow from 192.0.2.0/24 </Location>
Et :
# Keep track of extended status information for each request ExtendedStatus On
Recharger Apache
/etc/init.d/apache2 reload
CentOS
Le module mod_status est chargé par défaut.
Modifier /etc/httpd/conf/httpd.conf comme ci-dessus. Ajouter l'option
Allow from 127.0.0.1
à la place de "Allow from .example.com".
Un paquet est requis par mod_status :
yum install links
Recharger Apache.
/etc/init.d/httpd reload
Tester
Test local avec lynx :
lynx localhost/server-status
Explication server-status Apache
Informations affichées sur la page server-status d'Apache
État général du serveur
__Current Time: Monday, 06-Oct-2003 15:40:29 CEST
Restart Time: Monday, 06-Oct-2003 15:20:48 CEST
Parent Server Generation: 0
Server uptime: 19 minutes 41 seconds
Total accesses: 758 - Total Traffic: 4.0 MB
CPU Usage: u.79 s.41 cu.14 cs.14 - .125% CPU load
.642 requests/sec - 3595 B/second - 5.5 kB/request
5 requests currently being processed, 20 idle servers__
Ici, on peut savoir que le serveur Apache est lancé depuis 19 minutes (donc il a été redemarré récemment), que le CPU est très peu utilisé (moins de 1%), qu'en moyenne, il y a 0.642 web requêtes par seconde, que le trafic généré est de 3595 octets par seconde (faible) et qu'en moyenne les requêtes font 5.5Ko, et qu'actuellement, il y a 5 requêtes en cours de traitement et 20 slots libres pour les futures connexions.
Les slots :
Apparaît ensuite un tableau de caractères représentant chacun un slot (ou plutôt son état). Un "slot" Apache représente un des processus serveur dont la tâche est de répondre aux requêtes des navigateurs :
_KWK__K_K.......................................
................................................................
................................................................
................................................................
................................................................
Chaque symbole represente un état du slot Apache :
. : Aucune activité (n'occupe rien en mémoire).
_: le Slot est en attente de connexion.
S : le Slot est en cours de démarrage.
R : le Slot lit la requête du client.
W : le Slot envoie le contenu/résultat demandé au client (cet état peut-être long et donc gêner le serveur si vous mettez des fichiers à télécharger par le web au lieu de FTP).
K : le Slot a terminé son travail, mais reste actif en cas de requête du même client pour répondre rapidement (KeepAlive).
D : le Slot fait un requête DNS pour trouver le host du client (peut être gênant en cas de serveur DNS lent... peut-être désactivé avec : Hostname Lookups off dans la config apache).
L : le Slot est en train d'écrire dans le fichier de log. Si cette opération dure trop longtemps ou qu'il y a beaucoup de Slot dans cet état, il y a peut-être un problème avec les logs (un logs excédant les 2Go par exemple).
G : état rarement visible, c'est uniquement quand le Slot meurt car devenu inutile.
Tache effectué par les Slots
Le serveur-status se termine avec un tableau plus ou moins grand suivant le nombre de Slots actifs.
Vous pouvez y voir ces colonnes (pour les plus importantes) :
PID : le PID système du slot en question (qui correspond au numéro de processus Apache).
M : status (Mode) du Slot (la signification est celle décrite précédemment).
CPU : nombre de secondes réel d'utilisation du CPU pour traiter la requête.
SS : nombre de secondes depuis la dernière action du Slot (Temps d'inactivité).
Req : nombre de millisecondes pour traiter la dernière requête.
Slot : nombre de Ko transféré par ce slot... intéressant pour voir un script tournant en boucle et envoyant des Mo inutilement... ou pour détecter l'utilisation du serveur Web pour faire des téléchargements qui auraient plus leur place sur un FTP anonyme.
Host : l'adresse IP ou le nom de machine du visiteur.
VHost : le Site demandé par le visiteur.
Request : la requête effectuée (généralement : GET /repertoire/fichier.php HTTP/1.1 par exemple).
Redirection pour maintenance, vers un autre serveur ou localement
redirection vers un autre site
Remplacer le contenu de l'index.php par :
<? header("Location: http://www.example.com");
La casse est importante !
Par définition, NE PAS FERMER LA BALISE PHP ( ?> ) pour éviter les messages "Header already sent".
Redirection pour maintenance
Créer une page maintenance.html à la racine du site. Puis mettre dans le vhost ou un .htaccess :
RewriteEngine on RewriteCond %{REQUEST_URI} !/maintenance.html$ RewriteCond %{REMOTE_HOST} !^117\.201\.1\.154 RewriteRule $ /maintenance.html [R=302,L]
La condition "!^117\.201\.1\.154" permet d'y mettre une adresse IP qui ne sera pas concernée par la page de maintenance : on pourra donc tester le site via cette IP.
Apache mod security, mod evasive : limitation du traffic, protection anti-DDOS
Mod_security est un "web application firewall" (WAF) et un IDS/IPS pour les applications web. Il surveille le traffic HTTP en temps réel et protège les applications web des attaques "brute force". Il peut utiliser les règles Open Web Application Security Project (OWASP) Core Rules Set (CRS), mais celles-ci sont vraiment strictes. Il filtre et modifie la réponse renvoyé par le serveur web (exemple, erreur 404 ou 500).
Mod_evasive est un module Apache pour contrer les attaques DoS (Denial of Service). Il est par exemple capable de détecter lorsqu'un utilisateur demande un trop grand nombre de pages sur un site web, sur un délai de temps très court, et de bloquer son IP par iptables, par exemple (et par défaut, d'ailleurs :) ).
Installation
Sur CentOS/BlueOnyx : Déclarer le dépôt EPEL (Dépôts_complémentaires), puis
yum install --enablerepo=epel mod_evasive mod_security
Note : mod_security_crs mod_security_crs-extras (règles CRS) sont beaucoup trop restrictifs et occasionnent trop de faux-positifs.
Configuration basique
mod_security
La configuration mod_security se trouve dans /etc/httpd/conf.d/mod_security.conf, et éventuellement dans modsecurity.d/*.conf et modsecurity.d/activated_rules/*.conf pour des règles additionnelles.
Ici on va juste le configurer pour intercepter les fichiers uploadés et les envoyer à Linux Malware Detect (maldet) qui les scannera.
Modifier /etc/httpd/conf.d/mod_security.conf :
1. S'assurer que le module est activé
SecRuleEngine On SecRequestBodyAccess On SecResponseBodyAccess Off
2. Mettre en place la surveillance des uploads par HTTP :
# Handling of file uploads # TODO Choose a folder private to Apache. SecUploadDir /var/lib/mod_security/ SecUploadKeepFiles On SecUploadFileLimit 10
Et on ajoute en-dessous :
SecRule FILES_TMPNAMES "@inspectFile /usr/local/maldetect/modsec.sh" \ "log,auditlog,deny,severity:2,phase:2,t:none,msg:'Malicous File Attachment Identified.'" # Maximum request body size we will accept for buffering
3. Augmenter la mémoire allouée à mod_security :
SecRequestBodyLimit 1124288 # Store up to 1MB in memory SecRequestBodyInMemoryLimit 1124288 # Buffer response bodies of up to SecResponseBodyLimit 1124288
Et commenter :
# Did we see anything that might be a boundary? #SecRule MULTIPART_UNMATCHED_BOUNDARY "!@eq 0" \ #"phase:2,t:none,log,deny,msg:'Multipart parser detected a possible unmatched boundary.'"
car la plupart des sites la déclenche inopinément !
Si un site pose vraiment problème (exemple : MediaWiki n'aime pas du tout mod_security, et c'est réciproque), ajouter dans la configuration du vhost (sur blueonyx, dans siteXX.include):
<IfModule mod_security2.c> SecRuleEngine Off </IfModule>
mod_evasive
La configuration de Mod_evasive se trouve dans le fichier /etc/httpd/conf.d/mod_evasive.conf. Exemple de configuration :
<IfModule mod_evasive20.c> DOSHashTableSize 3097 # Pas plus de 2 pages par seconde, 150 requêtes (images, css, ...) par site DOSPageCount 2 DOSPageInterval 1 DOSSiteCount 150 DOSSiteInterval 1 # Periode en seconde pendant laquelle on bloque le client DOSBlockingPeriod 600 # Et par exemple : DOSWhitelist 66.249.65.* DOSWhitelist 66.249.66.* DOSWhitelist 66.249.71.* </IfModule>
On relance le serveur Apache pour prendre en compte les modifications :
/etc/init.d/httpd restart
TIPS
Tests
Pour tester le module, on peut mettre des valeurs assez faibles et regarder ce qui se passe. Normalement, toutes les images des sites visités ne s'afficheront pas et le dossier /tmp devrait se remplir d'IP blacklistées.
Paramètres
- DOSHashTableSize : Taille de la table hash, plus grande est la valeur, plus de mémoire sera necessaire pour parcourir la table, plus la valeur sera petite, plus le parcourt de la table sera rapide. Laissez la valeur par défaut.
- DOSPageCount Nombre de requête pour une même page dans l'intervale DOSPageInvernal, au delà, l'IP est bloquée.
- DOSSiteCount Pareil qu'au dessus mais pour un site au lieu d'une page.
- DOSPageInterval Intervalle du nombre de pages en secondes.
- DOSSiteInterval Intervalle du nombre de sites par secondes.
- DOSBlockingPeriod Période en seconde pendant laquelle l'IP sera bloquée (vous recevrez un forbidden).
- DOSWhitelist Permet de mettre des IP en liste blanche, dans notre exemple ci-dessus, ce sont des IP du bot Google.
- DOSSystemCommand Permet d'exécuter une commande, ici on peut lancer un script iptables
(exemple : DOSSystemCommand "sudo iptables -A INPUT -s %s -j DROP")