WordPress’teki wp-login.php dosyanıza IP adresine göre erişimi sınırlamak mı istiyorsunuz?
WordPress giriş sayfası genellikle DDoS saldırıları ve bilgisayar korsanları tarafından web sitenize erişmek için saldırıya uğrar. Erişimi belirli IP adresleriyle sınırlamak bu tür girişimleri etkili bir şekilde engelleyebilir.
Bu makalede, WordPress’teki wp-login.php dosyanıza IP’ye göre erişimi nasıl kolayca sınırlayacağınızı göstereceğiz.
Neden wp-login.php’ye Erişimi IP Adresine Göre Sınırlandıralım?
Bir WordPress web sites inin giriş sayfası (genellikle wp-login.php), kullanıcıların sitenize giriş yapmak için gittikleri yerdir.
Bir web sitesi sahibi olarak, web sitesi bakımı yapabileceğiniz, içerik yazabileceğiniz ve web sitenizi yönetebileceğiniz WordPress yönetici alanına erişmenizi sağlar.
Ancak, internetteki yaygın kaba kuvvet saldırılarının web sitelerine erişim sağlamak için wp-login.php sayfasını hedef aldığı bilinmektedir. İçeri girmeyi başaramasalar bile, web sitenizi yavaşlatabilir, hatta çökertebilirler.
Bu durumla başa çıkmanın bir yolu, saldırıların geldiği IP adreslerini engellemektir (Bu konudan makalenin ilerleyen bölümlerinde bahsedeceğiz).
IP adresi, internet üzerindeki belirli bir bilgisayarı tanımlayan bir telefon numarası gibidir. Bilgisayar korsanları IP adreslerini değiştirmek için yazılım kullanabilirler.
Ancak, daha karmaşık saldırılar daha büyük bir IP adresi havuzu kullanır ve bunların hepsini engellemek mümkün olmayabilir.
Bu durumda, erişimi kendiniz ve web sitenizdeki diğer kullanıcılar tarafından kullanılan belirli IP adresleriyle sınırlayabilirsiniz.
Bununla birlikte, bulut güvenlik güvenlik duvarı da dahil olmak üzere 3 farklı yol kullanarak wp-login.php dosyasına belirli IP adresleri tarafından erişimi nasıl kolayca sınırlayabileceğimize bir göz atalım.
1. WordPress Giriş Sayfasına Erişimi IP Adresine Göre Sınırlama
Bu yöntem için .htaccess dosyasına bazı kodlar eklemeniz gerekecektir.
.htaccess dosyası, web sitenizin kök klasöründe bulunan ve WordPress barındırma kontrol panelinizdeki FTP veya Dosya Yöneticisi uygulaması kullanılarak erişilebilen özel bir sunucu yapılandırma dosyasıdır.
Bir FTP istemcisi kullanarak WordPress sitenize bağlanın ve aşağıdaki kodu en üste ekleyerek .htaccess dosyanızı düzenleyin.
<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>
XX’leri kendi IP adreslerinizle değiştirmeyi unutmayın. SupportAlly sayfasını ziyaret ederek IP adresinizi kolayca bulabilirsiniz.
Web sitenize giriş yapması gereken başka kullanıcılarınız da varsa, onlardan IP adreslerini vermelerini isteyebilirsiniz. Daha sonra bunları .htaccess dosyasına da ekleyebilirsiniz.
İşte yukarıda bahsedilen kodun bir başka örneği.
<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>
Artık bu IP adreslerine sahip kullanıcılar wp-login.php dosyasını görüntüleyebilecek ve web sitenize giriş yapabilecekler. Diğer kullanıcılar aşağıdaki hata mesajını göreceklerdir:
2. Belirli IP Adreslerinin Web Sitenize Erişimini Engelleme
Bu yöntem ilk yöntemin tamamen tersidir.
WordPress giriş sayfası erişimini belirli IP adresleriyle sınırlamak yerine, web sitenize saldırmak için kullanılan IP adreslerini engelleyebileceksiniz.
Bu yöntem özellikle WordPress üyelik web siteleri, e-ticaret mağazaları veya birden fazla kullanıcının hesaplarına erişmek için giriş yapması gereken diğer web siteleri için kullanışlıdır.
Bu yöntemin dezavantajı, bilgisayar korsanlarının IP adreslerini değiştirebilmeleri ve web sitenize saldırmaya devam edebilmeleridir.
Neyse ki, yaygın WordPress hackleme girişimlerinin çoğu sabit bir IP adresi kümesi kullanır ve bu da bu yöntemi çoğu durumda etkili kılar.
Adım 1: Engellemek İstediğiniz Rahatsız Edici IP Adreslerini Bulma
İlk olarak, web sitenize saldırmak için kullanılan IP adreslerini bulmanız gerekir.
Rahatsız edici IP adreslerini bulmanın en kolay yolu sunucu günlüklerinize bakmaktır. Basitçe hosting hesabı kontrol panelinize gidin ve ‘Ham Erişim’ günlükleri simgesine tıklayın.
Bir sonraki sayfada, erişim günlüklerini indirmek için alan adınıza tıklayın. Bu, gz uzantılı bir dosya indirecektir.
Dosyayı çıkarmanız ve Notepad veya TextEdit gibi bir metin düzenleyici ile açmanız gerekecektir.
Buradan, wp-login.php sayfasına tekrar tekrar giren IP adreslerini bulacaksınız.
IP adreslerini kopyalayıp bilgisayarınızdaki ayrı bir metin dosyasına yapıştırın.
Adım 2. Şüpheli IP Adreslerini Engelleme
Ardından, WordPress hosting kontrol panelinizde oturum açmanız ve ‘IP Engelleyici’ simgesine tıklamanız gerekir.
Bir sonraki ekranda, engellemek istediğiniz IP adreslerini kopyalayıp yapıştırın ve ‘Ekle’ düğmesine tıklayın.
İstediğiniz diğer şüpheli IP adreslerini engellemek için işlemi tekrarlayın.
Hepsi bu kadar! Şüpheli IP adreslerinin web sitenize erişimini tamamen engellediniz.
Daha sonra, bu IP adreslerinden birinin engelini kaldırmanız gerekirse, bunu IP engelleyici uygulamasından kolayca yapabilirsiniz.
3. WordPress Girişini Web Sitesi Güvenlik Duvarı ile Koruma
Bir web sitesi yöneticisi olarak, WordPress giriş sayfanıza erişebilen IP adreslerini yönetmek için çok fazla zaman harcamak istemeyebilirsiniz.
WordPress giriş sayfalarınızı korumanın en kolay yolu Sucuri kullanmaktır. Kapsamlı bir WordPress güvenlik eklentisine eşlik eden en iyi WordPress güvenlik duvarıdır.
Sucuri’nin web sitesi güvenlik duvarı, şüpheli IP adreslerinin önemli WordPress çekirdek dosyalarına erişimini web sitenize ulaşmadan otomatik olarak filtreler.
Bu yöntem, şüpheli etkinliklerin sunucunuzu yavaşlatmasını engellediği için WordPress performansınızı ve hızınızı da artırır.
Bunun da ötesinde, Sucuri yerleşik bir CDN ağı ile birlikte gelir. Görüntüler, stil sayfaları ve JavaScript gibi statik dosyaları kullanıcılarınıza daha yakın bir sunucudan otomatik olarak sunacaktır.
WordPress giriş sayfalarına erişemeyen kullanıcıların IP adreslerini kolayca beyaz listeye ekleyebilirsiniz.
Alternatifler: MalCare veya Cloudflare Ücretsiz CDN
Umarız bu makale, wp-login.php dosyanıza IP adresine göre erişimi nasıl sınırlandıracağınızı öğrenmenize yardımcı olmuştur. Ayrıca WordPress güvenlik kılavuzumuzun tamamını veya WordPress yönetici alanını korumak için bu ek ipuçlarını görmek isteyebilirsiniz.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
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.
Yönetici
Michael Pepper
Thanks for the article, helpful!
WPBeginner Support
Glad our article was helpful
Yönetici
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
Yönetici
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.
Yönetici
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
Yönetici
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.
Yönetici
Steve Pringle
You should mention that plugins (like JetPack) may have issues when you limit access.