WordPress Security – Güvenlik


Bu makalede WordPress güvenliğini göreceğiz, güvenli bir WordPress sitesi için neler yapabiliriz, neleri yapmamamız gerekir tüm bunları inceleyeceğiz.

WP Security - Wolkan.ca

WordPress sistemi tüm dünyada açık kaynak kodları ile, milyonlarca sitenin kullandığı bir sistem olduğu için, hacker ve lamer ler için kolay hedeflerden biridir. Bir sürümünde herhangi bir açık olduğunda o sürümü kullanan binlerce siteyi anında bulup üzerinde denemeler yapabilirler ve inanın bunu çoğunlukla sadece eğlence, sadece boş vakitlerini geçirmek ve kendilerini geliştirmek için yaptıklarını söyleyebilirim. Dolayısıyla siz bir WordPress kullanıcısı olarak, eğer bu ataklara maruz kalıp canınız sıkılmasın istiyorsanız bu ve wolkan.ca sitesinde WordPress Güvenliği ile alakalı konuları dikkate alın.

Aşağıda konu okumanızı kolaylaştırmak amacı ile 1, 2, 3 sıralaması ile devam edecektir, afiyet olsun.

Konu indeksi

    WordPress Security 1

  1. WP Panelinin şifrelenmesi (kimlik doğrulama)
  2. Güncelleme işlemleri
  3. Database bilgileri
  4. Yönetici kullanıcı adı ve parola seçimi
  5. Tablo ön ekinin değiştirilmesi

    WordPress Security 2

  1. WordPress güvenlik anahtarları
  2. Gereksiz dosyaların kaldırılması
  3. Dosya izinlerinin düzenlenmesi
  4. Dizinlerin listelenmesini engellemek
  5. Hotlink koruması

    WordPress Security 3

  1. Config.php dosyasına erişimi engellemek
  2. Giriş sayfası bildirimleri devre dışı bırakmak
  3. .htaccess kullanarak spam botları engellemek
  4. Sunucu sürüm imzalarını kaldırmak
  5. WordPress sürümünü gizlemek
  6. Zararlı sorguları engellemek
  7. Robots.txt

WordPress Security 1

    Alınabilecek önlemler / Konular

  1. WP Panelinin şifrelenmesi (kimlik doğrulama)

  2. Güncelleme işlemleri

  3. Database bilgileri

  4. Yönetici kullanıcı adı ve parola seçimi

  5. Tablo ön ekinin değiştirilmesi

  1. WP panelinin şifrelenmesi

    En etkili yöntemlerden birisi olan panelin şifrelenmesini görelim. İşe başlamadan önce bir besmeleden sonra yedeklerimizi almayı unutmayalım.

    Öncelikle sunucunuzda Apache desteği olmalıdır, host ne kadar wp uyumlu olsa da hostçunuza danışmayı unutmayın. Eğer Windows bir sunucu ise ve Apache yoksa bu yöntemi web.config veya Windows güvenliği ile yapabiliriz fakat Windows sunucu ile WordPress kullanımı yaygın değildir bu yüzden o yöntemi şu an yazmıyoruz.

    İlk olarak ftp de (ana dizin veya örnekte /home/ altına).htpasswd isminde bir dosya oluşturuyoruz, bu dosyayı kullanarak panele koyacağımız bilgileri saklayacağız.

    http://www.e2.u-net.com/htaccess/make.htm adresine girip kullanıcı adı ve şifre oluşturacağız. Oluşturulan kodu .htpasswd dosyasının içine yapıştırıp kaydedin.

    Şimdi sıra .htaccess dosyamızı düzenleyeceğiz, dosyayı açıp şu kodları ekliyoruz:

    <IfModule mod_rewrite.c>
    ErrorDocument 401 default  
    AuthUserFile /home/.htpasswd 
    AuthName "Site" 
    AuthType Basic 
    Require valid-user 
    </IfModule>
    

    .htpasswd nerede ise ona göre dizin adresini ayarlayın, örnekte /home/.htpasswd olarak geçiyor. Dosyamızı kaydediyoruz, diğer kodları silmeyin.

    Bu işlemi yaptıktan sonra panelimiz şifrelenmiş olacaktır.

  2. Güncelleme işlemleri

    WordPress sürekli güncellenen bir sistem olduğu için gerekli güncellemeleri kaçırmayın, bir önceki sürüm güncellendiyse mutlaka bir açık bulunmuş veya yeni bir özellikler eklenmiştir.

    Bu güncellemeleri aksattığınız takdirde sizi izleyen birileri varsa bu onların ekmeğine yağ sürecektir, o yüzden güncellemeleri takip edin ve panelinizden otomatik güncellemeyi yapın.

    Not: panelden otomatik güncellemeyi anlatmıştım WP kategorisinde bulabilirsiniz, yine hatırlatayım panelden güncelleme yapacaksanız yedeğinizi alın ve ftp de gerekli yazma izinleri verdiğinizden emin olun.

  3. Database bilgileri

    WP kurulumu sırasında bizden istenen veritabanı bilgilerini güvenli seçmekte fayda var. Şunu unutmayın veritabanı bilgilerini kurulum aşamasında kullanacağımız için ezberlemeye hiç gerek yok. O nedenle veritabanının hem isminin, hem kullanıcı adının hem de parolasının kolay kolay tahmin edileyecek veya kırılamayacak bir şekilde oluşturmaya özen gösterin.

    Basit bir kullanıcı adı veya 123456 şeklindeki bilgilerden kesinlikle uzak durun.

  4. Yönetici kullanıcı adı ve parola seçimi

    WP de 3.0 sürümünden itibaren kurulum esnasında istediğimiz kullanıcı adı ve parolayı belirleyebilirsiniz. Önceki sürümlerde kurulum sonrasında sabit kullanıcı adı admin oluyordu ve bu yüzden güvenlik zafiyeti ortaya çıkıyordu.

    WordPress 3.0 versiyonundan yukarısı için admin değil dilediğiniz başka bir kullanıcı adı seçebilirsiniz. 3.0 aşağısı ise veya önceden beri kullanıcı adınız admin ise WordPress veritabanından veya bu işi yapan bir eklenti yardımı ile değiştirmeniz de mümkün.

    Kesinlikle "admin" "yönetici" gibi kullanıcı adlarını seçmeyin ve parolanızı kırılamayacak şekilde oluşturun. "Kolay olsun yaa unutmayayım, kim uğraşır benimle"

  5. düşüncesinden uzak durun.. Parolanız çok uzun olacaksa gerekirse bir kağıda yazıp kitabınızın arasına sıkıştırın.

  6. Tablo Ön Ekinin değiştirilmesi

    Kurulum aşamasında site üzerinden kurulum yaptıysanız ve wp_ ön ekini görmüşünüzdür. Bir database üzerinde birden çok WordPress kullanmayacaksanız bunun ne olduğunun önemi yok. Ancak wp_ ön ekini değiştirmeniz size güvenlikte + kazandıracaktır.

    Bu ön eki WLKNCA_ şeklinde değiştirmek sizi birçok saldırı girişiminden önleyecektir. Ön eki belirlemek tamamen size kalmış.

