Apache optimisation et sécurisation (attaques DoS)
11 messages
• Page 1 sur 1
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
- flipou
- Nouveau WRInaute

- Messages: 4
- Inscription: 6 Sep 2007
Apache optimisation et sécurisation (attaques DoS)
bonjour à tous,
voila ont a un Dédié chez Dedibox "PRO R210 4x 1.86GHz, 64 Bits, 16 Go DDR3 ECC",
quelques stats : environs 7 000 visiteurs / jours, jusqu'à 230 visiteurs simultané
CPU load averages : 0.12(1 mins) , 0.15 (5 mins) , 0.09 (15 mins)
1) voila ma configuration Apache, pensez-vous quelle est bien adapté ?
Timeout 120
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
2) Ont a connu des gros ralentissement du systeme surement du à des attaques et je voulais installer le mod_evasive est ce une bonne idée sur une boutique en ligne ?
Merci à tous pour vos remarques !
voila ont a un Dédié chez Dedibox "PRO R210 4x 1.86GHz, 64 Bits, 16 Go DDR3 ECC",
quelques stats : environs 7 000 visiteurs / jours, jusqu'à 230 visiteurs simultané
CPU load averages : 0.12(1 mins) , 0.15 (5 mins) , 0.09 (15 mins)
1) voila ma configuration Apache, pensez-vous quelle est bien adapté ?
Timeout 120
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
2) Ont a connu des gros ralentissement du systeme surement du à des attaques et je voulais installer le mod_evasive est ce une bonne idée sur une boutique en ligne ?
Merci à tous pour vos remarques !
- benz69fr
- WRInaute occasionnel

- Messages: 349
- Inscription: 2 Mar 2006
Re: Apache optimisation et sécurisation (attaques DoS)
Salut,
De mon point de vue la conf' apache importe peu par rapport à la conf mysql et l’optimisation du code alliée à la mise en cache d'un maximum de chose. Concernant ton extrait de conf, il me semble que apache est compilé en prefork ou en worker mais pas les deux donc tu ne peux jouer que sur l'un des deux tableaux.
De mon point de vue la conf' apache importe peu par rapport à la conf mysql et l’optimisation du code alliée à la mise en cache d'un maximum de chose. Concernant ton extrait de conf, il me semble que apache est compilé en prefork ou en worker mais pas les deux donc tu ne peux jouer que sur l'un des deux tableaux.
- flipou
- Nouveau WRInaute

- Messages: 4
- Inscription: 6 Sep 2007
Re: Apache optimisation et sécurisation (attaques DoS)
en fait si j'attire l'attention sur apache c'est que lorsque qu'on a connu des plantages KeepAlive était sur On et les Process Apache explosaient jusqu'a occuper toutes les ressources machine, et Mysql ne fermait plus ses Proccess, (un Pb souvent évoqué sur le Web, mais sans vrai Soluces...) j'ai deja rencontré le PB à 8h00 du matin avec 25 visiteurs, et sans souci avec 200, c'est pour cela que j'essai de verouiller tous ca...
- benz69fr
- WRInaute occasionnel

- Messages: 349
- Inscription: 2 Mar 2006
Re: Apache optimisation et sécurisation (attaques DoS)
KeepAlive à On permet généralement d'améliorer les performances mais peut-être un goulet d'étranglement en cas de forte charge, à mon avis, si ton site tourne sans, c'est bien comme ça. (d'autant que ton "top" montre que le serveur est serein) sinon, avec KeepAlive à On tu devrais baisser timeout de 15s qui est le temps par défaut mais qui peut-être ramené à 5 par exemple
- jcaron
- WRInaute accro

