alivx.ansible_cis_nginx_hardening

Ansible CIS Nginx Absicherung Build Status (noch in Testphase)

Basierend auf dem CIS NGINX Benchmark v1.0.0 - 28.02.2019

Nginx ist einer der am häufigsten verwendeten kostenlosen und Open-Source-Webserver für das Hosting von stark frequentierten Websites. Es ist bekannt für seine Stabilität, außergewöhnliche Leistung, geringen Ressourcenverbrauch und einfache Konfiguration. Die Standardkonfigurationen sind nicht sicher, und zusätzliche Anpassungen sind notwendig, um den Webserver zu verstärken und die benötigte Sicherheit gegen Angriffe und Datenverletzungen zu gewährleisten. Dieses Werkzeug sorgt für eine sichere Konfiguration für NGINX, das auf Ubuntu läuft.

Bewertungsinformationen

  • Der Bewertungsstatus zeigt an, ob die Einhaltung der gegebenen Empfehlung die bewertete Benchmark-Punktzahl beeinflusst. Die folgenden Bewertungsstatus werden in diesem Benchmark verwendet:

Bewertet (in diesem Werkzeug implementiert)

  • Die Nichteinhaltung von „Bewerteten“ Empfehlungen verringert die endgültige Benchmark-Punktzahl. Die Einhaltung von „Bewerteten“ Empfehlungen erhöht die endgültige Benchmark-Punktzahl.

Unbewertet (nicht in diesem Werkzeug implementiert)

  • Die Nichteinhaltung von „Unbewerteten“ Empfehlungen verringert nicht die endgültige Benchmark-Punktzahl. Die Einhaltung von „Unbewerteten“ Empfehlungen erhöht nicht die endgültige Benchmark-Punktzahl.

Die Hauptvorteile der Verwendung von NGINX-Paketen Ihres Anbieters sind:

  • Einfache Installation
  • Abhängigkeitsauflösung
  • Effektivere Wartung und Sicherheitsupdates
  • Q&A-Verfahren, die von Ihrem Anbieter durchgeführt werden

Anforderungen

Da dieses Werkzeug das neueste Nginx-Paket aus dem Betriebssystem-Repository installiert, stellen Sie sicher, dass Sie dieses Werkzeug auf einem frischen Nginx-Server ausführen; dies wird den Installationsprozess übernehmen.

Es kann funktionieren, wenn Sie Nginx bereits auf Ihrem Server installiert haben.


Werkzeugvariablen

Die Konfiguration sieht wie folgt aus:

large_client_header_buffers: "2 1k"
client_max_body_size: "100K"
client_body_timeout: 10
client_header_timeout: 10
strict_transport_security_max_age: 15768000 #max-age-Direktive mit 15768000 Sekunden (sechs Monate) oder mehr
nginx_site_config_dir: /etc/nginx/sites-available/
#Oder ALL:!EXP:!NULL:!ADH:!LOW:!SSLv2:!SSLv3:!MD5:!RC4;
ssl_ciphers: ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384

nginx_key: /etc/ssl/private/nginx-selfsigned.key
nginx_cert: /etc/ssl/certs/nginx-selfsigned.crt

backendserver: http://localhost:3000
backendserver_ssl: True

access_log: /var/log/nginx/alivx.com.access.log
error_log: /var/log/nginx/alivx.com.error.log warn

domainName: 172.16.186.129

Abhängigkeiten


Beispiel-Playbook

Hier ist ein Beispiel, wie Sie Ihr Werkzeug verwenden können (zum Beispiel mit Variablen, die als Parameter übergeben werden):

---
- hosts: host1
  become: yes
  remote_user: root
  gather_facts: no
  roles:
    - { role: "ansible-cis-nginx-hardening" }

