Verwandeln Sie Ihr WordPress in Fort Knox
So verwandeln Sie WordPress in eine geschützte Festung wie Fort Knox
English version: Turn your WordPress into Fort Knox
Dieser Artikel geht davon aus, dass wir eine absolut sichere Website mit WordPress erstellen möchten. Es ist nicht unbedingt erforderlich, alle folgenden Schritte Wort für Wort und Punkt für Punkt genau wie beschrieben auszuführen. Ich empfehle dies jedoch, wenn Sie Ihr eigenes Fort Knox erstellen möchten.
Einige der folgenden Schritte können zu Inkompatibilitätsproblemen mit seltsamen Plugins führen, die versuchen, Dateien direkt in den WordPress-Ordnern zu ändern. Ich empfehle, solche Plugins zu ignorieren, da ihre Verwendung unmittelbar oder in Zukunft zu zahlreichen Problemen und Sicherheitsproblemen führen kann, wenn Hacker Sicherheitslücken in den auf Ihrer Website installierten Plugins oder Themes ausnutzen. Ich habe diesen Artikel in der Hoffnung verfasst, dass er hilfreich ist, jedoch ohne jegliche Garantie.
Hinweis: Dieser Artikel ist nicht anwendbar, wenn Sie Shared Hosting verwenden. Sie benötigen mindestens eine VPS-gehostete Site.
Voraussetzungen: Root-Zugriff auf den Linux-Server, auf dem Ihre Website gehostet wird. Ohne Shell-Zugriff mit Root-Rechten können Sie keine wirklich geschützte Website erstellen. Es gibt keine Möglichkeit oder kein Plugin, das WordPress und die Dateien in seinen Verzeichnissen auf PRO-Niveau schützen kann. Alle Sicherheits-Plugins haben die gleichen Rechte wie Hacker und Bots. Keine Ausnahme. Wenn ein Sicherheits-Plugin Änderungen an Dateien Ihrer Website vorgenommen hat, um diese zu schützen, kann jeder Hacker oder Schadcode diese Änderungen rückgängig machen oder den Schutz aufheben.
Hier sind einige wichtige Punkte zu meinem Ansatz
- Alle Codedateien (PHP-Code) und alle .htaccess-Dateien müssen schreibgeschützt sein. Keine Ausnahme
- Wir müssen alle Standardwerte (Ordner, Cookies, Anmeldepfad, alle anderen Orientierungspunkte) auf andere Werte ändern
- Wir dürfen keine Plugins oder Themes verwenden, die mit PHP- oder .htaccess-Dateien in den WordPress-Ordnern arbeiten und versuchen, diese zu ändern
Schritt eins. WordPress installieren
Verwenden Sie nicht das Standardpräfix wp_
für Datenbanktabellen. Verwenden Sie stattdessen zwei oder drei alphabetische Symbole. Einige WordPress-spezifische Angriffe und Angreifer gehen davon aus, dass das Tabellenpräfix wp_
lautet. Durch die Änderung des Präfixes können wir SQL-Injection-Angriffe blockieren.
Schritt zwei. Härtung der Website auf WordPress-Ebene
- Verschieben Sie den Upload- Ordner eine Ebene nach oben, aus dem Ordner /wp-content/ in das Stammverzeichnis Ihres WordPress-Installationsordners.
- Benennen Sie den Upload- Ordner in „Medien“ (oder so ähnlich, was immer Sie möchten) um.
- Benennen Sie den Ordner „wp-content“ in „content“ (oder so ähnlich, was immer Sie möchten) um.
- Benennen Sie den Plugin- Ordner in „mod“ (oder so ähnlich, was immer Sie wollen) um.
- Fügen Sie die folgenden Zeilen am Anfang der Datei wp-config.php hinzu. Vergessen Sie nicht, „media“ , „content“ und „mod“ auf die tatsächlichen Werte zu ändern, die Sie zuvor ausgewählt haben .
define('AUTOMATIC_UPDATER_DISABLED', true ); // ja, es ist sicher, es manuell zu tun
define('DISALLOW_FILE_EDIT', true ); // Wir erlauben niemals jemandem, Ihre Dateien zu berühren
define('DISALLOW_FILE_MODS', true ); // ja, es ist sicher, es manuell zu tun
define('FS_METHOD', 'direct'); // natürlich kein FTP
definieren('WP_HTTP_BLOCK_EXTERNAL', true );
define('UPLOADS', ' media ' ); // wir haben Uploads umbenannt und auf eine höhere Ebene verschoben
define('WP_CONTENT_DIR', '/Pfad/zu/WordPress/Verzeichnis/ Inhalt '); // kein Hostname, kein abschließender Schrägstrich
define('WP_CONTENT_URL', 'http://example.com/ Inhalt ');
define('WP_PLUGIN_DIR', '/Pfad/zu/WordPress/Verzeichnis/ Inhalt / Mod '); // kein Hostname, kein abschließender Schrägstrich
define ( 'WP_PLUGIN_URL', ' http://example.com/inhalt/mod ');
ini_set('display_errors',0); // Anzeige von PHP-Fehlern im Frontend deaktivieren
Schritt drei. Ändern Sie den Standard-Cookie-Namen.
Fügen Sie diese Zeilen am Anfang der Datei wp-config.php hinzu
define('USER_COOKIE', 'my_user_cookie' ); // ändere es in etwas anderes
define('PASS_COOKIE', 'my_pass_cookie' ); // ändere es in etwas anderes
define('AUTH_COOKIE', 'my_auth_cookie' ); // ändere es in etwas anderes
define('SECURE_AUTH_COOKIE', 'my_sec_cookie' ); // ändere es in etwas anderes
define('LOGGED_IN_COOKIE', 'my_logged_cookie' ); // ändere es in etwas anderes
define('TEST_COOKIE', 'my_test_cookie' ); // ändere es in etwas anderes
Schritt vier. Installieren Sie ein Sicherheits-Plugin sofort nach der Installation von WordPress
Schützen Sie Ihre Anmeldeseite mit WP Cerber Security . Selbst mit den oben genannten Schutzmaßnahmen versuchen Hacker mit Brute-Force-Angriffen (Anmeldeversuchen), Ihre WordPress-Website zu knacken. Verbergen und schließen Sie diese Tür mit WP Cerber.
Schritt fünf. Absicherung der Website auf Serverebene.
In diesem Schritt gehe ich davon aus, dass Sie einen Server mit Apache als HTTP-Server verwenden. Wir müssen den Besitzer aller WordPress-Dateien, einschließlich Plugins und Themes, ändern. Standardmäßig ist dieser Benutzer „apache“ . Wir müssen ihn in einen anderen Benutzer ändern, den Sie zuvor für diesen Zweck erstellt haben. Nehmen wir an, dieser Benutzer ist „cerber“ .
- Legen Sie die .htaccess-Datei mit der folgenden Anweisung in den Medienordner (Ihren neuen Upload-Ordner). Dadurch wird verhindert, dass die Website hochgeladenen schädlichen PHP-Code ausführt.
php_flag-Engine aus
Hinweis: Damit diese Anweisung funktioniert, muss die Apache-Konfigurationsdatei die Anweisung
AllowOverride Options
für Ihren Upload-Ordner oder einen seiner übergeordneten Ordner enthalten. - Ändern Sie im gesamten Website-Verzeichnis (/Pfad/zum/WordPress-Verzeichnis) den Besitzer und die Berechtigungen für alle Dateien. Führen Sie dazu die folgenden Befehle in der Shell aus.
find /Pfad/zu/WordPress/Verzeichnis -exec chown cerber:root {} +
find /Pfad/zu/WordPress/Verzeichnis -type d -exec chmod 755 {} +
find /Pfad/zu/WordPress/Verzeichnis -type f -exec chmod 644 {} + - Für das Upload-Verzeichnis (/path/to/wordpress/dir/ media ) müssen wir spezielle Berechtigungen vergeben. Das erledigen wir mit Exec-Befehlen in der Shell.
find /Pfad/zu/WordPress/Verzeichnis/ media -exec chown cerber:apache {} +
find /Pfad/zu/WordPress/Verzeichnis/ media -type d -exec chmod 775 {} +
find /Pfad/zu/WordPress/Verzeichnis/ media -type f -exec chmod 664 {} + - Richten Sie die Permalink-Struktur in den WordPress-Einstellungen ein und ändern Sie dann die Berechtigung für die .htaccess- Datei, um sie schreibgeschützt zu machen.
chown cerber:root /Pfad/zu/WordPress/Verzeichnis/.htaccess
chmod 644 /Pfad/zu/WordPress/Verzeichnis/.htaccess - Verschieben Sie die Datei wp-config.php in das Verzeichnis über Ihrem WordPress-Installationsverzeichnis.
Schritt sechs. Absicherung der Website auf NGINX-Serverebene
Lesen Sie hier: WordPress mit WP Cerber und NGINX härten
Schritt sieben. Absicherung der Website mit Fail2Ban
Lesen Sie hier: So schützen Sie WordPress mit Fail2Ban