21 Nisan 2015 Salı

SOSYAL MEDYA ÇÖZÜMLERİ : Genel Wordpress Güvenliği

 

Wordpress artık hayatımızın bir parçası oldu. Kişisel bloglar, şirketler, özel tasarımlar artık her şey wordpress üzerinden yapılıyor. Burada wp siteleriniz de önlem almanız gereken konuları anlatacağım.

1. MySQL veri taban ismi

Aslında en büyük açığı siz kendiniz oluşturuyorsunuz. wp-config-sample.php dosyasını düzenlerken ilk olarak cpanel üzerinden bir veri tabanı oluşturuyoruz. Sitenizi hacklemeye çalışan bir arkadaş ilk olarak buraya bakar. Elindeki programlar ile olasılıkları tarıyor. Zaten veritaban isimleri öncelikle site adreslerinizden oluşuyor. Cpanel/FTP kullanıcı adınız her ne ise o öncelikle kullanıcı adınız onunla başlıyor. Site isimleri de genellikle cpanel kullanıcı adları ile aynı şekilde oluşturuluyor. Örneğin benim panel kullanıcı adım animasyon olsun. Oluşturacağım database(db) adı animasyon_deneme şeklinde olacaktır. Buradaki deneme ise seçtiğim db ismidir. İşte tam olarak sorun burada başlıyor. Burayı çok kolay bir şey seçmeyin. Misal olarak
"32fAs21fQzP4" şeklinde bir şey seçin. Bunu kendiniz bile zor ezberlersiniz ve hem sayı hemde büyük küçük harften oluştuğu için kırılması zor bir olasılıktır.

2. MySQL kullanıcı adı ve şifresi

İkinci olarak önemli olay burada başlıyor. Yine bu bölümde ftp adınız ile başlayan bir kullanıcı oluşturacaksınız. Çünkü wp kurmak istiyorsanız bunun başka bir yolu yok, öyle veya böyle oluşturulacak bu isim. Bunu yine kolay bir şey seçmeyin. Forum kuracaksanız siteniz_forum diye bir kullanıcı adı seçmeyin. Hele siteniz_wordpress gibi bir şey hiç seçmeyin. Şöyle seçin mesela;
"siteniz_f4O21r9uM" bunun algoritma ile kırılması oldukça zordur ve geldik şifre bölümüne. Veri taban isim ve kullanıcı adında özel karakterler kullanamıyorduk. Bu doğru fakat şifre bölümünde öyle bir sıkıntımız yok. Burada öyle bir şifre seçin ki kendiniz bile zor bulun. Hatta hiç bulamayın. Öyle bir şifre olsun. Özel karakterler kullanın fakat " ve ' karakterlerini kullanmayın. Çünkü php kodlama dilinde bunlar ayraçtır. Kullanırsanız bazı sıkıntılar doğabilir. Yine örnek vereyim şöyle bir şifre seçin; "aX+4SazQ85&z_G3%-jK)" çok süper bir şifre oldu değil mi? İtici geliyor ama kırılması çok zor.

3. PhpmyAdmin tablo ismi

İlk 2 özellik aslında bütün sitemler için gerekli bir şeydi. Sadece wordpress için değil. 3. adımdan sonra tamamen wp ile ilgili güvenlik önlemlerine geçiyoruz. wp-config.php dosyasını düzenlerken 67. satırda;

Kod:

 

$table_prefix = 'wp_';

Böyle bir kod bulunuyor. Normal bir site için değil, wordpress sistemi için en büyük açık bu tablo adlarındadır. Örneğin bir saldırı alıyorsunuz. Adam zaten sizin phpmyadmin tablo isimlerinizi biliyor. wp_comments wp_tags falan filan. Bu açığı kapatmak için bu tablo adını değiştiriyoruz. Örneğin wp_ değilde "Jg3KpQY6_" yapalım. Neden "wp_" yapıyoruz ki illa? Veya siz kendi kafanıza göre bir şey yapın fakat özel karakterler kullanmayın. Daha sonra phpmyadmine girdiğiniz zaman wp_ tablolarında değil de farklı belirlediğiniz isimlerle tablolar oluştuğunu göreceksiniz.

4. Eşsiz doğrulama anahtarları

Bir diğer wp-config.php güvenliğimiz bu. WordPress secret key adresine giriyoruz. Karşımıza aşağıda verdiğime benzer bir kod dizini veriyor.

Kod:

 

