SELinux-un qurulması, aktivləşdirilməsi, söndürülməsi. SELinux - nəzəriyyə Subyektlər və obyektlər

Təhlükəsizliyi artıran Linux (SELinux) Linux-da girişə nəzarət təhlükəsizlik siyasətlərinə dəstək verən xüsusiyyət mexanizmidir.

SELinux istifadəçilərə və ya utilitlərə daxil olmaq üçün qaydalar yarada bilər ki, bu da bu imkanları və onların davranışlarını qaydalar şəklində müəyyən etməklə utilitlərin bəzi giriş imkanlarını məhdudlaşdırmağa imkan verir və SELinux-dan istifadə edən ƏS bu qaydalara riayət olunmasına nəzarət edəcək. Bu mövzuda sizə CentOS-da SELinux-u necə söndürmək və ya aktivləşdirmək barədə məlumat verəcəyəm. Bəzi paylamalarda defolt olaraq SELinux aktivləşdirilib ki, siz SELinux-un necə işlədiyini və ya onu necə konfiqurasiya edəcəyinizi başa düşmürsinizsə, bu, bəzi arzuolunmaz davranışlara səbəb ola bilər.

SELinux-u söndürmək üçün bu məqalədə qeyd olunan 4 müxtəlif üsuldan hər hansı birini istifadə edə bilərsiniz.

SELinux Linux nüvəsində müəyyən edilmiş məcburi giriş nəzarətləri daxil olmaqla təhlükəsizlik siyasətlərini tətbiq edəcək. Sistemdəki hər bir fayl və proses SELinux tərəfindən istifadə olunacaq xüsusi qısa yollarla etiketlənəcək. Siz əmrdən istifadə edə və bu qısa yollara aşağıda göstərildiyi kimi baxa bilərsiniz:

# ls -Z /etc/

Bu təqdim etdiyim tam siyahı deyil, sizin üçün fərqli ola bilər.

CentOS-da SELinux-u söndürmək üçün 1-ci üsul. Müvəqqəti olaraq.

SELinux-u müvəqqəti olaraq söndürmək üçün aşağıda göstərildiyi kimi /selinux/enforce redaktə etməlisiniz. Nəzərə alın ki, sistem yenidən başladıqdan sonra bu seçim artıq mövcud olmayacaq.

Beləliklə, SELinux-un serverdə hansı vəziyyətə sahib olduğunu yoxlayaq:

# cat /selinux/enforce 1

Və ya istifadə edə bilərsiniz:

# /usr/sbin/sestatus SELinux statusu: aktiv SELinuxfs montajı: /selinux Cari rejim: konfiqurasiya faylından icazə verən rejim: tətbiq olunan Siyasət versiyası: 24 Konfiqurasiya faylından siyasət: hədəflənmiş

Bu o deməkdir ki, işə salınıb. Onu söndürmək üçün aşağıdakı əmrdən istifadə edin:

# echo 0 > /selinux/enforce

Və yenidən yoxlayaq:

# cat /selinux/enforce 0

Setenforce üçün mümkün variantlar bunlardır:

  • 1 (aktiv edin).
  • 0 (deaktiv).

SELinux-u söndürmək üçün aşağıda göstərildiyi kimi setenforce əmrindən də istifadə edə bilərsiniz. Bu əmrin bir nümunəsidir:

#setenforce 0

Və ya başqa bir istifadə halını təqdim edəcəyəm:

# setenforce İcazəli

PS: Yoxlamaq üçün başqa bir əla əmr var:

# getenforce İcazəli

CentOS-da SELinux-u söndürməyin 2-ci üsulu. Birdəfəlik!

CentOS-da SELinux-un vəziyyətini yoxlayaq.

# cat /etc/selinux/config

Mən onu yandırdım, söndürmək istəyirəm, sonra bunu etmək üçün konfiqurasiyanı açıb yazmalısınız:

# vim /etc/selinux/config

Tapmaq lazımdır:

SELINUX=aktivdir

Əvəz edilib:

Aşağıdakı ekran görüntüsündə göstərildiyi kimi:

Bundan sonra əməliyyat sistemimizi yenidən başlatmalıyıq:

# yenidən başladın

3-cü üsul. Grub yükləyicisinin özündə SELinux-u söndürmək.

Sisteminizdə /etc/selinux/config tapa bilmirsinizsə, aşağıda göstərildiyi kimi GRUB yükləmə yükləyicisinə parametr ötürməklə SELinux-u söndürə bilərsiniz.

# pişik /boot/grub/grub.conf

4-cü üsul. SELinux-da yalnız xüsusi bir xidməti söndürmək - HTTP/Apache

Əgər siz bütün SELinux-u deaktiv etməkdə maraqlı deyilsinizsə, yalnız müəyyən bir xidmət üçün SELinux-u deaktiv edə bilərsiniz. Məsələn, siz HTTP/Apache-yə xidmət üçün SELinux-u söndürmək istəyirsiniz, sonra /etc/selinux/targeted/booleans-da httpd_disable_trans dəyişənini dəyişdirməlisiniz.

Biz artıq Habré-də SELinux haqqında yazmışıq, lakin bu sistemlə bağlı çoxlu ətraflı təlimatlar dərc olunmayıb. Bu gün biz SELinux-da sistem haqqında məlumatdan başlayaraq siyasətlərin çevik konfiqurasiyasına qədər tam belə ətraflı təlimatı dərc edirik.
Yazının başa düşülməsi çətin olan “vərəqə” çevrilməməsi üçün təlimatı iki hissəyə bölmək qərarına gəldik. Birincisi sistemin özü və onun bəzi xüsusiyyətləri haqqında danışacaq. İkincisi, siyasətin qurulması ilə bağlıdır. İndi birinci hissəni dərc edirik, ikinci hissə bir az sonra çıxacaq.

1. Giriş

SELinux (SELinux) nüvə səviyyəsində həyata keçirilən məcburi girişə nəzarət sistemidir. Bu sistem ilk dəfə CentOS-un dördüncü versiyasında ortaya çıxdı və 5 və 6-cı versiyalarda tətbiq əhəmiyyətli dərəcədə əlavə edildi və təkmilləşdirildi. Bu təkmilləşdirmələr SELinux-a bir çox cari problemləri effektiv şəkildə həll etməyə qadir olan universal sistemə çevrilməyə imkan verdi. Yadda saxlamaq lazımdır ki, klassik Unix hüquq sistemi əvvəlcə tətbiq edilir və nəzarət yalnız bu ilkin yoxlama uğurlu olarsa SELinux-a keçəcək.

1.1 Bəzi cari problemlər.

SELinux-un praktik dəyərini başa düşmək üçün standart girişə nəzarət sisteminin kifayət etmədiyi bir neçə nümunəyə baxaq. SELinux söndürülübsə, onda siz yalnız DAC (ixtiyari giriş nəzarəti) və ya ACL (giriş nəzarəti siyahıları) daxil olan klassik ixtiyari giriş nəzarətinə daxil ola bilərsiniz. Yəni, bəzi hallarda tamamilə qeyri-kafi ola bilən istifadəçilər və istifadəçi qrupları səviyyəsində yazma, oxuma və icra hüquqlarının manipulyasiyasından gedir. Misal üçün:

- Administrator istifadəçinin hərəkətlərinə tam nəzarət edə bilmir. Məsələn, istifadəçinin bütün digər istifadəçilərə SSH açarları kimi öz həssas fayllarına oxumaq hüquqlarını verməsi tamamilə mümkündür.

Proseslər təhlükəsizlik parametrlərini dəyişə bilər. Məsələn, istifadəçinin poçtunu ehtiva edən fayllar yalnız bir xüsusi istifadəçi tərəfindən oxuna bilər, lakin poçt müştərisi giriş hüquqlarını yaxşı dəyişə bilər ki, bu fayllar hamı tərəfindən oxuna bilsin.

Proseslər onları işə salan istifadəçinin hüquqlarını miras alır. Məsələn, Firefox brauzerinin troyanla yoluxmuş versiyası istifadəçinin SSH açarlarını oxuya bilir, baxmayaraq ki, bunun üçün heç bir səbəb yoxdur.

Əslində, ənənəvi seçmə girişə nəzarət (DAC) modelində girişin yalnız iki səviyyəsi yaxşı həyata keçirilir - istifadəçi və super istifadəçi. Hər bir istifadəçinin tələb olunan minimum imtiyazlara malik olmasına imkan verən sadə üsul yoxdur.
Əlbəttə ki, klassik təhlükəsizlik modeli çərçivəsində bu problemlərin aradan qaldırılması üçün bir çox üsul var, lakin onların heç biri universal deyil.

1.1.1 SELinux-da istifadə olunan əsas terminlər:

Domen- prosesin yerinə yetirə biləcəyi hərəkətlərin siyahısı. Tipik olaraq, bir domen prosesin fəaliyyət göstərə biləcəyi minimum mümkün hərəkətlər toplusu kimi müəyyən edilir. Beləliklə, proses nüfuzdan düşərsə, təcavüzkar çox zərər verə bilməyəcək.

Rol- tətbiq oluna bilən domenlərin siyahısı. Müəyyən bir domen rol üçün domenlər siyahısında deyilsə, bu domendən olan hərəkətlər tətbiq edilə bilməz.

Növ- obyektə münasibətdə icazə verilən hərəkətlər toplusu. Bir növ domendən onunla fərqlənir ki, o, borulara, kataloqlara və fayllara tətbiq oluna bilər, domen isə proseslərə tətbiq olunur.

Təhlükəsizlik konteksti- bütün SELinux atributları - rollar, növlər və domenlər.

1.2 Ənənəvi təhlükəsizlik modelinin problemlərinin həlli.

SELinux hər bir xidmət, istifadəçi və proqram üçün minimum tələb olunan imtiyazlar modelini daha ciddi şəkildə izləyir. Varsayılan olaraq, sistemin hər bir elementi yalnız onun işləməsi üçün vacib olan hüquqlara malik olduqda "qadağan rejimi" təyin edilir. Əgər istifadəçi, proqram və ya xidmət faylı dəyişdirməyə və ya onun həlli üçün aydın şəkildə lazım olmayan resursa daxil olmağa cəhd edərsə, o zaman onlara sadəcə olaraq giriş qadağan ediləcək və belə cəhd qeydiyyata alınacaq.

SELinux nüvə səviyyəsində həyata keçirilir, ona görə də tətbiq proqramları bu məcburi girişə nəzarət sisteminin versiyası, onun işləmə xüsusiyyətləri və s. haqqında ümumiyyətlə heç nə bilməyə bilər. Düzgün konfiqurasiya olunarsa, SELinux üçüncü tərəf proqram və xidmətlərinin fəaliyyətinə təsir göstərməyəcək. Tətbiq bu girişə nəzarət sistemindən gələn səhv mesajlarını tutmağa qadir olsa da, tətbiqdən istifadənin asanlığı əhəmiyyətli dərəcədə artır. Həqiqətən, qorunan resursa və ya fayla daxil olmaq cəhdi olarsa, SELinux “giriş rədd edildi” ailəsindən əsas proqrama xəta göndərir. Lakin bir neçə proqram SELinux-dan əldə edilən sistem zənglərinin qaytarılması kodlarından istifadə edir.

