# NetBIOS via TCP/IP

#

##### > OS/2 net index <

NETBIOS versus TCP/IP NetBIOS, routing en NetBIOS via TCP/IP IBM OS/2 NETBIOS via TCP/IP installeren | Met de samba server verbinden Host bestanden onder Windows De MPTS bug

#

### NETBIOS versus TCP/IP

##### > Top <

NetBIOS over TCP/IP (TCPBEUI) is een manier om computers via 32 bits IP adressen over poort 139 te bereiken. Dat heeft de volgende voordelen:

1. Met Samba kunt u met een Linux/UNIX server uw bestanden en printers delen. UNIX spreekt het Server Message Block wel, maar alleen via TCP/IP.

2. Door de binding aan TCP/IP zijn ook computers buiten het LAN te benaderen (en omgekeerd).

3. OS/2 kan als client optreden van een NT server.

Die openheid heeft als nadeel dat anderen gemakkelijker uw netwerk kunnen binnendringen.

Immers, waar het NetBIOS zich tot een werkgroep op lokaal ethernetwerk beperkte, is de reikwijdte van een NetBIOS over TCP/IP zonder limiet.

Het gevolg kan zijn dat de shares van uw harde schijf in de netwerkomgeving van een hacker op het internet kunnen verschijnen. Hij hoeft slechts een reeks IP adressen op het netwerk van een ISP te scannen om te weten waar de gaten kunnen zijn (dit valt onder abuse).

Het voorbeeld hiernaast toont een poortscan van eComStation met o.a. NFS, NetBIOS, Secure Shell en LPD.

Met name onder Windows staat poort 139 vaak wijd open. Zonder dat de Windows gebruiker het weet. Dat is de poort die de toegang tot de gedeelde NetBIOS bronnen via TCP/IP verschaft.

Gelukkig zullen deze servers met Injoys Netwerk Adres Vertaling niet vanaf het Internet te bereiken zijn (zet dan wel de NAT van de Injoy PC aan!).

U kunt uw openstaande poorten controleren met de poortscanner van Steve Gibson: Shields UP! -- Internet Connection Security Analysis .

Attempting connection to your computer... Shields UP! is now attempting to contact the Hidden Internet Server within your PC. It is likely that no one has told you that your own personal computer may now be functioning as an Internet Server with neither your knowledge nor your permission. And that it may be serving up all or many of your personal files for reading, writing, modification and even deletion by anyone, anywhere, on the Internet! Please Note: On highly secure systems this may take up to one minute...

Gelukkig is OS/2 Warp niet zo gemakkelijk te kraken:

Unable to connect with NetBIOS to your computer. All attempts to get any information from your computer have FAILED. (This is very uncommon for a Windows networking-based PC.) Relative to vulnerabilities from Windows networking, this computer appears to be VERY SECURE since it is NOT exposing ANY of its internal NetBIOS networking protocol over the Internet.

Daarnaast moet u zich realiseren dat anderen zonder dat u het weet servers op uw PC kunnen installeren. Via een Trojaans paard bijvoorbeeld of m.b.v. Java script. Gelukkig voor de OS/2 gebruiker zijn ze bijna allemaal voor Windows ontworpen (maar kijk uit voor Java).

Een ander nadeel is dat NetBIOS over TCP/IP moeilijker op te zetten is. Dat heeft niet alleen te maken met het TCP/IP protocol, maar ook met enige basale fouten in het MPTS configuratie programma. Ze worden hieronder besproken.

#### NetBIOS, routing en NetBIOS via TCP/IP

##### > Top <

Het eenvoudige NetBIOS protocol benadert slechts computers binnen een besloten netwerk (Werkgroep onder Windows, domein onder OS/2). Het ethernet LAN bestaat uit computers die via de bekabeling van hun hub direct met elkaar in verbinding staan. NetBIOS ondersteunt geen routing.

