WordPress güvenliği tüm wordpress kullanıcıları için oldukça önem arz eden bir konu. Emin olun sitenizin hiti arttıkça, iyi bir yerlere geldikçe buna göz diken ve emeğinizi çalmak isteyen insanlar olacaktır.
İşte bu kötü niyetin önüne geçebilmek adına güvenlik önlemi olarak yapabileceğiniz en iyi şey wordpress sitenize ithemes security eklentisi kurmanız.
>> Settings
>> Settings – Global Settings
>> Settings – 404 Detection
>> Settings – Away Mode
>> Settings – Banned Users
>> Settings – Bruce Force Protection
>> Settings – Database Backups
>> Settings – Hide Login Area
>> Settings – Malware Scanning
>> Settings – Site Socket Layers
>> Settings – Strong Passwords
>> Settings – System Tweaks
>> Settings – WordPress Tweaks
>> Advanced
>> Backups
iThemes Security Kurulumu
WordPress admin panelinizden Eklentiler >> Yeni ekle sekmesi altından sağ üst köşedeki arama kutusuna iThemes security yazarak eklentiyi aratıyoruz ve karşımıza yukarıdaki resimdeki gibi bir ekran çıkıyor.
Resimde Yünklenenler olarak görünen buton, sizde şimdi kur butonu olarak görünecektir. Şimdi Kurbutonuna tıklayarak iThemes security eklentisini wordpress sitenize kolaylıkla kurmanız mümkün.
iThemes Security Ayarları
Dashboard
Eklenti kurma işlemini gerçekteştirdikten sonra iThemes security, wordpress admin panelinizde Security başlığı adında yer alacaktır.
Security >> Dashboard sekmesine gittiğinizde karşınıza yukarıdaki resimdeki gibi bir ekran çıkacaktır. Bu ekranda iThemes security size, sitenizdeki güvenlik açıklarının ne olduğunu söyler ve bu güvenlik açıklarını High (Yüksek), Medium (Orta) Low (Düşük) seviye olarak, üç farklı kategoride derecelendirir.
Bu kategoriler altında belirtilen güvenlik açıklarını kapatmak için Fix Itbutonuna bastığınızda, iThemes security sizi otomatik olarak gerekli düzeltmeyi yapacağınız ayara atar.
İngilizce bilmeyen birisi bile sadece Fix it butonlarını kullanarak sitesindeki bir çok güvenlik açığını kapatabilir. Fakat, bazen güvenlik açıklarını kapatmak isterken etkinleştirdiğiniz ayarlar sitenizin tamamıyla bozulmasına sebebiyet verebilir. O yüzden hangi ayarın ne işe yaradığını bilmenizde kesinlikle fayda var ki bende bu yüzden, bu yazımda size her bir ayarı tek tek açıklayacağım.
Önemli: Eğer çok fazla kafa yormak istemiyorum, sadece fix it butonlarıyla ben bütün ayarlarımı yaparım diyorsanız, bu işleme başlamadan önce sitenizin yedeğini almanızışiddetle tavsiye ederim ki ortaya çıkabilecek herhangi bir hatada sitenizi eski haline döndürebilin.
Settings
İTHEMES SECURİTY AYARLARI TEK RESİM
Yukarıdaki linke kolaylık olması açısından iThemes security ayarları – settings bölümünün tamamını tek bir resim olarak paylaştım.
Global Settings
Write to Files: Bu kısımdan iThemes security eklentisinin wp.config.php ve .htaccesssayfalarını yazmasına izin veriyoruz. Eğer bunu etkinleştirmezseniz, tüm yazım işlemini sizin manuel olarak yapmanız gerekli.
Notification Email: Buraya girdiğiniz e-mail adresi, ithemes security eklentisinin sizinle iletişime geçiceği adrestir. Sitenizde güvenlik adına gerçekleşen her şeyin bildirimini ( tüm saldırılar, yedekleme işlemleri vs. ) burada belirttiğiniz e-mail adresiniz üzerinden alacaksınız.
Send Digest Email: Bu özelliği etkinleştirdiğinizde, iThemes security eklentisinin bir gün içerisinde sitenize karşı gerçekleştirilen her bir atak girişimini tek tek mail atması yerine, tüm girişimleri toplu olarak günde bir kez atmasını istemiş oluyoruz. Bir nevi eklentinin e-mail adresinizi spamlamasını engelliyoruz. ( Bir gün içerisinde bir kez bildirmesi yeterli )
Backup Delivery Email: Site veritabanı yedeğinizin hangi e-mail adresine gönderilmesini istiyorsanız, o mail adresini buraya yazın.
Host Lockout Message: Bir bilgisayar (host) sitenizden geçici olarak banlandığı zaman bu mesajı alır. Bu kısmı Türkçeleştirebilirsiniz. (Geçici olarak banlandınız vs.)
User Lockout Message: Sitenizin bir üyesi üst üste yanlış şifre girdiğinde yada üye girişi yaparak şifre kırmak denemesi yaptığında geçici olarak banlanır. Banlandığı zaman karşısına çıkacak mesajı buraya yazın. Yine aynı şekilde istediğiniz Türkçeleştirebilirsiniz.
Blacklist Repeat Offender: Bu ayarla kara liste (Kalıcı Ban) oluşturmayı etkinleştiriyoruz ve bir kullanıcının yada bot’un, kara listeye nasıl gireceğini alttaki ayarlarla belirliyoruz.
Blacklist Threshold: Bu özellikte, bir kullanıcı kaç kere üst üste geçiçi ban yerse kara listeye girer, belirliyoruz.
Blacklist Lookback Period: Bu özellikte üst üste ban sınırının zaman dilimini, gün cinsinden belirliyoruz.
Lockout Period: Geçici banlanmanın süresini belirliyoruz.
↑ Sistem Nasıl İşliyor ? : Üstteki 3 ayar şu şekilde işliyor, Lockout Period kısmında 15 dakika yazdığınızda bir kullanıcının şüpheli bir girişiminde 15 dakika boyunca geçici olarak banlanmasını sağlıyoruz. Blacklist Lookback Period kısmına 7 gün ve Blacklist Threshold kısmına 3 yazarsak, prosedür şu şekilde işliyor; Bir kullanıcı 7 gün içerisinde 3 kere 15 dakikalık geçici ban yerse, iThemes security o kullanıcıyı direkt kara listeye alıyor.
Lockout White List: Bu kısımda kendi IP adresinizi veya istediğiniz diğer IP adreslerini beyaz listeye ekliyorsunuz. Kendi IP adresinizi Add my Current IP adress to white list butonunu kullanarak beyaz listeye ekleyebilirsiniz. Bunu yaparak kendinizi ve eklediğiniz diğer IP adreslerini banlamalardan uzak tutumuş oluyorsunuz.
Yani, eğer kendi IP adresinizi beyaz listede belirtmezseniz, sitenize giriş yaparken şifrenizi 4 kere üst üste yanlış girdiğinizde, sizde 15 dakikalık ban geçici ban yersiniz. Bunun, site sahibi olarak sizin başınıza gelmesini istemezsiniz tabi ki 🙂 O yüzden IP adresinizi beyaz listeye eklemenizde fayda var.
Email Lockout Notifications: Bu seçenekten, iThemes security bir IP adresini geçici olarak banladığında, size IP adresiyle birlikte bildiri amaçlı bir e-mail göndermesini aktif ediyoruz.
Log Type: Giriş denemelerinin nerede depolamasını seçiyorsunuz. Veritabanınızda depolamanızda fayda var. ( Database Only )
Days to Keep Database Logs: Bu şeçenekte iThemes security eklentisinin, giriş denemelerini ne kadarlık bir zaman aralığında veritabanınızda saklanmasını belirliyoruz. ( 30 gün ideal )
Override Proxy Detection: Eğer proxy kullanmıyorsanız IP belirlemede bu seçeneği etkinleştirerek daha net sonuçları alabilirsiniz.
Hide Security Menu in Admin Bar: Bu özellik ekranın en üstünde bulunan Admin barından Security yazısını, yani eklentinin yönetim paneli girişini kaldırır. ( üyelerin eklenti ayarlarına erişimini engellemek amaçlı)
İTHEMES SECURİTY AYARLARI TEK RESİM
404 Detection
404 Detection: iThemes security eklentisinin 404 hatalarını bulmasını etkinleştirir.
Minutes to Remember 404 Error (Check Period): Bu seçenekten iThemes security eklentisinin 404 hataları için kaç dakikada bir tarama yapmasını belirliyoruz.
Error Threshold: Eğer bir kullanıcı veya bot sitenizde var olmayan bir sayfaya (yani 404) gereğinden fazla girmeyi denerse, geçici olarak banlanmasında fayda var çünkü bu kötü niyetli bir girişim denemesi olabilir. İşte bu özellikte 404 girişlerini buraya girdiğimiz sayıyla limitliyoruz. ( 30 ideal )
404 File/Folder White List: Bu özellikte iThemes security eklentisinin beyaz listesinde bulunan sayfalarınız 404 denetim işleminin dışında tutulur ki bazı sayfalarınız kesinlikle bu listede olmalıdır.
Diyelim ki sitenizden favicon sayfanız silindi veya bozuldu. Eğer bir kullanıcı sitenizde 30’dan fazla sayfayı ziyaret ederse ki her sayfada favicon olduğu için ve 404 hatası verdiği için, 31. sayfaya tıkladığında geçici ban yer. Tabi ki bunun olmasını istemezsiniz. Aşağıda beyaz listeye ( White List ) almanız gereken dosyaları paylaşıyorum.
/favicon.ico
/robots.txt
/apple-touch-icon.png
/apple-touch-icon-precomposed.png
/wp-content/cache
/browserconfig.xml
/crossdomain.xml
/labels.rdf
/trafficbasedsspsitemap.xml
Ignored File Types: Bu seçenektede dosya türlerini beyaz listeye ekliyoruz. Bir üstteki özellikte olduğu gibi.
Away Mode
Away Mode: Away modu etkinleştirmek demek, belirlediğiniz saatlerde site admin panelini,yani site giriş panelini tamamıyla kapatmak demek. Site admin panelini belirli saatlerde tamamen kapalı tutarak saldırı riskini azaltabilirsiniz. ( Eğer üyelik sisteminiz yoksa, gece saatlerinde wordpress giriş panelinizi kapatmanızda fayda var. )
Type of Restriction: Admin paneli kapatma işleminin günlük yada bir kerelik olmasını belirliyoruz. Günlük kapatma işlemini uygulamanızı tavsiye ederim.
Start Time: Bu seçenekten başlangıç saatini seçiyoruz. Başlangıç saatinizi genelde sitenize giriş yapmadığınız saatlerde seçmelisiniz. Bir çok insan için en uygun olan zaman gece saatleridir diye düşünüyorum.
End Time: Admin panelinin tekrar aktif olacağı saatide buradan belirliyoruz.
Banned Users
Default Blacklist: HackRepair.com’un hali hazırda bir kara listesi var. Sizinde bu kara listeyi, bu özelliği etkinleştirerek banlama listenize katmanızda fayda var.
Ban Users: Bu seçeneği etkinleştirerek, istediğiniz IP adresini manuel olarak bir alttaki Ban Hosts seçeneğinden banlayabilirsiniz.
Ban Hosts: Hatırlarsanız, iThemes security eklentisinin 404 hatalarını IP adresleriyle birlikte bize bildirmesini etkinleştirmiştik. iThemes security’nin gönderdiği rapora göre şüpheli bir girişimde bulunduğuna inandığınız IP adresini direkt olarak buradan kalıcı olarakbanlayabilirsiniz.
Ban User Agents: Bu kısım ise bot banlamaları içindir.
Bruce Force Protection
Enable local brute force protection: Sitenizin admin giriş şifresini öğrenmek isteyen bir kişi, harf ve rakam kombinasyonlarını sürekli deneyen bir programla giriş denemeleri yaparak, kullanıcı adınızı ve şifrenizi öğrenebilir. İşte, bunun önüne bu seçeneği etkinleştirerek geçebiliriz.
Max Login Attempts Per Host: Bir hostun sitenize giriş için yapacağı denemelerinin en fazla kaç kere üst üste olabileceğinin limitini belirliyoruz. ( 5 ideal )
Max Login Attempts Per User: Bir kullanıcının sitenize giriş için yapacağı denemelerinin en fazla kaç kere üst üste olabileceğinin limitini belirliyoruz. ( 10 ideal )
Minutes to Remember Bad Login (check period): Geçici ban süresini bu seçenekten belirliyoruz. ( 5 ideal )
Automatically ban “admin” user: Bu seçeneği etkinleştirerek, bir kişinin sitenizin giriş panelinede kullanıcı adına admin yazıp, giriş denemesi yaptığı anda direkt bir üstteki seçenekte belirlediğimiz süre kadar ( 5 dakika ) banlanmasını sağlamış oluyoruz.
Database Backups
Backup Full Database: Bu seçeneği etkinleştirerek ihtemes security eklentisinden bizim için otomatik olarak veritabanı yedeği almasını talep ediyoruz.
Backup Method: Bu seçenekte iste iThemes security eklentisinin aldığı yedeği hangi yolla bize ulaştıracağını seçiyoruz. E-mail olarak seçmeniz en güvenli yol.
Compress Backup Files: Veritabanı boyutunuz büyükse, yedeği zip olarak almanızda fayda var. Diğer türlü e-mail atarken “mb” limitinden dolayı mail alamayabilirsiniz.
Exclude Tables: Bu kısımda ise veritabanı yedeğinde hangi tabloların olmayacağına karar veriyoruz. Logs, lockouts gibi tabloların veritabanı yedeğinizde yer almasına gerek yok.
Schedule Database Backups: Bu seçeneği etkinleştirerek iThemes security eklentisinden yedek alma işlemini belirli aralıklarla yapmasını talep ediyoruz.
Backup Interval: Otomatik yedek alma işleminin zaman aralığını gün cinsinden belirliyoruz. 3 günde bir yedek alıp size ulaştırması ideal diye düşünüyorum.
File Change Detection
File Change Detection: Bu özelliği etkinleştirdiğinizde, iThemes security sizi, siteniz dosyalarında sizin dışısınızda yapılan değişimlerden haberdar eder. Bazı insanlar sitenizi ele geçirse bile bunu size belli etmeden bazı dosyalarda değişiklik yaparak kendi yararına kullanabilir. Bu yüzden buda önemli bir özellik. Etkinleştirmenizde fayda var.
Split File Scanning: iThemes security site dosyalarınızda değişiklik olup olmadığının taramasını yaparken, taramayı site dosyalarınızı 7 kategoriye bölerek yapar ki buda size değişikliği yapılan dosyanın lokasyonu hakkında daha detaylı bilgi verir. Etkinleştirmenizde fayda var.
Include/Exclude Files and Folders: Bu seçeneği etkinleştirerek, bir alttaki seçenekte seçtiğimiz dosyaların taramanın dışında kalmasını sağlamış oluyoruz.
Files and Folders List: Hangi dosyaların taramaya dahil edileceğini, hangilerinin ise taramanın dışında bırakılacağını seçiyoruz.
Email File Change Notifications: Bu seçeneği etkinleştirdiğinizde, eklenti yaptığı tarama sonucunda sitenizde herhangi bir değişiklikle karşılaşırsa size e-mail yoluyla haber veriyor.
Display File Change Admin Warning: Bu seçeneği etkinleştirdiğinizde, eklenti yaptığı tarama sonucunda sitenizde herhangi bir değişiklikle karşılaşırsa, size wordpress sitenizin admin panelinde uyarı olarak belirtiyor.
Hide Login Area
Hide Backend: Bu seçenekte Wordpress’in varsayılan olarak kullandığı wp-login.php, yani site giriş paneli URL adresini sizin belirlediğiniz bir uzantı ismiyle değiştirme özelliğini aktif ediyoruz.
Login Slug: Yeni giriş adresiniz hangi uzantıda olacağını belirliyorsunuz. Diyelim ki bunu “haydigirelim” yaptınız, bu noktadan sonra artık wordpress sitenize girişler http://sizinsiteniz.com/haydigirelim URL
adresi üzerinden gerçekleşir.
Register Slug: Aynı şekilde üyelik sayfasını, yani wp-register.php URL adresini sizin belirlediğiniz bir uzantı ismiyle değiştiriyorsunuz.
Enable Theme Compatibility: Eğer sitenize giriş yapmamış halde wp-admin sayfasına gitmeye çalıştığınızda hata alıyorsanız, bu özelliği etkinleştirerek hatadan kurtulabilirsiniz.
Theme Compatibility Slug: Burda ise 404 sayfa URL adresini belirliyoruz. Bunu “Bulunamadi” olarak yazarsanız, herhangi biri sitenizde var olmayan URL adreslerine ulaşmaya çalıştığında karşısına siteniz.com/bulunamadi
URL adresi çıkar. Yani 404 sayfası.
Malware Scanning
Enable Malware Scanning: Bu özelliği etkinleştirdiğinizde, eklenti sitenizde virus taraması yapar. Fakat bunu yapabilmesi için VirusTotal‘dan API anahtarı almanız gerekli. Kolaylıkla alabilirsiniz.
API Key: Aldığınız API anahtarını bu kısıma girerek, virus tarama özelliğini etkinleştirmiş oluyorsunuz.
Site Socket Layers ( SSL )
WordPress sitenizde SSL kullanmıyorsanız bu seçeneği direkt atlayıın. Aksi halde bu seçenek altında herhangi bir özelliği etkinleştirmeniz, sitenizin bozulmasına sebep olabilir.
Strong Passwords
Strong Passwords: Bu özelliği etkinleştirmek, Sitenize üye olanları güçlü bir şifre seçimine zorlar. Bunu sadece yönetici ve editörler için uygulamanızı şiddetle tavsiye ederim. Çünkü, eğer bir kullanıcı üye olurken güçlü şifre oluşturmazsa, eklenti kullanıcının üyeliğini güçlü bir şifre oluşturulana kadar kabul etmez ki buda kullanıcıların kolaylıkla üye olmaktan caymalarını sağlayabilir.
Select Role for Strong Passwords: Hangi rol için güçlü şifre uygulamasının geçerli olacağını seçiyoruz. Seçim sizin.
System Tweaks
System Files: Bu özelliği etkinleştirerek readme.html, readme.txt, wp-config.php,install.php, wp-includes, ve .htaccess dosyalarını ziyaretçilerin ulaşımına kapatıyoruz.
Directory Browsing: Bu özelliği etkinleştirerek bir ziyaretçiye No index dosyası sunulduğunda, o kullanıcıdan üst rehberi saklarsınız.
Request Methods: Request (istek) metodlarını filtreler.
Suspicious Query Strings: Bu özelliği etkinleştirdiğinizde, ithemes security herhangi bir şüpheli URL sorgusuyla karşılaşırsa sorguyu filtreler.
Non-English Characters: İngilizce dışında kullanılan karakterleri engeller. Bu özelliği kesinlikle etkinleştirmeyin! Türkçe karakterler bu özelliğe ters düşeceğinden, sitenizde bozulmalar olur.
Long URL Strings: Sitenizin URL uzunluklarını belirli bir limite indirir ki bu özelliği etkinleştirmenizde kesinlikle fayda var. Çünkü bir çok hack yöntemi URL sorgularıyla yapılır.
File Writing Permissions: Dosya yazma iznini yasaklar. Yani hiç bir dosya sizin dışınızda kimse tarafından değiştirilemez. Bu özelliği kullanırken çok dikkatli olun! Eğer Cache eklentisi veya .htaccess dosyanızı yazan başka eklentiler kullanıyorsanız bu özellikten uzak durun. Aksi halde sitenizin bozulmasına sebep olabilir.
Uploads: Bu özelliği etkinleştirerek potansiyel kötü niyetli php yüklemelerini engellersiniz.
WordPress Tweaks
Generator Meta Tag: Bu özelliği etkinleştirmek, sitenizin header dosyasından <meta name="generator" content="WordPress [version]" />
kodunu siler ki buda sitenize giren ziyaretçilerin hangi wordpress verisyonunu kullandığınızı görmesini engeller.
Windows Live Writer Header: Windows Live Writer kullanıyorsanız bu özelliği atlayın. Kullanmıyorsanuz bu seçeneğide etkinleştirin.
EditURI Header: Eğer sitenizi Flicker veya benzeri sitelerle entegre ettiyseniz, ozaman bu özelliği etkinleştirmenizde fayda var. Entegrasyon yoksa bu özelliğide atlayın.
Comment Spam: Botlardan gelen spam yorumları engeller.
Display Random Version: Eğer bir sorguda wordpress sürümü gösterme zorunluluğu olursa sitenizin wordpress versiyonunu rasgele gösterir.
File Editor: Dosya düzenleme işlemini wordpress üzerinden yapmayı engeller. Yani, Görünüm >> Düzenleyici seçeneğini admin panelinizden kaldırır. Bu özelliği etkinleştirdikten sonra dosya düzenleme işlemlerinizi FTP üzerinden yada diğer yollardan yapmanız gerekecektir.
XML-RPC: Bu özelliği Completely Disable XMLRPC yapmanızda büyük fayda var derim çünkü son zamanlarda en çok kullanılan hack yöntemlerinden biriside bu. Ben bile kendi sitemde günde onlarca XMLRPC pingback alıyorum. Fakat, özelliği etkinleştirmeniz Jetpack gibi bazı eklentilerinizin çalışmasına engel olabilir. O yüzden karar sizin.
Login Error Messages: Başarısız bir oturum açma girişimi sonucu kullanıcıya gösterilen hata mesajını engeller.
Force Unique Nickname: Kullanıcılarınızı daha önce kullanılmamış nickler kullanmaya zorlar.
Disable Extra User Archives: Eğer bir yazarın sitenizindeki içerik sayısı “0” ise, yazar sayfasını gösterimden kaldırır.
Advanced
Change Content Directory
Enable Change Directory Name: Bu seçeneği etkinleştirerek wp-content dosyamızın ismini Directory Name kısmına girdiğimiz isimle değiştiriyoruz. Buda oldukça önemli bir güvenlik önlemi aslında. Eğer sitenizi yeni kurmadıysanız bu özellikten uzak durun çünkü sitenizin bozulmasına sebep olacaktır.
Kesinlikle Uyarmalıyım ki bu değişikliği yapmadan önce wordpress sitenizin yedeğini mutlaka ve mutlaka alın çünkü wp-content dosyanızın ismini değiştirmek sitenizin tamamıyla bozulmasına sebep olabilir. Eğer site yedeği nasıl alınır bilmiyorsanız. WordPress Site Yedeği Alma – Site Yedekleme başlıklı yazımda bunu detaylı bir şekilde anlattım.
Change Database Prefix
Change Table Prefix: Bu özelliği etkinleştirdiğinizde, ithemes security veritabanınızda bulunan tablo prefixlerini ( yani isimlerini ) değiştirecektir. Bildiğiniz üzere wordpress veritabanı tabloları tüm wordpress’in kurulu olduğu siteler için aynıdır. Buda büyük bir güvenlik açığı oluşturmaktadır. Bu seçeneği etkinleştirdikten sonra wp_users olan tablo prefix isminiz, eklentinin rastgele atadığı karakterlerden oluşacaktır. dw202jsh3_users gibi.
Kesinlikle Uyarmalıyım ki bu değişikliği yapmadan önce wordpress sitenizin yedeğini mutlaka ve mutlaka alın çünkü wp-content dosyanızın ismini değiştirmek sitenizin tamamıyla bozulmasına sebep olabilir. Eğer site yedeği nasıl alınır bilmiyorsanız. WordPress Site Yedeği Alma – Site Yedekleme başlıklı yazımda bunu detaylı bir şekilde anlattım.
Backups
Backups sekmesinden veritabanı yedeği alma işlemini manuel olarak tek bir butonla yapabiliyorsunuz. Eğer Settings sekmesinde veritabanı yedeği gönderme seçeneği olarak mail şeçtiyseniz, Create Database Backup butonuna tıkladığınızda, iThemes security sitenizin veritabanı yedeğini mail olarak size gönderecektir.