Linux'ta chroot Nedir ve Nasıl Çalışır?

Linux'ta chroot Nedir ve Nasıl Çalışır?
Sizin gibi okuyucular MUO'yu desteklemeye yardımcı oluyor. Sitemizdeki bağlantıları kullanarak bir satın alma işlemi gerçekleştirdiğinizde, bir ortaklık komisyonu kazanabiliriz. Devamını oku.

Uygulamaları veya hizmetleri Linux'ta yalıtılmış bir alanda çalıştırmak mı istiyorsunuz? Ya da belki bir uygulamayı sisteminizin geri kalanına müdahale etmeden test etmek ve hata ayıklamak istiyorsunuz? Öyleyse, sisteminizde ayrı bir ortam oluşturmanıza izin veren, Linux'ta yerleşik güçlü bir mekanizma olan chroot hakkında bilgi edinmek isteyeceksiniz.





GÜNÜN MAKALE VİDEOSU İÇERİKLE DEVAM ETMEK İÇİN KAYDIRIN

Gelin chroot'u ayrıntılı olarak inceleyelim, faydalarını, kullanım durumlarını, bir Linux sisteminde nasıl kurulacağını ve gerekirse ondan nasıl kaçılacağını öğrenelim.





Linux'ta chroot nedir?

  chroot komutunun gösterimi

chroot veya change-root, bir kullanıcının uygulamaları ve hizmetleri güvenli bir şekilde korumalı alana almasına izin veren, muhtemelen en kolay ve eski konteynerleştirme yazılımı biçimlerinden biridir. Korumalı alan oluşturma, hesaplama terimleriyle, bir programı önceden tanımlanmış kaynaklarla sınırlı bir alanda izole etme işlemidir.





Eğer aşina iseniz Docker ve nasıl çalıştığı , chroot'u onun çok sadeleştirilmiş bir versiyonu olarak düşünebilirsiniz. chroot, bir programın kök dizinini değiştirerek, erişimi ve görünürlüğü kısıtlayarak ve böylece ek bir yalıtım ve güvenlik katmanı sağlayarak çalışır.

Temel olarak, ayrı bir dizin oluşturur, programın tüm bağımlılıklarını yeni dizine kopyalar ve ardından chroot komutunu çalıştırırsınız. Bu, programın temel dosya sistemine erişimi olmadan düzgün çalışmasına izin verir.



Bir programın chroot edilmesi, gerçek sistem dosyalarını değiştirmeden güvenli bir alanda programın güvenilirliğini test etmenin harika bir yoludur. Ayrıca, güvenliği aşılmış bir paketin neden olduğu güvenlik riskini de azaltabilirsiniz, çünkü krokotlu bir ortamda ele geçirilen paket hassas sistem dosyalarına erişemez ve onları değiştiremez.

Program, yalnızca 'chroot jail' olarak bilinen, chrooted dizine aktarılan dosyalara erişebilecek ve bunları görüntüleyebilecektir. Bu, programın ve alt süreçlerinin temel sisteme müdahale etmesini önler.





Chroot Hapishanesi Nedir?

Bir chroot hapishanesi, chroot programlarının bulunduğu ve yürütüldüğü yalıtılmış bir ortamdır. Chroot hapishanesi terimi, chroot ortamındaki süreç ve alt süreçlerin temel dosya sistemine erişimi veya görünürlüğü olmadığı ve önceden belirlenmiş kaynaklarla chroot sınırları içinde sıkışıp kaldığı kavramından türetilmiştir.

Artık chroot kavramını anladığınıza göre, uygulamalı olarak bir chroot hapishanesini nasıl oluşturabileceğinizi ve içinde süreçler oluşturabileceğinizi öğrenelim.





Bir chroot Hapishanesi Nasıl Oluşturulur ve İçinde Programlar Yürütülür

  bir dizini chroot etme ve bash-1'i oluşturma

Bir chroot jail, temel olarak bir programın düzgün çalışması için ihtiyaç duyacağı tüm gerekli kaynakları, dosyaları, ikili dosyaları ve diğer bağımlılıkları içeren bir dizindir.

Ancak, normal bir Linux ortamından farklı olarak, chroot hapishanesinin ortamı oldukça kısıtlıdır ve program harici veya ek dosyalara ve sistem kaynaklarına erişemez.

Örneğin, bir chroot hapishanesinde Bash kabuğunu çalıştırmak için, Bash ikili dosyasını ve tüm bağımlılıklarını chroot dizinine kopyalamanız gerekir.

