今月に入って、Redmineの脆弱性についてのアナウンスがありました。
(参考)
1.SacnNetScurity:オープンソースのプロジェクト管理ソフトウェア「Redmine」にXSSの脆弱性
https://scan.netsecurity.ne.jp/article/2022/12/16/48642.html
2.JVN#60211811:Redmine におけるクロスサイトスクリプティングの脆弱性
https://jvn.jp/jp/JVN60211811/
これまで時間が取れずに対応できなかった、BitnaimiのRedmineコンテナへの移行作業を
この機会に実行してみようと取り組んでみました。
BitnamiがRedmineをソースコードの提供を終了したのは、昨年の6月末。
当時の最新版は4.2.1 でしたので、バージョン4からバージョン5への移行となります。
バージョン5では、Ruby,Railsの環境が新しくなり、データ・プラグインなどが
そのまま移行できるのかが、確認のポイントとなります。
(参考)
3.Redmine.JP Blog:Redmine 5.0.0 リリース
https://blog.redmine.jp/articles/5_0/redmine-5_0_0-released/
(1)まずは、コンテナの起動(稼働)確認です。
ホスト環境のパッケージを最新化しておいて、
Bitnami のサイトの記載のとおり、Docker-compse.ymlをダウンロードして
修正のうえ、起動します。
これは無事に稼働しました。
(2)次は、チケットのデータ(DB、ファイル)の移行です。
ファイルは、/bitnami/redmine/files ディレクトリーに展開してアクセス権を設定(これが重要!)すれば大丈夫でしたが、
DBへのデータ移行が曲者でした。
Bitnamiのmariadbのコンテナに入ってみると・・??
なんと、「I have no name!」と言われてしまいます。この方法では何ともできないので断念です。
そこで、以下のサイトを参考に外からデータを投入します。
(参考)
4.へっぽこプログラマーの備忘録:Redmine のアップデートとリストア
https://kuttsun.blogspot.com/2021/05/redmine.html
しかしながら、エラーが発生して期待通りの起動ができません。
調べてみると、以下の3項目についての対応が必要でした。
これらの対応をして、データを再投入したところ、無事稼働しました。
全てのチケットのデータの検証は時間がかかりそうなので、このまま継続します。
ここで、ステップ1は完了です。(ステップ2に続きます)
(12/24追記)
ホストファイル内に /Bitnami/redmine/config/database.yml が以下の内容で定義されています。
投入データの変更値と、この定義ファイルの設定値が違っているのが気がかりですが、
もう少し時間をかけて確認する予定です。
(参考)
1.SacnNetScurity:オープンソースのプロジェクト管理ソフトウェア「Redmine」にXSSの脆弱性
https://scan.netsecurity.ne.jp/article/2022/12/16/48642.html
2.JVN#60211811:Redmine におけるクロスサイトスクリプティングの脆弱性
https://jvn.jp/jp/JVN60211811/
これまで時間が取れずに対応できなかった、BitnaimiのRedmineコンテナへの移行作業を
この機会に実行してみようと取り組んでみました。
BitnamiがRedmineをソースコードの提供を終了したのは、昨年の6月末。
当時の最新版は4.2.1 でしたので、バージョン4からバージョン5への移行となります。
バージョン5では、Ruby,Railsの環境が新しくなり、データ・プラグインなどが
そのまま移行できるのかが、確認のポイントとなります。
(参考)
3.Redmine.JP Blog:Redmine 5.0.0 リリース
https://blog.redmine.jp/articles/5_0/redmine-5_0_0-released/
(1)まずは、コンテナの起動(稼働)確認です。
ホスト環境のパッケージを最新化しておいて、
Bitnami のサイトの記載のとおり、Docker-compse.ymlをダウンロードして
修正のうえ、起動します。
これは無事に稼働しました。
curl -sSL https://raw.githubusercontent.com/bitnami/containers/main/bitnami/redmine/docker-compose.yml > docker-compose.yml # docker-compose up -d Creating network "bitnami_default" with the default driver Creating volume "bitnami_mariadb_data" with local driver Creating volume "bitnami_redmine_data" with local driver Pulling mariadb (docker.io/bitnami/mariadb:10.6)... 10.6: Pulling from bitnami/mariadb ・・・ Status: Downloaded newer image for bitnami/redmine:5 Creating bitnami_mariadb_1 ... done Creating bitnami_redmine_1 ... done # docker-compose ps Name Command State Ports ----------------------------------------------------------------------------------------------------- bitnami_mariadb_1 /opt/bitnami/scripts/maria ... Up 3306/tcp bitnami_redmine_1 /opt/bitnami/scripts/redmi ... Up 0.0.0.0:80->3000/tcp,:::80->3000/tcp
(2)次は、チケットのデータ(DB、ファイル)の移行です。
ファイルは、/bitnami/redmine/files ディレクトリーに展開してアクセス権を設定(これが重要!)すれば大丈夫でしたが、
DBへのデータ移行が曲者でした。
Bitnamiのmariadbのコンテナに入ってみると・・??
# docker exec -it bitnami_mariadb_1 /bin/bash I have no name!@192d363a2b8b:/$
なんと、「I have no name!」と言われてしまいます。この方法では何ともできないので断念です。
そこで、以下のサイトを参考に外からデータを投入します。
(参考)
4.へっぽこプログラマーの備忘録:Redmine のアップデートとリストア
https://kuttsun.blogspot.com/2021/05/redmine.html
# docker exec bitnami_mariadb_1 bash -c "/opt/bitnami/mariadb/bin/mysql -u ユーザ名 bitnami_redmine < 移行データファイル.sql
しかしながら、エラーが発生して期待通りの起動ができません。
調べてみると、以下の3項目についての対応が必要でした。
・(削除する) /*!50013 DEFINER=`bitnami`@`localhost` SQL SECURITY DEFINER */
・(変更する) utf8mb4 => utf8
・(変更する) utf8mb4_0900_ai_ci => utf8mb3_general_ci
これらの対応をして、データを再投入したところ、無事稼働しました。
全てのチケットのデータの検証は時間がかかりそうなので、このまま継続します。
ここで、ステップ1は完了です。(ステップ2に続きます)
(12/24追記)
ホストファイル内に /Bitnami/redmine/config/database.yml が以下の内容で定義されています。
production: adapter: mysql2 database: bitnami_redmine host: mariadb username: bn_redmine password: "" # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7 encoding: utf8mb4 port: "3306"
投入データの変更値と、この定義ファイルの設定値が違っているのが気がかりですが、
もう少し時間をかけて確認する予定です。