Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 10 sur 10
  1. #1
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    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.

  2. #2
    Membre du Club
    Inscrit en
    octobre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 26

    Informations forums :
    Inscription : octobre 2009
    Messages : 30
    Points : 45
    Points
    45

    Par défaut

    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.

  3. #3
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    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

    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 ?

  4. #4
    Membre du Club
    Inscrit en
    octobre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 26

    Informations forums :
    Inscription : octobre 2009
    Messages : 30
    Points : 45
    Points
    45

    Par défaut

    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.

  5. #5
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    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

    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 ?

  6. #6
    Membre du Club
    Inscrit en
    octobre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 26

    Informations forums :
    Inscription : octobre 2009
    Messages : 30
    Points : 45
    Points
    45

    Par défaut

    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"

  7. #7
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    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

    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.

  8. #8
    Membre du Club
    Inscrit en
    octobre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 26

    Informations forums :
    Inscription : octobre 2009
    Messages : 30
    Points : 45
    Points
    45

    Par défaut

    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"

  9. #9
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    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

    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

  10. #10

    Homme Profil pro Quentin
    Forumeur.
    Inscrit en
    octobre 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Nom : Homme Quentin
    Localisation : France

    Informations professionnelles :
    Activité : Forumeur.
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2012
    Messages : 16
    Points : -18
    Points
    -18

    Par défaut

    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)

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •