Connecting OS/2 Warp 3 Connect and Warp Server for e-Business to a modern Samba

Most of what you’ll find about connecting OS/2 to Samba is either from the Samba 2.x days, so its settings don’t match a modern smb.conf, or it’s about ArcaOS, whose newer Samba-based client sidesteps the problem entirely. I wanted the original IBM clients, OS/2 Warp 3 Connect and Warp Server for e-Business (WSeB), to map drives from a current Samba (4.23 on FreeBSD). It works. You need a handful of smb.conf settings and one rule about passwords that almost nobody mentions.

The short version

  1. Re-enable SMB1 and the old authentication methods in smb.conf (below).
  2. Use a password of 14 characters or fewer for the account the OS/2 machines log on with, and set it after enabling lanman auth.
  3. On the OS/2 side, LOGON first, then NET USE.

The Samba side

These are the relevant lines from my [global] section:

[global]
   server min protocol = LANMAN1
   lanman auth = yes
   ntlm auth = yes
   server smb encrypt = disabled
   lm announce = yes
  • server min protocol: Samba’s default is SMB2_02, and these clients only speak SMB1. Both Warp 3 Connect and WSeB actually negotiated NT1 (Samba’s smbstatus shows the protocol each session uses), so NT1 would probably do for them. I use LANMAN1 to cover anything older.
  • lanman auth: lets Samba check the old LAN Manager password hash. The smb.conf man page says it’s deprecated since Samba 4.11 and will be removed in a future release, but in 4.23 it still works.
  • ntlm auth = yes: yes is an alias for ntlmv1-permitted. The man page says this is “the required setting to enable the lanman auth parameter”, so lanman auth = yes alone isn’t enough.
  • server smb encrypt: don’t set it to required, or clients that can’t encrypt get “access denied”. I have it disabled. ArcaOS’s client also needed that on my network.
  • lm announce: per the man page, these are the “Lanman announce broadcasts that are needed by OS/2 clients in order for them to see the Samba server in their browse list”. It only affects browsing (NET VIEW with no server name), not connecting.

I didn’t test removing these one at a time, so a couple may be stricter than necessary. Together, they work. You don’t need a username map for case: OS/2 sends the username in uppercase, and Samba matched it to the lowercase account without one.

The password: 14 characters or fewer

This is the part that cost me days. With my normal password, every attempt from OS/2 failed with NET2758, and Samba logged a wrong password even though I was typing the right one. With a short password, the same machines connected immediately.

The old LAN Manager password hash is limited to 14 characters (and is case-insensitive), so a longer password doesn’t survive the trip through it intact. I didn’t pin down exactly where mine got mangled, on the OS/2 side or in Samba, but the result is a password that never matches. Modern clients use NTLMv2 instead, which has no such limit, so a long password works fine from Windows and only fails from the old machines. Keep the password that the OS/2 machines use to 14 characters or fewer. Mine works at that length.

One more trap, also from the man page: while lanman auth = no, Samba blanks the stored LAN Manager hash at the next password change, and lanman clients “won’t be able to authenticate, even if lanman auth is re-enabled later on”. So turn lanman auth on first, then set the password (smbpasswd youruser).

Because this password goes over the wire protected only by that weak old hash, treat it as a LAN-only password. I accepted that for my home network.

The OS/2 side

You need the IBM LAN client and NetBIOS over TCP/IP (also called TCPBEUI), configured in MPTS’s LAN adapter and protocol settings.

  • Warp 3 Connect: the install offers IBM Peer or IBM LAN Requester. Pick IBM Peer. LAN Requester is meant for logging in to an IBM LAN Server domain, while Peer is the workgroup client that fits a standalone Samba server. If the Peer install fails with “Unknown error (205) generated response files”, copy the install files from the CD to the hard disk and run the install from there. That fixed it for me.
  • WSeB: the requester comes with the server. In my PROTOCOL.INI, NetBIOS over TCP/IP runs as a B-Node with no names file, so it finds the server by broadcast.
  • Name resolution: if broadcasts don’t find your server (for example, it’s on another subnet), the NetBIOS over TCP/IP settings page has a table of NetBIOS names and IP addresses, which it saves to RFCNAMES.LST. Put your Samba server’s name and IP there. Note that OS/2 doesn’t read a Windows-style LMHOSTS file.

Then log on and map the drive. The same commands work on Warp 3 Connect and WSeB:

LOGON YOURUSER /P:yourpassword /V:NONE
NET USE X: \\SERVER\SHARE

The NET USE on my machines has no /USER option, so the logon is what supplies the credentials. To check the logon by itself before you involve a share, run NET VIEW \\SERVER. If it lists the server’s shares, authentication works.

What the errors mean

  • NET2758: the logon was refused. Check the password length first, then the smb.conf settings above.
  • NET3502 with SYS0053 (“The network path was not found”): OS/2 couldn’t find the server by name. That’s a name resolution problem, not authentication.

If you’re setting up WSeB from scratch, my notes on installing it on a VIA 686B board may also help.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.