Энэ дизайнд хоёр өөр зөвшөөрөл холилддог: хэн хавтасыг ашиглаж болох, аль хаяг ерөнхийдөө холбогдож болох. Бүртгэлийн жагсаалтыг эх сурвалжийн жагсаалтын хажууд бичих нь хослуулах мэт санагдах боловч Samba хоёр жагсаалтыг бие даасан шарт гэж үнэлдэг. Хоёуланг нь хангасан хэн бүхэн хүлээн авагдах бөгөөд энэ нь ихэнх админуудын санаархаж буйгаас өргөн дүрэм юм. Шийдэл нь өөр хуваалцалтын зохион байгуулалт эсвэл хосыг илэрхийлж чадах бодлогын давхарга юм.

Домог: хоёр жагсаалт нэг дүрэм болдог

smb.conf-ийн лавлагаа valid users болон hosts allow-г хоёр хамааралгүй параметр гэж тодорхойлдог бөгөөд хоёуланг нь нэг хуваалцалт дээр тавихад төөрөгдөл эхэлдэг. valid users = mira, tomas болон hosts allow = 10.77.0.21, 10.77.0.22-г тавьбал дөрвөн хослол хүлээн авагдана: Мира аль ч хаягаас, Томас аль ч хаягаас. Тохиргоонд юу ч эхний нэрийг эхний хаягтай холбодоггүй бөгөөд нэрсийн гарч ирэх дараалал ямар ч утгагүй. Тэдгээрийг дахин эрэмбэлэх, хоёр дахь hosts allow мөрийг нэмэх эсвэл мөр бүрт нэг нэр хийх нь юу ч өөрчлөхгүй. Үр дүн нь хоёр жагсаалтын үржвэр, тэдгээрийн хоорондын зураглал биш.

Ихэнх хүмүүсийн үнэхээр хүсдэг зүйл илүү нарийн: Мира зөвхөн нэг хаягаас, Томас зөвхөн өөр хаягаас. Нэг хуваалцалтын тодорхойлолтод тэр холболтын синтакс байхгүй бөгөөд ямар ч ухаалаг дараалал үүнийг үүсгэхгүй. Энэ нь Samba нэг хуваалцалтын дотор илэрхийлдэггүй бодлогын хэлбэр бөгөөд домог тэнд амьдарсаар байна.

Samba юуг, ямар дарааллаар үнэлдэг

Үе шатууд тогтсон дарааллаар явагдах бөгөөд дараалал буруу бол буруу оношилгоо гарна. Клиент холболт нээж, тохируулсан бол глобал хост шалгалт ажиллаж, сессийн тохиргоо бүртгэлийг баталгаажуулж, дараа нь клиент хуваалцалттай холбогдож, тэнд тухайн хуваалцалтын өөрийн хост жагсаалт, valid users болон зөвхөн унших тохиргоо хэрэгжиж, файл нээгдэх үед л баталгаажсан таних тэмдгийн файлын системийн зөвшөөрөл шийднэ. Үе шат бүр хүсэлтийг дангаараа татгалзаж чадах бөгөөд нэгийг давсан нь дараагийнхын талаар юу ч хэлэхгүй. Чухал үр дагавар нь хуваалцалтын хост жагсаалтыг үнэлэх үед бүртгэл аль хэдийн мэдэгдэж байдаг бөгөөд хост жагсаалтад тэр бүртгэлийг нэрлэх арга одоо ч байхгүй.

Тиймээс хуваалцалт нэг хэрэглэгчийг нэг хаягтай холбож чадахгүй: hosts allow болон valid users нь ижил мод-холболтын үе шатанд хэрэгжих тусдаа шарт бөгөөд тус бүр өөрийн асуултад хариулдаг. Хост шарт бүртгэлийн нэрийг оролт болгон хэзээ ч авдаггүй тул хэрэглэгч тус бүрээр бичих боломжгүй. Хосыг зөвхөн хоёр дахь хуваалцалт эсвэл Samba-гаас гадуур бодлогын давхарга илэрхийлж чадна.

Глобал утгууд нь өвлөгдөх арга барилаараа чухал. hosts allow-г орхигдуулсан хуваалцалт глобал утгыг өвлөж, өөрийнхийг нь тогтоосон хуваалцалт тэр утгыг глобалын оронд ашигладаг, нэмэлтээр биш. Тиймээс өргөн глобал жагсаалт параметрийг хэзээ ч тогтоодоггүй хуваалцалтуудыг өргөтгөж, өөрийнхийг нь тодорхойлсон хуваалцалтад юу ч хийхгүй. testparm -s-г ажиллуулж, түүний хэвлэсэн хуваалцалт тус бүрийн утгыг уншаарай, учир нь тэр гаралт нь бодит бодлого, диск дээрх файл биш.

Нэг хуваалцалтыг нарийсгах нь серверийн бусад хэсэгт юу ч хийхгүй. Бусад хуваалцалт, хэвлэгчийн дараалал болон IPC холболт өөрсдийн дүрмийг хадгалдаг тул нэг хуваалцалтын хаягийн жагсаалтад тулгуурласан дизайн нэг замыг хамгаалдаг, хостыйг биш.

Нэг хавтас дээр хоёр хуваалцалтын нэр

