Retro-Internet (sort of…)

Windows NT 4.0 Server stand als nächstes auf meiner Liste. So schwierig kann es eigentlich gar nicht sein - HTTP hat sich in der Zwischenzeit nicht wirklich verändert, von ein paar modernen Erweiterungen mal abgesehen. Also müsste mit alten HTTP-Server doch was anzustellen sein. Selbiges mit FTP. Oder?
Nun…

Installation

Vorneweg: Ohne Diskette oder Treiber-CD geht wenig. Schon währen des Installationsvorgangs kam die Frage nach Treibern für die Netzwerkkarte auf. Ein Hoch auf Disketten! \o/
Der erste Installationsversuch scheiterte natürlich. 80GB Partitionsgröße mag NT 4.0 (ohne irgendein Service Pack) überhaupt nicht. Partitionen unter ~4GB funktionieren, später sieht man dann auch warum:
NT4.0 installiert zunächst auf FAT (kein FAT32!) und konvertiert die Partition dann später zu NTFS. Kann man machen… Erst nach Update auf Service Pack 6 wurden die kompletten 80 GB erkannt. Vorher hätte man sich mir maximal 8GB begnügen müssen.
Die nächste Hürde war die Übertragung von den Dateien auf den Server, um verschiedene Dinge zu testen oder um Treiber zu kopieren. Eigentlich hatte ich angenommen, dass NT 4.0 ohne Probleme mit meinem NAS, einer Synology Diskstation 107+ (von 2007) auf SMB-Laufwerke zugreifen könne. Dies funktioniert nicht wirklich, da NT 4.0 kein SMB unterstützt. Es ist ledigĺich der Vorgänger, CIFS, verfügbar. Also habe ich Dateien per FTP kopiert, was recht gut funktionierte, zumindest im lokalen Netzwerk.
Der nächste Spaß kam mit Treibern. Einen Gerätemanager gibt es nicht, so kann man kaum sehen welche Geräte das System kennt und welche nicht. Da es sich aber um ein Serversystem handelt, war mit dies ziemlich egal. Netzwerk lief und darauf kam es erstmal an. Grafik wäre nice-to-have, allerdings wollte der Grafiktreiber (extra für NT) von NVidia die Grafikkarte nicht erkennen. Woran es lag kann ich nicht sagen, unter Windows 98 läuft sie ohne Probleme unter der gleichen Hardware. USB und Bequemlichkeiten wie Plug&Play sind ebenfalls nicht vorhanden.

Serverdienste: FTP

Der HTTP-Server und FTP-Server an sich laufen zwar, aber auch mehr schlecht als recht. FTP über das lokale Netzwerk ist kein Problem - will man FTP-Zugriff über das Internet zulassen wird es interessant, besonders wenn ein NAT auf dem Weg liegt. Der aktive FTP-Modus ist für das Internet nicht zu gebrauchen, da der Server sich zum Client verbinden muss - bei einem NAT auf Clientseite hat man da in der Regel verloren. Deswegen muss die Übertragung passiv erfolgen, was NT 4.0 in der Regel unterstützt (Post 1024-5000). Allerdings muss für passives FTP die öffentliche IP an den Client übertragen. Dies passiert unter NT4.0 aber nicht. Das Resultat ist, dass der Client die lokale IP des FTP-Servers + einen Port bekommt, zu welchem er sich aber nicht verbinden kann, weil es eine lokale Netzwerkadresse ist. Oh Boi…

Serverdienste: HTTP

Der HTTP-Server: Nunja, eigentlich sollte man denken, dass das ohne Probleme klappt. Allerdings hat man hier die Rechnung nicht ohne moderne Browser gemacht. CSS und Java-Script benötigen einen eigenen MIME-Type, damit der Browser erkennt, was es ist und entsprechend behandelt. Stimmt der MIME-Typ nicht, wird die Datei aus sicherheitstechnischen Gründen verworfen. Natürlich kennt der HTTP-Server von Windows NT 4.0 MIME-Typen für CSS und Java-Script nicht und sendet ein generisches application/octet-stream. Der Browser sagt “Nö, ist mir zu unsicher, lade ich nicht” und bums, klappen selbst simple, moderne Seiten mit CSS und Java-Script nicht mehr. Aber das kann man zum Glück mit der Registry anpassen, dann geht auch das wieder:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters
MimeMap To add an entry, open the MimeMap key and choose Edit Value or Add Value.

The mime information needs to be placed in the Value Name box. The data type for the entry should be set to REG_SZ, the string field should be left blank. The following is an example of a mime entry:

image/gif,gif,,5:REG_SZ:
<mime/type>,<extension>,<unused>,<gopher item type>

The unused field is represented by an extra comma between ‘gif’ and ‘5’. The extra comma must be included for the mime type to work correctly.

NOTE: Only the gopher server uses the Gopher item type. The gopher item types are listed below. In the above example, the gopher item type ‘5’ describes the file type as an MS-DOS binary archive.

Gopher Item Types

The following list shows all possible Gopher item type codes and what they mean. The first character is the type code.

0 A file, usually a flat text file
1 A Gopher directory
2 A CSO phone-book server
3 An error
4 A BinHex’ed Macintosh(r) file
5 An MS-DOS binary archive
6 A UNIX Uuencoded file
7 An index-search server
8 A Telnet session
9 A binary file
c A calendar or calendar of events
g A graphic interchange file (GIF) graphic
h An HTML World Wide Web hypertext page
i An in-line text that is not an item
I Another kind of image file
m A BSD format mbox file
P A PDF document
T A TN3270 mainframe session
: A bitmap Image (use Gopher Plus information for type of image)

https://jeffpar.github.io/kbarchive/kb/142/Q142558/

Dann hat der Server ein Problem mit großen Dateien. Mit NTFS ist das Limit der Dateigrößenbegrenzung von 4GB nicht mehr anwendbar (vgl FAT32). Also habe ich mal versucht 4,7GB auf den Server zu laden und es dann über HTTP wieder runterzuladen. Der Server ging anschließend mit Error 501 in die Knie. Was auch immer da passiert - ich habe es nicht herausgefunden.
Jetzt überlege ich was ich mit dem NT 4.0 Server anstellen soll - so wirklich nutzbar ist es in dem Zustand nicht wirklich.

Achso - wenn man versucht ein englisches NT 4.0 über die Regionaleinstellungen deutsche Einheiten (DM, 24h-Uhr etc) beizubringen macht man sehr viel kaputt, z.B. die Systemsteuerung - Finger weg ;)