Why I love Windows NT 4.0!

Years ago I managed to score a bunch of copies of NT 4.0 server for $20 each (5 cals too!) and I have to say that the #1 thing I love about NT 4.0 is that it can run on small machines. In virtual machine space, this means small disks, little ram, and they don’t need that much in the way of CPU power.

And if you keep your eyes out, you can even score the best one of all, NT 4.0 Terminal server. Keep in mind that later versions of the terminal server client (the ones in XP sp2 & higher/vista/windows 7/2003 server/2008 server) will NOT connect to a NT 4.0 terminal server, but you can just grab the mstsc.exe/mstsc.dll from the NT 4.0 Terminal Server CD, or from a pre sp2 XP CD.

Anyways among the things you can setup and run on NT 4.0 right now I’m going to mention something mundane, but fun & and that’s a PPTP server. Since I’ve accidentally screwed up my Proxmox install, I installed Windows 2003 R2 x64, and the downside is that bridged OpenVPN in a VM doesn’t work. Virtual Server seems to be saving me from myself here… So I thought I’d try something a little more ‘normal’ in that space.

When it comes time to build the PPTP server, you just simply have to add the PPTP networking service into the NT 4.0 networking build. It’s easier to do this at install time so all the files will be in sync. If you try to do this to an existing NT 4.0 machine that has any service packs installed, YOU MUST RE-INSTALL THE SERVICE PACK BEFORE YOU REBOOT… Otherwise it’ll BSOD because the network drivers changed radically from sp1 to sp4+

I have an OpenBSD 4.5 firewall in a VM that has OpenVPN connections to various work sites, and connects those tunnels to ipip tunnels on my Cisco router. I then want to PPTP from my wifi into my ‘work’ network and have it automatically work. While digging around there is a minor thing to keep in mind when forwarding PPTP packets from an OpenBSD firewall to a Windows NT 4.0 PPTP server… Make sure you forward the GRE packets as well!

This is what I added to my /etc/pf.conf

rdr on $ext_if proto tcp from any to any port 1723 -> 192.168.7.10
rdr on $ext_if proto gre from any to any -> 192.168.7.10

As you can guess, 192.168.7.10 is the address of my PPTP server.

Remember to check the log if you have any issues connecting, I wasted 20 min playing with the authentication protocols before I checked the security log to realize that my user on NT 4.0 didn’t have rights to RAS into the server…

Windows NT 4.0 also makes a great host for any version of SQL Server 7.0 & prior, and it runs Exchange server 5.5 exceedingly well. I like to install my old copy of Office 97 on the terminal server, and setup my own NT 4.0 domain with NT 4.0’s IIS, SQL, Exchange & fileserver. And the overhead on any ‘modern’ computer is negligible. 32mb of ram and a 1 gig disk are more then enough for a basic NT 4.0 server.

One other note, is that I found that Terminal Server would not install on 2003 r2 x64 / Virtual Server 2005 sp1. However I could install it on Virtual PC 2007 sp1 and then just copy the vhd over to the server and it worked fine. That is another plus of the VirtualPC / Virtual Server strategy is that they share each others disk formats without any issues.. Unlike some other products that won’t take an IDE image and let you connect it to a SCSI controller… Grrr.

Anyways I hope this will help someone setup a PPTP server, or at least the missing bits to front one with OpenBSD.