GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Best Practices für WordPress-Sicherheit unter Linux

WordPress® ist ein großartiges Content-Management-System (CMS), besonders wenn Sie neu im Bloggen oder Programmieren sind. Aufgrund der hohen Anzahl von WordPress-Installationen ist Wordpress jedoch zum Ziel von Angreifern geworden. Die gute Nachricht ist, dass es viele Schritte gibt, die Sie unternehmen können, um Ihre WordPress-Installation sicherer zu machen.

Linux-Benutzer und -Berechtigungen

Es ist üblich, dass Benutzer, die neu bei WordPress sind, ihre Berechtigungen weit öffnen (777-Berechtigungen festlegen), wenn sie eine Permission Denied sehen Fehler von WordPress. Diese Konfiguration ermöglicht es jedem Benutzer (am wichtigsten, dem Webserverprozess), die Dateien in Ihrer WordPress-Installation zu ändern. Um dies zu verhindern, empfehlen wir, dass Sie für jede WordPress-Installation einen Benutzer als FTP-Benutzer (File Transfer Protocol) für die Website erstellen. Dieser Artikel geht davon aus, dass Sie eine einzelne Site haben und dass Sie diesen Server wp-user nennen .

Verwenden Sie den folgenden Befehl, um diesen Benutzer zu erstellen:

sudo useradd wp-user -d /home/wp-user -m -s /bin/false

Hinweis :Wir empfehlen, nur die Secure Shell (SSH)-Schlüsselauthentifizierung zu verwenden. Wenn Sie die Kennwortauthentifizierung für FTP verwenden möchten, müssen Sie ein sicheres Kennwort für den Benutzer erstellen.

Berechtigungen festlegen

Sie sollten einen anderen Benutzer als den Systembenutzer des Webdienstes zum Eigentümer des Dokumentenstammverzeichnisses Ihrer Website machen. Sie sollten dem Webdienst auch Schreibberechtigungen verweigern. Der Webdienst benötigt nur eine Leseberechtigung, um Inhalte bereitzustellen, und die Zuweisung von Schreib- oder Ausführungsberechtigungen hinterlässt einen Angriffsvektor für Außenstehende. Da WordPress jedoch in der Lage sein muss, Dateien hochzuladen und seinen eigenen Code zu aktualisieren, müssen Sie diese Regeln leicht beugen.

Beispielsweise sollten Sie den Besitz des gesamten Verzeichnisses als wp-user:www-data festlegen .

Diese Einstellung bedeutet, dass wp-user hat Benutzerbesitz und www-data (der Systembenutzer für den Apache®-Webserver) hat Gruppenbesitz. Abhängig von Ihrem Betriebssystem kann dieser Benutzer auch httpd heißen oder apache . Wenn Sie nginx® verwenden, ist der Benutzer nginx . Führen Sie zum Festlegen von Berechtigungen den folgenden Befehl aus und ersetzen Sie dabei den Beispielwert /var/www/example.com/ mit dem Dokumentenstamm Ihrer Website:

sudo chown -R wp-user:www-data /var/www/example.com/

Verwenden Sie die folgenden Basisberechtigungen für Ihre WordPress-Installation:

  • 755 (drwxr-xr-x) für Ordner
  • 644 (-rw-r–r–) für Dateien

Diese Berechtigungen gewähren wp-user die Fähigkeit, alles zu ändern, und der Webserver-Nur-Lese-Zugriff.

Das folgende Beispiel zeigt, wie diese Berechtigungen zugewiesen werden:

find /var/www/example.com/ -type d -exec sudo chmod  755 {} \;
find /var/www/example.com/ -type f -exec sudo chmod 644 {} \;

Diese Berechtigungen gewähren wp-user die Möglichkeit, alles zu ändern, und der schreibgeschützte Zugriff auf den Webserver. Während dies bei statischen Websites üblich ist, gibt es einige Dateien, auf die WordPress zugreifen und die sie ausführen können muss, um richtig zu funktionieren. Die folgende Liste zeigt die Ausnahmen und die Berechtigungen, die Sie festlegen müssen, vorausgesetzt, dass derselbe Dokumentstamm vorhanden ist:

  • find /var/www/example.com/wp-content/uploads -type d -exec sudo chmod 775 {} \;
  • find /var/www/example.com/wp-content/upgrade -type d -exec sudo chmod 775 {} \;
  • find /var/www/example.com/wp-content/themes -type d -exec sudo chmod 775 {} \;
  • find /var/www/example.com/wp-content/plugins -type d -exec sudo chmod 775 {} \;
  • find /var/www/example.com/wp-content/uploads -type f -exec sudo chmod 664 {} \;
  • find /var/www/example.com/wp-content/upgrade -type f -exec sudo chmod 664 {} \;
  • find /var/www/example.com/wp-content/themes -type f -exec sudo chmod 664 {} \;
  • find /var/www/example.com/wp-content/plugins -type f -exec sudo chmod 664 {} \;
  • sudo chmod 775 /var/www/example.com/wp-config.php

WordPress verwendet diese Verzeichnisse für Systemaktualisierungen, Themen- und Plugin-Aktualisierungen und das Hochladen von Blog-Anhängen (am häufigsten Bilder).

