Büyüklerimiz ‘Eşeğini sağlam kazığa bağla’ demişler. Biz bu yazıda sağlam kazığa bağlamadan önce sağlam kazığı yapacağız. WordPress Güvenlik Önlemleri 2021 yazımızda WordPress sitenizi 2021 yılında nasıl daha güvenilir hale getireceğimizi anlatacağız.

30 adet adımdan oluşan yazımızdaki adımları uygulayarak sitenizi daha güvenli hale getirebilirsiniz.

Yazımızdaki adımları tek seferde yani bir gün gibi bir sürede hepsini uygulamanızı öneririz. Çünkü sitenize saldırmak isteyen kişi önlem aldığınız görür ve ona göre harekete geçmeye çalışabilir.

Bu yazıdaki adımları uygulamadan önce mutlaka tüm sitenizin yedeğini alınız.

Yazıya başlamadan önce en önemli adım olan yedek alma adımını sizlere hatırlatalım.

Düzenli almış olduğunuz yedekler ile olası saldırılardan en az zarar ile kurtulabilirsiniz. Günlük ücretsiz yedekleme sunan Cenuta firmasını size öneririz. Bu sayede ek olarak yedekleme sorumluluğunu üzerinden atmış olabilirsiniz. Cenuta İndirim kodlarına erişmek için aşağıdaki linke tıklayabilirsiniz.

https://wpdoz.com/cenuta-indirim-kodlari/

WordPress Güvenlik Önlemleri 2021

Güncellemelerden, 2 adımlı doğrulamaya kadar birçok konuda güvenlik önlemleri için bu yazıdaki adımları uygulayabilirsiniz. Ayrıca bu adımları uygulamadan önce yedek almanızı öneririz. Yedek almak için aşağıdaki yazıyı okuyabilirsiniz.

Şimdi hiç vakit kaybetmeden güvenlik adımlarımızı uygulamaya başlayalım.

1. WordPress Güncellemelerini Yapın

WordPress en çok kullanılan yazılımdır. Ek olarak açık kaynaklı olmasından da dolayı güvenlik açıkları bulunur. Bu gibi açıklar kullanıcılar kendi önlemleri ile kapatabilir. Ama bazı büyük güvenlik açıkları profesyonel yazılımcılar tarafından kapatılması gerekmektedir.

Bu yüzden WordPress’in yapımcısı olan Automatic şirketi gönüllü geliştiriciler ile yeni güncellemeler yayınlar. Güncelleştirmelerden birisi olan Güvenlik güncelleştirmeleri genellikle otomatik olarak yapılır. Ama bazı isteğe bağlı sürümleri kullanıcının kendisi güncellemesi gerekmektedir.

Siz de bu güncellemeleri araştırarak ivedi bir şekilde WordPress’i güncel versiyona getirmelisiniz. Bu güncellemeleri görüntülemek için;

Admin Paneli > Başlangıç > Güncellemeler sekmesine gitmeniz gerekmektedir.

2. Eklentileri ve Temaları Güncel Tutun

Kullandığınız tema ve eklentilerde de açıklar olabilir. Hatta WordPress’in kendisinden daha çok açıkları olabilir. Siz de herhangi bir açık olmaması için / en az seviyede olması için kendini kanıtlamış tema ve eklenti yapımcılarından ürünleri satın alın.

Tema ve eklenti yapımcıları tespit ettikleri hatalara göre güncelleme yayınlar. Sizin de bu güncellemeleri takip ederek en kısa sürede tema ve eklentilerinizi güncellemeniz gerekmektedir.

Eklenti ve temaları güncellemek için Güncellemeler sayfasını takip edebilirsiniz. Veya otomatik güncelleneme bulundurmayan tema ve eklentiler için de tema yapımcısına başvurabilirsiniz.

Warez, crack, null olarak ifade edilen temaları kullanmamaya dikkat edelim.

4. admin Kullanmayın!

Yönetici hesabınızı admin, administrator, adminwp, wpadmin, admin1 gibi kolay tahmin edilebilecek kullanıcı adları kullanmayın. Bazı saldırılarda bu gibi kullanıcı adları ile girişler denenir.

