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://home.flash.net/cgi-bin/pw.pl

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.com 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/teakolik.com/.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/teakolik.com/.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..!

FaceBook ile paylaş... Friendfeed ile paylaş... Twitter ile paylaş

Yönetici Notu :
#0
Lütfen yapacağınız yorumlarda kişi ve kurumlara hakaret etmeden, kişilik haklarına zarar vermeden düşüncelerinizi yazınız.
  1. Caner
    Eylül 13th, 2009 14:00

    Aslında .htpasswd dosyasını tarayıcıyla girilemeyen bir dizine koymaktan başka, buna yine bir .htaccess ile girişi engelleyebilir ve/veya ismini değiştirebiliriz. Bir de ben sadece wp-login.php dosyasına değil de, wp-admin dizininin tümüne engel koyuyorum, her ne kadar oturum açmayan biri wp-login.php’ye yönleniyor dahi olsa.

    Güzel yazı. Ayrıca burada bu yöntemle yapmak istemeyenler, mümkünse bir de hosting yönetim panellerinin dizin şifreleme özelliği olup olmadığına baksın. O sizin yerinize yapacaktır.

    İyi günler…

  2. sözlük
    Kasım 14th, 2009 11:10

    Teşekkürler…

  3. Filmdizin.com
    Kasım 14th, 2009 16:01

    arkadaşlar bu ne işe yarıyor. ben siteme üye kabul etmiyorum ama bunu yaparsam üyeliklere giriş dahamı güvenli olur.

  4. bilgihost.net
    Kasım 25th, 2009 01:13

    güzel bir döküman olmuş teşekkürler.

  5. Gökhan
    Ocak 17th, 2010 00:25

    merhaba.konuyu tekrar gündeme getireceğim ama sitem hacklendi.şimdi kullanıcı adı ve şifre değiştirdim ve sitelerde gezerken bu güvenlik önlemi dikkatimi çekti. Sorum şu olacaktı : bende /.htpasswds/ diye bi klasör var. bu oluşturduğum şifreyi bu klasörün içine txt dosyası olarak mı atcam yoksa php dosyası olarak mı.ya da ben cok yanlış anladım :) bi de bende .htacsess dosyası hiç yok nasıl oluştutulur yönlendirme yaparsanız sevinirim…

  6. TEAkolik
    Ocak 17th, 2010 01:35

    @Gökhan
    Merhaba ;

    AuthUserFile /home/teakolik.com/.htpasswd # Şifremizin bulunduğu dosya yolunu belirttik

    satırında belirttiğim gibi şifreyi koyduğunuz dosyanın adı: .htpasswd olacaktır.

  7. Gökhan
    Ocak 17th, 2010 02:24

    hımm şimdi anladım.. teşekkürler..

  8. Gökhan
    Ocak 17th, 2010 02:50

    özür dilerim ama son bir sorum olacak.girişte yeni bir şifre ekranı geldi.şifrem o sitede oluşturduğum site herhalde.peki kullanıcı adım ne? bi türlü giremedim wp-admine? eğer apache şifresi ise onu nereden öğrenebilirim?

  9. TEAkolik
    Ocak 17th, 2010 02:52

    @Gökhan
    Dikkatle yazımı okursanız;

    teakolik:asasdas324235235sdfasdf

    gibi bir şifreleme örneği vermiştim. Baştaki “teakolik” username tabi siz istediğiniz gibi değiştirmekte özgürsünüz. Şifreyi ise yazıda belirttiğim gibi bir şifre üretme sitesinden üreterek user’in yanına yazıyorsunuz.

  10. Gökhan
    Ocak 17th, 2010 02:58

    anladım kusura bakmayın gece geç oldu algıda güçlük çekiyorum. bi de sitem hacklenmiş de kendimi veremiyorum işe. http://www.azriskcokpara.com arama yaptığımda yada kategori ye tıkladığımda uyarı mji geliyor. herhangi bi bilginiz var mı?

  11. TEAkolik
    Ocak 17th, 2010 03:08

    @Gökhan
    Eğer yedekleriniz varsa geri yükleyin.

    1. Wordpress en son sürüme güncelleme yapın.
    2. Databasenizi mümkünse hack olayından bir gün öncesine çekin.

  12. Gökhan
    Ocak 17th, 2010 03:13

    tamam sorunu buldum.tema dosyamdaki index.php değiştirilmiş.ii geceler..

  13. TEAkolik
    Ocak 17th, 2010 03:16

    Kolay gelsin. Yinede tüm dosyaları tekrar elden geçirin..!

Yorum sayfalarımız