12 Adımda Joomla Güvenliği

Joomla! ve eklentileri hakkındaki anlatımlar.
User avatar
memoc@n
Joomla! Enthusiast
Joomla! Enthusiast
Posts: 160
Joined: Wed Feb 28, 2007 8:00 am
Location: istanbul
Contact:

12 Adımda Joomla Güvenliği

Postby memoc@n » Sat May 09, 2009 4:47 pm

Joomla, çekirdek kod yapısı itibariyle gayet güvenli ve kullanıcının başını ağrıtmayan, gece yatağınızda yatarken aklınızın sitenizde kalmasına engel olacak ölçüde sağlam bir İçerik Yönetim Sistemi’dir. Standart bir cümle olacak olsa da kullanmak gerekiyor ki; “%100 güvenli bir sistem yoktur”, eğer %100 güvenli bir sistem arıyorsanız o zaman sunucunuzun internet bağlantısını kapatın ve fişini de çekin. Bu şekilde sisteminiz (Bilgisayar dahil) tam güvenli ve asla güvenlik riski barındırmayan bir sistem olacaktır.


Joomla’nın sağlam çekirdek kod yapısına rağmen yine de bir Joomla siteyi güvensiz hale getirmek elinizdedir. Genellikle sistemi güvensiz yapan unsurların başında 3. Parti yazılımlar dediğimiz, joomla’ya sonradan eklenen, bileşen, modül, plugin, hatta temalar geliyor. Hatalı kodlanabilen, içinde SQL Injection gibi yöntemlere açık, güvenlik açıkları barındırabilecek kodlar vasıtasıyla uzaktan erişim vasıtasıyla sunucu dizini dahil tüm sisteminize sızılabilir. http://www.milw0rm.com/search.php sitesinden de joomla ile ilgili arama yaptığınızda karşınıza gelecek olan sonuçlarda da bunu görmek mümkün. Genel anlamda açıkların hemen hemen tümü 3. Parti eklentilerinin yol açtığı güvenlik zafiyetlerinden kaynaklanmaktadır.


Tabi tüm bunlara ek olarak, çok nadir de olsa joomla’nın standart yapısı dahilinde küçük açıklarda olabiliyor ki bunlar çok kısa zamanda yeni sürüm yamaları ile gideriliyor. Sunucu güvenliğini de unutmadan belirtmek gerekir ki zaten bu konuda yazılmış başka makalelerim bulunuyor.
Tüm bu açıklamaların ışığında, joomla sitelerimizi nasıl olur da daha güvenli hale getirir veya güvenli bir şekilde işlemesini sağlayabiliriz? Konusuna yardımcı olabilecek önerilerimizi açıklamaya başlayalım.


1 – İşe ilk olarak, joomla kurulumlarında standart olarak yazılı gelen ve kurulumla beraber joomla’nın veritabanı tablo isimlerinin önüne gelen “Tablo Ön Eki” (table prefix) düzenlemesini yapacağız. Bazı joomlacılar ilk kurulumda standart olarak gelen “jos_” ön ekini değiştirirler, bunun yerine tahmin edilmesi daha zor olan bir kelime girmek suretiyle öncelikle bu noktada önlem alırlar. Eğer sizler bu tablo ön ekini değiştirmemiş ve joomlanızı varsayılan şekilde kurmuşsanız o zaman birkaç adımda bu tablo ön eki olan “jos_” ön ekini farklı bir kelime ile (örneğin degisim_) değiştirelim.

a) Joomlamızın “configuration.php” dosyasını ftp den çağırıp içinde yer alan tablo ön eki “jos_” ifadesini bulalım ve dilediğimiz şekilde düzenleyerek (değişikliği yaparken en sona ” _” işaretini unutmayın) yine ftp den bulunduğu joomla ana dizinimize atalım.
b) Ardından, veritabanımıza girerek, veritabanımızın yedeğini alalım, daha sonra bu yedeği wordpad programı veya her hangi bir gelişmiş yazı editörü ile düzenleyeceğiz. Configuration.php dosyasındaki veritabanı tablo ön ekini hangi isimde vermişsek, elimizdeki veritabanı yedeğimizde “tümünü değiştir” (replacement) yöntemiyle, üst kutucuğa “jos_” alt kutucuğa da yeni belirlediğimiz tablo ön ekini yazarak (örnek: degisim_) tümünü değiştirelim. Veritabanı yedeğimizi bu şekilde düzenledikten sonra yine veritabanımıza girerek bu yeni yedek dosyamızı içe aktaralım. Eski ön ekli tablolarımızı işlemlerimiz doğru ve hatasız sonuçlanınca silebiliriz, güvenlik için şimdilik dursun.
Böylelikle joomla’mızın güvenliği için ilk önlemimizi aldık, şimdi bir diğer güvenlik önerimize geçebiliriz.


