Zum Inhalt springen

WordPress absichern mit HestiaCP


🛡️ WordPress-Website unter HestiaCP absichern – mit sicheren HTTP-Headers zum A+ Rating

Letztes Update: Juni 2025 – kompatibel mit HestiaCP + Nginx + PHP-FPM


🔍 Warum sind HTTP-Sicherheits-Header so wichtig?

Moderne Browser bieten viele Sicherheitsfunktionen – aber sie müssen vom Webserver explizit aktiviert werden. Fehlen diese sogenannten „Security Headers“, sind selbst gut gepflegte Webseiten anfällig für:

  • Clickjacking
  • MIME-Sniffing-Angriffe
  • Referrer-Leaks (Datenschutzprobleme)
  • Missbrauch von Browser-APIs
  • Schwachstellen durch Inline-Skripte (XSS)

Besonders bei WordPress ist es sinnvoll, direkt auf Webserver-Ebene mit Nginx abzusichern – bevor überhaupt ein Plugin geladen wird.


🎯 Ziel dieser Anleitung

Du lernst, wie Du unter HestiaCP folgende HTTP-Header dauerhaft aktivierst:

add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "geolocation=(), microphone=(), camera=()" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self' https:; style-src 'self' https:;" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header Cross-Origin-Embedder-Policy require-corp always;
add_header Cross-Origin-Opener-Policy same-origin always;
add_header Cross-Origin-Resource-Policy same-origin always;

Damit erreichst Du:

  • A oder A+ Sicherheitsbewertungen
  • Schutz vor den häufigsten Schwachstellen

🧰 Voraussetzungen

  • HestiaCP mit Nginx + PHP-FPM aktiviert
  • WordPress-Seite läuft über HTTPS
  • Zugang per SSH (z. B. über Terminal oder PuTTY)

🛠️ Schritt-für-Schritt Anleitung

1. Mit dem Server verbinden

ssh deinbenutzer@deinserver
sudo su -l

2. Nginx-Template duplizieren

cd /usr/local/hestia/data/templates/web/nginx/php-fpm
cp wordpress.tpl wordpress-secure.tpl
cp wordpress.stpl wordpress-secure.stpl

Hinweis:

  • .tpl ist für HTTP (Weiterleitung zu HTTPS)
  • .stpl ist für HTTPS (gesicherte Verbindung)

3. Header in die Vorlagen einfügen

Öffne beide Dateien:

nano wordpress-secure.tpl
nano wordpress-secure.stpl

Füge innerhalb des server {} Blocks, am besten direkt unter access_log, diesen Header-Block ein:

add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "geolocation=(), microphone=(), camera=()" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self' https:; style-src 'self' https:;" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header Cross-Origin-Embedder-Policy require-corp always;
add_header Cross-Origin-Opener-Policy same-origin always;
add_header Cross-Origin-Resource-Policy same-origin always;

🔒 Tipp: Bearbeite niemals die Standard-Templates wie wordpress.tpl direkt – diese werden bei Updates überschrieben.


4. Sicherheitsheader für HTTP-Weiterleitung (optional)

In der wordpress-secure.tpl kannst Du auf Wunsch auch nur minimale Header verwenden:

add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "geolocation=(), microphone=(), camera=()" always;

Diese werden bei der Weiterleitung von HTTP zu HTTPS mitgesendet – das verbessert manche Security-Scans, hat aber keinen funktionalen Einfluss.


5. Eigene Template aktivieren

Du kannst das Template über das HestiaCP-Webinterface zuweisen:

  • Gehe zu Web > Bearbeiten bei deiner Domain
  • Setze das Web Template auf wordpress-secure
  • Speicher die Änderung

Oder per Kommandozeile:

v-change-web-domain-tpl BENUTZERNAME DOMAIN wordpress-secure php-fpm

6. Server-Information verbergen (optional, empfohlen)

In /etc/nginx/nginx.conf:

http {
    ...
    server_tokens off;
    ...
}

Dann:

systemctl restart nginx

Damit wird verhindert, dass Dein Server öffentlich als „nginx“ mit Versionsnummer erkennbar ist.


7. Ergebnis prüfen

Teste Deine Seite mit diesen Tools:

Oder im Terminal:

curl -I https://deinedomain.de

Du solltest alle gesetzten Header im Output sehen.


📦 Ergebnis

Mit dieser Konfiguration erreichst Du:

✅ Ein dauerhaftes A oder A+ Rating bei Sicherheits-Scannern
✅ Eine robuste Webserver-Sicherheitsbasis – ganz ohne Plugins
✅ DSGVO-konforme Header-Strategie (z. B. durch Referrer-Policy, Permissions-Policy)
✅ Eine einfache, updatefeste Lösung dank HestiaCP-Template-System


💬 Fazit

Sichere Header gehören zur Grundausstattung jeder modernen Webpräsenz. Mit nur wenigen Anpassungen in HestiaCP lässt sich eine WordPress-Installation erheblich härten – ohne Performance-Verlust oder Kompatibilitätsprobleme.

Diese Lösung ist:

  • leicht nachvollziehbar
  • updatesicher
  • vollständig dokumentiert
  • praxisbewährt


Stand: Juni 2025


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert