Mit ya da gerçeklik: SELinux kök kullanıcıyı sınırlandırabilir mi?


20

Bir yerde okudum veya duydum (belki LinuxCBT'nin SELinux kursunda ; ama emin değilim) kök kullanıcının şifresinin de verildiği çevrimiçi Linux sunucuları olduğunu. Linux sunucusu SELinux kuralları kullanılarak sertleştirilir, böylece herkes kök kullanıcıyla giriş yapabilir, ancak işletim sistemine zarar veremez.

Bana bir efsane gibi geliyor, ama emin olmak istedim: Bir kök kutusunu (muhtemelen SELinux ile) sertleştirmek mümkün mü, böylece kök kullanıcı bile üzerinde belirli kötü amaçlı etkinlikler yapamaz mı? (Örnekler: sistem dosyalarını silme, günlük dosyalarını temizleme, kritik hizmetleri durdurma vb.)

Böyle bir Linux kutusu, bir bal küpü oluşturmak için harika bir başlangıç ​​noktası olacaktır .

Düzenleme: Bir yanıt (şimdi silinmiş) ve küçük bir Googling dayanarak, bu tür sertleştirilmiş Linux sunucularına işaret eden en az iki bağlantı var. Ne yazık ki, her iki sunucu da kapalı. Kayıt için, açıklamaları buraya kopyalayıp yapıştıracağım:

1) http://www.coker.com.au/selinux/play.html adresinden :

Bir SE Linux makinesinde ücretsiz root erişimi!

Debian play machine ssh to play.coker.com.au'ya root olarak erişmek için şifre ...

Bu makineleri başarılı bir şekilde çalıştırmak için çok fazla beceri gerektirdiğini unutmayın. Eğer birini çalıştırmanız gerekip gerekmediğini sormanız gerekiyorsa cevap "hayır" dır.

Bunun amacı, tüm gerekli güvenliğin herhangi bir Unix izni olmadan SE Linux tarafından sağlanabileceğini göstermektir (ancak gerçek sunucular için de Unix izinlerini kullanmanız önerilir). Ayrıca bir SE makinesine giriş yapma ve bunun nasıl bir şey olduğunu görme şansı verir.

Bir SE Linux oyun makinesine giriş yaptığınızda, X11 iletmeyi devre dışı bırakmak için -x seçeneğini kullandığınızdan veya giriş yapmadan önce / etc / ssh / ssh_config dosyanızda ForwardX11 no ayarladığınızdan emin olun . Ayrıca, oturum açmadan önce ssh aracı yönlendirmesini devre dışı bırakmak için -a seçeneğini kullandığınızdan veya / etc / ssh / ssh_config dosyanızda ForwardAgent no ayarladığınızdan emin olun . Bu ayarları doğru şekilde devre dışı bırakmazsanız, oyun makinesine giriş yapmak SSH istemciniz tarafından saldırıya uğrama riskinizi artırır.

Bunu tartışmak için bir IRC kanalı var, irc.freenode.net üzerinde #selinux .

İşte hızlı bir SSS

2) http://www.osnews.com/comments/3731 adresinden

Sertleştirilmiş Gentoo'nun amacı, Gentoo'yu yüksek güvenlikli, yüksek kararlılıkta üretim sunucusu ortamları için uygun hale getirmektir. Bu proje, Gentoo'dan ayrılan bağımsız bir proje değildir; Gentoo'ya güçlü güvenlik ve istikrar sağlayan çözümler sunmaya odaklanan bir Gentoo geliştiricileri ekibi olmayı hedefliyor. Bu makine Sertleştirilmiş Gentoo'nun SELinux demo makinesidir . Bunun birincil kullanımı SELinux entegrasyonunu ve politikasını test etmek ve denetlemektir.


2
Bu oldu burada da iddia . Kesinlikle teorik olarak mümkün olsa da, benim için zor görünüyor (eğer kök kullanıcıyı o kadar çok sınırlamazsanız yararlı bir şey yapamaz). Gerçekten yapmak istediğiniz şeyi yapan SELinux kuralları yazmak en iyi ihtimalle zordur.
Gilles 'SO- kötü olmayı kes

4
Son çekirdeklerde, kök olmayan kullanıcılar UID 0'a sahip oldukları ad alanları oluşturabilirler. Üst düzey ad alanında UID 0 olmadıkları için sisteme zarar veremezler. Bu tür fırsatların ortadan kaldırılması gereken SELinux yaklaşımından farklı olarak, doğası gereği zarar verme fırsatı bulamazlar. Çekirdeğe bakın : Ad alanları desteği ve Ayrı işletim sistemleri yüklemeden iki hesabı tamamen ayırmak mı istiyorsunuz?
Gilles 'SO- kötü olmayı kes'

Grafik sürücünüze gerçekten güvenli olup olmadığına bağlıdır.
Joshua

Yanıtlar:


17

Gerçek: Evet, SELinux kök kullanıcıyı sınırlandırabilir.

Bu mümkündür, çünkü SELinux şu anki Unix kullanıcısını umursamamaktadır: tek gördüğü, bağlam adı verilen (diğer alanların yanı sıra bir alan alanı içeren) tamamlayıcı bir meta veridir ve SELinux'un istenen eyleme izin verilip verilmeyeceğine karar vermesine izin verir veya değil.

Kök kullanıcı olarak genellikle düşünen, SELinux'da ya unconfined_tda sysadm_tSELinux alanlarını çalıştıran bir kök Unix kullanıcısı olarak eşlenir . Klasik tam güçlü omnipotent kök kullanıcısıdır.

