Aller au contenu

Sujets conseillés

Posté (modifié)
Bonjour

depuis quelques jours mon site web rend complètement mon serveur off j'ai un gentoo release 2 (dédié SP 16G)


j'ai du protéger le répertoire /home/www/cpourtoi par login et mot de passe pour que ça revient au normal et que mes autres sites peuvent fonctionner!!!


je pense être victime d'une attaque dos sur un de mes sites web!

parce qu’en tapant la commande Top en ssh voila ce que j'obtient:



top - 22:10:53 up 1:03, 1 user, load average: 7.02, 4.14, 4.16
Tasks: 411 total, 11 running, 391 sleeping, 0 stopped, 9 zombie
Cpu(s): 88.4% us, 7.7% sy, 0.0% ni, 3.7% id, 0.0% wa, 0.0% hi, 0.2% si
Mem: 16327796k total, 3645432k used, 12682364k free, 42812k buffers
Swap: 1046520k total, 0k used, 1046520k free, 355884k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
17618 mysql 20 0 144m 49m 5164 S 49 0.3 10:58.48 mysqld
11846 cpourtoi 20 0 0 0 0 Z 7 0.0 0:00.20 php <defunct>
11849 cpourtoi 20 0 0 0 0 Z 7 0.0 0:00.20 php <defunct>
11882 cpourtoi 20 0 0 0 0 Z 6 0.0 0:00.19 php <defunct>
11816 cpourtoi 20 0 92032 29m 6920 R 5 0.2 0:00.14 php
11864 cpourtoi 20 0 88652 26m 6908 S 4 0.2 0:00.12 php
11902 cpourtoi 20 0 88652 26m 6908 S 4 0.2 0:00.12 php
11916 cpourtoi 20 0 88652 26m 6908 S 4 0.2 0:00.12 php
11796 cpourtoi 20 0 88652 26m 6908 S 4 0.2 0:00.11 php
11800 cpourtoi 20 0 88652 26m 6908 S 4 0.2 0:00.11 php
11802 cpourtoi 20 0 88652 26m 6908 S 4 0.2 0:00.11 php
11808 cpourtoi 20 0 88652 26m 6908 S 4 0.2 0:00.11 php
11810 cpourtoi 20 0 88652 26m 6908 S 4 0.2 0:00.11 php
11814 cpourtoi 20 0 88652 26m 6908 S 4 0.2 0:00.11 php
11823 cpourtoi 20 0 88652 26m 6908 S 4 0.2 0:00.11 php
11824 cpourtoi 20 0 88652 26m 6908 S 4 0.2 0:00.11 php
11835 cpourtoi 20 0 88652 26m 6908 S 4 0.2 0:00.11 php
11837 cpourtoi 20 0 88652 26m 6908 S 4 0.2 0:00.11 php
11839 cpourtoi 20 0 88652 26m 6908 S 4 0.2 0:00.11 php
11842 cpourtoi 20 0 88652 26m 6908 S 4 0.2 0:00.11 php

Dans le fichier /home/log/httpd/error_log je peux lire cette erreur:



[Thu Jan 03 20:48:18 2013] [error] server reached MaxClients setting, consider raising the MaxClients setting


Depuis le manager d'ovh RTM données archivées pour 2013-01-03 20:58:00


Memory usage - top 5 processes

Process name Memory size [kB]

1. /usr/sbin/clamd 296696

2. /usr/sbin/mysqld --defaults-file?/etc/mysql/my.cnf --basedir?/usr --datadir?/var/lib/mysql --pid-file?/var/run/mysqld/mysqld.pid --socket?/var/run/mys 116664

3. /usr/local/php5/bin/php 87596

4. /usr/local/php5/bin/php 91252

5. /usr/local/php5/bin/php


Utilisation du Serveur

Charge CPU : 96 %

Charge RAM : 20 %

Charge SWAP : 0 %


Utilisation disque dur

[ / ] : 14 %

[ /home ] : 3 %


Processus du serveur

Charge moyenne ( loadavg1 ) : 9.23

Charge moyenne ( loadavg2 ) : 7.09

Charge moyenne ( loadavg3 ) : 3.77

Processus actif(s) ( loadactive ) : 5

Processus démarré(s) ( loadup ) : 421


j'ai pu ouvrir le fichier /home/log/httpd/cpourtoi-access_log à l'aide de notepad