Eğer siz bu gibi kullanıcı adları kullanıyorsanız;

  • Önce başka bir yönetici hesabı oluşturun.
  • Şuan kullandığınız ve sakıncalı olan kullanıcı adını barındıran hesabı silin.
  • Eğer o hesaba ait içerik var ise bunu ne yapmak istediğiniz soran bir yazı bulunur.
  • O uyarıyı takip ederek diğer hesaba içeriği aktarın.

5. Minimum Yönetici Kullanın

Minimum düzeyde yönetici hesabı oluşturun. Hatta mümkünse bir adet kullanıcı bulunsun (yönetici). Çünkü sitenizi ele geçirmek isteyen kişiler farklı kullanıcı adları ve şifre varyasyonları deneyerek sizlere saldırı yapabilir.

Bunu önlemek için minimum düzeyde yönetici hesabı bulunsun. Diğerlerini editör, yazar gibi rollere dağıtabilirsiniz.

6. Admin Panelini Kimseye Vermeyin

Ücretli destek aldığınız zaman veya birisi admin panelinden bir işlemi yapacağı zaman admin paneline ihtiyaç duyar. Siz de bu zamanda kesinlikle kendi kullandığınız admin giriş bilgileri vermeyin.

Yeni bir üyelik hesabı oluşturun. Bu hesabın şifresini de WordPress’in ürettiği şifre (rastgele üretilen) olsun. Daha sonra silmeyi unutmayın.

7. Özel Şifre Kullanın

WordPress web sitenizdeki yönetici hesabınızdaki şifreyi başka hiçbir yerde kullanmayın. Sadece sitenize özel bir şifre oluşturun.

Örneğin sizin sitenizi bilen birisi başka bir hesabınızı ele geçirdiğinde siteniz aklına gelerek orayı da ele geçirmeye çalışacaktır.

8. Doğru Hosting Firması Seçin

Gerçek hayatta elinizde 10 kilo altın ile bir barakada kalmak ister misiniz? Tabii ki istemezsiniz. Sizde 10 kilo altın kadar değerli olan emeklerinizi sırf ucuz diye küçük firmalarda barındırmayın.

Hosting firmanızı değiştirmek isterseniz; Hosting indirim kodları sayfamıza bakabilirsiniz. Bizim size firma önerimiz ise Cenuta‘dır.

9. Orijinal Yazılımlar

Web sitenizde kullandığınız tema ve eklentileri direkt yapımcısından alın. İnternet sitelerinde ücretli olan yazılımlar ücretsiz kullanmayın. Bunları kullanırken kar ettiğinizi düşünebilirsiniz ama size uzun vadede zarar verecektir.

Bu yüzden yazılıma ücretler ödemekten kaçınmayın.

10. SSL Kullanın

SSL Sertifikası kullanarak verilerinizi güvenli bir şekilde şifreleme yapın. Bu şifreleme işlemini yapmak oldukça basittir. Çoğu hosting firması ücretsiz SSL sertifikası verir.

Veya Let’s Encrypt SSL’den veya CloudFlare’den ücretsiz olarak SSL alabilirsiniz.

11. Güncel PHP Sürümü

WordPress yazılımınız, WordPress Temalarınız, WordPress eklentileriniz PHP dili ile kodlanmıştır. Bu PHP dili her geçen gün gelişmeye devam ediyor. Yeni gelen güncellemeler ile daha güvenli ve performanslı hale geliyor. Bu yüzden yeni gelen güncellemeleri takip etmeli ve bu güncellemeleri sitenize uygulamalısınız.

Güncellemeler geldikten sonra, güncellemeyi uygulamadan hemen önce kullandığınız tema ve eklentilerin yeni gelen PHP sürümüne uygun olup olmadığını sorgulamalı, onaylamalı ve buna göre güncelleme işlemini yapmalısınız.

12. 2FA Kullanın

2 faktörlü doğrulama kullanarak mailinize gelecek olan e-mail ile veya telefonunuza gelecek olan SMS ile girişi doğrulayarak giriş yapabilirsiniz.

Hesabınızın şifresini ve kullanıcı adını bilen bir saldırgan giriş yapamayacaktır. Çünkü 2 faktörlü doğrulama işlemini geçemeyecek ve panele erişemeyecektir.

Bu işlem için WordPress Eklentileri mevcuttur. WordPress havuzundan 2FA araması yaparak bulabilirsiniz.

13. Kullanılmayan Tema ve Eklentileri Silin

