Il mondo delle reti CIFS presenta insidie di varia natura, il protocollo è a suo modo contorto e le implementazioni di diversi produttori possono dar luogo a problematiche diverse.
Per diagnosticare problemi con Samba esistono vari strumenti a disposizione degli utenti:
- I log di Samba stesso
- I vari tool Samba presenti nel pacchetto ufficiale
- Genericamente, i vari strumenti di sistema disponibili su Unix e Windows per diagnosticare problemi di rete e servizi.
I LOG DI SAMBA
Sono tipicamente fra le prime cose da guardare. Nel file di configurazione è possibile definire vari parametri tra cui:
log file = %m.log
- Il nome e la logica con cui vengono salvati i log (possono essere divisi per utente, macchina ecc);
debug level = 2
- La verbosità dei log stessi, con valori che vanno da 0 (nessun logging) a 10 (maggimo debugging). Un valore di debug di 3 o superiore è già fin troppo verboso e va usato solo per diagnosi, in quanto tende a rallentare il sistema.
E' possibile modificare il livello di logging inviando al processo smbd i segnali SIGUSR1 per incrementarlo di uno e SIGUSR2 per diminuirlo di uno.
UTILITY SAMBA
Varie sono le utility di Samba per diagnosticare problemi.
testparm
serve per verificare la correttezza della sintassi del file di configurazione e per verificare se un dato host può collegarsi alla macchina Samba locale (sulla base delle access list di smb.conf, altri impedimenti dovuti a iptables o altro non sono contemplati): testparm hostname 10.0.0.150
, per esempio, elenca per tutte le condivisioni del proprio sistema, se l'host 10.0.0.150 ha diritto di accesso.
smbclient
è comodo per enumerare le condivisioni di un server e capire come e cosa esporta. smbclient -L 10.0.0.150
enumera tutte le condivisioni di 10.0.0.150. Viene chiesta una password, dare invio per fare un accesso anonimo o specificare -U utente
(e poi relativa password) per accedere con specifiche credenziali.
nmblookup
si usa per ottenere i nomi NetBIOS e i relativi IP degli Host in rete, tramite broadcast o query diretta, nmblookup -d 3 '*'
, per esempio, individua, nella propria rete (dominio di broadcast), gli host che rispondono ad una query nmb.
UTILITY UNIX
La diagnosi di problemi con Samba coinvolge anche problematiche di rete: server e client devono poter comunicare via IP e avere accesso alle porte netbios-ns 137/udp, netbios-dgm 138/udp, netbios-ssn 139/tcp e microsoft-ds 445/tcp (usata da CIFS, se non è raggiungibile si usa la 139) non ci devono quindi essere firewall o altri impedimenti che impediscano lo scambio di dati.
La diagnosi inoltre coinvolge l'effettiva esistenza di un server in ascolto sulla porta 139 o 445 e l'eventuale sniffing dei pacchetti in transito. Comandi utili per queste attività sono:
ping
Comando tipico per testare la connettività di rete IP fra due host, in ogni caso da affiancare a un test diretto tipo telnet 10.0.0.150 139
per verificare se alla porta 139 del server indicato risponde qualcosa.
Su un server Samba, per verificare che il servizio sia partito e sia in ascolto e disponibile in rete, digitare netstat -natp
e cercare righe tipo tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 4608/smbd che indicano che il processo smbd è in ascolto (LISTEN) sulla porta 139 su tutti gli indirizzi (0.0.0.0, basterebbe anche l'indirizzo dell'interfaccie di rete).
Verificare inoltre che non si siano firewall esterni o interni che impediscano l'accesso alla prota 139 tcp (con iptables -L -n
si visualizzano le regole di firewalling sul proprio Linux).
Se il client può accedere via rete al server e su questo è in esecuzione il processo che gestisce SMB, eventuali problemi possono essere dovuti al protocollo SMB/CIFS stesso (autenticazione, ecc), per cui possono essere utilizzati i comandi Samba sopra indicati o si può provare a diagnosticare cosa accade sniffando direttamente i pacchetti con strumenti come tcpdump
(analizza solo le intestazioni dei pacchetti) o ethereal
(visualizza e analizza tutto il contenuto di un pacchetto).
A livello applicativo, sul server Samba, può servire utilizzare strumenti come ps -adef
per verificare che i processi smbd e nmbd siano in esecuzione, strace -p #PID
per analizzare a basso livello le chiamate di sistema del processo di cui si è indicato il PID, lsof
per visualizzare i file aperti dai processi in esecuzione.
problemi di join ad un samba server
Sto testando la possibilità di inserire in ditta un server samba al posto del nostro file server windows 2000. Ho preso un po' di confidenza con samba, ma l'unica cosa che non riesco a fare è la join al server di un client (in test sia XP SP2 sia W2K).
Con uno sniffer ho controllato cosa succede: ""NBNS name query response, requested name does not exist [malformed packet]". Windows 2000 mi dà il seguente messaggio: "The following error occurred validating the name "DOMAIN". This condition may be concerned by a DNS problem. For information about troubleshotting concern DNS lookup problems, please see the following Microsoft Web Site: http://go.microsoft.com/fwlink/?LinkId=5171"
Avendo settato user name e password dei client (compreso il nome dei pc) su samba riesco a navigare perfettamente nelle directory condivise sul server.
Rimane il mistero della join al server.
Ho spedito varie e-mail alle mailing list di samba ma nessuna risposta.
Problema Samba
Ciao,
qualcuno puo' darimi indicazioni sul perche' non vedo risorse condivise su un pc Windows XP? l' errore e' il seguente:
[]# smbclient -L 192. -U session setup failed: NT_STATUS_LOGON_TYPE_NOT_GRANTED []# smbclient -L -N Anonymous login successful Domain=[] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
Sharename Type Comment
--------- ---- -------
Error returning browse list: NT_STATUS_ACCESS_DENIED
session request to (Called name not present) session request to failed (Called name not present) Anonymous login successful Domain=[] OS=[] Server=[Windows 2000 LAN Manager]
Prezzo Mysql
Qui trovi i prezzi per la licenza commerciale
https://shop.mysql.com/
prezzo mysql
Quanto costa (anche a fini commercili) una licenza mysql?
Rispondidisco di rete...
...così su due piedi mi viene in mente NFS...però ci sarebbe sempre samba...che dal lato client fa automounting delle condivisioni di rete...
Rispondi..trasferimento file
Ti ringrazio molto, la risposta fa al mio caso, ma pensavo di condividere una partizione sul disco remoto di un server e poi montarlo sul sistema locale, non so come fare pero', c'è un modo ?
Rispondi..trasferimento file
...se ho capito la tua domanda, credo che : "man scp" possa essere la tua risposta.
Condivisione cartelle
Ciao, ho 2 server Linux, appartenenti allo stesso segmento in rete, mi chiedo come posso fare per trasferire files e/o catelle tra uno e l'altro, grazie !
RispondiLog doppi: netbios & IP
sarei curioso di sapere come mai mi ritrovo come file di log sia la versione tipo: log.numeroIP sia log.nomeNETBIOS.
Un ls -lsort mi presenta i due log praticamente simultanei (ora e data uguali) ma con dimensione diversa e dati diversi. Il mio smb.conf indica log.%m.
Grazie in anticipo.