Het NetBIOS ethernetwerk is een "Broadcast netwerk": "zolder" roept "visser". De computer met de netbiosnaam "visser" reageert, maar alle op het netwerk aangesloten computers luisteren noodgedwongen mee. Vergelijk het met de 27 MC band. Op een groot NetBIOS netwerk is het daarom al snel een chaotisch heen en weer geroep van computers die elkaar proberen te benaderen. Roept een ethernetkaart een andere ethernetkaart op terwijl er al een ethernetkaart actief is ("collisie"), dan treden er automatisch wachttijden in. Dit regelt de hardware van de ethernetkaart.

Door zijn eenvoud is een ethernet LAN met het NetBIOS protocol behoorlijk snel. De OS/2 versie van het NetBIOS protocol heeft ook andere voordelen: het kan naast printers en mappen ook modems delen en geeft ondersteuning voor uitgebreide attributen.

TCP/IP laat gecompliceerde verbindingen over lange afstanden toe (WAN, internet). Dankzij TCP/IP routing kunnen verbindingen via vele tussenstations tot stand komen. Computers kunnen elkaar via hun unieke IP adres over het internet benaderen. TCP/IP is in tegenstelling tot het NetBIOS (ethernetkaart) niet gebonden aan bepaalde hardware zodat het heterogene netwerken kan worden gebruikt. Een veel voorkomende wijze van TCP/IP transmissie is het Point-to-Point (PPP) protocol via gehuurde telefoonlijnen. U gebruikt het als u internet en bedrijven als ze via ISDN of satellietlijnen met hun vestigingen communiceren.

Routing is de manier waarop de informatie (datagrammen) van netwerk naar netwerk worden gepompt. Het hele internet bestaat uit aan elkaar gekoppelde autonome netwerken. Computers binnen een TCP/IP netwerk kunnen elkaar via de unieke IP adressen van hun interfaces vinden. Datagrammen die bestemd zijn voor IP adressen die op een LAN niet thuis te brengen zijn (omdat er geen passende netwerkkaart voor is), worden naar een volgend netwerk doorgeschoven. De computer (of de hardware) die daartoe het netwerk met andere netwerken verbindt functioneert als router. Het IP adres van interface op het lokale netwerk van de router is de zogenaamde default gateway. De router moet het pakket weer doorsturen naar de passende host(s) op een tweede (of derde, etc) netwerk waarmee het in verbinding staat. Als de router die niet vindt stuurt hij het naar zijn eigen default gateway op dat netwerk. Hier herhaalt zich het proces. Via routers worden de datagrammen dus van netwerk naar netwerk naar hun uiteindelijke eindbestemming gezonden.

NetBIOS via TCP/IP maakt gebruik van 32 bits IP adressen om buiten het NetBIOS LAN om computers te benaderen. TCP/IP doet dat via het door de DNS omzetten van hostnamen in 32 bits IP adressen natuurlijk ook al, maar met NetBIOS over TCP/IP kun u ook hosts buiten het lokale ethernetwerk aan de ethernet "broadcast lijst" toevoegen. Via 'othdomains' in ibmlan.ini kunt u ook andere domeinen dan die van uw werkgroep aanspreken. Voorwaarde is dat u over het IP adres (of een NETBIOS naamserver) beschikt. Hiermee kun u bij wijze van spreken een groot bestand laten afdrukken op de laserprinter van de zaak.

Een ander voordeel van de koppeling van het NetBIOS aan TCP/IP is dat er ook m.b.t. de hardware zeer heterogene netwerken kunnen ontstaan. Een gewoon NetBIOS ethernetwerk spreekt alleen met de lokaal op de hub aangesloten ethernetkaarten. TCP/IP werkt echter met vrijwel alle voor communicatie bestemde randapparaten en heeft dus een veel groter bereik. Het is geen wonder dat op het TCP/IP protocol gebaseerde netwerken inmiddels standaard zijn.