define('AUTH_KEY', '[)))^oe|aC+Om*`Xc1G]s&@.b6Ub_O%}MC5^i?-m(-Nd.]L}w>EjcOuDoRW$J!+{');
define(
'SECURE_AUTH_KEY', '%(}M%-jEZ`]7t@|Vsb(BB_OV4SzN|0-%# :=/H<22>6tVQ]?nF(}+C-/rH/a?@L6′);
define(
'LOGGED_IN_KEY', '`]eRE};9}]UJhYo_{Pz5&H.+BxJN+vU7HKu,2,oKx1I*vW-{&{T<O|Yzak7|(9Oe');
define(
'NONCE_KEY', 'x+8)x?<++LA^|xg*7rwhPY,Dco XQ@EV|MS@K;Tmb#-LDE#g+?xHpc6~?I|T@}i|');
define(
'AUTH_SALT', 'SZRV*dPNRlqx%Q%J|&G$S]CHa5#7,P|_|2[1_p=EQ=}+:ieB6BZ~(&!?y!x/V}Y^-);
define('SECURE_AUTH_SALT', 'RU0sS0tIoJDia~3l6G;S3+EehArG>_[jS&IP>[-43$ EcUo;2IiS3t.-3j1|+yX|-);
define('LOGGED_IN_SALT', 'qg3:_)0-K+,.Vgs(DG.+<R;U2SV#s(8n`1p?|q@|)c]s`b<Y-{9Jl7AzEQQhJ2aJ
');
define(
'NONCE_SALT', 'i1a[vJFB7pFoC-d!wc;zxYmFSc{8oU23z9}GA0EeTlWI0jtK/o{IA@G+U/%8 !MH');

Siz bu kod dizimini alıyorsunuz wp-config bölümdeki secret key bölümüne kopyalıyorsunuz. Buradaki amaç paneldeki çerezleri kabul etmemektir. Kullanıcılar bir girdiği zaman belirli bir süre sonra tekrar giriş yapmalıdır. Bir kişi admin paneline bağlandı, cafeden giriyor bu kişi. Sonra kalktı gitti. AkınSOFT(sadece bir örnek) çerezleri silmiyor, bilgisayar sıfırlanmıyor. Belki bilgisayar kapatılıp açıldığında DeepFrezee siliyor ama ya kapanmazsa? Bütün bilgileriniz çalınabilir. Onun için bu yöntemi de uygulayın derim.

5. wp-admin yolunu değiştirmek

Bir diğer güvenlik önlemimiz wp-admin yolunu değiştirmek. Bir siteye wordpress kurduğunuz zaman admin paneli wp-admin olur. Bunu webmaster arkadaşlarımız iyi bilir. Ben senin admin panelinin nasıl olduğunu biliyorsam sence ne yaparım? Hele de bir hackersam neler yapabilirim bir düşün. Bu panelin yolunu değiştirmek gerekiyor. Bu hack olayını tamamen engellemez ama bulması için biraz uğraşabilir. Bunun için bize Grepwin programı lazım olacak. Çünkü bir çok dosyada değiştirme işlemi yapacağız. Bunu tek tek yaparsanız 3-5 saatinizi alır. Bu programını Grepwin indir bölümünden indirebilirsiniz. Programın kısa bir anlatımı da mevcut. Ona da bakabilirsiniz. Buradan indirdiğimiz wordpress dosyasını .rar(veya .zip) arşivinden çıkartıyoruz. Çıkarttığımız dosyaya sağ tıklıyoruz ve Grepwin ile açıyoruz. Bunu yapmadan önce siteniz zaten kurulu durumdaysa önce bir yedek alın, sorumluluk kabul etmiyorum. Her şeyi anlattığım gibi yaparsanız bir problem çıkmaz. Çıkarsa da ftp
'den aldığınız yedeği atarsınız.

Ad
ı wordpress olan bir site açılacak

Kod:

 

Search for: wp-admin

Replace with: panelim

Yazacaksınız. Burada "Search for" kısmı değişmeyecek. "Replace with" bölümünü siz işte panel adresiniz ne olacaksa o şekilde değiştiriyorsunuz. Ben "panelim" yazdım. mustafakirmizi.com/panelim olarak gireceğim. Siz atıyorum admin yazarsanız siteniz.com/admin olarak girersiniz. Daha sonra enter tuşuna basmayın. Çünkü value(default) değer olarak Search butonu seçili durumda. Şekilden de görebilirsiniz. Siz burada "Replace" butonuna tıklayacaksınız. Daha sonra karşınıza küçük bir onay kutucuğu gelecek. Ona yes(evet) deyin geçin. Aşağıda bir liste belirecek, bu dosyalarda şu kadar kısım değiştirildi diye. Bittiği zaman tamam deyip çıkın. Daha sonra ana dizinde bulunan wp-admin.php klasörünün adını değiştireceğiz. Burada panelim yazdığım için ben wp-admin.php dosyasının adını panelim.php dosyası olarak değiştireceğim. Siz admin yaptınız diyelim yolu. "admin.php" olarak değiştireceksiniz. Artık her ne yaptıysanız ona göre isim vereceksiniz. Daha sonra aşağıda verdiğim alt klasör yollarını bulun ve değiştirin.

Kod:

 

/wp-admin
/wp-admin/css/wp-admin.css
/wp-admin/css/wp-admin.dev.css
/wp-admin/css/wp-admin-rtl.css
/wp-admin/css/wp-admin-rtl.dev.css
/wp-includes/class-wp-admin-bar.php

Bu dosyaları bulun ve şu şekilde değiştirin.

Kod:

 

/panelim
/panelim/css/panelim.css
/panelim/css/panelim.dev.css
/panelim/css/panelim-rtl.css
/panelim/css/panelim-rtl.dev.css
/wp-includes/class-panelim-bar.php

Daha sonra siteniz.com/panelim bölümünün çalışması gerekiyor. wp-admin'i değiştirmişken wp-login.php bölümünü de değiştirelim ki bir anlamı olsun. Yine grepwin programı ile wordpress klasörünü açıyoruz. Bu defa;

Kod:

 

Search for: wp-login

Replace with: girispanelim

Yazalım veya siz kendiniz bir isim koyun, o şekilde değiştirin. Replace(değiştir) butonuna tıklayın. Ana dizinde bulunan wp-login.php dosyasının adını da girispanelim.php olarak değiştirelim. Kullanıcı kayıtları için de bunu yapmak istiyorsanız bunu; wp-register -> kayit olarak değiştirme işlemi yapacaksınız ve wp-register.php dosyasının adını kayit.php olarak değiştireceksiniz. Bu işlemler sonucunda sitenizi güncelleyin. Bazı eklentiler üzerinde de wp-admin , wp-login bölümleri vardır. Sitenizde hata oluşuyorsa bu dediğim işlemleri wp-content/plugins klasörüne de uygulayın. Problem kalmayacaktır. Problem yaşarsanız bu konu altında bilgi verin, yardımcı olayım.

Not: Bunu her wp güncellemesinde yapmak zorundasınız. Bu adımı uygularsanız eklentilerinizde problem olabilir. Bunun için her eklentide bulunan wp-admin kelimesini grepwin programı ile "panelim" kelimesi olarak değiştirmelisiniz.

6. Hata mesajlarını gizlemek

Diyelim ki wp-login sayfasını güncellediniz ve yine bir şekilde buldular giriş sayfasını. Saldırı yapıyorlar veya şifrenizi kırmaya çalışıyorlar. Kullanıcı adı veya şifrenizi hatalı girdiği zaman login sayfası karşı tarafa, şifre hatalı veya kullanıcı adı hatalı şeklinde mesajlar gösterir. Kullanıcı adını tutturursa şayet(ki yüksek ihtimal tutturacaktır, çoğumuz yazıda yazar linki veriyoruz) şifreniz bölümünü kırmaya geçecektir. Programlar ile bunu belki başarabilir. Siz bu hata mesajını gizlerseniz şifre mi hatalı yoksa kullanıcı adı mı diye şaşırtıp zaman kazanabilirsiniz. Bu mesajları engellemek için ise şunu uyguluyoruz. Kullandığınız tema neyse functions.php dosyasını açıyoruz.
"<?php" bölümünün hemen altına şu kodu ekleyeceksiniz;

Kod:

 

add_filter('login_errors',create_function('$a', "return null;"));

7. Sürüm gizlemek

Wordpress sürümleri çıktığı zaman belirli bir süre sonra lamer arkadaşlarımız sürümlere göre açıklar bulurlar. Siz eğer ki kullandığınız sürümü gizlerseniz hack olayını bir nebze engellemiş olursunuz. Sürüm gizlemek için yine temanızın functions.php dosyasını açıyoruz ve aşağıdaki kodu ekliyoruz.

Kod:

 

remove_action('wp_head', 'wp_generator');

8. Admin nickini değiştirmek

Admin panelinin giriş kullanıcı adını kesinlikle
"admin" yapmayın. Çünkü ilk deneyecekleri kullanıcı adı budur. Acemi arkadaşlarımızda genelde bu kullanıcı adını seçer. Diyelim ki bir kaza oldu bu şekilde admin kullanıcı adını seçtiniz. Bunun için öncelikle cpanele bağlanıyorsunuz. PhpMyAdmin sayfasına geçiyorsunuz ve hangi tablo ile kurduysanız tabloadı_users bölümünü açıyorsunuz. Admin yazan bölümü herhangi bir kullanıcı adı ile değiştiriyorsunuz. Normal değerlerde wp_users bölümündedir. Tablo adını değiştirmişseniz ona göre tabloyu bulun. Yok ben bunu yapamam derseniz temanızın header.php dosyasını açın. <?php satırından sonra SQL sorgusu oluşturun ve şu kodu kullanın.

Kod:

 

UPDATE wp_users SET user_login = 'Yeni' WHERE user_login = 'Admin';

Yeni yazan yere ise yeni yetkili kişi rumuzunu girin. Ana sayfanıza girin(siteniz.com olarak). Bir defa F5 tuşuna basın. SQL sorgusunu doğru oluşturduysanız kullanıcı adı güncellenecektir. Ben ilk adımı öneririm.

9. .htaccess dosyasını güvenli hale getirmek

Ana dizinde bulunan
".htaccess" dosyanızı açın. En üstüne ekleyin;

Kod:

 

ServerSignature Off
LimitRequestBody 10240000
Options All -Indexes
<files .htaccess>
order allow,deny
deny from all
</files>
<files wp-config.php>
order allow,deny
deny from all
</files>
<files wp-load.php>
order allow,deny
deny from all
</files>

Bu şekilde .htaccess dosyanız daha güvenli bir hale gelecektir.

10. Dosya izinlerini default değere çekin

Klasörlerin rewrite(tekrar yazma) değerlerini doğru seçmezseniz hack olayı kaçınılmazdır. Muhakkak bir şekilde hack yersiniz. Onun için klasörlerinizi şu özelliklere göre tekrar bir inceleyin. Şu şekilde olmalılar;

Kod:

 

Ana dizin (public_html veya wordpress dizini): 0755

wp-includes/: 0755

wp-admin/: 0755

wp-admin/js/: 0755

wp-content/: 0755

wp-content/themes/: 0755

wp-content/plugins/: 0755

wp-admin/index.php: 0644

.htaccess: 0644

wp-config.php: 0644

11. Eklentileri gizlemek

Kullandığınız herhangi bir eklentide açık olabilir. Kişiler kullandığınız eklentileri bilirse güvenlik açığı oluşur. Bunun için kullandığınız eklentileri gizlemek zorundasınız. Bunun için wp-content/plugins klasörüne girin. index.html adında bir sayfa oluşturun. Boş bir sayfa da olabilir. Bunu plugins(eklentiler) ana dizinine atın. Böylelikle kişiler kullandığınız bütün eklentileri göremeyecekler.

12. wp-config.php dosyasının yerini değiştirmek

Bu da kilit yöntemlerden bir tanesi. Hack olayını çoğunlukla engeller. Herkes veri taban bağlantı dosyanızın yerini bilirse ne olur? Bence hiç hoş olmaz. Bundan dolayı dosyanızı taşıyalım. Örneğin wp-includes klasörünün içine bir klasör açalım. Klasörün adını da veritabani yapalım. wp-config.php dosyasını da buraya taşıyalım. Yani yeni yolumuz; wp-includes/veritabani/wp-config.php olacak. Taşıma işlemi bittikten sonra wp-load.php dosyasını grepwin ile açıyoruz. Search for kısmına
"wp-config.php" yazıyoruz ve Replace bölümüne ise "wp-includes/veritabani/wp-config.php" yazıyoruz. Replace butonuna tıklıyoruz. Daha sonra bu değişikliği ftp'ye tekrar gönderiyoruz. Böylelikle artık hiç kimse veri taban dosyamızın yerini bilmiyor. Tabi siz değişik bir yol seçin, ona göre değiştirin.

[publicize twitter]

[publicize facebook]

[category teknoloji]

[tags SOSYAL MEDYA ÇÖZÜMLERİ, Genel Wordpress Güvenliği]

Hiç yorum yok:

Yorum Gönder

Hakkımızda

Fotoğrafım
BU BLOG ÖZEL BÜRO GRUBU'NA AİTTİR. RESMİ WEB SİTEMİZ : http://www.ozelburoistihbarat.com

ÖZEL BÜRO İSTİHBARAT GRUBU