Cloudflare ile WordPress güvenliğini artırma çalışmasından önce kısaca size Cloudflare’i neden tercih ettiğimden bahsedeyim. Cloudflare’in JS ve CSS dosyaları için gelişmiş cache sistemine sahip olması, SSL vermesi, web sitelerini ataklardan korunması ve bu hizmetleri ücretsiz olarak sunmasından dolayı benim ve bir çok insanın vazgeçilmez tercihi haline getiriyor.
WordPress Sitenizi Daha Güvenli Hale Getirmek için Cloudflare Nasıl Kullanılır ?
Bu yazımda, Cloudflare ile WordPress güvenliğini artırma işleminin nasıl olduğundan bahsedeceğim. Cloudflare, ücretsiz planda 5 taneye kadar güvenlik duvarı kuralı (firewall rule) eklemenize izin verir.
Bu yazımda açıkladığım WordPress‘e özgü kuralları ekleyerek sitenizi daha güvenli hale getirebilir ve saldırıları hostinginize/sunucunuza ulaşmadan engelleyebilirsiniz.
IP Adresinizi Beyaz Listeye (Whitelist) Ekleme
Herhangi bir güvenlik duvarı kuralını uygulamadan önce, kendi IP’nizi beyaz listeye eklemelisiniz. Bu şekilde, WordPress yönetici panelinizi yabancılardan (bir dakika içinde açıklayacağım) engellemeye karar verirseniz etkilenmeyeceksiniz.
Bu işlemi yapmak için önce Cloudflare kontrol panelinize giriş yapın, ardından Firewall (1)’e tıklayın ve sonrasında açılan içerik sayfasından Tools (2)’a tıklayın, IP adresinizi görselde belirtilen alana girin ve açılır menüden Whitelist (3)’i seçin. Not: Eğer bu ip adresinin tüm sitelerinizde geçerli olmasını istiyorsanız 4 numaralı açılır menüden All websites in account‘u seçin.
* IP adresinizi yazma aşamasında bir kaç seçeneğiniz var:
- Tam IP adresinizi whiteliste ekleyin. İnternet Servis Sağlayıcınız (ISS) size statik (sabit) bir IP veriyorsa en uygun seçim budur. Not: Eğer IP adresiniz değişirse, WordPress admin paneline erişiminiz kesilir. Böyle bir durumla karşılaştığınız zaman yeni IP adresinizi tekrar whiteliste eklemeniz gerekmektedir.
- ISS’nizin tüm IP aralığını whiteliste ekleyin. Dinamik bir IP’niz varsa iyi bir seçim.
- Ülkenizi whiteliste ekleyin. Bu sizi kendi ülkenizden gelen saldırılardan korumaz, ancak sık seyahat ediyorsanız ve WordPress admin panelinize giriş yapmak için Wi-Fi kullanıyorsanız kullanışlı bir seçenek olabilir.
Bir IP adresi veya bu şekilde whiteliste eklenmiş bir ülke tüm güvenlik duvarı kurallarından muaf olacaktır, bu nedenle her bir kural için istisnalar eklemenize gerek yoktur.
1. Adım: wp-login.php Saldırılarını Engelleme
Sunucu loglarınıza göz atarsanız, muhtemelen dünyanın dört bir tarafından wp-login.php dosyasınıza erişmeye çalışan çok sayıda IP bulacaksınız. Bu, WordPress tabanlı sitelere yapılan en yaygın saldırıdır. Bunlar genellikle büyük bir tehdit oluşturmayan otomatik taramalardır, ancak yine de gönül rahatlığınız için bunları engelleyebilirsiniz.
Cloudflare panelinizde Firewall‘a bir kez daha tıklayın, ardından Tools’un hemen yanındaki Firewall Rules sekmesine tıklayın, açılan sayfadan mavi renkli “Create a Firewall rule” butonuna tıklayın ve aşağıdakileri girin:
- Rule Name: wp-login.php Saldırılarını Engelleme
- Field: URI Path
- Operator: contains
- Value: /wp-login.php
- Choose an action: Block
Doğru yaptıysanız, Expression Preview bölümünde aşağıdaki gibi içerik görmelisiniz.
Not: Edit expression‘a tıklayarak aşağıdaki kodu yapıştırabilirsiniz.
(http.request.uri.path contains "/wp-login.php")
“Deploy“a tıklayarak girdiğiniz kuralı kayıt edin. Otomatik olarak aktif olacaktır. Cloudflare şimdi whiteliste eklediğiniz IP dışında wp-login.php’e bağlanma girişimlerini engellemeye başlayacak.
Wp-login.php’e erişim denemelerinin logları sunucu loglarınızdan zamanla kaybolacak, ancak korumanın çalıştığını doğrulamak isterseniz bunları Cloudflare > Firewall > Overview sayfasından inceleyebilirsiniz.
2. Adım: xmlrpc.php Saldırılarını Engelleme
Wp-login.php’den sonra, xmlrpc.php ikinci en yaygın saldırı hedefidir. XML-RPC, bir akıllı telefondan bloglama veya aynı anda birden fazla WordPress sitesine içerik gönderme gibi meşru kullanımlara sahiptir. Bu dosyada güvenli bir şekilde engellenebilir. Öncekiyle aynı prosedürü izleyin ve kuralı oluşturun:
- Rule Name: xmlrpc.php Saldırılarını Engelleme
- Field: URI Path
- Operator: contains
- Value: /xmlrpc.php
- Choose an action: Block
Expression Preview bölümünde aşağıdaki gibi içerik görmelisiniz:
(http.request.uri.path contains "/xmlrpc.php")
3. Adım: Wp-admin Panelini Koruma
Şimdi, WordPress admin paneline sadece sizin belirlediğiniz IP’lerden erişebilmeniz için ayar yapalım. Bu kural biraz daha karmaşıktır, çünkü iki ek kural daha eklememiz gerekiyor.
Birincisi, bazı eklentiler tarafından web sitenizde dinamik içerik görüntülemek için kullanılan /wp-admin/admin-ajax.php’dir. Bu nedenle, /wp-admin/ klasörünün içinde bulunmasına rağmen dışarıdan erişilebilir olması gerekir.
İkincisi, /wp-admin/theme-editor.php, temanızı her düzenlediğinizde bir hata gerçekleştirir. Bu 2. ek kontrol bu hatanın alınmasını önler.
Aşağıdaki kuralları ekleyerek devam edelim:
- Rule Name: Wp-admin Panelini Koruma
- Field: URI Path
- Operator: contains
- Value: /wp-admin/
[AND]
- Field: URI Path
- Operator: does not contain
- Value: /wp-admin/admin-ajax.php
[AND]
- Field: URI Path
- Operator: does not contain
- Value: /wp-admin/theme-editor.php
- Choose an action: Block
Expression Preview bölümünde aşağıdaki gibi içerik görmelisiniz:
(http.request.uri.path contains "/wp-admin/" and not http.request.uri.path contains "/wp-admin/admin-ajax.php" and not http.request.uri.path contains "/wp-admin/theme-editor.php")
4. Adım: Eklentilere Gelen Erişimleri Engelleme
Çoğu WordPress tabanlı siteler güvenli olmayan eklentilerle saldırıya uğrar. En iyi çözüm elbette bu eklentileri yüklememektir, ancak /wp-content/plugins/ dizinine doğrudan erişimi engelleyen bir güvenlik kuralı da oluşturarak bu erişimleri engelleyebilirsiniz.
Aşağıdaki kuralları oluşturun:
- Rule Name: Eklentilere Gelen Erişimleri Engelleme
- Field: URI Path
- Operator: contains
- Value: /wp-content/plugins/
[AND]
- Field: Referer
- Operator: does not contain
- Value: siteadi.com (domain adresiniz ile değiştirin)
[AND]
- Field: Known Bots
- Operator: equals
- Value: Off
- Choose an action: Block
Yada aşağıdaki kodu doğrudan yapıştırın. Not: siteadi.com’u domain adresiniz ile değiştirmeyi unutmayın:
(http.request.uri.path contains "/wp-content/plugins/" and not http.referer contains "siteadi.com" and not cf.client.bot)
5. Adım: Spam Yorumları Azaltma
Dürüst olmak gerekirse bu günlerde spam botları, yönlendireni taklit edecek kadar sofistike olduğundan, bu kuralın etkisi minimum olacaktır. Bu, yalnızca wp-comments-post.php dosyasına doğrudan erişmeye çalışan botları engeller.
Aşağıdaki kuralları oluşturun:
- Rule Name: Spam Yorumları Azaltma
- Field: URI Path
- Operator: equals
- Value: /wp-comments-post.php
[AND]
- Field: Request Method
- Operator: equals
- Value: POST
[AND]
- Field: Referer
- Operator: does not contain
- Value: siteadi.com (domain adresiniz ile değiştirin)
- Choose an action: Block
Aşağıdaki kodu doğrudan yapıştırarak zaman kazanabilirsiniz. Not: Site adresinizi değiştirmeyi unutmayın:
(http.request.uri.path eq "/wp-comments-post.php" and http.request.method eq "POST" and not http.referer contains "siteadi.com")
Cloudflare ile WordPress Güvenliğini Artırma İşlemindeki 5 Adım ile Web Siteniz Artık Daha Güvenli!
Cloudflare ile WordPress güvenliğini artırma yazımdaki 5 kural en yaygın WordPress saldırılarını kapsar, bunları ihtiyaçlarınıza göre düzenleyebilirsiniz.
Web sitelerinizde gördüğünüz çoğu saldırı, web sitelerinin sadece güvenlik açıklarını tarayan otomatik botlardan gelir, ancak whiteliste eklediğiniz IP’ler dışında bir kişi admin paneline erişmeye çalışırsa, aşağıdaki gibi bir “Error 1020” sayfası ile karşılaşacaktır (bir proxy veya VPN üzerinden erişerek bunu test edebilirsiniz) :
Bu sayfadaki yazı Cloudflare Firewall Rules for Securing WordPress makalesinden türkçeye çevirilmiştir.
Sevgiler.
Bir önceki yazımız olan Bitcoin'in Nabzı Burada Atıyor başlıklı makalemizi de okumanızı öneririz.
3 Yorum
cenk erdem
25 Ocak 2022 at 19:25Hocam wp-login ve wp-admin kısımlarını söylediğiniz gibi yaptım kendim giriş yapamıyorum bu şekilde.
Burak Şahin
24 Eylül 2022 at 20:03Merhabalar,
‘IP Adresinizi Beyaz Listeye (Whitelist) Ekleme’ adımında belirtildiği şekilde IP adresinizi whitelist’e eklediniz mi ?
erhan
14 Şubat 2021 at 11:13Merhaba burak bey, geri bildirimde bulunmak istiyorum; türkiye dışından gelen dos ataklarını engellemeye karşı
bu içeriği güncelleyip blogunuza eklermisiniz
https://blog.cliaweb.com/cloudflare-firewall-rules-kullanimi-ayarlar-ulke-engelleme.html