Précédent   Forum du club des développeurs et IT Pro > Webmasters - Développement Web > Général Conception Web > Sécurité
Sécurité Forum d'entraide sur la sécurité des sites Web, les protections, l'authentification, etc. Avant de poster -> Cours Sécurité.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 12/09/2012, 15h29   #1
Corshclaw
Invité de passage
 
Homme
Étudiant
Inscription : septembre 2012
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2012
Messages : 5
Points : 4
Points : 4
Par défaut Trafic entrant démesuré sur mon site perso

Bonjour,

je viens vous demander de l'aide car je me retrouve confronté à un problème qui me dépasse.
Depuis quelques jours, je trouvais mon site perso (blog/CV/portfolio) de plus en plus lent à l'affichage de pages. J'ai d'abord pensé que ça venait d'OVH qui héberge mon serveur dédié (Debian 6), mais ça s'est aggravé au point qu'il n'y a plus moyen d'afficher une page.

Sur le monitoring OVH, j'ai découvert que mon site subit un traffic entrant d'environ 10Mbps en continu.

J'ai trouvé sur le serveur un fichier de log d'erreurs Apache qui dépassait 8Go. Netstat m'affiche en permanence 255 requêtes de connexion simultanées. J'ai essayé d'installer mod_evasive pour Apache, et d'ajouter un filtre iptables à mon firewall pour limiter le nombre de connexions par minute. C'est toujours pareil.

Je vous colle un bout de ce que j'ai trouvé dans mon /var/log/apache2/other_vhosts_access.log :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
xxx.xx:80 142.54.184.226 - - [12/Sep/2012:15:25:14 +0200] "GET http://ad.bharatstudent.com/st?ad_type=iframe&ad_size=700x300&section=3011105&pub_url=${PUB_URL} HTTP/1.0" 200 4985 "http://www.gethealthbank.com/category/medicine/" "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0)"
xxx.xx:80 199.116.113.149 - - [12/Sep/2012:15:25:14 +0200] "GET http://mobile1.login.vip.ird.yahoo.com/config/pwtoken_get?login=heaven_12_&src=ntverifyint&passwd=7698ca276acaf6070487899ad2ee2cb9&challenge=wTBYIo2AEdMFr6LtdyQZPqYw9FS9&md5=1 HTTP/1.0" 200 425 "-" "MobileRunner-J2ME"
xxx.xx:80 142.54.184.66 - - [12/Sep/2012:15:25:14 +0200] "GET http://ad.tagjunction.com/iframe3?BnMWDUZsMACTWP4AAAAAAMZGOgAAAAAAAgAAAAQAAAAAAP8AAAAEEAmvRwAAAAAAT1FFAAAAAACy5U0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBjxUAAAAAAAIAAwAAgD8AIZbNHJJakD9U46WbxCCgP16Kq8q-K6I.7FG4HoXrsT-GfNCzWfWpP5qZmZmZmbk.AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVS6ebsHGZDCVINXK28I6u.3eHH-utRNb.SXbUAAAAAA==,,http%3A%2F%2Fwww.xyzkey.com%2Fbusiness-and-finance%2Fhow-to-create-equity-out-of-fat-air.html,B%3D12%26Z%3D468x60%26_salt%3D3598659528%26m%3D2%26r%3D1%26s%3D3173446,4369ae28-fcdd-11e1-9b35-78e3b510fd4e,1347456304679 HTTP/1.0" 302 1062 "http://www.xyzkey.com/business-and-finance/how-to-create-equity-out-of-fat-air.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
xxx.xx:80 142.54.185.58 - - [12/Sep/2012:15:25:14 +0200] "GET http://ad.adorika.com/st?ad_type=ad&ad_size=728x90&section=3112201&pub_url=${PUB_URL} HTTP/1.0" 200 4650 "http://play-onlinegame.com/" "Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt; Alexa Toolbar)"
xxx.xx:80 142.54.182.186 - - [12/Sep/2012:15:25:14 +0200] "GET http://ad.zanox.com/tpv/?22603563C419404819T&zpar0=56904609149225520 HTTP/1.0" 302 758 "http://xyzreadyads.com/Default.aspx" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040614 Firefox/0.8"
xxx.xx:80 108.177.187.40 - - [12/Sep/2012:15:25:14 +0200] "GET http://ad.yieldmanager.com/imp?Z=300x250&s=2926391&T=3&_salt=3351479070&B=12&m=2&u=http%3A%2F%2Fjjlearn.com%2Findex.php%3Foption%3Dcom_mailto%26tmpl%3Dcomponent%26link%3Dca03b47031573df01aee1d36c518f234c907dea2&r=1&SIG=10vvd270i;x-cookie=7pf7gqy85139t&o=3&f=qh HTTP/1.0" 200 1570 "http://ad.adserverplus.com/st?ad_type=iframe&ad_size=300x250&section=2926391&pub_url=${PUB_URL}" "Mozilla/4.0 (compatible; MSIE 5.0; Mac_PowerPC)"
xxx.xx:80 74.91.30.130 - - [12/Sep/2012:15:25:14 +0200] "GET http://ad.adserverplus.com/imp?Z=300x250&s=2933150&_salt=1393661152&B=12&m=2&u=http%3A%2F%2Fwww.today-car.com%2F%3Fp%3D46&r=1 HTTP/1.0" 302 623 "http://www.today-car.com/?p=46" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 95; Alexa Toolbar)"
xxx.xx:80 142.54.184.98 - - [12/Sep/2012:15:25:14 +0200] "GET http://ad.adorika.com/st?ad_type=ad&ad_size=728x90&section=3542983&pub_url=${PUB_URL} HTTP/1.0" 200 4649 "http://www.ygameface.com/index.php?option=com_yoflash&view=game&id=deep-ocean-race&Itemid=68" "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT 5.0; Alexa Toolbar)"
xxx.xx:80 142.91.189.15 - - [12/Sep/2012:15:25:14 +0200] "GET http://ad.adserverplus.com/st?ad_type=iframe&ad_size=728x90&section=3256421&pub_url=${PUB_URL} HTTP/1.0" 200 4979 "http://newsja.com/index.php?option=com_content&view=category&layout=blog&id=36&Itemid=55&limitstart=45" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; chromeframe; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322; MS-RTC LM 8; InfoPath.2)"
xxx.xx:80 142.91.189.43 - - [12/Sep/2012:15:25:14 +0200] "GET http://ad.adserverplus.com/imp?Z=160x600&s=2888974&T=3&_salt=4202616276&B=12&m=2&u=http%3A%2F%2Ffinancialkownledge.com%2Findex.php%3Fview%3Darticle%26catid%3D49%253Afinancial-skills%26id%3D7880%253A2011-09-28-21-09-41%26tmpl%3Dcomponent%26print%3D1%26layout%3Ddefault%26page%3D%26option%3Dcom_content%26Itemid%3D99&r=1 HTTP/1.0" 302 816 "http://ad.adserverplus.com/st?ad_type=iframe&ad_size=160x600&section=2888974&pub_url=${PUB_URL}" "Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.8.1.11) Gecko/20080118 Firefox/2.0.0.11"
xxx.xx:80 77.79.13.140 - - [12/Sep/2012:15:25:14 +0200] "GET http://www.cerdagroup.com/?q=es/node/3&gwruta=subfamilia/2401 HTTP/1.1" 200 27596 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
xxx.xx:80 173.208.173.170 - - [12/Sep/2012:15:25:14 +0200] "GET http://ad.adorika.com/imp?Z=300x250&s=3129983&_salt=2920382888&B=12&m=2&u=http%3A%2F%2Fwww.today-women.com%2F&r=1 HTTP/1.0" 302 616 "http://www.today-women.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 95; Alexa Toolbar)"
xxx.xx:80 108.168.132.250 - - [12/Sep/2012:15:25:14 +0200] "GET http://s01-delivery.addynamo.net/AdDelivery/AdDelivery.cfm?strReferURL=http%3A%2F%2Fwww.bodyandsoul.com.au%2F&uidChanel=ab882a9e-2860-4ee6-a778-5954e0dedae1&flashVersion=11.2.202&0.826838913286055 HTTP/1.0" 200 222 "http://www.bodyandsoul.com.au/parenting+pregnancy/expert+opinion/raising+debt+free+kids,15149" "Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12"
xxx.xx:80 142.54.184.226 - - [12/Sep/2012:15:25:14 +0200] "GET http://ad.yieldmanager.com/imp?Z=700x300&s=3011105&T=3&_salt=3585324219&B=12&m=2&u=http%3A%2F%2Fwww.gethealthbank.com%2F&r=1 HTTP/1.0" 302 660 "http://ad.bharatstudent.com/st?ad_type=iframe&ad_size=700x300&section=3011105&pub_url=${PUB_URL}" "Mozilla/4.76 [en] (Win98; U)"
Plein de requêtes qui ne me sont visiblement pas destinées.

Si vous avez quelque idée qui pourrait m'aider à solutionner ça, elle sera on ne peut plus bienvenue.
Corshclaw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2012, 17h27   #2
Beanux
Membre du Club
 
Inscription : octobre 2009
Messages : 26
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : octobre 2009
Messages : 26
Points : 44
Points : 44
Je te conseil d'installer mod qos. ça ne règlera pas le problème de chargement d'url qui n'appartienne pas a ton site, mais ça limitera la casse.

Une partie de la conf qui pourrait t’être utile, sachant que tous les paramètres sont détaillés sur la page du module.
Le fichier de conf est au même endroit que celui du mod evasive
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
## QoS Settings
<IfModule mod_qos.c>
	# Limite le nombre de connexion accepté par apache, dépend de la fréquentation de ton site
	MaxClients	XX

	# Durée de vie d'une connexion avant de demander un kee alive
	Timeout	20

	# Temps d'attente pour recevoir un keep alive
	KeepAliveTimeout	5

	# Nombre (ou pourcentage de MaxClients) de connexion maximum avec le keep alive (en gros maintient de la connexion en vie sans envoyer de requêtes)
	QS_SrvMaxConnClose XX

	#Nombre maximum de connexion par ip sur apache, dépend de ton site
	QS_SrvMaxConnPerIP	XX

	# Limite de données envoyé pour conserver une connexion.
	QS_SrvMinDataRate 120

	# Au dela de 70% établie des priorités entre les clients
	QS_ClientPrefer 70
</IfModule>

Pour ce qui est du chargement de requêtes invalides, tu devrais regarder du coté de la configuration de php. "allow_url_fopen" et "alow_url_include", sont deux directives qui peuvent être dangereuse, mais au vu de la description du contenu de ton site, elles ne semblent pas nécessaire.
Beanux est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/09/2012, 18h59   #3
Corshclaw
Invité de passage
 
Homme
Étudiant
Inscription : septembre 2012
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2012
Messages : 5
Points : 4
Points : 4
J'ai installé et configuré mod_qos, merci beaucoup, au moins Apache réussit à sortir un peu la tête de l'eau.

Pour ce qui est de PHP, mon site n'est pas concerné, c'est du java, du Play!Framework exactement

Par contre, il y a toujours ce problème de centaines de connexions par seconde qui m'inquiète.

D'où est-ce que ça peut venir ?
Corshclaw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2012, 20h24   #4
Beanux
Membre du Club
 
Inscription : octobre 2009
Messages : 26
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : octobre 2009
Messages : 26
Points : 44
Points : 44
Une idée soudaine: tu n'aurais pas activé mod proxy à tout hasard?
Ça expliquerait pourquoi les request sont prises en compte et redirigées.
Beanux est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 13/09/2012, 00h15   #5
Corshclaw
Invité de passage
 
Homme
Étudiant
Inscription : septembre 2012
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2012
Messages : 5
Points : 4
Points : 4
Si, j'ai dû activer mod_proxy, car Play!Framework fonctionne en écoute sur un port, et un vhost redirige les requêtes reçues sur le port 80 vers ce port.

Mais ça n'a jamais posé de problème jusqu'à il y a quelques jours quand mon trafic entrant s'est mis à exploser.

Quel problème pose mod_proxy dans mon cas exactement ? Il y a un moyen de le contourner ?
Corshclaw est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/09/2012, 08h36   #6
Beanux
Membre du Club
 
Inscription : octobre 2009
Messages : 26
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : octobre 2009
Messages : 26
Points : 44
Points : 44
En gros il redirige les requêtes quelque soient leur provenance. Alors que tu souhaiterais que cela ne soit fait que pour des requêtes venant de ton serveur. En résumé tu sers de proxy pour aller naviguer sur d'autre site, les scanner ou même les attaquer.

En gros, ajoute la directive suivante (doc de la directive) dans les conf de mod proxy:
Code :
1
2
3
4
<Proxy *>
Require ip x.x.x.x
</Proxy>
edit: les ip a indiquer, sont les ip autorisés pour se servir de la fonction proxy, donc a priori l'ip de ton serveur, 127.0.0.1 ou alors remplace "Require ip x.x.x.x" par "Require host localhost"
Beanux est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 13/09/2012, 14h02   #7
Corshclaw
Invité de passage
 
Homme
Étudiant
Inscription : septembre 2012
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2012
Messages : 5
Points : 4
Points : 4
En lisant le contenu du fichier proxy.conf, j'ai vu qu'il suffisait de supprimer la ligne "ProxyRequests On" pour désactiver la fonctionnalité qui me pose problème.

Je trouve ça fou qu'elle soit présente par défaut dans le fichier de config, alors qu'ils spécifient eux-mêmes dans les commentaires que cette ligne est dangereuse.

Est-ce que cette config est suffisante du coup ? Lorsque j'essaie d'ajouter le Require dedans, je me prends systématiquement des erreurs 500.

Code :
1
2
3
4
5
<Proxy *>
        AddDefaultCharset off
        Order deny,allow
        Allow from all
</Proxy>
En tout cas merci beaucoup à toi !

Edit : y a-t-il un moyen de vérifier que maintenant ma config est correcte et que mon serveur ne peut plus servir de free proxy ?

Edit 2 : visiblement maintenant toutes les requêtes qui arrivent sont effectivement redirigées vers mon application. Ce qui n'est en fait pas vraiment mieux, je n'ai pas très envie que tous les types qui m'envoient des requêtes de type "naked 13 years old girl" sur la recherche yahoo via mon proxy tombent sur mon site perso
D'après ce que tu décris ta directive Require devrait me permettre de restreindre ça, mais pour l'instant je n'arrive pas à la faire fonctionner.
Corshclaw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2012, 19h52   #8
Beanux
Membre du Club
 
Inscription : octobre 2009
Messages : 26
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : octobre 2009
Messages : 26
Points : 44
Points : 44
En fait mon explication était mauvaise, mais tu as fait ce qu'il fallait.

Après, le problème c'est que on peut envoyer nimporte quoi comme requête, et apache les traitera. Mais j'ai trouvé cette astuce:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<VirtualHost *:80>
ServerName untruc.domain
DocumentRoot /var/www/untrucbidon
<Directory /var/www/untrucbidon>
Deny from all
</Directory>
</VirtualHost>

In the configuration of the second virtual host (the real one), set the
permissions normally.
<VirtualHost *:80>
ServerName tonvraidomain
DocumentRoot /var/www/tonsite
<Directory /var/www/tonsite>
Allow from all
</Directory>
etc..
</VirtualHost>
En gros les requêtes vont être géré par le 1er serveur (donc ignorées) sauf celles qui correspondent au nom de domaine du 2eme. Mis a part ça, il n'y a pas d'autres moyen pour ignorer des requêtes (mod security, mais c'est prendre un tank pour tuer une mouche)


Sinon pour vérifier la config, utilise telnet pour te connecter sur ton host telnet sur le port 80 sur ton ip. Et écrit une requête "GET undomain.com"
Beanux est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 14/09/2012, 00h29   #9
Corshclaw
Invité de passage
 
Homme
Étudiant
Inscription : septembre 2012
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2012
Messages : 5
Points : 4
Points : 4
Vraiment malin, parfait, ça fonctionne nickel !

J'ai accès via mon framework aux requêtes qu'il reçoit, et il ne reçoit plus rien d'autre que les pages que je lui demande d'afficher, au lieu de 500 appels à la page d'erreur par seconde.

Encore une fois merci énormément, au moins cet incident m'aura appris pas mal de choses et mon serveur est beaucoup plus sécurisé qu'avant
Corshclaw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2012, 13h03   #10
ViZiOnZ
 
Homme Quentin
Forumeur.
Inscription : octobre 2012
Messages : 15
Détails du profil
Informations personnelles :
Nom : Homme Quentin
Localisation : France

Informations professionnelles :
Activité : Forumeur.
Secteur : Conseil

Informations forums :
Inscription : octobre 2012
Messages : 15
Points : -15
Points : -15
C'était un DdoS, sur les applications OVH la base de mémoire est limité, d'où le ralentissement des pages (Du moins, c'est mon avis)
ViZiOnZ est déconnecté   Envoyer un message privé Réponse avec citation 04
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h19.


 
 
 
 
Partenaires

Hébergement Web