Fixing WordPress Redirect Hack

Letzte Woche hatte es auch mich und meinem Server erwischt, dass dieser durch eine Sicherheitslücke mit Schadcode in Form eines kleinen Skripts kompromittiert wurde. Durch diesen „WordPress Redirection Hack“ wird im Allgemeinen ein Webbrowser beim Aufrufen (m)einer URL dann dazu genötigt, auf eine fremde URL zu verweisen, wo für den PC des Benutzers die eigentliche Malware zum Download bereitsteht, die den User durch weitere Angriffsformen schädigt. Es gibt da mehrere Möglichkeiten, wo so ein Skript für die Weiterleitungen versteckt werden kann. Bei mir war es die Variante, bei der ein Skript durch eine SQL-Injektion in die WordPress-Datenbank eingeschleust wurde. Konkret wurde die Entwicklung und Pflege des von mir eingesetzten WordPress-Plugins für die DSGVO-konforme Cookie-Information eingestellt. Dadurch blieb wohl mindestens eine Sicherheitslücke im Programmcode des Plugins, mit der die SQL-Injektion durchgeführt werden konnte. Bei meiner Recherche im Internet, den kompromittierenden Code im WordPress aufzuspüren, bin ich direkt auf einen guten Ansatz gestoßen, wie man bei der SQL-Injektion die fremden Schadskripte auch wieder loswird.

  • Am besten eignet sich hierfür der Mozilla Firefox Webbrowser. In einem neuen, leeren Tab trägt man in der Adressleiste view-source:, gefolgt von der zu untersuchenden Website ein. In meinem Fall also view-source:http://sommteck.net. Dabei holt sich der Firefox den Quellcode der Seite, tut ihn aber nicht interpretieren und ausführen, sondern nur darstellen.
Volltextsuche HTML-Sourcecode
Volltextsuche im HTML-Sourcecode
  • Jetzt muss man Ausschau halten und die eingeschleusten Skripte mit den fremden URLs – auf die für die Angreifer weiter geleitet werden soll – finden. Hilfreich ist, vielleicht erstmal eine Volltextsuche über das gesamte HTML-Dokument mit dem Stichwort script durchzuführen. Mit 45 Treffern waren das gar nicht mal so viele Ergebnisse wie ich erwartet hätte. Jetzt gilt es zu prüfen, ob die mit dem HTML-Tag script versehenen URLs plausibel sind. Schon nach rund der Hälfte der Tags hatte ich auch schon eine URL auf die verwiesen wurde, die als Sub-Domain einen „store“ zugewiesen bekommen hat und als Top-Level-Domain .ga besaß. Die Top-Level-Domain .ga steht für das afrikanische Land Gabun. Ich hatte in meinem Fall zwar im Hinterkopf, dass das DSGVO-Plugin gegen Bezahlung erst noch weitere Funktionen angeboten hatte, aber auf der Homepage, beziehungsweise im PHP-Quellcode einer Standard-WordPress-Installation ist eine solche Domain und URL als unseriös zu betrachten. Das vollständige Skript, in das die URL eingepackt ist, sollte man sich in die Zwischenablage kopieren. Aber hier ist noch anzumerken, dass die Kommentierungen vor und nach den HTML-Tags schon verraten haben, wie sie in den Quellcode gelangt sind. In meinem Fall ist es das WordPress-Plugin für das Cookie-Banner gewesen.
  • Im nächsten Schritt wird mit dem in die Zwischenablage gespeichertem Skript eine Volltextsuche über die gesamte Datenbank durchgeführt. Am besten geht das zum Beispiel mit der PhpMyAdmin Web-Oberfläche. Wird hier nun als Ergebnis mindestens ein Treffer aufgezeigt, dann sollte klar sein, dass der Redirection Hack mindestens über eine SQL-Injektion in die Webseite platziert wurde.
Volltextsuche SQL-Datenbank
Aufspüren von fremd eingeschleusten Code
  • Jetzt kann man in den oder die einzelnen Datenbankeinträge gehen und das Script entfernen. Danach konnte vom Webbrowser die HTML-Seite wieder ganz normal interpretiert und dargestellt werden.
Eingeschleustes Skript entfernen
Eingeschleustes Skript aus einem Datenbankeintrag entfernen
  • Zuletzt sollte man das nicht mehr gepflegte und lückenhafte WordPress-Plugin deaktivieren und löschen.