Benchmarks

  • 1 Initiale Einrichtung
  • 1.1 Installation
  • 1.1.1 Sicherstellen, dass NGINX installiert ist (Bewertet)
  • 1.2 Software-Updates konfigurieren
  • 2 Grundkonfiguration
  • 2.1 NGINX-Module minimieren
  • 2.1.2 Sicherstellen, dass das HTTP WebDAV-Modul nicht installiert ist (Bewertet)
  • 2.1.3 Sicherstellen, dass Module mit gzip-Funktionalität deaktiviert sind (Bewertet)
  • 2.1.4 Sicherstellen, dass das autoindex-Modul deaktiviert ist (Bewertet)
  • 2.2 Kontosicherheit
  • 2.2.2 Sicherstellen, dass das NGINX-Dienstkonto gesperrt ist (Bewertet)
  • 2.2.3 Sicherstellen, dass das NGINX-Dienstkonto eine ungültige Shell hat (Bewertet)
  • 2.3 Berechtigungen und Eigentum
  • 2.3.1 Sicherstellen, dass NGINX-Verzeichnisse und -Dateien im Besitz von root sind (Bewertet)
  • 2.3.2 Sicherstellen, dass der Zugang zu NGINX-Verzeichnissen und -Dateien eingeschränkt ist (Bewertet)
  • 2.3.3 Sicherstellen, dass die PID-Datei (Prozess-ID) von NGINX gesichert ist (Bewertet)
  • 2.4 Netzwerkkonfiguration
  • 2.4.1 Sicherstellen, dass NGINX nur auf autorisierten Ports Netzwerkverbindungen annimmt (Unbewertet)
  • 2.4.3 Sicherstellen, dass keepalive_timeout auf 10 Sekunden oder weniger, aber nicht 0 gesetzt ist (Bewertet)
  • 2.4.4 Sicherstellen, dass send_timeout auf 10 Sekunden oder weniger, aber nicht 0 gesetzt ist (Bewertet)
  • 2.5 Informationsoffenlegung
  • 2.5.1 Sicherstellen, dass die Direktive server_tokens auf off gesetzt ist (Bewertet)
  • 2.5.2 Sicherstellen, dass die Standardfehler- und index.html-Seiten NGINX nicht erwähnen (Bewertet)
  • 2.5.4 Sicherstellen, dass der NGINX-Reverse-Proxy keine Informationsoffenlegung ermöglicht (Bewertet)
  • 3 Protokollierung
  • 3.2 Sicherstellen, dass die Zugriffsprotokollierung aktiviert ist (Bewertet)
  • 3.3 Sicherstellen, dass die Fehlerprotokollierung aktiviert ist und auf das Informationsprotokollierungsniveau eingestellt ist (Bewertet)
  • 3.4 Sicherstellen, dass Protokolldateien rotiert werden (Bewertet)
  • 3.7 Sicherstellen, dass Proxys die Quell-IP-Informationen weitergeben (Bewertet)
  • 4 Verschlüsselung
  • 4.1 TLS / SSL-Konfiguration
  • 4.1.1 Sicherstellen, dass HTTP auf HTTPS umgeleitet wird (Bewertet)
  • 4.1.3 Sicherstellen, dass die Berechtigungen für den privaten Schlüssel eingeschränkt sind (Bewertet)
  • 4.1.4 Sicherstellen, dass nur moderne TLS-Protokolle verwendet werden (Bewertet)
  • 4.1.5 Schwache Chiffren deaktivieren (Bewertet)
  • 4.1.6 Sicherstellen, dass benutzerdefinierte Diffie-Hellman-Parameter verwendet werden (Bewertet)
  • 4.1.7 Sicherstellen, dass das Online Certificate Status Protocol (OCSP) Stapling aktiviert ist (Bewertet)
  • 4.1.8 Sicherstellen, dass die HTTP Strict Transport Security (HSTS) aktiviert ist (Bewertet)
  • 4.1.10 Sicherstellen, dass der Datenverkehr zu Upstream-Servern mit einem Client-Zertifikat authentifiziert wird (Bewertet)
  • 4.1.13 Sicherstellen, dass die Sitzungswiederherstellung deaktiviert ist, um perfekte Vorwärtssicherheit zu gewährleisten (Bewertet)
  • 5 Anfragefilterung und -beschränkungen
  • 5.1 Zugriffskontrolle
  • 5.2 Anfragegrenzen
  • 5.2.1 Sicherstellen, dass die Zeitüberschreitungswerte für das Lesen des Client-Headers und des Körpers korrekt eingestellt sind (Bewertet)
  • 5.2.2 Sicherstellen, dass die maximale Anfragekörpersgröße korrekt eingestellt ist (Bewertet)
  • 5.2.3 Sicherstellen, dass die maximale Puffergröße für URIs definiert ist (Bewertet)
  • 5.3 Browsersicherheit
  • 5.3.1 Sicherstellen, dass der X-Frame-Options-Header konfiguriert und aktiviert ist (Bewertet)
  • 5.3.2 Sicherstellen, dass der X-Content-Type-Options-Header konfiguriert und aktiviert ist (Bewertet)
  • 5.3.3 Sicherstellen, dass der X-XSS-Schutz-Header aktiviert und korrekt konfiguriert ist (Bewertet)

Lizenz

GNU GENERAL PUBLIC LICENSE

Autoreninformation

Das Werkzeug wurde ursprünglich von Ali Saleh Baker entwickelt.

Bitte diskutieren Sie Änderungen an diesem Repository zunächst über ein GitHub-Problem, eine E-Mail oder andere Kanäle mit mir :)

Installieren
ansible-galaxy install alivx.ansible_cis_nginx_hardening
GitHub Repository
Lizenz
agpl-3.0
Downloads
132
Besitzer
Everything