Zeki Can - WordPress

WordPress Güvenlik Önlemleri

  Wordpress    1 Mart 2019
Yorum Yok

Günümüzde blog yazan arkadaşların en çok tercih ettiği sistemlerden biri WordPress içerik yönetim sistemidir. Hal böyle olunca da saldırganların ya da kendini öyle hisseden bazı arkadaşların wordpress açıklarını takip edip saçma hareketler yapmasını nasıl daha çok azaltabiliriz konusuna değineceğim bugün. Güvenlik konusunda belki de en önemli mesele dosyaların güvenliğidir. Çünkü dosyalar bizzat sitelerin olabilecekleri gibi wp-config.php gibi kritik bir dosya nedeniyle veritabanınıza da veda etmek zorunda kalabilirsiniz. Bu yüzden yedeklerinizi mutlaka zamanında alın (mümkünse her gün, tabi bu biraz sıkıcı, ama haftada bir almak zor olmasa gerek).

Dosya İzinlerini Düzenleyin
WordPress kurulumunu tamamladıktan sonra ilk yapmanız gereken işlerden biri wp-admin klasöründeki install.php dosyasını silmektir. Ardından sıra dosyaların izinlerini düzenlemeye gelir. Yanlış bir dosya izni nedeniyle sunucuya sızılabileceğini unutmayın. WordPress’in kritik dosya ve klasörleri ile bunların izinleri için aşağıdaki tablo da ki gibi yapabilirsiniz. Tabi isterseniz daha sıkı bir izin de yapabilirsiniz.

Ana dizin (root directory) : 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

Not:
Bazı eklentiler kurulmak için wp-content gibi klasörlerin yazılabilir olmasını ister. Böyle durumlarda eklentiyi kurmadan önce dosya iznini 0777 yapın ve kurulum tamamlandıktan sonra klasörü tekrar eski dosya iznine döndürün. Aynı durum .htaccess dosyası için de geçerlidir. Mutlaka eski dosya iznine dönüş yapmayı unutmayın.

Yükleme klasörünüzün (uploads, yuklemeler vb.) dosya izni 0777‘de kalabilir ama arada bir bu dizini kontrol etmek ve zararlı bir dosya (örneğin .php uzantılı ve sizin yüklemediğiniz bir dosya) var mı, bakmakta her zaman için fayda vardır.

Plugins Dizininizi Kontrol Edin
WordPress sisteminizi tamam siz kapattınız ama eklenti yükleyince kullandığınız eklentilerde açıklar olabilir. Ziyaretçilerinizin bu dizini yani eklentilerinizi görmelerini engellemek istiyorsanız boş bir dosya oluşturup bu dosyayı index.html olarak kaydedin ve wp-content/plugins dizinine FTP ile yükleyin. Artık eklentileriniz tarayıcı vasıtasıyla görünmezler.

Not: WordPress’in güncel sürümlerinde zaten boş bir dosya bulunuyor(index.php). Bulunmayanlar bu bahsettiğim boş index.html dosyasını kullanabilirler.

.htaccess Dosyası
Güvenli bir WordPress için sağlam bir .htaccess dosyasına sahip olmalısınız. Bu dosya genelde WordPress’in standart yönlendirme içeriğini barındırır ama geliştirmek ve güvenliğimizi artırmak tabiki bizim elimizde olan bir şeydir. Bu nedenle aşağıdaki kodları .htaccess dosyanızın en üstüne yapıştırmanızı tavsiye ederim. Her satırın üzerinde ilgili kodun ne işe yaradığını belirttim. Aşağıdaki kodların tümünü kopyalayıp .htaccess dosyasına yapıştırarak kullanabilirsiniz. Eğer henüz bir .htaccess dosyanız yok ise boş bir dosya oluşturun, içine aşağıdaki kodları kopyalayın ve bu dosyayı sunucunuza yükleyin.

# .htaccess dosyasına erişimi engelle
<files .htaccess>
order allow,deny
deny from all
</files>

# sunucu imzasını kaldır
ServerSignature Off

# dosya yükleme boyutunu 10mb ile sınırlandır
LimitRequestBody 10240000

# wpconfig.php dosyasına erişimi engelle
<files wp-config.php>
order allow,deny
deny from all
</files>

# wp-load.php dosyasına erişimi engelle
<files wp-load.php>
order allow,deny
deny from all
</files>

# dizin listelemeyi iptal et
Options All -Indexes

wp-config.php Dosyası
Bu dosya WordPress içerik yönetim sisteminin en önemli dosyasıdır çünkü içinde veritabanına bağlantı için gerekli bilgiler ile birlikte temel ayarlar bulunur. İşte bu nedenle bu dosyayı mutlaka korumalıyız.

wp-config.php Dosyası Nasıl Şifrelenir?
Şifreleme için ionCube, Zend Guard veya en basiti ve ücretsiz olan phpr.org sitesindeki aracı kullanabilirsiniz. Benim tercihim ionCube‘den yana. Tabi şunu da unutmamak gerekir ki kırılmaz diye bir şey yok her şifre kırılabilir. Biz elimizden geldiğince eşeği sağlam kazığa bağlayalım da bi ihtimal bu karşı da ki tehdit oluşturan kişiyi caydırabilir.

İonCube ile Dosya Nasıl Şifrelenir?

