Ochiq kodli operatsion tizimlar xavfsizligi



Yüklə 6,81 Mb.
tarix13.12.2023
ölçüsü6,81 Mb.
#140074
Ochiq kodli 11 Amaliy ishi


O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA
KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI QARSHI FILIALI



OCHIQ KODLI OPERATSION TIZIMLAR XAVFSIZLIGI” fanidan
Amaliy ish-11

Bajardi:


Tekshirdi: Raxmatullayev D.A.
11-Amaliy ish
Mavzu: Ochiq kodli OT da MAC va IP adressni o‘zgartirish.


Ishdan maqsad:
Linux muhitida xavfsiz ishlash rejimini o'rnatish bo'yicha ko'nikmalarga ega bo'lish (misol sifatida SELinux-dan foydalanish)
Nazariy qism:
Xavfsizlik takomillashtirilgan Linux (SELinux) Linux xavfsizlik yadro moduliga (LSM) asoslangan yangi Linux kirishni boshqarish usulidir. SELinux sukut bo'yicha Fedora, CentOS va boshqalar kabi rpm paket bazasidan foydalanadigan ko'plab Red Hat distributivlarida yoqilgan.
Ushbu maqolada SELinux-ni o'rnatish muhokama qilinadi, biz yangi siyosatlarni yaratishga tegmaymiz, lekin tizimga boshqa tomondan yondashishga harakat qilamiz, u oddiy Linux foydalanuvchisi uchun qanday foydali bo'lishi mumkinligini ko'rib chiqamiz, uning ishlash asoslarini ko'rib chiqamiz. , o'chirish va holatlarni o'zgartirish. Misollarni ishga tushirish uchun tizim sifatida CentOS 8 ishlatilgan.
SELinux asoslari
SELinux bu teglash tizimi bo'lib, har bir jarayon tegga ega. Tizimdagi har bir fayl, katalog yoki hatto foydalanuvchi yorlig'iga ega. Tizimda hatto portlar, qurilmalar va xost nomlari ham belgilangan. SELinux ma'lum teglar bilan ob'ektlarga kirish jarayoni uchun qoidalarni belgilaydi. Bu siyosat deyiladi. Yadro qoidalarni amalga oshiradi. Bu ba'zan majburiy kirishni boshqarish (MAC) deb ataladi.
Fayl egasi xavfsizlik atributlari bo'yicha to'liq ixtiyoriga ega emas. Guruh va egasi kabi kirishni boshqarishning standart atributlari SELinux uchun hech narsani anglatmaydi. Hamma narsa yorliqlar bilan boshqariladi. Atribut qiymatlari ildiz huquqlarisiz o'rnatilishi mumkin, ammo buning uchun sizda maxsus SELinux ruxsatnomalari bo'lishi kerak.
Endi siyosat haqida bir oz gaplashaylik. Biz ma'lum turdagi jarayonlar, shuningdek, ma'lum turdagi fayl tizimi ob'ektlari uchun yorliqni aniqlaymiz. Ob'ektlar (jarayonlar) mushuklar va itlar bo'lgan tizimni tasavvur qiling. Bu jarayonlarning turlari. Va bizda ular kirishni xohlaydigan narsalar bor - oziq-ovqat. Ammo ularning taomlari turli xil ovqatlar_mushuklar va itlar. Ob'ektlar faqat oziq-ovqatlariga kirishlari kerak.
Itning o'z ovqatini eyishga ruxsati bor, mushuk esa o'ziniki. SELinux siyosatlarida u quyidagicha ko'rinadi:
mushuk mushuk ovqatini iste'mol qilsin
itga it ovqatini yesin
Endi yadro ushbu qoidalarga rioya qilinishiga ishonch hosil qiladi. SELinux tizimida hamma narsa sukut bo'yicha o'chirib qo'yilgan, shuning uchun agar it mushuk ovqatini eyishga harakat qilsa, yadro bunga yo'l qo'ymaydi.
Aytaylik, Apache jarayonida httpd_t yorlig'i bor va biz Apache httpd_sys_content ga kirish huquqiga ega bo'lishi kerak bo'lgan fayllarni nomladik. Bundan tashqari, MySQL ma'lumotlar bazasida saqlangan kredit karta ma'lumotlari mavjud. Agar xaker Apache jarayonini o'g'irlasa va ildizga kirish huquqiga ega bo'lsa, u hali ham MySQL-dan fayllarga kira olmaydi.
SELinux tizim ma'murlari uchun juda ko'p muammolarni keltirib chiqarishi mumkin, ko'pchilik uni shunchaki o'chirib qo'yadi, shu bilan muammoni hal qiladi va xavfsizlikni kamaytiradi. Yuqorida aytib o'tilganidek, SELinux sukut bo'yicha hamma narsani va hammani bloklaydi. Bu qat'iy siyosat tavsifiga mos keladi. Ammo tizim ma'murlari uchun ishlarni osonlashtirish uchun boshqa standart siyosatlar ishlab chiqilgan. Ko'pgina tarqatishlar maqsadli siyosatdan (maqsadli) foydalanadi, u 200 ga yaqin tarmoq xizmatlari va jarayonlarini qamrab oladi, ammo qolgan dasturlar erkin ishga tushadi va ishlaydi, ularga SELinux modellari qo'llanilmaydi.
SELinux uchta rejimda ishlashi mumkin - o'chirilgan, tizim butunlay o'chirilgan va ishlamayapti, Cheklash rejimini qo'llash - dastur faollashtirilgan va siyosatlarga mos kelmaydigan barcha harakatlarni bloklaydi, uchinchi rejim - ruxsat beruvchi - faqat qoidabuzarliklarni tuzatadi.
SELinux siyosatlarining bir necha turlari ham mavjud. Biz yuqorida muhokama qilgan maqsadli siyosat, fayllarga kirish rollar asosida boshqariladigan siyosatlarning Type Enforment (TE) turiga tegishli. Bunga qat'iy siyosat ham kiradi. Qo'shimcha toifalarni qo'shadigan Ko'p darajali xavfsizlik (MLS) siyosatlari ham mavjud, ular oddiy foydalanuvchi uchun murakkab va keraksizdir, shuning uchun yangi boshlanuvchilar hozircha ularning mavjudligini unutishlari mumkin. Shuni tushunish kerakki, SELinux quyi tizimi harbiylar tomonidan harbiylar uchun ishlab chiqilgan, shuning uchun oddiy foydalanuvchilarga uning barcha imkoniyatlari kerak bo'lishi dargumon. Ushbu maqolada biz aniq maqsadli siyosatni muhokama qilamiz.
Amaliy qism.
SELinux sozlanmoqda

