'''NetBIOS su TCP/IP''' ('''NBT''', o a volte '''NetBT''') è un [[Protocolli di rete|protocollo]] [[Reti di Computer|di rete]] che permette alle applicazioni che si basano su chiamate [[API]] al [[NetBIOS]] di poter essere utilizzate su reti [[TCP/IP]].
Il NetBIOS wasè developedstato insviluppato thenei earlylontani 1980sanni 1980, targetingper gestire le comunicazioni su veryreti smallmolto networkspiccole (aboutdi acirca dozenuna computersdozzina di computer). SomeAlcune applicazioni applicationsutilizzano stillancora useil NetBIOS, ande donon notsono ben [[scalability|scalescalabili]] wellnelle inreti today'sdi networksoggi, ofcon hundredscentinaia ofdi computerscomputer, whenspecialmente NetBIOSquando issono runutilizzati overpacchetti di rete [[NetBIOS Frames protocol|NBF]]. WhenQuando properlyopportunamente configuredconfigurato, l'NBT allowspermette thosealle applicationsapplicazioni todi beessere runattive onsu largevaste reti TCP/IP networks (includingall'interno the wholedell'intera [[Internet]],) althoughsenza thatdover isapportare likelymodifiche toal besoftware, subjectbenché tosia securitysoggetto problems)verosimilmente a problemi withoutdi changesicurezza.
L'NBT isè defineddefinito bydai thedocumenti standard RFC 1001 and RFCe 1002 standard documents.
== ServicesServizi ==
Il NetBIOS providesfornisce threetre distinctdiversi servicesservizi:
* Servizio dei Nomi (Name service) per la registrazione e la forrisoluzione namedei registrationnomi anddelle resolutionrisorse (portsporte: 137/udp ande 137/tcp)
* Servizio di distribuzione dei [[Datagrammi]] per la comunicazione senza connessione (connectionless) (porta: 138/udp)
* [[Datagram]] distribution service for connectionless communication (port: 138/udp)
* SessionServizio servicedi forsessione per la comunicazione orientata alla comunicazione (connection-oriented communication) (portporta: 139/tcp)
Il NBT implementa tutti i seguenti servizi.
NBT implements all of those services.
===NameServizio servicedei Nomi===<!-- This section is linked from [[Name server]] -->
Nel NetBIOS, ogni partecipante deve registrarsi sulla rete utilizzando un nome unico di almeno 15 caratteri. Nelle vecchie reti ereditate (legacy networks), quando una nuova applicazione voleva registrare un suo nome, doveva trasmettere un messaggio in broadcast che diceva "C'è qualcuno attualmente che sta utilizzando quel nome?" ed attendere una eventuale risposta. Se non riceveva alcuna risposta di ritorno allora era sicura che quel nome non era in uso. Comunque, il tempo di attesa era di alcuni secondi, rendendo la registrazione del nome un processo molto lungo, l'unico modo per sapere se un nome era registrato era quello di non ricevere alcuna risposta.
In NetBIOS, each participant must register on the network using a unique name of at most 15 characters. In legacy networks, when a new application wanted to register a name, it had to broadcast a message saying "Is anyone currently using that name?" and wait for an answer. If no answer came back, it was safe to assume that the name was not in use. However, the wait timeout was a few seconds, making the name registration a very lengthy process, as the only way of knowing that a name was not registered was to not receive any answer.
L'NBT può implementare un repositori centrale, o "Servizio dei Nomi (''Name Service''), che memorizza tutte le registrazioni dei nomi. Un'applicazione che vuole registrare un nome dovrebbe quindi contattare il server dei nomi (che ha un indirizzo di rete conosciuto) e chiedere se il nome è già registrato, inviando un pacchetto "Name Query".
NBT can implement a central repository, or ''Name Service'', that records all name registrations. An application wanting to register a name would therefore contact the name server (which has a known network address) and ask whether the name is already registered, using a "Name Query" packet. This is much faster, as the name server returns a negative response immediately if the name is not already in the database, meaning it is available. The Name Service, according to RFCs 1001 and 1002, is called'' NetBIOS Naming Service'' or NBNS. Microsoft [[Windows Internet Name Service|WINS]] is an implementation of NBNS. It is worth saying that due to constant development of the way in which the Name Service handles conflict or merges, "group names" varies from vendor to vendor and can even be different by version e.g. with the introduction of a service pack.
Questo metodo è molto veloce, poiché il server dei nomi risponde immediatamente in modo negativo se il nome non è già presente nel database, il che significa che è disponibile. Il servizio dei nomi, secondo le specifiche RFCs 1001 e 1002, è chiamato ''NetBIOS Naming Service'' o NBNS. Microsoft [[Windows Internet Name Service|WINS]] è un'implementazione del NBNS. Va ricordato che a causa del costante sviluppo nel modo in cui il servizio dei nomi gestisce i conflitti, i nomi di gruppo ("Group Names") variano da produttore a produttore e possono essere differenti in base alla versione, ad esempio per l'introduzione di un service pack.
TheI packetformati formatsdi ofpacchetto thedel Name Service aresono identicalidentici toal [[Domain Name System|DNS]]. TheLe keydifferenze differencessostanziali aresono thenell'aggiunta additiondella ofquery NetBIOS "Node Status" query, dynamice registrationi andpacchetti conflictdi markingregistrazione packetsdinamica e segnalazione di conflitto. TheyQuesti aresono encapsulatedincapsulati innel [[User Datagram Protocol|UDP]]. LaterIn implementationseguito includesl'implementazione anha incluso una parte opzionale del nome, optionaldetta ''Scope'', partrendendo of the name,il makingnome NetBIOS namegerarchico hierarchicalcome likeil DNS, but thisma isè seldomusato usedraramente.
Inoltre, per iniziare una sessione o per inviare un datagramma ad un particolare host anziché diffondere il datagramma in broadcast, NBT dovrà determinare l'[[Indirizzo IP]] dell'host per un dato nome NetBIOS; questo si ottiene diffondendo in broadcast un pacchetto "Name Query", e/o inviandolo ad un server dei Nomi NetBIOS. La risposta sarà l'[[Indirizzo IP]] dell'host risulta registrato sul server con quel nome.
In addition, to start a session or to send a datagram to a particular host rather than to broadcast the datagram, NBT will have to determine the [[IP address]] of the host with a given NetBIOS name; this is done by broadcasting a "Name Query" packet, and/or sending it to the NetBIOS name server. The response will have the IP address of the host with that name.
E' interessante notare che il NBNS è uno dei primi servizi distribuiti e dinamici e propriamente peer-to-peer per la registrazione dei nomi. Il protocolo NBNS è stato criticato a seguito di una errata preconfigurazione dello stesso ada Microsoft nei primi sistemi operativi:
It is interesting to note that NBNS is one of the first proper dynamic peer-to-peer distributed name registration services. The NBNS protocol was brought into disrepute by Microsoft: it earned a bad name for being 'chatty', swamping networks with dynamic registration traffic on multiple protocols (IPX/SPX, NBF and TCP/IP) as people badly misconfigured their machines and their networks{{Citation needed|date=January 2013}}. The principles implemented in NBNS have been reimplemented many times, including in such systems as [[ZeroConf]] and [[MobileIP]].
così il protocollo si è guadagnato la cattiva fama di essere troppo presente (chiacchierone,'chatty') creando con molto traffico nelle reti dovuto alla continua registrazione dinamica dei nomi in diversi protocolli contemporaneamente (IPX/SPX, NBF and TCP/IP), invece il problema era imputabile al fatto che gli utenti lasciavano in una configurazione sbagliata (predefinita da Microsoft) le proprie macchine collegate in rete, creando così dei problemi alle proprie reti{{Citation needed|date=January 2013}}.
I principi implementati nel NBNS sono stati reimplementati più volte, anche in sistemi come [[ZeroConf]] and [[MobileIP]].
===Datagram distribution service===
Datagram mode is "connectionless"; NetBIOS datagrams are sent over UDP. A datagram is sent with a "Direct Unique" or "Direct Group" packet if it's being sent to a particular NetBIOS name, or a "Broadcast" packet if it's being sent to all NetBIOS names on the network.
===Servizio di distribuzione Datagrammi===
===Session service===
La modalità Datagramma è non orientata alla connessione ("connectionless"); i datagrammi NetBIOS sono inviati in UDP. Un datagramma viene inviato con pacchetto "Direct Unique" o "Direct Group" se è stato inviato ad un particolare nome NetBIOS, oppure con pacchetto "Broadcast" se è stato inviato a tutti i nomi NetBIOS della rete.
Session mode lets two computers establish a connection for a "conversation", allows larger messages to be handled, and provides error detection and recovery.
===Servizio di Sessione===
Sessions are established by exchanging packets. The computer establishing the session attempts to make a [[Transmission Control Protocol|TCP]] connection to port 139 on the computer with which the session is to be established. If the connection is made, the computer establishing the session then sends over the connection a "Session Request" packet with the NetBIOS names of the application establishing the session and the NetBIOS name to which the session is to be established. The computer with which the session is to be established will respond with a "Positive Session Response" indicating that a session can be established or a "Negative Session Response" indicating that no session can be established (either because that computer isn't listening for sessions being established to that name or because no resources are available to establish a session to that name).
La modalità di Sessione consente a due computer di stabilire una connessione per una "conversazione", permette di gestire messaggi più grandi, e fornisce una gestione degli errori per garantire l'integrità dei messaggi.
Le sessioni vengono stabilite con lo scambio di pacchetti. Il computer che inizia la sessione tenta di creare una connessione [[Transmission Control Protocol|TCP]] sulla porta 139 del computer con il quale intende stabilire la sessione. Se la connessione viene creata con successo, il computer che ha iniziato la sessione invia sulla connessione un pacchetto "Session Request" con i nomi NetBIOS dell'applicazione che sta iniziando la sessione ed il nome NetBIOS del computer con il quale deve essere stabilita la sessione. Il computer con il quale la sessione deve essere stabilita risponderà con un "Positive Session Response", che indica può essere stabilita la sessione, altrimenti con un "Negative Session Response" che indica che la sessione non può essere stabilita (oppure poiché il computer non si aspettava sessioni a quel nome, o poiché non c'erano risorse disponibili per stabilire una sessione con quel nome).
Data is transmitted during an established session by Session Message packets.
Stabilita una sessione i dati sono trasmessi in pacchetti "Session Message". Il TCP gestisce il controllo di flusso e ritrasmissione di tutti i pacchetti di servizio di sessione, e la divisione del flusso dei dati sul quale sono trasmessi i pacchetti in datagrammi [[Internet Protocol|IP]] abbastanza piccoli da adattarsi alla grandezza dei pacchetti del Link-Layer.
TCP handles flow control and retransmission of all session service packets, and the dividing of the data stream over which the packets are transmitted into [[Internet Protocol|IP]] datagrams small enough to fit in link-layer packets.
Le sessioni vengono chiuse con la chiusura della connessione TCP
Sessions are closed by closing the TCP connection.
==Vulnerabilità nella Sicurezza==
==Security vulnerabilities==
I server Web sono tipicamente, ma non esclusivamente, il primo punto d'impatto dei vettori d'attacco tramite internet. Le porte di rete (LAN) [[Local area network]], progettualmente, danno informazione e spesso diventano conseguentemente obbiettivo della maggior parte degli attacchi su reti Client-Server.
Web servers are typically - but not exclusively - the first point of impact for internet-based attack vectors. [[Local area network]] (LAN) ports, by design, advertise information and consequently often become the focus of the most attacks upon Client-Server networks. Many services that are vulnerable to such means of attack, can - dependent on organizational impact to work-flows - safely be disabled. This is particularly true of network services that are inherently intranet-centric.
Molti servizi che sono vulnerabili a questi tipi di attacco, possono essere disabilitati senza problemi, in funzione dell'impatto organizzativo sui workflow. Questo è maggiormente vero nel caso di servizi di rete incentrati per natura in reti Intranet.
Two such vulnerable network protocols that provide services are: the [[Server Message Block]] (SMB) protocol and NetBIOS over TCP/IP. Both services can reveal incredible amounts of detailed and vital security information about an exposed network. When not mitigated, NetBIOS over TCP/IP and SMB provide recurring vectors for malicious attacks upon a network. Specifically, NetBIOS provides attackers with a means to map the network and also freely navigate a compromised intranet. In regards to public Web Servers, neither service is necessary for the successful operation of a public Web server and disabling both services in such scenarios can greatly enhance the security status of a network.
Tra i protocolli di rete sono che si dimostrano particolarmente vulnerabili nel fornire questi servizi ci sono: il protocollo [[Server Message Block]] (SMB) ed il NetBIOS over TCP/IP. Entrambi i servizi possono rivelare quantità di informazioni dettagliate e vitali in termini di sicurezza a riguardo delle reti esposte. Quando non confinati, i protocolli NetBIOS over TCP/IP and SMB forniscono vettori ricorrenti per attacchi malevoli sulla rete. Specificamente, il NetBIOS fornisce ai malintensionati i mezzi per mappare la rete e spostarsi liberamente nella intranet compromessa. Per quanto riguarda i server Web pubblici, nessun di questi servizi NBT e SMB, sono necessari al corretto funzionamento di un server web pubblico e la disabilitazione di entrambi in questi scenari può migliorare di molto il livello di sicurezza di una rete.
==Decreasing relevance in post-NT Client-Server Networks==
In relation to post-MS Windows 2000 / NT, client-server based networks, NetBIOS is effectively becoming a legacy protocol. NetBIOS was also developed for non-routable LANs. In most post year 2000 networks operating Windows 2000 or later, NetBIOS effectively offers backwards compatibility for network devices that predate compatibility with [[Domain name system|DNS]]. A central role of NetBIOS in Client-Server networks (and also those networks that have networked peripheral hardware that also predates DNS compatibility) is to provide name resolution to computers and networked peripherals. Further, it allows for such networked hardware to be accessed and shared and also enables the mapping and browsing of network folders, shares and shared printers, faxes, etc. In its primary capacity, it acts as a session-layer protocol transported over TCP/IP to provide name resolution to a computer and shared folders. To that end, Windows 2000-based, Client-Server networks - and later - do not require this insecure means of name resolving and addressing or navigating of network shares.<ref>http://technet.microsoft.com/en-us/library/cc940063.aspx</ref>
==Diminuzione dell'importanza nelle reti Client-Server post-NT==
== Troubleshooting NetBIOS ==
In relazione alle reti di tipo client-server su sistemi successivi a MS-Windows 2000/NT, il NetBIOS sta effettivamente diventando un protocollo obsoleto. Il NetBIOS era inoltre sviluppato per reti LAN non instradabili. Nella maggioranza delle reti create dopo l'anno 2000 con sistemi Windows 2000 o successivi, il NetBIOS effettivamente offre una retro-compatibilità con dispositivi di rete che hanno una compatibilità precedente al [[Domain name system|DNS]]. Il ruolo centrale del NetBIOS nelle reti Client-Server (ed anche in quelle reti in cui sono collegate tra loro periferiche hardware che precedono l'introduzione della compatibilità DNS) è quello di fornire la risoluzione dei nomi per i computer e per le periferiche di rete. Inoltre, permette all'hardware di rete di poter essere acceduto e condiviso, e rende possibile la mappatura e la navigazione delle cartelle di rete, delle condivisioni e delle stampanti condivise, dei fax, etc. Nella sua capacità primaria, agisce come un protocollo dello strato sessione spostato sopra il TCP/IP per fornire la risoluzione dei nomi ai computer ed alle cartelle condivise. In finale, le reti Client-Server basate su Windows 2000, e successive, non hanno bisogno di questi mezzi poco sicuri per la risoluzione dei nomi e l'indirizzamento o l'accesso alle cartelle condivise in rete.<ref>http://technet.microsoft.com/en-us/library/cc940063.aspx</ref>
== Risoluzione dei problemi relativi al NetBIOS ==
===Nbtstat===
il comando Nbtstat isè designedstto tocreato helpper troubleshootfornire NetBIOSun nameaiuto resolutionalla problemsrisoluzioni di problemi relativi alla risoluzione dei nomi NetBIOS.<ref>[http://technet.microsoft.com/en-us/library/cc940106.aspx Microsoft TechNet Documentation]</ref> WhenQuando auna networkrete isfunziona functioning normallynormalmente, il NetBIOS over TCP/IP (NetBT) resolvesrisolve i nomi NetBIOS namesin toindirizzi IP addresses. ItQuesto doesviene thisottenuto throughattraverso severaldiverse optionsopzioni forper NetBIOSla namerisoluzione resolutiondei nomi NetBIOS, includinginclusa localla cache lookuplocale di ricerca, WINSla richiesta al server queryWINS, i pacchetti broadcast, LMHOSTSla lookupricerca nel file LMHOSTS, Hostsla lookupricerca nel file Hosts, ande DNSla richiesta al server queryDNS.
Il comando nbtstat rimuove e corregge gli inserimenti precaricati utilizzando un numero di opzioni switch case-sensitive (con caratteri Maiuscolo-minuscolo). Il comando nbtstat -a < name > esegue un comando di richiesta di stato all'interfaccia NetBIOS del computer con il nome specificato nel campo < name>. Il
The nbtstat command removes and corrects preloaded entries using a number of case-sensitive switches. The nbtstat - a < name > command performs a NetBIOS adapter status command on the computer name specified by < name> . The adapter status command returns the local NetBIOS name table for that computer as well as the MAC address of the adapter card. The nbtstat -A < IP address > command performs the same function using a target IP address rather than a name.
comando di stato dell'interfaccia riporta la tabella locale dei nomi NetBIOS per quel computer, oltre all'indirizzo di rete fisica (MAC address) della scheda di rete (interfaccia). il comando nbtstat -A < IP address > esegue la stessa funzione utilizzando un indirizzo IP di destinazione anziché un nome da risolvere in indirizzo IP.
'''Nbtstat''' is a diagnostic tool for NetBIOS over TCP/IP. It is included in several versions of [[Microsoft Windows]]. Its primary design is to help troubleshoot NetBIOS name resolution problems.<sup>[[Nbtstat|[1]]]</sup>
'''Nbtstat''' è uno strumento diagnostico per il NetBIOS over TCP/IP. E' incluso in molte versioni di sistemi operativi [[Microsoft Windows]]. Il suo scopo primario è quello di fornire informazioni che aiutino a risolvere i problemi nella risoluzione dei nomi NetBIOS.<sup>[[Nbtstat|[1]]]</sup>
Path: C:\Windows\System32\nbtstat.exe ▼
▲Path: C:\Windows\System32\nbtstat.exe
EnvironmentAmbienti operativi: [[32-bit Windows|32-bit]]
CommandProcessore di comandi, cmd-Shell processor: C:\Windows\System32\cmd.exe, ande notnon C:\Windows\SysWOW64\cmd.exe
ThereCi aresono severalmolti commandscomandi involvedsimili withad Nbtstat thate allowsche severalpermettono optionsmolte suchopzioni ascome: localricerca nella cache lookuplocale, richiesta [[WINS Server]] query, richiesta broadcast, ricerca in file [[LMHOSTS]] lookup, ande ricerca in file [[Host (network)|Hosts]] lookup. ItNon isè notutilizzato forper DNSrichieste al server queryDNS.<ref>{{Cite web|url = http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/nbtstat.mspx?mfr=true|title = Microsoft Corporation|website = www.microsoft.com|access-date = 2016-04-13}}</ref>
====SyntaxSintassi====
nbtstat [-a RemoteName] [-A IPAddress] [-c] [-n] [-r] [-R] [-RR] [-s] [-S] [Interval]
TheI commonparametri parameterscomuni aresono:<ref>[http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/nbtstat.mspx?mfr=true Microsoft Nbtstat Documentation]</ref><br>
'''nbtstat -c''': displaysElenca thela contentsmemoria ofcache thedi NetBIOSNBT namedei cache,nomi theremoti table[computer] ofe NetBIOSdei namesrelativi and their resolvedindirizzi IP addresses.<br>
'''nbtstat -n''': displaysElenca thei namesnomi thatNetBIOS have been registered locally on the systemlocali.<br>
'''nbtstat -r''': displaysElenca thei countnomi ofrisolti all NetBIOS names resolved bymediante broadcast and querying ae WINS server.<br>
'''nbtstat -R''': purgesCancella andil reloadscontenuto thedella remotetabella dei nomi cache nameremota e la tablericarica. <br>
'''nbtstat -RR''': sendsInvia namepacchetti releasedi packetsrilascio todi WINsnomi anda thenWINS startse Refresh.quindi avvia l'aggiornamento <br>
'''nbtstat -s''': listsElenca thela currenttabella NetBIOSdelle sessionssessioni andche theirconverte status,gli includingindirizzi statisticsIP di destinazione in nomi computer NETBIOS. <br>
'''nbtstat -S''': listsElenca sessionsla tabletabella withdelle thesessioni destinationcon gli indirizzi IP addressesdi destinazione.
== Seevedi alsoanche ==
* [[Samba (software)|Samba]]
* [[Server Message Block]]
* [[Windows Internet Name Service|WINS]]
== Collegamenti esterni==
==External links==
* [http://support.microsoft.com/kb/204279 KB204279] - KB article describing the more modern, direct hosting of SMB
* [http://www.unixwiz.net/tools/nbtscan.html nbtscan] - open-source program to scan IP networks for NetBIOS name information
|