ProHoster > Blog > yönetim > Sistem yöneticileri için SELinux yardımcı sayfası: Önemli sorulara 42 yanıt
Sistem yöneticileri için SELinux yardımcı sayfası: Önemli sorulara 42 yanıt
Makalenin çevirisi ders öğrencilerine özel olarak hazırlanmıştır. "Linux Yöneticisi".
Burada yaşam, evren ve Linux'taki her şey hakkındaki önemli soruların yanıtlarını geliştirilmiş güvenlikle alacaksınız.
“Her şeyin her zaman göründüğü gibi olmadığı önemli gerçek, herkesin bildiği bir gerçektir…”
-Douglas Adams, Bir Otostopçunun Galaksi Rehberi
Emniyet. Artan güvenilirlik. Yazışma. Politika. Mahşerin Dört Atlısı sistem yöneticisi. Günlük görevlerimizin (izleme, yedekleme, uygulama, yapılandırma, güncelleme vb.) yanı sıra sistemlerimizin güvenliğinden de sorumluyuz. Üçüncü taraf sağlayıcının gelişmiş güvenliği devre dışı bırakmamızı önerdiği sistemler bile. İş gibi hissettiriyor Ethan Avı "Görev: İmkansız"dan.
Bu ikilemle karşı karşıya kalan bazı sistem yöneticileri, Mavi hapÇünkü hayatın, evrenin ve diğer şeylerin büyük sorusunun cevabını asla bilemeyeceklerini düşünüyorlar. Ve hepimizin bildiği gibi bu cevap 42'dir.
Otostopçunun Galaksi Rehberi'nin ruhuna uygun olarak, kontrol ve kullanıma ilişkin önemli soruların 42 cevabını burada bulabilirsiniz. SELinux sistemlerinizde.
1. SELinux zorunlu erişim kontrol sistemidir, yani her işlemin bir etiketi vardır. Her dosya, dizin ve sistem nesnesinin de etiketleri vardır. İlke kuralları, etiketli işlemler ve nesneler arasındaki erişimi denetler. Çekirdek bu kuralları uygular.
2. En önemli iki kavram şunlardır: Etiketleme — işaretler (dosyalar, işlemler, bağlantı noktaları vb.) ve Tip yaptırımı (işlemleri türlere göre birbirinden ayıran).
3. Doğru etiket formatı user:role:type:level (isteğe bağlı).
4. Çok seviyeli güvenlik sağlamanın amacı (Çok Düzeyli Güvenlik - MLS), kullanacakları verilerin güvenlik düzeyine göre süreçleri (domainleri) yönetmektir. Örneğin, gizli bir süreç çok gizli verileri okuyamaz.
5. Çok kategorili güvenliğin sağlanması (Çok Kategorili Güvenlik - MCS) benzer işlemleri birbirinden korur (örneğin, sanal makineler, OpenShift motorları, SELinux sanal alanları, konteynerler vb.).
6. Önyükleme sırasında SELinux modlarını değiştirmek için çekirdek seçenekleri:
autorelabel=1 → sistemin yeniden etiketlemeyi çalıştırmasına neden olur
Bağlamda çalışan süreç httpd_t, etiketli bir nesneyle etkileşime girebilir httpd_something_t.
13 Birçok komut bir argümanı kabul eder -Z bağlamı görüntülemek, oluşturmak ve değiştirmek için:
ls -Z
id -Z
ps -Z
netstat -Z
cp -Z
mkdir -Z
Bağlamlar, dosyalar üst dizinlerinin bağlamına göre (bazı istisnalar dışında) oluşturulduğunda oluşturulur. RPM'ler kurulum sırasındaki gibi bağlamlar oluşturabilir.
14 SELinux hatalarının dört ana nedeni vardır ve bunlar aşağıda 15-21. maddelerde daha ayrıntılı olarak açıklanmaktadır:
etiketleme sorunları
SELinux'un bilmesi gereken bir şey yüzünden
SELinux politikasında/uygulamasında hata
Bilgileriniz tehlikeye girebilir
15Etiketleme sorunu: dosyalarınız varsa /srv/myweb yanlış işaretlenirse erişim reddedilebilir. Bunu düzeltmenin bazı yolları şunlardır:
Etiketi biliyorsanız: # semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?'
Eşdeğer işaretlere sahip bir dosya biliyorsanız: # semanage fcontext -a -e /srv/myweb /var/www
Bağlamı geri yükleme (her iki durum için): # restorecon -vR /srv/myweb
16Etiketleme sorunu: dosyayı kopyalamak yerine taşırsanız dosya orijinal içeriğini korur. Bu sorunu düzeltmek için:
Bağlam komutunu şu etiketle değiştirin: # chcon -t httpd_system_content_t /var/www/html/index.html
Bağlam komutunu bağlantı etiketiyle değiştirin: # chcon --reference /var/www/html/ /var/www/html/index.html
Bağlamı geri yükleyin (her iki durumda da): # restorecon -vR /var/www/html/
17 Eğer Bilmeniz gereken SELinuxHTTPD'nin 8585 numaralı bağlantı noktasını dinlediğini SELinux'a söyleyin:
# semanage port -a -t http_port_t -p tcp 8585
18Bilmeniz gereken SELinux SELinux politikasının bazı bölümlerinin, SELinux politikasının üzerine yazıldığı bilgisi olmadan çalışma zamanında değiştirilmesine izin veren Boolean değerleri. Örneğin httpd'nin e-posta göndermesini istiyorsanız şunu girin: # setsebool -P httpd_can_sendmail 1
19Bilmeniz gereken SELinux SELinux ayarlarını etkinleştirmek/devre dışı bırakmak için mantıksal değerler:
Tüm boole değerlerini görmek için: # getsebool -a
Her birinin açıklamasını görmek için: # semanage boolean -l
Bir boole değeri ayarlamak için: # setsebool [_boolean_] [1|0]
Kalıcı bir kurulum için şunu ekleyin: -P. Örneğin: # setsebool httpd_enable_ftp_server 1 -P
20 SELinux politikaları/uygulamaları aşağıdakiler dahil hatalar içerebilir:
25 Bir SELinux hatası oluşursa günlüğü kullanın setroubleshoot birkaç olası çözüm sunuyor.
Örneğin, journalctl:
Jun 14 19:41:07 web1 setroubleshoot: SELinux is preventing httpd from getattr access on the file /var/www/html/index.html. For complete message run: sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e
# sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e
SELinux is preventing httpd from getattr access on the file /var/www/html/index.html.
***** Plugin restorecon (99.5 confidence) suggests ************************
If you want to fix the label,
/var/www/html/index.html default label should be httpd_syscontent_t.
Then you can restorecon.
Do
# /sbin/restorecon -v /var/www/html/index.html
26 Günlüğe kaydetme: SELinux bilgileri birçok yere kaydeder:
SELinux'un izin verilen modda çalıştığından emin olun: # setenforce 0
Bir komut dosyası kullanın fixfilesdosyaların bir sonraki yeniden başlatmada yeniden etiketlendiğinden emin olmak için:
# fixfiles -F onboot # reboot
34 Belirli bir MLS aralığına sahip bir kullanıcı oluşturun: # useradd -Z staff_u john
Komutu kullanma useradd, yeni kullanıcıyı mevcut bir SELinux kullanıcısıyla eşleştirin (bu durumda, staff_u).
35 SELinux ve Linux kullanıcıları arasındaki eşlemeyi görüntülemek için: # semanage login -l
36 Kullanıcı için belirli bir aralık tanımlayın: # semanage login --modify --range s2:c100 john
37 Kullanıcının ana dizin etiketini düzeltmek için (gerekirse): # chcon -R -l s2:c100 /home/john
38 Mevcut kategorileri görüntülemek için: # chcat -L
39 Kategorileri değiştirmek veya kendi kategorinizi oluşturmaya başlamak için dosyayı aşağıdaki gibi düzenleyin:
/etc/selinux/_<selinuxtype>_/setrans.conf
40 Belirli bir dosya, rol ve kullanıcı bağlamında bir komut veya betiği çalıştırmak için: