13 juin 2015 | Posted in:Securisation

Par tous les moyens, vous cherchez à protéger votre réseau. Vous déployez un firewall pour bloquer les accès et les protéger de l’anti-spoofing, un fail2ban contre le brut force, rkhunter et compagnie, mais comment sécuriser les sites web que vous hébergez ??? Êtes-vous sûr que leur développement respecte les règles de l’art, qu’ils sont bien patchés avec les versions à jour… Il existe pourtant des solutions. Explorons ensemble la mise en place d’un web applicatif firewall appelé entre-amis WAF.

WAF le firewall pour vos applications web

Le principe du WAF est assez simple, un WAF se place entre internet et votre application web. Il va intercepter toutes les requêtes http pour les analyser suivant des règles de filtrage permettant de repérer les attaques et de les bloquer.
Il existe plusieurs modèles de WAF, nous allons ici mettre en place le module d’apache modsecurity. Vous pouvez bien sûr mettre directement votre waf sur votre serveur où sont les sites internets, mais ici je vais vous montrer comment mutualiser un WAF.

Schema waf mutualisé

schéma de flux pour infrastructure serveur web protégé par un waf

 

Explication de l infrastructure réseaux WAF

J ai choisi de mettre le serveur WAF sur un esxi pour plusieurs raison. D abord c est un serveur qui doit pouvoir évoluer suivant notre datacenter, une machine virtuelle offre cette flexibilité. Ensuite j ai fait le choix de donner une interface réseaux sur le WAF pour chaque serveur web que protégera le WAF. J ai donc une interface pour l administration et une pour chaque serveur web soit ici 3 en tout.
Pourquoi sommes toutes une interface par serveur web. Et bien tout simplement parce que cela m apporte de nombreux avantages de configurations je trouve. Pour le proxy je peux tout rediriger par l ip et non par le nom de domaine. Très utilie lorsque l’on a un serveur web hébergeant plusieurs nom de domaine.

 

Installation du WAF et du PROXY

On part d’une debian 7 fron scratch.

On commence par installer le serveur web apache et le modsecurity et le mod proxy

On active tout le monde

 

Réglons tout de suite un bug de load de module. Si vous ne le faites pas vous aurez cette erreur dans votre /var/log/error.log

Il suffit de faire ceci :

Paramétrage Modsecurity

on paramètre modsecurity

On l’édite

On active complètement modescurity

en

Puis rajouter juste après

Modifiez

En

Enfin

En

Dé-commentez

et pour activer des règles on ajoute

Attention l’include ne marche pas de manière récursive il faut toujours spécifier tous les répertoires ou vous avez des règles à charger.

Trouvez des règles pour le modsecurity

Par défault le modsecurity ne comporte pas de règle il faut en installer dans le dossier /etc/modsecurity/activerules/.

Il existe plusieurs sources gratuites ou payantes. Voici quelques liens.

A vous de faire votre choix.

En annexe un petit document à lire pour vous

http://www.ssi.gouv.fr/uploads/IMG/cspn/anssi-cspn-cible_2010-05fr.pdf

Configuration du Proxy

Pour rappel, nous avons détourné le flux http (port 80) allant sur le serveur web1 (192.168.1.40) vers le serveur waf sur son interface 192.168.1.4.

Il faut donc maintenant via apache rediriger le flux sur le serveur web1 grâce au mod_proxy

On active le virtualhost et on recharge

Modification des logs sur les serveurs Web

Si vous regardez les logs de votre serveur web, vous n’aurez plus que l’ip de l’interface du waf. Pour cela, il faut modifier le LogFormat afin qu’il reprenne en compte l’ip de l’internaute.

Éditez le fichier apache2.conf

Commenter la ligne

ce qui donne

et ajoutez en dessous

Il suffit maintenant d’appliquer le tout

Conclusion

Nous venons de rajouter une couche en plus pour la protection de votre infrastructure, de plus nous l’avons centralisé en un endroit, ce qui facilite l’entretien. N’oubliez pas que sans les règles un WAF ne sert à rien, il faut donc les mettre à jour régulièrement.

Be the first to comment.

Leave a Reply


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

*