Ижил хавтас хоёр хүнд хоёр хаягаас хүртээмжтэй байх шаардлагатай бол түүнийг өөр нэрээр хоёр удаа ил гарга. Блок бүр нэг бүртгэл, нэг эх сурвалж агуулдаг бөгөөд энэ нь хосыг тохиргоо хэрэгжүүлж чадах зүйл болгоно. Үнэ нь хүн бүр ижил файлуудад хүрэхийн тулд өөр хуваалцалтын нэр ашиглах бөгөөд энэ нь клиент талд санаатай өөрчлөлт байх ёстой.

[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

Хуваалцалтын гарц нь файлын системийн зөвшөөрөл биш. Хоёр таних тэмдэг хоёулаа үндсэн ACL-ээр дамжуулан хавтаст хандах шаардлагатай хэвээр байгаа бөгөөд зөвхөн унших тохиргоо нь хоёр дахь давхарга, цорын ганц биш. Ажлын урсгал шаардсан тохиолдолд л бичих зөвшөөрөл өгч, дараа нь нэг таних тэмдгийн үүсгэсэн файлууд нөгөөд ашиглагдах боломжтой хэвээр байгаа эсэхийг шалга.

Хоёр блок нэг зам руу заадаг тул хавтас дахь өөрчлөлт хоёр хуваалцалтад ч нөлөөлнө. Энэ нь ихэвчлэн зорилго боловч зөвшөөрлийн алдаа хоёр хэрэглэгчид нэгэн зэрэг харагдана гэсэн үг ч юм.

Эх сурвалжийн хаяг юуг нотолж чадах вэ

Samba-гийн харж буй хаяг нь серверт хүрсэн хаяг бөгөөд клиентийн өөрт байна гэж бодож буй хаяг биш. Клиент бүрийг нэг эх сурвалжийн хаяг руу хөрвүүлдэг VPN гарц энэ ялгааг арилгадаг: бүх клиент нэг хост болж ирэх бөгөөд эх сурвалжийн жагсаалт тэдгээрийг ялгаж чадахгүй болно. Клиент тус бүрт тогтвортой хуваарилалт болон эх сурвалжийг хадгалдаг гарц нь хаягийг бодлого болгон ашиглах урьдчилсан нөхцөл юм. Хоёулаа байхгүй бол хязгаарлалт хэрэглэгчийг биш, гарцыг хэмждэг.

Тэр ч байтугай хаяг нь төхөөрөмж биш. Нэг туннелийн хаягийн ард хоёр зөөврийн компьютер, дахин хуваарилсан лийз болон хуваалцсан ажлын станц бүгд эх сурвалж хүнийг танина гэсэн таамаглалыг няцаадаг. Хязгаарлалтыг сүлжээний хүрээ гэж үзэж, баталгаажсан SMB бүртгэлүүдийг таних тэмдгийн давхарга болгон бариарай, төхөөрөмжийн зөвшөөрөл шаардлагатай бол гэрчилгээ гэх мэт төхөөрөмжийн нэвтрэх мэдээлэлтэй.

Иймээс дизайн серверийг биш, хуваалцалтуудыг хаадаг. Татгалзсан хос сесс нээж, өөр хуваалцалтад хүрч эсвэл серверийг жагсааж чадах бөгөөд энэ нь холбогдох үеийн баталгаажуулалтын алдаанаас өөр үр дүн юм. Шаардлага нь баталгаажуулалтын өмнө татгалзах бол Samba-гийн хуваалцалтын параметрүүд буруу хэрэгсэл юм.

Хөндлөн хосуудаар нотлоорой

Тохиргоог баталгаажуулж, дараа нь дөрвөн хослолыг дахин ашигласан сессээр биш, шинэ холболтоор туршина. Зорьсон хос хавтаст хүрэх ёстой бөгөөд хөндлөн хосууд хоёулаа бүтэлгүйтэх ёстой. Өмнөх туршилтын кэшлэсэн сесс буруу хослолд дуртайяа хариулж, эвдэрсэн дүрмийг зөв харагдуулна.

testparm -s
smbclient //fileserver/shared-mira -U mira -c 'ls'
smbclient //fileserver/shared-tomas -U tomas -c 'ls'
smbstatus --shares

Синтакс шалгалт нь файл задран уншигдаж байгааг л нотолно. Нэвтрэх мэдээлэл, ACL болон хост шийдвэрийг бодит холболтоор туршдаг тул туршихыг хүссэн хаягаас клиентийн командыг ажиллуулж, аль үе шат түүнийг татгалзаж байгааг ажигла. Хөндлөн хос амжилттай болвол бодит хост жагсаалт блокийн харуулж байгаагаас өргөн бөгөөд хамгийн түрүүнд testparm -s-г унших хэрэгтэй. Хөндлөн хос буруу шалтгаанаар бүтэлгүйтвэл сэжигтэй нь бүртгэл эсвэл ACL юм.

Сессүүдийг smbstatus-оор хянах, тэдгээрийг устгах нь хандалт эхэлсний дараах хариу үйлдэл бөгөөд нэвтрэх хяналт биш. Бүх ажиглагдсан хаягийг блоклох нь ижил NAT-ын ард байгаа хамааралгүй хэрэглэгчдийг ч салгаж болзошгүй тул шийдвэр нь хуваалцалтын тодорхойлолтод, хяналт нь хариу үйлдлийн процесст хамаарна. Хоёуланг нь тусдаа байлгавал дизайн юуг хэрэгжүүлж байгаа талаар шударга хэвээр үлдэнэ.

Холбоотой нийтлэлүүд