V tej zasnovi se mešata dve različni dovoljenji: kdo sme uporabljati imenik in kateri naslovi se sploh smejo povezati. Zapis seznama računov ob seznam virov je videti kot seznanjanje, a Samba oba seznama ocenjuje kot neodvisna predikata. Sprejet je vsak, ki izpolni oba, in to je širše pravilo, kot ga namerava večina skrbnikov. Rešitev je drugačna zasnova skupne rabe ali plast politike, ki zna izraziti par.

Mit: dva seznama ustvarita eno pravilo

Referenca smb.conf določa valid users in hosts allow kot dva nepovezana parametra, in prav nastavitev obeh na eni skupni rabi je mesto, kjer se začne zmeda. Nastavite valid users = mira, tomas in hosts allow = 10.77.0.21, 10.77.0.22 in sprejete so štiri kombinacije: Mira s katerega koli naslova, Tomas s katerega koli naslova. Nič v konfiguraciji ne veže prvega imena na prvi naslov, in vrstni red pojavljanja imen nima pomena. Njihovo prerazporejanje, dodajanje druge vrstice hosts allow ali eno ime na vrstico ne spremeni ničesar. Rezultat je produkt dveh seznamov, ne preslikava med njima.

Kar večina ljudi v resnici želi, je ožje: Mira le z enega naslova, Tomas le z drugega. Ena opredelitev skupne rabe nima skladnje za to povezavo in noben premeten vrstni red je ne ustvari. To je oblika politike, ki je Samba v eni skupni rabi ne izrazi, in tam mit preživi.

Kaj Samba ocenjuje in v kakšnem vrstnem redu

Faze potekajo v nespremenljivem vrstnem redu, in napačen vrstni red da napačno diagnozo. Odjemalec odpre povezavo; globalno preverjanje gostitelja se izvede, če je nastavljeno; nastavitev seje overi račun; nato se odjemalec poveže s skupno rabo, kjer se uporabijo njen lastni seznam gostiteljev, valid users in nastavitev samo za branje; in šele ko se datoteka odpre, odločijo dovoljenja datotečnega sistema overjene identitete. Vsaka faza lahko zahtevo sama zavrne, in prehod skozi eno ne pove nič o naslednji. Pomembna posledica je, da je račun znan, ko se ocenjuje seznam gostiteljev skupne rabe, seznam gostiteljev pa še vedno nima načina, da bi ta račun poimenoval.

Zato skupna raba ne more vezati enega uporabnika na en naslov: hosts allow in valid users sta ločena predikata, ki se uporabita v isti fazi povezave drevesa, in vsak odgovarja na svoje vprašanje. Predikat gostitelja nikoli ne vzame imena računa kot vhoda, zato ga ni mogoče napisati za posameznega uporabnika. Par lahko izrazi le druga skupna raba ali plast politike zunaj Sambe.

Globalne vrednosti so pomembne zaradi načina dedovanja. Skupna raba, ki izpusti hosts allow, podeduje globalno vrednost, in skupna raba, ki nastavi svojo, uporabi to vrednost namesto globalne, ne dodatno. Zato širok globalni seznam razširi skupne rabe, ki parametra nikoli ne nastavijo, in ne naredi ničesar za skupno rabo, ki določa svojo. Zaženite testparm -s in preberite vrednosti za posamezne skupne rabe, ki jih izpiše, ker je ta izpis dejanska politika in datoteka na disku ni.

Oženje ene skupne rabe prav tako ne naredi ničesar za preostali strežnik. Druge skupne rabe, tiskalniške vrste in povezava IPC ohranjajo svoja pravila, zato zasnova, ki se opira na seznam naslovov ene skupne rabe, varuje eno pot in ne gostitelja.

Dve imeni skupne rabe nad enim imenikom

Ko mora biti isti imenik dosegljiv dvema osebama z dveh naslovov, ga razkrijte dvakrat pod različnimi imeni. Vsak blok nosi en račun in en vir, kar par spremeni v nekaj, kar lahko konfiguracija vsili. Cena je, da vsaka oseba uporabi drugo ime skupne rabe, da doseže iste datoteke, in to mora biti namerna sprememba na strani odjemalca.

[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

Vrata skupne rabe niso dovoljenje datotečnega sistema. Obe identiteti še vedno potrebujeta dostop do imenika prek osnovnega ACL, in nastavitev samo za branje je druga plast, ne edina. Dovolite pisanje le, če to zahteva delovni tok, in nato preverite, ali datoteke, ki jih ustvari ena identiteta, ostanejo uporabne za drugo.

Oba bloka kažeta na eno pot, zato sprememba v imeniku vpliva na obe skupni rabi. Običajno je to namen, a pomeni tudi, da je napaka v dovoljenjih vidna obema uporabnikoma hkrati.

Kaj lahko dokaže izvorni naslov

Naslov, ki ga Samba vidi, je naslov, ki je dosegel strežnik, ne naslov, za katerega odjemalec misli, da ga ima. Prehod VPN, ki vsakega odjemalca prevede v en izvorni naslov, razliko odpravi: vsi odjemalci pridejo kot isti gostitelj in seznam virov jih ne more več ločiti. Stabilna dodelitev na odjemalca in prehod, ki ohrani vir, sta predpogoja za uporabo naslovov kot politike sploh. Brez obojega omejitev meri prehod in ne uporabnika.

Tudi takrat naslov ni naprava. Dva prenosnika za enim naslovom tunela, prerazporejen zakup in skupna delovna postaja skupaj ovržejo domnevo, da vir identificira osebo. Omejitev obravnavajte kot omrežni obseg in ohranite overjene račune SMB kot plast identitete, s poverilnico naprave, na primer potrdilom, če potrebujete avtorizacijo naprave.

Zato zasnova zapira skupne rabe in ne strežnika. Zavrnjen par lahko vseeno odpre sejo, doseže drugo skupno rabo ali izpiše strežnik, kar je drugačen izid kot neuspeh overjanja pri povezavi. Če je zahteva zavrnitev pred overjanjem, so parametri skupne rabe Sambe napačno orodje.

Dokažite s križanimi pari

Preverite konfiguracijo in nato preizkusite štiri kombinacije s svežimi povezavami, ne z znova uporabljeno sejo. Predvideni par mora doseči imenik, in oba križana para morata spodleteti. Predpomnjena seja iz prejšnjega testa bo z veseljem odgovorila za napačno kombinacijo in pokvarjeno pravilo bo videti pravilno.

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

Preverjanje skladnje dokaže le, da se datoteka razčleni. Poverilnice, ACL-ji in odločitev o gostitelju se preizkusijo z resnično povezavo, zato zaženite ukaz odjemalca z naslova, ki ga želite preizkusiti, in opazujte, katera faza ga zavrne. Če križani par uspe, je dejanski seznam gostiteljev širši, kot nakazuje blok, in testparm -s je prva stvar, ki jo je treba prebrati. Če križani par spodleti iz napačnega razloga, sta sumljiva račun ali ACL.

Spremljanje sej z smbstatus in njihovo končanje je odzivno dejanje po začetku dostopa, ne nadzor dostopa. Blokiranje celega opazovanega naslova lahko odklopi tudi nepovezane uporabnike za istim NAT, zato odločitev spada v opredelitev skupne rabe, spremljanje pa v odzivni proces. Držite to dvoje ločeno in zasnova ostane poštena glede tega, kar uveljavlja.

Sorodni članki