Misskey+オブジェクトストレージの構築で起きた問題と対処

この記事の続き

構成

前提

  • リバースプロキシを経由してMisskeyインスタンスへアクセスすることが可能
  • サーバがamd64環境で動作している(arm64では未検証)
  • サーバネットワーク内部から自グローバルIPアドレスに対して通信が通る

NW

内部: 172.16.5.0/24
外部: 10.0.1.9

リバースプロキシ

OS: Ubuntu 22.04 LTS
HTTPServ: apache2
IP: 172.16.5.2

Misskeyサーバ

OS: Ubuntu 22.04 LTS
HTTPServ: Nginx
FQDN: mi.example.net
IP: 172.16.5.3
DNSサーバ: 172.16.5.253

MinIO

OS: Ubuntu 22.04 LTS
FQDN: media.example.net
IP: 172.16.5.4
データ格納場所: /mnt/data/
Misskeyから見るURL: media.example.net/misskey/

内部DNSサーバ

IP: 172.16.5.253

内部からの名前解決を次のように行う.

mi.example.net -> 172.16.5.2
media.example.net -> 172.16.5.2

カスタム絵文字やアイコンで500エラー

  • オブジェクトストレージに配置した画像へのアクセスができる(内部外部両方)
  • その画像を使用したカスタム絵文字の表示ができない
  • アイコン設定が途中で進まなくなる
  • /proxy/avatar.webp などから500が返ってくる

原因

内部向けDNSサーバで内部IPアドレスを返却しているため.
ローカルIPアドレスをurlパラメータに設定した場合も同じような挙動を示すため,セキュリティ上のリスクを軽減するためにこのように動作すると考えられる.(文献が得られなかったので真偽不明)

対処法

Misskeyインスタンス側での対応を実施します

内部向けDNSサーバを使用しない

外部のDNSサーバを使用し,自サーバにグローバルIPアドレスからアクセスすることでこれが実現できます

$ sudo vim /etc/resolv.conf
nameserver (プロバイダの提供するDNSサーバ)

Related Posts:

Share

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です