Бул дизайнда эки башка уруксат аралашат: ким каталогду колдоно алат жана кайсы даректер туташа алат. Эсептер тизмесин булактар тизмесинин жанына жазуу жупташтыруудай сезилет, бирок 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 артындагы тиешеси жок колдонуучуларды да ажыратышы мүмкүн, ошондуктан чечим жалпы ресурс аныктамасына, ал эми мониторинг жооп процессине таандык. Экөөнү өзүнчө кармаңыз, дизайн өзү эмнени аткараары жөнүндө адал бойдон калат.

Тектеш макалалар