Gehärtete Distribution Rocky: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 5: Zeile 5:
 
*Dabei wird besonders auf sicherheitsrelevante Aspekte geachtet, die den gehärteten Zustand des Systems unterstreichen.   
 
*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.
 
*Das Beispiel basiert auf dem Hostnamen '''rocky.it113.int''' und verwendet reale Konfigurationsbefehle und typische Pfade.
 
 
==Installation==
 
==Installation==
 
{| class="wikitable"
 
{| class="wikitable"
Zeile 34: Zeile 33:
 
| '''Netz''' || DMZ
 
| '''Netz''' || DMZ
 
|}
 
|}
 
+
*[[Gehärtete Distribution Rocky nginx]]
==Installation von Nginx==
 
*sudo dnf install nginx
 
 
 
==nginx: HTTPS-VirtualHost für rocky.it113.int==
 
===Zertifikate besorgen===
 
*cd /etc/nginx/ssl/
 
*wget https://web.samogo.de/certs/rocky.it113.int.crt
 
*wget https://web.samogo.de/certs/rocky.it113.int.key
 
 
 
===Konfigurationsdatei anlegen===
 
*vi /etc/nginx/conf.d/rocky.it113.int.conf
 
<pre>
 
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;
 
    }
 
}
 
</pre>
 
 
 
===Verzeichnisstruktur vorbereiten===
 
;Verzeichnis für Inhalte anlegen
 
*mkdir -p /var/www/rocky
 
 
 
===Startseite erzeugen===
 
;Script herunterladen (außerhalb des DocumentRoot)
 
*cd /root
 
*wget https://xinux.de/downloads/html/webgen.sh
 
*chmod +x webgen.sh
 
 
 
;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.
 

Version vom 26. April 2025, 08:08 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