タグ: redmine Page 10 of 13

ApacheによるredmineサイトのIPブロック。

事の発端

AWS Lightsailを利用して外部公開しているredmine。(Apache2.4/redmine 4.2)
アクセスログを確認すると以下の不審なIPからログインを試みている痕跡がありました。

これは無差別攻撃を仕掛けられているのでは? と思い、対処を行いました。

以下、その時のメモとなります。

IP アドレスチェック

https://www.abuseipdb.com/

こちらのサイトを利用して、アクセス元のIPアドレスが攻撃を意図しているものかを確認します。

ものの見事に「Confidence of Abuse is 100%」と出ました。

対処方針

ドメイン等を公称していなくても、この手の不正アクセスはついて回ります。
(自分が当初ローカルでredmineを構築したのは、これを避けるためだという明確な理由がありました)

本来なら「指定したIPのみ許可する」ポジティブリストにすべきですが、出先からでもアクセスしたいのでこの方法は使えません。

そこで、今回は対処療法と承知していても「不審なアクセスがあった元をブロックする」ネガティブリスト型で実施します。

参考:
https://notepad-blog.com/content/196/

手順

今回、以下の環境で動作確認をしました。

  • Linux Mint 20.3
  • Apache 2.4
  • redmine 4.2

全て管理者権限で実施しました。

confファイルのバックアップを取ります。

/etc/apache2/sites-available
mkdir ../old
cp -pi redmine.conf ../old/redmine.conf.yyyymmdd
# バーチャルファイルは適宜読み替えてください

confファイルを以下のように修正します。

修正前の箇所
<Location /redmine>
PassengerBaseURI /redmine
PassengerAppRoot /var/lib/redmine
Require all granted
</Location>
修正後の箇所
<Location /redmine>
PassengerBaseURI /redmine
PassengerAppRoot /var/lib/redmine
<RequireAll>
Require all granted
# 2022/05/23 from hoge
Require not ip xxx.xxx.xxx.xxx
</RequireAll>
</Location>
差分
 PassengerBaseURI /redmine
 PassengerAppRoot /var/lib/redmine
+<RequireAll>
 Require all granted
+# 2022/05/23 from hoge
+Require not ip xxx.xxx.xxx.xxx/xx
# ブロックしたいIPを指定
# 後のメンテナンスを考えて、NWアドレス単位で指定します
+</RequireAll>
 </Location>

構文確認後、apacheサービスを再起動します。

apache2ctl configtest
# syntaxOK を確認します
systemctl restart apache2

サービス再起動後、正常に表示されることを確認します。
(最初は自分がアクセスしているIPを指定して「redmineにアクセスできないこと」を確認した方が確実です)

まとめと今後の展望

AWSのACLならGUIでの設定は用意ですが、上述したように、今回の処置は対処療法にすぎません。また、ネガティブリスト型のブロックには限界があります。
他の効率的な方法や、アクセスされても被害の拡大を防ぐ手段を考えていくのが目下の課題です。

「リファレンス」の追加。(redmine_glossary_plugin導入)

概要

  • コマンド一覧
  • ツールの場所

など、50音順で参照して確認したい情報は多々あります。その情報を確認するため、以下のプラグインを導入しました。

redmine_glossary

このように、「用語集」を追加できるプラグインです。

環境

  • LinuxMint 21.03
  • Redmine 4.2
  • Apache 2.4

手順

全て管理者権限で実施しました。

プラグイン配置

cd /var/lib/redmine/plugins
# 各自のplugin配置ディレクトリに読み替えてください
sudo -u wwww-data git clone https://github.com/torutk/redmine_glossary.git
# オリジナルからForkした4.2環境でも動くバージョンです

設定反映

cd ../
bundle install
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
systemctl restart apache2

導入後の設定

  1. 各プロジェクトで「用語集」を有効にします。
  2. 用語を追加していきます。
  3. Wiki記法に沿って画像の挿入も可能です。 

「かんばん」によるスケジュールの可視化。(redmine kanban プラグインフィードバック)

AWSによって外部環境からアクセスできるようになったredmine。思った以上に威力を発揮してくれました。

redmineによるスケジュール管理方針

「1案件に付き1つのチケット」を発行しています。

例えば:ボドゲ会を執り行うスケジュールがあるとすれば

