Gehärtete Distribution Rocky: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
=Installation=
+
==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.it213.int''' und verwendet reale Konfigurationsbefehle und typische Pfade.
 +
==Vorbereitung==
 +
Folgendes in die it2xx.int Zone eintragen
 +
rocky IN A 10.88.2xx.81
 +
revproxy IN A 10.88.2xx.81
 +
;Nicht vergessen den Nameserver neu zustarten
 +
 
 +
==Installation==
 
{| class="wikitable"
 
{| class="wikitable"
 
! Einstellung !! Wert
 
! Einstellung !! Wert
 
|-
 
|-
| '''Name''' || rocky.it1xx.int
+
| '''Name''' || rocky.it213.int
 
|-
 
|-
| '''IP-Adresse''' || 10.88.1xx.51/24
+
| '''IP-Adresse''' || 10.88.2xx.81/24
 
|-
 
|-
| '''Gateway''' || 10.88.1xx.1
+
| '''Gateway''' || 10.88.2xx.1
 
|-
 
|-
| '''Nameserver''' || 10.88.1xx.1
+
| '''Nameserver''' || 10.88.2xx.21
 
|-
 
|-
| '''Search-Domain''' || it1xx.int
+
| '''Search-Domain''' || it213.int
 
|-
 
|-
 
| '''Festplatte''' || 20 GByte
 
| '''Festplatte''' || 20 GByte
Zeile 27: Zeile 39:
 
| '''Netz''' || DMZ
 
| '''Netz''' || DMZ
 
|}
 
|}
 +
;Es gibt ein rocky-setup.sh das alles automatisch macht - Danach rebooten und gut ist.
  
=Installation von Nginx=
+
=Erste Amtshandlung=
*sudo dnf install nginx
+
*Rocky als JumpHost eintragen
=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
 
 
 
<pre>
 
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;
 
    }
 
}
 
</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
+
=Beispiele=
*systemctl status nginx
+
*[[Gehärtete Distribution Rocky nginx]]
 +
*[[Gehärtete Distribution Rocky nginx Webproxy]]
 +
*[[Gehärtete Distribution Rocky ssh]]

Aktuelle Version vom 3. Juli 2025, 09:25 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.it213.int und verwendet reale Konfigurationsbefehle und typische Pfade.

Vorbereitung

Folgendes in die it2xx.int Zone eintragen

rocky IN A 10.88.2xx.81
revproxy IN A 10.88.2xx.81
Nicht vergessen den Nameserver neu zustarten

Installation

Einstellung Wert
Name rocky.it213.int
IP-Adresse 10.88.2xx.81/24
Gateway 10.88.2xx.1
Nameserver 10.88.2xx.21
Search-Domain it213.int
Festplatte 20 GByte
RAM 4 GByte
Benutzername kit
Benutzerpasswort kit
Administrator root
Administratorpasswort radler
Netz DMZ
Es gibt ein rocky-setup.sh das alles automatisch macht - Danach rebooten und gut ist.

Erste Amtshandlung

  • Rocky als JumpHost eintragen

Beispiele