Tag Archives: trafic

Générer du trafic naturel sur votre site

Le référencement naturel de votre site par les différents moteurs de recherche peut prendre du temps, notamment si vous êtes sur une niche très concurrentielle.

Le SEO permet d’améliorer et d’accélérer votre positionnement et votre visibilité mais il est difficile à maitriser, impossible à prévoir et souvent coûteux. En effet, les régies de référencements sont onéreuses, tout comme les bons outils blackhat.

Je vous propose donc d’utiliser un outil gratuit, simple à prendre en main et qui pourra vous générer du trafic naturel.

Monitorer votre serveur Linux grace à MRTG

Aujourd’hui j’ai dû installer un logiciel de monitoring sur mes serveurs Linux afin de pouvoir superviser l’utilisation de la bande passante.

Pour faire celà, il m’a suffit d’installer MRTG (Multi Router Traffic Grapher) qui est un logiciel permettant de créer des graphiques sur le trafic réseau.

Il envoie des requêtes SNMP pour interroger des équipements réseaux tels que des routeurs,  des commutateurs, ou bien encore des serveurs disposant d’une MIB SNMP.

Installation d’Apache, MRTG et SNMP

Pour pouvoir utiliser MRTG, il nous apache et snmp. S’ils sont déjà installés, ne les réinstallez pas:

apt-get install apache2 mrtg snmpd

Configuration du SNMP

Faire une sauvegarde de la configuration snmp de base:

mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak

puis éditez le fichier de configuration de snmp:

nano /etc/snmp/snmpd.conf

et écrivez le contenu suivant:

rocommunity  public
syslocation  "France"
syscontact  votre@email.fr
com2sec public localhost public
group public v1 public
group public v2c public
group public usm public
view all included .1
access public "" any noauth exact all none none

Ensuite il faut éditer le fichier /etc/default/snmpd:

nano /etc/default/snmpd

Et vérifier que le fichier contient les lignes suivantes:

SNMPDRUN=yes
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid -c /etc/snmp/snmpd.conf'
TRAPDRUN=yes
SNMPDCOMPAT=yes

La configuration du service snmp est désormais terminée, vous devez redémarrer le service snmp:

/etc/init.d/snmpd restart

Configuration de MRTG

Créez un dossier pour MRTG:

mkdir /var/www/mrtg
chmod o+w /var/www/mrtg

Créez un fichier de configuration:

cfgmaker --global 'WorkDir:/var/www/mrtg' --ifref=name --ifdesc=eth --global 'Options[_]: bits' --output /etc/mrtg.cfg   public@localhost

Ensuite, créez un fichier d’index:

indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html

Puis démarrez MRTG:

env LANG=C /usr/bin/mrtg /etc/mrtg.cfg

Il se peut que des erreurs apparaissent au lancement de Mrtg. Rassurez-vous c’est tout à fait normal. Il suffit d’exécuter plusieurs fois la commande ci-dessus et vous n’aurez plus l’erreur.

Il ne nous reste plus qu’à ajouter une tache planifiée:

crontab -e

Et ajoutez cette ligne dans le gestionnaire des crons:

*/5 * * * * env LANG=C /usr/bin/mrtg /etc/mrtg.cfg

L’installation de MRTG est terminée. Vous n’avez plus qu’à attendre 5 minutes puis vous pourrez consulter vos graphiques de statistiques en utilisant l’adresse suivante http://votre_ip/mrtg/.

Vous obtiendrez alors des graphiques de statistiques de consommation de bande passante de ce genre:

mrtg bandwidth

Capturer le trafic d’une interface réseau avec TCPDump

Aujourd'hui, mon serveur Web a subi des attaques de type FLOOD (une multitude de connection sur le serveur Web sous forme de requêtes de type GET).

J'ai dû analyser le trafic passant sur mon interface réseau afin de voir qui floodait mon serveur Web sur le port 80.

Sur un serveur Windows, il suffirait d'utiliser le logiciel Wireshark afin de capturer le trafic réseau pour l'analyser. Mon serveur étant sous Linux Debian, nous utiliserons donc TCPDump.

TCPDump est ce que l'on appelle classiquement un "packet analyzer".

Présentation de TCPDump

TCPDump est un logiciel de supervision réseau et d'acquisition de données réseau. Il est principalement utilisé pour débugger et trouver les problèmes relatifs aux trames et paquets qui circulent sur le réseau.

Utilisation de TCPDump

TCPDump est un logiciel très complet qui offre de nombreuses options pour l'utiliser.

Monitorer tout le trafic d'une interface

tcpdump -i eth1

Monitorer tout le trafic d'une interface sur le port 80 (HTTP)

tcpdump -i eth1 'port 80'

Monitorer tout le trafic d'une interface sur le port 25 (SMTP)

tcpdump -vv -x -X -s 1500 -i eth1 'port 25'

 

Voici le détail des options utilisées:

  • -vv : sortie écran
  • -x : affiche les données de chaque paquet en plus du header
  • -X : affiche les données de chaque paquet au format hexadécimal et ASCII sauf la couche de niveau 2. Cette fonction est pratique car elle nous retourne de nombreuses informations pratiques pour le débuggage et la programmation.
  • -s 1500: permet d'indiquer le nombre de bytes à capturer pour chaque paquet. Par défaut, la valeur utilisée est 68 bytes.
  • -i eth1 : monitorer l'interface eth1

Utiliser un cron pour capturer le trafic

Dans mon cas, je souhaite capturer et analyser le trafic suite à une attaque. La capture des paquets se faisant à un instant T, il ne sert à rien de lancer une capture l'attaque finie.

Par chance (ou malchance), les attaques se répètent chaque jour entre minuit et une heure. Il est donc intéressant de capturer à ce moment précis. Pour celà, nous allons lancer la capture via un cron mais qui limitera la capture à 100000 paquets (afin de ne pas charger le disque dur du serveur). Voilà la commande utilisée:

@midnight /usr/sbin/tcpdump -n -c 100000 -w /home/jhd/http_80.trace

Pour lire le fichier de capture (http_80.trace), il suffit de faire:

tcpdump -X -vv -r /home/jhd/http_80.trace

TCPDump est vraiment un super logiciel qui vous rendra bien des services. Ses fonctionnalités sont nombreuses donc n'hésitez pas à consulter l'aide via "man tcpdump".

Pour l'anecdote, ce qui floodait ma machine était tout simplement une application de test de proxy que j'étais en train de développer.