apparament il ya une grande masse de requêtes de recherches instantannées sur le site et avec de mots clés arbitraires (des numéros) avec plusieurs ip :confused:



197.27.29.174 - - [03/Jan/2013:22:02:20 +0100] "GET /petites-annonces/bonnes-affaires?text_search=1380202261&order=10&expand=0 HTTP/1.1" 401 518 "-" "Wget"
41.230.231.191 - - [03/Jan/2013:22:02:20 +0100] "GET /petites-annonces/bonnes-affaires?text_search=1797891321&order=10&expand=0 HTTP/1.1" 401 518 "-" "Wget"
197.2.34.36 - - [03/Jan/2013:22:02:20 +0100] "GET /petites-annonces/bonnes-affaires?text_search=942539628&order=10&expand=0 HTTP/1.1" 401 518 "-" "Wget"
197.2.14.165 - - [03/Jan/2013:22:02:20 +0100] "GET /petites-annonces/bonnes-affaires?text_search=106865612&order=10&expand=0 HTTP/1.1" 401 518 "-" "Wget"
197.2.14.127 - - [03/Jan/2013:22:02:20 +0100] "GET /petites-annonces/bonnes-affaires?text_search=1026838425&order=10&expand=0 HTTP/1.1" 401 518 "-" "Wget"
197.31.113.213 - - [03/Jan/2013:22:02:20 +0100] "GET /petites-annonces/bonnes-affaires?text_search=1103271613&order=10&expand=0 HTTP/1.1" 401 518 "-" "Wget"
197.5.8.161 - - [03/Jan/2013:22:02:20 +0100] "GET /petites-annonces/bonnes-affaires?text_search=406063149&order=10&expand=0 HTTP/1.1" 401 518 "-" "Wget"
151.66.100.25 - - [03/Jan/2013:22:02:20 +0100] "GET /petites-annonces/bonnes-affaires?text_search=610402753&order=10&expand=0 HTTP/1.1" 401 518 "-" "Wget"
79.81.79.234 - - [03/Jan/2013:22:02:20 +0100] "GET /petites-annonces/bonnes-affaires?text_search=52443512&order=10&expand=0 HTTP/1.1" 401 518 "-" "Wget"
197.31.73.220 - - [03/Jan/2013:22:02:20 +0100] "GET /petites-annonces/bonnes-affaires?text_search=1145092362&order=10&expand=0 HTTP/1.1" 401 518 "-" "Wget"
197.15.61.198 - - [03/Jan/2013:22:02:20 +0100] "GET /petites-annonces/bonnes-affaires?text_search=795372946&order=10&expand=0 HTTP/1.1" 401 518 "-" "Wget"
197.27.6.130 - - [03/Jan/2013:22:02:20 +0100] "GET /petites-annonces/bonnes-affaires?text_search=1528833769&order=10&expand=0 HTTP/1.1" 401 518 "-" "Wget"
41.224.99.24 - - [03/Jan/2013:22:02:20 +0100] "GET /petites-annonces/bonnes-affaires?text_search=134277699&order=10&expand=0 HTTP/1.1" 401 518 "-" "Wget"
197.31.201.84 - - [03/Jan/2013:22:02:20 +0100] "GET /petites-annonces/bonnes-affaires?text_search=1943341315&order=10&expand=0 HTTP/1.1" 401 518 "-" "Wget"

pouvez vous m'aider à comprendre l'origine de cette attaque?



serait -il possible de déterminer l'ip de la machine attaquante??



merci

Modifié par kapaza
Posté

Bonjour,



moui, si c'est une attaque, elle est drôlement mal foutue : les gars annoncent la couleur, c'est téléchargé via wget. Te suffirait donc de bloquer wget.


Par contre effectivement, pas mal d'IP différentes... peut être qu'en mettant un quota de visite sur ton moteur de recherche, ça réglerait le problème.



Pour ce qui est de l'impact que ça a sur les autres sites, il faudrait essayer de cloisonner un peu tout ça. Avec le module fCGI d'Apache par exemple tu peux faire en sorte que le quota de «clients» soit par site, et non global. En bridant à 50 par site exemple, ça éviterait que ce site bloque les autres. Bon... reste à voir la tronche du MySQL derrière, mais déjà ça limite la casse.


Posté

Ce sont toutes des adresses en provenance de Tunisie.


