- Mit dem [Open OSCAR Server] lässt sich auf einem Debian-Server ein AIM/ICQ-Server aufsetzen, sodass sich verschiedene Clients aus älteren Umgebungen wie Windows 98 wieder verbinden können
- Für einen kleinen Betrieb reicht selbst ein schwacher VPS aus, aber für die Nutzung mit externen Freund:innen braucht man den Standardport 5190, eine feste IP oder Dynamic DNS sowie Firewall-Regeln, die für eine öffentliche Internetverbindung geeignet sind
- In
settings.env werden OSCAR_LISTENERS und OSCAR_ADVERTISED_LISTENERS_PLAIN passend zum LAN- oder WAN-Modus gesetzt, damit AIM-Clients statt der abgeschalteten AOL-Server den eigenen Server nutzen
- Standardmäßig ist eine Anmeldung mit beliebigem Screen Name und Passwort möglich; mit
DISABLE_AUTH=false aktiviert man die Passwortauthentifizierung und verwaltet Konten über die API
- Da der Serverzustand in einer SQLite-Datenbank und in Konfigurationsdateien gespeichert wird, kann man mit nächtlichen Vollbackups oder
rsync-Kopien nach dem Stoppen des Servers eine wiederherstellbare AIM-Umgebung erhalten
Warum ich wieder AIM statt Discord betreibe
- Bevor Mobiltelefone und SMS allgegenwärtig waren, lief vieles vom Schulprojekt bis zu zwischenmenschlichen Beziehungen im AIM-Fenster ab, und diese Erfahrungen haben zu einer gewissen Nostalgie für AIM geführt
- Da die jüngsten Erfahrungen mit Discord nicht gut waren, wurde der Open OSCAR Server ausprobiert, und es war möglich, mehrere ältere Clients mit einem selbst gehosteten AIM/ICQ-Server zu verbinden
- Der Einrichtungsprozess wird auch in einem YouTube-Video und einem PeerTube-Video behandelt; ein separates Video von Macintosh Librarian stellt AIM selbst ausführlicher vor
Debian-Trixie-Server vorbereiten
- Als Zielsystem wird Debian Trixie verwendet; die Installation des Betriebssystems selbst wird hier nicht behandelt
- Solange nicht geplant ist, mit Hunderten Menschen gleichzeitig zu chatten, lässt sich das auch auf einem Low-End-VPS betreiben
- Anfangs lief es zu Hause, wurde dann aber auf einen VPS im kleinsten Tarif umgezogen, als es mit Freund:innen geteilt wurde
- Wahrscheinlich läuft es auch auf einem Raspberry Pi, getestet wurde das jedoch nicht direkt
- Wenn du zu Hause oder hinter einer Firewall hostest, musst du den Standardport 5190 öffnen, über den sich AIM-Clients verbinden
- Bei manchen Clients lässt sich der Port nicht leicht ändern, daher ist es besser, beim Standardport zu bleiben
- In einer Heimnetz-Umgebung ohne feste IP wird Dynamic DNS benötigt
- Verwendet wurde No-IP, mit guten Ergebnissen
- Wenn du mit Dynamic DNS nicht vertraut bist, kannst du für 5–10 Dollar pro Monat einen Cloud-Server mit fester IP und einfacherer Konfiguration nutzen
- Unabhängig von der gewählten Methode muss der Server über eine feste IP oder Domain erreichbar sein, und Port 5190 muss offen sein
- Die Standardwerte des Open OSCAR Server sind praktisch für Tests im Heimnetz, aber ungeeignet für eine öffentliche Bereitstellung im Internet
- Es wird empfohlen, zunächst nur den eigenen Traffic zuzulassen und in der Firewall Verbindungen von anderen Quellen zu blockieren, bis die Konfiguration abgesichert ist
Open OSCAR Server installieren
wget [RELEASE URL]
[RELEASE URL] muss durch die tatsächliche Adresse der Release-Datei ersetzt werden
- Entpacke das heruntergeladene Archiv mit
tar
tar -zxvf open_oscar_server.X.XX.X.linux.x86_64.tar.gz
- Ersetze
X.XX.X durch die tatsächliche Versionsnummer des heruntergeladenen Pakets
Empfangsmodus und Serveradresse konfigurieren
- Wenn du nur auf dem lokalen Rechner arbeitest, kannst du direkt in das entpackte Unterverzeichnis wechseln und den Server starten
- Um Clients von anderen Rechnern zu verbinden, musst du
settings.env bearbeiten
- Open OSCAR Server unterstützt drei Client-Empfangsmodi
LOCAL: Standardwert, wenn AIM-Client und Server auf demselben Rechner laufen
LAN: wenn sich Server und AIM-Clients im selben internen Netzwerk befinden und nicht über das Internet verbunden werden
WAN: wenn AIM-Clients externer Freund:innen über das Internet verbunden werden sollen
- In
settings.env werden zwei Variablen gemeinsam gesetzt
OSCAR_LISTENERS: legt fest, wie Open OSCAR Server Verbindungen entgegennimmt
OSCAR_ADVERTISED_LISTENERS_PLAIN: legt fest, welche Serveradresse an Clients wie AIM weitergegeben wird
- Für einen öffentlichen VPS mit der Domain
example.domain könnte die Konfiguration so aussehen
OSCAR_LISTENERS=WAN://0.0.0.0:5190
OSCAR_ADVERTISED_LISTENERS_PLAIN=WAN://example.domain:5190
- In einem internen Netzwerk ersetzt du
WAN durch LAN und verwendest statt der Domain die dem Server zugewiesene IP-Adresse
- Die Modi der beiden Variablen müssen immer zusammenpassen, also
LAN und LAN oder WAN und WAN
- Es ist auch möglich, in beiden Variablen beide Modi zugleich anzugeben
- Wenn die Konfiguration abgeschlossen ist, kannst du den Server mit folgendem Befehl testweise starten
./open_oscar_server
AIM-Client verbinden
- In mehreren AIM-Versionen kann der inzwischen abgeschaltete Standard-Login-Server
login.oscar.aol.com durch eine andere Adresse ersetzt werden
- In AIM 5.1 änderst du die Serveradresse über den großen
Configuration-Button in Setup
- Ersetze einfach die Standard-Login-Adresse durch die Adresse, die in
OSCAR_ADVERTISED_LISTENERS_PLAIN eingetragen ist
- Bevor die Authentifizierung verschärft wird, kannst du dich mit beliebigem Screen Name und Passwort anmelden
- Welche Bedingungen für andere Nutzer:innen gelten, hängt vom Servermodus ab
- Im
LAN-Modus müssen sie sich im selben Netzwerk wie der Server befinden
- Im
WAN-Modus musst du externen Nutzer:innen Zugriff gewähren, damit sie die Firewall passieren können
Server dauerhaft mit systemd ausführen
- Open OSCAR Server liefert einen systemd-Service mit, mit dem der Server auch dann weiterläuft, wenn die SSH-Verbindung getrennt wird
- Für Installation und Konfiguration des Dienstes kannst du der SYSTEMD-Dokumentation des Projekts folgen
Passwortauthentifizierung aktivieren
- Standardmäßig werden echte Passwörter nicht geprüft, daher muss in der systemd-Service-Datei
DISABLE_AUTH geändert werden
- Bearbeite dazu die vollständige Service-Datei mit folgendem Befehl im Standardeditor
sudo systemctl edit --full ras.service
- Setze die Umgebungsvariable unter
[Service] wie folgt
Environment="DISABLE_AUTH=false"
- Da der Variablenname doppelt verneint ist, muss der Wert
false sein, wenn Authentifizierung verlangt werden soll
- Nach dem Speichern der Service-Datei lade die systemd-Daemon-Konfiguration neu
sudo systemctl daemon-reload
- Teste anschließend erneut die Anmeldung mit einem bestehenden Screen Name und Passwort; falls sie fehlschlägt, kannst du per API einen neuen Benutzer anlegen
Benutzer und Passwörter per API verwalten
- Nach Aktivierung der Authentifizierung verwaltest du Benutzer und Passwörter mit der API des Open OSCAR Server und
curl
-
Benutzer hinzufügen
curl -d'{"screen_name":"NEWUSERNAME", "password":"NEWPASSWORD"}' http://localhost:8080/user
- Mit der Option
-d von curl werden POST-Daten gesendet
- Der JSON-Body enthält die Schlüssel
screen_name und password
- Ziel der Anfrage ist der lokale Endpunkt
http://localhost:8080/user
-
Passwort eines bestehenden Benutzers ändern
curl -X PUT -d'{"screen_name":"NEWUSERNAME", "password":"NEWPASSWORD"}' http://localhost:8080/user/password
- Für das Aktualisieren eines bestehenden Benutzers wird statt POST
-X PUT verwendet
- Bei
screen_name muss ein bereits existierender Screen Name angegeben werden
- Der Endpunkt zum Ändern des Passworts ist
http://localhost:8080/user/password
- Die API unterstützt auch das Löschen von Benutzerkonten und das Hinzufügen von Chaträumen; weitere Funktionen findest du in der Projektdokumentation
Backup und Wiederherstellung
- Der wichtigste Zustand des Open OSCAR Server besteht aus einer SQLite-Datenbank und Konfigurationsdateien, wodurch Backups unkompliziert sind
- Das gesamte VPS-System wird jede Nacht gesichert, und auch Wiederherstellungstests haben wie erwartet funktioniert
- Vor größeren Änderungen wird der Server gestoppt und anschließend das komplette Arbeitsverzeichnis per
rsync auf ein Backup-System kopiert
- Mit Borgmatic lässt sich der Backup-Prozess weiter vereinfachen; in einem Folgebeitrag soll darauf ausführlicher eingegangen werden
1 Kommentare
Kommentare auf Lobste.rs
Es war eine unterhaltsame Lektüre, aber es ist ein Irrtum zu glauben, dass es früher nicht viele Messenger gab. Viele Leute verbrachten zwar viel Zeit in AIM oder MSN, aber meine Schulfreunde und ich nutzten beides nicht und wechselten von ICQ zu IRC; die Fragmentierung der Dienste war damals auch nicht wirklich besser als heute.
https://nugget.livejournal.com/97081.html
Einen Monat später gab es auch einen Folgebeitrag nach Googles Antwort.
https://nugget.livejournal.com/103322.html
Es gibt auch ein Video zu diesem Thema. Ich wollte es selbst posten, war aber unsicher, ob ich den etwas clickbaitigen Originaltitel beibehalten oder den von DeArrow vorgeschlagenen Titel verwenden sollte.
Interessant, aber beim Lesen habe ich auf die Antwort auf „Und was kommt danach?“ gewartet. Wenn es nicht mit anderen Servern föderiert ist, frage ich mich, ob alle, mit denen man sprechen will, auf demselben Server sein müssen – oder ob es nur dafür gedacht ist, mit sich selbst zu reden.
Der klassische Screenshot, der eigentlich gleich an den Anfang des Artikels gehört, wurde nicht ausgelassen. Die Praktikabilität und Nützlichkeit der damaligen Software war wirklich sehr gut ausgefeilt.
AIM selbst interessiert mich nicht, aber es macht Spaß zu sehen, wie Leute alte Technik wieder anfassen. Beim Stöbern in den anderen Beiträgen des Autors habe ich das Gefühl, wieder in diverse Recherche-Kaninchenlöcher zu geraten – und das klingt gar nicht schlecht.
Die ICQ- und AIM-Ära selbst vermisse ich überhaupt nicht, aber an ihrem Ende gab es eine kurze goldene Zeit der Branche. Dank XMPP mit Server-zu-Server-Föderation und Gateways zu anderen Protokollen konnte man einen eigenen Server betreiben oder ein Konto auf dem Server von jemand anderem haben und trotzdem mit allen chatten.
Man musste zwar auch die Konten in den über Gateways angebundenen Netzwerken pflegen, aber meistens reichte es, sie nur sehr gelegentlich anzufassen; mit einem einzigen Konto konnte man mit Nutzern von Google Talk, Facebook Messenger, ICQ und MSN sprechen. Nur Skype weigerte sich auffallend hartnäckig, kompatibel zu sein.
Heute hat sich die Kultur erstaunlich stark verändert: Selbst das Open-Source-Projekt Signal blockiert externe Clients, und statt berechtigter Ablehnung wird das weitgehend als einigermaßen vernünftige Forderung akzeptiert. Es fühlt sich an, als hätten wir die goldene Zeit verloren, weil wir sie nicht mehr verdienen.