In der Konsequenz hat der WordPress Redirect Hack bei mir dazu geführt, dass ich nochmals kritisch das Thema WordPress-Plugins überdacht habe. Plugins bieten für ein Online Content-Management-System durchaus einen Mehrwert, in dem sie es um neue nicht vorhandene Funktionen erweitern. Plugins sind aber auch zusätzliche Software, die auch zusätzlich Programmierfehler mit sich bringen können. Wenn ein Plugin nicht mehr kompatibel ist und in der Konsequenz auch nicht mehr funktioniert, weil es nicht mehr weiterentwickelt und gepflegt wird, dann ist das vielleicht das geringere Problem. Es ist eben aber auch möglich, dass es noch voller Programmierfehler steckt, die das Plugin zu einem Sicherheitsrisiko für die gesamte Webseite macht. Meine Einstellung zu Plugins war sowieso schon immer: so viele wie nötig, so wenig wie möglich. Auch ist die Empfehlung vielleicht nicht schlecht, dass wenn Plugins nicht benötigt werden, sie nicht nur zu deaktivieren, sondern sie dann auch zu löschen. So habe ich angefangen, meine WordPress-Plugins mal wieder ein wenig zu entrümpeln.
Vor knapp zehn Jahren habe ich so zum Beispiel mir das Podlove-Plugin installiert, weil WordPress keine Audiodateien in die Mediathek mit aufnehmen und auch nicht wiedergeben konnte. Für einen Blog-Artikel habe ich diese Funktionalität aber benötigt. Vor gut fünf Jahren wurde WordPress dann endlich um die Funktion der Audiowiedergabe erweitert. So brauchte ich nun nur den Beitrag etwas anpassen und konnte wieder ein Plugin einsparen und deinstallieren.
Eins anderes Beispiel ist das Duplicator-Plugin für Backups von WordPress-Blogs. Lange Zeit habe ich es für Backups und Migrationen des Web-Servers verwendet. Aber spätestens seit ich die Piwigo-Bildergalerie als Unterverzeichnis im Web-Server habe, ist die Größe des httpdocs-Verzeichnisses so stark gestiegen, dass es nur noch funktionieren wird, wenn ich die Bezahloption des Plugins in Anspruch nehme. Aber mal ganz ehrlich: Schon bevor es Plugins für Backups von Content-Management Systemen gab, mussten ganze Web-Verzeichnisse und Datenbanken auf andere Instanzen hin und her migriert werden.

Links:

Emulation einer PDP-11/70 unter SIMH mit Unix Time-Sharing System Seventh Edition (V7)

Vor knapp einem Jahr habe ich den Beitrag über den Sanos PDP-11 Simulator mit dem Time-Sharing System Seventh Edition verfasst. Bei dem Sanos PDP-11 Simulator handelte es sich nur um eine Live CD-Demo, die man in das CD/DVD-Laufwerk des eigenen PCs – oder als ISO-Datei in eine virtuelle Maschine – einlegt und von ihr startet. Technisch wird dabei wahrscheinlich ein sehr keines Linux-Live System gebootet, welches direkt den SIMH-Emulator mit der nachgebildeten PDP-11 startet. Für den allerersten Eindruck von dem Time-Sharing System V7 ist dieser ganz in Ordnung, aber außer ein paar Verzeichnisse erstellen, Dateien manipulieren oder ein kleines C-Programm schreiben, kompilieren und Ausführen wird da nicht mehr möglich sein. Dieser Emulator ist nämlich auf mehreren Ebenen ziemlich beschränkt. Dies fängt schon bei der emulierten Hardware an.: Der nachgebildeten PDP-11 wird nur verhältnismäßig wenig Speicher gestellt. – 512 KiB. Die späteren Modelle konnten bis zu 4 MiB RAM adressieren. Außerdem ist das Time-Sharing System V7 nur auf einem emulierten DEC RL02 Wechselplattenlaufwerk vorinstalliert, welches eine formatierte Gesamtkapazität von nur 10 Megabyte hat. Aus der recht wenig vorhandenen Festspeicherkapazität resultiert natürlich auch der geringe Umfang an Software und Programmquellen des Time-Sharing Systems. So fehlen bestimmt eine Reihe an Kommandos, sowie der Quellcode des Kernels. Da der Sanos PDP-11 Simulator am PC von einer CD – also einem Read-only-Medium gestartet wird, kann der veränderte Zustand nicht gespeichert werden, beziehungsweise es gibt keine Möglichkeit ein beschreibbares Medium an dem Emulator zu koppeln. Somit gehen alle Änderungen in der ausgeführten Emulation nach dem Neustart des PCs verloren. – Das ist schade!