1. Vaziyat


Qayta ishga tushirilgandan so'ng, siz SELinux holatini ko'rishingiz mumkin:
$ sestatus

Bu erda biz tizim yoqilganligini ko'ramiz SELinux holati: yoqilgan, Joriy rejim amalga oshirilmoqda, ya'ni tizim ruxsatsiz harakatlarni bloklaydi. Hozirgi siyosat maqsadli. Ushbu siyosat SELinux qoidalari faqat ma'lum xizmatlarga nisbatan qo'llanilishini ta'minlash uchun ishlatiladi.

2. Ishlash tartibi


Endi faol rejimni yoqamiz, buning uchun buyruqni bajaring:
$ sudo setenforce 1
Xuddi shu buyruqqa 0 o'tkazish orqali faol rejimni o'chirib qo'yishingiz mumkin:
$ sudo setenforce 0

Shu kabi buyruq yordamida hozirda foydalanilayotgan rejimni ham ko'rishingiz mumkin:
$getenforce

Barcha asosiy SELinux konfiguratsiyasi /etc/selinux/config orqali amalga oshiriladi. Bu yerda siz selinux-ni butunlay o'chirib qo'yishingiz yoki foydalanilgan xavfsizlik siyosatini sozlashingiz mumkin.
sudo vi /etc/selinux/config
Bu parametr SELinux ish rejimini bildiradi, siz bu erda uchta parametrdan birini belgilashingiz mumkin, ruxsat beruvchi va o'chirilgan
SELINUX=majburlash

SELinux-ni butunlay o'chirish uchun disabled-dan foydalaning yoki SELinux-ni qayta yoqish uchun boshqasidan foydalaning. Ushbu rejim tizim ishga tushirilganda sukut bo'yicha qo'llaniladi.

3. Siyosatni tanlash


SELinux siyosatlarining konfiguratsiyasi ham ushbu faylda amalga oshiriladi. SELINUXTYPE parametri siyosat uchun javobgardir:
SELINUXTYPE=maqsadli
Siz /etc/selinux katalogida joylashgan har qanday siyosatga murojaat qilishingiz mumkin. Uchta asosiy siyosatdan foydalanish mumkin:
maqsadli - veb-server, DHCP, DNS kabi muhim tizim xizmatlarini himoya qiladi, lekin boshqa barcha dasturlarga ta'sir qilmaydi.
qat'iy - eng qat'iy siyosat, nafaqat tarmoq xizmatlarini, balki foydalanuvchi dasturlarini ham nazorat qiladi.
mls - nafaqat qoidalar, balki turli darajadagi xavfsizlikni ham o'z ichiga oladi. Bu sizga SELinux asosidagi ko'p darajali xavfsizlik tizimini amalga oshirish imkonini beradi.
Siz o'z siyosatlaringizni ham qo'shishingiz mumkin. Siyosatni qo'llash uchun siz kompyuterni qayta ishga tushirishingiz kerak va bu qayta yuklash vaqtida SELinux audit rejimida (ruxsat beruvchi) bo'lishi ma'qul. Bundan tashqari, tizim fayl tizimidagi barcha teglarni yangilashi uchun siz ildizda bo'sh fayl yaratishingiz kerak bo'lishi mumkin:
$sudo vi /.autolabel

4. Kontekstni ko'rish


Har bir fayl va har bir jarayon odatda kontekst deb ataladigan o'z SELinux yorlig'iga ega. Muayyan fayl yoki jarayonga qanday yorliq tayinlanishi siyosat tomonidan belgilanadi, bizning holatlarimizda u maqsadli. SELinux kontekstini ls buyrug'i bilan ko'rishingiz mumkin:
$ ls -lZ /

Kontekst qatori sintaksisi:
foydalanuvchi_nomi: ob'ekt_nomi: turi_yoki_domen: kirish_darajasi

Maqsadli siyosatda foydalanuvchi nomi va ob'ekt nomi amalda qo'llanilmaydi, kirish darajasi MLS siyosatlari bilan bog'liq va ularni e'tiborsiz qoldirish ham mumkin. Va uchinchi maydonga qarang. Fayllar yoki papkalar uchun u tip, jarayonlar uchun esa domen deb ataladi. Masalan, /bin papkasi bin_t turiga ega.


Jarayonning domenini ko'rish uchun ps buyrug'idan foydalaning, masalan, httpd uchun:
$ps auxZ | grep httpd

Ko'rib turganingizdek, bu erda httpd xizmatida httpd_t domeni mavjud, ya'ni faqat ushbu domenga tegishi mumkin bo'lgan resurslar mavjud bo'ladi, bu holda u sys_httpd_content turidir. Bularning barchasi, jumladan, nomlar, maqsadli siyosatda belgilangan. Shu bilan birga, boshqa jarayonlar, masalan, grep, unconfined_t domeni bilan ishlaydi, ya'ni ular istisnosiz tizimdagi barcha resurslarga kirish huquqiga ega bo'ladilar, chunki bu ushbu domen siyosatida sozlangan xatti-harakatlardir. .

5. Kontekstni o'zgartirish


Odatiy bo'lib, veb-server papkasi /var/www/html manzilida joylashgan. Yuqorida muhokama qilganimizdek, u kontekstga ega:

Agar siz ushbu jildni boshqa joyga ko'chirmoqchi bo'lsangiz, yangi jild uchun kontekstni o'zgartirishingiz kerak bo'ladi. Buning uchun chcon buyrug'idan foydalaning, faqat turini ko'rsatishingiz kerak:
$sudo chcon -Rv --type=httpd_sys_content_t /home/losst/htdocs
Biroq, siz kontekstni to'liq belgilashingiz mumkin:
$sudo chcon -Rv system_u:object_r:httpd_sys_content_t:s0 /home/losst/htdocs
Bu oʻzgarish qayta yuklashda ham saqlanib qoladi, lekin fayl tizimi yorliqlari yangilangandan keyin oʻchirib tashlanadi. Bunga yo'l qo'ymaslik uchun siz siyosatga qoida qo'shishingiz kerak.

6. Siyosatni o'zgartirish