WordPress Security 2

    Alınabilecek önlemler / Konular

  1. WordPress güvenlik anahtarları

  2. Gereksiz dosyaların kaldırılması

  3. Dosya izinlerinin düzenlenmesi

  4. Dizinlerin listelenmesini engellemek

  5. Hotlink koruması

  1. WordPress güvenlik anahtarları

    Güvenlik anahtarları sitenizi ziyaret eden kullanıcıların bilgisayarında depolanan cookieleri şifrelemeye yarar.

    Ne kadar güçlü güvenlik anahtarlarınız olursa o kadar güçlü korunursunuz. Bu işlem veritabanına şifreleriniz saklanırken de geçerlidir. Böylece sitenize zarar vermek isteyenlerin yoluna bir taş daha koyarsınız.

    Güvenlik anahtarlarını wp-config.php dosyasını düzenleyerek kullanabilirsiniz. api.wordpress.org/secret-key/1.1/salt adresinden eşsiz doğrulama anahtarları üretebilirsiniz.

  2. Gereksiz dosyaların kaldırılması

    WordPress kurulumunu gerçekleştirdikten sonra artık bazı dosyalara ihtiyacımız kalmayacak. Biz de fazladan dosyalara ihtiyacımız olmadığı için bu dosyaları silebiliriz, böylelikle bazı girişimleri de engellemiş oluruz. Kurulumdan sonra wp-admin/install.php ve wp-config-sample.php yi silebilirsiniz.

  3. Dosya izinlerinin düzenlenmesi

    Bu konuda oldukça önemli bir konudur. Web sitelerimize yapılan saldırı girişimlerinde ve dışarıdan erişimlerde güvenlik problemlerini engellemek için yazma izinlerini mutlaka düzenlemeniz gereklidir.

    Kurulum sonrası klasörlere 755 dosyalara ise 644 yazma izni vermelisiniz.

    777 yaptığınızda yazma izinlerinin açık olacağını unutmayın. Uploads klasörü 777 olmalıdır, onun dışında 777 yapacağınız pek bir dosya veya klasör yok.

  4. Dizinlerin listelenmesini engellemek

    Dizinlerin listelenmesini engellemek sitenizin güvenliği için önemlidir, dizinlerin listelenmesini engellemek için şu kodu .htaccess dosyası içerisine ekleyin:

    Options All -Indexes
    
  5. Hotlink koruması

    Web siteniz tanınıyorsa özgün olarak ürettiğiniz makale, resim vb'ler bazı insanlar tarafından kendi sitelerine kopyalanabiliyor. Saatlerce oluşturuduğunuz bu emekler dakikalar içerisinde başka sitelerde yayımlanabilir. Bu sitenize zarar vermekte birlikte sitenizin trafik akışınıda olumsuz etkiler.

    Bu tür emek hırsızları ile mücadele etmek için .htaccess dosyanıza şu kodları ekleyin:

    <IfModule mod_rewrite.c>
    RewriteEngine On 
    #?wolkan\\.ca - site adresiniz 
    RewriteCond %{HTTP_REFERER}!^http://(.+\\.)?wolkan\\.ca [NC] 
    RewriteCond %{HTTP_REFERER}!^$ 
    #/images/kopyalama.jpg - resim adresiniz 
    RetriteRule.*\\(jpeg|gif|bmp|png)4$ /images/kopyalama.jpg [L] 
    </IfModule>
    

    Bu işlemi yaptıktan sonra sizin sunucunuzda bulunan resimler yalnızca kendi sitenizde(wolkan.ca) görüntülenecektir. Websiteniz üzerinden alınan resimlere karşılık yasakladığınız kopyalama.jpg isimli resim dosyası gözükecektir.