2 - Bu önerimiz de, joomlamızın sürüm bilgisi ve sitemizde yüklü olan bileşen ve modüllerimizin sürüm bilgilerini düzenlemek olacak. Malum, joomla’nın açıkları aranırken genellikle (hatta daima diyebiliriz) joomla ve kullanılan eklentilerin sürüm bilgilerine göre aramalar yapılır ve açığı olan sürümlere sahip eklenti ve joomla’yı içeren siteler daha kolay bulunur. İşte biz bu durumda öncelikle joomlamızın sürüm bilgisini kaldıracağız.
a) Öncelikle kullandığımız temanın “head” etiketinden hemen sonra “<?php $this->setGenerator(’burasını ya boş bırakın ya da herhangi bir şey yazın’); ?>” kodunu ekliyoruz, bu kod siteyi oluşturan scripti tanımlayan bir koddur. Yahut, /libraries/joomla/document/html/renderer/head.php dizinindeki “head.php” dosyasını bir düzenleme programıyla açıp “$strHtml .= $tab.’<meta name=”generator” content=”‘.$document->getGenerator().’” />’.$lnEnd;” kodunu buluyoruz. Bu kodu ya tamamen siliyoruz, yahut bu kodun başına yorum etiketi ekleyerek etkisizleştiriyoruz.
b) Ardından tüm yüklü bileşen ve modüllerimizi ftp den bilgisayarımıza çekerek bu eklentilerde yer alan sürüm bilgisi veya bileşen adı olarak copyright bilgilerini bulup kaldırıyoruz. TotalCommander vb… programlarla bu işlem (tüm dizinleri birden arama) çok daha kolay yapılabiliyor.


3 – Bilindiği gibi, joomla yönetim panelimize site adresimizin sonuna bir slash, (/) administrator yazdığımızda herkes yönetim paneline giriş sayfasına erişebiliyor. Tabi bu web klasörünü sunucu panelinden şifreleyebiliriz ancak bu işlemi daha güzel yapan bir ekleti ile, bir nevi bu klasörü gizleyerek/adını değiştirerek daha etkili bir güvenlik sağlayabiliriz. Bileşenimizin adı JSecure, vazifesi de yönetim paneli yolunu gizlemek olarak özetlenebilir. Yani http://www.siteniz.com/administrator olan yönetim paneli giriş yolunu http://www.siteniz.com/administrator?scd23456cedp haline getirerek tahmin edilmesi en zor şekle getiriyor. Bu bileşeni http://extensions.joomla.org/extensions/5809/details adresinden indirebilirsiniz.


4 – Sitemizi arama motorlarına uygun hale getirmenin ilk adımı olan “SEF” diye nitelenen özelliği, joomla yönetim paneli genel ayarlardan aktif hale getirelim, bu şekilde hem site URL’leri daha düzgün hem de asıl linkleri yüzeysel de olsa gizlemiş olacağız. Tabi SEF için ücretsiz olan “sh404” veya “artio joomsef” gibi bileşenler de kullanarak SEO için de farklı bir adım atmış olabiliriz.


5 – Genellikle güvenlik açığı arama faaliyetleri, joomlamızın ayar dosyası olan configuration.php üzerinden yapılır, bu sebeple ayar dosyamızın güvenliğine daha çok dikkat etmeliyiz. Bunun için configuration.php dosyamızın adını değiştiren buradaki uygulamayı sitemize kurabileceğimiz gibi, dosya izinlerini güzel bir biçimde ayarlayarak da bu güvenliği sağlayabiliriz. Doğru ve etkili dosya/klasör izinleri (permission, chmod) konusuna az ileride değineceğim.


6 – Joomlamızı ilk defa kurduğumuzda yönetici adı olarak “admin” atandığını biliyoruz, eğer bu kullanıcı adını değiştirmemişsek kendimize farklı bir isim belirleyerek “admin” kullanıcı adını kullanmayalım.


