Elma Doktoru

iPhone, iPod iPad Teknik Servisi

Sal22052012

Son Güncelleme18:39:01

Geri Web Joomla Haberleri

Joomla!

Açıklar ve Önlemler

Geçtiğimiz günlerde Joomla içerik yönetim sisteminde üye kayıt ve üye parola sıfırlama özelliğinde bulunan bir açık sayesinde bir çok joomla sitesi sıkıntılar yaşarken kullanıcıların aklına gelen acaba Joomla'ya ne kadar güvenebiliriz sorusu geldi. Çünkü büyük emekler sonucu yapılan sitelerin bazı kendini bilmez insanlarca talan edilmesi hiç şüphesiz hoş bir durum değil ancak, yinede bu kadar yaygın olarak kullanılan sistemin yapısının hackerlar tarafından aylarca açıklarının arandığını ve aslında sitelerinizin hemen her gün en az 3-4 saldırı aldıkları halde yinede bu girişimleri joomla çekirdek kod yapısının püskürtüğünü biliyormusunuz?

Bunu anlamanın yolu sunucunuzdaki ziyaretçi ve diğer kayıt bilgilerine baktığınızda farkedeceksiniz, bir çok yabancı ülkeden girişler içeren ve değişik açıklar arayıp sitelerinize exploit kodları vasıtasıyla ulaşmaya çalıştıklarını görebilirsiniz. Tabiki bizler de biliyoz ki hiç bir sistem %100 güvenli değildir, bu anlayışla düşünülünce yinede Joomla'nın en güvenilir açık kaynak kod yazılımları arasında olduğunu bilmek içimizi rahatlatıyor. Eskiden, özellikle Mambo'dan Joomla içerik yönetim sisteminin doğmasından hemen sonra, joomla sitelerimiz neredeyse her hafta bazen günde 2-3 kez hacklenir ve siztelerimizi devamlı düzenlemek zorunda kalırdık, ama o zaman bile yapılabilecek en başarılı hack saldırısı siteye index basmaktan ibaretti yani ne veritabanına sızabilmişler ne de içeriklere zarar verebilmişlerdi (tabi burada yazılabilirlik ayarları düzgün yapılanlardan bahsediyoruz) tek yaptıkları web sitemizin indexinini değiştirmekten ibaretti, bu değişen dosanın yerine yenisini attığımızda sorun da ortadan kalkıyordu ve en geç bir gün sonra açık hakkında güncelleme geliyordu.

Aradan geçen bunca zaman içinde çok uzun bir süre bu tipte büyük bir açık joomlada çıkmaması aslında bu sistemin sağlamlığının en güzel delilidir. Bu kadar yaygın olarak kullanılan bir sistemin yine bu kadar uzun süre sağlam kalması, hemde çok kaliteli hacker diyebileceğimiz bir çok insanın bu ve benzeri sistemlerle uğraşmasına rağmen... olduğu düşünülürse o zaman doğru bir açıdan bakmış oluruz. Joomla her geçen gün tam anlamıyla profesyonel bir yapı olma konusunda çok büyük adımlar atıyor ve kullanıcı-coder-destek verenler her geçen gün artarak devam ediyor, bu sebeple böyle bir sistemle tanışmış olduğunuz için kendinizi çok şanslı saymalısınız, hatta bir gün Joomla dışında bir sistem kullanmanızı tavsiye edebiliriz...  zaman belkide bu sistemin nasıl bir sistem olduğunu o zaman çok daha iyi anlamış olacaksınız.

Dosya ve Klasör İzinleri


chmod-permission-izinler-sahiplikJoomla veya benzeri CMS sistemlerle tanışan kullanıcıların hemen başında değil de kurulum ve kullanım aşamasında tanıştıkları kelimelerdir, chmod, permission, dosya klasör izinleri... Peki bu kelimeler nedir?, ne değildir? diye soracak olursak o zaman bu yazımızla bu kelimeleri ve arkasında yatan işlevlerinin neler olduğuna hep beraber bir bakalım. Chmod kelimesi aslında bir işlevin kısaltılmış halidir ve genellikle bu terim linux hostlarla beraber anılır ve açılımı da "Change Mode" buna mod değişimi, durum değişimi de diyebiliriz. Bu değişiklik sunucu üzerindeki dosyalarımıza ve klasörlerimize erişim haklarını düzenlemektebizlere yardımcı olmaktadır. bir dosya ve klasöre erişim genel olarak üç ana unsurdan müteşekkildir, bunlar;

  • Write - Yazma (w)
  • Read - Okuma (r)
  • Execute - Uygulama (x)