WordPress Security 3

    Alınabilecek önlemler / Konular

  1. Config.php dosyasına erişimi engellemek

  2. Giriş sayfası bildirimleri devre dışı bırakmak

  3. .htaccess kullanarak spam botları engellemek

  4. Sunucu sürüm imzalarını kaldırmak

  5. WordPress sürümünü gizlemek

  6. Zararlı sorguları engellemek

  7. Robots.txt

  1. Config.php erişimi engellemek

    WordPress kurulumu sırasında veritabanı bilgilerinin bulunduğu wp-config.php dosyasına erişimi engellemeniz size + güvenlik kazandıracaktır. 644 yetkisi normalde yeterlidir.

    Fakat sunucu üzerinde yer alan diğer sitelerden shell vs yollarla dosyalarınıza erişilebilinir. .HTACCESS kullanarak bu erişimi tamamen ortadan kaldıracağız.

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

    Bu kodu .htacces dosyanıza eklediğinizde erişimi engellemiş olacaksınız.

    Sadece statik ip kullanıyorsanız ve siz girmek istiyorsanız da şu kodu eklemeniz yeterlidir:

    #WP-Config.php dosyasına sabit IPden erişmek 
    <files wp-config.php>
    order deny,allow 
    deny from all 
    allow from 111.11.11.11
    </files> 
    

    111.11.11.11 sizin ip adresinizi temsil ediyor, onun yerine sizin ip adresiniz neyse onu yazınız.

  2. Giriş sayfasındaki bildirimleri devre dışı bırakmak

    WordPress geliştiricilerinin, kullanıcılara sunduğu bazı imkanlar bazen aleyhimize kullanılabiliyor. Bunlardan biri de WordPress Admin paneline giriş yapılan ekranda ki hata uyarısı.

    "HATA: geçersiz kullanıcı adı. Parolanızı mı unuttunuz"

    .

    Bazı lamerler bu uyarıyı göz önünde bulundurararak yönetici ekranı girişinde kullanıcı adı ve parolalar üreterek giriş yapmaya çalışıyor. Bu durumdan kurtulmak için yapmanız gereken temanızın functions.php dosyasına şu kodları eklemek:

    add_filter('login_errors',create_function('$a',return null;"));  
    
  3. .htaccess kullanarak spam botları engellemek

    Spam botlarından kurtulmak için birçok eklenti mevcut, fakat biz sorunu kökten çözeceğiz. Sitemize zarar vermek isteyen ip adresini biliyorsak htaccess dosyamıza şunları yazıyoruz:

    <Limit GET POST>
    order allow,deny 
    allow from all 
    deny from zararlı ip adresi 
    </Limit> 
    

    Eğer birden fazla ip adresi canınızı sıkıyorsa şu kodları ekleyin:

    <Limit GET POST>
    order allow,deny 
    allow from all 
    deny from zararlı ip adresi 
    deny from zararlı ip adresi2 
    deny from zararlı ip adresi3 
    deny from zararlı ip adresi4 
    </Limit> 
    
  4. Sunucu sürüm imzalarını kaldırmak

    Genellikle Linux hostinglerde Apache bir hata oluştuğunda ya da bazı komutlar girildiğinde karşı tarafa Apache hata sayfası olarak versiyon numaralarını içeren bilgilendirme sayfaları sunar. Bu herhangi bir açık değildir; fakat yazılım sistemlerini sürekli takip eden ve açıklardan haberdar olan hackerlar, eski versiyonlarda yer alan açıkları kullanarak sitenize erişebilir.

    Şu ufak kodları .htaccess dosyanıza ekleyin ve önleminizi alın:

    #sunucu sürüm imzalarını kaldır 
    ServerSignature Off 
    
  5. WordPress sürümünü gizlemek

    Sitenizin sayfa kaynağından WordPress sürümünüzü görebilirsiniz. Yeni sürüm çıktıktan sonra hemen güncelleme işlemi yapmıyorsanız eski sürüm hacklerler tarafından fark edilip gerekli açıkları varsa sitenize zarar verilebilir.

    functions.php dosyasına şu kodları ekleyin ve kaydedin:

    Remove_action('wp_head','wp_generator'); 
    

    Kaydettikten sonra sayfa kaynağına baktığınızda mevcut wp sürümünü göremeyeceksiniz.

  6. Zararlı sorguları engellemek

    Block Bad Queries eklentisini hemen googleden bulup indirelim http://j.mp/zUeymn, wp-content/plugins klasörünüze girin ve eklentiyi buraya gönderin. Panelinizden etkinleştirdiğinizde artık web siteniz zararlı sorgulardan korunacaktır.

  7. Robots.txt

    Robots.txt dosyası gerek sitemiz için gerekse arama motorları için(SEO) oldukça önemlidir. Bu dosyayı kullanarak sitenizi ziyaret eden örümceklerin nereleri girip girmeyeceğini belirleyebilirsiniz. İdeal bir robots.txt dosyası oluşturacağız.

    İlk olarak site haritamızın bağlantı adresini robots.txt dosyasına ekleyelim. Eklentiyi kurduğunuzda otomatik olarak bu işlem gerçekleşebileceği gibi kod ekleyerekte yapabılırsınız. Site haritası için WordPress Plugin: http://j.mp/whRvay

     
    #Site haritası başlangıç 
    Sitemap:http://siteadi.com/sitemap.xml.gz 
    #Site haritası sonu
    

    Kodlarını ekleyerek site haritamızı ekledik, şimdi de dizinleri indexleme ayarlarını belirleyelim:

    User-agent:* 
    Disallow:/*.php$ 
    Disallow:/*.js$ 
    Disallow:/*.inc$ 
    Disallow:/*.css$ 
    Disallow:/*.wmv$ 
    Disallow:/*.tar$ 
    Disallow:/*.tgz$ 
    Disallow:/*.cgi$ 
    Disallow:/*.xhtml$ 
    Disallow:/*.wp-admin/ 
    Disallow:/*.wp-includes/ 
    

    Burada birkaç hususa değinelim; User-agent: Sitenizi ziyaret eden örümceğin tanımlama ismi. Disallow: indexlemeyi engellemek istediğiniz dizinleri belirtmek için kullanıyoruz. Allow: indexlemesine izin verdiğiniz dizinleri belirtmek için kullanıyoruz. User-agent: * dersek tüm botları kapsar, robots.txt hakkında daha detaylı bilgi için: http://j.mp/zp2uhI

    Yukarıdaki yer alan kodlara göz atacak olursak .php.css uzantılı dosyaları tüm kullanıcılarda engellemiş bulunuyoruz. Birkaç tane daha kod ekleyelim ve sonlandıralım:

    User-agent: Googlebot-Image 
    Allow:/ 
    User-agent: Mediapartners-Google 
    Allow:/ 
    User-agent: Adsbot-Google 
    Allow:/ 
    User-agent: Googlebot-mobile 
    Allow:/ 
    

    Eklemiş olduğumuz kodlar sayesinde özel tanımlanmış örümceklere de sitemizi tarama izni vermiş olduk.

Bu konuya benzer WordPress Güvenliği ile alakalı diğer makalelerimizi incelemenizi öneririm:
http://wolkanca.com.tr/wordpress-icin-bir-miktar-guvenlik-ipucu/
http://wolkanca.com.tr/eski/#wordpress+g%C3%BCvenlik

Soru görüş ve önerilerinizi yorum kısmına bırakabilirsiniz.

Kamil Sevi – m.a.c.k.r.u.l.z @ – http://sevikamil.blogspot.com
Wordpress Security – ekle,

WordPress kutsal kitap: http://codex.wordpress.org

Yazar: Konuk Yazar

Wolkanca sitesine Konuk Yazar olan, dışarıdan kendi yazılarını ekleyen bir kişi.

“WordPress Security – Güvenlik” için 1 yorum