7 – Joomla ana dizininde yer alan “htaccess.txt” isimli dosyanın adını zaten az yukarıda SEF ile ilgili yaptığımız işlemlerin geçerliolabilmesi için “.htaccess” olarak adını değiştirmiş olmamız lazım. Dolayısıyla bu dosyada “exploit” denen zararlılara karşı koyacak olan bir kod kümesi yer alır o da örenk olarak aşağıdaki gibidir.

Code: Select all

########## Begin - Rewrite rules to block out some common exploits
    #
    # Block out any script trying to set a mosConfig value through the URL
    RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [OR]
    # Block out any script trying to base64_encode crap to send via URL
    RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]
    # Block out any script that includes a < script> tag in URL
    RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
    # Block out any script trying to set a PHP GLOBALS variable via URL
    RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
    # Block out any script trying to modify a _REQUEST variable via URL
    RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) [OR]
    # Block out any script that tries to set CONFIG_EXT (com_extcal2 issue)
    RewriteCond %{QUERY_STRING} CONFIG_EXT([|%20|%5B).*= [NC,OR]
    # Block out any script that tries to set sbp or sb_authorname via URL (simpleboard)
    RewriteCond %{QUERY_STRING} sbp(=|%20|%3D) [OR]
    RewriteCond %{QUERY_STRING} sb_authorname(=|%20|%3D)
    # Send all blocked request to homepage with 403 Forbidden error!
    RewriteRule ^(.*)$ index.php [F,L]
    #
    ########## End - Rewrite rules to block out some common exploits


Bu kod exploit saldırılarını engelleyecek olan kodumuzdur, eğer bu kod kümesi yoksa aynen alıp kendi .htaccess dosyanıza ekleyebilirsiniz.


8 – Joomla ana dizinimizde yer alan dosyaların ve klasörlerin daima önerilen “chmod” (dosya klasör izni) ayarlarında olması gereklidir, buna göre tüm joomla dosya ve klasörleri aşağıdaki şekilde düzenlenmeli.
Dosya lar – 644
Klasörler – 755
Configuration.php dosyası – 666 (genel ayarlar kısmında sorun olmuyorsa bu değer 444 olarak ayarlanırsa daha iyi olacaktır)
Şeklinde ayarlamamız en doğru dosya klasör izinleri olacaktır.


9 – Joomla resmi sitesini sıklıkla takip ederek, yahut abonelik sistemini kullanarak en son haberlere abone olmalıyız ki yeni sürüm çıktığında hemen joomla sürümümüzü yükseltmeliyiz. Daima en son sürüm joomla kullanmaya dikkat edin.


10 – Sitenizde kullandığınız tüm eklentileri bir liste halinde yazılı olarak tutun, karşılarında da resmi sitesinin adresleri bulunsun ve mümkün olan makul aralıklarla bu eklentilerin güncel sürümlerinin çıkıp çıkmadıklarına dikkat edin.


11 – Aslında web sitelerinizin güvenliği bilgisayarınızdan başlar bu nedenle daima güncel bir antivirüs yazılımınız olsun ve şüpheli sitelerden uzak durun, tanımadığınız epostalardaki linklere tıklamayın. Günümüzde iframe virüsü denen virüsler belli siteleri ziyaret etmeniz nedeniyle kullandığınız tarayıcının geçici depolama klasörüne veya sisteminizin “temp” klasörüne yerleşerek buradan da ftp programınız vasıtasıyla tüm site dosyalarına yayılabilir.


12 – Buradaki anlatımları uygulamadan önce mutlaka sitenizin ve veritabanının bir yedeğini alın, ayrıca genel olarak makul aralıklarla bu işlemi tekrarlayın. Bilgisayarınızda bir yedekleme klasörü oluşturup aldığınız yedekleri bu klasörde düzenli bir şekilde tutun. Bu yedekler içinde en önemlilerinden bir tanesi de kullandığınız tema olduğundan, en azından tüm dizinin yedeğini almaktan üşendiğiniz durumda en son ve sağlam bir tema yedeğiniz olsun.
Tüm anlatılanların ışığında, uygulanması ile beraber çok daha sağlam bir sisteme sahip olacağınız gibi içiniz 2 kere rahat olmuş olacak. Huzurlu ve rahat çalışmalar dileklerimle.


Kaynak: mmcn.org - 12 Adımda Joomla Güvenliği - 1 / 12 Adımda Joomla Güvenliği - 2
Last edited by memoc@n on Sun May 10, 2009 4:24 pm, edited 2 times in total.
http://www.mmcn.org Kişisel WebBlog
http://www.elmatrend.com iPhone, iPad, iOS, Apple Blogu

Arfmin
Joomla! Intern
Joomla! Intern
Posts: 74
Joined: Tue Jul 10, 2007 8:48 am
Contact:

Re: 12 Adımda Joomla Güvenliği

Postby Arfmin » Sat May 09, 2009 7:16 pm

Elinize sağlık.
Joomla Destek ve Güvenlik :http://jomydestek.[URL banned].com

User avatar
Pentacle
Joomla! Enthusiast
Joomla! Enthusiast
Posts: 165
Joined: Wed Oct 25, 2006 12:34 pm
Location: Turkey

Re: 12 Adımda Joomla Güvenliği

Postby Pentacle » Sun May 10, 2009 3:51 pm

Configuration.php dosyası – 666


444 mu diyecektin?
My Joomla! 1.5 extensions - http://ercan.us
Progress is made by lazy men looking for easier ways to do things.

User avatar
memoc@n
Joomla! Enthusiast
Joomla! Enthusiast
Posts: 160
Joined: Wed Feb 28, 2007 8:00 am
Location: istanbul
Contact:

Re: 12 Adımda Joomla Güvenliği

Postby memoc@n » Sun May 10, 2009 4:21 pm

:) yoo ercan abi yeterlidir bu ama senin için 444 de olsun daha sağlam olsun (her sunucu da 444 ile yönetim panelinden işlem yapılamaya biliniyor genel ayarlardan) sağolasın bu arada düzenledim
http://www.mmcn.org Kişisel WebBlog
http://www.elmatrend.com iPhone, iPad, iOS, Apple Blogu