Aktif olarak kullanmadığınız tüm eklentileri ve temaları silin. Bu tema ve eklentilerde açık olduğu zaman siz kullanmasanız bile virüs size bulaşabilir.

Pasif iken bulaşmasa bile aktif olduğu zaman kolayca yayılabilir.

14. XML-RPC’yi Deaktif Edin

Bir HTTP taşıma mekanizması olan XML-RPC veri transfer sağlayan bir özelliktir. Brute-force gibi saldırılara olanak sağladığı için kapatılması sizin yararınıza olacaktır. Bunu kapatmak için ister eklenti kullanın. İster de .htaccess dosyası ile erişimi kapatın.

Eklenti ile yapmak gereksiz yere sitenizi yoracağı için pek tavsiye etmeyiz. Ama yine de eklenti ile yapmak isteyenler olursa aşağıdaki eklenti ile açığı kapatabilir.

Bizim önerdiğimiz yöntem olan .htaccess dosyası ile deaktif etmek için aşağıdaki kodu web sitenizin .htaccess dosyasına ekleyin.

123.123.123.123 yazan yere kendi IP adresinizi yazınız.

# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</Files>

15. PHP Hata Raporlamayı Deaktif Edin

WordPress sitenizde bazı zamanlar hatalar oluşur. WordPress de bu hataları size bildirmek için hata raporlama sistemini kullanır. Bu hata raporlama sisteminde sitenizde oluşan hataları ayrıntıları ile size bildirir.

Örneğin saldırgan sitenize giriş denemesi yapıyor. Giriş denemesinde oluşan hataları hata raporlama sistemine erişerek oluşan hataları görebilir ve ona göre saldırılara devam edebilir.

Bu özelliği devre dışı bırakmak için wp-config.php dosyamıza şu kodları eklemeliyiz. Kodları eklemeden önce wp-config.php dosyanızın yedeğini almalısınız.

error_reporting(0);
@ini_set(‘display_errors’, 0);

15. Güvenlik Eklentileri Kullanın

WordPress için yapılmış olan güvenlik eklentilerini kullanabilirsiniz. En çok kullanılan iThemes Security ve Wordfence eklentilerini kullanabilirsiniz.

Bu eklentilerin ücretsiz olan versiyonlarını kullanabilirsiniz. Eğer daha fazla güvenlik isterseniz eklentilerin ücretli olan versiyonlarını satın alabilirsiniz.

WordPress güvenlik eklentilerinden size önerimiz; iThemes Security eklentisidir.

16. Dosya Düzenleme Engelleme

Saldırgan sunucunuza veya hostinginize değil de sadece sitenizin yönetici paneline girdiği zaman zararlı kodlarını yerleştireceği ilk yer kullandığınız tema veya eklentiler olacaktır.

WordPress’in kendi özelliği olan Tema Düzenleyici ve Eklenti Düzenleyici kullanarak bu kodları yerleştirebilir. Bunun önleyebilirsiniz.

Gerekli olan kodu yine wp-config.php dosyasına ekleyerek yapabilirsiniz. Bunu yapmadan önce yine yedek almayı unutmayın.

define( 'DISALLOW_FILE_EDIT', true );

17. PHP Yükleme Devre Dışı Bırakma

Saldırganların en sevdiği hackleme yöntemlerinden biri olan upload klasörüne PHP scriptler yüklemektir. Bunlardan da kurtulmak için wp-content dizinine (veya sizin yükleme klasörünüz) yeni bir .htaccess dosyası oluşturup aşağıdaki kodu içine yapıştırmalıyız.

  • wp-content/uploads dizinine gelin.
  • Yeni dosya oluşturmaya basın.
  • Dosya adını .htaccess yapın.
  • Kaydedip .htaccess dosyasını düzenleyin.
  • Aşağıdaki kodu içerisine yapıştırın.
Bu kodu wp-content, wp-includes dosyalarınıza da eklemenizi öneririz.
<Files *.php>
deny from all
</Files>

Dosyayı kaydedip çıkabilirsiniz.

18. wp-config.php’yi Güvenliğe Alın

WordPress ile veritabanı bağlantılarınızı tutan. Açık bir şekilde adı, kullanıcı adı ve veri tabanı şifresinin bulunduğu wp-config.php dosyasını güvenliğe almalıyız.

