lostyazilim
tr.link

12 Adımda Wordpress Güvenliği

10 Mesajlar 14.935 Okunma
acebozum
tr.link

Matthys Matthys WM Aracı Kullanıcı
  • Üyelik 21.10.2012
  • Yaş/Cinsiyet 39 / E
  • Meslek Dr.
  • Konum İstanbul Avrupa
  • Ad Soyad M** K**
  • Mesajlar 10
  • Beğeniler 1 / 3
  • Ticaret 1, (%100)
Kaynak: Wordpress güvenlik önlemleri

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;



$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.


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-{&{Tdefine(‘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.+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.



Yukarıdaki resimde gördüğün gibi wordpress klasörü açılacak. Ben mustafakirmizi.com olarak değiştirdim adını, onun için yukarıdaki gibi görünüyor. Sizde wordress olarak görünecek.



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.

/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.

/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;



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. “


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.



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.


UPDATE wp_users SET user_login = ‘[COLOR="Blue"]Yeni‘ WHERE user_login = ‘Admin’;[/COLOR]



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;



ServerSignature Off
LimitRequestBody 10240000
Options All -Indexes

order allow,deny
deny from all


order allow,deny
deny from all


order allow,deny
deny from all


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;



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.
silenthilll

kişi bu mesajı beğendi.

elektronikssl
webimgo

Sylar Sylar Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 08.03.2013
  • Yaş/Cinsiyet 38 / E
  • Meslek Yazılım Uzmanı
  • Konum Kocaeli
  • Ad Soyad ** **
  • Mesajlar 79
  • Beğeniler 17 / 16
  • Ticaret 1, (%100)
Hayırlısı neyse o olsun :)
 

 

yefecrin yefecrin WM Aracı Kullanıcı
  • Üyelik 28.01.2013
  • Yaş/Cinsiyet 34 / E
  • Meslek SKS
  • Konum Samsun
  • Ad Soyad C** I**
  • Mesajlar 977
  • Beğeniler 182 / 187
  • Ticaret 51, (%100)
güzel bir anlatım olmuş elinize sağlık
Matthys

kişi bu mesajı beğendi.

antidotx antidotx WM Aracı Kullanıcı
  • Üyelik 15.10.2013
  • Yaş/Cinsiyet 35 / E
  • Meslek webmaster
  • Konum Eskişehir
  • Ad Soyad ** **
  • Mesajlar 1
  • Beğeniler 0 / 0
  • Ticaret 0, (%0)
grepwin ile oynaboyna.com sitemde bunu yapmak istedim ama heryerden hatalar fışkırdı. Wordpresiin tüm yolları değişmiş halde mümkün olsa keşke uzaman wp ciler hemen çakıyor olayı. Şuan bile siteme saldırılar var. admin şifresini kırmaya çalışıyorlar.
 

 

http://www.birdunyaoyun.com/
http:www.kraloyungemisi.net/
wmaraci
wmaraci

Kodespa Kodespa Rabbyte.net Kullanıcı
  • Üyelik 24.02.2014
  • Yaş/Cinsiyet 34 / E
  • Meslek Eski Hosting provider :)
  • Konum Trabzon
  • Ad Soyad A** Ç**
  • Mesajlar 1818
  • Beğeniler 572 / 572
  • Ticaret 2, (%100)
Bu ayarlamaları yaptıktan sonra wp güncellemesi yapıldığında sorun çıkacaktır.
wp-admin yolunu değiştirmenizi önermem.
diğer ayarlamalar güzel olmuş.
 

 

Türkiyenin ilk Hosting Forumu; Rabbyte.net Hepiniz davetlisiniz...

Eflaki Eflaki Ekşi Sözlük Platin Üye
  • Üyelik 26.11.2014
  • Yaş/Cinsiyet 31 / E
  • Meslek Makine Mühendisi
  • Konum İstanbul Anadolu
  • Ad Soyad K** D**
  • Mesajlar 1310
  • Beğeniler 188 / 247
  • Ticaret 162, (%100)
güzel.. :)
 

 

Matthys Matthys WM Aracı Kullanıcı
  • Üyelik 21.10.2012
  • Yaş/Cinsiyet 39 / E
  • Meslek Dr.
  • Konum İstanbul Avrupa
  • Ad Soyad M** K**
  • Mesajlar 10
  • Beğeniler 1 / 3
  • Ticaret 1, (%100)
teşekkürler :)
 

 

hackxien hackxien WM Aracı Kullanıcı
  • Üyelik 15.12.2013
  • Yaş/Cinsiyet 43 / E
  • Meslek İçerik Yöneticisi
  • Konum İzmir
  • Ad Soyad K** C**
  • Mesajlar 265
  • Beğeniler 50 / 90
  • Ticaret 0, (%0)
Ben öyle bir değiştiriyorum ki siteyi wp adına birşey kalmıyor :D ama tabi güncellemelerde tekrarlamak sıkıntı biraz. :)
 

 

BlueEye75 BlueEye75 Merhaba! Kullanıcı
  • Üyelik 22.11.2014
  • Yaş/Cinsiyet 24 / E
  • Meslek Öğrenci
  • Konum İstanbul Avrupa
  • Ad Soyad E** K**
  • Mesajlar 334
  • Beğeniler 46 / 41
  • Ticaret 15, (%93)
Bilgiler yararlı fakat 5.adım hacker arkadaşı sadece 5dk oyalayacaktır.Çünkü admin paneli bulmak artık programın bir tıkına bakıyor :)
 

 

wp samurai wp samurai WP Theme Developer Kullanıcı
  • Üyelik 03.03.2015
  • Yaş/Cinsiyet 43 / E
  • Meslek Freelancer Web Developer
  • Konum Diğer
  • Ad Soyad T** Ç**
  • Mesajlar 9
  • Beğeniler 3 / 1
  • Ticaret 0, (%0)
Teşekkürler , Faydalı bilgiler var
 

 

http://tolgacagin.net PSD -> WordPress işleriniz yapılır
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al