Bastien Louche

Systèmes – Réseaux – Sécurité – Web | Tutoriels | CV
  • Accueil
  • CV
  • Contactez-moi

[Tutoriels] Benchmarker un serveur web Apache 2 avec Apachebench

Bastien Louche | 11/05/2010 | 10:52

Aujourd’hui on va voir comment utiliser un outil qui permet de benchmarker un serveur web Apache 2.

Pour le tutoriel on utilisera 2 serveurs, un avec Apache 2, et un avec Apachebench. Comme d’habitude, le système de base est Debian Lenny.

On installe Apachebench via un apt-get :

apt-get install apache2-utils

La commande « ab » est maintenant disponible, elle possède 2 principales options qui sont :

-n : Nombre total de requêtes à exécuter

-c : Nombre de requêtes exécuté en parallèle

On lance la commande suivante pour tester, mais vous pouvez adapter les valeurs des options à votre convenance :

ab -n 30000 -c 30 http://178.32.127.50/

On obtiens donc le résultat suivant :

This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 178.32.127.50 (be patient)
Completed 3000 requests
Completed 6000 requests
Completed 9000 requests
Completed 12000 requests
Completed 15000 requests
Completed 18000 requests
Completed 21000 requests
Completed 24000 requests
Completed 27000 requests
Completed 30000 requests
Finished 30000 requests

Server Software:        Apache/2.2.9
Server Hostname:        178.32.127.50
Server Port:            80

Document Path:          /
Document Length:        45 bytes