Nun ist klar, dass mit dem SIMH prinzipiell auch eine individuelle Hardware-Konfiguration der PDP-11 möglich ist. So bin ich neulich beim Durchstöbern des ‚Computer History Wiki!‘ auf eine Installationsanleitung vom Time-Sharing System V7 auf eine DEC PDP-11/70 gestoßen. Diese emulierte PDP-11/70 ist mit 2 MiB RAM konfiguriert und besitzt als Systemfestplatte ein DEC RP06 Disk Drive mit 176 Megabyte Speicherkapazität, deren Plattenstapel im Original auch entfernbar, beziehungsweise wechselbar ist. Hinzu kommt noch ein DEC TU10 Magnetband-Laufwerk. Dies ist nötig, da die Installationsquelle von einem 1/2″ Magnetband kommt. Abgerundet wird dies durch ein DC11 Serial Interface für erst einmal bis zu 4 seriellen Terminals, damit die Installation auch echt Multiuser-fähig wird. Allerdings kann der Kernel das DC11-Interface nicht von Haus aus ansprechen, sondern das System muss nach vollendeter Installation erst neu konfiguriert und ein neuer Kernel erstellt werden.
Bei dem Time-Sharing System V7 kommt das Installations-Magnetband zum Einsatz, welches Keith Bostic von der Unix Heritage Society zur Verfügung gestellt hat. Ein Gimmick dieser Installationsquelle ist der vorhandene Account ‚dmr‘ des inzwischen 2011 verstorbenen Unix-Entwicklers Dennis MacAlistair Ritchie.

Unix Time-Sharing System V7
Research Unix Version 7 from 1979

Was mit dem Ende der Installation als Erstes auffällt, ist, dass es keine Befehle für den Halt des Systems, Shutdown und Reboot gibt. Man ist eher angehalten, das Dateisystem zu pflegen, in dem vor dem Abschalten oder Reset der Hardware der Befehl sync ausgeführt wird, damit die Superblöcke der Dateisysteme auf die Datenträger geschrieben werden. Auch wird stattdessen empfohlen, wenigstens einmal täglich jedes Laufwerk oder auf alle Fälle nach jedem Systemabsturz alle Dateisysteme mit den Kommandos icheck und dcheck auf ihre Konsistenz zu prüfen.
Ein Programm oder einen expliziten Befehl zum Anlegen eines weiteren Benutzers existierte unter dem Time-Sharing System V7 noch überhaupt nicht. Stattdessen heißt es Dateien editieren, Verzeichnisse erstellen, die Verzeichnisse den entsprechenden Eigentümern zuordnen und Zugriffsrechte erteilen. – Oder man schreibt sich am Ende selber ein Programm zum Anlegen der Benutzer als Shellscript. Wie bereits erwähnt, enthält diese Unix-Version den Login-Namen ‚dmr‘, der sein Heimatverzeichnis unterhalb von /usr besitzt. Diese Anordnung der Benutzerverzeichnisse war dann noch sehr lange gängig. Der Ordnung halber habe ich für meinen eingeschränkten Account erst das Verzeichnis /home angelegt, in dessen mein Heimatverzeichnis untergeordnet wird, so wie es inzwischen bei den modernen BSDs und unter Linux üblich ist.
Für das Bearbeiten von Dateien musste man sich Ende der 1970er Jahre immer noch mit dem Zeilen-orientierten Texteditor ed zufriedengeben. Der vi war zu diesem Zeitpunkt zwar schon geboren, fristete aber noch derzeit unter BSD sein Nischendasein, gab es doch schon für die PDP-11 neben den Druckerterminals bereits das eine oder andere Videoterminal mit einem Röhrenbildschirm. Und bedingt durch die Druckerterminals gab es auch sonst noch keinen Komfort auf der Bourne Shell.

