WordPress .htaccess ile Wp-login.php ‘yi Şifreleyelim.

htacesss-passwd-wp-admin Şu wordpress’in admin hack, Xss hack,  SQL injection hackleri yüzünden bir sürü güncelleme yaptık. Hala da yeni bir güvenlik açığı ortaya çıkabilmekte. WordPress’i yıllardır kullanmaktayım ve bu hack olaylarına karşı herkes gibi bende extra güvenlik önlemleri alıyorum.

Bunlardan bir tanesi wp-admin girişine .htaccess ile extra şifre koymak..!

En kesin ve en güvenli yöntemlerden birtanesi olduğunu söylemek isterim.  WordPress admin hack konusunda nasıl bir açık çıkarsa çıksın yada admin şifrenizi kim çalarsa çalsın .htaccess ile şifreleyeceğimiz wp-login.php dosyasına erişemeyeceklerdir.   Wp-login.php dosyamızı aşağıda anlattığım şekilde .htaccess ile şifrelediğimizde wp-admin girişine gelen isteklerde Apache sunucumuz extra olarak koyduğumuz şifreyi soracaktır.  Öncelikle apache’yi aşmak gerkecek. Ondan sonra wp-admin girişi karşısına gelerek wordpress admin paneline giriş yapılabilir.

Google üzerinden aradığınız zaman .htaccess ile şifreleme hakkında bilgi bulabilirsiniz.  Bu yöntemler işe yaramayacaktır.  Standart .htaccess ile şifreleme WordPress’in .htaccess dosyasına takılacak ve şifrelemeye izin vermeyecektir.

Şimdi anlatacağım yöntemde WordPress’in .htacess dosyasına ekleyeceğimiz kodlar ile şifrelemeyi gerçekleştireceğiz.

Öncelikle hostunuzda public_html , www yada alanadınız.com olan klasörlerimizin bir üst dizinine çıkarak .htpasswd dosyamızı oluşturmamız gerekiyor.

1.  . htpasswd  dosyasını oluşturmak ;

Bu dosyada Apache’nin bize soracağı şifreyi belirteceğiz. Yalnız bu şifreyide güvenli bir dizinde saklamamız gerekmekte.  Benim hostingimde wordpress dosyalarım

/home/teakolik.com/www dizininde sizinkinde farklı olacaktır.  Cpanel yada Plesk ile dosyalarınıza erişerek bir üst dizine yani  /home klasörüne veya  /home/teakolik.com gibi hesap klasörümüze ulaşıyoruz.  Bu klasör içerisine  .htpasswd dosyamızı oluşturacağız. (www içerisine atmıyoruz..!)

teakolik:asasdas324235235sdfasdf

gibi bir user ve şifre belirteceğiz.  Burada dikkat ederseniz şifremiz aslında şifrelenmiş bir şekilde yani bir nevi apache üzerinde de şifreleme yapıyoruz. Direk olarak kullanıcı adından sonra şifreyi yazamayız.  Bir şifre oluşturmak için

http://www.e2.u-net.com/htaccess/make.htm

adresine giriyoruz ve bir user pass belirliyoruz.  Encrypt butonuna bastığımızda bize bir kod üretiyor.  Bu kodu  .htpasswd adıyla bir dosya olarak ftp dosyalarımızın üst dizinimize (/home/teakolik gibi) kayıt ediyoruz.

2.  WordPress .htaccess dosyasını düzenlemek ;

WordPress’in kurulu olduğu dizindeki .htacess dosyamızı açıp içerisine şu kodları yerleştiriyoruz.

ErrorDocument 401 default

AuthUserFile /home/.htpasswd
AuthName "Blog"
AuthType Basic

<Files "wp-login.php">
    require valid-user
</Files>

Bu işlemi yaparken .htaccess içerisindeki diğer kodlara dokunmuyoruz.  Aynen olduğu gibi kalıyorlar ve alt satırlara bu kodu yapıştırıyoruz. Bu kodda dikkat etmeniz gereken  /home/teakolik.com/ dosya yolumuz.  WordPress wp-login dosyasına erişildiğinde .htpasswd üzerinden şifreyi okuyacak ve doğrulayacaktır.  Dosya yolumuzu dikkatle giriyoruz.  1. Adımda belirttiğimiz .htpasswd dosyası neredeyse aynı yolu girmemiz gerekiyor.   Aryıca yine bu kodların altına

<Files "xmlrpc.php">
    require valid-user
</Files>

kodlarını girersek bu kod sayesinde xmlrpc yani wordpress’in pingleme servisinin çalışmaması için gerekli kodlar eğer Genelde, eğer pingback ve trackback kullanmıyorsanız bu dosyayı da güvenliğe almanız ekstra güvenlik önlemi olacaktır.  Eğer yukarıdaki gibi koduda eklersek sistem ping alış-verişi yapmayacak biraz daha güvenli olabilecek. Ben kullanmıyorum.  Eğer wordpress’in pingleme servisini kullanmıyorsanız bu koduda .htacess e ekleyerek sistemin güvenliğini extra olarak artırabilirsiniz. (Düzeltme için Emre Erkan‘a teşekkürlerimi iletirim.)

Örnek .htacess dosyamızın şekli şöyle oldu ;

# BEGIN WordPress
 <IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule . /index.php [L]
 </IfModule>

 # END WordPress

 ErrorDocument 401 default AuthUserFile /home/.htpasswd # Şifremizin bulunduğu dosya yolunu belirttik AuthName "Blog" AuthType Basic

 <Files "wp-login.php"> require valid-user #Şifreledik </Files>

Dosyamızı kayıt ettik ve işlemler bitti.  Atık WordPress’i biraz daha kafanız rahat bir şekilde kullanabilirsiniz. En azından yeni bir admin XSS açığı çıktığında kafanız rahat olur :) Kolay gelsin..!

Yönetici Notu :
#0
Lütfen yapacağınız yorumlarda kişi ve kurumlara hakaret etmeden, kişilik haklarına zarar vermeden görüşlerinizi bildiriniz. Oluşabilecek zararlarda ve gözden kaçabilecek durumlarda tüm sorumluluk yorumu yapan kişiye aittir. Gizlilik sayfamızda bu bilgiler açıkça belirtilmiştir.
  1. wolkanca
    Ağustos 27th, 2009 02:01

    süper faydalı bilgi.
    ben şöyle yapıyorum http://tinypaste.com/3dd62

  2. İbrahim
    Ağustos 27th, 2009 12:28

    Bu kadar ek güvenlik gerekli değil diye düşünüyorum. Hani çok büyük kitlelere hitap eden, günlük 10k ve üzeri kullanıcı çekebilen sitem olsa uygulardım :)

  3. krsnsk
    Ağustos 27th, 2009 12:48

    Teşekkürler.

  4. erkan durmaz
    Ağustos 27th, 2009 14:17

    teşekkürler.

  5. Elyesa
    Ağustos 27th, 2009 14:49

    Yeni bir blog sitem var, hemde çok güzel çok severek uğraşıyorum ama güvenlik ayarlarını yapamadım ne kadar uğraşsamda :( .. yazılarını beğenerek takip ediyoz. Bilgiler saol ama işte olmadı bi türlü :(

  6. Golden
    Ağustos 27th, 2009 20:18

    Bütün işlemleri yaptım ama bir türlü olmadı :(

  7. _KmL_
    Ağustos 28th, 2009 01:42

    Allah ne muradın varsa versin :D Çok teşekkür ederim…

  8. Ahmet
    Ağustos 28th, 2009 05:11

    Bu hackerlerin allah belasını versin demek geliyor içimden. ne yaptıysam olmuyor :( herseferinde yine hack yiyorum. wp güzel ama her sürümünde açık oluyor.. en sonunda yine dayanamayıp düz .html’ye geçeceğim sanırım..
    bilgi için tşkler

  9. Batuhan
    Ağustos 28th, 2009 10:37

    Merhaba Teakolik..
    Bugün e-postamı kontrol ettiğimde e-posta adresime şifre değişikliği talebi linkleri gelmiş. Linklere tıklamadım bir sorun olacağını hissettim. Şuan 2.8.4 versiyonunu kullanıyorum bu vesiyonda bir açık var mı?.. Vermiş olduğunuz ayarları yapmaya kalkarsam mutlak bir yerde hata yapıp siteyi çökertirim. Bilgi ve yardımların için şimdiden çok teşekkür ederim

  10. TEAkolik
    Ağustos 28th, 2009 11:53

    @Batuhan
    Şuan bildirilmiş bir açık yok. Fakat yinede anlattığım şekilde kendini güvene alabilirsin. Ne olur ne olmaz…

    Bu arada olmadı diyen arkadaşlar Gtalk üzerinden destek verebilirim. Aslında olmadı diye bişi yok. Kesinlikle oluyor. Dikkatlice tekrar deneyiniz. Mutlaka bir yerlerde yanlış yapıyorsunuz.

  11. batuhan
    Ağustos 28th, 2009 23:18

    Bilgi ve desteğin için teşekkür ederim. Hafta sonu izne çıkıyorum o zaman daha rahat ve sakin kafayla yaparım.. Çok sağol

  12. yakın
    Ağustos 29th, 2009 01:46

    sonunda (-: teşekkürler..

  13. krsnsk
    Ağustos 29th, 2009 04:46

    Bazı hosting firmaları dosya bazlı şifrelemeye izin vermiyor. htaccess ile sadece klasör şifrelenebiliyor. Olmadı diyen arkadaşlar hosting firmalarından bilgi alabilirler.

  14. flyingweels
    Eylül 1st, 2009 21:25

    çok faydalı arşivlik teşekkürler.

  15. ilyas Teker
    Eylül 4th, 2009 01:21

    Güvenlik herşeydir. Enfes kıvamda süper bir bilgi. Teşekkürlerimi sunuyorum üstad : )

Yorum sayfalarımız;

Güvenlik Sorusu;



QR Code Business Card