Yoksa saldırgan dosyaya eriştikten sonra veri tabanına erişmesi o kadar da zor olmayacaktır.

Bu konu yine .htaccess dosyasına ekleyerek wp-config.php dosyasına erişimi engelleyebilirsiniz.

<files wp-config.php>
order allow,deny
deny from all
</files>

aynı şekilde bu kodu da ekleyerek .htaccess dosyanıza erişimi engelleyebilirsiniz.

<Files .htaccess>
order allow,deny
deny from all
</Files>

19. Spam Botları Engelleme

Bazı spam botlar sitenizi tarayarak sitenizi yorabilir. Gerçek kullanıcılar da bu yorulmadan dolayı sitenize ulaşamayabilir.

Aşağıdaki kodları .htaccess dosyamıza ekleyerek spam botlara karşı sitemizi güvenliğe alıyoruz.

# Bazı zararlı botları engeller. WPDOZ
SetEnvIfNoCase User-Agent "AhrefsBot" bad_bots
SetEnvIfNoCase User-Agent "AITCSRobot" bad_bots
SetEnvIfNoCase User-Agent "Alexibot" bad_bots
SetEnvIfNoCase User-Agent "Arachnophilia" bad_bots
SetEnvIfNoCase User-Agent "archive\.org\_bot" bad_bots
SetEnvIfNoCase User-Agent "ASpider" bad_bots
SetEnvIfNoCase User-Agent "BackDoorBot" bad_bots
SetEnvIfNoCase User-Agent "BSpider" bad_bots
SetEnvIfNoCase User-Agent "CFNetwork" bad_bots
SetEnvIfNoCase User-Agent "CyberPatrol" bad_bots
SetEnvIfNoCase User-Agent "DeuSu" bad_bots
SetEnvIfNoCase User-Agent "DotBot" bad_bots
SetEnvIfNoCase User-Agent "EmailCollector" bad_bots
SetEnvIfNoCase User-Agent "Exabot" bad_bots
SetEnvIfNoCase User-Agent "FeedlyBot" bad_bots
SetEnvIfNoCase User-Agent "Genieo" bad_bots
SetEnvIfNoCase User-Agent "Gluten\ Free\ Crawler" bad_bots
SetEnvIfNoCase User-Agent "GrapeshotCrawler" bad_bots
SetEnvIfNoCase User-Agent "MaxPointCrawler" bad_bots
SetEnvIfNoCase User-Agent "meanpathbot" bad_bots
SetEnvIfNoCase User-Agent "MJ12bot" bad_bots
SetEnvIfNoCase User-Agent "PagesInventory" bad_bots
SetEnvIfNoCase User-Agent "Plukkie" bad_bots
SetEnvIfNoCase User-Agent "Qwantify" bad_bots
SetEnvIfNoCase User-Agent "SemrushBot" bad_bots
SetEnvIfNoCase User-Agent "SentiBot" bad_bots
SetEnvIfNoCase User-Agent "SEOkicks\-Robot" bad_bots
SetEnvIfNoCase User-Agent "SeznamBot" bad_bots
SetEnvIfNoCase User-Agent "spbot" bad_bots
SetEnvIfNoCase User-Agent "WeSEE\_Bot" bad_bots
SetEnvIfNoCase User-Agent "Wget" bad_bots
SetEnvIfNoCase User-Agent "worldwebheritage\.org" bad_bots
SetEnvIfNoCase User-Agent "Xenu\ Link\ Sleuth" bad_bots
SetEnvIfNoCase User-Agent "Yahoo!\ Slurp" bad_bots
SetEnvIfNoCase User-Agent "Zeus" bad_bots
SetEnvIfNoCase User-Agent "facebookexternalhit" bad_bot
SetEnvIfNoCase User-Agent "Twitterbot" bad_bot
SetEnvIfNoCase User-Agent "MetaURI" bad_bot
SetEnvIfNoCase User-Agent "mediawords" bad_bot
SetEnvIfNoCase User-Agent "FlipboardProxy" bad_bot
<Limit GET POST HEAD>
    Order Allow,Deny
    Allow from all
    Deny from env=bad_bots
</Limit>

Yine aynı şekilde spam siteleri de engellemek için aşağıdaki kodu siteye ekliyoruz.

