Un client VPN fa ping al servidor de fitxers, resol el seu nom i tot i així no pot obrir una compartició. La política d’amfitrions de Samba és una de les quatre capes que poden rebutjar aquesta connexió, i és la que la gent edita última. La llista d’autoritzats es valora contra l’adreça d’origen que smbd rep realment, que pot no ser l’adreça que el client creu que té. Encertar aquest origen converteix un problema vague de permisos en un canvi de configuració d’una línia.

Quatre capes que fallen amb el mateix missatge

Un rebuig pot venir de la ruta, del tallafoc de l’amfitrió, de la política d’amfitrions de Samba o de la identitat SMB. Cada capa produeix al client un missatge que diu aproximadament el mateix, per això endevinar consumeix una tarda. Ordenar les comprovacions de la xarxa cap endins elimina la major part de les endevinalles.

Comenceu pel transport. Si el port 445 no arriba mai al servidor, cap paràmetre de Samba no importa, i una captura a la interfície del servidor ho resol en segons. Després ve el tallafoc de l’amfitrió al mateix servidor, que pot descartar un origen permès abans que smbd el vegi. Només després que aquestes dues passin, la llista d’autoritzats es converteix en candidata. L’autenticació va última, perquè un error d’inici de sessió i un rebuig d’amfitrió es veuen diferents al registre del servidor, fins i tot quan el client informa els dos com a accés denegat. L’ordre importa més que les eines, perquè cada capa té una ordre que la respon.

Trobeu l’adreça d’origen que smbd veu realment

Amb accés encaminat el servidor normalment veu l’adreça del client del pool VPN. Amb traducció d’origen a la passarel·la veu en canvi l’adreça LAN de la passarel·la, i cada client darrere d’aquesta passarel·la es torna indistingible.

Aquesta diferència decideix si una entrada de la llista d’autoritzats és política o un forat. Permetre una adreça de passarel·la traduïda admet tothom qui hi ha darrere, cosa que una regla per client poques vegades volia expressar. Llegiu l’origen al servidor i no a la idea del client sobre la seva pròpia adreça. Una captura a la interfície del servidor és la manera més barata de veure-la, i la mateixa captura demostra si el paquet va arribar. Limiteu la captura amb un recompte de paquets i afegiu un filtre d’amfitrió quan sapigueu quin client seguiu. La taula de sessions de Samba és l’altra meitat de la resposta: a smbstatus -b la columna de client de cada fila de sessió és el parell que smbd va registrar, i és la confirmació més ràpida de l’adreça que va arribar realment al servei.

sudo tcpdump -ni any -c 20 'tcp port 445'
sudo smbstatus -b
ss -tnp | grep ':445'

Llegiu la llista d’autoritzats tal com la llegeix Samba

El paràmetre hosts allow pren una llista d’adreces, xarxes o noms, i pot aparèixer globalment o dins d’una compartició. Dues entrades que us semblen equivalents poden no ser-ho per a l’analitzador, així que la configuració efectiva és el que cal inspeccionar. Això vol dir la vista fusionada i no el fitxer que vàreu editar per casualitat.

Una parella il·lustrativa de prefixos sembla la línia de sota, i és un exemple i no una substitució de les entrades que ja hi ha. Manteniu els clients administratius i d’aplicacions que avui es connecten legítimament, i llegiu qualsevol llista de denegació en la mateixa passada. Que un amfitrió sigui admès depèn de la política en conjunt, així que proveu el client exacte en lloc de raonar sobre la precedència. El permís d’amfitrió tampoc no diu res sobre permisos de compartició o modes del sistema de fitxers, que són portes separades. Un èxit de les eines de prova vol dir que la política d’amfitrions admet aquell origen, i res més.

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

Canvieu el fitxer que sobreviu a un reinici

En un amfitrió Linux normal el camí de configuració és fix i el servei el torna a llegir en reiniciar. En un encaminador o aparell el smb.conf en execució sovint es genera en arrencar, i una edició manual desapareix al reinici següent. Feu servir el mecanisme de personalització admès de l’aparell, que normalment és un fitxer de configuració propi.

La temptació en aquest punt és flashejar un firmware alternatiu perquè un fil va informar que funcionava. Això és un canvi gran per a un problema petit de política, i treu el dispositiu del seu estat admès. Identifiqueu primer el control admès, ja que la majoria d’aparells exposen la llista d’autoritzats per la seva pròpia interfície. Si de debò no ho fan, aquesta limitació és un argument per a maquinari diferent i no per a una compilació no admesa.

Anoteu quin fitxer heu canviat i què el torna a generar, perquè la persona següent no repeteixi el diagnòstic.

Proveu un client permès i un client exclòs

Proveu tots dos resultats, no només el que volíeu. Un client permès que es connecta demostra que el canvi funciona; un client exclòs que continua rebutjat demostra que la regla no ha obert simplement tot.

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

Quan la connexió no arriba mai a smbd, la resposta és a l’encaminament o al tallafoc del servidor. Si l’amfitrió és admès i l’inici de sessió falla, el problema és la identitat i ampliar la llista d’autoritzats no ajudarà. Manteniu la sortida de diagnòstic privada, perquè un registre detallat de Samba pot exposar camins de compartició i noms de comptes. Canvieu una capa per intent, o el resultat següent no us dirà res.

Articles relacionats