1 Punkte von GN⁺ 7 시간 전 | 1 Kommentare | Auf WhatsApp teilen
  • 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

 
GN⁺ 7 시간 전
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.

    • Immerhin gab es damals integrierte Clients, mit denen man mehrere Messenger an einem Ort nutzen konnte.
    • Stimmt. Das erinnert mich an einen LiveJournal-Beitrag aus dem Jahr 2005, der auf Slashdot vorgestellt wurde und in dem es darum ging, dass Googles Jabber-Server für Google Talk keinen passenden Plan für Server-zu-Server-Föderation hatte.
      https://nugget.livejournal.com/97081.html
      Einen Monat später gab es auch einen Folgebeitrag nach Googles Antwort.
      https://nugget.livejournal.com/103322.html
    • Ich vermute, dass es starke regionale Unterschiede gab. Soweit ich mich erinnere, war in den USA AIM verbreitet, in Europa eher ICQ.
  • 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.

    • Der Videotitel wirkte auf mich nicht unbedingt clickbaitig, aber im Allgemeinen bevorzuge ich Blogposts gegenüber Videos.
  • 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.

    • Ich sehe nicht, was daran problematisch sein soll, mehreren Servern beizutreten. Im Grunde ist das auch die Struktur, die Discord für sich beansprucht.
  • 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.