3 votes

Différence entre Netstat et Access Log

Lorsque je vérifiais les statistiques dans le terminal SSH de mon VPS, j'ai remarqué que netstat et le journal des accès donnaient des résultats différents.

Quand j'ai utilisé :

netstat -anp

J'ai vu qu'un attaquant avait 32 connexions simultanées au port 80 avec l'adresse IP 123.217.100.19.

Pendant ce temps, dans le journal des accès (/var/www/vhosts/domain.com/statistics/logs/access_log), il y avait des entrées de journal pour seulement l'adresse IP 123.217.100.199 (il y a un 9 supplémentaire à la fin). Aucune adresse IP spécifique 123.217.100.19 n'était disponible dans le journal des accès.

Quelle est la raison de cette différence d'adresses IP entre netstat et le journal des accès ?

3voto

Giacomo1968 Points 3512

Facile. netstat est un outil en ligne de commande qui vous montre le trafic réseau en direct en temps réel. Mais lorsque vous parlez de access_log et que vous pointez vers le chemin complet comme ceci :

/var/www/vhosts/domain.com/statistics/logs/access_log

Ce journal est généré par le service web sur le serveur. Je suppose que c'est probablement Apache qui génère ces journaux. Et la raison pour laquelle vous voyez un journal avec moins de données dans access_log par rapport à Apache provient directement de la capacité d'Apache à gérer ces connexions.

Dans Apache, il y a une option pour maintenir une connexion active si elle provient du même navigateur avec la même adresse IP je crois. Donc si vous avez 32 éléments se connectant au port 80, il se peut que la logique de "keep alive" soit en place.

Ou—plus probablement—l'attaque est une attaque DDoS classique où un afflux de demandes de connexion est fait, mais elles sont abandonnées avant même que la connexion n'ait lieu. Cela fonctionne dans un sens DDoS puisque Apache doit être capable de répondre à ces demandes, mais si l'afflux de connexions des attaquants "traîne" avant que les connexions ne soient établies... Alors aucune connexion ne serait enregistrée.

Ainsi—en utilisant vos données d'exemple comme exemple—9 connexions sont en réalité faites à Apache. Mais les 23 demandes restantes sont simplement abandonnées avant qu'Apache ne puisse faire quelque chose.

2voto

ThoriumBR Points 5222

Oui, il y a une différence cruciale.

Avec netstat, vous voyez des données de connexion brutes. Peu importe si la poignée de main du protocole supérieur est effectuée ou non, si un paquet SYN passe, netstat le journalisera.

D'un autre côté, access_log ne journalisera que les connexions qui terminent la poignée de main HTTP. Si quelqu'un établit une connexion mais ne envoie aucune donnée, access_log ne le verra jamais.

Exécutez un tail -f access_log et telnet vers votre serveur sur le port 80. Après que la connexion soit établie, exécutez un netstat et fermez la connexion telnet sans rien envoyer. Vous verrez votre adresse IP apparaître sur netstat, mais pas sur access_log.

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