WordPress Güvenlik Önlemleri – WP Sitenizi Koruyun

WordPress Güvenlik Önlemleri – WP Sitenizi Koruyun

WordPress dünyadaki en popüler içerik yönetim sistemlerinden (CMS) birisidir. Tüm internet sitelerinin %18.9’unu çalıştırır ve 76.5 milyonun üzerinde yüklenmiştir. Popüler olmanın ne yazık ki bazı eksileri de mevcut.

Web site güvenliği konusunda uzman bir şirket olan Securi tarafından yayınlanan bir hack raporuna göre, WordPress dünyada en fazla hack’lenen CMS’dir. Ancak panik yapmaya gerek yok! Eğer bu rehberdeki bazı genel kuralları takip eder ve çeşitli püf noktaları uygularsanız WordPress güvenlik konusunda büyük yol kat edebilirsiniz.

Sayfamızdan en iyi WordPress Hosting seçeneklerini inceleyebilirsiniz.

Nelere ihtiyacınız olacak

Bu rehbere başlamadan önce aşağıdakilere sahip olmalısınız:

Adım 1 – WordPress’i Güncel Tutma

İlk ve en önemli ipucudur. Eğer temiz ve zararlı yazılım içermeyen bir internet sitesi istiyorsanız WordPress’i güncel tutmalısınız. Basit bir tavsiye gibi görünsede, tüm WordPress kurulumlarının sadece %22’si en son sürümü kullanmaktadır.

WordPress 3.7 sürümünde otomatik güncelleme özelliğini ekledi, ancak sadece küçük çaplı güvenlik güncellemeleri için çalışıyor. Dolayısıyla başlıca core güncellemeleri manuel olarak yapılmalı.

Eğer WordPress güncellemesi nasıl yapılır bilmiyorsanız, bu rehbere göz atın.

Adım 2 – Daha Az Yaygın Olan Giriş Bilgileri Kullanma

Kullanıcı adı olarak 'admin' kullanmayın

WordPress kullanıcı adı olarak hala admin mi kullanıyorsunuz? Eğer cevabınız evet ise herhangi bir saldırganın yönetici panelinize giriş denemelerini kolaylaştırıyorsunuz demektir. Yönetici kullanıcı adını başka birşeyle değiştirmeniz (nasıl yapacağınızı bilmiyorsanız bu rehbere göz atın) veya farklı bir yönetici hesabı oluşturarak eskisini silmeniz şiddetle tavsiye edilmektedir. Eğer ikinci seçeneği tercih ediyorsanız aşağıdaki adımları uygulayın:

  1. WordPress Admin paneline girin
  2. Menü’den Kullanıcılar‘a tıklayın ve ardından Yeni Ekle sekmesini açın.WordPress Yeni Kullanıcı Ekleme
  3. Yeni bir kullanıcı oluşturun ve yönetici rolü ekleyin.WordPress Yeni Kullanıcı Oluşturma Formu
  4. WordPress’e yeni kullanıcı adınızla giriş yapın.
  5. Kullanıcılar bölümüne geri dönün ve Admin kullanıcısını silin.WordPress Admin Kullanıcısını Silme

İyi bir şifre WordPress güvenliği konusunda büyük rol oynamaktadır. Rakamlar, büyük ve küçük harfler, özel karakterler içeren bir şifreyi brute force yöntemiyle ele geçirmek çok daha zordur. LastPass ve 1Password kompleks şifreleri yönetebilmenize yardımcı olur. Ayrıca eğer WordPress kontrol panelinize güvensiz bir ağa (ör: kahve dükkanları, halka açık kütüphaneler vb.) bağlıyken giriş yapmak zorunda kalırsanız giriş bilgilerinizi koruyacak güvenli bir VPN kullanmayı unutmayın.

Adım 3 – 2 Adım Doğrulama Etkinleştirme

İki-adım doğrulama, giriş sayfanızda muazzam bir güvenlik katmanı oluşturur. İsminden de anlaşılacağı üzere giriş yapabilmek için uygulanması gereken bir adım ekler. Bu özelliği muhtemelen eposta, internet bankacılığı veya hassas bilgi içeren bir başka hesabınızda kullanıyorsunuzdur. Peki niçin WordPress’de kullanmayasınız?

Kulağa biraz karmaşık gelse de WordPress iki adım doğrulamayı etkinleştirmek oldukça kolaydır. Tüm yapmanız gereken 2 adım doğrulama uygulamasını yüklemek ve WordPress’inizi ayarlamak. WordPress iki adım doğrulama etkinleştirmesini nasıl yapacağınızı öğrenmek için bağlantıya tıklamanız yeterlidir.

Adım 4 – PHP Hata Raporlamayı Devre Dışı Bırakma

Eğer web sitesi geliştiriyor ve herşeyin düzgün çalıştığına emin olmak istiyorsanız PHP hata raporlama yardımcı olabilir. Ancak hataları tüm herkese göstermek ciddi bir güvenlik ihlalidir.

Bunu olabildiğince çabuk düzeltmelisiniz. Korkmanıza gerek yok, WordPress’de PHP hata raporlamayı kapatabilmek için kod bilgisine ihtiyacınız yoktur. Çoğu hosting sağlayıcı hata raporlama özelliğini kontrol paneli içerisinden kapatma seçeneği sunuyor. Eğer bu özellik yoksa, wp-config.php dosyası içerisine aşağıdaki satırları ekleyin. wp-config.php dosyasını düzenlemek için FTP istemcisi veya Dosya Yöneticisi kullanabilirsiniz:

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

İşte bu kadar. Hata raporlama artık kapalı.

Adım 5 – Nulled WordPress Temaları Kullanmama

“Bedava peynir sadece fare kapanındadır” sözünü aklınızdan çıkarmayın. Aynı şeyi nulled WordPress tema ve eklentileri içinde söyleyebiliriz.

İnternette dolaşan binlerce nulled eklenti ve tema bulunuyor. Kullanıcılar bunları çeşitli Warez veya torrent sitelerinden ücretsiz şekilde indirebiliyor. Bilmedikleri şey ise bunların çoğu zararlı yazılımlar ve siyah şapka SEO bağlantılarıyla doludur.

Nulled eklenti ve temalar kullanmayın. Bu etik olmadığı gibi aynı zamanda WordPress güvenliği açısından muazzam derecede zararlıdır. Sonucunda internet sitenizi düzeltmesi için bir geliştiriciye çok daha fazla para ödeyebilirsiniz.

Adım 6 – WordPress Zararlı Yazılım Taraması

Hackerlar, WordPress’e zararlı yazılım bulaştırmak için eklenti veya temalardaki açıkları sıklıkla kullanırlar. Bu sebeple blog sitenizi sıklıkla taramak hayati önem arzediyor. Bu amaç doğrultusunda oldukça fazla iyi tasarlanmış eklentiler mevcut. WordFence bu noktada öne çıkanlardan birisi. Manuel ve otomatik tarama seçenekleriyle birlikte çeşitli farklı ayarlar sunuyor. Hatta değiştirilmiş / zararlı dosyaları birkaç tıklamayla kurtarma şansınız mevcut. Ücretsiz ve açık kaynak kodludur. Bu sebepler bile kendi başlarına eklentiyi hemen şimdi kurmanız için yeterli olmalıdır.

Diğer popüler WordPress güvenlik eklentileri:

  • BulletProof Security – WordFence’in aksine, BulletProof dosyalarınızı taramaz ancak bir güvenlik duvarı, veritabanı ve daha fazlasını sunar. Bu eklentinin en güzel yanlarından birisi birkaç tıklamayla kurularak ayarlanabilir olmasıdır.
  • Sucuri Security – bu eklenti sizi DOS saldırılarına karşı korur, kara liste oluşturur ve internet sitenizde zararlı yazılımlara karşı tarama yaparak güvenlik duvarınızı yönetir. Eğer birşey tespit ederse, eposta ile bilgilendirme sağlar. Google, Norton, McAfee – tüm bu karaliste motorları bu eklentide bulunuyor.

Hepsini denemekten çekinmeyin. WordPress eklentilerini nasıl yükleyebileceğinizi öğrenmek için bu detaylı rehbere göz atabilirsiniz.

Adım 7 – WordPress Sitenizi Daha Güvenli Bir Hosting’e Taşıma

Garip bir tavsiye gibi görünebilir ancak istatistiklere göre WordPress sitelerinin %40’ı hosting hesaplarındaki açıklar kullanılarak ele geçiriliyor. Bu rakamın kendisi size mevcut hosting seçiminizi sorgulatmalı ve WordPress sitenizi daha güvenli bir hosting hizmetine taşıtmalıdır. Yeni bir hosting ararken aklınızda bulunması gereken birkaç kural şunlardır:

  • Eğer paylaşımlı hosting ise, hesabınızın diğer kullanıcılardan izole olduğuna emin olun ve bir sitenin sunucudaki diğerlerine zarar verme olasılığını sıfıra indirin.
  • Otomatik yedekleme özelliğinin olmasına dikkat edin.
  • Sunucu bazlı güvenlik duvarı ve virüs tarama aracı olduğuna emin olun.

Adım 8 – Olabildiğince fazla yedek oluşturma

Sitenizin yedeğini alın

Sahiplerinin binlerce dolar harcayarak güvenliğini arttırmaya çalıştığı en büyük internet siteleri bile her gün hacklenmektedir.

Eğer en iyi yöntemleri kullanıyor ve bu rehberdeki ipuçlarını uyguluyorsanız, WordPress sitenizi sıklıkla yedeklemek hayati önem teşkil ediyor.

Yedek oluşturmanın çeşitli yolları vardır. Örneğin WordPress dosyalarını manuel olarak indirebilir, veritabanını yükleyebilir veya hosting firmanızın yedekleme aracını kullanabilirsiniz. Bir başka yöntemi ise WordPress eklentilerini kullanmaktadır. En popüler WordPress yedekleme eklentileri şöyledir:

Hatta WordPress yedekleme işlemini otomatik olarak yapabilir ve sitenizi Dropbox içinde yedekleyebilirsiniz.

Adım 9 – Dosya Düzenlemeyi Kapatma

Bildiğiniz gibi, WordPress’in dahili dosya düzenleme aracı sayesinde PHP dosyalarını değiştirebiliyorsunuz. Bu özellik kullanışlı olsa da bazı zararları olabilir. Eğer bir saldırgan WordPress admin panelinizi ele geçirirse bakınacağı ilk şey dosya editörüdür. Bazı WordPress kullanıcıları bu özelliği tamamen devre dışı bırakmayı tercih ediyor. wp-config.php dosyasını düzenleyerek aşağıdaki satırı eklediğinizde bu özelliği kapatabilirsiniz:

define( 'DISALLOW_FILE_EDIT', true );

WordPress’de dosya düzenlemeyi kapatmak için yapmanız gereken bu kadardır.

ÖNEMLİ: Eğer bu özelliği tekrar aktifleştirmek isterseniz, FTP istemcisi veya hosting firmanızın Dosya Yöneticisini kullanarak bu kodu wp-config.php dosyasından kaldırın.

Adım 10 – Kullanılmayan Tema ve Eklentileri Kaldırma

WordPress sitenizde temizlik yapın ve kullanılmayan tüm eklenti ve temaları kaldırın. Saldırganlar çoğu zaman devre dışı ve eski temalarla eklentileri tarar (resmi WordPress eklentileri dahil) ve bunları kullanarak admin paneline erişim sağlamayı veya sunucunuza zararlı dosyalar yüklemeyi denerler. Kullanmayı bıraktığınız eklenti ve temaları silerek WordPress güvenliğini biraz daha arttırmış olursunuz.

Adım 11 – Daha İyi WordPress Güvenliği İçin .htaccess Kullanma

.htaccess dosyası WordPress bağlantılarının düzgün şekilde çalışması için gereklidir. .htaccess dosyasında doğru kurallar olmadığında çok fazla 404 hatası alırsınız.

Çoğu kullanıcı .htaccess dosyasının WordPress güvenliğini arttırmak için kullanılabileceğini bilmez. Örneğin .htaccess dosyasıyla belirli klasörler üstünde PHP çalıştırmayı devre dışı bırakabilir ve erişimi engelleyebilirsiniz. Aşağıdaki örnekler .htaccess dosyasını kullanarak WordPress güvenliğini nasıl arttırabileceğinizi gösteriyor.

ÖNEMLİ Herhangi bir değişiklik yapmadan önce eski .htaccess dosyasının yedeğini almanız şiddetle tavsiye edilir. Bunun için FTP istemcisi veya Dosya Yöneticisi kullanabilirsiniz.

WordPress Admin Bölümüne erişimi kapatma

Aşağıdaki kodu kullanarak WordPress yönetici bölümüne sadece belirli IP’lerden giriş izni verebilirsiniz.

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
allow from xx.xx.xx.xxx
allow from xx.xx.xx.xxx
</LIMIT>

xx.xx.xx.xxx kısmını kendi IP adresinizle değiştirmeniz gerektiğini unutmayın. Bu internet sitesini kullanarak IP adresinizi öğrenebilirsiniz. Eğer WordPress sitenizi yönetmek için birden fazla bağlantı kullanıyorsanız diğer IP adreslerininde buraya dahil edildiğine emin olun (istediğiniz kadar ekleyebilirsiniz). Eğer dinamik IP adresine sahipseniz bu kodu kullanmanız tavsiye edilmez.

Belirli Klasörlerde PHP çalıştırmayı devre dışı bırakma

Saldırganlar WordPress upload klasörüne arka kapı scriptleri yüklemeyi severler. Varsayılan olarak bu klasör sadece medya dosyaları yüklemek içindir. Dolayısıyla herhangi bir PHP dosyası içermemesi gerekir. Aşağıdaki kurallarla /wp-content/uploads/ içinde yeni bir .htaccess dosyası oluşturarak PHP çalıştırma işlemini devre dışı bırakabilirsiniz:

<Files *.php>
deny from all
</Files>

wp-config.php Dosyasını Koruma

wp-config.php dosyası WordPress ayarlarını ve MySQL veritabanı bilgilerini içerir. Bu sebeple en önemli WordPress dosyasıdır. Bu yüzden her WordPress hacker’ının başlıca hedefidir. Ancak bu dosyası aşağıdaki .htaccess kurallarını kullanarak kolayca koruyabilirsiniz:

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

Adım 12 – Varsayılan WordPress veritabanı ekini değiştirerek SQL saldırılarını önleme

WordPress veritabanı internet sitenizin çalışabilmesi için gerekli tüm bilgileri tutar ve depolar. Sonuç olarak saldırganlar ve SQL saldırıları gerçekleştirmek için otomatik kod çalıştıran spammerlar için ağız sulandıran bir hedeftir. WordPress kurulumu esnasında çoğu kişi varsayılan wp_ ekini değiştirmeye tenezzül etmez. WordFence‘e göre her 5 WordPress sitesinden 1 tanesi SQL saldırıları sebebiyle hackleniyor. Varsayılan ayar **wp** olduğundan saldırganlar öncelikle bu değeri hedef alıyor. Bu adımda WordPress sitenizi bu tür saldırılara karşı nasıl daha güvenli hale getireceğiniz üzerinde duracağız.

Varolan bir WordPress sitesinin tablo ekini değiştirme

ÖNEMLİ! Önce güvenlik. Başlamadan önce WordPress MySQL veritabanınızın yedeğini almayı unutmayın.

Bölüm 1 – wp-config.php içindeki eki değiştirme

WordPRess tablo eki

wp-config.php dosyasını bulmak için FTP istemcisi veya Dosya Yöneticisi kullanın ve $table_prefix  değerini arayın.

Rakamlar, harfler veya alttan çizgiler ekleyebilirsiniz. Ardından değişiklikleri kaydedin ve sıradaki adıma geçin. Biz bu rehberde yeni tablo eki olarak wp_1secure1_ kullanacağız.

wp-config içerisinde veritabanı adı

wp-config.php dosyasındayken veritabanı adını da bulabilirsiniz ve böylece hangi veritabanını düzenlemeniz gerektiğini öğrenebilirsiniz. define(‘DB_NAME’ bölümünü arayın.

Bölüm 2 – Tüm veritabanı tablolarını güncelleme

phpmyadmin konumu

Şimdi WordPress veritabanınızdaki tüm girdileri güncellemeniz gerekiyor. Bunu phpMyAdmin kullanarak gerçekleştirebilirsiniz.

phpmyadmin giriş bölümü

Bölüm 1’de yerini bulduğunuz veritabanını seçin ve açın.

phpmyadmin giriş bölümü

Normal bir WordPress kurulumunda 12 tablo vardır ve her birinin güncellenmesi gerekir. Ancak phpMyAdmin’deki SQL bölümü kullanılarak bu işlem hızlı bir şekilde yapılabilir.

Her bir tabloyu manuel olarak değiştirmek oldukça fazla zaman alabilir bu yüzden SQL kullanarak işleri biraz hızlandıracağız. Aşağıdaki syntax’ı kullanarak veritabanınızdaki tüm tabloları güncelleyin.

RENAME table `wp_commentmeta` TO `wp_1secure1_commentmeta`;
RENAME table `wp_comments` TO `wp_1secure1_comments`;
RENAME table `wp_links` TO `wp_1secure1_links`;
RENAME table `wp_options` TO `wp_1secure1_options`;
RENAME table `wp_postmeta` TO `wp_1secure1_postmeta`;
RENAME table `wp_posts` TO `wp_1secure1_posts`;
RENAME table `wp_terms` TO `wp_1secure1_terms`;
RENAME table `wp_termmeta` TO `wp_1secure1_termmeta`;
RENAME table `wp_term_relationships` TO `wp_1secure1_term_relationships`;
RENAME table `wp_term_taxonomy` TO `wp_1secure1_term_taxonomy`;
RENAME table `wp_usermeta` TO `wp_1secure1_usermeta`;
RENAME table `wp_users` TO `wp_1secure1_users`;

Bazı WordPress temaları veya eklentileri veritabanınında ekstra tablolar oluşturabilir, veritabanınızdaki bazı değerler manuel olarak güncellenmesi gerekebilir. Bunu yapabilmek için options ve usermeta tablolarında ayrı bir SQL sorgusu yapabilirsiniz.

options tablosu için aşağıdakini kullanın:

SELECT * FROM `wp_1secure1_options` WHERE `option_name` LIKE '%wp_%'

usermeta tablosu içinse aşağıdakini:

SELECT * FROM `wp_1secure1_usermeta` WHERE `meta_key` LIKE '%wp_%'
SQL sorgu ekini manuel değiştirme işlemi

SQL sorgu sonuçlarını aldığınızda tüm wp_ değerlerini yeni ayarlanmış olan ek ile güncelleyin ve işinizi tamamlayın. usermeta tablosu içinde meta_key alanını düzenlemeniz gerekiyor, options tablosunda ise option_name değeri değiştirilmelidir.

WordPress kurulum güvenliğini artırma

wordpress yeni tablo eki kurulumu

Eğer yeni WordPress siteleri kurmayı planlıyorsanız, bu işlemi tekrar yapmanız gerekmez. Sadece WordPress tablo ekini kurulum esnasında değiştirin:

Tebrikler! SQL saldırılarına karşı WordPress veritabanı güvenliğinizi arttırdınız.

Sonuç

WordPress dünyadaki en çok hacklenen CMS olsa da güvenliği arttırmak çok da zor değil. Bu rehberde WordPress güvenliğini arttırmak için uygulayabileceğiniz 10 önemli ipucunu bir araya getirdik.

Author
Yazar

Egehan D.

Egehan Hostinger'da ML ve NN ile denetimsiz öğrenme üzerinde çalışıyor. Veri analizi hakkında büyük bir tutkuya sahiptir. İşi her ne kadar hobi gibi olsa da, çeşitli aktivitelerde gönüllü olmaktan ve ormanda kamp yapmaktan da büyük oranda zevk alıyor.