Ça va pas être possible avec vos baskets

Dans ma boîte, l'équipe sécurité a publié voila quelques mois de cela un module pour nginx: un firewall applicatif du nom de naxsi.

Ce module, sous licence GPLv2, je viens de le publier dans pkgsrc current sous la forme d'une option de www/nginx. Je me propose de vous montrer ici comment sécuriser simplement votre serveur web / proxy inverse nginx grâce à naxsi.

Premièrement, si comme moi (et comme il se doit) vous utilisez une branche stable de pkgsrc, mettez simplement à jour www/nginx comme ceci:

Puis spécifiez à pkgsrc que vous souhaitez activer l'option naxsi pour le paquet nginx:

Ceci fait, reconstruisez le paquet comme d'habitude:

Dans la configuration de nginx, incluez les règles par défaut de naxsi de cette façon:

Comme vous pourrez le constater, le fichier /usr/pkg/etc/nginx/naxsi_core.rules contient un set de règles déjà très efficaces contre bon nombre d'attaques connues. Reste alors à activer le filtrage sur une location et choisir quels types d'attaques vous souhaitez bloquer; par exemple: location / { SecRulesEnabled; CheckRule “$SQL >= 8” BLOCK; CheckRule “$RFI >= 8” BLOCK; CheckRule “$TRAVERSAL >= 4” BLOCK; CheckRule “$EVADE >= 4” BLOCK; CheckRule “$XSS >= 8” BLOCK; Un redémarrage de nginx plus loin, on essayera par exemple d'accéder à une adresse louche:

Et de constater dans /var/log/nginx/error.log:

Moi j'trouve ça assez classe tout de même.

Toutes les infos relatives à la configuration de naxsi sont disponibles sur le Wiki de ce dernier.