Für den normalen Multiuser-Betrieb habe ich den SIMH mit der emulierten PDP-11 in einer GNU Screen-Session gestartet. Danach die Sitzung trennen und sich mit Telnet auf einer der seriellen TTY-Schnittstellen anmelden. Im Gegensatz zum Terminalfenster unter Screen bleiben so die Rollback-Zeilen des Terminals erhalten. – Was nötig ist, denn die Ausgabe der Shell unter Unix V7 findet quasi auf einem emulierten Druckerterminal statt, welches nichts von einer Seitenweisen Darstellung versteht.

Anleitung Installation und Einrichtung im eigenem DokuWiki

Links:

Kansas City Standard

In den 1980er Jahren war es bei den Heim- und Personal-Computern üblich, dass die Programme, Spiele und Daten auf der sogenannten Datasette gespeichert wurden, also eine Kompaktaudiokassette mit dem Magnetband, wie sie in derselben Dekade für die Aufnahme von Musik und anderen Tonaufnahmen wie Hörspiele und Radiomitschnitte verwendet wurden. Wobei es sprachlich aufzupassen gilt, denn die Datasette ist quasi das Tempo-Taschentuch unter den Kompaktkassetten für die Speicherung der Computerdaten, da die Bezeichnung ursprünglich von Commodore ist. Das lag nicht zuletzt daran, da der Begriff vor allem mit dem Commodore C64 eine starke Verbreitung in Deutschland und Mitteleuropa bei den Heim- und Personal-Computer fand, wurde der Begriff Datasette also zum Synonym für die Speicherung von Computer-Daten auf der Kompaktaudiokassette. Andere Hersteller wie unter anderem Atari, Apple, Sinclair, Robotron oder Amstrad/Schneider besaßen ebenfalls die Möglichkeit, die Computerdaten auf Kompaktaudiokassette zu speichern und von ihr wieder zu lesen. Selbst der berühmte IBM 5150 PC besaß eine Schnittstelle zum Anschluss eines Datenrekorders. Die Hersteller boten über den Handel bereits auch Programme und Spiele auf der „Datasette“ zum Verkauf an. Je nach Größe des Programms war die Spielzeit dieser um die 15 bis 20 Minuten lang. Es war aber auch möglich, sich über den damalig gewöhnlichen HiFi-Handel sich leere Kassetten mit üblicherweise 60 oder 90 Minuten Spielzeit zu kaufen, um so auch mehrere Programme auf die Kassette zu speichern.
Bezüglich der Heimcomputer von Robotron in der DDR hatte ich bereits einen Artikel geschrieben gehabt, wie wir es mit den Laden der Spiele in den Robotron KC 85/4 gehandhabt hatten.

Kansas City Standard
Kansas City Standard mit Optionen

In dem YouTube-Video ‚Loading PC Games from Reel to Reel Tape‘ des Kanals LGR vom US-Amerikaner Clint Basinger stellt dieser den ‚Kansas City Standard‘ vor, der ein offener Standard durch den Zusammenschluss von einigen Herstellern der Heim- und Personal-Computer wie Acorn Computers Ltd, Triumph-Adler, MITS für ihren Altair 8800, dem Taschenrechner-Hersteller Casio und anderen war und im amerikanischen Byte Magazin im Jahr 1975 beschlossen und vorgestellt hatten. Mit einem nach diesem Standard funktionierenden Kassetteninterface war es möglich, im wesentlichen wie das an einer seriellen Schnittstelle angeschlossenem Modem die Bits in Töne umzuwandeln, um sie eben auf ein Tonband oder Kompaktaudiokassette speichern und wieder von ihr einlesen zu können. Gespeichert wurden die Bits mit einer Modulation von 300 Bit je Sekunde. Entsprechende Kassetteninterface-Geräte waren dann ab der zweiten Hälfte der 1970er Jahre ab zirka 80 US-$ im Handel erhältlich, was wesentlich preiswerter war als ein 8″ oder später 5,25″ Diskettenlaufwerk. Zu dieser Zeit kostete in Deutschland zum Beispiel ein Diskettenlaufwerk 3.000,- DM. Davon abweichend implementierte Sega für ihre Spielekonsole SG-1000 eine Variante mit 600 Bit je Sekunde, sowie Acorn für ihren BBC Micro und Acorn Electron eine mit bis zu 1200 Bit je Sekunde.
Clint stellt dabei das im Jahr 2006 unter der Public Domain Mark 1.0 stehende DOS-Programm KCS08 vor, welches Dateien in Wave-Audiodateien encodiert und wieder zurück decodiert. Dabei bietet es einige Optionen wie zum Beispiel die Art der Modulation – 300, 600 oder 1200 Bit je Sekunde, Parität, die Kodierung und einige weitere an.

