48 votes

Recevoir des erreurs 408 dans nos journaux sans demande ou agent utilisateur

Je reçois beaucoup de demandes qui apparaissent dans nos journaux Apache qui ressemblent à ceci

www.example.com:80 10.240.1.8 - - [06/Mar/2013:00:39:19 +0000] "-" 408 0 "-" "-" -

Il ne semble pas y avoir de demande ni d'agent utilisateur. Est-ce que quelqu'un a déjà vu cela auparavant?

0 votes

3voto

ccl Points 41

J'ai rencontré ce problème derrière le répartiteur de charge élastique AWS. Les vérifications d'état ont généré une quantité énorme de réponses 408 dans le journal.

La seule solution qui a fonctionné pour moi a été de régler le Time-out d'inactivité du répartiteur de charge à une valeur inférieure à son Délai d'attente de réponse de vérification d'état.

1voto

Zizoo Points 161

Un collègue a récemment remarqué que, bien que mon dernier message donnait une explication valable sur la manière dont un 408 pourrait être associé à une mesure de sécurité, il n'offrait aucune solution.

Le journal d'accès pipé est ma solution personnelle.

Le suivant devrait fonctionner directement sur la plupart des configurations Ubuntu, et avec peu de bidouillage sur d'autres configurations Apache. J'ai choisi PHP car c'est le plus facile à comprendre. Il y a deux scripts : le premier empêche qu'un 408 soit écrit dans votre journal d'accès. Le deuxième script envoie tous les 408 à un fichier journal séparé. Dans les deux cas, le résultat est plus de 408 dans votre journal d'accès. C'est à vous de choisir quel script implémenter.

Utilisez votre éditeur de texte préféré, j'utilise nano. Ouvrez le fichier où vous avez vos directives 'LogFormat' et 'CustomLog'. Mettez les originaux en commentaire avec le # habituel et ajoutez les éléments suivants. Vous pourriez trouver ces directives dans le fichier ci-dessous.

sudo nano /etc/apache2/sites-available/default

LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" AccessLogPipe

CustomLog "|/var/log/apache2/PipedAccessLog.php" AccessLogPipe env=!dontlog

REMARQUE : Je ne journalise pas les images dans mon journal d'accès. Dans mon fichier etc/apache2/httpd.conf, j'inclus la ligne

SetEnvIfNoCase Request_URI ".(gif)|(jpg)|(png)|(css)|(js)|(ico)$" dontlog

Si cela ne vous intéresse pas, supprimez le env=!dontlog de la directive CustomLog.

Créez maintenant l'un des scripts PHP suivants (#!/usr/bin/php est une référence à l'emplacement de l'interpréteur, assurez-vous que l'emplacement est correct pour votre système - vous pouvez le faire en tapant à l'invite $; whereis php - cela devrait renvoyer quelque chose comme php: /usr/bin/php /usr/bin/X11/php /usr/share/man/man1/php.1.gz. Comme vous le voyez, #!/usr/bin/php est correct pour ma configuration).

sudo nano /var/log/apache2/PipedAccessLog.php

#!/usr/bin/php

sudo nano /var/log/apache2/PipedAccessLog.php

#!/usr/bin/php

Ayant sauvegardé le script PipedAccessLog.php, assurez-vous que root en est le propriétaire en exécutant ce qui suit à l'invite $.

sudo chown -R root:adm /var/log/apache2/PipedAccessLog.php

Le script PipedAccessLog.php aura besoin des autorisations de lecture/écriture et d'exécution, donc exécutez ce qui suit à l'invite $.

sudo chmod 755 /var/log/apache2/PipedAccessLog.php

Enfin, pour que tout fonctionne, vous devez redémarrer le service Apache. Exécutez ce qui suit à l'invite $.

sudo service apache2 restart

Si vos journaux Apache sont situés ailleurs, modifiez les chemins pour correspondre à votre configuration. Bonne chance.

8 votes

Si les 408 se produisent, nous devons comprendre pourquoi et nous en débarrasser. Simplement empêcher qu'ils soient enregistrés ou les rediriger vers un autre fichier est une perte de temps serveur. Cela sert aussi seulement à cacher le problème. C'est comme nettoyer votre chambre en poussant tout sous votre lit.

-2voto

user282558 Points 1

J'ai constaté que les erreurs 408 augmentent à la fois en nombre et en fréquence. La plage d'adresses IP d'origine est également en train de s'élargir (ces adresses sont enregistrées dans leur propre fichier séparé). Il y a aussi des schémas de journal évidents affichant des erreurs 408 consécutives provenant des mêmes groupes d'IP qui ne sont pas dues à des délais d'attente normaux du serveur, car l'expéditeur tente des connexions environ 2 ou 3 secondes l'une après l'autre selon un schéma cyclique (il n'y a pas d'attente d'un délai avant une autre tentative de connexion). Je considère qu'il s'agit de tentatives de connexion de style DDOS simples. À mon avis, il s'agit d'un type de message de confirmation pour l'expéditeur qu'un serveur est en ligne... puis ils reviennent plus tard avec des outils différents.... Si vous augmentez votre intervalle de délai d'attente, vous ne faites que leur donner un intervalle de temps plus long pour exécuter leurs programmes de piratage.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X