pitta
Joomla! Intern
Joomla! Intern
Posts: 56
Joined: Mon Oct 16, 2006 5:04 am

Re: 12 Adımda Joomla Güvenliği

Postby pitta » Mon May 18, 2009 11:42 am

11. maddede ftp aracılığı ile siteye dosya yüklendiği zaman bilgisayarda virüs varsa siteye de bulaşma ihtimali var dediniz. Ne harici fp programı ne de joomla ftp katmanını kullanıp sadece yönetim panelede dolaşıp verileri yayınlamak yada devre dışı bırakmak vb virüs bulaşmasına neden olur mu_

Arfmin
Joomla! Intern
Joomla! Intern
Posts: 74
Joined: Tue Jul 10, 2007 8:48 am
Contact:

Re: 12 Adımda Joomla Güvenliği

Postby Arfmin » Thu May 21, 2009 4:20 pm

Yönetim panelinden siteye virüs bulaştığı rapor edilmemiştir.

Bilgisayarınızda iyi bir antivirüs programı kullanıyorsanız FTP veya herhangi bir yolla sitenize virüs bulaşması % 99 mümkün değildir.

Geçenlerde bir güvenlik eklentisini denemek amacıya içinde zararlı iframe kodları bulunan dosyayı FTP ile siteme yüklemek istedim ancak Kaspersky nedeniyle mümkün olmadı.
Joomla Destek ve Güvenlik :http://jomydestek.[URL banned].com

pitta
Joomla! Intern
Joomla! Intern
Posts: 56
Joined: Mon Oct 16, 2006 5:04 am

Re: 12 Adımda Joomla Güvenliği

Postby pitta » Fri May 22, 2009 1:47 pm

internet kafe vb otamlardan yönetim paneline giriş yapmak sorun olmayacak anlamına geliyor bu dediğiniz teşekkürler

User avatar
memoc@n
Joomla! Enthusiast
Joomla! Enthusiast
Posts: 160
Joined: Wed Feb 28, 2007 8:00 am
Location: istanbul
Contact:

Re: 12 Adımda Joomla Güvenliği

Postby memoc@n » Mon Jun 08, 2009 1:38 pm

