I Siti sono spesso soggetti ad attacchi hacker. Se avete un Sito WordPress e lo configurate nel modo corretto avrete un sito sicuro. Oggi pubblichiamo la seconda parte della guida all’Installazione e Configurazione per rendere il vostro sito WordPress sicuro. Per chi di voi si fosse perso la prima parte la trova qui: Guida Sicurezza Parte 1
La prima parte della guida si era conclusa con l’installazione sicura. Ora procediamo con la seconda parte:
Facciamo pulizia
- Cancelliamo i seguenti files: wp-admin/install.php, wp-admin/upgrade.php, LEGGIMI.txt, license.txt, licenza.html e readme.html.
- Cancelliamo il post di esempio con relativo commento d’esempio e la pagina di esempio. Questi sono solo degli esempi inseriti da WP.
- Cancelliamo i plugin che non usiamo. Hello Dolly va cancellato. Askimet è un sistema di protezione e anti spam. Funziona molto bene ma se intendiamo mettere su un sito commerciale dobbiamo pagare una licenza. Il sistema è gratis solo per siti personali.
Onestamente preferisco altri sistemi di anti spam e di protezione. - Togliere il widget “meta tags”. Sono link inutili e mettono il link al login dell’admin in evidenza. E’ vero che tutti gli hacker conoscono l’indirizzo dell’admin ma comunque perché pubblicare quest’informazione?
Aggiornamenti WP, Plugin e Temi
- WP in automatico. Il sistema WP effettua degli autoaggiornamenti automatici per le nuove versioni minori e/o versioni di sicurezza. WP non effettua aggiornamenti automatici per le nuove versioni maggiori. Cosa significa: WP effettuerà un aggiornamento automatico se abbiamo la versione 4.3 ed esce la versione 4.3.1. WP non effettuerà un aggiornamento automatico se abbiamo la versione 4.3 ed esce la versione 4.4.
Possiamo modificare questo comportamento inserendo uno dei seguenti codici nel wp-config.php:- Consente l’aggiornamento automatico WP anche di nuove versioni maggiori: define(‘WP_AUTO_UPDATE_CORE’, true);
- Blocca l’aggiornamento automatico WP di entrambe le versioni minori/sicurezza e maggiori:
define( ‘WP_AUTO_UPDATE_CORE’, false );
- Plugins e widgets meglio avere l’aggiornamento in manuale. Di default WP non ha aggiornamenti automatici di plugin e temi. Sarebbe più facile farlo in automatico ma a volte il plugin e i temi possono creare problemi (rompere la pagina) è quindi meglio farlo in manuale in modo da poter controllare in tempo reale la corretta funzionalità.
Qualora si volesse automatizzare l’aggiornamento automatico di plugin e temi, vanno aggiunti i seguenti parametri nel wp-config.php.:- Automatizza l’aggiornamento di Plugin:
add_filter( ‘auto_update_plugin’, ‘__return_true’ ); - Automatizza l’aggiornamento di Temi:
add_filter( ‘auto_update_theme’, ‘__return_true’ );
- Automatizza l’aggiornamento di Plugin:
- Esiste anche un plugin “Easy Updates Manager” che consente la gestione degli update di WP, plugin e temi: https://wordpress.org/plugins/stops-core-theme-and-plugin-updates/
Importante: Bisogna ricordare che i parametri settati nel wp-config.php hanno sempre “l’ultima parola”. Ovvero comandano sui settaggi inseriti dentro “Easy Updates Manager”.
Se usiamo “Easy Updates Manager “ per automatizzare l’aggiornamento di plugin e tempi e allo stesso tempo nel wp-config.php abbiamo i seguenti paramatri:- add_filter( ‘auto_update_plugin’, ‘__return_false’ );
- add_filter( ‘auto_update_theme’, ‘__return_false’ );
significa che plugin e temi NON si aggiorneranno in automatico.
Configurazioni iniziali WordPress
Queste sono le impostazioni base che di solito utilizzo nei siti che gestisco. Ovviamente tutto dipende da che tipo di sito e quanti commenti si ricevono (soprattutto quanto spam riceviamo). Queste impostazioni non saranno comunque sufficienti e dobbiamo utilizzare un plugin specializzato di “anti spamming” in modo da bloccare (o limitare il più possibile) lo spam sul nostro sito WP. Andiamo in impostazioni > Discussione
- Impostazioni predefinite per gli articoli
[x] Tentare di notificare tutti i blog che hanno un link nell’articolo
[ ] Permetti link di notifica da altri blog (pingback e trackback) sui nuovi articoli
[x] Consenti la scrittura di commenti per i nuovi articoli (Queste impostazioni possono essere modificate per i singoli articoli.) - Altre impostazioni commenti
[x] L’autore del commento deve inserire nome e indirizzo e-mail
[ ] Gli utenti devono essere registrati e fare il login per poter inviare commenti
[x] Chiudere automaticamente i commenti degli articoli più vecchi di [14] giorni
[x] Abilita i commenti nidificati per livelli di profondità
[ ] Dividi i commenti in pagine con [50] commenti di primo livello per pagina e con [ultima] pagina visualizzata come predefinita. - Invia una e-mail ogni volta che
[x] Qualcuno inserisce un commento
[x] Un commento viene messo in coda di moderazione - Prima che appaia un commento
[x] Il commento deve essere approvato manualmente
[ ] Gli autori di un commento devono avere un commento già approvato in precedenza - Moderazione commenti
Mantieni un commento in coda se contiene [2 o +] o più link (una caratteristica comune dello spam nei commenti è il gran numero di link).
Quando un commento contiene una di queste parole, nel testo, nel nome, nella URL, nella e-mail o nell’IP, verrà posto nella coda di moderazione. Inserire una singola parola o IP per riga. Verranno cercate corrispondenze anche all’interno delle parole, quindi “press” troverà una corrispondenza in “WordPress”. - Blacklist dei commenti
Quando un commento contiene una di queste parole, nel testo, nel nome, nell’URL, nell’e-mail o nell’IP, verrà contrassegnato come spam. Inserire una singola parola o IP per ciascuna riga. Verranno cercate corrispondenze anche all’interno delle parole, quindi ad esempio la parola “press” troverà una corrispondenza in “WordPress”.
Configurazioni Wordfence
Questo è un sistema di protezione e firewall.
Installiamo e attiviamo il plugin Wordfence
Di seguito vedremo le opzioni (settaggi) per le parti non a pagamento.
Andiamo in Wordfence > Options
License
Di default viene attivato con una API key gratuita.
Alcune funzionalità di WordFence sono a pagamento (abbonamento premium). Noi utilizzeremo tutte le funzionalità gratuite perché sono veramente ottime.
- Basic Options
[x] Enable Rate Limiting and Advanced Blocking (Prima si chiamava “Enable firewall”) NOTE: This checkbox enables ALL blocking/throttling functions including IP, country and advanced blocking and the “Rate Limiting Rules” below.
[x] Enable login security. This option enables all “Login Security” options. You can modify individual options further down this page.
[x] Enable Live Traffic View. his option enables live traffic logging.
[x] Enable automatic scheduled scans. Regular scans ensure your site stays secure.
[ ] Update Wordfence automatically when a new version is released? Automatically updates Wordfence to the newest version within 24 hours of a new release.Where to email alerts: [inserire indirizzi email a cui inviare gli alerts].
– Le altre opzioni dipendono molta dalla configurazione del vostro server o servizi esterni tipo CloudFlare. - Advanced Options
Alerts
Email me when Wordfence is automatically updated [ ] If you have automatic updates enabled (see above), you’ll get an email when an update occurs.
[x] Email me if Wordfence is deactivated
[x] Alert on critical problems
[x] Alert on warnings
[x] Alert when an IP address is blocked
[x] Alert when someone is locked out from login
[x] Alert when the “lost password” form is used for a valid user
[x] Alert me when someone with administrator access signs in
[ ] Only alert me when that administrator signs in from a new device or location
[ ] Alert me when a non-admin user signs in
[ ] Only alert me when that user signs in from a new device or location
[x] Alert me when there’s a large increase in attacks detected on my site
Maximum email alerts to send per hour [4] - Email Summary
[x] Enable email summary
Email summary frequency: [Once a weeks]
Comma-separated list of directories to exclude from recently modified file list: [wp-content/cache,wp-content/wfcache,wp-content/plugins/wordfence/tmp]
[x] Enable activity report widget on dashboard - Live Traffic View (se attivo)
[x] Don’t log signed-in users with publishing access
List of comma separated usernames to ignore [Inserire le username]
List of comma separated IP addresses to ignore [per ora vuoto]
Browser user-agent to ignore [per ora vuoto]
Amount of Live Traffic data to store (number of rows): [2000 o settaggio di default]
- Scans to include
[ ] Scan public facing site for vulnerabilities? *** Questa funzionalità solo a pagamento.
[x] Scan for misconfigured How does Wordfence get IPs
[x] Scan for the HeartBleed vulnerability?
[x] Scan for publicly accessible configuration, backup, or log files
[x] Scan for publicly accessible quarantined files
[x] Scan core files against repository versions for changes
[ ] Scan theme files against repository versions for changes
[ ] Scan plugin files against repository versions for changes
[x] Scan wp-admin and wp-includes for files not bundled with WordPress
[x] Scan for signatures of known malicious files
[x] Scan file contents for backdoors, trojans and suspicious code
[x] Scan posts for known dangerous URLs and suspicious content
[x] Scan comments for known dangerous URLs and suspicious content
[x] Scan for out of date plugins, themes and WordPress versions
[x] Scan for admin users created outside of WordPress
[x] Check the strength of passwords
[x] Monitor disk space
[x] Scan for unauthorized DNS changes
[ ] Scan files outside your WordPress installation
[x] Scan images and binary files as if they were executable
[ ] Enable HIGH SENSITIVITY scanning. May give false positives.
[ ] Use low resource scanning (reduces server load by lengthening the scan duration)
Exclude files from scan that match these wildcard patterns. (One per line). [per ora vuoto]
Limit the number of issues sent in the scan results email [1000]
Time limit that a scan can run in seconds [Lasciare vuoto per prendere il valore di default]
- Rate Limiting Rules
Le seguenti configurazioni sono molto adatte a bloccare i exploit scanners che cercano errori 404.
[x] Immediately block fake Google crawlers
How should we treat Google’s crawlers [Verified Google crawlers have unlimited access to this site ] (OVVIAMENTE 🙂 )
If anyone’s requests exceed: [Unlimited] then [throttle it]
If a crawler’s page views exceed: [Unlimited] then [throttle it]
If a crawler’s pages not found (404s) exceed: [10 per min] then [throttle it]
If a human’s page views exceed: [Unlimited] then [throttle it]
If a human’s pages not found (404s) exceed: [3 per minute] then [block it]
If 404’s for known vulnerable URL’s exceed: [2 per minute] then [block it]
How long is an IP address blocked when it breaks a rule: [1 hour]
- Login Security Options
Enforce strong passwords [Force admins and publishers to use strong passwords (recommended)]
Lock out after how many login failures [5]
Lock out after how many forgot password attempts [3]
Count failures over what time period [10 min]
Amount of time a user is locked out [1 hour]
[x] Immediately lock out invalid usernames
[x] Don’t let WordPress reveal valid users in login errors
[x] Prevent users registering ‘admin’ username if it doesn’t exist
[x] Prevent discovery of usernames through ‘/?author=N’ scans
Immediately block the IP of users who try to sign in as these usernames (Comma separated. Existing users won’t be blocked.) [admin, Admin, webmaster, Administrator, administrator]
- Other Options
Whitelisted IP addresses that bypass all rules [per ora vuoto]
Immediately block IP’s that access these URLs [per ora vuoto]
Whitelisted 404 URLs (one per line)
/favicon.ico
/apple-touch-icon*.png
/*@2x.png
/browserconfig.xml
Whitelisted IP addresses for Wordfence Web Application Firewall alerting: [per ora vuoto][x] Hide WordPress version
[ ] Block IP’s who send POST requests with blank User-Agent and Referer
[x] Hold anonymous comments using member emails for moderation
[x] Filter comments for malware and phishing URL’s
[x] Check password strength on profile update
[x] Participate in the Real-Time WordPress Security Network
How much memory should Wordfence request when scanning [512]
Maximum execution time for each scan stage
Update interval in seconds (2 is default)
[ ] Delete Wordfence tables and data on deactivation?
[ ] Disable Wordfence Cookies
[x] Disable Code Execution for Uploads directory
Le restanti opzioni nella pagina servono per il testing di altri elementi (email funzionante, database, etc).
La parte 3 di questa guida sta per arrivare!
Ma siccome ci rendiamo conto che non si tratta di interventi banali, per qualunque problema non esitate a rivolgervi alla vostra Web Agency di fiducia.
Rivolgetevi a Babita!