Si ton site est ciblé sur ce pays, c'est normal à part le fait que tous est obtenu via wget .


Cela ressemble donc à de l'aspiration de site.



Par contre, le message concernant le MaxClients signifie que tu as plus de requêtes simultanées que de process apache disponibles.


Tu peux augmenter cette valeur, dans des limites raisonnables (passer de 450 à 1024 par exemple)



Selon ta distribution, cela devrait se trouver dans un fichier httpd-mpm.conf ... relance apache après modification.


Posté

Le mieux est encore cette règle :

RewriteRule .* - [F]
Qui renverra un "forbidden"
Posté
Histoire de préciser un peu plus.

Dans ton .htaccess, au lieu de mettre un mot de passe, bloque wget :

RewriteCond %{HTTP_USER_AGENT} ^Wget

RewriteRule .* http://www.va-voir-ailleurs.com/

dans mon .htaccess je viens d'ajouter la ligne:

RewriteCond %{HTTP_USER_AGENT} ^Wget

serait -il possible de tester ça avec un aspirateur web comme (HTTrack Website copier par exemple) ? ça sera bien bloqué?

Le mieux est encore cette règle :

RewriteRule .* - [F]
Qui renverra un "forbidden"

mon site est basé sur joomla, et dans le fichier htaccess ça contient déjà cette règle

SetEnv PHP_VER 5.3.8### @version $Id: htaccess.txt 21064 2011-04-03 22:12:19Z dextercowley $# @package Joomla# @copyright Copyright © 2005 - 2010 Open Source Matters. All rights reserved.# @license http://www.gnu.org/copyleft/gpl.html GNU/GPL# Joomla! is Free Software########################################################  READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE## The line just below this section: 'Options +FollowSymLinks' may cause problems# with some server configurations.  It is required for use of mod_rewrite, but may already# be set by your server administrator in a way that dissallows changing it in# your .htaccess file.  If using it causes your server to error out, comment it out (add # to# beginning of line), reload your site in your browser and test your sef url's.  If they work,# it has been set by your server administrator and you do not need it set here.########################################################  Can be commented out if causes errors, see notes above.Options +FollowSymLinks##  mod_rewrite in useRewriteEngine On########## Begin - Rewrite rules to block out some common exploits## If you experience problems on your site block out the operations listed below## This attempts to block the most common type of exploit `attempts` to Joomla!### Deny access to extension xml files (uncomment out to activate)#<Files ~ "\.xml$">#Order allow,deny#Deny from all#Satisfy all#</Files>## End of deny access to extension xml files# Block out any script trying to set a mosConfig value through the URLRewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]# Block out any script trying to base64_encode data within the URLRewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]# Block out any script that includes a <script> tag in URLRewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]# Block out any script trying to set a PHP GLOBALS variable via URLRewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]# Block out any script trying to modify a _REQUEST variable via URLRewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})# Return 403 Forbidden header and show the content of the root homepageRewriteRule .* index.php [F]########### End - Rewrite rules to block out some common exploits########## Begin - Custom redirects## If you need to redirect some pages, or set a canonical non-www to# www redirect (or vice versa), place that code here. Ensure those# redirects use the correct RewriteRule syntax and the [R=301,L] flags.########### End - Custom redirects#  Uncomment following line if your webserver's URL#  is not directly related to physical file paths.#  Update Your Joomla! Directory (just / for root)# RewriteBase /########## Begin - Joomla! core SEF Section#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]## If the requested path and file is not /index.php and the request# has not already been internally rewritten to the index.php scriptRewriteCond %{REQUEST_URI} !^/index\.php# and the request is for root, or for an extensionless URL, or the# requested URL ends with one of the listed extensionsRewriteCond %{REQUEST_URI} (/[^.]*|\.(php|html?|feed|pdf|raw))$ [NC]# and the requested path and file doesn't directly match a physical fileRewriteCond %{REQUEST_FILENAME} !-f# and the requested path and file doesn't directly match a physical folderRewriteCond %{REQUEST_FILENAME} !-d# internally rewrite the request to the index.php scriptRewriteRule .* index.php [L]AuthUserFile "/home/cpourtoi/www/.htpasswd"AuthType BasicAuthName "cpourtoi"########### End - Joomla! core SEF Section
Posté
mon site est basé sur joomla, et dans le fichier htaccess ça contient déjà cette règle
Pas avec cette même condition !

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...