Chapter 5

Managing Selinux Security

dnf install -y policycoreutil policycoreutil-python

Adi user/group/others səlahiyyətləri DAC (discretionary access control) sayılır, Selinuxun obyekt yönümlü qaydaları isə MAC (mandatory access control) sayılır.

Selinuxun əsas məqsədi istifadəçi məlumatlarını comprimised olan system service-lərindən qorumaqdır. Selinux disable olunduğu halda web servisin compromise edilməsi /tmp və /var/tmp -yə faylların yazılması ilə nəticələnə bilir. Selinux enabled olduqda isə bu hal baş vermir.

Üç modu var: enforcing, permissive (troubleshooting üçün istifadə olunur), disabled

Selinux logs located in:

grep AVC /var/log/audit/audit.log
getenforce - hazirki veziyyete baxmaqcun
setenforce - enforce veya permissive modlari aktivlesdirmekcundur, 
# setenforce ile edilen deyisiklik rebootdan sonra oz quvvesini itirir.

/etc/sysconfig/selinux - OS start olanda selinuxa default config vermekcundur. 
Hemin faylda:
enforcing=0 - permissive modda basladir
enforcing=1 - enforcing modda basladir
selinux=0   - SELinux disable edir
selinux=1   - SELinux enable edir

Disalbe etmeyin ikinci yolu:
System boot olarken "e" basib, kerneli load eden setrin axirinda yazmaq lazimdmir:
selinux=0
sonra ise basmaq lazimdir: Ctrl+x

Selinux targeting haqqında???

  • Targeted: Focuses on critical processes, less restrictive.

  • Minimum: More restrictive, confines additional processes.

  • MLS: Highly restrictive, implements fine-grained Multi-Level Security

SELinux file contexts

Yeni fayllar adətən öz SELinux contextini üst qovluqdan götürür.

Context labels:

adların bitişinə görə:

  • u - Selinux user

  • r - role

  • t - type

  • s - level (0 is minimum)

/tmp qovluğunda 2 fayl yaradıb biri mv digərini cp əmri ilə /var/www/html qovluğuna ataq:

mv əmrindən istifadə etdikdə faylın selinux context type-ı dəyişmir. cp əmrindən istifadə etdikdə isə dəyişir.

Changing file context

Context dəyişmək üçün mövcud olan əmrlər:

chcon

Test və eksperiment məqsədləri üçün istifadə olunur. Çünki edilmiş dəyişiklik heçvaxt "SELinux context database"də saxlanılmır. restorecon əmri icra edildikdə chcon əmrindən sonrakı dəyişikliklər qüvvədən düşür.

semanage

semanage manpage-də qəşənq nümunələr olduğu üçün baxmağa dəyər:

web qovluğunun contextini httpd_sys_content_t-yə dəyişmək üçün:

restorecon

Dəyişiklikləri yadda saxlamaqçün istifadə olunur.

Düzgün contextin tapılması

SELinux booleans

Əgər ftp xidmətində anonymous write aktivləşdirmişiksə selinuxda onu config etməyənə kimi işləməyəcək. config etmək üçün:

SELinux Port Access

SSH default portu dəyişdirmişiksə, selinuxa görə sysctl vasitəsilə sshd restart edildikdə error verə bilər.

selinux-u permissive moda dəyişdikdə əgər problem aradan qalxırsa deməli problem selinuxdadır.

Yuxarıdakı əmr vasitəsilə loqları analiz etdikdə ssh barəsində çıxan xətaları görmək mümkündür.

ssh configinə baxsaq orda da aşağıdakı əmr sətrinin mövcud olduğunu görmək olar. default port dəyişdikdə selinux-a bu barədə xəbər etmək lazımdır.

LOGs

Troubleshooting

Last updated

Was this helpful?