概要に主だった物(見切れているところに日時や場所)を記載し、

過程を書いておくことで「なぜその結論に至ったか」のフィードバックを行えます。

何より、外出先でも見られる/編集できるのは心理的な安心感ももたらしてくれました。

かんばん

これらチケット管理に特に役立っているのがこの「かんばん」プラグイン。

  • チケット(スケジュール)がどのぐらいあるか
  • 期日までどれぐらいか
  • 優先度

などを一瞥できるのはとても便利。

また、

リマインダーメールはこちらでも設定したので、「適切な期日を設定していれば」漏れることもありません。

この手のプロジェクト管理ツール、使い方次第で個人用途のツールとなると実感です。

redmine、添付ファイルのカテゴライズ。( redmine_attachment_categories プラグイン導入)

概要:redmine_attachment_categories

チケットに添付する添付ファイル。関連するものを放り込んでいくうちにどれがどれだか分からなくなるパターンが多々発生します。
それを解消するために添付ファイルそのものをカテゴライズします。

環境

  • LinuxMint 21.03
    • Ubuntu20.04でも動作確認済み
  • Redmine 4.2
  • Apache 2.4

手順

全て管理者権限で実施しました。

プラグイン配置

cd /var/lib/redmine/plugins
# 各自のplugin配置ディレクトリに読み替えてください
sudo -u wwww-data git clone https://github.com/HugoHasenbein/redmine_attachment_categories.git

設定反映

cd ../
bundle install 
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
systemctl restart apache2

導入後の設定

設定1

  1. redmineに管理者権限でログインします。
  2. 管理>プラグイン>Attachment Categoriesに移動します。
  3. 好みのスタイルに変更します。

設定2

  1. redmineに管理者権限でログインします。
  2. 管理> Attachment categoriesに移動します。
  3. カテゴリーの名称やタグの色を変えられます。 

導入後の動き

ファイルの添付時、カテゴリーごとにラベルを貼ることができます。

AWSのLightsailでredmineを構築。

ローカル環境で大いに役立っているredmine。

「いっそのこと、スケジュール管理をこっちに一任してしまおう」

と決めたはいいのですが、自宅からしかアクセスできないのがネックとなります。

そこで採用した手段がこちらです。

AWS Lightsail

AWSの従量課金が怖いなと思ったところで知ったLightsail

  • 月額USD10ほどで利用でき(最安はUSD5)
  • 定額
  • 簡略化されているとは言えDNSも容易
  • OSとWebアプリのバンドル版もあり

と、言うことなしの環境でした。

Redmine構築までの流れ

以下のようにしました。

  1. ドメインを取得(完全に私的に用いるためここでは非公開です)
  2. AWSアカウント取得
  3. LightsailでUbuntuのみを立ち上げ(redmineのバンドルもありましたけれど、バージョン5は愛用しているプラグインとの関係から一から作ります)
  4. Ubuntuインスタンスに静的IPを付与
  5. それを元にドメイン設定
  6. Ubuntuログイン後
    1. アクセス用のアカウント付与
    2. 秘密鍵認証できるように設定
    3. デフォルトのアカウントを実質的に無効化(公開鍵を所定の場所からずらしました)
    4. OSアップデート
  7. redmineインストール
  8. Let's Encryptで暗号化

暗号化チェック

無事、QualysのSSL強度チェックでも最高評価「A+」を撮ることが出来たので一安心。(この方法は別途記事に起こす予定です)

redmine、サムネイルの改善。(redmine_lightbox2プラグイン導入)

概要

この記事に続き、「見た目は地味だけど便利なプラグイン」導入です。

導入のきっかけ

ゲームの進捗状況をスクリーンショットに残していますが、

  • べた貼りだとスクロールが重畳
  • かといってサムネイルは画像内テキストが読めない
  • ダウンロードは面倒

という問題がありました。それを以下のようにして解決です。

Redmine lightbox2 plugin

環境

  • Redmine 4.2
  • Linux Mint 20.03
  • apache2.4

手順

全て管理者権限で実施しました。

ファイル配置

cd /var/lib/redmine/plugins
#redmineのpluginディレクトリ
sudo -u www-data git clone https://github.com/paginagmbh/redmine_lightbox2.git

インストール、設定反映

