Volete limitare l’accesso per indirizzo IP al vostro file wp-login.php in WordPress?
La pagina di login di WordPress viene spesso attaccata da attacchi DDoS e hacker per ottenere l’accesso al vostro sito web. Limitare l’accesso a indirizzi IP specifici può bloccare efficacemente questi tentativi.
In questo articolo vi mostreremo come limitare facilmente l’accesso per IP al file wp-login.php di WordPress.
Perché limitare l’accesso a wp-login.php per indirizzo IP?
La pagina di login di un sito WordPress (in genere, wp-login.php) è il luogo in cui gli utenti accedono al sito.
Come proprietario di un sito web, vi dà accesso all’ area di amministrazione di WordPress, dove potete eseguire la manutenzione del sito, scrivere contenuti e gestire il vostro sito web.
Tuttavia, gli attacchi brute force più comuni su Internet sono noti per colpire la pagina wp-login.php per ottenere l’accesso ai siti web. Anche se non riescono a entrare, possono comunque rallentare il vostro sito web o addirittura mandarlo in crash.
Un modo per affrontare questa situazione è bloccare gli indirizzi IP da cui provengono gli attacchi (ne parleremo più avanti nell’articolo).
Un indirizzo IP è come un numero di telefono che identifica un computer specifico su Internet. Gli hacker possono utilizzare un software per cambiare l’indirizzo IP.
Tuttavia, gli attacchi più sofisticati utilizzano un pool di indirizzi IP più ampio e potrebbe non essere possibile bloccarli tutti.
In questo caso, è possibile limitare l’accesso a indirizzi IP specifici utilizzati da voi stessi e da altri utenti del vostro sito web.
Detto questo, vediamo come limitare facilmente l’accesso al file wp-login.php da parte di indirizzi IP specifici utilizzando 3 modi diversi, tra cui il firewall di sicurezza cloud.
1. Limitare l’accesso alla pagina di login di WordPress per indirizzo IP
Per questo metodo, è necessario aggiungere del codice al file .htaccess.
Il file .htaccess è uno speciale file di configurazione del server che si trova nella cartella principale del vostro sito web ed è accessibile tramite FTP o l’applicazione File Manager del vostro pannello di controllo dell’hosting WordPress.
È sufficiente collegarsi al sito WordPress utilizzando un client FTP e modificare il file .htaccess aggiungendo il seguente codice all’inizio.
<Files wp-login.php>
order deny,allow
Deny from all
# whitelist Your own IP address
allow from xx.xxx.xx.xx
#whitelist some other user's IP Address
allow from xx.xxx.xx.xx
</Files>
Non dimenticate di sostituire gli XX con i vostri indirizzi IP. È possibile trovare facilmente il proprio indirizzo IP visitando la pagina SupportAlly.
Se avete altri utenti che devono accedere al vostro sito web, potete chiedere loro di fornire i loro indirizzi IP. Potete quindi aggiungere anche questi al file .htaccess.
Ecco un altro esempio del codice sopra citato.
<Files wp-login.php>
order deny,allow
Deny from all
# Whitelist John as website administrator
allow from 35.199.128.0
#Whitelist Tina as Editor
allow from 108.59.80.0
# Whitelist Ali as moderator
allow from 216.239.32.0
</Files>
Ora, gli utenti con questi indirizzi IP potranno visualizzare il file wp-login.php e accedere al sito web. Gli altri utenti vedranno il seguente messaggio di errore:
2. Blocco di indirizzi IP specifici per l’accesso al vostro sito web
Questo metodo è totalmente opposto al primo.
Invece di limitare l’accesso alla pagina di login di WordPress a indirizzi IP specifici, sarete in grado di bloccare gli indirizzi IP utilizzati per attaccare il vostro sito web.
Questo metodo è particolarmente utile per i siti di membership WordPress, i negozi di e-commerce o altri siti web in cui più utenti devono effettuare il login per accedere ai loro account.
Lo svantaggio di questo metodo è che gli hacker possono cambiare indirizzo IP e continuare ad attaccare il vostro sito web.
Fortunatamente, molti dei comuni tentativi di hacking di WordPress utilizzano un insieme fisso di indirizzi IP, il che rende questo metodo efficace nella maggior parte dei casi.
Fase 1: Individuazione degli indirizzi IP offensivi da bloccare
In primo luogo, è necessario individuare gli indirizzi IP utilizzati per attaccare il vostro sito web.
Il modo più semplice per trovare gli indirizzi IP incriminati è esaminare i log del server. Basta accedere al pannello di controllo del proprio account di hosting e fare clic sull’icona dei registri “Raw Access”.
Nella pagina successiva, fare clic sul nome del dominio per scaricare i registri di accesso. Verrà scaricato un file con estensione gz.
È necessario estrarre il file e aprirlo con un editor di testo come Notepad o TextEdit.
Da qui si troveranno gli indirizzi IP che si collegano ripetutamente alla pagina wp-login.php.
Copiare e incollare gli indirizzi IP in un file di testo separato sul computer.
Passo 2. Blocco degli indirizzi IP sospetti
Successivamente, è necessario accedere al pannello di controllo dell’hosting WordPress e fare clic sull’icona “Blocco IP”.
Nella schermata successiva, è sufficiente copiare e incollare gli indirizzi IP che si desidera bloccare e fare clic sul pulsante “Aggiungi”.
Ripetete la procedura per bloccare qualsiasi altro indirizzo IP sospetto.
È tutto! Siete riusciti a bloccare completamente gli indirizzi IP sospetti dall’accesso al vostro sito web.
In seguito, se è necessario sbloccare uno di questi indirizzi IP, è possibile farlo semplicemente dall’app di blocco IP.
3. Protezione dell’accesso a WordPress con il Firewall del sito web
In qualità di amministratore di un sito web, potreste non voler dedicare troppo tempo alla gestione degli indirizzi IP che possono accedere alla pagina di login di WordPress.
Il modo più semplice per proteggere le pagine di login di WordPress è utilizzare Sucuri. Si tratta del miglior firewall per WordPress che accompagna un plugin completo per la sicurezza di WordPress.
Il firewall per siti web di Sucuri filtra automaticamente gli indirizzi IP sospetti dall’accesso a importanti file core di WordPress senza che questi raggiungano mai il vostro sito web.
Questo metodo migliora anche le prestazioni e la velocità di WordPress, in quanto blocca le attività sospette che rallentano il server.
Inoltre, Sucuri è dotato di una rete CDN integrata. Questa rete serve automaticamente file statici come immagini, fogli di stile e JavaScript da un server più vicino ai vostri utenti.
È possibile inserire facilmente nella whitelist gli indirizzi IP degli utenti che non possono accedere alle pagine di login di WordPress.
Alternative: MalCare o Cloudflare Free CDN
Speriamo che questo articolo vi abbia aiutato a capire come limitare l’accesso per indirizzo IP al vostro file wp-login.php. Potreste anche voler consultare la nostra guida completa alla sicurezza di WordPress o vedere questi ulteriori consigli per proteggere l’area di amministrazione di WordPress.
Se questo articolo vi è piaciuto, iscrivetevi al nostro canale YouTube per le esercitazioni video su WordPress. Potete trovarci anche su Twitter e Facebook.
Syed Balkhi
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
Jiří Vaněk
I copied the directives to the website, adjusted the IP addresses, and placed them in the .htaccess file. It works perfectly for both IP addresses that are now set in the .htaccess.
Av
in regards to a woocommerce site, is this function useful?
login can be done from my-account page.
WPBeginner Support
If you have multiple users logging in to your site for something like WooCommerce then this would not be something you would use. This would normally be for a site with a limited number of users.
Admin
Michael Pepper
Thanks for the article, helpful!
WPBeginner Support
Glad our article was helpful
Admin
Mick
For some reason when I use this the whitelisted ip is blocked too.
any idea why?
WPBeginner Support
You may want to ensure you set the correct IP and if you are using a VPN or something similar that may be the root of the issue
Admin
Bahar Ali
I used the above code and it somehow apply’s to every page of the site for example my home even shows prohibited.
WPBeginner Support
You may first want to check with your hosting provider to ensure there isn’t a conflicting setup on their end.
Admin
Unni Krishnan
Good One guys,
As you stated in the last section, I do have dynamic IPs for my mobile connection. Though I have white listed my Broadband IP, getting stuck while accessing on the go.
Do you know if any plugins help to solve this ?
Unni Krishnan
Also, such requests to wp-login.php are getting redirected to the homepage. Is this normal ?
FrancescoElzy
Hmm it seems like your blog ate my first comment (it was super long) so I guess I’ll just sum it up what I wrote and say, I’m thoroughly enjoying your blog. I too am an aspiring blog blogger but I’m still new to the whole thing. Do you have any helpful hints for newbie blog writers? I’d genuinely appreciate it.
Stéfano Willig
We have made our ftp accessable only by certain IP.
Now I can’t install or update wordpress directly via wordpress…
What can I do?
Jobbatam
Great tips and works for me.
But, Can i redirect wp-login to error 404?
If can, what code i add into code above?
thanks
MargaretMacnamar
It’s very simple to find out any matter on net as compared to textbooks, as I found this post at this website.
EQHRaymond
Thank you for the function. Post aided me a whole lot
Rex Wickham
If you want to add more than one IP you can do this:
1. you can use a partial IP:
Allow from 145.50.39
This will allow IP from 145.50.39.0 to 145.50.39.255
2. you can use a netmask or a CIDR:
Allow from 145.50.39.0/255.255.255.224
or
Allow from 145.50.39.0/27
This will allow IP from 145.50.39.0 to 145.50.39.31.
Julius Musembi
This is a great workaround.
David Swanson
I added the code to my .htaccess but when my users logout they receive Error 403.
When they click logout the link is /wp-login.php?action=logout
Anyway to fix this?
Brijesh
Great Tip! But i got a problem. It locks admin login from others ips, but if a registered user sign out from site, code also restricts that. I mean when user click sign out, it gives forbidden message. How to solve it?
Rafaqat
Thanks for your quick guideline to protect from excessive and illegal log in attempts. Actually there is a free plugin “better wp security” that can manage nearly all security issues regarding,login attempts,wp.config file,.htaccess file and many more. I think one should give it a try.
Kris
To get around the dynamic IP issue you can reference an htpasswd.
Baptiste Legrand
Thanks for this great tip ! But i’m a but confused : should I paste this snippet in my root .htacess file, or into my wordpress/.htaccess file ?
Cheers (and btw, I just LOVE wpbegginer.com, keep up the good work !)
Editorial Staff
Paste it in your wordpress/.htaccess
Admin
Editorial Staff
With dynamic IPs this can be a pain. You can set Apache Protect on it, but that is a bit more complex. #whitelist line is just to let me know which IP is which.
Admin
Steve Pringle
You should mention that plugins (like JetPack) may have issues when you limit access.