ionCube ile Dosya Şifrelemek  aslında gerçekten çok basit bir işlemdir. Önce ionCube sitesine üye oluyorsunuz. Sonra kredi yüklemek için ödeme yapıp (minimum 5$ = 10 dosya) kredinizin yüklenmesini bekliyorsunuz. Krediniz yüklenince Encode (Şifrele) sayfasına gidiyor ve şifrelemek istediğiniz dosyayı yüklüyorsunuz. Dosya şifrelenip size geri veriliyor. Verilen dosyayı sitenize koyup direk kullanmaya başlayabiliyorsunuz. (sunucunuzun ioncube kullanımına açık olması gerekli tabiki)

Örnek Şifrelenmiş İçerik:

&lt;?php
if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');@dl($__ln);if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)&gt;1&amp;&amp;$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}@dl($__ln);}else{die('The file '.__FILE__.&quot; is corrupted.\n&quot;);}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file &lt;b&gt;'.__FILE__.'&lt;/b&gt; requires the ionCube PHP Loader '.basename($__ln).' to be installed by the site administrator.');exit(199);

?&gt;
4+oV575DvTsGajqIUVykSFuJGG8fQa3HJdW84yY76SRKAYvtpoMNsaj+cvZ0rvmH+Oshi+/HhoFu
mUwQCqePxKNCBS5qWo2+/U5v50KOGpurR5jzM2aoY8GZqeQ6W4jDu2MFPQ/vt41caF6wjzJOmtMs
GQv29n2lLMSGAvnG1G0vGHltkRu8EApnKgxVuGL2UOax2xVDOmD9kTlH/99tEU57NvXrYIIfFLRP
hypRoh02Prk4A0oGo7e32t40TkIi+YRufAQsKOaL4m8tOBGl9iBKeGxc5TvLODf0SM5TcTmsf3Ab
4CJCQzzrx6L23jsrUaHZPrBdOVubdBaG7P4txEdfVMA9HaPgRkf0j7lB9i4Zhy879Ta6o54IcOpD
axMyhFZ9LmUTWjyvN0n92/1xc1CnAwbYKFLfPROeodEKaJKedNNl2BCu0BbGLgk5b1U3+7QRdO4g
fHogbUNw/q5kgvUftcTFTYk5eBi3i0ibbVhJYxx8YyPqjUjh4hFiCSs0LZiPUJMY1qtMfWBfn+Jj
qw11r4cpgjwVq5ur3+pMcQ8CxCnOHX8DauxZ/fQP7eDKkbp/FJX7GlyV9z/zn5D+wIyKyfEEHYWi
UEDDPIkIo2PGSs1ZhIdnt3hyj0DbwCT9Gf51OkdUQulKGTwRzYFRIP8e3cVfpCXHjvc37l/jXFPN
vlCm6n6EQqPuhgYPO1Abpo+Ne5Xp7ihu6RtHI/KvQgpywub2BRpsvypvmzeNX359tzt543q92Mh5
HnyTYIFHXzXMRcLwu1Fu4YYCGnXKnJXS8ITq0MQV+A4zJd7dTgKv44WjI8tqZ4oLjQhTv/lEnkR+
zzPhnLKUHlvRF/Ww01Qbjzzneh+AxSIfHqdBtB3gnxwvo6dj8AN4EIl8Lk6tq8YHqBN9dWnN03/6
wC3rB2bgPP+xXzY/kuoH5W11lsIsjdfXobEj+tTpRANAMiBcxdu7+Ph97KKHTENlZ08gfl+1a4WK
vWavse/s8VcY7W8CM05r1JNGHJs83aBgx0wKOvIFBnBncZNdAvjL+adRQWdIstl+X1AAnbaUbF1C
gIVkcirAUGfN/YOgx6JjjO6Wk9vbXPN8aQXHe58LKKHolYMTnVimDuhyMYaYdF6VZKqc+ZN4Ccss
6QeMgz/7TIavAtumqzAlkZUBMhad0+we1eUmXEuQDGj2G7+/hj5pCKUjIDK1Hp9BkkepP8u0c8ec
X+tU1uTmD8Rf3nvSoD7O0UFhWQL8mkUgeAmiafKDIoK+Co1qr7IwN3avlp0M2alGZHg

wp-config.php Dosyasına Erişimi Engellemek
Bu dosyayı korumak için öncelikle .htaccess dosyasına, tarayıcı üzerinden wp-config.php ve wp-load.php dosyalarına erişimi engelleme kodunu eklemeliyiz.Sonrasında alttaki kodları eklemelisiniz. Üstte .htaccess dosyasını incelediğimiz başlıkta bu kodu zaten vermiştim ama isteyenler sadece bunu da yapabilirler.

# wpconfig.php dosyasına erişimi engelle
<files wp-config.php>
order allow,deny
deny from all
</files>

# wp-load.php dosyasına erişimi engelle
<files wp-load.php>
order allow,deny
deny from all
</files>

Şimdilik bu kadar. Yeni bilgiler öğrendikçe sizinle paylaşmaya devam edeceğim. Sağlıcakla. . .


Etiketler : , , , ,


  Benzer Yazılar


  Yorumlar

Bir Cevap Yazın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu yazıya henüz yorum yapılmamıştır, yazı hakkındaki düşüncelerinizi paylaşmaktan çekinmeyin.