Gehärtete Distribution Rocky: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 45: Zeile 45:
  
 
===Konfigurationsdatei anlegen===
 
===Konfigurationsdatei anlegen===
*/etc/nginx/conf.d/rocky.it113.int.conf
+
*vi /etc/nginx/conf.d/rocky.it113.int.conf
 
+
<pre>
 
  server {
 
  server {
 
     listen 80;
 
     listen 80;
Zeile 70: Zeile 70:
 
     }
 
     }
 
  }
 
  }
 +
</pre>
  
 
===Verzeichnisstruktur vorbereiten===
 
===Verzeichnisstruktur vorbereiten===

Version vom 25. April 2025, 12:10 Uhr

Einführung

  • Rocky Linux ist eine auf Stabilität und Sicherheit ausgelegte Enterprise-Distribution und eignet sich besonders gut für produktive Serverumgebungen.
  • Ein zentrales Merkmal von Rocky ist die konsequente Voreinstellung sicherheitsrelevanter Mechanismen wie SELinux und einer restriktiven Firewall.
  • In dieser Anleitung wird exemplarisch gezeigt, wie ein Webserver unter Rocky Linux eingerichtet wird – inklusive HTTPS, SELinux-Anpassungen und Firewallkonfiguration.
  • Dabei wird besonders auf sicherheitsrelevante Aspekte geachtet, die den gehärteten Zustand des Systems unterstreichen.
  • Das Beispiel basiert auf dem Hostnamen rocky.it113.int und verwendet reale Konfigurationsbefehle und typische Pfade.

Installation

Einstellung Wert
Name rocky.it113.int
IP-Adresse 10.88.1xx.81/24
Gateway 10.88.1xx.1
Nameserver 10.88.1xx.1
Search-Domain it113.int
Festplatte 20 GByte
RAM 4 GByte
Benutzername kit
Benutzerpasswort kit
Administrator root
Administratorpasswort radler
Netz DMZ

Installation von Nginx

  • sudo dnf install nginx

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

Zertifikate besorgen

Konfigurationsdatei anlegen

  • vi /etc/nginx/conf.d/rocky.it113.int.conf
 server {
     listen 80;
     listen [::]:80;
     server_name rocky.it113.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/rocky.it113.int.crt;
     ssl_certificate_key /etc/nginx/ssl/rocky.it113.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.