İşte bir chroot hapishanesi oluşturma ve bir Bash kabuğu oluşturma adımları:

  1. Bir programın başarılı bir şekilde çalışması için, tüm bağımlılıklarını chrooted dizine kopyalamanız gerekir. Hangi ve ldd komutlarını kullanarak ikili dosyayı, bu örnekte Bash'i ve tüm bağımlılıklarının konumunu bulalım:
     which bash 
    ldd /usr/bin/bash
  2. Artık ikili dosyanın konumlarını ve bağımlılıklarını bildiğinize göre, bunları bir chroot hapishanesine dönüştürmek istediğiniz dizine kopyalayın. mkdir komutunu kullanarak gerekli dizinleri oluşturun ve cp komutu , tüm dosyaları ilgili dizinlere kopyalayın:
     mkdir bin lib lib64 && cp -r /lib/ * ./lib && cp -r /lib64/* /lib64/ && cp /bin/bash /bin/
  3. Son olarak, program ve bağımlılıkları kopyalandığında, seçilen dizinde chroot ortamını oluşturmak için sudo önekini kullanarak chroot komutunu yükseltilmiş ayrıcalıklarla çalıştırabilirsiniz. Varsayılan olarak, bir Bash kabuğu oluşturur. İşte yazmanız gereken komut:
     sudo chroot directory_name

Bir chroot hapishanesi oluşturmanın ve içinde bir program çalıştırmanın tüm adımları bu kadar.

Chroot Hapishanesinden Nasıl Çıkılır?

Chroot hapishaneleri, kararsız yazılımları test etmek için iyi olsa da, bağlı kullanıcıları chroot yapmak birçok yöntemden biri olduğundan, SSH bağlantılarını ele alırken de kullanışlıdır. SSH sunucunuzu güvenli hale getirmenin yolları .

Öte yandan, bir penetrasyon testçisiyseniz ve hedefinizin SSH sunucusunda oturum açtıysanız, bunun krokotlu bir ortam olduğunu bulmak sinir bozucu olabilir ve çıkmaz sokak gibi hissedilebilir.

Bununla birlikte, yanlış yapılandırılmış bir chroot hapishanesinden kaçmanın pek çok yolu vardır, bazıları C programlama becerileri gerektirirken diğerleri araçlarla otomatikleştirilebilir. Chroot kaçışının birkaç kolay yolu:

  • İç içe chroot çağrıları
  • Kaydedilmiş dosya tanıtıcısı ile iç içe chroot çağrıları
  • Kök bağlama yöntemi
  • procfs kaçış
  • iz kaçış

Bu yöntemlerden herhangi birini kullanarak chroot kaçışını gerçekleştirmek için sistemde yükseltilmiş ayrıcalıklara sahip olmanız gerekeceğini unutmayın. Şu adrese giderek bu kaçış metodolojileri hakkında daha fazla bilgi edinin: chw00t'nin GitHub deposu , bir chroot kaçış otomasyon aracı.

Artık Linux'ta chroot Hakkında Her Şeyi Biliyorsunuz

Artık chroot'un ne olduğunu, nasıl çalıştığını ve nasıl uygulanacağını bildiğinize göre, uygulamaları terminalden zahmetsizce korumalı hale getirebilmelisiniz. Bildiğiniz gibi, köklenmiş bir ortamdan çıkmanın birden çok yolu olduğunu unutmayın.

Bu, chroot'un hiçbir şekilde bir güvenlik özelliği olarak uygulanmak üzere tasarlanmadığını gösterir. Bu nedenle, chroot'u çok dikkatli kullanmalısınız çünkü yanlış bir yapılandırma geri tepebilir ve sisteminizin güvenliğini tehlikeye atabilir.

Konteynırlaştırma yazılımı veya sanal makineler gibi özel korumalı alan çözümlerine bağlı kalmak en iyisidir. Her ikisi de korumalı alan ve güvenlik etrafında toplanmıştır, bu nedenle şehirde yeni bir sıfır gün olmadıkça, sisteminizin güvenliği ve bütünlüğü konusunda endişelenmenize gerek kalmaz.

bu hafta sonu yakınımda neler oluyor

Konteynerleştirme ve sanallaştırma yazılımı arasında hangisini seçeceğinizden emin değilseniz, ikisini de denemeli ve hangisinin daha iyi olduğunu kendiniz görmelisiniz.