SELinux'u devre dışı bırakma / etkinleştirme nedenleri


36

StackOverflow ve buradaki tamamen farklı kalabalığın bu sorusu doğrultusunda merak ediyorum: SELinux'u devre dışı bırakmak için nedenleriniz (çoğu insanın hala yaptığını varsayalım)? Etkin tutmak ister misiniz? SELinux'u açık bırakarak hangi anomalileri yaşadınız? Oracle dışında, başka hangi satıcılar SELinux'un etkin olduğu sistemleri desteklemekte sorun yaşıyor?

Bonus soru: Herkes hedeflenen modu zorlamada Oracle'ı SELinux ile RHEL5'te çalıştırmayı başardı mı? Yani, kesinlikle harika olurdu, ama henüz uzaktan bile mümkün değil, bu yüzden ilk önce hedeflenen kalalım ;-)

Yanıtlar:


25

RedHat, daha güvenli olduğu için SELinux'u varsayılan olarak açar. Neredeyse Redhat'ten türetilen ürünleri kullanan her satıcı SELinux'u kapatıyor, çünkü işlerin neden işe yaramadığını anlamak için zaman (ve dolayısıyla para) koymak istemiyorlar. Redhat / Fedora insanlar daha Enterprise uygulanabilir bir seçenek SELinux'u yapım zaman ve çaba büyük bir miktarda koyduk, ancak diğer kuruluşların bir sürü gerçekte önem senin güvenliğin. (Onlar umurumda kendi güvenlik ve tamamen farklı bir şeydir onların ürünün güvenlik itibar.)

Eğer çalışmasını sağlayabiliyorsan, devam et. Bunu yapamazsanız, o zaman orada satıcılardan çok yardım beklemeyin. Redhat / Fedora'lılardan, selinux posta listelerinden ve freenode'deki #selinux kanalından yardım alabilirsiniz. Fakat Oracle gibi şirketlerden - SELinux iş planlarını gerçekten etkilemiyor.


8
Ürünlerini kurmak için kiralanan bir "kurumsal" yazılım satıcısı, büyük bir dizin ağacında bir chmod -R 777 * yaparak izin sorunu çözdü. Gerçekten güvenliğiniz umrunda değil.
kmarsh 2'09

21

Genellikle, SELinux’u Permissive’de tamamen devre dışı bırakmak yerine kullanmaktan daha iyidir. audit2whyDüzenli kullanımınız sırasında ne tür ihlallerin reddedildiğini görmek için bir süre sonra (üzerinden ) kontrol edebilir ve audit2allowbu 'ihlallerin' kurulumunuz için yanlış olup olmadığını kullanarak özel politikalar oluşturabilirsiniz.

Fedora türetilmemiş sistemlerdeki SELinux davranışını, varsayılan olarak tipik bir Fedora / RHEL sistemiyle elde ettiğinizden çok daha hassas buldum.

Daha önce görmediyseniz, Fedora SELinux Kullanıcı Kılavuzu eğitimini bulabilirsiniz.


16

Sebepler:

  • Zorunlu erişim kontrolü sayesinde daha yüksek güvenlik seviyesi
  • Daha yüksek güvenlik seviyesinin ötesinde bir nedene mi ihtiyacınız var? :-)

Sebepler:

  • Anlaması zor
  • Yönetilmesi zor
  • Sorunları çözmek zor

Eğer SELinux'u düşünüyorsanız, SELinux kitabını Örnek ile tavsiye ediyorum .

Ben çalıştı şirketi SELinux'un her sistemde, zorlamalı kipte, etkin vardı. Bizim için anahtar, yeni bağlam kuralları oluşturmak için kullanılabilecek audit2allow programını anlamak ve kullanmaktı.

İlk olarak, audit2allow ile bir şablon hazırlar ve sonra bunu oluşturmak için bir betik kullanırız:

export NAME="my_serviced"
sudo audit2allow -m "${NAME}" -i /var/log/audit/audit.log > ${NAME}.te
sudo setup_semodule ${NAME}

Setup_semodule betiği:

#!/bin/sh

# Where to store selinux related files
SOURCE=/etc/selinux/local
BUILD=/etc/selinux/local
NAME=$1

/usr/bin/checkmodule -M -m -o ${BUILD}/${NAME}.mod ${SOURCE}/${NAME}.te
/usr/bin/semodule_package -o ${BUILD}/${NAME}.pp -m ${BUILD}/${NAME}.mod
/usr/sbin/semodule -i ${BUILD}/${NAME}.pp

/bin/rm ${BUILD}/${NAME}.mod ${BUILD}/${NAME}.pp

Bu, modülü şablondan (.te dosyası) oluşturur, bir paket oluşturur ve sonra modülü yükler.

Yapılandırma yönetim sistemimizde Kukla'yı kullandık ve tüm bunları yönetmek için Kukla için yapılandırma yazdık.

SELinux Kukla Modülü:


2
+1, çok faydalı bilgiler.
DCookie

10

Kapatmanın nedeni, hata ayıklamak için bir ağrı olabileceğidir.

Ancak şimdi kapatmıyoruz. Neredeyse her zaman çalışır halde tutarız. SElinux'un bir sorun olup olmadığını hızlıca doğrulamak için zaman zaman kapatıyorum.

Şimdi hata ayıklamak artık çok daha kolay, özellikle eğer kendini audit2allow ile aşina yaparsan. Bunu gerçekten audit2allow ile anlamanıza gerek yok, ancak bazı durumlarda denetleme2allow ile düşündüğünüzden daha geniş açmalar yapabilirsiniz. Bazı SELinux'ların hiç yoktan daha iyi olduğunu söylemiştim.

Hiçbir şekilde bir SELinux uzmanı değilim ve bunu yalnızca birkaç yıldır kullanıyorum. Hala temelleri gerçekten anlamıyorum, ancak 'net'in derlediği dağıtma ve rastgele öğelere dahil olan uygulamaları çalıştırmak için uygulamaları çalıştıracak kadar bilgim var.

Ben kullanımına yaşadım ana şey vardır ls -lZ(gösteri selinux bağlam) audit2allow, chcon, semodule, getenforce, setenforceve mantıksal. Bu araçlar ile SELinux altında çalışmak için ihtiyaç duyduğum her uygulamayı almayı başardım.

SELinux problemlerinde hata ayıklama ile ilgili büyük problemlerinden birini buluyorum, başka akıllıca anlaşılmaz problemlerim olduğunda SELinux problemlerini kontrol etmeyi hatırlatıyor. Genelde "h! SELinux'u kontrol et!" E gitmem biraz zaman alır.

Bağlantı man sayfasına göre SELinux, chroot hapishanesinde bağlama yapmaktan çok daha güvenlidir. Benim de önerdiğimden çok daha fazla ipucu olan pek çok kişi, bu yüzden şimdi kör olarak çalıştırıyorum. Ve ara sıra soruna rağmen şüpheli yapmaya değer.


2
SELinux’u çalışır durumda bırakmak için sık sık daha iyi hizmet verdiğinizi belirtmek için +1 işaretleyin ve sorunun yalnızca kaynak olup olmadığını kontrol etmek için kapatın.
Ophidian

2

AppArmor için SELinux'u devre dışı bıraktım , SELinux'dan daha kolay ve bakımı kolay buldum.


İlginç. Hangi dağıtımdasın? AppArmor'u hiç kullanmamıştım, ancak kutudan ne dağıtdığını ve özelliklerinin ne olduğunu merak ediyorum. Buna bakacağım. Şahsen, SELinux ile sorunum yok, btw, ama alışmak biraz zaman alıyor.
wzzrd

AppArmor aslen Novell tarafından geliştirilmiştir ve varsayılan olarak tüm openSUSE ve SUSE Linux Enterprise dağıtımlarına dahil edilmiştir. Enterprise dağıtımlarında varsayılan olarak etkindir ve tüketici dağıtımlarında açılması kolaydır. Ubuntu 7.04'ten beri kullanıyor, ancak varsayılan olarak her uygulamayı otomatik olarak zorlamıyor.
andrewd18

Novell hakkında AppArmor ekibinin çoğunu bıraktığını söylediğimi hatırlıyorum. Ubuntu dağıtımdan atmadı mı? Yoksa kafamdaki sesleri tekrar mı duyuyorum? ;-)
wzzrd

Novell yaptı - ama yazar hala ücretsiz çalışıyor. Hala ubuntu'da destekleniyor ve bardak ve mysqld gibi şeyler varsayılan olarak zorlanıyor.
LiraNuna

Her zaman değil, ancak çoğu zaman güvenlik için kullanım kolaylığı sağlarız. Dengeleyici bir eylemdir ve cevap çoğunlukla risklerin tanımlanması nedeniyle önemsiz değildir ve güvenlik hedefleri çok zor bir iştir.
rev

1

Permissive modunda çalıştırabildiğiniz zaman kapatmak için hiçbir neden yoktur. Çalışan uygulamaya karışmaz ve yine de yararlı güvenlik günlüğü sağlar. Bunun tek istisnası, kullanıcı bağlamlarıyla ilgilidir: chroot içinde çalışan başka bir linux örneğinin içinde yaşayan farklı kullanıcılar arasında geçiş yapıyorsanız, sorunlarınız olabilir.


Aslında, SELinux’un Permissive modundaki uygulamalara müdahale edebileceği durumlar vardır. Bir: bazı zamanlarda sistemin izin vermesine rağmen bazı kurallar uygulanmaktadır. Hala böyle olup olmadığından emin değilim. İki: kuralların işlenmesi için harcanan zaman IPC'yi bozmak için yeterli olabilir. Bunu Oracle kümeleriyle gördüm. Yine geçmişte ve mevcut durumun ne olduğundan emin değilim. Ancak, hemen hemen her sistem çağrısının buna eklenmiş bir işlem süresi olduğunu unutmayın.
Jason Tan,

0

SE Linux eskisi kadar düşmanca değildi, eskisi gibi RHEL5 gibi ticari destekli dağıtımlarda değil. Çoğunlukla bırakabilirsiniz, RedHat'ın sağladığı her şey iyi olacaktır. Başka bir şeyle değişken olabilir. Sorun şu ki, SE Linux ile çalışan uygulamaları etkinleştirmek için profesyonel hizmet çalışmasının RedHat ve Oracle gibi şirketler için iyi bir gelir akışı olması, bu yüzden her şeyin güzel bir şekilde çalışmasını sağlamak için hiçbir teşvikleri yok.


Oracle'ın resmi olarak SELinux tho
wzzrd
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.