NetBIOS LAN | TCP/IP verbinding | LAN, WAN of thuiswerker 2 (3,4,..)
--- | --- | ---
Lokaal ethernetwerk met op een hub aangesloten gateway/router. | Ethernet verbinding tussen de gateways, seriele dial-up of analoge (ISDN huur)lijn, eventueel met gebruikmaking van het internet | Gateway/router van ander netwerk of andere host. Alternatief: thuiswerker, internet.

NetBIOS over TCP/IP is overigens niet nodig om te internetten. Hiertoe volstaat het gewone TCP/IP protocol dat u gewoon naast het NetBIOS op logische adapter 0 protocol kunt installeren (zie Eenvoudige installatie ). Dat is wel zo veilig.

Ook kunt u via het TCP/IP protocol bestanden uitwisselen met bijv. Linux computers. Denk aan de FTP Folders en de immense mogelijkheden van een telnet. Het gaat echter minder transparant dan via het Drives object van een werkend NetBIOS over TCP/IP.

### IBM OS/2 NETBIOS via TCP/IP installeren

##### > Top <

MPTS bevat een bug, waardoor de in \ibmcom\protocol.ini ingestelde logische adapters niet altijd in \ibmlan\ibmlan.ini worden geplaatst! Als u er niet op bedacht bent gaat u eindeloos klooien. Met onderstaande instructies komt u wel uit.

Ga naar het MPTS icon (o.a. in Configuratie).

Kies LAN-adapters en protocollen.

U komt in het hieronder afgebeelde scherm. Klik op het venster Protocollen, selecteer IBM OS/2 NETBIOS VIA TCP/IP en kies Toevoegen. IBM TCP/IP en IBM OS/2 NETBIOS dienen ook geïnstalleerd te zijn. Als u de procedure van Netwerkonderdelen installeren gevolgd hebt is dat al gebeurd.

Standaard komt IBM OS/2 NETBIOS VIA TCP/IP naast IBM TCP/IP en IBM OS/2 NETBIOS op (de eerste) Logische Adapter 0 te zitten, maar dit moet u veranderen in nummer 1 (of de eerstvolgende vrije adapter). Gebruik Nummer wijzigen. Zie de afbeelding hieronder. IBM telt hier in UNIX traditie vanaf 0.

De reden is dat IBM OS/2 NETBEUI en IBM OS/2 TCPBEUI (NETBios over TCP/IP) niet op dezelfde (logische, niet de fysieke) adapterinterface mogen zitten. IBM plaatst ze standaard op Lan adapter 0.

Om een Remote Install uit te kunnen voeren dient het gewone NETBIOS protocol op Logische Adapter 0 (van het eerste netwerk= NET1) te zitten (tip van Al Savage die een procedure beschrijft voor ADSL en Kabelmodemgebruikers: OS/2 Warp 4 notes).

In theorie hoeft u niet zowel NetBIOS als NetBIOS via TCP/IP te installeren. Ik heb het echter zo gelaten omdat het bij mij goed werkt. En MPTS doet niet altijd wat het moet doen. Het verwijderen van NetBIOS in MPTS levert bij mij een foutmelding op:

De functie REQUESTER is niet gestart.

De functie REQUESTER is niet gestart.

NET3051: IBMLAN.INI of de opdrachtregel bevat een onjuiste waarde voor WRKNETS.

Voor meer informatie typt u HELP NET3051.

Hier wordt de requester (een soort proxy die contact maakt met remote servers) niet gestart omdat MPTS IBMLAN.INI niet heeft aangepast. OS/2 netwerk specialisten editen het bestand vaak met de hand.

Daarna klikt u (met IBM OS/2 NETBIOS VIA TCP/IP in de huidige configuratie geselecteerd) op Bewerken. Het eerste Item (Parameters stuurprogramma) configureert u nu niet. Dat is iets voor gevorderden. De standaardinstelling B-NODE zal op een thuisnetwerk zonder NETBIOS Name Server voldoen.