WordPress-Admin-Benutzer

Ähnlich wie der Linux®-Root-Benutzer wird Ihre WordPress-Installation mit einem Admin geliefert Benutzer. Da es sich um einen administrativen Benutzer handelt, der in fast jeder WordPress-Installation vorhanden ist, zielen Hacker darauf mit Brute-Force-Angriffen ab. Der einfachste Weg, diesen Angriffsvektor zu schließen, besteht darin, den Admin-Benutzer zu entfernen. Wir empfehlen, dass Sie einen Benutzer mit einem anderen Namen erstellen, diesem Benutzer Administratorrechte erteilen und dann den Admin-Benutzer löschen.

Sichere Updates

FTP ist von Natur aus unsicher, insbesondere wenn Sie die kennwortbasierte Authentifizierung verwenden. Es ist viel sicherer, SSH-Schlüsselaktualisierungen einzurichten, anstatt Passwörter zu verwenden. Verwenden Sie die folgenden Schritte, um SSH-Schlüsselaktualisierungen einzurichten:

  1. Stellen Sie sicher, dass die erforderlichen Pakete auf Ihrem System installiert sind. Führen Sie unter Ubuntu® oder Debian® die folgenden Befehle aus:

    sudo apt-get update
    sudo apt-get install php5-dev libssh2-php libssh2-1-dev
    
  2. Richten Sie Ihren SSH-Zugang ein, indem Sie die folgenden Schritte als wp-user ausführen . Weil du die Anmeldung als wp-user nicht erlaubt hast müssen Sie mit dem folgenden sudo-Befehl eine Shell öffnen:

    sudo -u wp-user /bin/bash
    
  3. Verwenden Sie die folgenden Befehle, um zum wp-user zu wechseln Home-Verzeichnis und SSH-Schlüssel einrichten:

    cd ~
    ssh-keygen -t rsa -b 4096
    mkdir ~/.ssh; cd ~/.ssh
    echo 'from="127.0.0.1"' cat ~/.ssh/id_rsa.pub > authorized_keys
    exit
    
  4. Stellen Sie als Nächstes sicher, dass Sie die Berechtigungen korrekt festlegen, indem Sie die folgenden Befehle verwenden:

    sudo chmod 700 /home/wp-user/.ssh
    sudo chmod 040 /home/wp-user/.ssh/*
    sudo chmod 644 /home/wp-user/.ssh/authorized_keys
    
  5. Fügen Sie die folgenden Zeilen zu Ihrer /var/www/example.com/wp-config.php hinzu Datei:

    define('FTP_PUBKEY','/home/wp-user/id_rsa.pub');
    define('FTP_PRIVKEY','/home/wp-user/id_rsa');
    define('FTP_USER','wp-user');
    define('FTP_PASS','');
    define('FTP_HOST','127.0.0.1:22');
    

Sie sollten in der Lage sein, WordPress, Plug-Ins und Designs zu aktualisieren, ohne zur Eingabe von Anmeldeinformationen aufgefordert zu werden.

Plugins

Wir empfehlen Ihnen, so wenig Plug-Ins wie möglich zu verwenden, um die gewünschten Ergebnisse zu erzielen. Wir empfehlen jedoch, dass Sie die folgenden Plug-Ins verwenden, um die Sicherheit zu erhöhen:

  • WP Security Pro :Dies ist ein All-in-One-Plug-in mit Schutzfunktionen wie Anmeldeschutz, Malware-Scanner, Zwei-Faktor-Authentifizierung und einer Firewall.
  • XML-RPC deaktivieren :Sie können XML-RPC sperren, indem Sie eine .htaccess verwenden Datei. Sofern Sie jedoch keinen zwingenden Grund haben, die Fernsteuerung Ihrer WordPress-Installation zu benötigen, ist es besser, sie zu deaktivieren, um Pingback-Angriffe zu verhindern.
  • Disqus Hinweis:Da das eingebaute Benutzerkommentarsystem für WordPress sehr anfällig für Spam ist, empfehlen wir Ihnen, die offene Registrierung zu deaktivieren. Gehen Sie dazu zu Einstellungen> Allgemein , und deaktivieren Sie dann Jeder kann sich registrieren . Verwenden Sie dann stattdessen Disqus, um Kommentare zu moderieren, und lassen Sie Benutzer sich mit ihren Facebook®- oder Google®-Konten authentifizieren.

Linux
  1. Was ist ein Linux-Benutzer?

  2. Best Practices für die OpenSSH-Sicherheit

  3. Benutzer in Linux auflisten - Beste Methode

  4. Linux-su-Befehl

  5. Best Practices für die Sicherheit von Windows-Servern

Linux-Server-Härtung – Best Practices

Ubuntu Server Setup – Best Practices für die Sicherheit

Linux vs. Windows-Sicherheit

5 Best Practices für Linux SSH-Sicherheit zum Schutz Ihrer Systeme

Die 20 besten Linux-Sicherheitstools:Die Wahl des Linux-Experten

20+ beste Linux-Kamerasoftware | IP, Webcam, CCTV &Überwachungskamera