Bununla birlikte, sistemi mükemmel bir şekilde kullanıcı kısıtlanmış user_tSELinux etki alanını çalıştıran bir kök kabuk (yani kök Unix kullanıcı kabuğu) oluşturacak şekilde ayarlayabilir . SELinux politikalarına göre, bu kabuk diğer kısıtlı kullanıcıların kabuklarından farklı olmayacak ve sistem üzerinde özel bir ayrıcalığa sahip olmayacak, böylece kök kullanıcıyı etkili bir şekilde sınırlayacaktır.

Deneysel bir bakış açısından Appart, tam anlamıyla böyle bir şey yapmak işe yaramaz, ancak benzer uygulama gerçek dünyada yolunu bulur. Klasik bir örnek, veritabanı arka planlarını durdurabilmesi / başlatabilmesi, yapılandırma dosyalarını vb. Düzenleyebilmesi gereken bir veritabanı yöneticisidir. SELinux olmadan, tüm bu eylemler kullanıcının kök ayrıcalıklarına doğru yükselmesini gerektirir (normalde tek bir sudoancak komut satırını araç aracılığıyla kontrol edebilirsiniz, ancak bu bile sızıntılara eğilimli olabilir).

SELinux sayesinde, bu kullanıcıya gerçek bir kök kabuk verebiliriz, ancak çalıştırmak unconfined_tveya sysadm_tetki alanları yerine etki alanını çalıştıracaktır dbadm_t. Bu, kısıtlı bir kullanıcıdan daha fazla ayrıcalığa sahip olacağı anlamına gelir, ancak bu yeni ayrıcalıklar veritabanı sunucusunu yönetmek için gerekenlerle sınırlı olacaktır: bu kullanıcı diğer hizmetlere, dosyalara müdahale edemez veya bunlardan başka yönetim komutları çalıştıramaz. kesinlikle işini yapmak için gerekli.

Aynı şekilde, web sunucusu ve diğer hizmetler yöneticileri, her biri kendi Geçerli Unix kullanıcısı olmanın göreceksiniz aynı sistemde paralel çalışan diğer kök kabukları olabilir kökü , ancak her biri etkin bir şekilde farklı ayrıcalıkları olacak SELinux sayesinde sınırlı neyi kendi amaçları için gereklidir .


1

Evet mümkün. Ama çok kullanışlı değil.

Kök kullanıcının kötü amaçlı amaçlar için kullanılabilecek ikili dosyaları çalıştırmasına teorik olarak izin vermemek, SELinux gibi bir şey aracılığıyla politikaları uygulamak. Ancak, bu bir sorun sunar, yani kök kullanıcı başlangıçta bir şey yapmasına izin verilmemiş olsa bile, SELinux politikalarını değiştirmek veya kaldırmak için sadece diğer yöntemleri kullanabilir. Bu sorun nedeniyle, kök kullanıcının herhangi bir eylem gerçekleştirmesine izin vermemeniz gerekir, bu da çok yararlı olmaz.


İlk olarak, senin kadar kötümserdim. Ancak, daha fazla bilgi edinmek, "kök kullanıcının herhangi bir işlem yapmasına izin vermemeye" gerek olmadığı anlaşılıyor. Kavram kanıtına bağlantılar ve bilgiler içeren düzenlenmiş cevabımı kontrol edin. Ne yazık ki, artık mevcut değiller; ancak uygulamaların çok kısıtlayıcı olmadığı anlaşılıyor.
MS Dousti

-5

Bir Linux kutusunu (muhtemelen SELinux ile) sertleştirmek mümkün olabilir, böylece kök kullanıcı bile üzerinde belirli kötü amaçlı etkinlikler yapamaz mı?

Bu kulağa ucuz gelebilir, ancak kolaydır: kullanıcı kökünün kullanıcı kimliğini sıfırdan farklı olarak değiştirin. / Etc / passwd ve / etc / shadow dizinine gidin, varolan uid = 0 girişlerini "root" tan başka bir şeye değiştirin ve sonra uid sıfır ve kullanılmayan "root" adlı bir hesap ekleyin.

Bu amaca onsuz ulaşır. Ayrıca, yükseltilmiş ayrıcalıklar sağlamadan herkesin "kök erişimine" sahip olduğunu iddia etmenin bir yolu .


3
Evet, ama o zaman rootkullanıcı aslında kök kullanıcı değil. Soru, gerçek süper kullanıcının bu şekilde sınırlanıp sınırlanamayacağını sormaktır.
terdon

Tehlikeli geliyor - tabii ki uid 0 ile başka bir hesap oluşturmak dışında. Ancak bu, root adını değiştirmek ve "root" adını tekrar kullanmakla aynı şey olacaktır.
Volker Siegel

Soru sadece süper kullanıcıya eşdeğer olmayan "kök" ile ilgilidir, yani uid = 0. Nadir durumlarda, bu yararlı bir ayrımdır.
Otheus

2
Bununla birlikte, bağlam OP'nin kullanıcı adı olan rastgele bir kullanıcının değil süper kullanıcının olup olmadığını sorduğunu açıkça ortaya koymaktadır root.
terdon

1
TAMAM. En azından lütfen cevabınızı düzenleyin ve önerilerinize nasıl ulaşılabileceğini gösterin. Uzunluğu nedeniyle düşük kalite olarak işaretlenmeye devam ediyor. Bu yüzden aşağı oy alıyor.
terdon
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.