Gehärtete Distribution Rocky nginx: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „ ==Installation von Nginx== *sudo dnf install nginx ==nginx: HTTPS-VirtualHost für rocky.it113.int== ===Zertifikate besorgen=== *cd /etc/nginx/ssl/ *wget h…“)
 
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 5: Zeile 5:
 
*sudo dnf install nginx
 
*sudo dnf install nginx
  
==nginx: HTTPS-VirtualHost für rocky.it113.int==
+
==nginx: HTTPS-VirtualHost für rocky.it213.int==
 
===Zertifikate besorgen===
 
===Zertifikate besorgen===
 +
*sudo -i
 +
*mkdir /etc/nginx/ssl/
 
*cd /etc/nginx/ssl/
 
*cd /etc/nginx/ssl/
*wget https://web.samogo.de/certs/rocky.it113.int.crt
+
*wget https://web.samogo.de/certs/star.it213.int.crt
*wget https://web.samogo.de/certs/rocky.it113.int.key
+
*wget https://web.samogo.de/certs/star.it213.int.key
  
 
===Konfigurationsdatei anlegen===
 
===Konfigurationsdatei anlegen===
*vi /etc/nginx/conf.d/rocky.it113.int.conf
+
*vi /etc/nginx/conf.d/rocky.it213.int.conf
 
<pre>
 
<pre>
 
  server {
 
  server {
 
     listen 80;
 
     listen 80;
 
     listen [::]:80;
 
     listen [::]:80;
     server_name rocky.it113.int;
+
     server_name rocky.it213.int;
 
     return 301 https://$host$request_uri;
 
     return 301 https://$host$request_uri;
 
  }
 
  }
Zeile 30: Zeile 32:
 
     index index.html index.htm;
 
     index index.html index.htm;
  
     ssl_certificate /etc/nginx/ssl/rocky.it113.int.crt;
+
     ssl_certificate /etc/nginx/ssl/star.it213.int.crt;
     ssl_certificate_key /etc/nginx/ssl/rocky.it113.int.key;
+
     ssl_certificate_key /etc/nginx/ssl/star.it213.int.key;
  
 
     location / {
 
     location / {

Aktuelle Version vom 3. Juli 2025, 09:31 Uhr


Installation von Nginx

  • sudo dnf install nginx

nginx: HTTPS-VirtualHost für rocky.it213.int

Zertifikate besorgen

Konfigurationsdatei anlegen

  • vi /etc/nginx/conf.d/rocky.it213.int.conf
 server {
     listen 80;
     listen [::]:80;
     server_name rocky.it213.int;
     return 301 https://$host$request_uri;
 }

 server {
     listen 443 ssl;
     listen [::]:443 ssl;

     server_name rocky.it113.int;

     root /var/www/rocky;
     index index.html index.htm;

     ssl_certificate /etc/nginx/ssl/star.it213.int.crt;
     ssl_certificate_key /etc/nginx/ssl/star.it213.int.key;

     location / {
         try_files $uri $uri/ =404;
     }
 }

Verzeichnisstruktur vorbereiten

Verzeichnis für Inhalte anlegen
  • mkdir -p /var/www/rocky

Startseite erzeugen

Script herunterladen (außerhalb des DocumentRoot)
HTML-Seite erzeugen
  • ./webgen.sh rocky > /var/www/rocky/index.html

nginx neu starten

Konfiguration übernehmen
  • systemctl restart nginx
Status prüfen
  • systemctl status nginx

Zugriff

Erster Versuch

  • Beim ersten Zugriffsversuch schlägt die Verbindung fehl – die Ursache liegt in der aktiven Host-Firewall.

Firewall konfigurieren

HTTPS (Port 443) freigeben
  • firewall-cmd --permanent --add-service=https
HTTP (Port 80) freigeben – notwendig für Redirect
  • firewall-cmd --permanent --add-service=http
Firewall neu laden
  • firewall-cmd --reload
Aktive Regeln anzeigen
  • firewall-cmd --list-all

Zweiter Versuch

  • Auch der zweite Versuch schlägt fehl – diesmal verhindert SELinux den Zugriff auf das Verzeichnis.

SELinux

Fehleranalyse

SELinux-Blockaden anzeigen
  • ausearch -m avc -ts recent

Lösung

Zugriff erlauben
  • chcon -Rt httpd_sys_content_t /var/www/rocky
nginx neu laden
  • systemctl reload nginx
Kontext prüfen
  • ls -Zd /var/www/rocky

Exkurs

  • SELinux (Security-Enhanced Linux) ist eine Sicherheitsfunktion im Linux-Kernel zur Zugriffskontrolle.
  • Es verwendet Sicherheitskontexte, um genau zu steuern, welche Prozesse auf welche Ressourcen zugreifen dürfen.
  • SELinux blockiert Zugriffe auch dann, wenn die Dateiberechtigungen eigentlich ausreichen würden.
  • Dadurch wird die Systemsicherheit erhöht und kompromittierte Dienste können isoliert werden.
  • Unter Rocky Linux ist SELinux standardmäßig aktiv und muss bei Webservern berücksichtigt werden.
  • Nach dem Setzen des SELinux-Kontexts httpd_sys_content_t erkennt SELinux das Verzeichnis als Webinhalt, und der Webserver darf darauf zugreifen.

Fazit

  • Rocky Linux ist bereits in der Standardinstallation mit sicherheitsrelevanten Features wie SELinux und einer restriktiven Firewall ausgestattet.
  • Diese Anleitung zeigt exemplarisch, wie mit wenigen Schritten ein Webserver aufgesetzt werden kann, der diese Mechanismen berücksichtigt.
  • Damit ist Rocky eine solide Grundlage für den sicheren Betrieb produktiver Dienste – bereits „ab Werk“ leicht gehärtet.