#Belirli spam siteleri engelliyoruz WPDOZ
RewriteCond %{HTTP:User-Agent}
RewriteCond %{HTTP_USER_AGENT} ^(aesop_com_spiderman|alexibot|backweb|bandit|batchftp|bigfoot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(black.?hole|blackwidow|blowfish|botalot|buddy|builtbottough|bullseye) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(cheesebot|cherrypicker|chinaclaw|collector|copier|copyrightcheck) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(cosmos|crescent|curl|custo|da|diibot|disco|dittospyder|dragonfly) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(drip|easydl|ebingbong|ecatch|eirgrabber|emailcollector|emailsiphon) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(emailwolf|erocrawler|exabot|eyenetie|filehound|flashget|flunky) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(frontpage|getright|getweb|go.?zilla|go-ahead-got-it|gotit|grabnet) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(grafula|harvest|hloader|hmview|httplib|httrack|humanlinks|ilsebot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(infonavirobot|infotekies|intelliseek|interget|iria|jennybot|jetcar) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(joc|justview|jyxobot|kenjin|keyword|larbin|leechftp|lexibot|lftp|libweb) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(likse|linkscan|linkwalker|lnspiderguy|lwp|magnet|mag-net|markwatch) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(mata.?hari|memo|microsoft.?url|midown.?tool|miixpc|mirror|missigua) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(mister.?pix|moget|mozilla.?newt|nameprotect|navroad|backdoorbot|nearsite) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(net.?vampire|netants|netcraft|netmechanic|netspider|nextgensearchbot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(attach|nicerspro|nimblecrawler|npbot|octopus|offline.?explorer) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(offline.?navigator|openfind|outfoxbot|pagegrabber|papa|pavuk) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(pcbrowser|php.?version.?tracker|pockey|propowerbot|prowebwalker) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(psbot|pump|queryn|recorder|realdownload|reaper|reget|true_robot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(repomonkey|rma|internetseer|sitesnagger|siphon|slysearch|smartdownload) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(snake|snapbot|snoopy|sogou|spacebison|spankbot|spanner|sqworm|superbot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(superhttp|surfbot|asterias|suzuran|szukacz|takeout|teleport) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(telesoft|the.?intraformant|thenomad|tighttwatbot|titan|urldispatcher) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(turingos|turnitinbot|urly.?warning|vacuum|vci|voideye|whacker) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(libwww-perl|widow|wisenutbot|wwwoffle|xaldon|xenu|zeus|zyborg|anonymouse) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^web(zip|emaile|enhancer|fetch|go.?is|auto|bandit|clip|copier|master|reaper|sauger|site.?quester|whack) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider|leacher|collector|grabber|webpictures).*$ [NC]
RewriteRule . - [F,L]
</IfModule>

20. WP-Admin Linki Değiştirme

Brute Force saldırıları genelde wp-admin linkine olur. Bu saldırıları da engellemek için bir eklenti kullanarak admin panel adresini istediğimiz gibi değiştirebiliriz.

  • Eklentiler > Yeni Ekle
  • Arama çubuğuna WPS Hide Login yazıyoruz.
  • İlk çıkan eklentiyi kuruyoruz.
  • Eklenti ayarları sayfasına gidiyoruz.
  • Aşağıdaki resimdeki gibi giriş adresini değiştiriyoruz ve kaydediyoruz.
WP-Admin Linki Değiştirme
WP-Admin Linki Değiştirme

Şimdi bu işlemi de yaptıktan sonra bizim için en önemli adım olan adıma geçelim.

21. CloudFlare

CloudFlare bildiğiniz gibi bir CDN servisidir. Ayrıca güvenlik hizmetleri de sunar. Ücretsiz olarak sunduğu paketi de vardır. Ama siz daha çok güvenlik ve özelleştirme isterseniz ücretli olan sürümleri tercih edebilirsiniz. En azından ücretsiz sürümü kullanarak sitenizi güvene almanızı öneririz.

CloudFlare ile ilgili ayarları daha iyi yapmanız için aşağıdaki yazıyı okumanızı şiddetle tavsiye ederiz.

WordPress güvenlik önlemleri yazımızdaki işlemleri yaparak sitenizi daha fazla güvene alabilirsiniz. Son sözlerimizde size 3 tavsiyemiz var. 1. Sağlam hosting firması seçin. 2. Yedek alın. 3. Warez kullanmayın.