Aan het item Lijst met namen voegt u de NETBIOS namen en bijbehorende IP adressen of DNS hostnamen van de computers op uw netwerken toe. De NETBIOS-naam van een computer (max 16 tekens) hoeft dus niet dezelfde te zijn als de hostnaam voor de DNS (sjoerd-visser.demon.nl). De NETBIOS-namen en de bijbehorende DNS Hostnamen of IP adressen worden door MPTS toegevoegd aan het bestand \ibmcom\rfcnames.lst, dat enigszins lijkt op het /etc/hosts bestand van Linux. Het aantal namen dat u in kunt voeren wordt bepaald door de variable NAMESFILE onder [tcpbeui_nif] in \ibmcom\PROTOCOL.INI (standaard 4).

In het afgebeelde voorbeeld maken de PEERS deel uit van het lokale netwerk, maar met de lijst kunt u ook niet lokale bronnen te benaderen, zoals de laserprinter op uw werk. Immers, (geldige) IP adressen werken overal. De aanhalingstekens worden door MPTS toegevoegd.

Vervolgens voegt u de namen (of IP adressen) van uw NETBIOS servers en clients aan de Verzendlijst toe. Deze staan in het bestand \ibmcom\rfcbcst.lst. Het gaat om de door u gewenste selectie van Hostnamen of IP adres die via het hierboven genoemde Broadcast systeem wilt benaderen (uw ISP hoort daar niet bij).

Hebt u hier iets met de hand gewijzigd (dat kan met StarOffice als u deze site op uw Warp partitie zet) dan kunt met de opdracht \ibmcom\rfcaddr de adressen weer actualiseren (geen reboot nodig). Ziet u foutmeldingen als "Domain Controller not found" log dan lokaal in (logoff en logon /l draaien).

Bij het beeindigen van MPTS wordt de CONFIG.SYS bijgewerkt.

Al naar gelang uw configuratie worden stuurbestanden toegevoegd of verwijderd. De oude versie wordt opgeslagen als CONFIG.MPT.

Station D is mijn reddingspartitie. Die laat ik niet bijwerken. Dit om de configuratie simpel en "fail-proof" te houden en om geopende bestanden bij een chkdsk vanuit station D op station I te voorkomen.

### Met de samba server verbinden

Na deze aanmelding op het netwerk kunt u in Gemeenschappelijke Resources en Netwerkverbindingen voor Linux en NT dezelfde procedure doorlopen als in het peer-to-peer netwerk met Windows (zie Verbindingen). De stationsnamen die ik voor dezelfde PC onder Windows opgaf waren al vergeven, dus mijn mappen op de Linux PC kregen de stationsnamen S en T. Hiermee weet u meteen waar de foutmelding "Enige netwerkverbindingen zijn niet tot stand gekomen" vandaan komt. De onder Windows geldige shares van zolder waren onder Linux (nog) niet vrijgeven.

Voor de Netbios via TCP/IP toegang tot de shares onder Samba creëert u een onder Linux geldige inlognaam (liever niet "root", maar de naam waarmee u als gebruiker inlogt: bij mij "sjoerd") en het bijbehorende wachtwoord. Dat Warp de tekens in hoofdletters vertoonde bleek geen probleem. De wachtwoorden die nodig zijn voor de toegang tot de samba shares worden door OS/2 Warp 4, Windows 95 en Windows voor Werkgroepen 3.11 onversleuteld naar een samba server verzonden.

In /etc/smb.conf heet dat:

encrypt passwords = No

Maar met netwerksniffers zijn onversleutelde wachtwoorden gemakkelijk te achterhalen. Vandaar dat latere versies van Windows en Windows NT (vanaf SP 3.5) versleutelde wachtwoorden over het netwerk verzenden, die onder samba in een aparte database komen te staan.

Samba levert een oplossing voor een "gemengde " werkomgeving. Dus als u zowel versleutelde als onversleutelde wachtwoorden op het LAN gebruikt.

In de Global section van /etc/smb.conf plaats u het volgende om samba zowel met de onversleutelde wachtwoorden van Windows 95 en OS/2 Warp 4 als de versleutelde wachtwoorden van Windows 98, ME en NT te kunnen benaderen:

encrypt passwords = Yes

update encrypted = Yes

Wellicht moet u nog wel wachtwoordbestanden in swat updaten. Bij het opstarten van OS/2 wordt de verbinding met de samba server helaas niet meteen gelegd. De Status van de resource in de Gemeenschappelijke Resources en Netwerkverbindingen is in eerste instantie niet-actief. Door te klikken op Herstellen wordt alsnog een verbinding gelegd. Een mooiere optie is dit via startup.cmd te doen:

net use S: \\zolder\samba

net use T: \\zolder\sjoerd

Voor details over het uitzetten van de Windows encryptie zie: Samba.

### Host bestanden onder Windows

Windows NT kent zowel een LMHosts bestand als een HOSTS bestand. Het Lan Manager Hosts bestand wordt gebruikt voor het oplossen van NetBIOS namen. Het HOSTS bestand voor andere TCP/IP protocollen (Q105997). U vindt voorbeelden in winnt\system32\drivers\etc. Werkt de NET USE opdracht niet vanuit NT,W2K of XP, dan moet u ingangen in winnt\system32\drivers\etc\lmhosts aanmaken:

zolder 192.168.1.2 #PRE #DOM:thuis
laptop 192.168.1.3 #PRE #DOM:thuis
ecs 192.168.1.5 #PRE #DOM:thuis

winnt\system32\drivers\etc\hosts (nodig voor mail, proxy etc)

127.0.0.1 localhost
192.168.1.2 zolder.thuis
192.168.1.3 laptop.thuis
192.168.1.5 ecs.thuis

winnt\system32\drivers\etc\networks

loopback 127
thuis 192.168.1

Merkwaardig is dat ecs het in deze situatie toch niet doet (alleen ecs.thuis)

De gewone Windows versies bewaren deze bestanden in de \windows systeemmap.

### De MPTS bug

Tijdens het opstarten van OS/2 komt er een "SYS1719" fout met betrekking tot \IBMLAN\NETPROG\NETWKSTA.200:

De diepere betekenis hiervan kunt u opvragen met: help 1719

[I:\] help1719

SYS1719: Het bestand ***, opgegeven in de opdracht *** op regel *** van CONFIG.SYS, bevat geen geldig stuurprogramma voor een apparaat of een bestandssysteem. Regel *** wordt genegeerd.

VERKLARING: Het genoemde bestand bevat geen geldig stuurprogramma voor een apparaat of een bestandssysteem.

Het kan ook zijn dat het een stuurprogramma voor DOS is, terwijl DOS niet is geactiveerd.

ACTIE: Voer een van de volgende handelingen uit en start het systeem daarna opnieuw op:

o Herstel de fout of verwijder de opdracht uit CONFIG.SYS.

o Verwijder de opdracht PROTECTONLY=YES uit CONFIG.SYS.

o Installeer het juiste stuurprogramma voor een apparaat of bestandssysteem in het opgegeven bestand.

o Installeer alle dynalink-bibliotheken die voor het opgegeven stuurprogramma nodig zijn.

Een stuurbestand wordt niet geladen. De oorzaak ligt in MPTS. MPTS blijkt niet altijd in staat om een het "OS/2 Peer initialization file" \ibmlan\ibmlan.ini aan een tweede logische adapter (Interface 1!) aan te passen. Ik kwam dit probleem bij herhaling tegen bij de installatie van NetBIOS via TCP/IP (TCB) op een bestaand OS/2 systeem. Maar toen ik alle netwerkonderdelen meteen tijdens een schone OS/2 Warp 4 installatie installeerde kwam het niet voor.

Open in dit geval het bestand \ibmlan\ibmlan.ini met een teksteditor. Controleer of er een ingang voor terug te vinden is. Vaak ontbreekt de tweede ingang voor net2 = TCPBEUI$,1,LM10,100,100,14. Mijn aanpassingen zijn vetgedrukt.