Kansas City Standard
Kansas City Standard in Benutzung

Und Clint wäre nicht Clint von LGR, wenn er das Spielchen nicht bis aufs i-Tüpfelchen treibt und sich extra ein altes und hochwertiges Tonbandgerät zulegt, um auf einigen Tonbändern ein altes DOS-Spiel und einige andere Dateien zur Demonstration zu encodieren und speichern, um es wieder dann als Audio-Stream einzuspielen und vom KCS08-Programm zurück zu dekodieren.

Bei meiner Internet-Recherche bin ich noch auf das Python-Script py-kcs von dem US-amerikanischen Software-Autor David Beazley gestoßen, welches Dateien mit einer Modulation von 300 Bit je Sekunde nach 8N1 encodieren und wieder decodieren kann. – Wenn man auf seinem macOS, Linux oder anderem *Unix keinen DOS-Emulator direkt zur Hand hat.

Zum Schluss habe ich nun also auch diesen Artikel in seiner Klarschrift in eine Wave-Datei mit 1200 Baud zum Nachhören umgewandelt.

Audio Sample Datei ‚Kansas City standard‘

Links:

Commandlinefu

Als ich im vergangenen Herbst nach einer Lösung im Internet recherchiert habe, um eine Audio-Datei (wav, mp3, etc.) aus der Tonspur einer DVD zu erzeugen, bin ich in meinen Suchergebnissen über Beispiele für Kommandozeilen-Befehle auf der Website www.commandlinefu.com aufmerksam geworden. Bei Commandlinefu kann jeder nach der Registrierung einen kleinen Beitrag einstellen für einen Kommandozeilen-Befehl den er oder sie als erwähnenswert erachtet. Dabei wurden – und werden Befehle präsentiert, die entweder etwas Praktisches, etwas Nützliches, etwas Interessantes oder einfach nur etwas Witziges ausführen.
So gab es bis vor etwa zehn Jahren alternative Beispiele, wie sich ein öffentlicher SSH-Schlüssel auf einem Ziel-Host in die Datei ~/.ssh/authorized_keys einfügen lässt. Hintergrund war, dass Apple zwar die vollständige SSH-Suite seit Beginn von Mac OS X als festes Bestandteil integriert hat, aber über etliche Versionen hat das Programm ssh-copy-id gefehlt. So wurden alternative Wege erarbeitet, die mit Hilfe der Standard-Unix-Tools den Schlüssel über ein einziges Shell-Kommando auf den Ziel-Host brachten.xx
Ich habe mal angefangen, ein wenig in der mittlerweile über fast 12 Jahre alten Sammlung zu stöbern und eine wirklich kleine Auswahl in meinem Wiki gesammelt. Aber es steckt noch viel Potenzial in der Sammlung weitere Befehls-Schätze zu entdecken. Es braucht nur etwas Internet und vielleicht einen halben oder ganzen Tag, an dem sich nichts sinnvolleres mit der vorhandenen Freizeit anstellen lässt.
Es gibt im übrigen auch einen Twitter-Account zu Commandlinefu, der einem über einen neuen Beitrag informiert.

Links:

Emulation einer VAX mit SIMH: OpenVMS

