WordPress Güvenliği – 1

Siteyi yayına sokalı 3 hafta gibi bir süre olmasına rağmen halen ciddi güvenlik testlerinden geçirmemiştim ve güvenlik konfigürasyonu yetersizdi. Hazır fırsat buldum ve birkaç ayarlama daha yaptım. İşim halen bitmiş olmasada büyük kısmını hallettiğimi düşünüyorum.

WordPress’in birçok kişi tarafından kullanılması ve geliştirici sayısının oldukça fazla olması bu scriptin diğerlerinden daha güvenli olduğu anlamına gelmiyor, maalesef. Web ortamında “tam güvenli” diye bir durumun olmadığını da düşünürsek birazcık bu konuya özen göstermenin gerekli olduğunu anlayabilirsiniz.

Yazıda belirteceğim yöntemler sayesinde WordPress bloğunuzun güvenliğini önemli ölçüde sağlayabilirsiniz.

Bu yazıda anlatılan yöntemlerde herhangi bir aksilik çıkabilme ihtimalini göz önünde bulundurun ve tüm yedeklerinizi (Plesk-MySql ve WordPress) alınız. Değişiklik yapacağınız her dosyanın yedeğini almak kullanıcının sorumluluğundadır.

1) Şifreli Dizin Oluşturmak

Öncelikle şifreli dizin oluşturmak nedir anlamanız açısından sitemin /wp-admin yoluna bakmanızı öneriyorum. Gördüğünüz gibi karşınıza şifre girmeniz için bir alan çıktı. Bunu wordpress üzerinden sağlayamazsınız, bu ayar ancak sunucunuz üzerinden sağlanabilir.

Bunu 2 yöntemle gerçekleştirebiliriz. İlk yöntem benim kullandığım ve daha basit olan yöntem, Plesk paneli üzerinden şifreli dizin oluşturmak.

İlk olarak bloğunuzun wp-admin klasörünün ismini değiştirin. İstediğiniz herhangi bir isim yapabilirsiniz. Örnek olarak “eskiadmin” yapalım dizin adını.

İkinci olarak plesk paneline giriş yapıyoruz. sonra anasayfa üzerinden domainimize giriş yapalım.

“Dizinler” bölümüne girin.

Yeni Dizin Ekle seçeneğine tıklayın.

Dizin adı olarak doğrudan dizin adını belirtmeniz gerekiyor. Yani /httpdocs path’ini eklemiyorsunuz.

Eğer sunucunuzdan SSL desteği alıyorsanız 2.seçeneği de seçebilirsiniz. Fakat kim bir blog için SSL satın alır bilinmez.

Onayladıktan sonra birde kullanıcı oluşturuyoruz. Kullanıcı adı ve şifreyi unutmayacağınız birşey seçmeniz faydanıza olacaktır.. Ayrıca bu kullanıcı adı ve şifre ikilisi wordpress panelinize giriş şifresiyle, hatta mümkünse hiçbir şifrenizle aynı olmasın.

Şimdi plesk üzerinden “Dosya Yönetimi”ne ulaşın.

“Her bir sayfada göster:” kısmını 100 olarak ayarlarsanız dosya taşıma işleminde kolaylık sağlamış olursunuz.

“eskiadmin” klasörüne girip tüm dosyaları üstte ki “tümünü seç” butonunu tıklayarak seçin.

En üstte ki “Kopyala/Taşı” seçeneğine tıklayın ve taşınacak yeri /wp-admin olarak belirleyin.


“eskiadmin” klasöründe ki tüm ögeler “wp-admin” klasörüne taşındığı zaman işlemimiz bitmiştir. “eskiadmin” isimli klasörü silebilirsiniz.

Denemek için tarayıcınızdan yönetim panelinize girin. Eğer sunucu size şifre soruyorsa işlem başarıyla gerçekleşmiştir.

Bu işlemi şifreli dizin oluşturma özelliği olmayan sunucularda .htaccess dosyası ile yapabiliriz.

Öncelikle hostunuzun dosya yöneticinde (plesk) public_html, www, alanadınız.com, httpdocs gibi bulunduğunuz klasörün bir üst dizinine çıkın.

Bu ulaştığımız üst dizinde aynı .htaccess dosyası gibi bir .htpasswd dosyası oluşturun.

