🛡️ SSL & Sicherheit

In diesem Kapitel wird die Absicherung der Serverumgebung und der Web-Kommunikation durch SSL/TLS-Zertifikate sowie zusätzliche Schutzmaßnahmen dokumentiert.

1. Erstellung des SSL-Zertifikats

Da das Wiki im lokalen Netzwerk (wiki.local) betrieben wird, wurde ein Self-Signed Zertifikat (selbstsigniertes Zertifikat) mit OpenSSL erstellt.

Verwendete Parameter:

Algorithmus: RSA

Schlüssellänge: 2048 Bit

Gültigkeit: 365 Tage

Terminal-Befehl:

# Generierung des privaten Schlüssels und des Zertifikats
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/apache-selfsigned.key \
-out /etc/ssl/certs/apache-selfsigned.crt

2. Apache SSL-Konfiguration

Damit der Webserver das Zertifikat verwendet, wurde eine dedizierte SSL-VirtualHost-Datei angelegt.

Konfigurationsdatei: /etc/apache2/sites-available/dokuwiki-ssl.conf

Wichtige Zeilen in der Datei:

SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

Aktivierung der Konfiguration:

# Site aktivieren und Webserver neu laden
sudo a2ensite dokuwiki-ssl.conf
sudo systemctl reload apache2

3. Erzwingen von HTTPS (Redirect)

Um sicherzustellen, dass keine unverschlüsselten Verbindungen stattfinden, wurde der gesamte HTTP-Traffic automatisch auf HTTPS umgeleitet.

Anpassung in der Konfiguration (VirtualHost Port 80):

<VirtualHost *:80>
ServerName wiki.local
Redirect permanent / https://wiki.local/
</VirtualHost>

4. Schutz vor Brute-Force-Angriffen (Fail2Ban)

Zur Abwehr von automatisierten Login-Versuchen und zum Schutz des SSH-Ports wurde Fail2Ban implementiert. Das Tool überwacht die Log-Dateien und blockiert IPs temporär nach mehreren fehlgeschlagenen Anmeldeversuchen.

Installation und Aktivierung:

sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Status überprüfen:

# Zeigt an, wie viele IPs aktuell für SSH blockiert sind
sudo fail2ban-client status sshd