dev-sec.nginx-hardening

nginx-Härtung (Ansible-Rolle)

Achtung: Diese Rolle wurde in unsere Härtungs-Sammlung migriert:

Anforderungen

  • Ansible >= 2.5

Rollenvariablen

  • nginx_client_body_buffer_size

    • Standard: 1k
    • Beschreibung: Legt die Puffergröße für das Lesen des Anforderungskörpers des Clients fest. Wenn der Anforderungskörper größer als der Puffer ist, wird der gesamte Körper oder nur ein Teil in eine temporäre Datei geschrieben.
  • nginx_remove_default_site

    • Standard: true
    • Beschreibung: Deaktiviert die Standardseite. Auf false setzen, um die Standardseite in nginx zu aktivieren.
  • nginx_client_max_body_size

    • Standard: 1k
    • Beschreibung: Legt die maximal erlaubte Größe für den Anforderungskörper des Clients fest, wie im „Content-Length“-Header angegeben. Wenn die Größe in einer Anfrage den konfigurierten Wert überschreitet, wird der Fehler 413 (Anforderungsentität zu groß) an den Client zurückgegeben.
  • nginx_keepalive_timeout

    • Standard: 5 5
    • Beschreibung: Der erste Parameter legt eine Zeitüberschreitung fest, während der eine Keep-Alive-Clientverbindung auf dem Server offen bleibt. Der Wert null deaktiviert Keep-Alive-Clientverbindungen. Der optionale zweite Parameter legt einen Wert im „Keep-Alive: timeout=time“-Antwort-Header fest.
  • nginx_server_tokens

    • Standard: off
    • Beschreibung: Deaktiviert die Ausgabe der nginx-Version in Fehlermeldungen und im "Server"-Antwort-Header. Auf an setzen, um die nginx-Version in Fehlermeldungen und im "Server"-Antwort-Header zu aktivieren.
  • nginx_client_header_buffer_size

    • Standard: 1k
    • Beschreibung: Setzt die Puffergröße zum Lesen der Anforderungskopfzeilen des Clients. Für die meisten Anfragen reicht ein Puffer von 1K Bytes aus.
  • nginx_large_client_header_buffers

    • Standard: 2 1k
    • Beschreibung: Legt die maximale Anzahl und Größe der Puffer fest, die zum Lesen großer Anforderungskopfzeilen des Clients verwendet werden.
  • nginx_client_body_timeout

    • Standard: 10
    • Beschreibung: Definiert eine Zeitüberschreitung für das Lesen des Anforderungskörpers des Clients.
  • nginx_client_header_timeout

    • Standard: 10
    • Beschreibung: Definiert eine Zeitüberschreitung für das Lesen der Anforderungskopfzeilen des Clients.
  • nginx_send_timeout

    • Standard: 10
    • Beschreibung: Setzt eine Zeitüberschreitung für die Übertragung einer Antwort an den Client.
  • nginx_limit_conn_zone

    • Standard: $binary_remote_addr zone=default:10m
    • Beschreibung: Legt Parameter für eine gemeinsame Speicherzone fest, die Status für verschiedene Schlüssel speichert.
  • nginx_limit_conn

    • Standard: default 5
    • Beschreibung: Setzt die gemeinsame Speicherzone und die maximal erlaubte Anzahl von Verbindungen für einen bestimmten Schlüsselwert.
  • nginx_add_header

    • Standard: [ "X-Frame-Options SAMEORIGIN", "X-Content-Type-Options nosniff", "X-XSS-Protection \"1; mode=block\"" ]
    • Beschreibung: Fügt das angegebene Feld in die Antwortheader ein, sofern der Antwortcode 200, 201, 204, 206, 301, 302, 303, 304 oder 307 entspricht.
  • nginx_ssl_protocols

    • Standard: TLSv1.2
    • Beschreibung: Gibt das SSL-Protokoll an, das verwendet werden soll.
  • nginx_ssl_ciphers

    • Standard: siehe defaults.yml
    • Beschreibung: Gibt die TLS-Verschlüsselungen an, die verwendet werden sollen.
  • nginx_ssl_prefer_server_ciphers

    • Standard: on
    • Beschreibung: Gibt an, dass die Serververschlüsselungen bei der Verwendung der TLS-Protokolle den Clientverschlüsselungen vorgezogen werden sollen. Auf false setzen, um dies zu deaktivieren.
  • nginx_dh_size

    • Standard: 2048
    • Beschreibung: Gibt die Länge der DH-Parameter für EDH-Verschlüsselungen an.

Installation

Installieren Sie die Rolle mit ansible-galaxy:

ansible-galaxy install dev-sec.nginx-hardening

Beispiel-Playbook

- hosts: localhost
  roles:
    - dev-sec.nginx-hardening

Lokale Tests

Der bevorzugte Weg, die Rolle lokal zu testen, ist die Verwendung von Docker. Sie müssen Docker auf Ihrem System installieren. Siehe Erste Schritte für ein Docker-Paket, das für Ihr System geeignet ist.

Sie können auch Vagrant und Virtualbox oder VMWare verwenden, um Tests lokal durchzuführen. Sie müssen Virtualbox und Vagrant auf Ihrem System installieren. Siehe Vagrant Downloads für ein Vagrant-Paket, das für Ihr System geeignet ist. Für alle unsere Tests verwenden wir test-kitchen. Wenn Sie mit test-kitchen nicht vertraut sind, schauen Sie sich bitte deren Anleitung an.

Als nächstes installieren Sie test-kitchen:

# Abhängigkeiten installieren
gem install bundler
bundle install

Testen mit Docker

# schneller Test auf einem Rechner
bundle exec kitchen test default-ubuntu-1204

# Test auf allen Rechnern
bundle exec kitchen test

# für die Entwicklung
bundle exec kitchen create default-ubuntu-1204
bundle exec kitchen converge default-ubuntu-1204

Testen mit Virtualbox

# schneller Test auf einem Rechner
KITCHEN_YAML=".kitchen.vagrant.yml" bundle exec kitchen test nginx-ansible-19-ubuntu-1404

# Test auf allen Rechnern
KITCHEN_YAML=".kitchen.vagrant.yml" bundle exec kitchen test

# für die Entwicklung
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

Für weitere Informationen siehe test-kitchen.

Mitwirken

Siehe Mitwirkendenrichtlinien.

Lizenz und Autor

  • Autor:: Sebastian Gumprich

Lizenziert unter der Apache Lizenz, Version 2.0 (die "Lizenz"); Sie dürfen diese Datei nicht verwenden, außer Sie halten sich an die Lizenz. Eine Kopie der Lizenz können Sie hier abrufen:

http://www.apache.org/licenses/LICENSE-2.0

Sofern nicht gesetzlich vorgeschrieben oder schriftlich vereinbart, wird die Software, die unter der Lizenz verteilt wird, auf einer "AS IS"-Basis ohne Gewährleistung oder Bedingungen jeglicher Art, weder ausdrücklich noch stillschweigend, angeboten. Siehe die Lizenz für die spezifischen Rechte und Einschränkungen unter der Lizenz.

Über das Projekt

This Ansible role provides secure nginx configurations. http://dev-sec.io/

Installieren
ansible-galaxy install dev-sec.nginx-hardening
Lizenz
Unknown
Downloads
40.8k
Besitzer
Security + DevOps: Automatic Server Hardening