In der dritten und letzten Runde habe ich schließlich auf meiner emulierten MicroVAX das ursprünglich von der Digital Equipment Corporation entwickelte OpenVMS installiert. OpenVMS – bis 1991 nur VMS – steht für Virtual Memory System und war zur Zeit seiner Erstveröffentlichung 1977 ein ausgesprochen fortschrittliches 32-Bit-Betriebssystem, das Mehrbenutzer- und Multitasking-fähig war. Es war zudem eines der ersten Betriebssysteme mit virtueller Speicherverwaltung, welches auch die Namensgebung begründet. Das Betriebssystem wurde gleichzeitig mit der VAX-Computerreihe veröffentlicht und für diese entwickelt. Für die Entwicklung von VMS war unter anderem David Neil Cutler verantwortlich, der 1988 von Microsoft bei DEC abgeworben wurde, um das seinerzeit neue Betriebssystem Windows NT zu entwerfen und die Entwicklung zu leiten. Das hatte zur Folge, dass es deutliche Ähnlichkeiten von VMS und Windows NT gibt.
Die Firma DEC wurde im Jahr 1998 von Compaq übernommen und damit auch die Weiterentwicklung von OpenVMS. Da Compaq selber wiederum im Jahr 2002 von Hewlett Packard übernommen wurde, gingen Weiterentwicklung und Vertrieb von OpenVMS auch an HP. Im Jahr 2014 hat HP Weiterentwicklung und Vetrieb mit OpenVMS 8.4 beendet. Dies übernimmt seitdem die eigens dafür gegründete VMS SOFTWARE INC (kurz: VSI) in Lizenz.

Seit der Veröffentlichung von VMS mit der Version 1.0 im Jahr 1977 bis zum jetzigen Zeitpunkt, hat das Betriebssystem insgesamt 4 Hardware-Plattformen unterstützt.: bis zur Version 7.3 im Jahr 2001 war dies die VAX-Architektur. Ab 1992 kam auch die von DEC entwickelte „Alpha AXP“ RISC Prozessor-Architektur hinzu, die von Anfang an auch eine 64-Bit-Architektur war. Die letzte für Alpha-Prozessoren erschienene OpenVMS-Version wurde von VSI im Jahr 2017 mit der Versionsnummer V8.4-2L2 veröffentlicht.
Durch die Übernahme von Compaq durch HP im Jahr 2001, wurde OpenVMS für die 64-Bit Itanium Architektur portiert. Die Itanium-Architektur (kurz: IA-64) wurde von HP und Intel gemeinsam entwickelt. Die Unterstützung der Itanium-Architektur soll mit dem letzten Update für OpenVMS 8.4 eingestellt werden.
Schon seit einiger Zeit wird durch HP und der VMS SOFTWARE INC an einer Portierung von OpenVMS auf die x86-64 Architektur hingearbeitet. Mit der künftig erscheinenden OpenVMS Verson 9.0 soll nur noch die 64-Bit CISC-Architektur unterstützt werden.

