SELinux nədir?

SELinux Nədir? – Təhlükəsizliyin ətraflı IzahıSELinux (Security-Enhanced Linux), Linux nükilinin (kernel) daxilində olan bir təhlukəsizlik mexanizmidir. O, müəyyən proseslərin, faylların və digər resursların öz aralarında əlaqəsini məhdudlaşdıran zorunlu giriş nəzarətini (İng. Mandatory Access Control – MAC) təmin edir.
SELinux-un tarixi və əhəmiyyəti haqqında SELinux, ilk olaraq 2000-ci illərin əvvəllərində ABŞ-ın Milli Təhlukəsizlik Agentliyi (NSA) tərəfindən yaradılıb. Onun əsas məqsədi Linux sistemlərində təhlukəsizlik sınıqlarının (çatlaqlarının) qarşısını almaq və sızmalara mane olmaq idi.
Adi Linux fayl icazə sistemi (DAC – Discretionary Access Control) proqramlara və istifadiçilərə məhdud nəzarət imkanı verir. SELinux bu icazə sisteminə əlavə olaraq MAC qaydalarını tətbiq edərək sistemin təhlükəsizliyini artırır.
SELinux-un işləmə prinsipinə baxaq SELinux-un işləmə prinsipi obyektlər (məsələn, fayllar, proseslər) üzərində təyin olunan sıx əlaqə nəzarəti sistemi ilə əlaqəlidir. Bəzi əsas anlayışlar
Policy (Siyasət) – Sistem administrasiyası tərəfindən təyin olunan qaydalardır. Bu qaydalar sistemin hər hansı bir hissəsinə kimin və ya nəyin daxil ola biləcəyini müəyyən edir.
Context (Kontekst) – Hər bir fayl, proses və istifadəçi SELinux konteksti ilə təyin olunur. Məsələn:
-rwxr-xr-x. root root unconfined_u:object_r:bin_t:s0 /bin/bash
Burada unconfined_u, object_r, bin_t kimi ifadələr SELinux kontekstini ifadə edir.
Modes (Rejimlər) – SELinux üç rejimdə işləyə bilər:
Enforcing – Siyasətlər tam qüvvədədir və qaydalar zorla tətbiq olunur.
Permissive – Qaydalar tətbiq olunmur, amma SELinux hadisələri jurnal faylına yazılır.
Disabled – SELinux tamamilə deaktiv edilib.
SELinux Statusunu necə yoxlamaq olar?
SELinux-un aktiv olub-olmadığını yoxlamaq üçün aşağıdakı komandanı işlədə bilərsiniz
sestatus
Nəticə təxminən belə görünəcək
SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Current mode: enforcing Policy version: 31
Əgər SELinux status: disabled görürsünüzsə, deməli SELinux deaktiv edilib.
SELinux-u necə idarə etmək olar?
1. SELinux rejimini dəyişmək
SELinux-un işləmə rejimini müvəqqəti dəyişmək üçün:
Enforcing rejimini Permissive etmək:
sudo setenforce 0
Permissive rejimini Enforcing etmək:
sudo setenforce 1
Mövcud rejimi yoxlamaq üçün:
getenforce
Bu əmrlər yalnız cari sistem açıq olduğu müddətcə qüvvədə qalır. Dəyişiklikləri qalıcı etmək üçün /etc/selinux/config faylını redaktə etmək lazımdır:
sudo nano /etc/selinux/config
Daha sonra SELINUX=enforcing və ya SELINUX=permissive olaraq dəyişdirin.
2. SELinux kontekstini yoxlamaq və dəyişmək
Hər hansı bir faylın SELinux kontekstini yoxlamaq üçün:
ls -Z /var/www/html/index.html
Faylın kontekstini dəyişmək üçün
sudo chcon -t httpd_sys_content_t /var/www/html/index.html
Konteksti daimi saxlamaq üçün aşağıdakı komandanı icra edə bilərsiniz
sudo restorecon -Rv /var/www/html
SELinux-u Aktiv və ya Deaktiv etmək
Əgər SELinux-u tamamilə deaktiv etmək istəyirsinizsə, /etc/selinux/config faylını redaktə edib SELINUX=disabled olaraq dəyişə bilərsiniz. Daha sonra sistemi yenidən başladın:
sudo reboot
Lakin SELinux-u deaktiv etmək tövsiyə edilmir, çünki bu, sisteminizi təhlükəsizliyə qarşı həssas edə bilər.
SELinux-un Üstünlükləri və Çatışmazlıqlarına aşağıda nəzər saldıqda
Üstünlüklərinə nəzər salsaq
- Proqramların bir-birinə müdaxiləsini məhdudlaşdırır.
- Əsas sistem fayllarının icazəsiz dəyişdirilməsinin qarşısını alır.
- Root istifadəçisinin belə hər şeyi istədiyi kimi dəyişməsinin qarşısını ala bilər.
Çatışmazlıqlarına baxdıqda
- Konfiqurasiyası çətindir və yeni istifadəçilər üçün qarışıq görünə bilər.
- Bəzi tətbiqlər SELinux siyasətləri ilə uyğun gəlməyə bilər, əlavə tənzimləmə tələb edə bilər.
SELinux Linux sistemlərində təhlükəsizliyi artıran güclü bir mexanizmdir. O, Mandatory Access Control (MAC) siyasətləri tətbiq edərək proqramların və istifadəçilərin icazələrini ciddi şəkildə məhdudlaşdırır. Əgər Linux server administrasiyası ilə məşğulsunuzsa, SELinux-u öyrənmək və istifadə etmək vacibdir.
SELinux ilə işləmək üçün əsas əmrləri və konfiqurasiyanı başa düşmək, sisteminizin təhlükəsizliyini təmin etmək üçün əhəmiyyətlidir. Əgər SELinux sizə çətin görünürsə, Permissive rejimdə işlədib, onun fəaliyyətini izləmək və tədricən öyrənmək daha faydalı ola bilər.