Siz up skriptini root sifatida ishga tushirasiz, u tugaydi, va xizmat uni chaqirganda xuddi shu skript muvaffaqiyatsiz bo'ladi. Fayl ruxsatlarida hech narsa o'zgarmagan, shuning uchun keyingi tabiiy qadam ularni yana bo'shashtirishdir, bu esa hech narsani tuzatmaydi. SELinux xostida hal qiluvchi omil ko'pincha jarayon kimligi emas, balki uning qaysi domenda ishlashi, va cheklangan domen ichidagi root ham cheklangan bo'lib qoladi.

Xuddi shu buyruq, ikki xil xavfsizlik domeni

Tur majburlash manba domenini, maqsad yorlig'ini va so'ralgan amalni birga baholaydi. Sizning terminal seansingiz cheklanmagan yoki ma'muriy domenda ishlaydi, daemon esa o'z birligiga tayinlangan domenda ishlaydi. Shuning uchun bir xil buyruqlar turlicha qarorlar beradi, va bu farq siyosatdagi xato emas, ataylab shunday.

Shuning uchun ikki ishga tushirishni solishtirish faqat ularning kontekstlarini solishtirsangiz foydali. Xuddi shu buyruqni qobiqdan ham, hookdan ham ishga tushiring; qobiq versiyasi binar mavjudligini va argumentlar to'g'riligini isbotlaydi, lekin xizmatga uni ishga tushirish ruxsati bor-yo'qligi haqida hech narsani isbotlamaydi. Uni ikki usulda ham ishga tushiring va faqat chiqish kodlarini emas, domenlarni solishtiring. Aynan shu solishtirish noaniq ruxsat shikoyatini bitta domen va bitta yorliq haqidagi aniq savolga aylantiradi.

Bu nosozlikning klassik shakli tashqi vositani chaqiradigan yordamchidir. Hook o'zi ruxsat etilgan bo'lishi mumkin, ammo u chaqiradigan vosita xizmat domeni bajara olmaydigan yorliqni olib yuradi yoki yorlig'i buni taqiqlaydigan katalogga yozadi.

AVC yozuvini hook xatosi yonida o'qing

AVC rad etishi ishni hal qiladigan maydonlarni nomlaydi: jarayonning manba konteksti, obyektning maqsad konteksti, obyekt sinfi va rad etilgan aniq ruxsat. Nazariya tuzishdan oldin to'rttasini ham o'qing, chunki bajarishga rad va yozishga rad butunlay boshqacha tuzatishlarni talab qiladi.

ausearch -m AVC,USER_AVC -ts recent
ls -Z /usr/local/sbin/vpn-up.sh
ps -eZ | grep openvpn

Manba konteksti xizmat haqiqatan ishlaydigan domenga, maqsad konteksti esa amal tegib o'tgan fayl yoki katalog yorlig'iga mos kelishi kerak. Agar ulardan biri siz quvayotgan xatoga mos kelmasa, siz boshqa voqeani o'qiyapsiz.

Yozuv yonida siyosat versiyasini va bajariladigan faylning aniq yo'lini qayd eting. Bitta distributiv siyosatida uchraydigan domen nomi o'sha o'rnatish haqidagi dalil, boshqa qurilma xuddi shu qoidalarni yetkazishiga kafolat emas. Aynan shu kontekst boshqalarga sizning xulosangizni o'z xostida takrorlash imkonini beradi. Busiz yozuv dalil emas, rivoyat sifatida o'qiladi.

Yorliq, konfiguratsiya yoki siyosat: uchta tuzatish

Birinchi tuzatish faylning o'rnatilgan joyiga mos kelmaydigan yorliqdir. cp bilan joyiga ko'chirilgan yoki muharrir bilan yozilgan skript xizmat domeni ishlata olmaydigan standart yorliqni olib yurishi mumkin, va kutilgan kontekstni tiklash siyosatga umuman tegmasdan buni tuzatadi.

Ikkinchisi konfiguratsiya. Distributiv amalni bajarishning qo'llab-quvvatlanadigan usulini, yordamchi uchun hujjatlashtirilgan katalogni yoki buni allaqachon ruxsat etuvchi yangilangan siyosat paketini taklif qilishi mumkin. Tartibingizni qo'llab-quvvatlanadiganga o'zgartirish siyosat yozishdan arzon va yangilanishlarga bardosh beradi.

Uchinchisi haqiqatan yetishmayotgan qoida, va u oxirgi chora bo'lishi kerak. Audit vositalari bilan nomzod yarating, u aslida nimaga ruxsat berishini o'qing, uni kuzatgan amal va domen bilan cheklang, va u ishlab chiqarishga yaqinlashishidan oldin boshqa birovga ko'rib chiqishni so'rang.

Nega eski allow modul javob emas

Bu nosozlik bo'yicha qidiruv natijalari tayyor modullarga to'la, ko'pincha hook endi chaqirmaydigan vosita uchun. Bittasini o'rnatish sizning rad etishingizga aloqasi bo'lmasligi mumkin bo'lgan ruxsatlar beradi va doimiy teshik qo'shib, haqiqiy nomuvofiqlikni joyida qoldiradi.

U keyingi muvaffaqiyatsizlikni ham yashiradi. Amallarning keng sinfiga ruxsat beruvchi modul bu xatoni yo'q qiladi va keyingisini bog'lash ancha qiyin bo'lgan narsaga aylantiradi. Modulni keyinroq olib tashlash ham hech kim rejalashtirishni xohlamaydigan o'zgarish, shuning uchun qisqa yo'l doimiy bo'lib qolishga moyil.

Intizomli taqqoslash siz o'qiy oladigan rad etish va siz taklif qilayotgan o'zgarish o'rtasidadir. Red Hatning SELinux muammolarini hal qilish qo'llanmasi yorliq va konfiguratsiya tekshiruvlarini yaratilgan siyosatdan oldin qo'yadi, aynan shu sabab bilan. Agar yozuvda mos rad etish bo'lmasa, SELinux ehtimol sizning muammoingiz emas, va yo'l, sandbox yoki ruxsat masalalari hali ham ochiq.

O'xshash maqolalar