Kodėl Samba atmeta VPN klientus, kurie pasiekia serverį
VPN klientas gali pasiekti Samba serverį ir vis tiek būti atmestas pagal hosts allow. Prieš redaguodami patikrinkite šaltinį, kurį mato smbd, ir bendrinimo lygio politiką.
VPN klientas pingina failų serverį, išsprendžia jo vardą ir vis tiek negali atidaryti bendrinimo. Sambos prieglobos politika yra vienas iš keturių sluoksnių, galinčių atmesti tą ryšį, ir būtent jį žmonės redaguoja paskutinį. Leidžiamųjų sąrašas tikrinamas pagal šaltinio adresą, kurį smbd iš tikrųjų gauna, ir tai gali būti ne tas adresas, kurį klientas mano turįs. Teisingai nustačius šį šaltinį, neaiški leidimų problema tampa vienos eilutės konfigūracijos pakeitimu.
Keturi sluoksniai, kuriems nepavyksta su ta pačia žinute
Atmetimas gali ateiti iš maršruto, prieglobos ugniasienės, Sambos prieglobos politikos arba SMB tapatybės. Kiekvienas sluoksnis klientui pateikia žinutę, kuri sako maždaug tą patį, todėl spėliojimas kainuoja pusiaudienį. Patikras išdėsčius nuo tinklo į vidų, didžioji dalis spėliojimų dingsta.
Pradėkite nuo transporto. Jei 445 prievadas niekada nepasiekia serverio, jokia Sambos nuostata neturi reikšmės, o fiksavimas serverio sąsajoje tai išsprendžia per sekundes. Toliau eina prieglobos ugniasienė pačiame serveryje, kuri gali atmesti leidžiamą šaltinį dar prieš smbd jį pamatant. Tik po to, kai šie du praeina, leidžiamųjų sąrašas tampa kandidatu. Autentifikavimas yra paskutinis, nes nepavykęs prisijungimas ir prieglobos atmetimas serverio žurnale atrodo skirtingai, net kai klientas abu praneša kaip prieigos atsisakymą. Tvarka svarbesnė už įrankius, nes kiekvienas sluoksnis turi komandą, kuri į jį atsako.
Raskite šaltinio adresą, kurį smbd iš tikrųjų mato
Nukreiptos prieigos atveju serveris paprastai mato kliento adresą iš VPN telkinio. Kai šliuze yra šaltinio vertimas, jis vietoj to mato šliuzo LAN adresą, ir kiekvienas klientas už to šliuzo tampa neatskiriamas.
Šis skirtumas nulemia, ar leidžiamųjų sąrašo įrašas yra politika, ar skylė. Leidus išverstą šliuzo adresą, įleidžiami visi už jo esantys, o taisyklė atskiram klientui to beveik niekada nenorėjo išreikšti. Šaltinį skaitykite iš serverio, o ne iš kliento įsivaizdavimo apie savo adresą. Fiksavimas serverio sąsajoje yra pigiausias būdas jį pamatyti, ir tas pats fiksavimas įrodo, ar paketas apskritai atėjo. Apribokite fiksavimą paketų skaičiumi ir pridėkite prieglobos filtrą, kai žinosite, kurį klientą sekate. Sambos sesijų lentelė yra kita atsakymo pusė: smbstatus -b išvestyje kiekvienos sesijos eilutės kliento stulpelis yra partneris, kurį užfiksavo smbd, ir tai greičiausias patvirtinimas adreso, kuris iš tikrųjų pasiekė paslaugą.
sudo tcpdump -ni any -c 20 'tcp port 445'
sudo smbstatus -b
ss -tnp | grep ':445'
Skaitykite leidžiamųjų sąrašą taip, kaip jį skaito Samba
Nuostata hosts allow priima adresų, tinklų ar vardų sąrašą, ir ji gali būti nustatyta globaliai arba bendrinimo viduje. Du įrašai, kurie jums atrodo lygiaverčiai, gali būti nelygiaverčiai analizatoriui, todėl tikrinti reikia būtent veiksmingą konfigūraciją. Tai reiškia sujungtą vaizdą, o ne failą, kurį atsitiktinai redagavote.
Iliustracinė priešdėlių pora atrodo kaip žemiau esanti eilutė, ir tai pavyzdys, o ne jau esamų įrašų pakeitimas. Išsaugokite administracinius ir programų klientus, kurie šiandien teisėtai jungiasi, ir perskaitykite bet kokį draudimų sąrašą tame pačiame etape. Ar priegloba priimama, priklauso nuo politikos kaip visumos, todėl testuokite tikslų klientą, o ne samprotaukite apie pirmenybę. Prieglobos leidimas taip pat nieko nesako apie bendrinimo leidimus ar failų sistemos režimus, kurie yra atskiri vartai. Bandymo įrankių sėkmė reiškia, kad prieglobos politika priima tą šaltinį, ir nieko daugiau.
hosts allow = 192.168.50.0/24 10.90.0.0/24
testparm -s
testparm -s /etc/samba/smb.conf client.example 10.90.0.14
Pakeiskite failą, kuris išlieka po perkrovimo
Įprastoje Linux priegloboje konfigūracijos kelias yra fiksuotas, ir paslauga jį perskaito perkrovus. Maršrutizatoriuje ar įrenginyje veikiantis smb.conf dažnai sugeneruojamas paleidimo metu, ir rankinis pakeitimas dingsta kitą kartą perkrovus. Naudokite palaikomą įrenginio tinkinimo mechanizmą, kuris paprastai yra atskiras konfigūracijos failas.
Šiame etape vilioja įrašyti alternatyvią programinę aparatinę įrangą, nes viena gija pranešė, kad tai veikia. Tai didelis pakeitimas mažai politikos problemai, ir jis išveda įrenginį iš palaikomos būsenos. Pirmiausia nustatykite palaikomą valdymą, nes dauguma įrenginių leidžiamųjų sąrašą rodo per savo sąsają. Jei jie tikrai to nedaro, šis apribojimas yra argumentas už kitą aparatinę įrangą, o ne už nepalaikomą kompiliaciją.
Užrašykite, kurį failą pakeitėte ir kas jį vėl sukuria, kad kitas žmogus nekartotų diagnostikos.
Išbandykite vieną leidžiamą ir vieną neįtrauktą klientą
Išbandykite abu rezultatus, o ne tik norimą. Prisijungiantis leidžiamas klientas įrodo, kad pakeitimas veikia; vis dar atmetamas neįtrauktas klientas įrodo, kad taisyklė ne šiaip atidarė viską.
smbclient -L //fileserver -U alice
sudo testparm -s /etc/samba/smb.conf alice-laptop 10.90.0.14
sudo tail -n 40 /var/log/samba/log.smbd
Kai ryšys niekada nepasiekia smbd, atsakymas yra maršrutizavime arba serverio ugniasienėje. Jei priegloba leidžiama, o prisijungimas nepavyksta, problema yra tapatybė, ir leidžiamųjų sąrašo platinimas vėl nepadės. Diagnostikos išvestį laikykite privačią, nes išsamus Sambos žurnalas gali atskleisti bendrinimų kelius ir paskyrų pavadinimus. Keiskite po vieną sluoksnį per bandymą, kitaip kitas rezultatas jums nieko nepasakys.