Siz semanage yordam dasturidan foydalanib siyosatga qo'shimcha fayl yorliqlash qoidalarini qo'shishingiz mumkin. /home/losst/httdocs katalogi va undagi barcha fayllar uchun httpd_sys_content_t turini o'rnatish uchun quyidagilarni bajaring:
$semanage fcontext -a -t httpd_sys_content_t "/home/losst/httdocs(/.*)?"
Agar siz faqat bitta fayl uchun kontekstni o'zgartirishingiz kerak bo'lsa, niqobni ishlatishingiz shart emas:
$semanage fcontext -a -t httpd_sys_content_t "/home/losst/httdocs/index.html"
O'z-o'zidan bu buyruq fayl tizimida hech narsani o'zgartirmaydi, siz /.autolabel faylini yaratishingiz va kompyuterni qayta ishga tushirishingiz yoki kerakli papka uchun restorecon buyrug'ini ishga tushirishingiz kerak:
$restorecon -R -v /home/losst/httdocs

Siz quyidagi buyruq yordamida shu tarzda qo'shilgan barcha qoidalarni ko'rishingiz mumkin:
$semanage fcontext -C -l

7. Jurnallar
SELinux qaysi rejimda ishlashidan qat'i nazar, barcha qoidabuzarliklar haqida hisobotlar /var/log/audit/audit.log fayliga yoziladi. Siz uni qo'lda ko'rishingiz mumkin:
$ kam /var/log/audit/audit.log
Yoki qulayroq ko'rinish uchun siz sealert yordam dasturidan foydalanishingiz mumkin. Uni o'rnatish uchun quyidagi amallarni bajaring:
$sudo yum o'rnatish muammolarini bartaraf etish
Keyin tomosha qilishingiz mumkin:
$sealert -a /var/log/audit/audit.log

Yordamchi dastur barcha qatorlarni ko'rsatmaydi, faqat xato xabarlariga kirish va ayni paytda tavsiya etilgan echimlarni ko'rsatadi. Juda qulay. Yechimlar orasida yordamchi dastur maqsadli siyosat uchun o'z modulini yaratishni taklif qiladi, bu sizga hozirda imkonsiz bo'lgan narsalarni qilish imkonini beradi.
8. Modullar
Maqsadli siyosat modulli. U turli xil dasturlar uchun ko'plab modullardan iborat. Barcha faol modullarni ko'rish uchun quyidagilarni bajaring:
$semodul -l
Barcha o'rnatilgan modullarni ko'rish uchun quyidagilarni bajaring:
$semodule --list-modules=to'liq
Oxirgi xatboshi kirish muammosining mumkin bo'lgan echimlarini ko'rish uchun sealert yordam dasturidan qanday foydalanishni ko'rsatdi. Eng keng tarqalgan yechim - o'zingizning jurnalga asoslangan siyosat modulingizni yaratish. Audi2allow yordam dasturi jurnal faylini tahlil qiladi, u erda mavjud bo'lmagan ob'ektlar haqida ma'lumot topadi va keyin yangi modulda ushbu kirishga ruxsat beradi. Oldingi misolda, sealert yordam dasturi quyidagi buyruqni tavsiya qildi:
$ausearch -c 'httpd' --raw | audit2allow -M my-httpd
Shundan so'ng, joriy papkada .pp kengaytmali modul to'plami paydo bo'ladi, uni allaqachon semodule yordam dasturi yordamida o'rnatish mumkin:
$sudo semodule -i my-httpd.pp
9. Bayroqlar
Bundan tashqari, siyosatning xatti-harakatlari bayroqlar yordamida sozlanishi mumkin. Odatda, xuddi shu sealert yordam dasturi bayroqlarni yoqishni tavsiya qiladi. Barcha bayroqlar siyosat modullarida belgilangan. Siz hozir qaysi bayroqlar mavjudligini va ularning holatini buyruq yordamida ko'rishingiz mumkin:
$getsebool -a

Bayroq holatini o'zgartirish uchun setsebool buyrug'idan foydalaning. Masalan, httpd modullarining tarmoqqa ulanishiga ruxsat berish uchun quyidagilarni bajaring:
$setsebool -P httpd_can_network_connect yoqilgan
Vazifa: SELinux-ni yoqish, o'chirish, shuningdek dasturning siyosati yoki ish rejimini o'zgartirish bo'yicha bajarilgan ishni takrorlang. Kontekst, siyosat modullari va bayroqlar bilan ishlashni ko'rib chiqing.
Yüklə 6,81 Mb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin