GNU/Linux >> Znalost Linux >  >> Linux

Osvědčené postupy zabezpečení Wordpress v systému Linux

WordPress® je skvělý systém pro správu obsahu (CMS), zvláště pokud s blogováním nebo programováním začínáte. Kvůli vysokému počtu instalací WordPress se však Wordpress stal cílem útočníků. Dobrou zprávou je, že existuje mnoho kroků, které můžete podniknout, aby byla vaše instalace WordPressu bezpečnější.

Uživatelé Linuxu a oprávnění

Je běžné, že uživatelé, kteří jsou ve WordPressu noví, nastaví svá oprávnění dokořán (nastavte 777 oprávnění), když uvidí Permission Denied chyba z WordPressu. Tato konfigurace umožňuje jakémukoli uživateli (co je nejdůležitější proces webového serveru) upravit soubory ve vaší instalaci WordPress. Chcete-li to zablokovat, doporučujeme vytvořit jednoho uživatele pro každou instalaci WordPress jako uživatele protokolu přenosu souborů (FTP) pro web. Tento článek předpokládá, že máte jeden web a že tento server pojmenujete wp-user .

K vytvoření tohoto uživatele použijte následující příkaz:

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

Poznámka :Doporučujeme používat pouze ověřování pomocí klíče Secure Shell (SSH). Pokud plánujete používat ověřování heslem pro FTP, musíte pro uživatele vytvořit silné heslo.

Nastavit oprávnění

Vlastníkem kořenového adresáře dokumentů na vašem webu byste měli udělat jiného uživatele, než je systémový uživatel webové služby. Také byste měli odepřít oprávnění k zápisu webové službě. Webová služba potřebuje k poskytování obsahu pouze oprávnění ke čtení a přiřazení oprávnění k zápisu nebo spouštění k ní ponechává vektor útoku pro nečleny. Protože však WordPress musí umět nahrávat soubory a aktualizovat svůj vlastní kód, musíte tato pravidla mírně ohnout.

Například byste měli nastavit vlastnictví celého adresáře jako wp-user:www-data .

Toto nastavení znamená, že wp-user má vlastnictví uživatele a www-data (uživatel systému pro webový server Apache®) má skupinové vlastnictví. V závislosti na vašem operačním systému se tento uživatel může také jmenovat httpd nebo apache . Pokud používáte nginx®, uživatel je nginx . Chcete-li nastavit oprávnění, spusťte následující příkaz, kterým nahraďte vzorovou hodnotu /var/www/example.com/ s kořenovým adresářem dokumentu vašeho webu:

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

Pro instalaci WordPress použijte následující základní oprávnění:

  • 755 (drwxr-xr-x) pro složky
  • 644 (-rw-r–r–) pro soubory

Tato oprávnění udělují wp-user možnost cokoliv upravovat a webový server má přístup pouze pro čtení.

Následující příklad ukazuje, jak přiřadit tato oprávnění:

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

Tato oprávnění udělují wp-user možnost cokoliv upravit a webový server má přístup pouze pro čtení. I když je to běžná praxe pro statické weby, existují některé soubory, ke kterým musí mít WordPress přístup a musí je spustit, aby správně fungovaly. Následující seznam zobrazuje výjimky a oprávnění, která musíte nastavit, za předpokladu stejného kořenového adresáře dokumentu:

  • 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 používá tyto adresáře pro aktualizace systému, aktualizace motivů a pluginů a nahrávání příloh blogu (nejčastěji obrázků).

Administrátor aplikace WordPress

Podobně jako u uživatele root v systému Linux® je součástí vaší instalace WordPress admin uživatel. Protože se jedná o administrativního uživatele, který existuje téměř v každé instalaci WordPressu, hackeři se na něj zaměřují útoky hrubou silou. Nejjednodušší způsob, jak zavřít tento vektor útoku, je odstranit uživatele admin. Doporučujeme, abyste vytvořili uživatele s jiným jménem, ​​udělili tomuto uživateli administrátorská práva a poté uživatele admin smazali.

Bezpečné aktualizace

FTP je ze své podstaty nejistý, zvláště když používáte ověřování na základě hesla. Je mnohem bezpečnější nastavit aktualizace klíčů SSH namísto používání hesel. K nastavení aktualizací klíče SSH použijte následující kroky:

  1. Ujistěte se, že jsou na vašem systému nainstalovány potřebné balíčky. Na Ubuntu® nebo Debian® spusťte následující příkazy:

    sudo apt-get update
    sudo apt-get install php5-dev libssh2-php libssh2-1-dev
    
  2. Nastavte si přístup SSH a proveďte následující kroky jako wp-user . Protože jste zakázali přihlášení jako wp-user , musíte otevřít shell pomocí následujícího příkazu sudo:

    sudo -u wp-user /bin/bash
    
  3. Pomocí následujících příkazů přejděte na wp-user domovský adresář a nastavte klíče SSH:

    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. Dále se ujistěte, že jste správně nastavili oprávnění pomocí následujících příkazů:

    sudo chmod 700 /home/wp-user/.ssh
    sudo chmod 040 /home/wp-user/.ssh/*
    sudo chmod 644 /home/wp-user/.ssh/authorized_keys
    
  5. Přidejte následující řádky do /var/www/example.com/wp-config.php soubor:

    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');
    

Měli byste být schopni aktualizovat WordPress, zásuvné moduly a motivy, aniž byste byli vyzváni k zadání přihlašovacích údajů.

Pluginy

K dosažení požadovaných výsledků doporučujeme používat co nejméně zásuvných modulů. Pro zvýšení bezpečnosti však doporučujeme používat následující zásuvné moduly:

  • WP Security Pro :Jedná se o all-in-one plug-in, který má ochranné funkce, jako je ochrana přihlášení, skenování malwaru, dvoufaktorové ověřování a firewall.
  • Zakázat XML-RPC :XML-RPC můžete uzamknout pomocí .htaccess soubor. Pokud však nemáte pádný důvod, abyste potřebovali vzdálenou kontrolu své instalace WordPress, je lepší ji deaktivovat, abyste zabránili útokům pingback.
  • Disqus :Protože vestavěný systém uživatelských komentářů pro WordPress je velmi náchylný k spamu, doporučujeme zakázat otevřenou registraci. Chcete-li to provést, přejděte na Nastavení> Obecné a poté zrušte zaškrtnutí políčka Kdokoli se může zaregistrovat . Poté použijte Disqus k moderování komentářů a nechte uživatele, aby se ověřili pomocí svých účtů Facebook® nebo Google®.

Linux
  1. Co je uživatel Linuxu?

  2. Nejlepší postupy zabezpečení OpenSSH

  3. Nainstalujte WordPress na Linux pomocí Apache

  1. Seznam uživatelů v Linuxu – Nejlepší metoda

  2. 8 osvědčených postupů se sudo v Linuxu – co dělat a co nedělat sudo

  3. Doporučené postupy zabezpečení serveru Windows

  1. Doporučené postupy DNS pro zabezpečení a výkon

  2. Linux su příkaz

  3. Nejlepší postupy zabezpečení serveru Linux