Hardening WordPress senza Plugin: Configurazioni Native per la Massima Sicurezza

Configurazioni native per harden WordPress e migliorare la sicurezza senza plugin.

Perché Hardening WordPress Senza Plugin?

Introduzione al Hardening WordPress

L’importanza di mantenere un sito WordPress sicuro non può essere sottostimata. Piattaforma di contenuti popolare, WordPress è anche uno dei bersagli preferiti dei hacker. Per questo motivo, è fondamentale implementare misure di sicurezza adatte, non solo con plugin dedicati ma anche usando configurazioni native. Questo approccio offre un equilibrio tra efficacia, flessibilità e manutenzione, consentendo ai webmaster di massimizzare la sicurezza del loro sito senza dover gestire la complessità di diversi plugin.

Configurazione del File .htaccess

Proteggere i File di Configurazione

Uno dei primi passaggi fondamentali per hardenare WordPress è proteggere i file di configurazione. In particolare, è importante proteggere i file `wp-config.php`, `wp-content/uploads`, `wp-content/plugins`, e `wp-content/themes` da accesso non autorizzato. Per farlo, modifica il file `.htaccess` aggiungendo le seguenti righe:

“`apache

Order Deny,Allow
Deny from All

Allow from 127.0.0.1

“`

Questo codice impedisce l’accesso ai file di configurazione a chiunque, tranne ai proprietari del sito. È possibile modificare l’indirizzo IP `127.0.0.1` per includere l’accesso da altri server o indirizzi IP specifici.

Consentire l’Accesso solamente a Utenti Conosciuti

Per ulteriormente massimizzare la sicurezza, è possibile utilizzare `.htaccess` per consentire l’accesso solo a utenti noti. Ad esempio, per consentire l’accesso solamente a un IP specifico, aggiungi:

“`apache

order deny,allow
deny from all
allow from 192.168.1.1

“`

Configurazione del File PHP

Aggiustare le Opzioni PHP

Una delle configurazioni più importanti da modificare è quella delle opzioni PHP. Modificare alcuni parametri PHP può avere un impatto significativo sulla sicurezza del tuo sito. Ecco alcune modifiche da considerare:

“`php
ini_set(‘display_errors’, 0);
ini_set(‘log_errors’, 1);
ini_set(‘error_log’, ‘/path/to/your/error.log’);
“`

Questi comandi impediscono l’invio di informazioni di errore al client, riducendo la visibilità per i hacker. Inoltre, registra i log di errore in un file sicuro.

Abilitare l’Autoloading delle Funzioni di Sicurezza

Ecco come abilitare l’autoload delle funzioni di sicurezza PHP:

“`php
// file wp-config.php
define(‘WP_AUTO_UPDATE_CORE’, false);
define(‘DISALLOW_FILE_MODIFICATION’, true);
“`

Queste impostazioni disabilitano l’aggiornamento automatico del nucleo di WordPress e impediscono la modifica dei file del nucleo.

Aggiornamenti e Sicurezza

Mantenere WordPress Aggiornato

Il primo passo fondamentale per garantire la sicurezza di WordPress è mantenere la piattaforma aggiornata. Le versioni più recenti di WordPress includono soluzioni per problemi di sicurezza che potrebbero essere presenti in versioni precedenti. Per verificare l’aggiornamento:

“`php
// file wp-config.php
define(‘WP_AUTO_UPDATE_CORE’, true);
“`

Questo codice consente l’aggiornamento automatico delle versioni minori di WordPress.

Aggiornare i Plugin e le Tempi

Anche i plugin e i temi possono contenere vulnerabilità. Per questo motivo, è importante mantenere questi elementi aggiornati. Aggiungi il seguente codice nel file `.htaccess` per impedire l’accesso diretto ai file dei plugin e temi:

“`apache

Order Deny,Allow
Deny from All

Allow from 127.0.0.1

“`

Configurazione del File wp-config.php

Aggiungere Codice di Sicurezza

Il file `wp-config.php` è cruciale per la sicurezza del tuo sito. Ecco alcuni comandi da aggiungere:

“`php
// file wp-config.php
define(‘WP_CONTENT_DIR’, ‘/path/to/your/content’);
define(‘WP_CONTENT_URL’, ‘http://yourdomain.com/content’);
“`

Queste impostazioni consentono di gestire la directory dei contenuti in modo più sicuro.

Utilizzare Codice di Protezione

Ecco un esempio di codice di protezione da aggiungere nel file `wp-config.php`:

“`php
// file wp-config.php
if (!defined(‘ABSPATH’)) {
define(‘ABSPATH’, dirname(__FILE__) . ‘/’);
}
“`

Questo codice evita l’accesso diretto ai file di WordPress da fuori la directory di WordPress.

Utilizzare un Firewall Web

Configurazione di un Firewall Web

Un firewall web può proteggere il tuo sito da attacchi di tipo DDoS e altre minacce. Una configurazione comune utilizza mod_security, un firewall web open source. Ecco come configurerlo:

1. **Installazione di mod_security**:
“`sh
sudo apt-get install libapache2-mod-security2
“`

2. **Configurazione di mod_security**:
Modifica il file `/etc/modsecurity/modsecurity.conf` per abilitare mod_security.

3. **Configurazione del Regole di mod_security**:
Crea un file di configurazione personalizzato per mod_security. Un esempio di configurazione:

“`apache
# /etc/modsecurity/modsecurity_crs_10_setup.conf
SecRuleEngine On
SecRequestBodyAccess On
SecRequestBodyLimit 204800
SecRequestBodyNoFilesLimit 204800
SecRule REQUEST_HEADERS:User-Agent “badguy” “id:1001,deny,log,status:403”
“`

Utilizzo di HTTPS

Attivare HTTPS

L’uso di HTTPS è fondamentale per la protezione dei dati sensibili. Per attivare HTTPS, puoi utilizzare un certificato SSL. Ecco come installare un certificato SSL su un server Apache:

1. **Installazione di OpenSSL**:
“`sh
sudo apt-get install openssl
“`

2. **Generazione di un Certificato SSL**:
Usa OpenSSL per generare un certificato self-signed:

“`sh
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
“`

3. **Configurazione di Apache per HTTPS**:
Modifica il file `/etc/apache2/sites-available/default-ssl.conf` per abilitare HTTPS:

“`apache

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

AllowOverride All

“`

4. **Riavviare Apache**:
“`sh
sudo service apache2 restart
“`

Configurazione di un Controllori di Accesso (ACL)

Utilizzo di un Controllori di Accesso (ACL)

Un controllori di accesso può aiutare a gestire i permessi di accesso ai file. Ecco un esempio di comandi per configurare un ACL su un server Ubuntu:

“`sh
sudo apt-get install acl
sudo setfacl -m u:www-data:rwx -m u:$USER:rwx /path/to/your/content
sudo setfacl -dR m::rwx,m:www-data:rwx,m:$USER:rwx /path/to/your/content
“`

ITALSERVER