pitta wrote:11. maddede ftp aracılığı ile siteye dosya yüklendiği zaman bilgisayarda virüs varsa siteye de bulaşma ihtimali var dediniz. Ne harici fp programı ne de joomla ftp katmanını kullanıp sadece yönetim panelede dolaşıp verileri yayınlamak yada devre dışı bırakmak vb virüs bulaşmasına neden olur mu_

Muhtemelen bulaşmayacaktır, ftp programı vasıtasıyla bulaştığını düşünüyorum ama bir infecte olmuş dosyada bu durum olursa o zaman yine bulaşacaktır haliyle. Bu durumda b.sayar temizlenene kadar işlemleri sunucu panelinden yapmakta yarar var
http://www.mmcn.org Kişisel WebBlog
http://www.elmatrend.com iPhone, iPad, iOS, Apple Blogu

gtr91
Joomla! Enthusiast
Joomla! Enthusiast
Posts: 144
Joined: Sat May 15, 2010 7:16 pm
Contact:

Re: 12 Adımda Joomla Güvenliği

Postby gtr91 » Mon May 31, 2010 1:00 pm

3. adımdaki eklenti JSecure ücretli :( bunun ücretsiz muadili yok mu?

celebismail
Joomla! Apprentice
Joomla! Apprentice
Posts: 15
Joined: Sat Jan 22, 2011 8:35 am
Location: kayseri
Contact:

Re: 12 Adımda Joomla Güvenliği

Postby celebismail » Thu Jun 16, 2011 8:24 am

Tabiki barındığımız serverıda iyi seçmemiz gerekmektedir , anlatım için teşekkürler hocam
Please read the Forum rules regarding signatures: viewtopic.php?t=65

User avatar
fanemon
Joomla! Apprentice
Joomla! Apprentice
Posts: 12
Joined: Fri May 07, 2010 11:19 am
Location: Turkiye
Contact:

Re: 12 Adımda Joomla Güvenliği

Postby fanemon » Fri Dec 30, 2011 11:30 pm

emeğine sağlık kardeşim
bunlar işin püf noktası gercekten herkes joomla indirip kuruyor ama bu ince ayrıntılara dikkat etmeyenler kısa sürede hack ile ilgili şikayetlerde bulunuyorlar
tedbiri elden bırakmamak lazım...
http://www.okeyseli.net Ücretsiz Okey Oyunu Sitesi

kompozitpanel
Joomla! Apprentice
Joomla! Apprentice
Posts: 9
Joined: Tue Feb 07, 2012 12:20 pm
Location: istanbul
Contact:

Re: 12 Adımda Joomla Güvenliği

Postby kompozitpanel » Tue Feb 07, 2012 12:44 pm

admin kullanici adini kullanarak bruteforce ile patlatildigimi bilirim onemli noktalardan biri bence

trq
Joomla! Apprentice
Joomla! Apprentice
Posts: 49
Joined: Mon Aug 22, 2011 8:29 pm
Contact:

Re: 12 Adımda Joomla Güvenliği

Postby trq » Mon Apr 23, 2012 5:48 pm

emeğine sağlık hocam
tahta palet ve ihracat sandıkları http://www.etikapalet.com

cranbaries
Joomla! Intern
Joomla! Intern
Posts: 56
Joined: Mon Jan 28, 2013 7:25 pm
Location: istanbul
Contact:

Re: 12 Adımda Joomla Güvenliği

Postby cranbaries » Wed May 01, 2013 1:38 am

Niqo0 wrote:Güzel de bunlar sadece bir kaçı %60 güvenli yapar.

Merhaba Zaten hiç bir site %100 güvenli değildir :)

34evdeneve
Joomla! Fledgling
Joomla! Fledgling
Posts: 2
Joined: Sat May 04, 2013 7:43 pm
Location: istanbul
Contact:

Re: 12 Adımda Joomla Güvenliği

Postby 34evdeneve » Sat May 04, 2013 7:47 pm

emeğiniz dert görmesin sağolun

mursalovsahin
Joomla! Fledgling
Joomla! Fledgling
Posts: 1
Joined: Sun Jun 09, 2013 12:37 pm
Contact:

Re: 12 Adımda Joomla Güvenliği

Postby mursalovsahin » Sun Jun 09, 2013 12:51 pm

Teşekkürler


Return to “Dersler”

Who is online

Users browsing this forum: No registered users and 1 guest