🔐 Setup e messa in sicurezza base di WordPress su Hidden Service
In questa seconda parte della guida affronteremo la configurazione sicura di WordPress come Hidden Service .onion, destinata a contesti ad alta riservatezza come marketplace o piattaforme anonime nel Dark Web. Verrà allestita un’infrastruttura isolata e accessibile esclusivamente tramite la rete Tor, con PHP e MariaDB ottimizzati per garantire massima affidabilità e sicurezza. Questo ambiente rappresenterà le fondamenta operative su cui costruire, nella Parte 3, sistemi di cifratura avanzati e pagamenti in criptovalute.
Questa guida è pensata per offrire una base tecnica solida a chi desidera configurare in autonomia un’infrastruttura sicura e anonima. Per esigenze più complesse, personalizzazioni avanzate o supporto tecnico dedicato, offro servizi IT su misura: non esitare a contattarmi per una consulenza professionale.
⚠️ Nessun dato utente verrà raccolto o gestito finché la crittografia dei dati non sarà implementata nella prossima fase.
Nota tecnica: il sito sarà raggiungibile solo da Tor Browser tramite indirizzo .onion. Non è necessario alcun certificato SSL, poiché la rete Tor garantisce già una cifratura end-to-end del traffico.
🔧 1. Moduli PHP aggiuntivi richiesti
PHP e i moduli principali sono già stati installati nella Parte 1 della guida. Restano da installare solo i seguenti moduli aggiuntivi:
apt install -y php-soap php-intl
🔧 2. Ottimizzare la configurazione PHP (php.ini
)
Modifica il file /etc/php/8.2/fpm/php.ini
per ottimizzare le performance:
memory_limit = 256M
post_max_size = 64M
upload_max_filesize = 64M
max_execution_time = 300
expose_php = Off
display_errors = Off
log_errors = On
Riavvia il servizio PHP-FPM:
systemctl restart php8.2-fpm
🔧 3. Installare e mettere in sicurezza MariaDB
Installa MariaDB:
apt install -y mariadb-server
mysql_secure_installation
Durante la procedura guidata:
- Imposta la password di root
- Elimina gli utenti anonimi
- Disattiva l’accesso remoto per root
- Rimuovi il database di test
🔧 4. Creare il database e utente WordPress
🔐 Genera una password sicura per l’utente MySQL
openssl rand -base64 32
Esempio:
}F7wZqGpX3A!v#MEjR&2u@QxLpTDz94f
Accedi a MariaDB:
mysql -u root -p
Crea database e utente:
CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_secure_34pX'@'localhost' IDENTIFIED BY '}F7wZqGpX3A!v#MEjR&2u@QxLpTDz94f';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_secure_34pX'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Configura MariaDB per maggiore sicurezza e prestazioni:
Modifica /etc/mysql/mariadb.conf.d/50-server.cnf
:
bind-address = 127.0.0.1
skip-name-resolve
slow_query_log = 1
long_query_time = 2
Riavvia MariaDB:
systemctl restart mariadb
🔧 5. Scaricare e installare WordPress
🧹 Rimuovi eventuali file di test:
rm -f /var/www/mydrugs3oe3a7o6izy6j4u5jjfm3r52ldgf4cwp2dh6pvqr2rbccjnad.onion/index.php
📥 Scarica e installa WordPress:
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xvzf latest.tar.gz
mv wordpress/* /var/www/mydrugs3oe3a7o6izy6j4u5jjfm3r52ldgf4cwp2dh6pvqr2rbccjnad.onion/
rmdir wordpress
chown -R www-data:www-data /var/www/mydrugs3oe3a7o6izy6j4u5jjfm3r52ldgf4cwp2dh6pvqr2rbccjnad.onion
chmod -R 755 /var/www/mydrugs3oe3a7o6izy6j4u5jjfm3r52ldgf4cwp2dh6pvqr2rbccjnad.onion
🔧 6. Configurare wp-config.php
Copia il file di configurazione di esempio:
cp /var/www/mydrugs3oe3a7o6izy6j4u5jjfm3r52ldgf4cwp2dh6pvqr2rbccjnad.onion/wp-config-sample.php /var/www/mydrugs3oe3a7o6izy6j4u5jjfm3r52ldgf4cwp2dh6pvqr2rbccjnad.onion/wp-config.php
Inserisci le credenziali:
define('DB_NAME', 'wordpress_db');
define('DB_USER', 'wp_secure_34pX');
define('DB_PASSWORD', '}F7wZqGpX3A!v#MEjR&2u@QxLpTDz94f');
define('DB_HOST', 'localhost');
Aggiungi i salts di sicurezza da: WordPress Salt Generator
Aggiungi le costanti di sicurezza:
define('DISALLOW_FILE_EDIT', true);
define('FORCE_SSL_ADMIN', false);
define('AUTOMATIC_UPDATER_DISABLED', true);
define('WP_HOME', 'http://mydrugs3oe3a7o6izy6j4u5jjfm3r52ldgf4cwp2dh6pvqr2rbccjnad.onion');
define('WP_SITEURL', 'http://mydrugs3oe3a7o6izy6j4u5jjfm3r52ldgf4cwp2dh6pvqr2rbccjnad.onion');
// $_SERVER['HTTPS'] = 'on';
🔧 7. Impostare i permessi corretti
find /var/www/mydrugs3oe3a7o6izy6j4u5jjfm3r52ldgf4cwp2dh6pvqr2rbccjnad.onion/ -type d -exec chmod 755 {} \;
find /var/www/mydrugs3oe3a7o6izy6j4u5jjfm3r52ldgf4cwp2dh6pvqr2rbccjnad.onion/ -type f -exec chmod 644 {} \;
🔧 8. Protezione temporanea con HTTP Auth
🔒 Genera una password sicura
openssl rand -base64 24
Esempio:
#Jc7nGq!9@WfL2zV$ePqBmRu
🧑💻 Crea utente HTTP basic:
apt install apache2-utils
htpasswd -c /etc/nginx/.htpasswd dev_user_X8fR
🛠️ Modifica file vhost
Sostituisci il contenuto di /etc/nginx/sites-available/mydrugs3oe3a7o6izy6j4u5jjfm3r52ldgf4cwp2dh6pvqr2rbccjnad.onion
con la seguente configurazione aggiornata:
limit_req_zone $binary_remote_addr zone=all:10m rate=10r/s;
include /etc/nginx/blockuseragents.rules;
server {
listen 127.0.0.1:27484;
server_name mydrugs3oe3a7o6izy6j4u5jjfm3r52ldgf4cwp2dh6pvqr2rbccjnad.onion;
port_in_redirect off;
allow 127.0.0.1;
deny all;
if ($blockedagent) { return 403; }
if ($request_method !~ ^(GET|HEAD|POST)$) { return 444; }
root /var/www/mydrugs3oe3a7o6izy6j4u5jjfm3r52ldgf4cwp2dh6pvqr2rbccjnad.onion;
index index.html index.php;
access_log /var/log/mydrugs3oe3a7o6izy6j4u5jjfm3r52ldgf4cwp2dh6pvqr2rbccjnad.onion_vhost/access.log;
error_log /var/log/mydrugs3oe3a7o6izy6j4u5jjfm3r52ldgf4cwp2dh6pvqr2rbccjnad.onion_vhost/error.log error;
location / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
try_files $uri $uri/ /index.php?$args;
limit_req zone=all burst=10;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Riavvia NGINX:
systemctl reload nginx
🌐 9. Installazione WordPress su Hidden Service Tor
Per avviare la procedura di installazione, è necessario accedere al sito tramite Tor Browser, poiché l’istanza è disponibile solo tramite Hidden Service .onion. L’accesso sarà protetto da credenziali HTTP Basic (username e password creati precedentemente con htpasswd).
- Avvia Tor Browser e visita l’indirizzo: http://mydrugs3oe3a7o6izy6j4u5jjfm3r52ldgf4cwp2dh6pvqr2rbccjnad.onion
- Completa l’installazione guidata di WordPress inserendo il nome del sito, l’username e la password amministratore
- Testa accesso al pannello admin e permalink

🛡️ 10. Plugin di sicurezza WordPress per ambienti .onion
Dopo aver completato l’installazione guidata di WordPress, accedi al pannello admin e installa i seguenti plugin di sicurezza:
- Disable XML-RPC
- Limit Login Attempts Reloaded
- WP Hide & Security Enhancer (opzionale)
Evita plugin non essenziali per ridurre la superficie d’attacco.
🚫 Non creare utenti reali fino a che non saranno implementate la cifratura e le protezioni della Parte 3.