- Messages: 2685
- Inscription: 13 Fév 2004
Re: Apache optimisation et sécurisation (attaques DoS)
Avant de changer quelque chose, il serait utile de déterminer quel est le problème. Si un serveur est lent, ça peut venir de plusieurs choses différentes:
- tu n'as pas assez de RAM, ça swappe (cf top)
- tu as trop d'accès à tes disques durs et ils saturent
- tu est bloqué par des limites "soft" (nombre de processus...)
Pas assez de RAM c'est en général lié à un problème de config Apache. Trop d'accès disque c'est en général lié à des requêtes SQL mal optimisées. Les limites "soft" c'est lié essentiellement à la config Apache, éventuellement des paramètres système.
S'il y avait une config Apache idéale, il n'y aurait pas de fichier de config
Les valeurs idéales des paramètres que tu indiques dépendent beaucoup du reste de ta config Apache, en particulier la façon dont php est configuré (mod_php, suphp, etc.).
Les deux problèmes les plus classiques concernant le nombre de processus et les keep-alives sont:
- que tu te retrouves avec Apache+php qui bouffe plus de RAM que tu n'en as dans ta machine
- que tu satures le nombre de processus à cause des keep-alives.
Pour configurer Apache de façon idéale, il te faut:
- un top complet
- un ps axl
- un statut Apache (il faut que mod_status soit activé)
Il te faut ces infos "en temps normal" et au moment où ton serveur te semble le plus chargé.
Top t'indiquera tout plein d'autres paramètres que juste le load average, en particulier la RAM utilisée, si la machine swappe, etc. top et ps te permettent de mesurer le nombre de processus et surtout leur taille. Le statut Apache te permettra de voir l'utilisation des processus.
Si la machine swappe, la première chose à faire consiste à limiter le nombre de processus total en fonction de la RAM dispo (en n'oubliant pas de garder de la marge pour l'OS, mysql, le cache de l'OS, etc.) et de la taille des processus (Apache + php). Si par exemples tu utilises mod_php et que chaque processus Apache fait 100 Mo après quelques requêtes, alors 256 processus c'est 256 x 100 = 25.6 Go, ce qui ne rentre pas dans 16 Go. C'est plus ou moins compliqué dans les autres cas (suphp etc.).
Si tu satures ta table de processus Apache, ça peut venir des keepalives qui risquent de "bloquer" un slot pendant de longues secondes pour rien. Plutôt que de désactiver complètement, il suffit souvent de réduire le KeepAliveTimeout (15 secondes c'est très long).
Dans certains cas de figure, il peut être pertinent d'avoir deux serveurs http: l'un pour servir les requêtes dynamiques (gros processus, nombre limité, pas de keepalives), l'autre pour les requêtes statiques (processus allégé au maximum, nombre plus élevé, keepalives).
Evidemment, il peut y avoir beaucoup d'autres problèmes possibles (mysql, attaques...), mais sans plus d'infos, c'est difficile voire impossible à diagnostiquer.
Jacques.
- tu n'as pas assez de RAM, ça swappe (cf top)
- tu as trop d'accès à tes disques durs et ils saturent
- tu est bloqué par des limites "soft" (nombre de processus...)
Pas assez de RAM c'est en général lié à un problème de config Apache. Trop d'accès disque c'est en général lié à des requêtes SQL mal optimisées. Les limites "soft" c'est lié essentiellement à la config Apache, éventuellement des paramètres système.
S'il y avait une config Apache idéale, il n'y aurait pas de fichier de config
Les valeurs idéales des paramètres que tu indiques dépendent beaucoup du reste de ta config Apache, en particulier la façon dont php est configuré (mod_php, suphp, etc.).
Les deux problèmes les plus classiques concernant le nombre de processus et les keep-alives sont:
- que tu te retrouves avec Apache+php qui bouffe plus de RAM que tu n'en as dans ta machine
- que tu satures le nombre de processus à cause des keep-alives.
Pour configurer Apache de façon idéale, il te faut:
- un top complet
- un ps axl
- un statut Apache (il faut que mod_status soit activé)
Il te faut ces infos "en temps normal" et au moment où ton serveur te semble le plus chargé.
Top t'indiquera tout plein d'autres paramètres que juste le load average, en particulier la RAM utilisée, si la machine swappe, etc. top et ps te permettent de mesurer le nombre de processus et surtout leur taille. Le statut Apache te permettra de voir l'utilisation des processus.
Si la machine swappe, la première chose à faire consiste à limiter le nombre de processus total en fonction de la RAM dispo (en n'oubliant pas de garder de la marge pour l'OS, mysql, le cache de l'OS, etc.) et de la taille des processus (Apache + php). Si par exemples tu utilises mod_php et que chaque processus Apache fait 100 Mo après quelques requêtes, alors 256 processus c'est 256 x 100 = 25.6 Go, ce qui ne rentre pas dans 16 Go. C'est plus ou moins compliqué dans les autres cas (suphp etc.).
Si tu satures ta table de processus Apache, ça peut venir des keepalives qui risquent de "bloquer" un slot pendant de longues secondes pour rien. Plutôt que de désactiver complètement, il suffit souvent de réduire le KeepAliveTimeout (15 secondes c'est très long).
Dans certains cas de figure, il peut être pertinent d'avoir deux serveurs http: l'un pour servir les requêtes dynamiques (gros processus, nombre limité, pas de keepalives), l'autre pour les requêtes statiques (processus allégé au maximum, nombre plus élevé, keepalives).
Evidemment, il peut y avoir beaucoup d'autres problèmes possibles (mysql, attaques...), mais sans plus d'infos, c'est difficile voire impossible à diagnostiquer.
Jacques.
- flipou
- Nouveau WRInaute

- Messages: 4
- Inscription: 6 Sep 2007
Re: Apache optimisation et sécurisation (attaques DoS)
Merci pour cette réponse qui donne des pistes...,
comme tu l'indiques les PB peuvent etres lié à bcp de choses diffierentes et surtout qu'il n'y pas de conf Apache idéal
.
s'il y a un prochain plantage je ferais un copier collé du Top.
Merci,
Franck
comme tu l'indiques les PB peuvent etres lié à bcp de choses diffierentes et surtout qu'il n'y pas de conf Apache idéal
s'il y a un prochain plantage je ferais un copier collé du Top.
Merci,
Franck
- _Soul
- WRInaute impliqué

- Messages: 502
- Inscription: 26 Avr 2011
Re: Apache optimisation et sécurisation (attaques DoS)
Salut,
Ce serais pas plus simple de stopper l'attaque avant la couche logicielle, c'est à dire avec les iptables? Il y a moyen de limite le nombre de requête par ip
Apache est beaucoup plus lent et c'est pas vraiment les même ressources utilisé. Sinon, au pire prend un firewall mais ça va te coûter relativement cher...
Ce serais pas plus simple de stopper l'attaque avant la couche logicielle, c'est à dire avec les iptables? Il y a moyen de limite le nombre de requête par ip
- flipou
- Nouveau WRInaute

- Messages: 4
- Inscription: 6 Sep 2007
Re: Apache optimisation et sécurisation (attaques DoS)
je n'ai pas la preuve que ces plantages sont dû à des attacks, rien de particulier des les logs à ces moments la...
Mais tres souvent je vois des tentatives ds les log erreur apache avec des Ip de Roumanie, Pologne Chine....
et comment un serveur peux tourner comme une horologe pendant des jours avec le même trafic et les même requetes Sql,
et planter(machine très occuper presque inaccessible) pendant 5 minutes à 8h00 du matin ? il se passe forcement des choses louche et ce n'est pas les taches Crons
Mais tres souvent je vois des tentatives ds les log erreur apache avec des Ip de Roumanie, Pologne Chine....
et comment un serveur peux tourner comme une horologe pendant des jours avec le même trafic et les même requetes Sql,
et planter(machine très occuper presque inaccessible) pendant 5 minutes à 8h00 du matin ? il se passe forcement des choses louche et ce n'est pas les taches Crons
- _Soul
- WRInaute impliqué

- Messages: 502
- Inscription: 26 Avr 2011
Re: Apache optimisation et sécurisation (attaques DoS)
Une attaque (D)Dos, sa dure pas 5min et ça mettrais ton serveur en rade à mon avis.
Il y a des softs -sous linux- de détection de faille sur un site (le tiens légalement ^^), je te conseille de rechercher un peu sur google, il y en a un en 4 lettres avec 1 chiffre qui fonctionne plutôt bien
Sinon avant que ça plante tu peux nous faire voir les logs en bouillant les ips s'tu veux.
Il y a des softs -sous linux- de détection de faille sur un site (le tiens légalement ^^), je te conseille de rechercher un peu sur google, il y en a un en 4 lettres avec 1 chiffre qui fonctionne plutôt bien
Sinon avant que ça plante tu peux nous faire voir les logs en bouillant les ips s'tu veux.
11 messages
• Page 1 sur 1
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Séminaire URL Rewriting et sites dynamiques
- Google rachète Widevine (optimisation vidéo et DRM)
- Suite de l'article sur le fichier .htaccess : l'URL rewriting
- Optimiser le nombre de mots dans les textes de liens
- Article sur le fichier .htaccess
- Tutoriel mod_pagespeed en français
- Ranking Metrics lance son blog
- Hébergement de projets open source sur Google Code
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