Bütün sisteminizin təhlükəsizliyini necə təkmilləşdirə biləcəyinizi göstərmək üçün SELinux-dan istifadənin bəzi nümunələri buradadır.

- ssh düymələrini oxuya bilən proqramların siyahısının yaradılması və konfiqurasiyası.

Poçt müştərisi vasitəsilə məlumatlara icazəsiz girişin qarşısının alınması.

Brauzeri elə konfiqurasiya edin ki, o, yalnız istifadəçinin ev qovluğunda işləmək üçün lazım olan faylları və qovluqları oxuya bilsin.

2. SELinux iş rejimləri

SELinux-un üç əsas iş rejimi var, defolt olaraq Tətbiqetmə rejimi təyin olunur. Bu, kifayət qədər sərt rejimdir və lazım gələrsə, son istifadəçi üçün daha əlverişli bir şeyə dəyişdirilə bilər.

İcra: Defolt rejim. Bu rejim seçildikdə, mövcud təhlükəsizlik siyasətini bir şəkildə pozan bütün hərəkətlər bloklanacaq və pozuntuya cəhd jurnalda qeyd olunacaq.

İcazə verən: Bu rejimdən istifadə edərkən, mövcud təhlükəsizlik siyasətini pozan bütün hərəkətlər haqqında məlumat jurnalda qeyd olunacaq, lakin hərəkətlərin özləri bloklanmayacaq.

Əlil: Məcburi girişə nəzarət sisteminin tamamilə söndürülməsi.

Siz İdarəetmə menyusunda (sistem-config-selinux) mövcud olan xüsusi GUI alətindən istifadə edərək cari rejimi və digər SELinux parametrlərinə baxa bilərsiniz (və lazım olduqda onu dəyişdirə bilərsiniz). Əgər siz konsolda işləməyə öyrəşmisinizsə, cari vəziyyətə sestatus əmri ilə baxa bilərsiniz.

# sestatus SELinux statusu: aktiv SELinuxfs montajı: /selinux Cari rejim: konfiqurasiya faylından Modu tətbiq edir: Siyasət versiyasını tətbiq edir: 21 Konfiqurasiya faylından siyasət: hədəflənmiş

Getenforce əmrindən istifadə edərək SELinux statusunu da öyrənə bilərsiniz.
"Setenforce" əmri sizə Təcrübəli və İcazəli rejimlər arasında sürətlə keçid etməyə imkan verir, dəyişikliklər yenidən başlamadan qüvvəyə minir. Lakin SELinux-u aktivləşdirsəniz və ya söndürsəniz, yenidən yükləmə tələb olunur, çünki təhlükəsizlik etiketləri fayl sistemində yenidən quraşdırılmalıdır.
Sistem hər dəfə yükləndikdə tətbiq ediləcək standart rejimi seçmək üçün /etc/selinux/config faylında rejimlərdən birini - "məcburi", "icazə verən" və ya " təyin edərək "SELINUX=" xəttinin dəyərini təyin edin. əlil". Məsələn: "SELINUX=icazə verən".

3. SELinux siyasətləri

Daha əvvəl qeyd edildiyi kimi, SELinux defolt olaraq Təcrübə rejimində işləyir, icazə veriləndən başqa hər hansı hərəkətlər avtomatik bloklandıqda, hər bir proqram, istifadəçi və ya xidmət yalnız işləmək üçün lazım olan imtiyazlara malikdir, lakin başqa heç nə yoxdur. Bu kifayət qədər sərt siyasətdir, onun həm üstünlükləri var - informasiya təhlükəsizliyinin ən yüksək səviyyəsi, həm də çatışmazlıqları - sistemin bu rejimdə konfiqurasiyası sistem administratorları üçün çoxlu əməklə bağlıdır, əlavə olaraq, istifadəçilərin sistemdən ən azı qeyri-ciddi şəkildə istifadə etmək istəsələr, giriş məhdudiyyətləri ilə üzləşirlər. Bu yanaşma Müəssisə sektorunda məqbuldur, lakin son istifadəçi kompüterlərində qəbuledilməzdir. Bir çox idarəçilər bu cür problemlərin qarşısını almaq üçün sadəcə olaraq SELinux-u iş stansiyalarında söndürürlər.

Bunun qarşısını almaq üçün, məsələn, httpd, adlandırılmış, dhcpd, mysqld kimi əsas tətbiqlər və xidmətlər üçün təcavüzkarın vacib məlumatlara çıxış əldə etməsinə imkan verməyəcək əvvəlcədən konfiqurasiya edilmiş hədəf siyasətləri müəyyən edilir. Siyasətinin müəyyən edilmədiyi proqramlar unconfined_t domenində işləyir və SELinux tərəfindən qorunmur. Beləliklə, düzgün seçilmiş hədəf siyasətləri istifadəçi üçün lazımsız problemlər yaratmadan məqbul təhlükəsizlik səviyyəsinə nail olmağa imkan verir.

4. SELinux-da girişə nəzarət

SELinux aşağıdakı giriş idarəetmə modellərini təqdim edir:

Növün Tətbiqi (TE): Hədəf siyasətlərində istifadə olunan əsas giriş nəzarət mexanizmi. İcazələri ən aşağı səviyyədə ətraflı şəkildə idarə etməyə imkan verir. Sistem administratoru üçün ən çevik, eyni zamanda ən çox əmək tələb edən mexanizm.