bundle install
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
systemctl restart apache2

導入後の設定

ありません。

導入後の結果

チケットのコメントに登録された画像をクリックすると

lightboxがモーダル表示。これで

  • 必要なときだけ画像拡大
  • 参照したいときはチケット内に起こしたテキストを読めばいい

の多段階での運用が可能になりました。

redmine、チケット数の一瞥。(redmine_issue_badgeプラグイン導入)

概要

プライベートのスケジュールやゲームの管理に使っている自宅ローカルのredmine。

ログインしたときに「自分が今どれだけのチケットがあるか」を把握するためのプラグインを導入しました。

Redmine Issue Badge plugin

環境

  • Redmine 4.2
  • Linux Mint 20.03
  • apache2.4

手順

全て管理者権限で実施しました。

ファイル配置

cd /var/lib/redmine/plugins
#redmineのpluginディレクトリ
sudo -u www-data git clone https://github.com/akiko-pusu/redmine_issue_badge.git redmine_issue_badge

インストール、設定反映

bundle install
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
systemctl restart apache2

導入後の設定

  1. redmineに管理者権限でログインします。
  2. 管理>プラグイン>Redmine Issue Badge plugin(設定)に進み、以下のように設定します。
  • 全てのユーザにバッジを表示:チェック
  • 担当チケット数のポーリングを許可(60秒):チェック
  • ポップアップでの表示件数:10

設定後

上部「ログイン中」のところに赤い数字が出てきて、進行中のチケット数が表示されます。

ここをクリックすると、担当するチケットが表示され、リンクも表示されます。

まとめ

地味ではありますが、非常に有用なプラグイン。RPGやスマートフォンゲームでよくある「実行中のクエスト」をが表示されるのはモチベーション維持にもつながります。

redmine上のチェックリスト。(redmine_markdown_task_list導入)

Markdwon書式でのチェックリスト

TyporaなどのMarkdownエディタで

- [ ] やることA
- [x] やることB

と入力するとチェックリストとして表示されます。

これをredmine上で表現するためのプラグインを導入しました。

redmine_markdown_task_list インストール

参考:
https://qiita.com/EichiSanden/items/87ac4aaeb754341775a9

手順

cd /var/lib/redmine/plugins
# プラグインが格納されているディレクトリ
sudo -u www-data git clone https://github.com/eichisanden/redmine_markdown_task_list.git
systemctl restart apache2

DBのマイグレーション要らず、配置後に再起動するだけでした。

結果

画像

と入力したものが

画像

となりました。

redmine_checklistプラグインと異なり、チケットのコメント上でもknowledgebase上でも追加できるのが便利です。

redmineのファイルサーバ化。(dmsfプラグイン導入→ 別記事に2023/02/03時点での手順を記載)

要注意

2023/02/03時点での手順はこちらになります。

https://atelier.reisalin.com/projects/zettel/knowledgebase/articles/39

恐れ入りますが、上記を参照ください。

かつて以下に書かれていた手順はバージョンアップにより正常に動作しません。(なので消去しました)

導入のきっかけ

redmineの「ファイル」機能は便利ですが、以下の問題点がありました。

  • プロジェクトごとにファイルを探す必要がある。
  • ファイルをまとめてダウンロードできない。
  • 可能であれば宅内NWから直接やりとりをしたい。
  • 履歴管理はできるか?

そんな中で、うってつけのプラグインを発見しました。

動作確認環境

  • Linux Mint 20.03
  • redmine ver 4.2

redmine_dmsf概要

https://github.com/danmunn/redmine_dmsf

これ以降の手順は消去

redmineプラグイン:local avater導入。

概要

redmine、ユーザのアイコンを外部サービスで入れ替えることができますが、redmineのみで完結させるようにプラグインを導入しました。

手順

すべて管理者権限で実施しています。

cd /var/lib/redmine/plugins/
# 自分のredmineプラグインのパスに移動します
sudo -u www-data git clone https://github.com/taqueci/redmine_local_avatars.git
bundle install
bundle exec rake redmine:plugins RAILS_ENV=production
systemctl restart apache2

導入後

ログイン > 個人設定に「アバターの変更」というボタンが表示されます。

画像をアップロード後、変更を確認。

Page 10 of 13

Powered by WordPress & Theme by Anders Norén