Joomla! 93 milyondan fazla kez indirildi. Bu, web siteleri arasında ikinci en çok kullanılan CMS sistemi olmasını sağlar. 2016 yılında Sucuri tarafından yapılan araştırmaya göre, aynı zamanda en çok virüs bulaşan ikinci CMS sistemidir.
Ancak, bu bağlamda belirtmek gerekirse, Joomla! kurulumlarının çoğunun savunmasız olmasının sebebi, yanlış yapılandırma, kötü barındırma uygulamaları veya üçüncü taraf uzantılar'daki savunmasız kodlardan kaynaklanmaktadır.
Joomla! 'nın popüler bir CMS sistemi olması ve yoğun bir şekilde benimsenmesiyle, virüslü sitelerin sayısı yüksek görünmektedir. Aşağıdaki ipuçları Joomla! web sitesi güvenliğini arttırmanıza yardımcı olacaktır.
- Güçlü giriş bilgileri kullanın.
- Çok fazla uzantı yüklemeyin.
- Dosya ve dizin izinlerini kısıtlayın.
- Yönetici girişini koruyun.
- Bir web uygulaması güvenlik duvarı kullanın.
- SSL Sertifikası kullanın.
- Web sitenizi izleyin.
- Joomla! ve uzantıları güncel tutun.
- PHP yapılandırmanızı sertleştirin.
- Güvenilir bir hosting şirketi seçin.
NOT: Aşağıda listelediğimiz ipuçlarına herhangi bir güvenlik uzantısı eklemedik. Genel kural olarak, Joomla! 'ya yüklediğiniz her şey, güvenlik odaklı bir uzantı olsa bile, potansiyel olarak savunmasız kod olabilir.
1. Güçlü Giriş Bilgileri Kullanın
Web sitenizi kurduktan sonra, varsayılan yönetici kullanıcı adını ve şifresini saklamayın. Güçlü bir şifre oluşturduğunuzdan emin olun, böylece bir bilgisayar korsanı, en sık kullanılan şifrelerin bir listesini kullanma yolunu tahmin edemez. Uzun, karmaşık bir şifre oluşturun ve 1Password veya KeePass gibi bir şifre yöneticisinde güvenle saklayın.
2. Çok Fazla Uzantı Yüklemeyin
Joomla! çok güçlü bir platform çünkü birkaç tıklamayla işlevselliğini genişletmek çok kolay. Ama büyük güçle, büyük sorumluluk geliyor!.. Joomla! da çoğu hack olayı, üçüncü taraf uzantıların güncellenmemesi yada güncellemelerin takip edilmemesi sebebiyle gerçekleşir.
Değerlerini ve kararlılıklarını değerlendirmek için öncelikle uzantıları test edin. Joomla! sitenizi Joomlatools Vagrant kutusunu kullanarak yerel makinenizde test edebilirsiniz. Artık ihtiyacınız olmayan uzantıları kaldırdığınızdan emin olun. Web sitenizdeki diğer kodlar yalnızca potansiyel güvenlik açıklarının sayısını artırır.
Alternatif olarak, Joomlatools Platform'u kullanarak uygulamanızı oluşturabilirsiniz. Bu, Joomla! kod tabanı ve geliştirilmiş dizin yapısı ile modern bir Joomla! yığınıdır. Sadece ana varlıklar web sunucusu tarafından oluşturulurken, çekirdek PHP dosyaları ve uzantıları belge kökünüzün dışına taşınır. Son olarak, resmi sitedeki "Joomla! Zarar Görebilir Uzantılar Listesini" düzenli olarak gözden geçirin.
3. Dosya ve Dizin İzinlerini Kısıtlayın
Çok yaygın bir sorun, yanlış dosya izinleridir. Sadece yükleme ve önbellek dizinleri gibi, gerçekten gerekli olan dizinlere ve dosyalara yazma erişimi vermelisiniz. Uzantılar ve şablonlar yüklendikten sonra her şey kilitlenmelidir.
Tipik bir Joomla! kurulumunda izinler şöyle görünür:
- Dizinler 0755'e ayarlanmıştır: sadece dosyanın sahibi yazabilir, diğerleri okuyabilir ve çalıştırabilir.
- 0644 olarak ayarlanmış dosyalar: sadece sahibi yazabilir, geri kalanı okuyabilir.
- PHP 0444'e ayarlandı: kimse dosyaya yazamaz.
ve sonunda, asla 777 izinlerini kullanmayın. Dosyalarınızın herkes tarafından görüntülenmesine ve değiştirilmesine izin verir! Bu, paylaşımlı barındırma üzerindeyseniz özellikle önemlidir. Başka herhangi bir kullanıcı dosyalarınıza tam erişime sahip olacaktır.
4. Yönetici Girişini Koruyun
Güvenliği daha da iyileştirmek için yönetici giriş alanında bir şifre gerekebilir. Bunu, Joomla! belgelerinde açıklandığı gibi yönetici dizininde bir .htaccess dosyası oluşturarak el ile yapabilirsiniz.
5. Bir Web Uygulaması Güvenlik Duvarı Kullanın
Bir web uygulaması güvenlik duvarı (WAF), HTTP uygulamaları için bir filtre ve monitör görevi görür. ModSecurity gibi kendi sunucunuza kendiniz bir tane yükleyebilir veya bulut tabanlı bir çözüm kullanabilirsiniz. Bir web uygulaması güvenlik duvarı kullanmak size aşağıdaki özellikleri sağlayacaktır:
- Spambot koruması
- Kaba kuvvet saldırı koruması
- Arka kapı koruması
- DDoS koruması
- SQL enjeksiyon koruması
ve dahası..
6. SSL Sertifikası Kullanın
Ziyaretçileriniz ile web siteniz arasındaki iletişimi korumak için, SSL Sertifikası kullanarak şifrelemeniz gerekir. E-ticaret siteleri veya ödeme ağ geçitleri kullanmıyor olsanız bile, siz veya meslektaşlarınız web sitenizde oturum açtığınızda, kullanıcı adınızı ve şifrenizi koruyarak HTTPS üzerinde çalışıp bir SSL sertifikası bulundurmak site güvenliğinizi artırır. Aksi takdirde bu giriş bilgileri internet üzerinden düz metin olarak gönderilir.
Bir sertifikayı edinmek ve kurmak Let's Encrypt sayesinde ücretsiz ve kolay hale geldi. Yüklendikten sonra SSL Server Testini kullanarak SSL yapılandırmanızı test edebilir ve geliştirebilirsiniz.
7. Web Sitenizi İzleyin
Sitenizin hala çalışır durumda olduğunu nereden biliyorsunuz? Web sitenizin hacklenmediğinden emin olmak için sürekli olarak izlemeniz gerekir. Bir sorun olursa, bir e-posta veya SMS alacaksınız. Bu, updown.io ya da Pingdom gibi şeylere göz atmanıza yardımcı olabilecek birçok araç var.
8. Joomla! ve Uzantıları Güncel Tutun
Bir Joomla! web sitesini yönetmenin en önemli parçası düzenli güncellemeler uygulamaktır. Joomla! ve çoğu uzantı sürümü güvenlik düzeltmeleri içerir, bu yüzden onları atlamak iyi bir fikir değildir. Neyse ki, Joomla! 'nın yerleşik bir sürüm denetleyicisi var ve bir çekirdek güncelleme olduğunda sizi bilgilendirir. Birçok uzantı, yeni uzantı sürümleri hakkında sizi bilgilendirecek olan Joomla! Güncelleme Sistemini destekliyor.
Güncellemeden önce bir yedekleme yaptığınızdan emin olun!
9. PHP Yapılandırmanızı Sertleştirin
PHP, Joomla! 'nın yazıldığı dildir. Joomla! güvenliğinizi geliştirmek için php.ini dosyanızdaki aşağıdaki PHP yönergelerini değiştirmenizi öneririz:
- expose_php = 0 : PHP sürümlerini yanıt başlıklarınıza gizleyin, böylece saldırganlar sürümünüzde hangi bilinen güvenlik açıklarının gizlendiğini bilmezler.
- open_basedir = “/var/www/yoursite.com:/tmp/” :PHP'ye verilen dizinleri beyaz listeye eklemesini söyleyin. Bu, saldırganların dosya sisteminizin başka herhangi bir bölümüne erişmesini engeller. Geçici dosya yükleme dizini ve oturum saklama konumu da dahil olmak üzere PHP'nin de erişim ihtiyacı olan her dizini de eklemeniz gerektiğini unutmayın.
- display_errors = 0 : Hatalar, son kullanıcılara hiçbir zaman, saldırganlara kurulumunuz hakkında önemli bilgiler verebilecekleri için gösterilmemelidir.
- disable_functions = exec, passthru, shell_exec, system, proc_open, proc_close, proc_terminate, popen, curl_exec, curl_multi_exec, show_source, posix_kill, posix_getpwuid, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, posix_setuid, posix_uname, php_uname, syslog
Tehlikeli PHP yöntemlerini devre dışı bırakır, böylece saldırganlar sisteminizi tehlikeye atmak için bunları kullanamazlar.
Aşağıdaki seçenekleri devre dışı bırakmayı da düşünebilirsiniz:
- allow_url_fopen = 0
- allow_url_include = 0
Uzak içerik her zaman güvenilir olamayacağından PHP'nin uzak URL'leri açmasına izin verme.
- file_uploads = 0 Web sitenizde ihtiyacınız yoksa dosya yüklemelerini devre dışı bırakın.
10. Güvenilir Bir Hosting Şirketi seçin
Son olarak, aynı kurallar PHP kurulumunuz ve web sunucunuzda Joomla! ve uzantılarınız için de geçerlidir: PHP sürümünüzü güncel tuttuğunuzdan emin olun ya da bunu sizin için proaktif olarak yapan bir hosting şirketi seçin. Güncel olmayan PHP sürümlerinin listesini Burada bulabilirsiniz, bu listedeki sürümlerden herhangi birini çalıştırıyorsanız, Joomla! sitenizin riski büyük olabilir.
Kaynak: İncapsula.com - Steven Rombauts - Johan Janssens