Cloudflare ile WordPress Güvenliğini Artırma

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.

Cloudflare Web Uygulaması Güvenlik Duvarı (Web Application Firewall – WAF), web siteleriniz için ek bir güvenlik katmanı sağlar.

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")

Web Siteniz Artık Daha Güvenli!

Bu 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 ekran potansiyel bir saldırganın güvenlik duvarı kurallarınızdan birini tetikledikten sonra göreceği ekrandır.

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.

Merhaba! Ben Burak. 2016 yılında Karadeniz Teknik Üniversitesi Harita Mühendisliği Bölümü’nden mezun oldum. Lise yıllarında HTML & CSS‘e, Üniversite yıllarında WordPress ve Matlab‘e adım attım. Lisans tezimi Matlab üzerinden program yazarak teslim ettim. Çeşitli projeler için WordPress tabanlı yazılımlar geliştirdim.

Bir cevap yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.