Ruuter SMB-kliendina või paketiedastajana: kumb sobib
SMB-liikluse edastamine ja selle mountimine on eraldi rollid. Kontrollige volitusi, tuuma tuge ja rikete käsitlemist enne, kui ruuterist saab klient.
SMB-liikluse edastamine ei ole sama töö kui selle lõpetamine, ja ruuter, mis teeb üht, ei pruugi teisega hakkama saada. Edastamine tähendab, et ruuter liigutab pakette, mille sisu ta kunagi ei analüüsi. Mountimine tähendab, et ruuterist saab failiklient, tarkvaraga, mida tal ehk pole, volitustega, mida ta peab kaitsma, ja rikkerežiimidega, mis on nüüd tema omad. Kahe vahel valimine on küsimus sellest, kus faile vaja on, mitte sellest, mida õnnestub marsruutimisplatvormi installima veenda.
Edastamine ja lõpetamine on eri tööd
Edastusrollis on ruuteril üks vastutus: toimetada paketid kliendi ja serveri vahel, rakendades poliitikat, mida tee nõuab. Ta ei autendi end jagatud ressursi vastu, ei vahemällu salvesta failiandmeid ja teda ei huvita, kas server räägib SMB2 või SMB3, sest ta ei loe kunagi nii sügavale voogu. Kui ressurss muutub kättesaamatuks, näeb kasutaja viga ja ruuter jätkab marsruutimist.
Kliendirollis liitub ruuter protokolli vestlusega. Ta peab läbirääkimisi dialekti üle, autendib end, lahendab nimesid, hoiab mountimispunkti ja esitab kohaliku failisüsteemi vaate kõigele, mis tema peal töötab. See on tõeline teenus elutsükliga ja muudab lüüsi failitöövoo sõltuvuseks. Ta pärib ka kõik selle sõltuvuse rikkerežiimid, sealhulgas käivitusaegsed ootamised ja aegunud volitused.
Võrdlus ei käi ainult võimekuse kohta. Platvorm, mis suudab jagatud ressursi mountida, ei ole automaatselt platvorm, mis peaks seda tegema, ja platvorm, mis ei suuda seda mountida, võib ikkagi olla õige koht liikluse marsruutimiseks.
Mida tuuma CIFS-mount tegelikult vajab
Linuxil põhineval seadmel on tuuma CIFS-klient ja kasutajaruumi klient eraldi võimekused ning väikesed kujutised ei sisalda sageli kumbagi. Tuematugi peab töötavas kujutises olemas olema, mountimisabiline peab eksisteerima ja serveriga kokku lepitud SMB-dialekt peab olema selline, mida mõlemad pooled aktsepteerivad. Seda kirjeldab Linuxi CIFS-kliendi juhend, mis selgitab tuuma ülesehitust ja selle mountimisvalikuid, ja see on õige viide enne, kui eeldada, et tootja koostis selle sisaldab.
Kontrollige võimekust enne, kui selle ümber projekteerite, ja kontrollige versiooni, mitte käsunime olemasolu. Mooduli nimi paketiloendis ei ole sama mis töötav klient.
lsmod | grep -w cifs
modinfo cifs | head -5
mount.cifs --version
smbclient -L //fs02.corp.internal -U svc-router -m SMB3Tuumamoodul, mis laaditakse, ja kasutajaruumi tööriist, mis teatab versiooni, ei taga veel, et mount elab üle VPN-võtmete uuenduse, seega käsitlege kontrolli algtingimusena, mitte tõestusena. Kui kujutis pakub ainult SMB1-tuge, on see põhjus peatuda, mitte põhjus see serveris lubada.
Volitused ja allika identiteet erinevad sülearvuti omadest
Edastatud päring kannab sülearvuti identiteeti tunnelist läbi, samas kui ruuteril tekkinud päring kannab ruuteri enda lähteaadressi, resolveri teed ja väljundfiltreerimist. Need võivad sattuda teise tulemüürireeglisse, teise DNS-vaatesse ja teise serveripoolsesse lubatud loendisse. Seetõttu ei tõesta tööjaamast töötav koopia midagi ruuteri enda mounti kohta. Testige mounti ruuteri enda kestast, mitte selle taga olevast tööjaamast.
Andke ruuterile kitsalt volitatud teenuseidentiteet, kui roll üldse heaks kiidetakse. Ärge kunagi pange parooli otse mountimiskäsurea sisse, sest see jääb kesta ajalukku ja ilmub protsessitabelisse, kuni mount töötab.
Hoidke volitusi platvormi kaitstud mehhanismi kaudu ja lugege neid failist, millel on piiravad õigused. See fail peaks olema loetamatu kõigile kontodele peale selle, mis mounti käitab.
install -m 600 /dev/null /etc/cifs-reports.creds
printf 'username=svc-router\npassword=REPLACE_ME\ndomain=CORP\n' > /etc/cifs-reports.creds
mount -t cifs //fs02.corp.internal/reports /mnt/reports -o credentials=/etc/cifs-reports.creds,vers=3.1.1,roKellele kuulub rike, kui jagatud ressurss kaob
Puuduv kaugfailisüsteem käitub teisiti kui puuduv marsruut. Mount võib blokeerida protsesse, mis seda puudutavad, see võib käivitusel ebaõnnestuda enne, kui tunnel olemas on, ja serverile mõeldud kirjutus võib sattuda valesse kohta, kui mountimispunkti all on kohalik kataloog. Need on salvestusrikked, mis kuuluvad nüüd võrgumeeskonnale, ükskõik kas meeskond neid soovis. Keegi ei nõustunud selle omandiga, aga see tuleb mountiga kaasa.
Projekteerige käivitumisjärjekord ja mountimisvalikud selle tegelikkuse ümber. Lühikese ajalimiidi ja dokumenteeritud taastamissammuga kirjutuskaitstud mounti on kergem kaitsta kui kirjutatavat mounti, millest kõik muu sõltub. Kinnitage, et tunnel tõuseb enne, kui miski mountida üritab, muidu jääb esimene käivitus pärast voolukatkestust rippuma.
Ulatuslikuks failitöötluseks või millekski, mis andmeid edasi re-ekspordib, annab eraldi host tavaliselt selgema omandi piiri. Ruuter jätkab marsruutimist ja failitöövoog saab masina, mille saab taaskäivitada ilma võrku kaasa võtmata.
Kontrollige otsust tegeliku ülesande vastu
Kirjutage üles, millisel ülesandel on faile vaja ja kus see ülesanne töötab. Kui vastus on tööjaam, marsruutige jagatud ressurss ja lõpetage seal. Kui vastus on seadmes töötav teenus, kinnitage kliendi võimekus, toetatud dialekt ja volituste tee enne esimest mounti, seejärel otsustage, kas seade on tõesti õige host.
Kontrollige mountitud vaadet ja vaba ruumi ruuteri enda pealt, sest seal näeb töökoormus neid. Korrake kontrolli pärast taasühendamist, mitte ainult puhta käivituse järel.
findmnt -t cifs -o TARGET,SOURCE,OPTIONS
df -h /mnt/reports
ls -l /mnt/reports | headMount, mis loetleb faile, aga teatab täis või kirjutuskaitstud failisüsteemist, on juba öelnud, millise rikkega te kell 2 öösel kokku puutute. Kinnitage ka taastamistee: demonteerige puhtalt, laske tunnel alla, tõstke see tagasi ja mountige uuesti ilma seadet taaskäivitamata. Kui see jada nõuab iga kord tugijuhtumit, on ruuter kliendirolli jaoks vale koht.