Gehärtete Distribution Rocky: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
 +
==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.it1xx.int''' und verwendet reale Konfigurationsbefehle und typische Pfade.
 +
 +
 
=Installation=
 
=Installation=
 
{| class="wikitable"
 
{| class="wikitable"

Version vom 14. April 2025, 04:59 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.it1xx.int und verwendet reale Konfigurationsbefehle und typische Pfade.


Installation

Einstellung Wert
Name rocky.it1xx.int
IP-Adresse 10.88.1xx.51/24
Gateway 10.88.1xx.1
Nameserver 10.88.1xx.1
Search-Domain it1xx.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.it1xx.int unter Rocky Linux

Firewall konfigurieren

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

SELinux: Zugriff auf Webverzeichnisse freischalten

Standardmäßig sind manuell angelegte Verzeichnisse wie /var/www/braun durch SELinux blockiert.

Damit nginx darauf zugreifen darf, muss der richtige SELinux-Kontext gesetzt werden.

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

Fehleranalyse

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

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.

Konfigurationsdatei anlegen

Die folgende Konfiguration wird als Datei gespeichert unter:

/etc/nginx/conf.d/rocky.it113.int.conf

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

    server_name rocky.it1xx.int;

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

    ssl_certificate /etc/nginx/ssl/rocky.it1xx.int.crt;
    ssl_certificate_key /etc/nginx/ssl/rocky.it1xx.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