Webspace-Sicherheit: Deine digitale Festung gegen Angriffe

Back

Willkommen, Security-Architekt! Dein Webspace ist dein digitales Territorium – und wie jede wertvolle Immobilie braucht es robuste Sicherheitsmaßnahmen. Hier ist deine umfassende Anleitung, um Hacker, Malware und Datenlecks fernzuhalten.

Die 7 Sicherheitsebenen für deinen Webspace

Ebene 1: Zugangskontrollen – Die Zugbrücke

Passwort-Politik:

yaml

Mindestlänge: 12 Zeichen
Komplexität: Groß-/Kleinbuchstaben, Zahlen, Sonderzeichen
Zwei-Faktor-Authentifizierung: Für alle Admin-Zugänge
Passwort-Manager: Empfehlung (Bitwarden, 1Password)
Regelmäßige Änderung: Alle 90 Tage für Admin-Accounts

SSH-Sicherheit (falls verfügbar):

bash

# /etc/ssh/sshd_config
Port 2222                      # Standard-Port 22 ändern
PermitRootLogin no             # Root-Login deaktivieren
PasswordAuthentication no      # Nur SSH-Key erlauben
MaxAuthTries 3                 # Login-Versuche begrenzen
AllowUsers dein_benutzername   # Nur bestimmte Nutzer erlauben

Ebene 2: Dateisystem-Sicherheit – Die Tresorräume

Dateiberechtigungen (Linux):

bash

# Sichere Standard-Berechtigungen
Ordner: 755 (rwxr-xr-x)
Dateien: 644 (rw-r--r--)
Konfigurationsdateien: 600 (rw-------)

# Kritische Verzeichnisse schützen
chmod 750 /var/www/html         # Nur Besitzer und Gruppe
chmod 000 /etc/passwd           # Systemdateien schützen
find /var/www -type f -exec chmod 644 {} \;  # Dateien
find /var/www -type d -exec chmod 755 {} \;  # Verzeichnisse

Sensitive Dateien blockieren:

nginx

# .htaccess für Apache
<FilesMatch "^\.">
    Order allow,deny
    Deny from all
</FilesMatch>

<FilesMatch "(\.(bak|config|sql|fla|psd|ini|log|sh|inc|swp|dist)|~)$">
    Order allow,deny
    Deny from all
</FilesMatch>

Ebene 3: Webserver-Härtung – Die Burgmauern

Apache-Sicherheit:

apache

# httpd.conf oder .htaccess
ServerTokens Prod              # Minimale Server-Informationen
ServerSignature Off            # Keine Server-Signatur
TraceEnable Off                # TRACE-Methode deaktivieren
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-XSS-Protection "1; mode=block"
Header always set X-Content-Type-Options "nosniff"

Nginx-Sicherheit:

nginx

# nginx.conf
server_tokens off;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;

# Clickjacking-Schutz
add_header X-Frame-Options "DENY";
# oder für eigene Domains:
add_header X-Frame-Options "ALLOW-FROM https://deinedomain.de";

Ebene 4: PHP-Sicherheit – Die Innenverteidigung

php.ini Härtung:

ini

; Kritische Sicherheitseinstellungen
expose_php = Off
display_errors = Off
log_errors = On
allow_url_fopen = Off
allow_url_include = Off
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
disable_classes = 
open_basedir = /var/www/html  ; Nur dieses Verzeichnis erlauben

WordPress-spezifisch (wp-config.php):

php

// Sicherheitseinstellungen für WordPress
define('DISALLOW_FILE_EDIT', true);  // Editor im Admin deaktivieren
define('FORCE_SSL_ADMIN', true);     // SSL für Admin erzwingen
define('WP_DEBUG', false);           // Debug-Modus aus
define('AUTOMATIC_UPDATER_DISABLED', false);  // Updates erlauben

// Security Keys regelmäßig erneuern
// https://api.wordpress.org/secret-key/1.1/salt/

Ebene 5: Datenbank-Sicherheit – Der Geheimarchiv

MySQL/MariaDB Härtung:

sql

-- Sicherer Datenbank-User erstellen
CREATE USER 'webuser'@'localhost' IDENTIFIED BY 'starkes-passwort';
GRANT SELECT, INSERT, UPDATE, DELETE ON datenbank.* TO 'webuser'@'localhost';
FLUSH PRIVILEGES;

-- Nicht benötigte Rechte entziehen
REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'%';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');

-- Remote-Zugriff deaktivieren (falls nicht benötigt)
bind-address = 127.0.0.1