Rol Əsaslı Giriş Nəzarəti (RBAC): Bu modeldə giriş hüquqları rollar kimi həyata keçirilir. Rol sistemin bir və ya bir neçə elementi tərəfindən sistemin digər hissələri üzərində müəyyən hərəkətləri yerinə yetirmək icazəsidir. Əslində, RBAC TE-nin sonrakı inkişafıdır.

Çox Səviyyəli Təhlükəsizlik (MLS): bütün sistem obyektlərinə müəyyən giriş səviyyəsinin təyin edildiyi çoxsəviyyəli təhlükəsizlik modeli. Girişin icazəsi və ya rədd edilməsi yalnız bu səviyyələr arasındakı əlaqə ilə müəyyən edilir.

SELinux daxilindəki bütün proseslər və fayllar təhlükəsizlik kontekstinə malikdir.
Apache veb serverinin /var/www/html/index.html ünvanında yerləşən başlanğıc səhifəsinə daha yaxından nəzər salaraq praktikada kontekstə nəzər salaq.

$ ls -Z /var/www/html/index.html -rw-r--r-- istifadəçi adı istifadəçi adı system_u:object_r:httpd_sys_content_t /var/www/html/index.html

Standart fayl icazələrinə əlavə olaraq biz SELinux təhlükəsizlik kontekstini görə bilərik: system_u: object_r: httpd_sys_content_t.

Kontekst user:rol:type:mls-ə əsaslanır, lakin mls sahəsi gizlədildiyi halda istifadəçi:rol:type sahələri göstərilir. Hədəf siyasətini də görə bilərik, bu halda httpd_sys_content_t.

İndi "httpd" prosesi (Apache veb serveri) üçün SELinux təhlükəsizlik kontekstinə baxaq:

$ps axZ | grep httpd system_u:system_r:httpd_t 3234 ? Ss 0:00 /usr/sbin/httpd

Gördüyümüz kimi, bu proses httpd_t domenində işləyir.

Yaxşı, indi ev kataloqumuzdakı faylın təhlükəsizlik kontekstinə baxaq:

$ ls -Z /home/username/myfile.txt -rw-r--r-- istifadəçi adı istifadəçi adı user_u:object_r:user_home_t /home/username/myfile.txt

Faylın user_home_t tipində olduğunu görürük, bu tip standart olaraq ev kataloqundakı bütün fayllara təyin edilir.
Girişə yalnız eyni tipli elementlər arasında icazə verilir, buna görə də Apache veb serveri httpd_sys_content_t tipli /var/www/html/index.html faylını asanlıqla oxuya bilir. Eyni zamanda, Apache httpd_t domenində işlədiyinə və userid:username sahələrinin doldurulmadığına görə o, home/username/myfile.txt faylına daxil ola bilmir, baxmayaraq ki, bu fayl heç bir sənədi olmayan proseslər tərəfindən oxuna bilər. hədəf müəyyən edilmiş siyasət. Bu yolla, Apache veb serveri təhlükə altına düşərsə, təcavüzkar httpd_t domenində olmayan fayllara daxil ola və ya prosesləri işlədə bilməyəcək.

5. SELinux problemlərinin aradan qaldırılması

Gec-tez elə bir vəziyyət yaranacaq ki, siz SELinux-un nəyəsə girişi rədd etdiyi bir vəziyyətlə qarşılaşacaqsınız. Girişdən imtina üçün bir neçə əsas səbəb var:

Yanlış etiketlənmiş fayl.
- Proses yanlış kontekstdə gedir
- Siyasətdə səhv. Proses siyasət yaratarkən nəzərə alınmayan fayla giriş tələb edir.
- İşğal cəhdi.

Girişin rədd edilməsinin ilk üç səbəbi olduqca asanlıqla həll edilir, müdaxilə cəhdi zamanı həyəcan siqnalı verilir və istifadəçiyə müvafiq bildiriş göndərilir.
İstənilən problemi həll etmək üçün SELinux jurnalına baxmaq kifayətdir. Varsayılan olaraq, auditd prosesi tərəfindən /var/log/audit/audit.log faylına yazılır. Əgər bu proses işləmirsə, o zaman SELinux /var/log/messages faylına daxil olur, bu halda bütün girişə nəzarət sisteminin mesajları AVC düyməsi ilə qeyd olunur ki, bu da məsələn, lazımi sətirləri cəld filtrləməyə imkan verir. grep əmrindən istifadə etməklə.
Dağıtımların ən son versiyalarına (CentOS 5-dən başlayaraq) SELinux jurnalını rahat və istifadəçi dostu formada göstərməyə imkan verən qrafik istifadəçi interfeysi olan yardım proqramı daxildir. Siz sealert -b yazaraq konsoldan zəng edə bilərsiniz. Köməkçi proqram problemlərin aradan qaldırılması paketinin bir hissəsidir. X server işləmirsə, aşağıdakı əmrlə insan tərəfindən oxuna bilən hesabatlar yarada bilərsiniz:

Sealert -a /var/log/audit/audit.log > /path/to/mylogfile.txt

5.1 Fayl təhlükəsizliyi kontekst etiketlərinin dəyişdirilməsi.

"Chcon" əmri sizə faylların və ya qovluqların SELinux kontekstini dəyişdirməyə imkan verir ki, "chown" və "chmod" əmrləri standart girişə nəzarət sistemi daxilində faylın sahibini və ya giriş hüquqlarını dəyişməyə imkan verir.

Gəlin bir neçə nümunəyə baxaq.
Tutaq ki, sistemdə Apache veb serveri quraşdırılıb və biz saytların saxlandığı qovluğu (defolt olaraq bu /var/www/html/-dir) məsələn, /html/-ə dəyişib indeks yaratmalıyıq. html faylı bu qovluqda.
# mkdir /html # touch /html/index.html # ls -Z /html/index.html -rw-r--r-- kök kök user_u:object_r:default_t /html/index.html # ls -Z | grep html drwxr-xr-x kök kök user_u:object_r:default_t html

