Linux da xavfsizlik - U. R. Xamdamov, dj. B. Sultanov, S. S. Parsiyev, U. M. Abdullayev

Linux da xavfsizlik
Linux
tizimida
ulanadigan
autentifikatsiya
modullarini
(pluggable authentication modules - PAM) umumiy kutubxonaga
asoslangan holda foydalanuvchini tasdiqlashni talab qiladigan har
qanday komponentlar tomonidan ishlatishga asoslangan. UNIX
turdagi tizimlarda, jumladan Linux da ham foydalanishni boshqarish
foydalanuvchi va guruhning yagona raqamli identifikatorlari (uid va
gid) yordamida amalga oshiriladi. Foydalanishga ruxsat berilishini
boshqarish obyektlarga qanday amallardan (o‘qish, yozish, bajarish)
egasi, guruh va barcha boshqa foydalanuvchilar foydalanishi
mumkinligini ko‘rsatuvchi himoyalash niqoblarini berish yo‘li bilan
amalga oshiriladi. Linux standart UNIX (set uid) mexanizmini
quyidagi ikki usul bilan to‘ldiradi:
bu mexanizm POSIX spetsifikatsiyasi orqali bajariladi, bu
har bir jarayonga o‘zining amaldagi uid ni ko‘p marotaba bo‘shatish
va takror olishga imkon beradi;
amaldagi uid ga muvofiq faqat vakolatlar kichik to‘plami
taqdim etuvchi jarayonning tavsifi to‘ldiriladi.
Linux mijozga ayrim server jarayoniga, birorta boshqa
imtiyozlar bermagan holda, ma’lum fayldan foydalanishga tanlab
ruxsat berishni uzatish mexanizmini ta’minlaydi.
Linux
OT
oilasi
xavfsizligining
asosi
bu
tizim
foydalanuvchilaridir. Foydalanuvchilar muayyan huquqlarga ega, ular
o‘zlarining fayllari, tizimi va dasturlarini o‘zlari uchun ishga
tushurishadi. Shuningdek, funksiyalar to‘plami, tizim chaqiruvlari va
operatsiyalari, qaysi jarayonni amalga oshirish jarayonni boshlagan
foydalanuvchi huquqlariga bog‘liq.
362
Tizimda ro‘yxatdan o‘tgan barcha foydalanuvchilar /etc/passwd
faylida saqlanadi. Tizimning har bir foydalanuvchisining login nomi
mavjud. Ammo, tizim foydalanuvchilarni nomidan emas, balki
ularning
noyob
foydalanuvchi
identifikatorlari
yoki
UID
(foydalanuvchi identifikatori) tomonidan ajratib turadi. Bundan
tashqari, har bir foydalanuvchi bir yoki bir nechta guruh a’zosidir.
Guruhlar /etc/group faylida ko‘rsatilgan. Har bir guruhning o‘ziga xos
nomi va yagona GID (Group Identifier) guruh identifikatori mavjud.
/Etc/passwd faylida foydalanuvchi asosiy guruh identifikatori
ko‘rsatilgan. Shunday qilib, UID va GID foydalanuvchi tizimda
qanday huquqlarga ega ekanligini aniqlaydi. Barcha foydalanuvchilar
orasida maxsus pozitsiya UID = 0 yoki super foydalanuvchi deb
ataladigan
foydalanuvchi
tomonidan
amalga
oshiriladi.
Bu
foydalanuvchi odatda kirish nomi root ga ega, tizimda UID = 0 va
turli nomlar bilan bir nechta foydalanuvchi bo‘lishi mumkin. Super
foydalanuvchi cheklovsiz huquqlarga ega va fayllar va jarayonlar
bo‘yicha har qanday amaliyotni amalga oshirishi mumkin. Bunga
qo‘shimcha ravishda, ba’zi tizimdagi chaqiruvlar va operatsiyalar
faqat super foydalanuvchi tomonidan amalga oshirilishi mumkin.
Misol uchun, faqat super foydalanuvchi uchun quyidagi operatsiyalar
mavjud: tizim fayllarini yaratish, tizim vaqtini o‘zgartirish,
resurslardan foydalanish cheklovlarini oshirish, jarayon ustuvorligini
oshirish, tarmoq nomini o‘rnatish, tarmoq interfeyslarini sozlash,
to‘xtatish va tizimni qayta ishga tushirish. Super foydalanuvchi nomi
bilan ishlashda ma’mur ehtiyotkorlik bilan harakat qilishi kerak,
chunki ehtiyotsiz harakatlar qaytarib bo‘lmas oqibatlarga olib kelishi
mumkin.
Parolni shifrlash algoritmi tizimning o‘ziga xos versiyasiga
bog‘liq va bir tomonlama shifrlash algoritmidir. Masalan, FreeBSD
tizimi MD5 algoritmidan foydalanadi. Shuni esda tutish kerakki, parol
ochiq ko‘rinishda hech qachon va hech joyda saqlanmaydi. Agar
foydalanuvchi tizimga kirsa, u bilan kiritilgan parol shifrlanib, ikkita
shifrlangan variantni taqqoslanadi. Hatto super foydalanuvchi har
qanday foydalanuvchi parolini topa olmaydi, lekin u passwd utilitasi
yordamida har qanday foydalanuvchi parolini o‘zgartirishi mumkin.
Ushbu xizmat oddiy foydalanuvchilarga ularning parollarini
o‘zgartirish imkonini beradi. Agar "*" belgisi shifrlangan parol
o‘rniga parol faylida bo‘lsa, u foydalanuvchi tizimga kira olmaydi.
363
Agar parol maydoni bo‘sh bo‘lsa, foydalanuvchi bo‘sh parolni kiritib
kirishi mumkin.
Hatto shifrlangan shaklda parol faylida xavfsizlikning ba’zi bir
xavfi mavjud, chunki parollarni tanlash mumkin, masalan, lug‘at
yordamida. Shuning uchun ko‘plab tizimlarda parollar /etc/passwd
faylidan boshqa fayllarga o‘tkaziladi. Masalan, FreeBSD-da parollar
/etc/master.passwd faylida va Solaris va Linuxda, /etc/shadow-faylida.
Ushbu fayllarning ikkalasi ham super foydalanuvchi uchun mavjud
bo‘lib,
ular
hatto
o‘qish uchun ham tizimning boshqa
foydalanuvchilarida mavjud emas. Agar foydalanuvchi tizimga kirsa,
/etc/passwd faylida ko‘rsatilgan buyruq tarjimoni ishga tushiriladi.
Odatda bu standart buyruq tarjimonlari /bin/sh (Bourne shell), /bin/csh
(C shell), /bin/ksh (murch qobig‘i) yoki /bin/bash (yana Bourne shell)
foydalanuvchining buyruqlarini kiritish va vazifalarni bajarishga
imkon beradi. Ushbu maydonda tarjimonga ehtiyoj sezmaydigan
foydalanuvchilar uchun, masalan, /sbin/nologin/ mavjud bo‘lmagan
yoki /bin/date (uzoq foydalanuvchilar uchun) ni belgilashingiz
mumkin. Umumiy holatda, ushbu sohada har qanday dasturni
ko‘rsatish mumkin, shuning uchun bu vazifani bajarib bo‘lgach,
foydalanuvchi avtomatik tarzda tizimdan chiqadi. /etc/shell faylida
buyruq tarjimoni sifatida ishlatilishi mumkin bo‘lgan dasturlarning
ro‘yxati mavjud.
Yangi yaratilgan fayl egasi-foydalanuvchisi faylni yaratgan
foydalanuvchi hisoblanadi. Yangi yaratilgan faylning guruh egasi turli
tizim versiyalarida turlicha belgilanadi. Linuxda uchta asosiy fayllarga
kirish klasslari mavjud:
u (user) – foydalanuvchi egasi (siz yoki ma’mur) uchun kirish
klassi;
g (group) – guruh a’zolari uchun kirish klassi;
o (others) - boshqa foydalanuvchilar uchun kirish klassi.
Unix har bir klass uchun uch turdagi kirishlarni qo‘llab-
quvvatlaydi:
r (read) – o‘qish huquqi;
w (write) – yozish huquqi;
x (execute) – bajarish huquqi.
Kirish huquqi ro‘yxati ls -l yordamchi dasturi yordamida olinishi
mumkin.
Masalan:
364
- rwx rw- r- - 1 root bek 1077 Apr 1 18:05 /usr/home/ma’ruza/1
Yuqoridagi
misoldan,
/usr/home/ma’ruza/1
fayli
uchun
foydalanuvchi egasi root ekanligini ko‘rish mumkin, guruh egasi bek,
ma’mur
huquqi
rwx,
guruh
a’zolari huquqi rw, boshqa
foydalanuvchilar huquqi r.
Agar foydalanuvchilarni huquqini chmod buyrug‘i orqali
o‘zgartirish mumkin. Masalan, chmod 0 – w file1.
|