SQL-Injection Prevention (PHP Beispiel):

php

// UNSICHER
$query = "SELECT * FROM users WHERE id = " . $_GET['id'];

// SICHER mit Prepared Statements
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = :id");
$stmt->execute(['id' => $_GET['id']]);
$results = $stmt->fetchAll();

Ebene 6: Malware-Schutz – Die Pestabwehr

Datei-Integritätsmonitoring:

bash

# Tripwire-ähnliches Monitoring mit AIDE
sudo apt install aide
sudo aideinit
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db

# Regelmäßige Checks
sudo aide --check

# Automatische Überwachung mit inotify
sudo apt install inotify-tools
inotifywait -m -r /var/www/html --format '%w%f %e' -e create,modify,delete

Malware-Scanner:

bash

# ClamAV installieren
sudo apt install clamav clamav-daemon
sudo freshclam  # Virendefinitionen aktualisieren
sudo clamscan -r /var/www/html --bell --remove=yes

# Automatisierter Scan (Cronjob)
0 2 * * * /usr/bin/clamscan -r /var/www/html --log=/var/log/clamav/scan.log

Ebene 7: Monitoring & Response – Die Wachposten

Logfile-Überwachung:

bash

# Wichtige Logs im Auge behalten
tail -f /var/log/apache2/access.log    # Zugriffe
tail -f /var/log/apache2/error.log     # Fehler
tail -f /var/log/auth.log              # Authentifizierung
tail -f /var/log/mysql/error.log       # Datenbank

# Fail2ban für automatischen Schutz
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Fail2ban Konfiguration:

ini

# /etc/fail2ban/jail.local
[apache-auth]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache2/error.log
maxretry = 3
bantime = 3600

[wordpress]
enabled = true
filter = wordpress
logpath = /var/www/html/wp-content/debug.log
maxretry = 5
bantime = 86400

Sicherheits-Tools für deinen Webspace

Kostenlose Security-Scanner

yaml

WPScan:          WordPress-spezifischer Scanner
Nikto:           Webserver-Sicherheitsscanner
Nmap:            Port-Scanner und Netzwerk-Analyse
OpenVAS:         Umfassende Vulnerability Assessment Suite
Lynis:           Security Auditing Tool für Linux

Online Security-Checks

text

SSL Labs:        SSL/TLS Konfiguration testen
Security Headers: HTTP-Security-Header prüfen
Mozilla Observatory: Umfassender Security-Check
Google Safe Browsing: Auf Malware prüfen

Backup-Strategie: Dein Sicherheitsnetz

3-2-1 Backup-Regel

yaml

3 Kopien:  Original + 2 Backups
2 Medien:  Z.B. Server + Externe Festplatte
1 extern:  Cloud-Backup an anderem Ort

Automatisiertes Backup-Skript

bash

#!/bin/bash
# backup.sh

BACKUP_DIR="/backups"
DATE=$(date +%Y-%m-%d_%H-%M-%S)
DB_NAME="deine_datenbank"
DB_USER="dein_user"

# Datenbank dumpen
mysqldump -u$DB_USER -p $DB_NAME > $BACKUP_DIR/db_$DATE.sql
gzip $BACKUP_DIR/db_$DATE.sql

# Webfiles backup
tar -czf $BACKUP_DIR/files_$DATE.tar.gz /var/www/html

# Alte Backups löschen (älter als 30 Tage)
find $BACKUP_DIR -name "*.gz" -mtime +30 -delete

# Optional: Zu Cloud syncen
rclone copy $BACKUP_DIR remote:backups/

Backup-Testplan

text

Täglich:    Inkrementelle Backups
Wöchentlich: Vollbackup
Monatlich:  Backup-Restore-Test durchführen
Jährlich:   Disaster-Recovery-Übung

Notfallplan: Wenn es doch passiert

Schadensbegrenzung bei Hack

bash

# Sofortmaßnahmen:
1. Server vom Netz nehmen / in Maintenance-Mode
2. Alle Passwörter zurücksetzen
3. Malware-Scan durchführen
4. Backup vom Vortag prüfen
5. Logfiles analysieren (Eintrittsvektor finden)
6. Sicherheitslücke schließen
7. Sauberes Backup einspielen
8. Server wieder online nehmen

Forensik-Checkliste

text

☐ Zugriffslogfiles sichern
☐ Veränderte Dateien identifizieren
☐ Ungewöhnliche Prozesse dokumentieren
☐ Datenbank auf Manipulation prüfen
☐ Timeline des Angriffs rekonstruieren
☐ Meldeplicht prüfen (DSGVO)

Sicherheits-Audit: Deine monatliche Inspektion

Monatlicher Security-Check

markdown

1. [ ] Alle Software updaten (OS, PHP, CMS, Plugins)
2. [ ] Passwörter ändern (Admin, DB, FTP)
3. [ ] Backups testen (Restore durchführen)
4. [ ] Logfiles auf verdächtige Aktivitäten prüfen
5. [ ] Security-Header mit Observatory testen
6. [ ] Malware-Scan durchführen
7. [ ] Zugriffsrechte überprüfen
8. [ ] SSL-Zertifikat erneuern (falls nötig)

Besondere Risiken und Gegenmaßnahmen

Brute-Force-Angriffe

nginx

# Rate Limiting in Nginx
limit_req_zone $binary_remote_addr zone=login:10m rate=5r/m;

location /wp-login.php {
    limit_req zone=login burst=3 nodelay;
    # ... restliche Konfiguration
}

DDoS-Angriffe

yaml

Prävention:
- Cloudflare oder ähnlichen CDN/DDoS-Schutz nutzen
- Rate Limiting auf Server-Ebene
- WAF (Web Application Firewall) einsetzen
- Überflüssige Services deaktivieren

Reaktion:
- Traffic-Quellen identifizieren
- IPs bei Hosting-Provider melden
- Auf Backup-Server umschalten

Zero-Day-Exploits

text

Strategie:
1. Monitoring von Security-Blogs
2. Automatische Updates aktivieren
3. Intrusion Detection System (IDS)
4. Application Whitelisting
5. Regelmäßige Penetration-Tests

Security-by-Design: Von Anfang an sicher

Sichere Entwicklungspraktiken

yaml

Input-Validierung:  Alle Nutzereingaben validieren
Output-Encoding:    Ausgaben escapen (XSS-Schutz)
Least Privilege:    Minimale notwendige Rechte
Defense in Depth:  Mehrere Sicherheitsebenen
Regelmäßige Audits: Code-Reviews & Security-Tests

Die 10 Sicherheits-Gebote

  1. Aktualisiere immer! Patches sind deine erste Verteidigungslinie

  2. Backup ist kein Backup, bis du es erfolgreich restauriert hast

  3. Minimiere Angriffsflächen – Deaktiviere, was du nicht brauchst

  4. Prinzip der geringsten Rechte – Niemand bekommt mehr als nötig

  5. Monitor alles – Keine Blindflüge in deiner Sicherheit

  6. Verschlüssele alles – Daten im Transit und at Rest

  7. Segmentiere – Ein kompromittierter Bereich soll andere nicht gefährden

  8. Authentifiziere stark – 2FA wo immer möglich

  9. Logge und auditiere – Für Forensik und Compliance

  10. Bilde dich weiter – Security ist ein Prozess, kein Zustand

Abschluss: Dein Security-Workflow

Täglich:

  • Logfiles überfliegen

  • Verfügbarkeit prüfen

  • Sicherheitsmeldungen checken

Wöchentlich:

  • Backups verifizieren

  • Updates prüfen

  • Schnellscan durchführen

Monatlich:

  • Vollständiges Security-Audit

  • Passwörter ändern

  • Penetration-Test (wenn möglich)

Jährlich:

  • Security-Strategie überprüfen

  • Notfallplan aktualisieren

  • Team-Schulung (falls vorhanden)

Denke daran: Sicherheit ist keine Einmalaufgabe, sondern ein kontinuierlicher Prozess. Der beste Schutz ist ein mehrschichtiger Ansatz, der Angreifern an jeder Ecke das Leben schwer macht.

Bleib wachsam und baue smart! 🔒🏰

More blog articles

  Du suchst nach einem neuen Server oder Webhosting und wirst von günstigen Lockangeboten überschüttet? Vorsicht – was auf den ersten Blick wie ein Schnäppchen aussieht, kann langfristig zu einer teuren Überraschung werden. Wir zeigen d...

Was ist eigentlich... Webspace? Einfach erklärt (nicht nur für Oma!) Hast du schon mal von Webspace gehört und gedacht: "Was soll das sein?" Keine Sorge, du bist nicht allein. Viele Leute wissen nicht, was das ist - dabei nutzen sie es jeden Tag....

Du hast bereits erste Erfahrungen mit Minecraft Servern gesammelt und möchtest jetzt deinen eigenen, professionellen Server aufsetzen? Egal ob du mit Mods, Plugins oder im klassischen Vanilla-Stil spielen willst – dieser Guide führt dich durch die wichtigsten...