COME AT ME BRO
Devant la recrudescence d’inscription de robots et parce qu’on y pense depuis un moment, le site que vous avez sous les yeux est désormais servi par le célèbre nginx, muni du plugin naxsi, un logiciel sous licence GPLv2 issu des labos de la société dans laquelle je travaille.
On ne présente plus le serveur HTTP/S/Reverse Proxy/Proxy mail nginx, cependant naxsi est un outil qui gagne à être connu. Il s’agit d’un Web Application Firewall dont la particularité est d’agir en mode “rejet par défaut”, il revient à l’administrateur d’autoriser des actions valides. Par exemple, alors que des chaînes |, ;, /* */, 0x, select, update, drop et j’en passe sont a priori anormales dans une URI, un champs GET ou POST, certains logiciels complexes comme WordPress en font usage. Dans ce cas de figure, une simple whitelist permet d’en autoriser l’utilisation. Par exemple, dans la variable POST siteurl, WordPress utilise la chaine “http://” dont on pourrait soupçonner qu’elle permet de réaliser un Cross-Site-Scripting. Le blocage de cette technique a l’id 1100 dans le fichier de règles naxsi (naxsi_core.rules). Aussi, nous ajoutons la Basicrule suivante :
BasicRule wl:1100 "mz:$BODY_VAR:siteurl";
qui permet de whitelister la règle 1100 pour la variable siteurl.
Nous avons utilisé, pour le WordPress qui fait tourner GCU-Squad, la configuration que j’utilise déjà pour mon site personnel depuis plusieurs semaines.
La chaîne complète :
- NetBSD 5.1.2
- nginx 1.2.6 + naxsi 0.49
- PHP FPM 5.3.19
- Varnish 2.1.3
Pour finir, l’auteur de naxsi se trouve à moins de 10 mètres de moi dans les locaux de mon entreprise et est interrogeable sur le canal IRC du jardin magique, aussi n’hésitez pas à remonter vos idées, remarques, scénarios et succès !
Posté dans Gruik | 4 Comments »


February 4th, 2013 at 1:39 pm
Bonjour,
jolie configuration ! Pourquoi utiliser a la fois varnish et nginx ?
Merci.
February 4th, 2013 at 2:14 pm
Varnish est en amont, il sert de reverse-proxy cache pour plusieurs sites. Nginx est le serveur web qui sert le site GCU.
February 4th, 2013 at 2:50 pm
Merci pour cette réponse.
Je pensais que Nginx pouvait faire du cache pour ses propres requêtes. C’est plus clair maintenant :)
February 4th, 2013 at 8:47 pm
nginx *peut* faire du cache, je l’utilise par ailleurs dans d’autres plateformes. Ici il sert “seulement” de serveur HTTP.