Yazma izni, ilgili dosya ve klasöre erişimde kullanıcıya bu dosya veya klasöre yazma, değiştirme vb.. hakları verir. Okuma İzni, yine kullanıcıya bu dosyadan veya klasörden okuma hakkını verir Çalıştırma izni, ilgili dosyanın yine ilgili kullanıcı tarafından çalıştırılması/gösterilmesi iznini düzenler. Buraya kadar anlattığımız bu izin tiplerine ek olarak bu izinlerden yararlanacak olan kullanıcı grupları vardır ki bu gruplar da genel olarak şöyledirler;

  • Owner - Dosya Sahibi (u)
  • Group - Kullanıcı Grubu (g)
  • Other - Diğer Kullanıcılar (o)

Yine bu kullanıcı gruplarına ek olarak 0'dan 7'ye olmak üzere sayılarımız ve bu sayılara göre ilgili dosya ve klasörlerimizde kullandığımız kullanıcı izinleri vardır. İzinler ayarlanırken hemen yukarıdaki gruba göre dizilirler ve dolayısıyla üç basamaktan oluşurlar. Yine bu üç basamak yukarıdaki sıraya göre dizilirler. Örneğin 777 rakamı bize aslında şu değeri vermektedir 7(owner)7(group)7(other) şimdi isterseniz bu rakamsal değerlerin anlamlarının neler olduğuna bakarak bu örneklendirmedeki uygulamayı ve amacınıda rahatça kavraya bilelim.

  • 0 - Tümünü reddeder.
  • 1 - Direk dosya adreslerini bilmeksizin aslında erişimi kapatmakta kullanılır ve uygulama işlemini kabul etme anlamına gelir
  • 2 - Yanlızca yazma işlemini kabul etmek anlamındadır.
  • 3 - Hem uygulama, hem de yazma işlemini kabul eder.
  • 4 - Sadece okuma işlemini kabul etmek için
  • 5 - Okuma ve uygulama işlemini aynı anda kabul etmek için
  • 6 - Okuma ve yazma işlemini aynı anda kabul etmek için.
  • 7 - Ve en sona sakladığımız sihirli rakam, bu rakam ise tümerişim haklarını kullanıcılara tanımakta kullanılan değerdir.

Şimdi bu son paragraf ile beraber bir üzerindeki paragraf olan grup izinlerini birleştirdiğimizde konu çok daha iyi anlaşılacaktır. Örnek olarak bir dosya ve klasöre 777 değeri verildiğinde bu tam erişim hakkı olup gerek dosya sahibinin, gerek kullanıcı grubunun ve gerekse de diğer gruba okuma, yazma, çalıştırma hakkının verildiği anlamına gelir ki aslında bu güvenlik üzerine yazdığımız makalemizde anlattığımız şekle ters olabilecek bir uygulama şeklidir. Hatta burada kafalarımızda karışabilir, şöyle ki, Joomla içerik yönetim sisteminin sunucuya kurulabilmesi hatta çalışabilmesi için gerekli olan ve bazı dosyaların yazılabilir olması gerekir. İşte bu anda biraz kafa karışıklığı yaşanabilir, çünkü güvenlikle ilgili makalemizde Joomlanın dosyalarının tümünün 644 ve klasörlerinin de değerinin 755 olması gerektiğini tavsiye ediyorduk.

Oysa ki şimdide bazı dosyaların yazılabilir yani 777 olmasının gerektiğini belirtiyoruz. Bu birbirine tezat bir durum değil mi diye düşünen kullanıcılar olacaktır. Bu ise doğru ve yerinde bir soru olacaktır, işte bu noktada Joomla uyumlu hosting cümlesini çokça duymaya başlarsınız, nedir bu joomla uyumlu hosting. Aslında tüm php ve mysql destekli sunuculara (Joomla 1.5 ile buna en az php4 eklenmiştir) joomlanızı kurabilirsiniz ve bu özellikleri taşıyan sunucularda joomla içerik yönetim sistemi kurulup çalışabilir ancak işlev ve kullanım rahatlığı açısından tavsiye olunan bazı özellikler vardır ki bu özelliklerin başında Linux tabanlı sunucularda Cpanel hosting paneli kullanan sunucular gelir. Bu noktada makalemizle bu konuyu özdeşleştirecek olursak, bu önerilen sunucu üzerinde Joomla kurulum dosyalarını değeri 644 klasörleri de standart olarak 755 tir ve yazılabilirlik sorunu olmaksızın rahatlıkla bu tip sunucularda çalışılabilir. (sunucu ayarlarında bir sorun yoksa veya gerekli düzenlemeler sunucuda doğru yapılmışsa bu genellikle böyledir) Ancak aynı sözü windows tabanlı ve plesk panelli bir sunucu için söyleyemeyiz, çünkü bu tip sunucularda (en azından çoğunda) bir dosya yazılabilir olması için (site sahibi, host sahibi içinde geçerli) mutlak suretle bu izinlerin 777 olarak ayarlanması demektir ki bu ise güvenlik makalesinde belirtiğimiz uygulamamıza ters bir durum arzediyor.

Bu nedenle joomla vb... sistemlerle tanışan kullanıcılar ücretli bir host almak istediklerinde bu özellikleri göz önünde bulundururak bu satın alma işlemini gerçekleştirecekler. Konumuzun fazla dışına çıkmadan yine izinler konumuza dönecek olursak, bu izinleri düzenlemek için gereksinim duyduğumuzda yapmamız gereken sunucu panelimizdeki dosya yöneticisi kullanmaktır. Genellikle yeni jenerasyon panellerde türkçe desteği olduğundan bu işlemi dosya yöneticisinden izinler kelimesini aramak suretiyle düzenleyebiliriz. Ya da en basit yol olan bir ftp programı vasıtasıylabu tip ayarlamaları daha hızlı ve basit bir şekilde yapabiliriz. Genelde bu fonksiyona erişim tüm ftpprogramlarında aynı olup, izinlerini değiştireceğimiz dosya veya klasöre sağ tıklayarak özellikler kısmından yada CHMOD yazısına tıklayarak yukarıda önerilen şekillerde ve işlevinize uygun şekilde bu izinleri rahatlıkla ayarlayabilirsiniz. Aşağıdaki resimlerde bu ayarlamayı CuteFTP ile yapıldığı haliyle görebilirsiniz.

chmod ayar1 chmod ayar2

Joomla Siteniz Hacklendiyse

Öncelikle 100% güvenli hiç bir sistemin olmadığını vurgulayarak hacklenen joomlanız için neler yapabileceğimize bakalım. Genellikle joomlada yaşanan güvenlik zaafiyetlerini bulup kullanan lamerler sitenizin indexini değiştirip kendi indexlerini koyarlar anlatımımızda bunu düzeltmek adına neler yapabiliriz konusu ağırlıklı olarak diğer güvenlik önlemleri ele alınacaktır

  • Öncelikle administrator girişiniz hala duruyor şifrelerde sorun yoksa yönetim paneline girin ve şifrenizi değiştirin ardından siteyi geçici olarak kullanıma kapatın. Bu ayar genel ayarlarda mevcuttur.
  • Eğer şifreleriniz değiştirilmişse o zaman phpmyadminden veritabanınıza girin ve jos_user tablosunu bulun hemen yanında bir kalem işareti vardır ona tıklayın ve açılan alanda siteye kayıtlı olan tüm kullanıcıların bilgileri yer alır yöneticiye ait kullanıcı adını bulup yine yanındaki kalem işaretine tıklayın. Burada parola kısmı sizin şifrenizi barındırır ve md5 formatında gözükür parolanız, sizde buraya yeni şifrenizi md5 olarak yazmalısınız. Md5 şifresi almak için bu sitede generate an md5 hash kısmını işretleyerek kutucuğa (örneğin 123456) olmasını istediğiniz şifreyi girin ve hemen altındaki butona tıklayarak girdiğiniz şifrenin md5'ini alın, hemen alt kısımda Result: e10adc3949ba59abbe56e057f20f883e yazar, işte bu sizin şifrenizin md5 halidir şimdi vertabanına geri dönüp parola kısmına bu aldığınız md5 halindeki şifrenizi yapıştırıp kaydedin artık belirlediğiniz şifre geçerli şifreniz oldu.
  • Daha sonra ftp den sunucu dizinindeki joomla dosyalarına bakın burada index.html veya yabancı bir dosya varsa bunu silin, temanızın ve joomlanın standart index.php dosyalarını yenisiyle değiştirin eğer ağır bir durum değilse sadece index atılmış olabilir.
  • Sitenize baktığınızda indexiniz düzelmişse sorun yok eğer sorun devam ediyorsa configuration.php dosyanızı açıp bakın burada bir değişiklik yada eklenmiş bir yönlendirme kodu varmı diye bakın.
  • Genellikle sitenize girenler eğer imkan bulabilirlerse daha sonra tekrar sitenize sızabilmek için sunucu dizinine exploit tarzı virusler yerleştirmiş olabilirler ki bu çok sık rastlanılan bir durumdur, ve bu exploit zararlılarını güncel tüm antivirler yakalar mümkünse joomlanın kurulu olduğu tüm dosya ve klasörleri b.sayarınıza çekip virus taraması yapın sonra tekrar yerine atabilirsiniz.
  • Eğer sorun devam ederse elinizdeki eski yedeği geri yükleyin.
  • Bu işlemlerden sonra sitenizi yayına sokablirsiniz.

Hacklenmemek İçin Neler Yapabiliriz?

  • Kullandığınız joomla sürümünün güncelliğini kontrol edin ve yeni bir yükseltme sürümü varsa mutlaka sitenizi güncelleyin, genelde lamerler site açıklarını Google yardımıyla arar ve açığı olan sürüm yada eklentileri içeren siteleri bu şekilde arar ve bulurlar.
  • Kullandığınız tüm eklentilerin yeni sürümlerinin çıkıp çıkmadığını kontrol ederek daima güncel sürümleri kullanın warez tema ve eklentileri kullanmayın, çünkü içlerine exploit kodları yada yönlendirme kodları koymuş olabilirler.
  • Joomlanın standart dosyaları içinde htaccess.txt isimli bir dosya yer alır bu dosyanın adını .htaccess olarak değiştirin ve aktif olmaını sağlayın bu dosyanın içinde exploitlere engel olacak kodlar bulunur.
  • Joomla kurulumundan sonra kullanıcı adınızı ve şifrenizi yönetim panelinden değiştirin ve güvenilir şifreler oluşturun kimseyle paylaşmayın.
  • Kullandığınız sunucu panelinde klasör şifreleme özelliği vardır bu özelliği kullanarak administrator klasörünü şifreleyin.
  • Bilgisayarınızdan bulaşabilecek iframe virüslerine dikkat edin bunların bulaşmaması için şüpheli siteleri ziyaret etmeyin ve bir güncel antivirus programı kullanın.
  • Register Globals değeri sunucunuzda kapalı konumda olmalı
  • Boş bir txt dosyası açarak aşağıdaki koarı bu txt dosyasına ekleyip farklı kaydet seçeneğinden bu dosyanın ismini php.ini olarak isimlendirin ve joomlanızın ana dizinine ve administrator klasörüne bu dosyayı atın bu şekilde hem register globals değerini olması gerektiği gibi yapmış hemde bazı fonksiyonları devre dışı bırakmış olacağız.
register_globals = off allow_url_fopen = OFF disable_functions = show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open

Php.ini ve htaccess dosyaları windows hostta çalışmaz bazı windows hostlarda apache desteği olduğundan htaccess ile ilgili dosya çalışacaktır.

  • Sık sık sitenizin ve veritabanının yedeğini alın

Joomla 1.5 Kolay Kullanım Rehberi

Joomla 1.5 Rehberi

Joomla 1.5'i öğrenmek hiç bu kadar kolay olmamıştı

Hiç bir kodlama bilgisine sahip olmaksızın kendi kişisel yahut kurumsal websitenizi yapmak için size lazım olan Joomla! ve Joomla 1.5 Rehberi