Yuxarıda görürük ki, təhlükəsizlik kontekstində həm /html kataloqu, həm də /html/index.html faylı default_t tiplidir. Bu o deməkdir ki, biz Apache-ni işə salsaq və bu kataloq və ya faylla işləməyə çalışsaq, SELinux bizə girişi rədd edəcək. Və bu tamamilə düzgün olacaq, çünki Apache ilə qarşılıqlı əlaqədə olan fayllar üçün düzgün təhlükəsizlik konteksti httpd_sys_content_t-dir.
Konteksti dəyişdirək və hər şeyin düzgün aparıldığını yoxlayaq:

# chcon -v --type=httpd_sys_content_t /html konteksti user_u:object_r:httpd_sys_content_t olaraq dəyişdirildi # chcon -v --type=httpd_sys_content_t /html/index.html /html/index.html konteksti user_u:object_r olaraq dəyişdirildi :httpd_sys_content_t # ls -Z /html/index.html -rw-r--r-- kök kök istifadəçi_u:object_r:httpd_sys_content_t /html/index.html # ls -Z | grep html drwxr-xr-x kök kök user_u:object_r:httpd_sys_content_t html
Hər bir faylı və hər bir kataloqu əl ilə emal etmək lazım deyil, sadəcə olaraq -R rekursiv kataloq keçid seçimindən istifadə edə bilərsiniz:

# chcon -Rv --type=httpd_sys_content_t /html

Təhlükəsizlik kontekstindəki bu cür dəyişikliklər yenidən yükləmələr arasında davam edəcək, lakin fayl sisteminin etiketləri dəyişdirilərsə, dəyişikliklər itiriləcək. Baxım və istismar zamanı bu qeyri-adi deyil. Belə bir vəziyyətdə düzgün həll (təbii ki, sınaqdan sonra) əlavə bir qayda yaratmaq və sonra onu yerli yerli qaydalarla birləşdirmək olardı. Beləliklə, əsas qaydalardan daha yüksək prioritet olacaqdır.

SELinux-un fayl sistemi etiketlərini dəyişdirdikdən sonra da düzgün işləməsi üçün biz SELinux-u GUI interfeysi ilə idarə etmək üçün hər iki alətdən və semanage konsol yardım proqramından istifadə edə bilərik:

Semanage fcontext -a -t httpd_sys_content_t "/html(/.*)?"

Yuxarıdakı nümunədə biz /html qovluğunda yerləşən bütün fayllara httpd_sys_content_t kontekstini təyin etdik.

5.2 SELinux təhlükəsizlik kontekstinin bərpası.

"Restorecon" əmri təhlükəsizlik kontekstini standart olaraq təyin edilmiş birinə dəyişdirməyə imkan verir.
Yenə də nümunə kimi Apache veb serverindən istifadə edirik. Tutaq ki, istifadəçi öz ana kataloqunda index.html faylının surətini redaktə edib (mv əmri ilə) vebsaytların saxlandığı qovluğa (/var/www/html) köçürüb.

Nəzərə alın ki, kopyalama zamanı (cp əmri) faylın təhlükəsizlik konteksti təyinat qovluğunun konteksti ilə üst-üstə düşəcək, köçürmə zamanı isə təhlükəsizlik konteksti mənbə konteksti ilə üst-üstə düşəcək. Əlbəttə ki, biz təhlükəsizlik kontekstini dəyişdirmək üçün chcon əmrindən istifadə edə bilərdik, lakin köçürülmüş fayllar indi /var/www/html kataloqunda olduğundan, biz sadəcə olaraq həmin kataloqda yerləşən bütün fayllar üçün kontekst parametrlərini bərpa edə bilərik.

Yalnız index.html faylı üçün konteksti bərpa etmək üçün əmrdən istifadə edə bilərik:

# restorecon -v /var/www/html/index.html

Bütün qovluğu rekursiv şəkildə keçmək və onun ehtiva etdiyi bütün fayllar üçün konteksti dəyişdirmək istəyiriksə, aşağıdakı əmrdən istifadə edirik:

# restorecon -Rv /var/www/html

5.3 Bütün fayl sistemi üçün etiketlərin dəyişdirilməsi.

Bəzən bütün fayl sistemində təhlükəsizlik etiketlərini yenidən qurmaq lazımdır. Çox vaxt bu əməliyyat sistem bir müddət söndürüldükdən sonra SELinux-u yenidən aktivləşdirərkən həyata keçirilir. Siyasət idarəetmə növünü sərt olaraq dəyişdirsək də bu lazımdır (bu halda bütün proseslər öz xüsusi domenlərində işləyir; heç kim unconfined_t domenində işləyə bilməz).

Növbəti dəfə yenidən başladığınız zaman fayl sistemini avtomatik olaraq bölmək üçün aşağıdakı əmrləri daxil edin:
# toxunun /.autorelabel # yenidən başladın
Bəzən avtomatik yenidən bölmə işləmir (əksər hallarda SELinux-un söndürüldüyü paylama dəstinin yeniləndiyi hallarda). Bu halda, aşağıdakı əmrdən istifadə edin:

# genhomedircon # touch /.autorelabel # reboot

5.4 Limanlara girişin təmin edilməsi.

