Selinux'u devre dışı bırakırsak ne olur? [Kapalı]


9

Bir grup kullanılmış sunucuyu başka bir ekipten miras aldık. Bazılarında SELinux etkinleştirildi, bazıları yok. SELinux nedeniyle, şifresiz ssh, web sunucumuz, vb. Ayarlamada sorun yaşıyoruz. Bu stackexchange sitesinde çalışacak bir çalışma bulduk :

restorecon -R -v ~/.ssh

Bununla birlikte, yaptığımız şey için SELinux'un çalışmasına ihtiyacımız olmadığından, herkesin yukarıdaki cmd'yi izinlere ihtiyaç duyduğu her şeyde çalıştırmasını hatırlamamızdan daha kolay olabilir.

SELinux'u yoldan herhangi bir yansıma olmadan kapatabilir miyiz yoksa sunucuyu yeniden görüntülemek daha mı iyi? Dikkat edilmesi gereken bir şey; BT grubumuz gerçekten meşguldür, bu yüzden kesinlikle gerekli olmadıkça (çok iyi bir iş vakasına ihtiyaç duymadıkça) bir sunucunun yeniden görüntülenmesi listede yüksek değildir ... veya birisi patronlarına bir şişe viski veya viski ile rüşvet verir.

GÜNCELLEME: Herkesin önerisi ve tavsiyesi için teşekkürler. Bu sunucuların tümü dahili geliştirici sunucuları olarak kullanılacaktır. Bu makinelere dışarıdan erişim olmayacak, bu nedenle güvenlik bizim için büyük bir endişe kaynağı değil. Tümünü kullandığımız mevcut sunucularımızda (bilgim dahilinde) SELinux etkin değil. Yöneticimin yeni edindikleri ve devre dışı bırakmaya çalıştığımızlardan bazıları, böylece kümemizdeki her şey tekdüze.


1
Benzer bir soruyu Android'de de yanıtladım. Se: SELinux'un "İzin Verici " modda olması ne kadar tehlikelidir? Neye karşı dikkatli olmalıyım? . "İzin verici" mod ile SELinux'u devre dışı bırakma arasındaki temel fark, artık AVC günlük mesajlarını alamayacağınız ve SELinux'un dosyaları etiketlerini güncel tutmayacağı, böylece tekrar etkinleştirmeden önce dosyalarınızı yeniden etiketlemeniz gerekecek.
WhiteWinterWolf

"Ne yanlış gidebilir ki?"
scai

3
@scai Bu aslında iyi bir soru. Sato Katsura'nın belirttiği gibi , SELinux'un etkin kullanımı zordur. Yanlış bir güvenlik duygusu güvenliğe zararlıdır.
Rhymoid

Yanıtlar:


14

SELinux, işletim sisteminin bir güvenlik özelliğidir . Sunucunun bazı bölümlerini diğer bölümlerden korumak için tasarlanmıştır.

Örneğin, bir web sunucusu çalıştırırsanız ve bir saldırganın rasgele komutlar çalıştırmasına izin veren "savunmasız" bir kodunuz varsa, SELinux web sunucunuzun görmesine izin verilmeyen dosyalara erişmesini önleyerek bunu azaltmaya yardımcı olabilir.

Şimdi yapabilirsiniz SELinux'u devre dışı bırakmak ve bu bir şey kırmak olmamalıdır. Sunucu normal şekilde çalışmaya devam edecektir.

Ancak güvenlik özelliklerinden birini devre dışı bırakmış olacaksınız.


10
SELinux yalnızca düzgün yapılandırıldığında iyi çalışır. Bununla birlikte, SELinux o kadar karmaşıktır ki, hiç kimse onu düzgün bir şekilde yapılandırmak için zamana ve / veya bilgiye sahip değildir ve bu nedenle ya devre dışı bırakılır ya da yönetici için arkada sürekli bir acı olarak sonuçlanır. Yine de siz buna bir güvenlik özelliği olarak inancı yatırmaya devam ediyorsunuz .
Satō Katsura

3
Selinux'un yönetilmesi gereken bir PITA olduğunu kabul ediyorum, ancak yine de bir güvenlik özelliği olarak adlandırmak hala adil ve tamamen doğru. (ben değil) öğrenmeye ve yönetmeye zaman ayırmak isteyen veya buna ihtiyaç duyanlar için paha biçilmezdir - örneğin, büyük, yüksek profilli bir web sitesi için sistem yöneticileri, yani dünyadaki komut dosyası çocuklar için çekici bir hedef.
cas

2
@SatoKatsura Sadece yapılandırılması zor veya anlaşılması zor olduğu için bir güvenlik mekanizmasının devre dışı bırakılmasını haklı çıkarmaz. Karar verilmesi her zaman kolay olmayan bu güvenlik mekanizmasına gerçekten ihtiyaç duyulması şartıyla.
scai

@scai Devre dışı bırakılması gerektiğini (veya devre dışı bırakılmaması gerektiğini) söylemedim. Söylediğim şey, SELinux'un altında yatan modelin kusurlu olması. Bazı insanlar , devre dışı bırakılabilecek tüm güvenlik mekanizmalarının kusurlu olduğunu iddia ediyor .
Satō Katsura

@SatoKatsura evet, bu yüzden parolalara sahip olmak tamamen ve tamamen anlamsızdır çünkü devre dışı bırakılabilirler (örneğin pam veya nss ile veya sadece boş bir parola ile). BTW, selinux'un devre dışı bırakılması gerektiğini söylediğini asla iddia etmedim. Ben sadece gerçek bir güvenlik özelliği olmadığını iddia iddia itiraz ediyordum.
cas

8

SELinux'un farklı görüşleri vardır. Çoğu durumda, bazı uygulamalar SELinux ile iyi oynamaz, bu nedenle bu karar tartışmalıdır (Oracle bir örnektir).
Genel olarak, SELinux, sisteminizi yıkmak isteyen kötü bir adamın önüne başka bir engel koymak için bir koruma mekanizmasıdır.

Büyük şirketlerde Sistem Yöneticisi olarak önceki görevlerimde ... Genellikle SELinux'u devre dışı bıraktım. Kullanıcılar, geliştiriciler ve yöneticiler tarafından kullanılan tüm sistemlerde tüm SELinux hatalarını takip etmek için zamanım olmadı.

Bir şeyleri devre dışı bırakmadan önce, sistemdeki dosyaları olması gerektiği şekilde yeniden etiketleyerek işe başlamak isteyebilirsiniz. Bulduğum en kolay yöntem komutu girmektir:

 # /sbin/fixfiles onboot

VEYA

 # touch /.autorelabel

Ardından, yeniden başlatın ve sistemin sistemdeki hatalı SELinux etiketlerini doğrulaması ve sıfırlaması yaklaşık aynı zaman alacak şekilde bekleyin. Bundan sonra, sunucuyu yönetmeye çalışmadan önce değiştirilmiş olabilecek uygun olmayan SELinux etiketlerini düzeltir ve düzeltir.

Ancak, bunu yapmazsa, SELinux'un zorlama modunda OLMAMASI nedeniyle sistem zarar görmez. Sadece ekstra bir koruma katmanı.


3
moot, sessiz değil. Ama mükemmel bir şekilde doğru; tüm sistemler selinux'a ihtiyaç duymaz.
phyrfox

Bir yedeği olarak SELinux'u devre dışı bırakmadan önce dosyaları global olarak yeniden etiketlemeyi denemenizi öneririz. SELinux, beklenmedik yazılım ve kullanıcıların davranışını önlemek içindir. İyi tanımlanmış bir beklenen davranışın olmadığı sistemlerde, SELinux gerçekten faydadan daha fazla zarara neden olabilir (OS tarafından sağlanan politikalar mümkün olduğunca genel olmaya çalışır, ancak bazen bu yeterli değildir).
WhiteWinterWolf

Teşekkür ederim! /sbin/fixfiles onbootCentOS'ta benim için çalıştı, öyle değil touch /.autorelabel. Koşu sealert -a /var/log/audit/audit.logşu anda 0 uyarı gösteriyor. @mdpc Bu iki komut arasındaki fark nedir?
Joseph K.

5

Basitçe söylemek gerekirse, SELinux gibi zorunlu erişim kontrolü (MAC) mekanizmalarını devre dışı bırakmak iyi bir fikir değildir ve kötü bir adam İsteğe Bağlı Erişim Kontrolü (DAC) tarafından uygulanan ad tabanlı erişim kontrollerini başarıyla atlarsa sizi bir güvenlik dezavantajına sokabilir.

Ben olsaydım, böyle bir şey yapardım

semanage fcontext -a -t ssh_home_t ~/.ssh # Adding the policy
restorecon -R -v ~/.ssh # Applying the policy

tarafından yinelenen olarak atanan tür etiketinden emin olmak için~/.ssh


1
Stilize edilmiş "SELinux". Linux bir kısaltma değildir ve "SE" kısmı bir ilkizmdir.
Rhymoid

@Rhymoid: Bu gerçekten iyi bir not .. Aslında yazdıklarım tesadüfi idi.
sjsam

2

Genel olarak konuşursak, SELinux'u devre dışı bırakmamalısınız. Neyin yanlış gittiğini anlamanıza yardımcı olabilecek araçlar var. En sevdiğim sealert örnek kullanımı:

sealert -a /var/log/audit/audit.log

OFC, SELinux'u her zaman hata ayıklama için izin verilen moda ayarlayabilirsiniz, ancak SELinux'u devre dışı bırakma veya izin verme, Red Hat tarafından ciddi güvenlik açığı olarak öğretilir.

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.