Concurrency Level:      30
Time taken for tests:   3.277 seconds
Complete requests:      30000
Failed requests:        0
Write errors:           0
Total transferred:      9570000 bytes
HTML transferred:       1350000 bytes
Requests per second:    9154.42 [#/sec] (mean)
Time per request:       3.277 [ms] (mean)
Time per request:       0.109 [ms] (mean, across all concurrent requests)
Transfer rate:          2851.82 [Kbytes/sec] received

Connection Times (ms)
min  mean[+/-sd] median   max
Connect:        0    1   0.4      1       6
Processing:     0    2   1.3      2      19
Waiting:        0    2   1.0      2      16
Total:          1    3   1.4      3      19

Percentage of the requests served within a certain time (ms)
50%      3
66%      3
75%      4
80%      4
90%      5
95%      5
98%      6
99%      8
100%     19 (longest request)

Vous pouvez maintenant analyser votre résultat pour améliorer vos performances en optimisant votre serveur web Apache 2.

Il existe d’autres solutions pour benchmarker un serveur Apache 2, et notamment Siege (Vous trouverez un tutoriel pour cette application sur Tux-planet), mais aussi httperf ou http_load.

Sources et Informations supplémentaires : [1] [2]

Commentaires
Pas de Commentaires »
Catégories
Tutoriels
Tags
Apache, Apachebench, Serveur, Web
Flux rss des commentaires Flux rss des commentaires
Trackback Trackback

[Tutoriels] Configuration d’un cluster Apache 2 avec HAProxy

Bastien Louche | 03/05/2010 | 14:41

J’ai décidé d’utiliser les machines virtuelles offertes par OVH pendant la phase de test de son offre Cloud Computing, pour vous faire un tutoriel sur la configuration d’un cluster Apache 2 avec HAProxy pour la partie équilibrage de charges.

Il faut donc 3 serveurs, 1 pour HAProxy, et minimum 2 pour le cluster Apache 2, on utilisera un système vierge sous Debian Lenny.

Voici donc un rapide schéma de la mise en place :

Les adresses IP utilisées sont des IP publiques appartenant au Cloud Computing d’OVH, il faudra donc les modifier pendant vos configurations personnelles.

Dans un premier temps on va configurer les serveurs Apache 2 (web1-cloud et web2-cloud) :

apt-get install apache2

Ensuite on créer le fichier qui sera testé par HAProxy pour vérifier que le serveur Apache 2 est opérationnel :

touch /var/www/haproxytest.txt

On va alors modifier légérement la configuration de : 

nano /etc/apache2/sites-available/default

Pour ajouter une nouvelle ligne et remplacer le CustomLog afin d’éviter que les logs d’Apache 2contiennent les checks de HAProxy :

SetEnvIf Request_URI « ^/haproxytest\.txt$ » dontlog
CustomLog /var/log/apache2/access.log combined env=!dontlog

On peut maintenant redémarrer Apache 2, les serveurs du cluster sont configurés :

/etc/init.d/apache2 restart

On se connecte sur le serveur qui va s’occuper de HAProxy :

apt-get install haproxy

On supprime la configuration par défaut de HAProxy et on re-créer le fichier pour éditer notre configuration :

rm -f /etc/haproxy/haproxy.cfg
nano /etc/haproxy/haproxy.cfg

global
        log 127.0.0.1   local0
        log 127.0.0.1   local1 notice
        #log loghost    local0 info
        maxconn 4096
        #debug
        #quiet
        user haproxy
        group haproxy

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        retries 3
        redispatch
        maxconn 2000
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000

listen blweb 178.32.121.84:80
       mode http
       stats enable
       stats auth user:password
       balance roundrobin
       cookie SERVID prefix
       option httpclose
       option forwardfor
       option httpchk HEAD /haproxytest.txt HTTP/1.0
       server web1-cloud 178.32.114.13:80 cookie A check
       server web2-cloud 178.32.121.231:80 cookie B check

On peut maintenant lancer HAProxy :

/etc/init.d/haproxy start

Vous pouvez maintenant vous rendre sur l’adresse IP de votre serveur HAProxy via le navigateur de votre choix pour admirer le résultat !

Une petite astuce consiste à modifier le fichier /var/www/index.html pour mieux visualiser quel serveur a répondu à chaque rafraichissement de la page.

A noter que dans notre configuration nous utilisons le paramètre stats enable qui permet à l’aide des identifiants de stats auth de se connecter via http://IP-HAProxy/haproxy?stats à une interface web présentant les statistiques d’utilisation de HAProxy et des différents serveurs Apache 2.

Sources et Informations supplémentaires : [1] [2]

Commentaires
26 Commentaires »
Catégories
Tutoriels
Tags
Apache, Debian, HAProxy, Linux, Serveur, Web
Flux rss des commentaires Flux rss des commentaires
Trackback Trackback

[Tutoriels] Installation de Snort + Basic Analysis and Security Engine

Bastien Louche | 24/02/2010 | 13:08

Lors de mon dernier stage en entreprise, j’ai eu pour projet de mettre en place un IDS (Intrusion Detection System) à l’aide de Snort pour la partie IDS et Basic Analysis and Security Engine (BASE) pour l’interprétation graphique des alertes, le système utilisé est Debian Lenny. Ce tutoriel présente succinctement l’installation de Snort et de BASE.

Installation de Snort :

Pré-requis :

apt-get install apache2
apt-get install mysql-server
apt-get install php5 php5-mysql php5-gd php-pear

1 ) Installation de Snort via apt-get install :

apt-get install snort-mysql

Pendant l’installation je sélectionne le réseau 192.168.0.0/24 et je choisis de ne pas installer la base SQL directement.

Si une erreur apparait, il faut supprimer le fichier /etc/snort/db-pending-config

2 ) Installation manuelle de la base SQL sur MySQL :

mysql -u root -p
>create database snort;

Création d’un utilisateur MySQL pour Snort :

>grant all on snort.* to snortuser@localhost identified by ‘snortpwd’;

>flush privileges;

Importation des tables SQL dans la base SQL que je viens de créer.

On dézippe le fichier /usr/share/doc/snort-mysql/create_mysql.gz

mysql -u root -p snort < /usr/share/doc/snort-mysql/create_mysql

3 ) Configuration de Snort :

J’ouvre le fichier de configuration de Snort /etc/snort/snort.conf