Çox vaxt biz istəyirik ki, Apache kimi xidmətlər qeyri-standart portları dinləyə və onlarda daxil olan əlaqələri qəbul edə bilsin. Əsas SELinux siyasətləri yalnız müəyyən xidmətlə sıx əlaqəli olan əvvəlcədən təyin edilmiş portlara giriş imkanı verir. Tutaq ki, biz Apache-nin 81-ci portda dinləməsini istəyirik. Bu halda semanage əmrindən istifadə edərək qayda əlavə etməliyik:

# semanage port -a -t http_port_t -p tcp 81

SELinux-un giriş təmin etdiyi portların tam siyahısına aşağıdakı kimi baxmaq olar:

# semanage port -l

Təlimatın növbəti, ikinci hissəsində sistem siyasətlərinin çevik konfiqurasiyasının mümkünlüyünü göstərəcəyik.

Bəzi Linux paylamalarında defolt olaraq SELinux aktivdir və bu, müxtəlif problemlərə səbəb ola bilər. SELinux-un necə işlədiyini başa düşmürsinizsə və onu necə düzgün konfiqurasiya edəcəyinizi bilmirsinizsə, onun işinin əsas prinsiplərini öyrənənə qədər onu söndürmək daha yaxşıdır.

Söndürmək SELinux təsvir olunan 4 üsuldan hər hansı birini istifadə edə bilərsiniz.

SELinux-un nə üçün istifadə edildiyi barədə təfərrüatlara girməyəcəyik və birbaşa onu söndürməyə davam edəcəyik. Əgər sistem SELinux-dan istifadə edirsə, o zaman ls -Z əmrini işlətməklə aşağıdakı şəkli görə bilərsiniz.

# ls -Z /etc/-rw-r--r-- kök kök sistemi_u:object_r:etc_t:s0 a2ps.cfg -rw-r--r-- kök kök sistemi_u:object_r:adjtime_t:s0 adjtime -rw-r--r-- kök root system_u:object_r:etc_aliases_t:s0 ləqəblər drwxr-x--- root root system_u:object_r:auditd_etc_t:s0 audit drwxr-xr-x root root system_u:object_r:etc_runtime_t:s0 blkid-xr: root_system drwxuject :bluetooth_conf_t:s0 bluetooth drwx------ kök kök sistemi_u:object_r:system_cron_spool_t:s0 cron.d -rw-rw-r-- kök disk sistemi_u:object_r:amanda_dumpdates_t:s0 dumpdates

Metod 1: SELinux-u müvəqqəti olaraq söndürün

SELinux-u müvəqqəti olaraq söndürmək üçün siz /selinux/enforce faylını dəyişdirə bilərsiniz. Nəzərə alın ki, bu müvəqqəti söndürmədir və sistem yenidən işə salındıqdan sonra SELinux yenidən işləyəcək.

# cat /selinux/enforce 1 # echo 0 > /selinux/enforce# cat /selinux/enforce 0

Aşağıdakı nümunədə göstərildiyi kimi setenforce əmrindən də istifadə edə bilərsiniz. setenforce əmri üçün mümkün variantlar bunlardır: Tətbiqetmə, İcazə verən, 1 (aktiv) və ya 0 (deaktiv).

#setenforce 0

Metod 2: SELinux-u həmişəlik söndürün

SELinux-u həmişəlik söndürmək üçün /etc/selinux/config faylını redaktə edin və aşağıda göstərildiyi kimi SELINUX=diabled təyin edin. Bundan sonra serveri yenidən başladın.

# cat /etc/selinux/config SELINUX=deaktiv SELINUXTYPE=məqsədli SETLOCALDEFS=0

Metod 3: Grub Bootloader-də SELinux-un söndürülməsi

Üçüncü üsul SELinux-u söndürmək üçün GRUB yükləmə yükləyicisindən istifadə edir. Xəttin sonuna əlavə edin selinux=0

# cat /boot/grub/grub.conf default=0 timeout=5 splashimage=(hd0,0)/boot/grub/splash.xpm.gz gizli menyu başlığı Enterprise Linux Enterprise Linux Server (2.6.18-92.el5PAE) root (hd0,0) kernel /boot/vmlinuz -2.6.18-92.el5PAE ro root=LABEL=/ rhgb sakit selinux=0 initrd /boot/initrd-2.6.18-92.el5PAE.img başlığı Enterprise Linux Enterprise Linux Server (2.6.18-92.el5) root (hd0,0) kernel /boot/vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb sakit selinux=0 initrd /boot/initrd-2.6.18-92.el5.img

Metod 4: SELinux-u yalnız müəyyən xidmətlər üçün söndürün - HTTP/Apache

SELinux-u tamamilə söndürmək lazım deyilsə, ancaq müəyyən xidmətlər üçün bu seçiminiz var. Məsələn, dəyişənin dəyərini dəyişdirərək HTTP/Apache üçün SELinux-u deaktiv edək. httpd_disable_trans faylda /etc/selinux/targeted/booleans.

# grep httpd /etc/selinux/targeted/booleans httpd_builtin_scripting=1 httpd_disable_trans=1 httpd_enable_cgi=1 httpd_enable_homedirs=1 httpd_ssi_exec=1 httpd_tty_comm=0 httpd_unified=1

Həmçinin setsebool əmrindən istifadə edərək dəyişən təyin edin. Bundan sonra dəyişikliklərin qüvvəyə minməsi üçün httpd-ni yenidən başladın.

Android 5.0 Lollipop-da Google defolt olaraq SeLinux funksiyasını aktiv etdi və sistem bölməsini dəyişdirməyi çox çətinləşdirdi! Necə söndürmək olar? Oxumağa davam edin!

Mikroproqramı dəyişdirməyi sevən və ya tətbiqi yerləşdirməyə ehtiyacı olanlar üçün Google bunun qarşısını almaq üçün çox çalışdı - sistem bölməsində bitən faylları "sındıran" selinux texnologiyası, eləcə də dəyişdirilmiş təhlükəsizlik sistemi əsasında aktivləşdirildi. Knox-da, Samsung-dan götürülmüşdür. Bütün bunlar ona görə yaradılmışdır ki, biz adi istifadəçilər sistem bölməsini dəyişə bilməyək! Bunu düzəltməyin vaxtıdır!

Android-də müdafiəni söndürmək üçün nə lazımdır?

1. Kompüter ilə UBUNTU ƏS

2. Əsas boot.img Android smartfon və ya planşetinizdən

Android nüvəsində qorunmanın necə söndürülməsinə dair təlimatlar

Hazırlıq

Fayl menecerində terminalın açılmasını birləşdirən paket quraşdırın

1. Terminal açın və aşağıdakı əmri daxil edin

32-bit sistemlər üçün:

sudo apt-get install nautilus-open-terminal:i386

64-bit sistemlər üçün:

sudo apt-get quraşdırma nautilus-open-terminal

2. Sonra fayl menecerini yenidən işə salmaq əmrini yerinə yetirin

3. Android nüvəsi ilə işləmək üçün tələb olunan paketi quraşdırın

sudo apt-get install abootimg

Kernel ilə işləmək

1. Ev qovluğunda istənilən rahat adla qovluq yaradın və Android nüvəsini ora köçürün - boot.img. (Nümunə nüvə qovluğunu göstərəcək)

2. Qovluğa keçin ləpə, istənilən boş yerdə, sağ klikləyin və "Terminalda Aç" seçin

3. Açılan terminalda əmri daxil edin:

abootimg -x boot.img

Sonra qovluqda ləpə yeni qovluqların göründüyünü görəcəksiniz (kernel açıldı)

4. Gəlin yeni qovluq yaradaq (buna zəng edək rw) qovluğun içərisində ləpə, terminalda yazırıq

5. Bölməni daha da açmaq üçün terminalda əmr yazın initrd.img

zcat ../initrd.img | cpio -i

6. Sonra qovluqda rwçoxlu fayl tapacaqsınız

7. Faylı tapın və açın default.prop

8. Faylda xətti dəyişdirin

və faylı yadda saxlayın və ondan çıxın

9. Terminalda initrd.img faylını qurun və əmri yazın

tapmaq. | cpio -o -H newc | gzip > ../initrd.img

10. Biz kernel qovluğuna qayıdırıq, bunun üçün terminalda yazırıq

11. Edilən dəyişikliklərlə Android nüvəsinin tərtib edilməsi

abootimg --boot.img yaradın -k zImage -r initrd.img

və sonra daha bir əmr

abootimg --yarat boot.img -f bootimg.cfg -k zImage -r initrd.img

init.d dəstəyi ilə Android nüvəsi tamamlandı! Sonra flaş etməlisiniz!

Hamısı budur! İzləmədə qalın və sosial qruplara abunə olun! Bundan sonra daha maraqlı olacaq!

Hər kəsə salam gəlin bir az SELinux haqqında danışaq, amma ondan əvvəl onun nə olduğunu eşitməyənlər üçün bir az tərif. SELinux ingilis dilinin abbreviaturasıdır. Sözləri Security-Enhanced Linux, yəni təkmilləşdirilmiş təhlükəsizlik ilə Linux deməkdir. Başqa sözlə, bu, klassik selektiv giriş idarəetmə sistemi ilə paralel işləməyə qadir olan məcburi girişə nəzarət sisteminin tətbiqidir. Fərq ondadır ki, SELinux-da müəyyən siyasətlər vasitəsilə giriş hüquqları sistemin özü tərəfindən müəyyən edilir, öz növbəsində selektiv girişə nəzarət sistemi istifadəçilərin hüquqlarına əsaslanaraq resurslara prosesin girişini bölür, sadə başa düşmək üçün bunlar üç səviyyədə rwx hüquqlarıdır - sahib , sahib qrupu və digər istifadəçilər.
Bir az təsvir etdikdən sonra bəzi SELinux əmr və seçimlərinə baxmağa çalışaq. Nümunələrimiz Linux CentOS 6 əməliyyat sistemində nümayiş etdiriləcək.Bəlkə də birinci və yəqin ki, ən populyarı SELinux statusunu yoxlamaq üçün əmrlərdir.

/usr/sbin/getenforce

/usr/sbin/sestatus

Getenforce əmri üçün dəyərləri qaytarın
İcra– SELinux-un aktivləşdirildiyini və siyasət qaydalarının tətbiq edildiyini bildirir;
İcazə verən– SELinux-un aktivləşdirildiyini, lakin siyasət qaydalarının tətbiq olunmadığını və yalnız DAC qaydalarının istifadə edildiyini göstərir;
Əlil– SELinux-un söndürüldüyünü göstərir.

Sestatus əmri üçün dəyərləri qaytarın
Bu əmr SELinux statusuna əlavə olaraq istifadə edilmiş SELinux siyasətini qaytarır, məsələn:

$ /usr/sbin/sestatus SELinux statusu: aktivləşdirilmiş SELinuxfs montajı: /selinux Cari rejim: konfiqurasiya faylından rejimin tətbiqi: tətbiq edilməsi Siyasət versiyası: 23 Konfiqurasiya faylından siyasət: hədəflənmiş

SELinux statusu: aktiv – SELinux-un aktiv olduğunu bildirir;
Cari rejim: tətbiqetmə – SELinux-un məcburi rejimdə işə salınması deməkdir;
Konfiqurasiya faylından siyasət: hədəflənmiş – SELinux hədəf siyasətinin istifadə edildiyini göstərir.