So viel zur Versionsgeschichte von OpenVMS. Der Betreiber der Webseite VaxHeaven (http://www.vaxhaven.com/VaxHaven) hat einige Images von CD-ROMs, Magnetbändern und Lochstreifen zusammen getragen und bietet sie wieder zum Download an. Dabei handelt es sich um Images von den OpenVMS-Installations-Medien, den Dokumentations- und Software-Produktbibliotheken.

OpenVMS 7.3 First Login
OpenVMS 7.3 First Login

Als OpenVMS Installations-Image hatte sich für mich nur die Version 7.1 für meine emulierte (Micro-) VAX angeboten. Nach der Installation hat sich aber herausgestellt, dass auf der Installations-CD von OpenVMS 7.1 nicht der TCP/IP Protokoll-Stapel von DEC mitgeliefert wurde. Version 7.1 wurde im Jahr 1996 noch von DEC veröffentlicht. Nach etwas Recherche im Internet bin ich dann doch noch auf die OpenVMS Version 7.3 fündig geworden. Dies war die letzte Version für die VAX-Architektur und wurde 2001 von Compaq veröffentlicht. Diese enthielt dann auch den TCP/IP Protokoll-Stapel.

Die Installation von (Open-) VMS läuft im Prinzip genauso ab wie diese von DECs ULTRIX. Es wird als erstes von dem Installations-Image – bei der realen Hardware also die Installations-CD oder das Magnetband – gebootet, die Ziel-Festplatte ausgewählt auf der im Anschluss alle „Sicherungssets zum Wiederherstellen“ des Systems für die Installation kopiert werden – im meinem Fall die erste mit der Bezeichnung DUA0 – und dann das System neu gestartet um von der Festplatte DUA0 die Installation und Einrichtung zu starten. Was zum Glück bei der Installation von OpenVMS im Gegensatz zu ULTRIX unter dem SIMH-Emulator wegfällt, ist der Umstand, dass man die Laufwerksbezeichnungen in einem Installations-Skript anpassen muss. OpenVMS sieht die Hardwarekennung RQ vom Emulator und kann mit diesen direkt arbeiten.
Im Verlauf des Installationsprozesses wird nach der lokalen Zeit gefragt. Es wird nochmals nach dem Quellinstallationsmedium (CD-Image) gefragt und sichergegangen, dass dieses auch gemountet wurde. Es wird auch gefragt, welche Softwarekomponenten installiert werden sollen – einschließlich DECwindows mit Motif wie bei ULTRIX. Ich habe zur Sicherheit alles mit ‚yes‘ bestätigt. Auch wird DECnet-Plus für die Netzwerkkonfiguration mit TCP/IP benötigt.
Man darf sich aber nicht wundern, die Angaben des benötigten und des zu verbleibenden Speicherplatz auf der Festplatte wird in Blöcken angegeben anstatt in Kilo-, Mega- oder Gigabyte. Da ein Block immer mit einer Größe von 512 Byte bemessen wird, lässt sich die Angabe in Byte recht schnell erahnen, beziehungsweise berechnen.
Wo es wieder einen signifikanteren Unterschied zu ULTRIX, sowie der restlichen Unix- und Linux-Welt gibt, ist die Anzahl der User-Accounts die bereits während der Installation eingerichtet werden. Zum einen gibt es den ‚SYSTEM‘-Account, der vergleichbar mit dem Root-Account bei Unix und Linux ist. Der Account SYSTEST bietet eine geeignete Umgebung zum Ausführen von UETP, einem Testpaket für Benutzerumgebungen auf eigenständigen Systemen. Darüber hinaus wird der Account FIELD angelegt, der dazu dient, ein System testen zu können.
Der Installer verlangt dann den ‚SCSNODE name‘ – also einen Hostnamen, sowie eine ‚SCSSYSTEMID‘, eine ID zur Identifikation des Rechners innerhalb eines VAX-Clusters.
Anschließend erwartet der Installer die Lizenzschlüssel, aber man kann dies auch erstmal verneinen und die Lizenzaktivierung hinterher nach der Installation durchführen. Letztendlich wird noch nach der Zeitzone gefragt und ob zurzeit die Sommerzeit vorherrscht oder nicht. Letztendlich wird noch DECnet-Plus installiert und es muss sichergestellt sein, dass das Installationsmedium gemountet ist, um die Komponenten installieren zu können. Abschließend erzeugt der Installer ein neues System-Image und fährt VMS herunter.
Nach dem ersten und jeden weiteren Bootvorgang meldet sich OpenVMS und wartet auf den Login. Der Prompt ist dabei nicht sofort zu sehen, dass heißt, vor dem Login muss immer einmal Return gedrückt werden. Ansonsten gibt OpenVMS auf der Systemkonsole immer die Auditmeldungen aus.
Insgesamt betrachtet ist die Installation von OpenVMS sehr einfach, wenn man mal beachtet, dass es sich dabei eigentlich um ein Enterprise-System handelt. Die Installation verlangt im Gegensatz zu DECs Ultrix nur sehr wenige technische Details, was sehr angenehm ist.

OpenVMS 7.3 TCP/IP Configuration
OpenVMS 7.3 TCP/IP Configuration ohne gültiger Lizenz

Danach geht es daran, das System netzwerkfähig zu bekommen. Allerdings ist es zu diesem Zeitpunkt nur möglich unter OpenVMS DECnet einzurichten. Der TCP/IP Protokoll-Stapel muss von der Installations-CD nachträglich installiert werden. Da meine eingesetzte OpenVMS Version 7.3 aus dem Jahr 2001 stammt, sind sämtliche Komponenten zum Glück mit einem heimischen IPv4-Netz kompatibel, während hingegen bei dem ULTRIX Final-Release 4.5 eine aus heutiger Sicht mit veralteten Funktionen ausgestattete Bind-Version enthalten ist und so keine Namensauflösung mehr möglich ist.
Leider ist es mir aber prinzipiell nicht mehr möglich, IPv4 unter meinem emulierten OpenVMS zu konfigurieren. Grund ist, dass für die Nutzung der Netzwerkfunktionalitäten OpenVMS mit einer gültigen Lizenz versehen werden muss. Für die Nutzung einer OpenVMS-Installation ohne kommerzielle Absichten hatte HP das OpenVMS-Hobbyist-Programm mal ins Leben gerufen gehabt. So konnte man sich nach Registrierung eine Hobbyisten-Lizenz mit einer Laufzeit von einem Jahr ausstellen lassen. Seit Mai letzten Jahres hat HP aber keine neuen Hobbyisten-Lizenzen mehr ausgestellt. Grund ist, dass man mit der Einstellung von OpenVMS 8.4 und der Veröffentlichung von Version 9.0 als ersten x86-64 Port ein neues ‚Community License Program‘ ab diesem Jahr auf die Beine stellen möchte. Die letzten von HP noch ausgestellten Hobbyisten-Lizenzen werden am 15. März dieses Jahres auslaufen. Möchte man also noch die Möglichkeit haben und in den Genuss von OpenVMS mit voller TCP/IP Netzwerkfunktionalität zu genießen, so gibt es noch im Rahmen des ‚Student Hobbyist License Programs‘ das Angebot, das FreeAXP Kit herunterzuladen. Dabei handelt es sich um die Emulation eines virtuellen Alpha-Server mit OpenVMS 8.4, welche auf einem 64-Bit Windows ausgeführt werden kann. Allerdings wird auch zum 15. März diese Lizenz ablaufen. Auch gibt es bei dem Kit keine Möglichkeit DECwindows mit Motif auszuführen. Ich bin ja mal gespannt, ob die VMS SOFTWARE INC wieder ein attraktives Lizenzierungsmodell für Leute wie mich auf die Beine stellt, die das Betriebssystem einfach nur mal ausprobieren, kennen lernen und damit ein wenig herumspielen möchten. Mich hätte es nämlich auch dringend interessiert, ob OpenVMS mit DECwindows und Motif auch so langsam auf meinem Linux-Host ist wie ULTRIX mit DECwindows und Motif, oder ob es vielleicht flüssiger läuft. – Im Internet gibt es nämlich Besitzer von originalen VAX-Computern, die berichten, das ULTRIX – wenn es überhaupt auf ihren Geräten zu installieren ist – nur sehr langsam ist im Vergleich zu (Open-) VMS.

VSI OpenVMS Student-Package
VSI OpenVMS 8.4-22 Student-Package

Auch wenn ich OpenVMS unter meiner emulierten MicroVAX leider doch nicht auf Grund der fehlenden Lizenzierunsgmöglichkeit in mein heimisches Netz integrieren kann, bin ich schon echt froh, dass ich es überhaupt zum Laufen bekommen habe.

Als Kommandozeileninterpreter und Skriptsprache steht unter OpenVMS die DIGITAL Command Language (DCL) zur Verfügung. Die Kommandos und deren Syntax unterscheiden sich deutlich denen von DOS und Linux/Unix. Bisweilen sind die Befehle sehr umständlich, wie zum Beispiel die Angabe um auf die oberste Verzeichnisebene eines Laufwerkes zu gelangen. Da steckt also viel Potenzial, das System kennenzulernen und zu erforschen. Der Hauptantrieb, weshalb ich mir OpenVMS überhaupt mal anschauen wollte, ist die Eigenschaft, dass bei der DCL alle Dateien und Verzeichnisse zwei Dateierweiterungen.
besitzen.:
Die Dateinamen und Verzeichneichnisse bestehen aus Namen, Datei-Typ und Versionsnummer (z. B. NAME.TYP;1), NAME und TYP sind jeweils Ketten von bis zu 39 alphanumerischen Zeichen. Geänderte Dateien werden als eine neue Version gespeichert, die sich in einer inkrementierenden Versionsnummer nach einem Semikolon im Dateinamen unterscheidet (NAME.TYP;1 → NAME.TYP;2). Dies wurde später auch von ISO 9660 übernommen. Die ältere Version wird vom System nicht gelöscht, dies kann der Benutzer mit den DELETE- oder PURGE-Befehlen bedarfsweise tun. Die maximal mögliche Versionsnummer ist 32767. Ist diese erreicht, kann keine neue Version der Datei mehr angelegt werden. Ein Aufräumen und Umbenennen ist selbstverständlich möglich.

Links: