Bastien Louche

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

[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] Comment avoir une Debian stable à jour ?

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

Lors de l’écriture de cet article la version stable de Debian était Debian Lenny.

Notre installation de Debian Lenny est terminée, et nous voulons maintenant pouvoir installer nos paquets préférés, pour notre exemple nous choisirons apache2 php5 et mysql-server. Mais nous constatons très vite que les versions de ces derniers, disponibles sur les dépôts officiels de Debian Lenny, sont assez obsolètes.

Nous allons donc mettre en place une solution, nous permettant tout en restant sur notre Debian Lenny de bénéficier des dernières versions de nos paquets préférés.

 

Nous pouvons pour ça utiliser d’autres dépôts plus ou moins officiels :

- Debian Backports : Les paquets sont plus récents et adaptés à la version stable de Debian.

- Debian Volatile : Les paquets qui changent très souvent de version sont disponibles (Par exemple le paquet clamav).

- Debian Testing : Les paquets sont disponibles à leurs dernières versions.

 

Nous modifions le contenu du fichier /etc/apt/sources.list pour y ajouter les nouvelles sources :

# Debian Lenny
deb http://ftp.fr.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ lenny main contrib non-free

# Debian Lenny Security
deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free

# Debian Lenny — Backports
deb http://www.backports.org/debian lenny-backports main contrib non-free

# Debian Lenny — Volatile
deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free

# Debian Testing
deb http://ftp.fr.debian.org/debian/ testing main contrib non-free


Ensuite nous créons le fichier /etc/apt/preferences pour y entrer nos préférences de choix parmis les sources :

 
Package: *
Pin: release o=Backports.org archive,a=lenny-backports
Pin-Priority: 995

Package: *
Pin: release o=volatile.debian.org,a=stable
Pin-Priority: 800

Package: *
Pin: release o=Debian,a=stable
Pin-Priority: 800

Package: *
Pin: release o=Debian,a=testing
Pin-Priority: 700

 

Nous pouvons maintenant passer à l’installation de nos paquets préférés (L’exemple concerne mysql-server mais les commandes sont les mêmes pour apache2, php5 et tout les autres paquets) :

debian:~# aptitude update

 

Nous utilisons la commande apt-cache policy pour voir les versions proposées sur les différents dépôts (Par exemple pour mysql-server, nous constatons de grandes différences entre les versions disponibles) :

debian:~# apt-cache policy mysql-server
mysql-server:
Installé : (aucun)
Candidat : 5.1.43-1~bpo50+1
Table de version :
5.1.43-1~bpo50+1 0
995
http://www.backports.org lenny-backports/main Packages
5.1.41-3 0
700
http://ftp.fr.debian.org testing/main Packages
5.0.51a-24+lenny3 0
800
http://security.debian.org lenny/updates/main Packages
5.0.51a-24+lenny2+spu1 0
800
http://ftp.fr.debian.org lenny/main Packages

 

 Nous choisissons d’installer la version disponible sur le dépôt Backports pour le paquet mysql-server :

debian:~# apt-get install mysql-server -t lenny-backports

 

/!\ Attention aux dépendances si vous utilisez des paquets en provenance du dépôt Testing.

 

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

Commentaires
Pas de Commentaires »
Catégories
Tutoriels
Tags
Debian, Linux, Logiciels Libres, Systèmes
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