Bunkerized Nginx - L'image Docker Nginx sécurisée
Bunkerized-nginx est un projet disponible sur Github qui est tout simplement une image Docker du serveur Nginx (j’ai justement fait une formation sur Nginx et compagnie pour ceux qui veulent) qui intègre de base toutes les customisations et fichiers de config nécessaires à la sécurisation de votre serveur web.
Le support HTTPS avec Let’s Encrypt est activé, tout ce qui concerne l’état de l’art en matière de sécurité web est également paramétré comme les entêtes HTTP de sécurité, le renforcement du php.ini, du paramétrage pour éviter que votre serveur ne donne trop d’infos.
Le ModSecurity WAF (firewall applicatif) est également présent et intègre l’ensemble des règles poussées par l’OWASP. Fail2ban est également de la partie pour bannir automatiquement les IPs qui feraient des choses pas très catholiques sur votre machine, sans oublier la possibilité d’avoir des challenges de sécurité tels que des captcha (ou recaptcha)…etc.
Cette image docker effectue également du DNSBL (DNS Black Listing) permettant de bloquer des IPs connues pour être nocives. Une limite est également intégrée pour prévenir les attaques par bruteforce, et pour tout ce qui est malware, ClamAV est aussi intégré dans cette image pour vous protéger.
Petit truc amusant, Bunkerized-nginx est capable de tromper certains scanners qui viendraient analyser votre système :
Si vous voulez lancer un serveur web (HTTP) avec Bunkerized Nginx, entrez la ligne de commande suivante :
docker run -p 80:80 -v /path/to/web/files:/www bunkerity/bunkerized-nginx
Si vous voulez du HTTPS (sécurisé), c’est pareil sauf qu’il faut spécifier l’emplacement où seront stockés les certificats ainsi que le nom de domaine lié à votre serveur :
docker run -p 80:80 -p 443:443 -v /path/to/web/files:/www -v /where/to/save/certificates:/etc/letsencrypt -e SERVER_NAME=www.yourdomain.com -e AUTO_LETS_ENCRYPT=yes -e REDIRECT_HTTP_TO_HTTPS=yes bunkerity/bunkerized-nginx
Et pour ceux qui veulent du PHP (php-fpm), vous devrez spécifier l’adresse d’un PHP-FPM distant qui interprétera les .php.
docker network create mynet docker run --network mynet -p 80:80 -v /path/to/web/files:/www -e REMOTE_PHP=myphp -e REMOTE_PHP_PATH=/app bunkerity/bunkerized-nginx docker run --network mynet --name=myphp -v /path/to/web/files:/app php:fpm
Si vous utilisez NGINX en reverse proxy, vous pouvez passer la véritable IP des clients avec le paramètre PROXY_REAL_IP.
docker run -p 80:80 -v /path/to/web/files:/www -e PROXY_REAL_IP=yes bunkerity/bunkerized-nginx
Enfin, pour activer le challenge antibot sous la forme d’un captcha par défaut, entrez la commande suivante. L’antibot peut également se matérialiser par la demande d’un cookie, ou par l’exécution d’un JavaScript de votre choix.
docker run -p 80:80 -v /path/to/web/files:/www -e USE_ANTIBOT=captcha bunkerity/bunkerized-nginx
Il y a encore beaucoup de choses à dire sur Bunkerized Nginx notamment au niveau du paramétrage, mais la doc que vous trouverez ici est vraiment claire et bien faite, donc vous n’aurez aucun souci à customiser cette image Docker renforcée de Nginx.
Photo par Louis Mornaud
Entièrement dédiée à la cybersécurité, l'école Guardia est accessible soit directement après le bac (post-bac), soit après un bac+2 ou bac+3. En rejoignant l'école Guardia, vous deviendrez développeur informatique option cybersécurité (Bac+3) ou expert en cybersécurité (Bac+5).