本文へ移動

公開 更新 新機能・アップデート執筆・監修 佐々木 航人が監修しながらAIを活用して執筆

自社運用のNetBird、MySQLは0.82.0の前に移行

NetBirdは10月29日の0.82.0で、管理サーバーのデータをMySQLに置く形をなくした。自社で動かしてMySQLを使っているなら、0.81系のうちにPostgreSQLへ移す。社内への出入り口を複数置く構成で、経路の切り替えを減らす変更も入った。

自社のサーバーでNetBirdの管理サーバーを動かし、データの保存先にMySQLを使っているなら、0.82.0へ上げる前にPostgreSQLへ移す。10月29日に出た0.82.0ではMySQLの保存先がなくなり、設定がmysqlのままだと管理サーバーが起動しない。MySQLは10月15日の版で非推奨になったばかりで、2週間で外れた。

SQLiteとPostgreSQLは、これまでどおり使える。管理サーバーを自社で動かしていなければ、この件は当たらない。

移行は0.81系のうちに済ませる

移行ツールのnetbird-mysql-migrateは、0.82.0の配布物から外れた。そのため、0.81.5のリリースにあるツールで、上げる前に移しておく。手引きにある流れは次のとおり。

  1. 管理サーバーを0.81系に上げ、MySQLのまま一度起動して、データベースの形を新しくする。ツールは管理サーバーと同じ版のものを使う。
  2. 空のPostgreSQLのデータベースを用意する。ツールはLinuxだけで動き、MySQLとPostgreSQLの両方につながる機械で動かす。
  3. 管理サーバーを止め、データのフォルダとMySQLのダンプを取っておく。
  4. ツールで写し、管理サーバーの設定で保存先をPostgreSQLに替えてから起動する。

ツールはMySQLを読むだけで、書き換えない。管理のデータに加え、操作ログ(events.db)と組み込みのIdP(idp.db)もPostgreSQLへ写す。バックアップにはパスワードのハッシュも入るので、作業する本人しか読めない権限にしておく。

気をつけたい点は2つ。まず、設定にある暗号化の鍵は変えない。写したデータは暗号化されたままなので、同じ鍵でないと管理サーバーが読めない。また、MySQLの時刻はUTCとして読まれる。管理サーバーを別のタイムゾーンで動かしているなら、ツールに--mysql-timezoneを付ける。

出入り口の切り替えと、SSHの修正

社内のネットワークへの出入り口になる端末(ルーティングピア)を複数台並べた構成では、経路の切り替えが減る。これまでは遅延を接続の最初に1回だけ測り、要らない場面でも経路を移していた。切り替えのたびにその経路のTCPの接続が切れるため、SSHなどの長い接続が落ちやすかった。

0.82.0では遅延を測り続け、差が一定の幅を超えたときだけ移す。幅は20ミリ秒以上、かつ今の遅延の20%以上などだ。移したあとは、少なくとも30秒は同じ端末を使う。一方、つながらなくなったときの切り替えは、これまでどおりすぐに行う。切り替えは理由とともに警告として記録され、netbird status -dでも見られる。

NetBirdに組み込まれたSSHサーバーでは、rootのログインを断る設定が、uid 0のすべての利用者に効くようになった。これまでは、rootという名前の利用者だけが対象だった。FreeBSDのtoorのような別名も、これで断れる。接続する側から渡される言語やタイムゾーンなどの値も、パスを含むものは受け付けない。

量子コンピューターに備える暗号の仕組み(Rosenpass)は非推奨になった。今は動くものの、今後の版で外れる可能性がある。NetBirdは、新しく組む構成ではこれに頼らないよう案内し、代わりの方法を用意しているとしている。

出典

この記事は、公式の発表をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航(株式会社Game)が担い、公開した記事も人が確認しています。記事の中身の責任は編集部が負います。誤りに気づいたときは 訂正の窓口 からお知らせください。直したときは、記事の末尾に更新の行を残します。