Trasforma il tuo WordPress in Fort Knox
Come trasformare WordPress in una fortezza protetta come Fort Knox
English version: Turn your WordPress into Fort Knox
Questo articolo presuppone che si voglia creare un sito web protetto a prova di bomba basato su WordPress. Non è necessario seguire tutti i passaggi seguenti parola per parola e punto per punto esattamente come descritto. Tuttavia, lo consiglio se si desidera creare il proprio Fort Knox.
Alcuni dei seguenti passaggi potrebbero causare problemi di incompatibilità con plugin strani che tentano di modificare i file direttamente nelle cartelle di WordPress. Consiglio di ignorare plugin di questo tipo, perché il loro utilizzo potrebbe causare molti problemi e problemi di sicurezza, sia nell'immediato che in futuro, quando gli hacker scopriranno falle nei plugin o nel tema installato sul vostro sito. Ho creato questo articolo nella speranza che possa essere utile, ma senza alcuna garanzia.
Nota: questo articolo non è applicabile se si utilizza un hosting condiviso. È necessario disporre almeno di un sito web ospitato su VPS.
Requisiti: accesso root al server Linux su cui è ospitato il tuo sito web. Se non hai accesso shell con privilegi di root, non puoi fare nulla di utile per creare un sito web realmente protetto. Non esiste alcun modo o plugin in grado di proteggere WordPress e i file nelle sue directory a livello PRO. Tutti i plugin di sicurezza hanno lo stesso livello di privilegi (permessi) di hacker e bot. Nessuna eccezione. Se un plugin di sicurezza ha apportato modifiche ai file del tuo sito web per proteggerli, qualsiasi hacker o codice dannoso può ANNULLARE tali modifiche o rimuovere la protezione.
Ecco alcuni punti importanti sul mio approccio
- Tutti i file di codice (codice PHP) e tutti i file .htaccess devono essere protetti da scrittura. Nessuna eccezione.
- Dobbiamo modificare tutti i valori predefiniti (cartella, cookie, percorso di accesso, qualsiasi altro punto di riferimento) su valori diversi
- Non dobbiamo utilizzare plugin o temi che operano con e tentano di modificare i file PHP o .htaccess nelle cartelle di WordPress
Primo passo. Installazione di WordPress
Non utilizzare il prefisso predefinito wp_
per le tabelle del database. Utilizza invece due o tre simboli alfabetici. Alcuni attacchi e aggressori specifici di WordPress presuppongono che il prefisso della tabella sia wp_
. Modificare il prefisso ci aiuta a bloccare alcuni attacchi di iniezione SQL.
Fase due. Rafforzare il sito web a livello WordPress
- Sposta la cartella dei caricamenti su un livello superiore, dall'interno della cartella /wp-content/ alla radice della cartella di installazione di WordPress.
- Rinomina la cartella dei caricamenti in media (o qualcosa di simile, come preferisci).
- Rinomina la cartella wp-content in content (o qualcosa di simile, come preferisci).
- Rinomina la cartella dei plugin in mod (o qualcosa del genere, come preferisci).
- Aggiungi le seguenti righe all'inizio del file wp-config.php , non dimenticare di modificare media , content , mod con i valori effettivamente scelti in precedenza .
define('AUTOMATIC_UPDATER_DISABLED', true ); // sì, è sicuro farlo manualmente
define('DISALLOW_FILE_EDIT', true ); // non permettiamo mai a nessuno di toccare i tuoi file
define('DISALLOW_FILE_MODS', true ); // sì, è sicuro farlo manualmente
define('FS_METHOD', 'direct'); // ovviamente niente FTP
define('WP_HTTP_BLOCK_EXTERNAL', true );
define('UPLOADS', ' media ' ); // abbiamo rinominato i caricamenti e li abbiamo spostati al livello superiore
define('WP_CONTENT_DIR', '/percorso/verso/wordpress/dir/ contenuto '); // nessun nome host, nessuna barra finale
define('WP_CONTENT_URL', 'http://example.com/ contenuto ');
define('WP_PLUGIN_DIR', '/percorso/verso/wordpress/dir/ contenuto / mod '); // nessun nome host, nessuna barra finale
define('WP_PLUGIN_URL', 'http://example.com/ content / mod ');
ini_set('display_errors',0); // disattiva la visualizzazione degli errori PHP sul front-end
Fase tre. Cambia il nome predefinito dei cookie.
Aggiungi queste righe all'inizio del file wp-config.php
define('USER_COOKIE', 'my_user_cookie' ); // cambialo in qualcosa di diverso
define('PASS_COOKIE', 'my_pass_cookie' ); // cambialo in qualcosa di diverso
define('AUTH_COOKIE', 'my_auth_cookie' ); // cambialo in qualcosa di diverso
define('SECURE_AUTH_COOKIE', 'my_sec_cookie' ); // cambialo in qualcosa di diverso
define('LOGGED_IN_COOKIE', 'my_logged_cookie' ); // cambialo in qualcosa di diverso
define('TEST_COOKIE', 'my_test_cookie' ); // cambialo in qualcosa di diverso
Fase quattro. Installa un plugin di sicurezza subito dopo l'installazione di WordPress.
Proteggi la tua pagina di login con WP Cerber Security . Anche con le misure di protezione sopra descritte, gli hacker cercheranno di applicare attacchi brute force (tentativi di accesso) per sfondare la porta del tuo sito WordPress. Nascondi e chiudi questa porta con WP Cerber.
Fase cinque. Rafforzamento del sito web a livello di server.
In questo passaggio, presumo che tu stia utilizzando un server con Apache come server http. Dobbiamo cambiare il proprietario di tutti i file di WordPress, inclusi plugin e temi. Di default, questo utente è apache . Dobbiamo cambiarlo con un altro utente, creato in precedenza a questo scopo. Supponiamo che questo utente sia cerber .
- Inserisci il file .htaccess nella cartella media (la tua nuova cartella di upload) con la seguente direttiva. Questo impedirà al sito web di eseguire il codice PHP dannoso caricato.
motore php_flag spento
Nota: affinché questa direttiva funzioni, il file di configurazione di Apache deve contenere la direttiva
AllowOverride Options
per la cartella dei caricamenti o per una delle sue cartelle padre. - Per l'intera directory del sito web (/percorso/verso/wordpress/dir), modifica il proprietario e i permessi di tutti i file. Per farlo, esegui i seguenti comandi nella shell.
trova /percorso/verso/wordpress/dir -exec chown cerber:root {} +
trova /percorso/verso/wordpress/dir -tipo d -exec chmod 755 {} +
trova /percorso/verso/wordpress/dir -digita f -exec chmod 644 {} + - Per la directory dei caricamenti (/percorso/verso/wordpress/dir/ media ) dobbiamo impostare permessi speciali. Facciamolo usando i comandi exec nella shell.
trova /percorso/verso/wordpress/dir/ media -exec chown cerber:apache {} +
trova /percorso/verso/wordpress/dir/ media -tipo d -exec chmod 775 {} +
trova /percorso/verso/wordpress/dir/ media -tipo f -exec chmod 664 {} + - Imposta la struttura del permalink nelle impostazioni di WordPress e poi modifica l'autorizzazione per il file .htaccess per proteggerlo dalla scrittura.
chown cerber:root /percorso/verso/wordpress/dir/.htaccess
chmod 644 /percorso/verso/wordpress/dir/.htaccess - Sposta il file wp-config.php nella directory superiore a quella di installazione di WordPress.
Fase sei. Rafforzamento del sito web a livello di server NGINX
Leggi qui: Rafforzare WordPress con WP Cerber e NGINX
Fase sette. Rafforzare il sito web con Fail2Ban
Leggi qui: Come proteggere WordPress con Fail2Ban