http://home.flash.net/cgi-bin/pw.pl adresine girin. Bir kullanıcı adı ve şifre yazın ve bunları “Encrypt” edin. Şifrelenmiş halini kopyalayarak .htpasswd dosyası içine yapıştırın. Htpasswd dosyasını kaydedin.

Şimdilik htpasswd dosyası ile işimiz bitti. Gelelim .htaccess dosyasına.

.htaccess dosyasını açarak içine aşağıda ki kodları yapıştırın.

! Htaccess dosyasının içinde önceden mevcut olan ayarları silmenize gerek yoktur. Altına yapıştırın.

“/home” kısmını sunucunuzda nasıl bir ana klasör kullanıyorsanız öyle düzenleyin.

.htaccess dosyasını kaydedin ve işlem tamamdır.

2) dosya ve dızın izinleri

Sunucunuza yüklediğiniz dosya ve dizinlerin izinlerini ayarlamanız web sitenizin güvenliği için en önemli adımlardan biri.

Plesk üzerinden dosyalarınızı gözetlediğiniz zaman aşağıdaki gibi dosyaların yanında karakterler göreceksiniz. CHMOD denilen ayarlar işte bunlardır.

Olması gereken ayarlar dosyalar için 644 yani :

Bu şekilde olmalıdır.

Kesinlikle ama kesinlikle hiçbir dosya veya klasörün izinlerini 777 yapmayın.

Klasörler için ise bu değeri 755 yapmanızı öneririm.

İstisna olarak tek bir klasörün chmod değerini 777 yapabilirsiniz, o da wp-content klasörü içindeki uploads klasörüdür. Bu ayarı mecburen yapıyoruz çünkü wordpress yönetim panelinden resim veya medya yüklemek istediğimizde diğer chmod değerini uyguladıysak hata verecektir.

3) .htaccess dosyası

Daha önce ki maddelerde bahsettiğimiz .htaccess dosyası sayesinde sunucumuza pek çok işlem yaptırabilmekteyiz.

Burada sözü kısa keseceğim. Bir text dosyası oluşturun ve içine aşağıda yazdığım kodları yapıştırın. Daha sonra adını .htaccess olarak değiştirin ve web sayfanızın bulunduğu kök dizine upload edin.

Aşağıda ki kodlar sayesinde hotlink’ten de korunacaksınız.

Vaktim olduğunda yazıya devam edeceğim.

9 thoughts on “WordPress Güvenliği – 1”

  1. merhaba; çok teşekkürler işime yaradı…
    ben bişi sormak istiyorum biliyorsanız yanıtlarsanız memnun olurum ö rnek verecek olursam web sitem root – ana klasörde değilde bir alt sayfada kurulu ise http://www.siteadi.com değilde http://www.siteadi.com/blog/ şeklinde ve ben sitemin ilk açılışında bloguma yönlenmesini istiyorum bunu htaccess ile nasıl yapabilirim.

    1. Merhaba Belgin hanım,

      Yorumunuz ve ilginiz için teşekkür ederim.

      htaccess dosyanıza aşağıda ki satırları eklerseniz .htaccess ile yönlendirme yapabilirsiniz :

      RewriteEngine On
      RewriteCond %{HTTP_HOST} gidilecekadres.com [nc]
      RewriteRule (.*) http://www.gidilecekadres.com/$1 [R=301,L]

      Sadece yönlendirmek istediğiniz dizine özgü bir htaccess dosyası oluşturup onuda kullanabilirsininiz. Unutmamanız gereken şey bir klasörde yalnız bir htaccess dosyası olacağıdır.

      Başka bir forumda da bu örneği görmüştüm :

      Options +FollowSymLinks
      RewriteEngine on
      RewriteRule iletisim_formu$ /iletisim.php


  2. Erbil:

    Guzel bir yazi,ama birinci yontemde anlatilanlari yapmasanizda olur =) Havij gibi programlar admin panelini kolaylikla bulabiliyor.

    Edit : Programi az once tekrar test ettim.Sanirim CMS sistemlerindeki admin klasorune ulasmaya yonelik olusturulmus bir dosya var.Dosyayi okuyarak,deniyor.

    *Yani eskiadmin diye bir isim verirseniz,bulamayabilir.*

  3. Birinci yöntemde amaç admin panelini saklamak değil, /wp-admin dizinine sunucu taraflı şifreleme uygulamaktır.

    Örnek vermek gerekirse benim admin panelim :
    “www.serhatdundar.com/wp-admin”

Leave a Reply