SELinux işə salınır
Konfiqurasiya faylında əməliyyat sistemində SELinux-u aktivləşdirin/deaktiv edin
/etc/selinux/config

# Bu fayl sistemdəki SELinux vəziyyətinə nəzarət edir. # SELINUX= bu üç dəyərdən birini qəbul edə bilər: # tətbiq - SELinux təhlükəsizlik siyasəti tətbiq edilir. # icazə verən - SELinux məcbur etmək əvəzinə xəbərdarlıqları çap edir. # disabled - SELinux siyasəti yüklənməyib. SELINUX=disabled # SELINUXTYPE= bu iki dəyərdən birini qəbul edə bilər: # hədəflənmiş - Hədəflənmiş proseslər qorunur, # mls - Çox Səviyyəli Təhlükəsizlik qorunması. SELINUXTYPE=hədəflənmiş

SELINUX=disabled seçimi o deməkdir ki, SELinux qeyri-aktivdir. SELinux-a başlamazdan əvvəl bəzi manipulyasiyalar etməlisiniz.
1. SELinux paketlərinin quraşdırılmasını yoxlayın

Rpm -qa | grep selinux rpm -q policycoreutils rpm -qa | grep problemlərini həll edin

Həmçinin aşağıdakı paketlərin quraşdırıldığından əmin olun: selinux-siyasəti-targeted, selinux-policy, libselinux, libselinux-python, libselinux-utils, policycoreutils, setroubleshoot, setroubleshoot-server, setroubleshoot-plugins. Paketlər Policycoreutils-gui, problem həlli, selinux-policy-devel,mcstrans isteğe bağlıdır.
Çatışmayan paketlər (root kimi) əmrindən istifadə etməklə quraşdırıla bilər.

Yum quraşdırma paketinin adı

2. Hər bir fayl sistemi faylı işə salınmazdan əvvəl SELinux konteksti ilə işarələnməlidir. Bu nöqtəyə qədər məhdudlaşdırılmış domenlərə giriş qadağan edilə bilər ki, bu da əməliyyat sisteminin düzgün yüklənməməsi ilə nəticələnə bilər. Vəziyyət /etc/selinux/config konfiqurasiya faylında SELINUX=icazə verən seçimi təyin etməklə düzəldilə bilər.

3. Faylın işarələnməsi sistemin növbəti yenidən yüklənməsi zamanı baş verəcək. Bütün fayllar üçün etiketlər proses zamanı SELinux kontekstində təyin edilir. Son sətirdə hər * simvolu 1000 etiketlənmiş faylı təmsil edir. Prosesin müddəti sistemdəki faylların sayından, həmçinin disklərin sürətindən asılıdır.

*** Xəbərdarlıq -- SELinux ünvanlı siyasətin yenidən etiketlənməsi tələb olunur. *** Yenidən etiketləmə fayldan *** sistemin ölçüsündən və sabit disklərin sürətindən asılı olaraq çox uzun müddət çəkə bilər. ****

4. SELinux siyasəti zorla təyin edilmədikdə və iş genişləndirmə rejimində baş verdikdə, məcburi rejimdə qadağan ediləcək hərəkətlər kimi qadağalar jurnala yazılır. Sistemin son yüklənməsi zamanı SELinux-un hərəkətləri qadağan etmədiyinə əmin olun, bunu etmək üçün əmri yerinə yetirin.

Grep "SELinux qarşısını alır" /var/log/messages

Çıxış boş olmalıdır, yəni hər şey qaydasındadır və SELinux bu hərəkəti qadağan etmir.
5. Jurnallarda qadağalar haqqında heç bir mesaj olmadığına əmin olduqdan sonra, tətbiqdə SELINUX parametrini təyin edin (file /etc/selinux/config):

# Bu fayl sistemdəki SELinux vəziyyətinə nəzarət edir. # SELINUX= bu üç dəyərdən birini qəbul edə bilər: # tətbiq - SELinux təhlükəsizlik siyasəti tətbiq edilir. # icazə verən - SELinux məcbur etmək əvəzinə xəbərdarlıqları çap edir. # disabled - SELinux siyasəti yüklənməyib. SELINUX=məcburi # SELINUXTYPE= bu iki dəyərdən birini qəbul edə bilər: # hədəflənmiş - Hədəflənmiş proseslər qorunur, # mls - Çox Səviyyəli Təhlükəsizlik qorunması. SELINUXTYPE=hədəflənmiş

6. Bundan sonra əməliyyat sistemi yenidən işə salınmalıdır. Yenidən başladıqdan sonra getenforce əmri ilə Enforcing return dəyərini yoxlamaq lazımdır.

$ /usr/sbin/getenforce Tətbiq

7. SELinux və sistem istifadəçiləri arasındakı xəritələrə baxmaq üçün əmri işə salın

/usr/sbin/semanage login –l

Komandanın çıxışı belə olmalıdır:

Giriş Adı SELinux İstifadəçisi MLS/MCS Aralığı __default__ unconfined_u s0-s0:c0.c1023 root unconfined_u s0-s0:c0.c1023 system_u system_u s0-s0:c0.c1023

Bəzi xüsusiyyətlər var ki, onları da nəzərə almaq lazımdır. SELinux söndürüldükdə, istifadəçi tərəfindən yaradılmış fayllar qeyd olunmur və nəticədə məcburi vəziyyətə salındıqda problemlər yarana bilər. Fayllar seçimi qeyri-aktivdən icazə verən/məcburi rejimə dəyişdirməklə qeyd olunacaq və beləliklə, işarələnməmiş faylların görünməsi probleminin qarşısı alınacaq.