; OS/2 Peer initialization file

[networks]

net1 = NETBEUI$,0,LM10,100,100,14

net2 = TCPBEUI$,1,LM10,100,100,14

; This information is read by the redirector at device initialization time.

[requester]

COMPUTERNAME = VISSER

DOMAIN = THUIS

; The following parameters generally do not need to be

; changed by the user.

De computernaam en de naam van het domein zijn tijdens de installatie al aangepast. Controleer of de domeinnaam dezelfde is als onder de andere besturingssystemen. Het kan geen kwaad om onder Samba hoofdletters te gebruiken.

Vervolgens moet u in \ibmlan\ibmlan.ini nog op zoek gaan naar twee instellingen waarin de twee netwerken opgeven worden. Hier verandert u "NET1" in "NET1,NET2" zodat het tweede logische TCPBEUI netwerk ook gebruikt wordt:

wrknets = NET1,NET2

srvnets = NET1,NET2

In het bovenstaande geval worden twee logische adapters gebruikt. NET1 voor IBM TCP/IP en NetBIOS en NET2 voor NetBIOS via TCP/IP.

Alles nog eens op een rijtje:

De relevante instellingen voor IBM TCP/IP met alleen NetBIOS via TCP/IP zijn:

[networks]
net1 = TCPBEUI$,0,LM10,34,100,14
[requester]
wrkservices = MESSENGER,PEER
wrknets = net1
Computername = VISSER
Domain = THUIS
[peer]
SRVSERVICES =
srvnets = NET1

En voor alleen NetBios en TCP/IP.

[networks]
net1 = NETBEUI$,0,LM10,34,100,14
[requester]
wrkservices = MESSENGER,PEER
wrknets = net1
Computername = VISSER
Domain = THUIS
[peer]
SRVSERVICES =
srvnets = NET1

De SRVSERVICES = slaat op de servers van OS/2 Warp Servers. Opties zijn NETLOGON, LSSERVER, NETRUN, GENALERT. Voor het delen van bestanden is hij niet nodig.

Als u TCP/IP goed ingesteld hebt moet u na een reboot de gedeelde mappen op de de Samba server kunnen zien.

I.g.v. samba moet u zich eerst aanmelden op het werkstation onder een gebruikersnaam en wachtwoord die door de Linux PC geaccepteerd wordt. Dat Warp (i.t.t. Linux) mijn naam ("SJOERD") en wachtwoord met hoofdletters schrijft was voor Samba geen probleem.

Op de prompt zal netstat -s (socket) aangeven dat er een verbinding met de samba server op zolder ("foreign host" 192.168.1.20) op poort 139 tot stand gekomen is ("established").

[I:\] netstat -s

AF_INET Adresfamilie :

SOCK TYPE FOREIGN LOCAL FOREIGN STATE PORT PORT HOST

==== ========= ============= ============= ============= =============

19 STREAMnetbios-ssn..139 1024 192.168.1.20 ESTABLISHED

15 DGRAM 0 13991 0.0.0.0 UDP

14 DGRAM 0 0 0.0.0.0 UDP

13 STREAM 0 0 0.0.0.0 CLOSED

11 STREAM 0 0 0.0.0.0 CLOSED

10 DGRAM 0 emfis-data..140 0.0.0.0 UDP

9 STREAM 0 netbios-ssn..139 0.0.0.0 LISTEN

8 DGRAM 0 netbios-ns..137 0.0.0.0 UDP

7 DGRAM 0 netbios-dgm..138 0.0.0.0 UDP

--------------------------------------------------------------------------

AF_OS2 Adresfamilie :

--------------------------------------------------------------------------

AF_NB Address Family :

SOCK TYPE PARTNER NAME LOCAL NAME U/G ADP STATE

==== ======= ================ ================ === === =========

##### > Top <

Alles over ethernet: Charles Spurgeon's Ethernet (IEEE 802.3) Web Site