dev-sec.nginx-hardening
nginx-hardening (Rôle Ansible)
Attention : Ce rôle a été migré vers notre collection de renforcement :
Exigences
- Ansible >= 2.5
Variables du Rôle
- nginx_client_body_buffer_size
- Par défaut :
1k
- Description : Définit la taille du tampon pour la lecture du corps de la requête du client. Si le corps de la requête est plus grand que le tampon, tout le corps ou une partie est écrit dans un fichier temporaire.
- Par défaut :
- nginx_remove_default_site
- Par défaut :
true
- Description : Désactive le site par défaut. Mettez sur false pour activer le site par défaut dans nginx.
- Par défaut :
- nginx_client_max_body_size
- Par défaut :
1k
- Description : Définit la taille maximale autorisée du corps de la requête du client, spécifiée dans le champ d'en-tête "Content-Length". Si la taille d'une requête dépasse la valeur configurée, une erreur 413 (Request Entity Too Large) est renvoyée au client.
- Par défaut :
- nginx_keepalive_timeout
- Par défaut :
5 5
- Description : Le premier paramètre définit un délai d'attente pendant lequel une connexion client keep-alive reste ouverte côté serveur. La valeur zéro désactive les connexions clients keep-alive. Le deuxième paramètre facultatif définit une valeur dans le champ d'en-tête de réponse "Keep-Alive: timeout=time".
- Par défaut :
- nginx_server_tokens
- Par défaut :
off
- Description : Désactive l'envoi de la version de nginx dans les messages d'erreur et dans le champ d'en-tête de réponse "Server". Mettez sur on pour activer la version de nginx dans les messages d'erreur et le champ d'en-tête "Server".
- Par défaut :
- nginx_client_header_buffer_size
- Par défaut :
1k
- Description : Définit la taille du tampon pour lire l'en-tête de la requête du client. Pour la plupart des requêtes, un tampon de 1 Ko suffit.
- Par défaut :
- nginx_large_client_header_buffers
- Par défaut :
2 1k
- Description : Définit le nombre maximum et la taille des tampons utilisés pour lire de grands en-têtes de requête du client.
- Par défaut :
- nginx_client_body_timeout
- Par défaut :
10
- Description : Définit un délai d'attente pour la lecture du corps de la requête du client.
- Par défaut :
- nginx_client_header_timeout
- Par défaut :
10
- Description : Définit un délai d'attente pour la lecture de l'en-tête de la requête du client.
- Par défaut :
- nginx_send_timeout
- Par défaut :
10
- Description : Définit un délai d'attente pour transmettre une réponse au client.
- Par défaut :
- nginx_limit_conn_zone
- Par défaut :
$binary_remote_addr zone=default:10m
- Description : Définit des paramètres pour une zone mémoire partagée qui conservera les états pour différentes clés.
- Par défaut :
- nginx_limit_conn
- Par défaut :
default 5
- Description : Définit la zone mémoire partagée et le nombre maximal de connexions autorisées pour une valeur de clé donnée.
- Par défaut :
- nginx_add_header
- Par défaut :
[ "X-Frame-Options SAMEORIGIN", "X-Content-Type-Options nosniff", "X-XSS-Protection \"1; mode=block\"" ]
- Description : Ajoute le champ spécifié à un en-tête de réponse à condition que le code de réponse soit 200, 201, 204, 206, 301, 302, 303, 304 ou 307.
- Par défaut :
- nginx_ssl_protocols
- Par défaut :
TLSv1.2
- Description : Spécifie le protocole SSL à utiliser.
- Par défaut :
- nginx_ssl_ciphers
- Par défaut : voir defaults.yml
- Description : Spécifie les chiffrements TLS à utiliser.
- nginx_ssl_prefer_server_ciphers
- Par défaut :
on
- Description : Spécifie que les chiffrements du serveur doivent être préférés à ceux du client lors de l'utilisation des protocoles TLS. Mettez sur false pour désactiver cela.
- Par défaut :
- nginx_dh_size
- Par défaut :
2048
- Description : Spécifie la longueur des paramètres DH pour les chiffrements EDH.
- Par défaut :
Installation
Installez le rôle avec ansible-galaxy :
ansible-galaxy install dev-sec.nginx-hardening
Exemple de Playbook
- hosts: localhost
roles:
- dev-sec.nginx-hardening
Test Local
La méthode préférée pour tester localement le rôle est d'utiliser Docker. Vous devez installer Docker sur votre système. Consultez Démarrer pour obtenir un package Docker adapté à votre système.
Vous pouvez également utiliser Vagrant et Virtualbox ou VMWare pour exécuter des tests localement. Vous devrez installer Virtualbox et Vagrant sur votre système. Consultez Téléchargements Vagrant pour un package Vagrant adapté à votre système. Pour tous nos tests, nous utilisons test-kitchen
. Si vous n'êtes pas familier avec test-kitchen
, veuillez consulter leur guide.
Ensuite, installez test-kitchen :
# Installer les dépendances
gem install bundler
bundle install
Test avec Docker
# test rapide sur une machine
bundle exec kitchen test default-ubuntu-1204
# test sur toutes les machines
bundle exec kitchen test
# pour le développement
bundle exec kitchen create default-ubuntu-1204
bundle exec kitchen converge default-ubuntu-1204
Test avec Virtualbox
# test rapide sur une machine
KITCHEN_YAML=".kitchen.vagrant.yml" bundle exec kitchen test nginx-ansible-19-ubuntu-1404
# test sur toutes les machines
KITCHEN_YAML=".kitchen.vagrant.yml" bundle exec kitchen test
# pour le développement
KITCHEN_YAML=".kitchen.vagrant.yml" bundle exec kitchen create nginx-ansible-19-ubuntu-1404
KITCHEN_YAML=".kitchen.vagrant.yml" bundle exec kitchen converge nginx-ansible-19-ubuntu-1404
Pour plus d'informations, consultez test-kitchen
Contribuer
Voir guide du contributeur.
Licence et Auteur
- Auteur : Sebastian Gumprich
Distribué sous la Licence Apache, Version 2.0 (la "Licence") ; vous ne pouvez pas utiliser ce fichier en dehors des conditions de la Licence. Vous pouvez obtenir une copie de la Licence à l'adresse
http://www.apache.org/licenses/LICENSE-2.0
À moins que la loi n'en dispose autrement ou qu'un accord ne soit convenu par écrit, le logiciel distribué sous la Licence est distribué "EN L'ÉTAT", SANS GARANTIES NI CONDITIONS D'AUCUNE SORTE, explicites ou implicites. Voir la Licence pour les permissions spécifiques et les limitations en vertu de la Licence.
This Ansible role provides secure nginx configurations. http://dev-sec.io/
ansible-galaxy install dev-sec.nginx-hardening