Samba ulashishini bitta foydalanuvchi va bitta VPN manzili bilan cheklash
Samba valid users va hosts allow parametrlari shaxsni manzil bilan juftlashtirmaydi: ikkita ulashish nomi juftlikni ifodalashi mumkin, va kesishgan juftlik sinovlari buni isbotlaydi.
Bu dizaynda ikki xil ruxsat aralashtiriladi: kim katalogdan foydalana oladi va qaysi manzillar umuman ulanadi. Hisoblar ro'yxatini manbalar ro'yxati yoniga yozish juftlashtirishday tuyuladi, ammo Samba ikkala ro'yxatni mustaqil predikatlar sifatida baholaydi. Ikkalasini qanoatlantirgan har kim qabul qilinadi, bu esa ko'pchilik administratorlar nazarda tutganidan kengroq qoida. Yechim boshqa ulashish tartibi yoki juftlikni ifodalay oladigan siyosat qatlami.
Afsona: ikkita ro'yxat bitta qoida yaratadi
smb.conf ma'lumotnomasi valid users va hosts allow ni ikki bog'lanmagan parametr sifatida belgilaydi, va ikkalasini bitta ulashishda o'rnatish chalkashlik boshlanadigan joy. valid users = mira, tomas va hosts allow = 10.77.0.21, 10.77.0.22 ni o'rnating, to'rt kombinatsiya qabul qilinadi: Mira har qanday manzildan, Tomas har qanday manzildan. Konfiguratsiyada hech narsa birinchi ismni birinchi manzilga bog'lamaydi, va ismlarning paydo bo'lish tartibi ma'noga ega emas. Ularni qayta tartiblash, ikkinchi hosts allow satrini qo'shish yoki har satrga bitta ism qo'yish hech narsani o'zgartirmaydi. Natija ikki ro'yxatning ko'paytmasi, ular orasidagi xarita emas.
Ko'pchilik aslida xohlaydigan narsa torroq: Mira faqat bitta manzildan, Tomas faqat boshqasidan. Bitta ulashish ta'rifida bu bog'lanish uchun sintaksis yo'q, va hech qanday ustalik bilan tuzilgan tartib uni yaratmaydi. Bu Samba bitta ulashish ichida ifodalamaydigan siyosat shakli, va afsona aynan shu joyda yashaydi.
Samba nimani va qanday tartibda baholaydi
Bosqichlar qat'iy tartibda ketadi, noto'g'ri tartib esa noto'g'ri tashxis beradi. Mijoz ulanish ochadi; sozlangan bo'lsa global xost tekshiruvi ishlaydi; sessiya sozlash hisobni autentifikatsiya qiladi; keyin mijoz ulashishga ulanadi, u joyda shu ulashishning o'z xostlar ro'yxati, valid users va faqat o'qish sozlamasi qo'llaniladi; va faqat fayl ochilganda autentifikatsiya qilingan identifikatsiyaning fayl tizimi ruxsatlari hal qiladi. Har bir bosqich so'rovni o'zi rad eta oladi, va bittasidan o'tish keyingisi haqida hech narsa aytmaydi. Muhim natija shuki, ulashishning xostlar ro'yxati baholanayotganda hisob allaqachon ma'lum, va xostlar ro'yxati hali ham bu hisobni nomlash yo'liga ega emas.
Shuning uchun ulashish bitta foydalanuvchini bitta manzilga bog'lay olmaydi: hosts allow va valid users bir xil daraxt-ulanish bosqichida qo'llaniladigan alohida predikatlar, va har biri o'z savoliga javob beradi. Xost predikati hech qachon hisob nomini kirish sifatida olmaydi, shuning uchun uni har bir foydalanuvchi uchun yozib bo'lmaydi. Juftlikni faqat ikkinchi ulashish yoki Samba tashqarisidagi siyosat qatlami ifodalay oladi.
Global qiymatlar meros olish usuli tufayli muhim. hosts allow ni tashlab ketgan ulashish global qiymatni meros oladi, o'zinikini o'rnatgan ulashish esa bu qiymatni global o'rniga ishlatadi, unga qo'shimcha emas. Shuning uchun keng global ro'yxat parametrni hech qachon o'rnatmaydigan ulashishlarni kengaytiradi, o'zinikini belgilagan ulashishga hech narsa qilmaydi. testparm -s ni ishga tushiring va u chop etadigan har bir ulashish qiymatlarini o'qing, chunki o'sha chiqish amaldagi siyosat, diskdagi fayl emas.
Bitta ulashishni toraytirish ham serverning qolgan qismiga hech narsa qilmaydi. Boshqa ulashishlar, printer navbatlari va IPC ulanishi o'z qoidalarini saqlaydi, shuning uchun bitta ulashishning manzillar ro'yxatiga tayanadigan dizayn xostni emas, bitta yo'lni himoya qiladi.
Bitta katalog ustida ikkita ulashish nomi
Bitta katalog ikki kishiga ikki manzildan yetib borish imkoniyatiga ega bo'lishi kerak bo'lsa, uni turli nomlar bilan ikki marta oching. Har bir blok bitta hisob va bitta manbani olib yuradi, bu juftlikni konfiguratsiya majburlay oladigan narsaga aylantiradi. Narxi shuki, har bir kishi bir xil fayllarga yetish uchun boshqa ulashish nomidan foydalanadi, va bu mijoz tomonida qasddan qilingan o'zgarish bo'lishi kerak.
[shared-mira]
path = /srv/shared
guest ok = no
read only = yes
valid users = mira
hosts allow = 10.77.0.21
hosts deny = ALL
[shared-tomas]
path = /srv/shared
guest ok = no
read only = yes
valid users = tomas
hosts allow = 10.77.0.22
hosts deny = ALL
Ulashish darvozasi fayl tizimi ruxsati emas. Ikkala identifikatsiya ham katalogga asosiy ACL orqali kirishga muhtoj, va faqat o'qish sozlamasi ikkinchi qatlam, yagona emas. Yozish ruxsatini faqat ish oqimi talab qilsa bering, so'ngra bir identifikatsiya yaratgan fayllar boshqasi uchun yaroqli qolishini tekshiring.
Ikkala blok bitta yo'lga ishora qiladi, shuning uchun katalogdagi o'zgarish ikkala ulashishga ta'sir qiladi. Odatda bu maqsad, ammo bu ruxsat xatosi ikkala foydalanuvchiga bir vaqtda ko'rinishini ham bildiradi.
Manba manzili nimani isbotlay oladi
Samba ko'radigan manzil serverga yetib kelgan manzil, mijoz o'zida bor deb o'ylagan manzil emas. Har bir mijozni bitta manba manziliga aylantiruvchi VPN shlyuzi bu farqni yo'qotadi: barcha mijozlar bitta xost sifatida keladi va manbalar ro'yxati endi ularni ajrata olmaydi. Har bir mijoz uchun barqaror ajratish va manbani saqlaydigan shlyuz manzillarni siyosat sifatida ishlatishning old shartlari. Ikkalasi bo'lmasa, cheklov foydalanuvchini emas, shlyuzni o'lchaydi.
Shunday bo'lsa ham, manzil qurilma emas. Bitta tunnel manzili ortidagi ikkita noutbuk, qayta taqsimlangan ijara va umumiy ish stansiyasi manba shaxsni aniqlaydi degan taxminni birgalikda rad etadi. Cheklovni tarmoq qamrovi deb biling va autentifikatsiya qilingan SMB hisoblarini identifiklik qatlami sifatida saqlang, qurilma avtorizatsiyasi kerak bo'lsa sertifikat kabi qurilma guvohnomasi bilan.
Shuning uchun dizayn serverni emas, ulashishlarni to'sadi. Rad etilgan juftlik baribir sessiya ochishi, boshqa ulashishga yetishi yoki serverni ro'yxatlashi mumkin, bu ulanish paytida autentifikatsiya muvaffaqiyatsizligidan boshqa natija. Agar talab autentifikatsiyadan oldin rad etish bo'lsa, Samba ulashish parametrlari noto'g'ri vosita.
Kesishgan juftliklar bilan isbotlang
Konfiguratsiyani tekshirib, so'ngra to'rt kombinatsiyani qayta ishlatilgan sessiya emas, yangi ulanishlar bilan sinab ko'ring. Mo'ljallangan juftlik katalogga yetishi kerak, va ikkala kesishgan juftlik ham muvaffaqiyatsiz bo'lishi kerak. Oldingi sinovning keshlangan sessiyasi noto'g'ri kombinatsiyaga mamnuniyat bilan javob beradi va buzilgan qoidani to'g'ri ko'rsatadi.
testparm -s
smbclient //fileserver/shared-mira -U mira -c 'ls'
smbclient //fileserver/shared-tomas -U tomas -c 'ls'
smbstatus --shares
Sintaksis tekshiruvi fayl tahlil qilinishini xolos isbotlaydi. Kirish ma'lumotlari, ACL va xost qarori haqiqiy ulanish bilan sinovdan o'tadi, shuning uchun mijoz buyrug'ini sinamoqchi bo'lgan manzildan ishga tushiring va qaysi bosqich uni rad etishini kuzating. Agar kesishgan juftlik muvaffaqiyatli bo'lsa, amaldagi xostlar ro'yxati blok ko'rsatganidan kengroq, va testparm -s birinchi o'qilishi kerak bo'lgan narsa. Agar kesishgan juftlik noto'g'ri sabab bilan muvaffaqiyatsiz bo'lsa, gumondor hisob yoki ACL.
Sessiyalarni smbstatus bilan kuzatish va ularni o'chirish kirish boshlanganidan keyingi javob harakati, kirish nazorati emas. Kuzatilgan butun manzilni bloklash xuddi shu NAT ortidagi aloqasiz foydalanuvchilarni ham uzib qo'yishi mumkin, shuning uchun qaror ulashish ta'rifiga, kuzatuv esa javob jarayoniga tegishli. Ikkalasini alohida tuting va dizayn nima majburlayotgani haqida halol bo'lib qoladi.