Je modifie les lignes entre (#DBSTART#) et (#DBEND#) pour ajouter la configuration SQL.

output database: log, mysql, user=snortuser password=snortpwd dbname=snort host=localhost

Et j’enlève les commentaires pour les lignes suivantes en ajoutant aussi la configuration SQL.

ruletype redalert
{
type alert
output alert_syslog: LOG_AUTH LOG ALERT
output database: log, mysql, user=snortuser password=snortpwd dbname=snort host=localhost
}

Je peux tester Snort avec la commande suivante :

snort –u snort –c /etc/snort/snort.conf

 

Installation de Basic Analysis and Security Engine (BASE) :

Pré-requis :

pear install Mail 

pear upgrade PEAR 

pear install Mail_Mime

pear install Image_Color 

pear install –force Image_Canvas 

pear install –force Image_Graph

1 ) Téléchargement de BASE et ADOdb :

Je télécharge la dernière version de BASE sur http://base.secureideas.net/

Je dézippe le fichier et je le transfère vers le répertoire /var/www

Je télécharge aussi la dernière version de ADOdb (Active Data Objects Data Base) sur http://adodb.sourceforge.net/

Je dézippe le fichier et je le transfère vers le répertoire /var/www/base-X.X.X/

2 ) Installation de BASE via un navigateur :

Je donne les droits d’écriture à l’utilisateur www-data pour réaliser l’installation.

Je me rends sur http://IP/base-X.X.X/ et je fais la configuration de BASE via l’interface graphique en indiquant le chemin vers ADOdb et la configuration SQL de Snort.

3 ) Configuration de BASE :

J’édite le fichier /var/www/base-X.X.X/base_conf.php

J’ajoute la résolution DNS des IP ainsi que la colorisation des alertes :

$resolve_IP= 1;

$colored_alerts = 1;


 Conclusion :

Je peux faire un Nmap vers l’IP de mon IDS et voir si Snort remonte bien les alertes via l’interface BASE disponible sur http://IP/base-X.X.X/base_main.php

Commentaires
50 Commentaires »
Catégories
Tutoriels
Tags
Debian, IDS, IP, Linux, Logiciels Libres, Réseaux, Sécurité, Serveur, Snort, Systèmes, Web
Flux rss des commentaires Flux rss des commentaires
Trackback Trackback

[Tutoriels] Comment tester un serveur DNS pour DNSSEC ?

Bastien Louche | 27/01/2010 | 11:03

Quelques commandes pour Windows et Linux pour savoir si votre installation et vos serveurs DNS seront capables d’accepter des paquets DNS supérieurs à 512 octets, et donc de pouvoir continuer à fonctionner correctement après la migration de tous les serveurs DNS racines en DNSSEC.

 

Windows :

C:\Users\bastien.louche>nslookup -q=txt rs.dns-oarc.net
rs.dns-oarc.net canonical name = rst.x3827.rs.dns-oarc.net
rst.x3827.rs.dns-oarc.net       canonical name = rst.x3837.x3827.rs.dns-oarc.net

rst.x3837.x3827.rs.dns-oarc.net canonical name = rst.x3843.x3837.x3827.rs.dns-oarc.net
rst.x3843.x3837.x3827.rs.dns-oarc.net   text =

  »213.228.63.12 DNS reply size limit is at least 3843 »
rst.x3843.x3837.x3827.rs.dns-oarc.net   text =

  »213.228.63.12 sent EDNS buffer size 4096 »
rst.x3843.x3837.x3827.rs.dns-oarc.net   text =

  »Tested at 2010-01-27 09:51:53 UTC »

 

Linux :

dig +short rs.dns-oarc.net txt
rst.x3827.rs.dns-oarc.net.
rst.x3837.x3827.rs.dns-oarc.net.
rst.x3843.x3837.x3827.rs.dns-oarc.net.
« Tested at 2010-01-27 10:03:38 UTC »
« 94.23.216.250 sent EDNS buffer size 4096 »
« 94.23.216.250 DNS reply size limit is at least 3843« 

 

 Si les différentes valeurs sont inférieures à 2048 octets, votre configuration pourrait rencontrer des problèmes avec le passage en DNSSEC. Dans notre cas, les résultats publiés sont bons, la migration en DNSSEC peut commencer !

 

Sources et Informations supplémentaires : [1] [2]

 

Commentaires
Pas de Commentaires »
Catégories
Tutoriels
Tags
DNS, DNSSEC, Linux, Réseaux, Serveur, Systèmes, Windows
Flux rss des commentaires Flux rss des commentaires
Trackback Trackback

[Annonces] Bonne année 2010 !

Bastien Louche | 04/01/2010 | 09:06

En voilà un bon titre pour commencer cette année 2010 avec un tout nouveau blog, tout beau, tout neuf. J’ai longtemps repoussé la réouverture de mon blog par manque de temps, d’envie, de ligne éditoriale et puis vient le moment des résolutions 2010 et je me suis donc re-motivé à enfin re-mettre en place un blog.

Pour le thème du blog, administration systèmes et réseaux, sécurité et le monde du web en général, en somme quelque chose qui me ressemble, c’est surtout l’occasion pour moi de partager avec vous la veille technologique que j’effectue au quotidien, mais aussi quelques dossiers ou autres tutoriels et pour finir mes projets passés et futurs.

Pour la partie technique,oui c’est un blog de geek en fait, ce site est hébergé sur un super méga serveur dédié, j’annonce un VPS sur Debian Lenny avec 5 Go en guise de disque dur et le must du must 256 Mo de RAM, par contre du coté de l’accès réseaux c’est le top. J’ai donc du optimiser un peu tout ça pour que ça tourne pas trop trop mal, la configuration du serveur/blog fera l’objet d’un article prochainement.

Quelques commandes pour vous montrer les caractéristiques de mon super méga serveur dédié :

vps-bl:~# cat /proc/cpuinfo
model name      : Intel(R) Xeon(R) CPU            5150  @ 2.66GHz
cpu MHz         : 2660.081   cache size      : 4096 KB

vps-bl:~# df -h
Sys. de fich.         Tail. Occ. Disp. %Occ. Monté sur
/dev/sda1             6,6G  1,5G  4,8G  24% /

vps-bl:~# free -m
             total       used       free     shared    buffers     cached
Mem:           247        233         14          0          3         66

vps-bl:~# ping free.fr

64 bytes from www.free.fr(212.27.48.10): icmp_seq=3 ttl=122 time=0.971 ms
64 bytes from
www.free.fr(212.27.48.10): icmp_seq=4 ttl=122 time=0.978 ms

vps-bl:~# wget http://test-debit.free.fr/16384.rnd 
Longueur: 16777216 (16M) [text/plain]

100%[======================================>] 16 777 216  94,1M/s   in 0,2s

Commentaires
5 Commentaires »
Catégories
Annonces
Tags
Blog, Debian, Linux, Réseaux, Serveur, Systèmes, VPS, Web
Flux rss des commentaires Flux rss des commentaires
Trackback Trackback

Recherche

Réseaux sociaux

CV Bastien Louche

Scoop.it – WordPress

Pages

  • CV
  • Contactez-moi

Catégories

  • Annonces (6)
  • Tutoriels (8)

Commentaires récents

  • Bastien Louche dans [Tutoriels] Installation de Snort + Basic Analysis and Security Engine
  • Ben dans [Tutoriels] Installation de Snort + Basic Analysis and Security Engine
  • Jig dans [Tutoriels] Installation de Snort + Basic Analysis and Security Engine
  • Bastien Louche dans [Tutoriels] Installation de Snort + Basic Analysis and Security Engine
  • Jig dans [Tutoriels] Installation de Snort + Basic Analysis and Security Engine

Mots-clefs

Apache Apachebench Blog Cherokee Debian DNS DNSSEC Gandi HAProxy IDS IP iPhone Linux Logiciels Libres Nginx Réseaux Serveur Snort Systèmes Sécurité VPS Web Whois Windows WordPress YOURLS

Twitter

  • Le flux RSS de ce compte twitter ne semble pas disponible pour le moment.

Suivre @bastienlouche sur Twitter.


Promouvoir et soutenir le logiciel libre