Güvenlik

Linux Chroot Hapishaneleri Nasıl Kurulur

Linux Chroot Hapishaneleri Nasıl Kurulur
Özellikle kritik hizmetlere adanmış Linux sistemleri, çalışmak için uzman düzeyinde bilgi ve temel güvenlik önlemleri gerektirir.

Ne yazık ki, önemli güvenlik önlemleri aldıktan sonra bile güvenlik açıkları güvenli sistemlere girmenin yolunu buluyor. Sisteminizi yönetmenin ve korumanın bir yolu, bir saldırı gerçekleştiğinde olası hasarı sınırlamaktır.

Bu eğitimde, bir saldırı durumunda sistem hasarlarını yönetmek için chroot jail kullanma sürecini tartışacağız. Yanlış kök ayrıcalıklarıyla süreçleri ve alt süreçleri belirli bir ortama nasıl yalıtacağımıza bakacağız. Bunu yapmak, işlemi belirli bir dizine sınırlayacak ve diğer sistem alanlarına erişimi engelleyecektir.

Chroot hapishanesine kısa bir giriş

Bir chroot hapishanesi, yanlış kök ayrıcalıkları kullanarak süreçleri ve alt süreçlerini ana sistemden ayırma yöntemidir.

Belirtildiği gibi, belirli bir işlemi sahte kök ayrıcalıkları kullanarak izole etmek, kötü niyetli bir saldırı durumunda zararları sınırlar. Chroot'lu hizmetler, dizinleri içindeki dizinler ve dosyalarla sınırlıdır ve hizmet yeniden başlatıldığında kalıcı değildir.

Neden chroot hapishanesini kullanıyorsunuz?

Chroot hapishanesinin temel amacı bir güvenlik önlemidir. Chroot, canlı ortamdan aygıtları bağlayarak kayıp parolaları kurtarırken de kullanışlıdır.

Chroot hapishanesi kurmanın çeşitli avantajları ve dezavantajları vardır. Bunlar şunları içerir:

Avantajlar

Dezavantajları

Temel Chroot Hapishanesi Nasıl Oluşturulur

Bu işlemde o klasörle sınırlı 3 komut ile temel bir chroot jail oluşturacağız. Bu, bir hapishanenin nasıl oluşturulacağını ve çeşitli komutların nasıl atanacağını göstermeye yardımcı olacaktır.

Bir ana klasör oluşturarak başlayın. Bu klasörü ana sistemdeki / klasörü olarak düşünebilirsiniz. Klasörün adı herhangi bir şey olabilir. Bizim durumumuzda buna /chrootjail diyoruz

sudo mkdir / chrootjail

Bu dizini, kendisine atayacağımız komutları içeren sahte kök olarak kullanacağız. Kullanacağımız komutlarla bin dizinine (komut yürütülebilir dosyalarını içerir) ve vb., dizin (komutlar için yapılandırma dosyalarını içerir).

/chrootjail klasörünün içinde şu iki klasörü oluşturun:

sudo mkdir /chrootjail/etc,bin

Sonraki adım, hapishaneye dahil etmek istediğimiz komutlar için dinamik olarak bağlantılı kitaplıklar için dizinler oluşturmaktır. Bu örnek için bash, ls ve grep komutlarını kullanacağız.

Bu komutların bağımlılıklarını aşağıda gösterildiği gibi listelemek için ldd komutunu kullanın:

sudo ldd /bin/bash /bin/ls /bin/grep

Bin klasörünün içinde değilseniz, kullanmak istediğiniz komutların tam yolunu geçmeniz gerekir. Örneğin, ldd /bin/bash veya ldd /bin/grep

Yukarıdaki ldd çıktısından, lib64 ve /lib/x86_64-linux-gnu dizinlerine ihtiyacımız var. Hapishane dizininin içinde bu klasörleri oluşturun.

sudo mkdir -p /chrootjaillib/x86_64-linux-gnu, lib64

Dinamik kitaplık dizinlerini oluşturduktan sonra, bunları aşağıda gösterildiği gibi bir ağaç kullanarak listeleyebiliriz:

İlerledikçe, bir chroot hapishanesinin ne anlama geldiğine dair net bir görüntü elde etmeye başlayacaksınız.

Linux sisteminin normal kök dizinine benzer bir ortam yaratıyoruz. Aradaki fark, bu ortamın içinde yalnızca belirli komutlara izin verilmesi ve erişimin sınırlı olmasıdır.

Artık çöp kutusunu oluşturduğumuza göre. vb., lib ve lib64, gerekli dosyaları ilgili dizinlerine ekleyebiliriz.

İkili dosyalarla başlayalım.

sudo cp /bin/bash /chrootjail/bin && sudo cp /bin/ls /chrootjail/bin && sudo cp /bin/grep /chrootjail/bin

İhtiyacımız olan komutlar için ikili dosyaları kopyaladıktan sonra, her komut için kitaplıklara ihtiyacımız var. Kopyalanacak dosyaları görüntülemek için ldd komutunu kullanabilirsiniz.

Bash ile başlayalım. Bash için aşağıdaki kütüphanelere ihtiyacımız var:

/lib/x86_64-linux-gnu/libtinfo.yani.6
/lib/x86_64-linux-gnu/libdl.yani.2
/lib/x86_64-linux-gnu/libc.yani.6
/lib64/ld-linux-x86-64.yani.2

Tüm bu dosyaları tek tek kopyalamak yerine, tüm kitaplıklardaki her kitaplığı /chrootjail/lib/x86_64-linux-gnu dizinine kopyalamak için basit bir for döngüsü kullanabiliriz

Bu işlemi hem ls hem de grep komutu için tekrarlayalım:

ls komutu için:

grep komutu için:

Ardından, lib64 dizini içinde, tüm ikili dosyalar arasında bir paylaşılan kitaplığımız var. Basit bir cp komutu kullanarak basitçe kopyalayabiliriz:

Ardından, ana bash oturum açma dosyasını düzenleyelim (/etc/bash dizininde bulunur).bashrc Debian'da), böylece bash istemini beğenimize göre ayarlayabiliriz. Gösterildiği gibi basit bir yankı ve tee komutları kullanma:

sudo echo 'PS1="CHROOTJAIL #"' | sudo tee /chrootjail/etc/bash.bashrc

Yukarıdaki tüm adımları tamamladıktan sonra gösterildiği gibi chroot komutunu kullanarak jail ortamına giriş yapabiliriz.

sudo chroot /chrootjail /bin/bash

Yukarıdaki echo ve tee komutunda oluşturulanlara benzer bir komut istemi ile kök ayrıcalıkları alacaksınız.

Giriş yaptığınızda, yalnızca hapishaneyi oluştururken dahil ettiğiniz komutlara erişiminiz olduğunu göreceksiniz. Daha fazla komuta ihtiyacınız varsa, bunları manuel olarak eklemeniz gerekir.

NOT: Bash kabuğunu dahil ettiğiniz için, tüm bash yerleşik komutlarına erişebileceksiniz. Bu, çıkış komutunu kullanarak hapishaneden çıkmanıza izin verir.

Sonuç

Bu eğitim, chroot hapishanesinin ne olduğunu ve ana sistemden izole bir ortam oluşturmak için onu nasıl kullanabileceğimizi ele aldı. Kritik hizmetler için yalıtılmış ortamlar oluşturmak için kılavuzda açıklanan teknikleri kullanabilirsiniz.

Öğrendiklerinizi uygulamak için apache2 hapishanesi oluşturmaya çalışın.

İPUCU: Bir kök dizin oluşturarak başlayın, yapılandırma dosyalarını (etc/apache2) ekleyin, belge kökünü (/var/www/html) ekleyin, ikili dosyayı (/usr/sbin/apache2) ve son olarak gerekli kitaplıkları (ldd / usr/sbin/apache2)

How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Remap your mouse buttons differently for different software with X-Mouse Button Control
Maybe you need a tool that could make your mouse's control change with every application that you use. If this is the case, you can try out an applica...
Microsoft Sculpt Touch Wireless Mouse Review
I recently read about the Microsoft Sculpt Touch wireless mouse and decided to buy it. After using it for a while, I decided to share my experience wi...