WordPress .htaccess ile Wp-login.php ‘yi Şifreleyelim.
Şu wordpress’in admin hack, Xss hack, SQL injection saldırıları ve zafiyeti yüzünden bir sürü güncelleme yaptık. yapmaya da devam ediyoruz. Yine de yeni bir güvenlik açığı ortaya çıkabilmekte. WordPress’i yıllardır kullanmaktayım ve bu hack olaylarına karşı herkes gibi bende ek güvenlik önlemleri alıyorum.
Bunlardan bir tanesi wp-admin girişine .htaccess ile ek bir şifre daha koymak..!
En önemligüvenli yöntemlerden bir tanesi olduğunu söylemek isterim. WordPress admin hack konusunda nasıl bir açık çıkarsa çıksın ya da admin şifrenizi kim çalarsa çalsın .htaccess ile şifreleyeceğimiz wp-login.php dosyasına erişmeyi engelleyecektir.
Wp-login.php dosyamızı aşağıda anlattığım şekilde .htaccess ile şifrelediğimizde wp-admin girişine gelen isteklerde sunucumuz ek olarak koyduğumuz bu şifreyi soracaktır. Wp-login.php kullanarak ortaya çıkabilecek açıklıklar da bu sayede işe yaramayacak ve korunmuş olacağız.
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 Cpanel / Plesk üzerinde 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 sunucunun bize soracağı şifreyi belirteceğiz. Yalnız bu şifreyi de güvenli bir dizinde saklamamız gerekmekte. Benim hostingimde wordpress dosyalarım…
/home/teakolik.com/www dizininin altındadır. Sizinkinde hostunuza göre farklı olabilir. Cpanel yada Plesk ile dosyalarınıza erişerek en üst ya da bir üst dizine yani /home klasörüne veya /home/teakolik.com gibi hesap klasörüne ulaşıyoruz. Bu klasör içerisine .htpasswd dosyamızı oluşturacağız. (www içerisine atmıyoruz..! WWW içerisine atarsak güvenlik diye bir şey kalmaz…)
Oluşturduğumuz .htpasswd dosyası içerisine aşağıdaki gibi user ve şifrelenmiş parolayı tanımlıyoruz. Tek satır aşağıdaki gibi yazmak yetiyor. Sonra dosyayı .htaccess adı ile kayıt edip kapatın.
kullanıcı:şifrelenmişparola
…gibi bir user ve şifre belirteceğiz. Burada dikkat ederseniz parolamız aslında şifrelenmiş bir şekilde yani bir nevi server üzerinde de şifreleme yapıyoruz. Direk olarak kullanıcı adından sonra parolamızı yazamayız. Parolanızı şifrelemek için…
http://www.htaccesstools.com/htpasswd-generator/
adresine giriyoruz ve bir kullanıcı ve şifre yazıyoruz. Encrypt butonuna bastığımızda bize bir kod üretiyor. Oluşturduğu kod yukarıdaki gibi kullanıcı:şifrelenmişparola şeklinde çıkacaktır. Bu kodu .htpasswd adıyla bir dosya olarak ftp dosyalarımızın üst dizinlerde bir yere (/home/teakolik gibi bir yere) kayıt ediyoruz.
2. WordPress .htaccess dosyasını düzenlemek ;
WordPress’in kurulu olduğu dizindeki .htacess dosyamızı açıp içerisinde en alt satıra ş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 boş bir yere 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 size soracaktır!
Dosya yolumuzu dikkatle giriyoruz.
AuthUserFile /home/teakolik.com/.htpasswd
Birinci adımda belirttiğimiz .htpasswd dosyası neredeyse yukarıdaki dosya yolunu aynı şekilde girmemiz gerekiyor. Yoksa çalışmayacaktır. Yukarıda /home/teakolik.com/ altında olduğunu gösterdim. Sizde /home/user/ gibi değişiklikler olabilir.
Ek olarak; XMLRPC dosyasını dışarıya kapatabiliriz…
<Files “xmlrpc.php”
require valid-user
</Files>
kodlarını girersek bu kod sayesinde xmlrpc yani wordpress’in pingleme servisinin çalışmaması sağlanır. Genelde, pingback ve trackback kullanmıyorsanız bu dosyayı da güvenliğe almanız ekstra güvenlik önlemi olacaktır.
Eğer yukarıdaki kodu da eklersek sistem ping alış-verişi yapmayacak biraz daha güvenli olabilecek.
Ben kullanmıyorum…
Ö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 yukarıda 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 rahat bir şekilde kullanabilirsiniz. En azından yeni bir admin XSS açığı çıktığında kafanız rahat olur :) Kolay gelsin..!
BU YAZIYA YAPILAN YORUMLAR