GNU/Linux >> Linux Esercitazione >  >> Linux

Best practice per la sicurezza di Wordpress su Linux

WordPress® è un ottimo sistema di gestione dei contenuti (CMS), soprattutto se sei nuovo nel blog o nel coding. Tuttavia, a causa dell'elevato numero di installazioni di WordPress, Wordpress è diventato un bersaglio per gli aggressori. La buona notizia è che ci sono molti passaggi che puoi fare per rendere più sicura la tua installazione di WordPress.

Utenti Linux e autorizzazioni

È comune per gli utenti che non conoscono WordPress impostare le loro autorizzazioni completamente aperte (impostare 777 autorizzazioni) quando vedono un Permission Denied errore da WordPress. Questa configurazione consente a qualsiasi utente (soprattutto il processo del server Web) di modificare i file nell'installazione di WordPress. Per bloccarlo, ti consigliamo di creare un utente per ogni installazione di WordPress come utente FTP (File Transfer Protocol) per il sito. Questo articolo presuppone che tu abbia un unico sito e che il nome di questo server sia wp-user .

Utilizzare il comando seguente per creare questo utente:

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

Nota :Si consiglia di utilizzare solo l'autenticazione con chiave Secure Shell (SSH). Se prevedi di utilizzare l'autenticazione tramite password per FTP, devi creare una password complessa per l'utente.

Imposta autorizzazioni

Dovresti rendere un utente, diverso dall'utente del sistema del servizio web, il proprietario della radice del documento del tuo sito. Dovresti anche negare le autorizzazioni di scrittura al servizio web. Il servizio Web richiede solo l'autorizzazione di lettura per fornire il contenuto e l'assegnazione di autorizzazioni di scrittura o esecuzione ad esso lascia un vettore di attacco per gli estranei. Tuttavia, poiché WordPress deve essere in grado di caricare file e aggiornare il proprio codice, è necessario piegare leggermente queste regole.

Ad esempio, dovresti impostare la proprietà dell'intera directory come wp-user:www-data .

Questa impostazione significa che wp-user ha la proprietà dell'utente e www-data (l'utente di sistema per il server Web Apache®) ha la proprietà del gruppo. A seconda del tuo sistema operativo, questo utente potrebbe anche essere chiamato httpd o apache . Se stai usando nginx®, l'utente è nginx . Per impostare le autorizzazioni, esegui il comando seguente, sostituendo il valore di esempio /var/www/example.com/ con la radice del documento del tuo sito:

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

Utilizza le seguenti autorizzazioni di base per la tua installazione di WordPress:

  • 755 (drwxr-xr-x) per le cartelle
  • 644 (-rw-r–r–) per i file

Queste autorizzazioni concedono wp-user la possibilità di modificare qualsiasi cosa e l'accesso in sola lettura al server web.

L'esempio seguente mostra come assegnare queste autorizzazioni:

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

Queste autorizzazioni concedono wp-user la possibilità di modificare qualsiasi cosa e l'accesso in sola lettura al server web. Sebbene questa sia una pratica comune per i siti statici, ci sono alcuni file a cui WordPress deve essere in grado di accedere ed eseguire per funzionare correttamente. L'elenco seguente mostra le eccezioni e le autorizzazioni che è necessario impostare, assumendo la stessa radice del documento:

  • 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 utilizza queste directory per gli aggiornamenti di sistema, temi e plugin e per il caricamento di allegati di blog (più comunemente immagini).

Utente amministratore di WordPress

Simile all'utente root di Linux®, l'installazione di WordPress viene fornita con un amministratore utente. Poiché si tratta di un utente amministrativo che esiste in quasi tutte le installazioni di WordPress, gli hacker lo prendono di mira con attacchi di forza bruta. Il modo più semplice per chiudere questo vettore di attacco è rimuovere l'utente amministratore. Ti consigliamo di creare un utente con un nome diverso, assegnare a quell'utente i privilegi di amministratore e quindi eliminare l'utente amministratore.

Aggiornamenti protetti

FTP è intrinsecamente insicuro, soprattutto quando si utilizza l'autenticazione basata su password. È molto più sicuro impostare gli aggiornamenti delle chiavi SSH invece di utilizzare le password. Utilizzare i seguenti passaggi per impostare gli aggiornamenti delle chiavi SSH:

  1. Assicurati che i pacchetti necessari siano installati sul tuo sistema. Su Ubuntu® o Debian®, esegui i seguenti comandi:

    sudo apt-get update
    sudo apt-get install php5-dev libssh2-php libssh2-1-dev
    
  2. Configura il tuo accesso SSH, eseguendo i seguenti passaggi come wp-user . Perché non hai consentito l'accesso come wp-user , devi aprire una shell usando il seguente comando sudo:

    sudo -u wp-user /bin/bash
    
  3. Usa i seguenti comandi per passare a wp-user home directory e configurare le chiavi 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. Quindi, assicurati di impostare le autorizzazioni correttamente utilizzando i seguenti comandi:

    sudo chmod 700 /home/wp-user/.ssh
    sudo chmod 040 /home/wp-user/.ssh/*
    sudo chmod 644 /home/wp-user/.ssh/authorized_keys
    
  5. Aggiungi le seguenti righe al tuo /var/www/example.com/wp-config.php file:

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

Dovresti essere in grado di aggiornare WordPress, plug-in e temi senza che ti vengano richieste le informazioni di accesso.

Plug-in

Ti consigliamo di utilizzare il minor numero possibile di plug-in per ottenere i risultati desiderati. Tuttavia, ti consigliamo di utilizzare i seguenti plug-in per promuovere la sicurezza:

  • WP Security Pro :si tratta di un plug-in all-in-one dotato di funzioni di protezione come protezione dell'accesso, scanner di malware, autenticazione a due fattori e firewall.
  • Disabilita XML-RPC :Puoi bloccare XML-RPC usando un .htaccess file. Tuttavia, a meno che tu non abbia un motivo convincente per aver bisogno del controllo remoto dell'installazione di WordPress, è meglio disabilitarlo per prevenire attacchi di pingback.
  • Disqus :Poiché il sistema di commenti degli utenti integrato in WordPress è molto incline allo spam, ti consigliamo di disabilitare la registrazione aperta. A tale scopo, vai a Impostazioni> Generali , quindi deselezionando Chiunque può registrarsi . Quindi usa Disqus per moderare i commenti e chiedi agli utenti di autenticarsi sui loro account Facebook® o Google®.

Linux
  1. Che cos'è un utente Linux?

  2. Best practice per la sicurezza di OpenSSH

  3. Elenca utenti in Linux - Metodo migliore

  4. 8 Migliori pratiche con sudo su Linux:cosa fare e cosa non fare sudo

  5. Comando su Linux

Rafforzamento del server Linux:migliori pratiche

Configurazione del server Ubuntu – Procedure consigliate per la sicurezza

Sicurezza Linux vs Windows

5 Best practice per la sicurezza SSH Linux per proteggere i tuoi sistemi

I 20 migliori strumenti di sicurezza per Linux:la scelta dell'esperto di Linux

Oltre 20 migliori software per fotocamere Linux | IP, webcam, CCTV e telecamera di sicurezza