- [Open OSCAR Server]を使うと、Debianサーバー上にAIM/ICQサーバーを構築し、Windows 98をはじめとする旧式環境のさまざまなクライアントを再び接続できる
- 小規模な運用なら低スペックのVPSでも十分だが、外部の友人と利用するにはデフォルトポート5190と固定IPまたはダイナミックDNS、インターネット公開に合わせたファイアウォール設定が必要
settings.envのOSCAR_LISTENERSとOSCAR_ADVERTISED_LISTENERS_PLAINをLANまたはWANモードに合わせて設定し、AIMクライアントが閉鎖済みのAOLサーバーではなく自前のサーバーへ接続するよう変更する
- 初期状態では任意のスクリーンネームとパスワードでログインできるため、
DISABLE_AUTH=falseでパスワード認証を有効化し、APIでアカウントを管理する必要がある
- サーバー状態はSQLiteデータベースと設定ファイルに保存されるため、夜間のフルバックアップやサーバー停止後の
rsyncコピーによって復旧可能なAIM環境を維持できる
Discordの代わりにAIMを再運用した理由
- 携帯電話とSMSが普及する前は、学校のプロジェクトから人間関係まで多くの活動がAIMウィンドウで行われており、そうした体験がAIMへのノスタルジーにつながっている
- 最近のDiscord利用体験があまり良くなかったため、Open OSCAR Serverを試したところ、自前のAIM/ICQサーバーに複数の旧式クライアントを接続できた
- 構築手順はYouTube動画とPeerTube動画でも扱っており、Macintosh Librarianの別動画ではAIMそのものをより詳しく紹介している
Debian Trixieサーバーの準備
- インストール対象はDebian Trixieであり、OS自体の導入手順は扱わない
- 数百人と会話する予定でなければ、低スペックのVPSでも運用可能
- 当初は自宅でホスティングしていたが、友人と共有し始めてから最安クラスのVPSへ移行した
- Raspberry Piでも動く可能性はあるが、実際には試していない
- 自宅やファイアウォールの背後で運用する場合、AIMクライアントが接続するデフォルトポート5190を開放する必要がある
- 一部のクライアントはポート変更が簡単ではないため、デフォルトポートの維持が望ましい
- 固定IPのない家庭向け環境では、ダイナミックDNSが必要
- 実際に使ったサービスはNo-IPで、結果には満足している
- ダイナミックDNSに不慣れなら、月5〜10ドルのクラウドサーバーで固定IPとより簡単な構成を利用できる
- どちらの方法でも、サーバーは固定IPまたはドメインでアクセス可能で、5190番ポートが開いている必要がある
- Open OSCAR Serverのデフォルト設定はホームネットワーク内でのテストには便利だが、インターネット公開には向いていない
- 設定を固めるまでは、自分のトラフィックのみ許可し、ファイアウォールで他の送信元からの接続を拒否する運用が推奨される
Open OSCAR Serverのインストール
wget [RELEASE URL]
[RELEASE URL]は実際のリリースファイルURLに置き換える
- ダウンロードしたアーカイブは
tarで展開する
tar -zxvf open_oscar_server.X.XX.X.linux.x86_64.tar.gz
X.XX.Xはダウンロードした実際のバージョン番号に置き換える
リスナーモードとサーバーアドレスの設定
- ローカルマシン上でのみ実行するなら、展開したサブディレクトリへ移動してそのまま起動できる
- 別マシンのクライアントを接続するには、
settings.envを編集する必要がある
- Open OSCAR Serverは3つのクライアント受信モードをサポートする
LOCAL: デフォルト値で、AIMクライアントとサーバーが同じマシン上にあるときに使う
LAN: サーバーとAIMクライアントが同じ内部ネットワーク上にあり、インターネットを経由しない場合に使う
WAN: インターネット経由で外部の友人のAIMクライアントを接続する場合に使う
settings.envでは2つの変数をセットで設定する
OSCAR_LISTENERS: Open OSCAR Serverが接続を待ち受ける方法を指定する
OSCAR_ADVERTISED_LISTENERS_PLAIN: AIMのようなクライアントに通知するサーバーアドレスを指定する
- ドメインが
example.domainの公開VPSなら、次のように構成できる
OSCAR_LISTENERS=WAN://0.0.0.0:5190
OSCAR_ADVERTISED_LISTENERS_PLAIN=WAN://example.domain:5190
- 内部ネットワークでは
WANをLANに変更し、ドメインの代わりにサーバーへ割り当てたIPアドレスを使う
- 2つの変数のモードは必ず**
LANとLAN、またはWANとWAN**のように一致していなければならない
- 設定が終わったら、次のコマンドでサーバーを試験起動する
./open_oscar_server
AIMクライアントの接続
- 複数のAIMバージョンでは、現在は閉鎖されているデフォルトのログインサーバー
login.oscar.aol.comを別のアドレスに置き換えられる
- AIM 5.1では、
Setupの大きな**Configurationボタン**からサーバーアドレスを変更する
- デフォルトのログインサーバーアドレスを
OSCAR_ADVERTISED_LISTENERS_PLAINで指定したアドレスに置き換えればよい
- 認証を強化する前は、任意のスクリーンネームとパスワードを入力してログインできる
- 他の利用者が接続できる条件はサーバーモードによって異なる
LANモードでは、サーバーと同じネットワーク上にいる必要がある
WANモードでは、外部利用者がファイアウォールを通過できるようアクセス権を与える必要がある
systemdでサーバーを常時実行する
- Open OSCAR Serverには、SSH接続が切れた後もサーバーを動かし続けられるsystemdサービスが付属している
- サービスのインストールと設定は、プロジェクトのSYSTEMDドキュメントに従えばよい
パスワード認証を有効にする
- 初期状態では実際のパスワード検証を行わないため、systemdサービスファイルで
DISABLE_AUTHを変更する必要がある
- 次のコマンドで、完全なサービスファイルをデフォルトエディタで編集する
sudo systemctl edit --full ras.service
[Service]配下の環境変数を次のように設定する
Environment="DISABLE_AUTH=false"
- 変数名が二重否定の形になっているため、認証を必須にするには値を**
false**にする必要がある
- サービスファイルを保存したら、systemdデーモン設定を再読み込みする
sudo systemctl daemon-reload
- 既存のスクリーンネームとパスワードで再度ログインを試し、失敗する場合はAPIで新しいユーザーを作成できる
APIでユーザーとパスワードを管理する
バックアップと復旧
- Open OSCAR Serverの主要な状態はSQLiteデータベースと設定ファイルで構成されるため、バックアップは簡単
- VPS全体のシステムを毎晩バックアップしており、復元テストでも期待どおりに動作した
- 大きな変更の前にはサーバーを停止し、作業ディレクトリ全体を
rsyncでバックアップマシンへコピーしている
- Borgmaticを使えばバックアップ手順をさらに簡単にでき、続編の記事で詳しく扱う予定
1件のコメント
Lobste.rsのコメント
面白く読んだけれど、昔はメッセンジャーの種類が多くなかったと思うなら、それは誤解。AIMやMSNで長い時間を過ごした人も多かったが、私と学校の友人たちはどちらも使わず、ICQからIRCへ移っていったし、サービスの断片化も今より特にましだったわけではなかった
https://nugget.livejournal.com/97081.html
1か月後にGoogleからの回答を受けて書いた続編もある
https://nugget.livejournal.com/103322.html
このテーマを扱った動画もある。自分で投稿しようかと思ったが、やや釣り気味の元タイトルを維持するか、DeArrowが提供したタイトルを使うかで迷った
面白いが、記事を読みながら期待していた答えは「それで、その次は?」だった。ほかのサーバーとフェデレーションされないなら、会話したい全員が同じサーバーにいなければならないのか、それとも一人で話す用途なのかが気になる
記事の冒頭に当然入るべき定番スクリーンショットを外していなかった。当時のソフトウェアの実用性と有用性は本当によく磨き込まれていた
AIM自体には関心がないが、人々が昔の技術をもう一度いじってみる様子は楽しい。著者のほかの記事まで見て回っているうちに、またいろいろな探求の沼にはまりそうだが、それも悪くなさそうに見える
ICQとAIMの時代そのものはまったく懐かしくないが、その末期には業界の短い黄金期があった。サーバー間フェデレーションが可能なXMPPと、ほかのプロトコルへつなぐゲートウェイのおかげで、自分でサーバーを作ることも、他人のサーバーにアカウントを置くこともでき、誰とでも会話できた
ゲートウェイで接続したネットワークのアカウントも維持する必要はあったが、たいていはごくたまに手を入れれば十分で、1つのアカウントでGoogle Talk・Facebook Messenger・ICQ・MSNのユーザー全員と会話できた。Skypeだけはひときわ頑なに互換性を拒んでいた
今では文化が驚くほど変わり、オープンソースのSignalでさえ外部クライアントを締め出しているのに、当然の反感を買うどころか、ある程度合理的な要求として受け入れられている。私たちにはもう享受する資格がなくなったから、黄金期を失ったように思える