Verwandeln Sie Ihr WordPress in Fort Knox
Wie man WordPress in eine geschützte Festung wie Fort Knox verwandelt
English version: Turn your WordPress into Fort Knox
Dieser Artikel geht davon aus, dass wir eine kugelsichere, geschützte Website erhalten möchten, die von WordPress unterstützt wird. Es ist nicht notwendig, alle folgenden Schritte Wort für Wort und Punkt für Punkt genau wie beschrieben durchzuführen. Aber ich empfehle das, wenn Sie Ihr eigenes Fort Knox erstellen möchten.
Einige der folgenden Schritte könnten eine Ursache für einige Inkompatibilitätsprobleme mit einigen seltsamen Plugins sein, die versuchen, Dateien direkt in den WordPress-Ordnern zu ändern. Ich empfehle, solche Plugins zu ignorieren, da ihre Verwendung sofort oder in Zukunft zu vielen Problemen und Sicherheitsproblemen führen kann, wenn Hacker Löcher in den Plugins oder dem Design untersuchen, das auf Ihrer Website installiert ist. Ich habe diesen Artikel in der Hoffnung erstellt, dass er nützlich sein wird, aber ohne jegliche Garantie.
Hinweis: Dieser Artikel gilt nicht, wenn Sie Shared Hosting verwenden. Sie müssen mindestens eine VPS-gehostete Website haben.
Anforderungen: Root-Zugriff auf den Linux-Server, auf dem Ihre Website gehostet wird. Wenn Sie keinen Shell-Zugriff mit Root-Rechten haben, können Sie nichts Nützliches tun, um eine wirklich geschützte Website zu erstellen. Es gibt keine Möglichkeit oder kein Plugin, das WordPress und Dateien in seinen Verzeichnissen auf PRO-Ebene schützen kann. Alle Sicherheits-Plugins haben die gleichen Privilegien (Berechtigungen) wie Hacker und Bots. Keine Ausnahmen. Wenn ein Sicherheits-Plugin einige Änderungen an Dateien Ihrer Website vorgenommen hat, um sie zu schützen, kann jeder Hacker oder bösartiger Code diese Änderungen rückgängig machen oder den Schutz entfernen.
Hier sind einige wichtige Punkte zu meinem Ansatz
- Alle Codedateien (PHP-Code) und alle .htaccess-Dateien müssen schreibgeschützt sein. Keine Ausnahmen
- Wir müssen alle Standardeinstellungen (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 ein paar oder drei Alphabetsymbole. Einige WordPress-spezifische Angriffe und Angreifer gehen davon aus, dass das Tabellenpräfix wp_
ist. Das Ändern des Präfixes hilft uns, einige SQL-Injection-Angriffe zu blockieren.
Schritt zwei. Härten der Website auf WordPress-Ebene
- Verschieben Sie den Uploads -Ordner eine Ebene nach oben, aus dem Ordner /wp-content/ in das Stammverzeichnis Ihres WordPress-Installationsordners.
- Benennen Sie den Ordner „ Uploads “ in „ Medien “ um (oder so ähnlich, was immer Sie möchten).
- Benennen Sie den Ordner wp-content in content um (oder so ähnlich, was immer Sie wollen).
- Benennen Sie den Plugins -Ordner in mod um (oder so ähnlich, was immer Sie wollen).
- Füge die folgenden Zeilen am Anfang der Datei wp-config.php hinzu , vergiss nicht, media , content , mod auf die tatsächlichen Werte zu ändern, die du zuvor ausgewählt hast.
define('AUTOMATIC_UPDATER_DISABLED', true ); // Ja, es ist sicher, es manuell zu tun
define('DISALLOW_FILE_EDIT', true ); // Wir gestatten niemandem, Ihre Dateien zu berühren
define('DISALLOW_FILE_MODS', true ); // Ja, es ist sicher, es manuell zu tun
define('FS_METHOD', 'direct'); // kein FTP natürlich
define('WP_HTTP_BLOCK_EXTERNAL', true );
define('UPLOADS', ' media ' ); // Wir haben Uploads umbenannt und auf eine höhere Ebene verschoben
define('WP_CONTENT_DIR', '/path/to/wordpress/dir/ content '); // kein Hostname, kein abschließender Schrägstrich
define(' WP_CONTENT_URL ', 'http://example.com/content');
define('WP_PLUGIN_DIR', '/path/to/wordpress/dir/ content / mod '); // kein Hostname, kein abschließender Schrägstrich
define(' WP_PLUGIN_URL ', ' http://example.com/content/mod ');
ini_set('display_errors',0); // Deaktivieren Sie die Anzeige von PHP-Fehlern im Frontend
Schritt drei. Standardnamen für Cookies ändern.
Füge 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 unmittelbar nach der Installation von WordPress ein Sicherheits-Plugin
Schützen Sie Ihre Anmeldeseite mit WP Cerber Security . Selbst mit den oben genannten Schutzmaßnahmen werden Hacker versuchen, Brute-Force-Angriffe (Anmeldeversuche) anzuwenden, um die Tür auf Ihrer WordPress-Website zu knacken. Verstecken und schließen Sie diese Tür mit WP Cerber.
Schritt fünf. Härten der Website auf Serverebene.
Bei 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 es auf einen anderen Benutzer ändern, den Sie zuvor zu diesem Zweck erstellt haben. Nehmen wir an, dieser Benutzer ist cerber .
- Legen Sie die .htaccess-Datei in den Medienordner (Ihren neuen Uploads-Ordner) mit der folgenden Anweisung darin. Dadurch wird verhindert, dass die Website hochgeladenen bösartigen PHP-Code ausführt.
php_flag-Engine aus
Hinweis: Die Apache-Konfigurationsdatei muss die
AllowOverride Options
Anweisung für Ihren Uploads-Ordner oder einen seiner übergeordneten Ordner enthalten, damit diese Anweisung funktioniert. - Ändern Sie für das gesamte Website-Verzeichnis (/path/to/wordpress/dir) den Eigentümer und die Berechtigungen für alle Dateien. Führen Sie dazu die folgenden Befehle in der Shell aus.
find /path/to/wordpress/dir -exec chown cerber:root {} +
find /path/to/wordpress/dir -type d -exec chmod 755 {} +
find /path/to/wordpress/dir -type f -exec chmod 644 {} + - Für das Upload-Verzeichnis (/path/to/wordpress/dir/ media ) müssen wir spezielle Berechtigungen setzen. Lassen Sie uns das mit exec-Befehlen in der Shell tun
find /path/to/wordpress/dir/ media -exec chown cerber:apache {} +
find /path/to/wordpress/dir/ media -type d -exec chmod 775 {} +
find /path/to/wordpress/dir/ 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 zu schreiben.
chown cerber:root /path/to/wordpress/dir/.htaccess
chmod 644 /path/to/wordpress/dir/.htaccess - Verschieben Sie die Datei wp-config.php in das Verzeichnis über Ihrem WordPress-Installationsverzeichnis.
Schritt sechs. Härten der Website auf NGINX-Serverebene
Lesen Sie hier: WordPress härten mit WP Cerber und NGINX
Schritt sieben. Härtung der Website mit Fail2Ban
Lesen Sie hier: So schützen Sie WordPress mit Fail2Ban