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 vogliamo ottenere un sito Web protetto a prova di proiettile alimentato da WordPress. Non è necessario eseguire tutti i seguenti passaggi parola per parola e punto per punto esattamente come descritto. Ma lo consiglio se vuoi creare il tuo Fort Knox.
Alcuni dei seguenti passaggi potrebbero essere causa di alcuni problemi di incompatibilità con alcuni strani plugin che tentano di modificare i file direttamente nelle cartelle di WordPress. Raccomando di ignorare qualsiasi plug-in di questo tipo, perché il loro utilizzo può portare a molti problemi e problemi di sicurezza immediatamente o in futuro, quando gli hacker hanno studiato buchi nei plug-in o nel tema installato sul tuo sito. Ho creato questo articolo nella speranza che possa essere utile, ma senza alcuna garanzia.
Nota: questo articolo non è applicabile se utilizzi l'hosting condiviso. Devi avere almeno un sito ospitato da VPS.
Requisiti: accesso root al server Linux su cui è ospitato il tuo sito web. Se non hai accesso alla shell con privilegi di root non puoi fare nulla di utile per creare un vero sito web protetto. Non esiste alcun modo o alcun plug-in in grado di proteggere WordPress e i file nelle sue directory a livello PRO. Tutti i plug-in di sicurezza hanno lo stesso livello di privilegi (autorizzazioni) di hacker e bot. Nessuna eccezione. Se alcuni plug-in di sicurezza hanno apportato alcune 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 del mio approccio
- Tutti i file di codice (codice PHP) e tutti i file .htaccess devono essere protetti da scrittura. Nessuna eccezione
- Dobbiamo modificare tutte le impostazioni predefinite (cartella, cookie, percorso di accesso, qualsiasi altro punto di riferimento) con valori diversi
- Non dobbiamo utilizzare plugin o temi che funzionano con e provare a modificare i file PHP o .htaccess nelle cartelle di WordPress
Primo passo. Installazione di WordPress
Non utilizzare il prefisso wp_
predefinito per le tabelle del database. Usa invece una coppia o tre simboli alfabetici. Alcuni attacchi e malintenzionati specifici di WordPress presuppongono che il prefisso della tabella sia wp_
. La modifica del prefisso ci aiuta a bloccare alcuni attacchi di SQL injection.
Passo due. Rafforzamento del sito Web a livello di WordPress
- Sposta la cartella dei caricamenti su di un livello, dall'interno della cartella /wp-content/ alla radice della cartella di installazione di WordPress.
- Rinomina la cartella dei caricamenti in media (o qualcosa del genere, qualunque cosa tu voglia).
- Rinomina la cartella wp-content in content (o qualcosa del genere, qualunque cosa tu voglia).
- Rinomina la cartella dei plugin in mod (o qualcosa del genere, qualunque cosa tu voglia).
- Aggiungi le seguenti righe all'inizio del file wp-config.php , non dimenticare di modificare media , content , mod con i valori effettivi che hai scelto 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'); // nessun FTP ovviamente
define('WP_HTTP_BLOCK_EXTERNAL', true );
define('UPLOADS', ' media ' ); // abbiamo rinominato i caricamenti e li abbiamo spostati di livello
define('WP_CONTENT_DIR', '/path/to/wordpress/dir/ content '); // nessun nome host, nessuna barra finale
define('WP_CONTENT_URL', 'http://example.com/ content ');
define('WP_PLUGIN_DIR', '/path/to/wordpress/dir/ content / 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. Modifica il nome predefinito dei cookie.
Aggiungi queste righe all'inizio del file wp-config.php
define('USER_COOKIE', 'my_user_cookie' ); // lo cambia in qualcosa di diverso
define('PASS_COOKIE', 'my_pass_cookie' ); // lo cambia in qualcosa di diverso
define('AUTH_COOKIE', 'my_auth_cookie' ); // lo cambia in qualcosa di diverso
define('SECURE_AUTH_COOKIE', 'my_sec_cookie' ); // lo cambia in qualcosa di diverso
define('LOGGED_IN_COOKIE', 'my_logged_cookie' ); // lo cambia in qualcosa di diverso
define('TEST_COOKIE', 'my_test_cookie' ); // lo cambia in qualcosa di diverso
Fase quattro. Installa un plug-in di sicurezza subito dopo l'installazione di WordPress
Proteggi la tua pagina di accesso con WP Cerber Security . Anche con questi passaggi di protezione di cui sopra, gli hacker cercheranno di applicare attacchi di forza bruta (tentativi di accesso) per aprire la porta del tuo sito Web WordPress. Nascondi e chiudi questa porta con WP Cerber.
Passaggio cinque. Rafforzamento del sito Web a livello di server.
In questo passaggio presumo che tu stia utilizzando il server con Apache come server http. Dobbiamo cambiare il proprietario di tutti i file WordPress inclusi plugin e temi. Per impostazione predefinita, questo utente è apache . Dobbiamo cambiarlo con un altro utente, che hai creato per questo scopo in precedenza. Supponiamo che questo utente sia cerber .
- Inserisci il file .htaccess nella cartella multimediale (la tua nuova cartella dei caricamenti) con la seguente direttiva al suo interno. Ciò impedisce al sito Web di eseguire codice PHP dannoso caricato.
motore php_flag disattivato
Nota: il file di configurazione di Apache deve contenere la direttiva
AllowOverride Options
per la cartella dei caricamenti o una qualsiasi delle sue cartelle principali per far funzionare questa direttiva. - Per l'intera directory del sito Web (/path/to/wordpress/dir) modificare il proprietario e le autorizzazioni per tutti i file. Per fare ciò eseguire i seguenti comandi nella shell.
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 {} + - Per la directory dei caricamenti (/path/to/wordpress/dir/ media ) abbiamo bisogno di impostare permessi speciali. Facciamolo usando i comandi exec nella shell
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 {} + - 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 /path/to/wordpress/dir/.htaccess
chmod 644 /percorso/di/wordpress/dir/.htaccess - Sposta il file wp-config.php nella directory sopra la directory di installazione di WordPress.
Passaggio sei. Rafforzamento del sito Web a livello di server NGINX
Leggi qui: Indurimento di WordPress con WP Cerber e NGINX
Passaggio sette. Rafforzamento del sito web con Fail2Ban
Leggi qui: Come proteggere WordPress con Fail2Ban