月: 2024年11月 Page 1 of 3

地図とスニッチ。

今年に入って変遷を重ねている弁当箱。

趣味も兼ねてこちらを試してみます。

『ハリーポッター』シリーズから

  • 『アズカバンの囚人』からのキーアイテム「忍びの地図」
  • 金のスニッチ

をかたどった弁当箱。

よりサイズダウンした形です。

  • スープジャーを導入したことにより、メインのお弁当箱は更に小さくする必要があった
  • 汁物と明確化できる算段があったので、弁当箱自体の液漏れは気にしない運用ができるようになった

故のチョイス。

実際に盛るとこうなりました。弁当箱の仕切りがなくても小分けすることで機能を果たしています。

今年いっぱいはこれで運用してみます。

カジュアル&コラボ。(統率者メモ2024/11/29)

このデッキ購入から1ヶ月ほど。少しカードを加えてみました。

統率者

  • ウォードクター/The War Doctor
  • K-9 マークI型/K-9, Mark I

デッキ

クリーチャー

  • ローズ・タイラー/Rose Tyler
  • アトラクシの管理者/Atraxi Warden
  • タイムビートル/Time Beetle
  • フレッシュの複製体/Flesh Duplicate
  • クロノゾア/Chronozoa
  • 永劫の年代史家/Aeon Chronicler
  • スターホエール/Star Whale
  • 炎族の伝令/Flamekin Herald
  • 神秘的な預言者/Sibylline Soothsayer
  • 再鍛の刃、ラエリア/Laelia, the Blade Reforged
  • 地質鑑定士/Geological Appraiser
  • ローリー・ウィリアムズ/Rory Williams
  • 初代ドクター/The First Doctor
  • 11代目ドクター/The Eleventh Doctor
  • 10代目ドクター/The Tenth Doctor
  • 宇宙船内の恐竜/Dinosaurs on a Spaceship
  • ジャドゥーンの執行者/Judoon Enforcers
  • ケイト・スチュワート/Kate Stewart

インスタント

  • 皆に命を!/Everybody Lives!
  • 塵への帰結/Return to Dust
  • 時計回し/Clockspinning
  • 遅延/Delay
  • 極性を反転せよ/Reverse the Polarity
  • 歴史への投入/Hurl into History
  • ゾヨワの裁き/Zoyowa's Justice
  • ギャリフレイの陥落+終止符を/Gallifrey Falls+No More

ソーサリー

  • リヴァー・ソングの結婚式/The Wedding of River Song
  • 告別/Farewell
  • すべてが塵と化す/Everything Comes to Dust
  • 不定的時間的/Wibbly-wobbly, Timey-wimey
  • ナノジーンの変換/Nanogene Conversion
  • 通り抜け/Step Through
  • ある日のことごと/Twice Upon a Time
  • 鼓舞のリフレイン/Inspiring Refrain
  • 熱狂のリフレイン/Rousing Refrain
  • 恍惚の美/Ecstatic Beauty
  • 臆病者+殺人鬼/Coward+Killer
  • 時の一掃/Time Wipe

エンチャント

  • 4回のノック/Four Knocks
  • 暖炉の少女/The Girl in the Fireplace
  • 時空からの退去/Out of Time
  • 命運の掌握/Grasp of Fate
  • 時の裂け目/Crack in Time
  • 11番目の時間/The Eleventh Hour
  • わかれ道/The Parting of the Ways
  • 再生の回復/Regenerations Restored
  • ドクターの日/The Day of the Doctor

アーティファクト

  • 太陽の指輪/Sol Ring
  • オゾリス/The Ozolith
  • 独創のタリスマン/Talisman of Creativity
  • 精神石/Mind Stone
  • 確信のタリスマン/Talisman of Conviction
  • 秘儀の印鑑/Arcane Signet
  • 思考の器/Thought Vessel
  • ターディス/TARDIS
  • モメント/The Moment
  • 稲妻のすね当て/Lightning Greaves
  • ソニック・ドライバー/Sonic Screwdriver
  • 回転する暖炉/Rotating Fireplace
  • パンドリカ/The Pandorica

プレインズウォーカー

  • クイントリウス・カンド/Quintorius Kand

土地

  • 3:平地/Plains
  • 3:島/Island
  • 3:山/Mountain
  • 隠された中庭/Hidden Courtyard
  • トレンザロアの時計塔/Trenzalore Clocktower
  • 天啓の神殿/Temple of Epiphany
  • 凱旋の神殿/Temple of Triumph
  • 啓蒙の神殿/Temple of Enlightenment
  • 凍沸の交錯/Frostboil Snarl
  • 怒静の交錯/Furycalm Snarl
  • 港町/Port Town
  • さびれた浜/Deserted Beach
  • 日没の道/Sundown Pass
  • 嵐削りの海岸/Stormcarved Coast
  • 焦熱島嶼域/Fiery Islet
  • 灼陽大峡谷/Sunbaked Canyon
  • 氷河の城砦/Glacial Fortress
  • 灌漑農地/Irrigated Farmland
  • 広漠なるスカイクラウド/Skycloud Expanse
  • 興隆する絶壁/Thriving Bluff
  • ラウグリンのトライオーム/Raugrin Triome
  • 神秘の僧院/Mystic Monastery
  • 祖先の道/Path of Ancestry
  • 風変わりな果樹園/Exotic Orchard
  • ギャリフレイ評議堂/Gallifrey Council Chamber
  • 統率の塔/Command Tower
  • 不吉な墓地/Ominous Cemetery
  • ならず者の道/Rogue's Passage
  • 作戦室/War Room
  • 無限地帯/Myriad Landscape

オリジナルから統率者をぐっと変えました。

主なコンボ

  1. ウォードクターと炎族の伝令がいる中でK-9 マークI型を唱えると、ライブラリー全てのカードが追放されることになり、その分の時間カウンターが置かれます。後は攻撃して1人にワンショット。以下でも可能。
    1. ターディス
    2. ゾヨワの裁き
  2. 相手の手札が7枚以上ある中で以下を組み合わせ無限トークン。
    1. 10代目ドクター
    2. 鼓舞のリフレイン
    3. クロノゾア

とはいえ、条件が厳しく再現性もないデッキ。

高額なカードを入れずフレーバーに即したワンショットとなるとこういう形になるかと。

Ubuntuで特定のディレクトリに移動した際にカスタムメッセージを表示する。

概要

Ubuntuで、特定のディレクトリに移動した際にカスタムメッセージを表示するTIPSです。

例えば、cd /etc/apache2/sites-availableとしたときに「.confファイルのバックアップを取ること」といった確認メッセージを表示させることができます。

環境a

  • Ubuntu 22.04 /24.04
  • BashまたはZshシェル

手順

1. スクリプトを作成

まず、/etc/profile.d/cd.shにカスタムcd関数を追加します。

sudo tee -a /etc/profile.d/cd.sh > /dev/null << 'EOF'
# カスタムcd関数を定義
cd() {
# ディレクトリに移動
builtin cd "$@"

# 特定のディレクトリに移動したときのメッセージ
case "$PWD" in
"/etc/apache2/sites-available")
echo "注意: .confファイルのバックアップを取ること"
;;
"/var/log")
echo "注意: ログファイルを定期的にチェックすること"
;;
*)
# 他のディレクトリの場合は何もしない
;;
esac
}
EOF

2. スクリプトに実行権限を付与します。

sudo chmod +x /etc/profile.d/cd.sh

3. スクリプトを反映

source /etc/profile.d/cd.sh

動作確認

設定が正しく反映されているか確認するために、特定のディレクトリに移動してみます。

cd /etc/apache2/sites-available

注意: .confファイルのバックアップを取ることと表示されることを確認します。

cd /var/log

注意: ログファイルを定期的にチェックすることと表示されることを確認します。

スクリプト修正ポイント

ディレクトリの追加:

新しいディレクトリに対してメッセージを表示させたい場合は、case文に新しい条件を追加します。

メッセージの変更:

各ディレクトリに対するメッセージを変更する場合は、echoコマンドの内容を編集します。

case "$PWD" in
"/new/directory/path")
echo "新しいディレクトリに移動しました"
;;
# 他のディレクトリの条件を追加
esac

これで、特定のディレクトリに移動したときにカスタムメッセージを表示する方法が設定できました。

Ubuntu24.04のauth.logから不正ログイン試行を確認するワンライナー。

Ubuntu 24.04でWebサーバを公開中。

/var/auth.logから、失敗したアクセス(認証に失敗したユーザー)を確認するためのワンライナーです。

  • コマンド
sudo awk '/Disconnected from invalid user/ {print $(NF-4)}' /var/log/auth.log | sort | uniq -c | sort -nr
  • 実行結果
43 root
36 ubuntu
24 user
20 test
13 admin
8 deploy
6 guest
6 ftpuser
5 oracle
5 hadoop
5 dev
5 debian
4 user1
4 sysadmin
4 samba
3 test1
3 mysql
3 max
3 kafka

と、アカウントごとに失敗したユーザーを表示してくれます。

成功したログインを日付時刻を付与した上で表示する

/var/auth.logから、ログインに成功したユーザーを調べます。

  • コマンド
sudo awk '/Accepted/ {split($1, date, "T"); split(date[2], time, "."); gsub("-", "/", date[1]); print date[1] " " substr(time[1], 1, 5) " " $7}' /var/log/auth.log | sort | uniq -c | sort -nr

日付は2024-11-25T16:21:14.772402+09:00のような形式から2024/11/25 14:38に修正しています。ログの形式が異なる場合は調整が必要です。

  • 実行結果
1 2024/11/25 14:38 hoge

これで、ログの視認性が高まりました。

体調復旧とボードゲーム。

今月の中旬、軽さと重さの中間のような病にかかり療養。

その間は症状がちょっと厳しく、家にいてもほぼ何もできない状態でした。

その症状が軽くなったため、勘を取り戻すかのようにボードゲームのソロプレイです。

例によってのアグリコラ。

アクションスペースのめくり運が悪かったものの、

  • 大鎌使い
  • 薪集め

により食料と木材¥の調達が楽になり、小進歩も材料調達の手間を軽減。

おかげで、60点とソロにしてはなかなかの得点です。

そして、ボドゲ棚の隙間に転がっていた『タッジー・マッジー』が見つかったのでルールを思い出しながらのソロプレイ。

1ラウンドごとにカードが増えていく強敵(見習い)に対して1点差の勝利。

運が強めですが、それだけに高得点がとれたのは耐えがたく。

体調復旧の兆しが見えました。

カメラケース、新調。

所用のついでに立ち寄ったワークマン。

手頃なスーツケース型のポシェットが売られていました。

見ての通り『ゆるキャン△』とのコラボ。取り敢えず何かに使えるだろうと思っていたら

今、メインで使っているカメラとよく使うレンズ二本がジャストフィット。

クロスも入りますし、マチが採られている上に開閉に制限があるので落とす心配もそれほどありません。

肩掛けストラップ付きなので持ち運びも大丈夫。

カメラの運搬問題が解決しました。

UbuntuサーバのSSHセキュリティ周りを強化。

SSHの不正アクセス対策としてfail2banを入れています。とはいえ、これがマシンリソースを喰うので根本的な設定を行いました。

環境

  • Ubuntu 24.04

作業の前に

SSHを前提としているサーバの場合は

  • 直接コンソールで切り戻しができるようにしておく
  • VPS等はスナップショットでリカバリができるようにする

ことが大前提です。

また、鍵交換での手順です。パスワード認証でこの設定を行うと接続ができなくなります。

さっくりとした手順

  1. SSHの設定ファイルのバックアップを取ります。
  2. 設定を変更します。
  3. 設定を反映し、確認を行います。

設定ファイルのバックアップ

sudo cp -pi /etc/ssh/sshd_config /path/to/backup/directory/sshd_config.$(date +%Y%m%d)

任意のバックアップディレクトリを指定します。

ファイルのバックアップ確認

diff -u /path/to/backup/directory/sshd_config.$(date +%Y%m%d) /etc/ssh/sshd_config

エラーがなければ(差分がなければ)バックアップできています。

sedによるファイル書き換え

echo -e "\nPermitRootLogin no\nPasswordAuthentication no\nAllowUsers user1" | sudo tee -a /etc/ssh/sshd_config

user1の部分は「実際にSSH接続を行うアカウント」を指定します。

user1 user2

のように、スペースで区切って複数のアカウントを指定することが可能です。

ファイル書き換え確認

diff -u /path/to/backup/directory/sshd_config.$(date +%Y%m%d) /etc/ssh/sshd_config

以下のような差分を確認します。

+PermitRootLogin no
+PasswordAuthentication no
+AllowUsers user1
  • rootのログインを禁止する
  • パスワード認証を禁止して鍵交換方式のミニする
  • user1のみアクセス可能にする

設定反映

SSH接続で修正をしている場合、別にターミナルクライアントを立ち上げておきます。

sudo systemctl restart ssh.service

設定反映確認

  1. 新たにターミナルクライアントを立ち上げて、指定したユーザーでログインできること
  2. 指定していないユーザーではログインできない
  3. rootでのログインはできない
  4. パスワード認証ができない

ことを確認します。また、

sudo reboot

を行い、サーバ再起動でも同じ挙動を確認します。

接続できない場合の切り戻し

スナップショットからイメージを復元します。

または、直接コンソールを開き、

sudo cp -pi /path/to/backup/directory/sshd_config.$(date +%Y%m%d) /etc/ssh/sshd_config

として設定を切り戻し、

sudo systemctl restart ssh.service

を実施します。

スープジャー導入後のフィードバック。

こちらで、改めてスープジャーを導入して、どのように変わったかのメモです。

弁当の内容が同じでもバリエーションが発生。

冷蔵庫にある材料の関係上、

同じようなメインの食材が並びます。それでも、スープジャーの中身を変えることで(上はミネストローネ、下は麻婆豆腐)味に変化が生まれます。

惣菜の再利用

個人的にはこっちがありがたいです。

作り置きしていた惣菜をスープの具に転用することで、冷蔵庫の整理が楽になりました。

運用する上での問題

「洗うのが面倒」に尽きます。カレーや味噌など、どうしてもにおいがつきやすい調味料を使うので、食後と寝る前の二度洗いが必要。

ただ、それさえクリアすれば暖かい汁物が食べられるというアドバンテージが大きいです。

Ubuntu 24.04にredmine 6.0.1をインストール。

以下の環境でインストールを確認しています。

  • Ubuntu 24.04

Ruby 3.1 / 3.2 / 3.3 が要件であるため、Ubuntu 22.04 / 20.04へのインストールは避けた方が無難です。

※ また、テーマやプラグインの仕様も大きく異なっているため、本格的な以降は筆者は様子見にしています。

本記事で実施すること

  1. Redmineを動かすためのパッケージがインストールできるように準備をします。
  2. Redmineを動かすためのパッケージ(Ruby/データベース/Webサービスなど)をインストールします。
  3. データベースやWebサービスの基礎設定を行います。
  4. Redmineの動作確認を行います。

想定している読者

  • 「Redmine」をUbuntuにインストールしてみたい
  • まずは動くところまで確認できればいい

前提

  • Ubuntuサーバの初期設定が終わった直後の状態を想定します。
  • DNSでドメインの名前が解決できることを前提としています
  • 環境は以下の通りです。
  • Apache系
  • MySQL
  • Ruby
    • 3.2 (Ubuntu 24.04)
  • また、パッケージ管理としてaptitudeを用いています。aptが好みの方はこちらに読み替えてください。

特記事項

  • 本手順ではRedmine 6.0.1をインストールします。
  • 本記事のredmineの格納ディレクトリは/home/www-data/redmineです。一般的なディレクトリ(/var/lib/redmine)と異なることを最初に注記します。
  • ほぼコピペだけで済むような構成にしていますが、一部、テキストエディタを使用する箇所があります。
  • また、自身の環境に合わせたりパスワードを設定する項目がありますのでそこは注意してください。

手順

Apacheのレポジトリを追加します。

sudo add-apt-repository ppa:ondrej/apache2

必要なパッケージをインストールします。

  • パッケージ全体のアップデート
sudo aptitude update
  • 必要なパッケージのインストール
sudo aptitude install build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libcurl4-openssl-dev libffi-dev mysql-server mysql-client apache2 apache2-dev libapr1-dev libaprutil1-dev imagemagick libmagick++-dev fonts-takao-pgothic subversion git ruby libruby ruby-dev libmysqlclient-dev

apacheの追加モジュールをインストールします。

sudo aptitude install libapache2-mod-passenger

apacheのバージョンを確認します。

apache2ctl -v

Apache/2.4.59以降(2024/11/21現在2.4.62)であることを確認します。2.4.58には、http/2プロトコルへの脆弱性があるので、左記のバージョンであることを確認します。

rubyのパッケージ管理(gem)を用いて必要なライブラリをインストールします。

sudo gem install bundler racc mysql2

「3 gems installed」が表示されればインストール成功です。

必要に応じてmysqlの初期設定を行います。

mysql_secure_installationによる初期設定を行います。

うまくいかない場合は以下を参照してください。

https://barrel.reisalin.com/books/bbf94/page/mysql-secure-installation

mysqlでDBとユーザーを設定します。

sudo mysql -u root -p

上記で設定した「mysqlのrootパスワード」を入力し、mysqlにログインします

CREATE DATABASE redmine character set utf8mb4;

DB "redmine" を作成します

CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'password';

ユーザ "redmine"を作成し、パスワードを設定します。
この'password'は任意のパスワードに変更してください

GRANT ALL ON redmine.* TO 'redmine'@'localhost';
flush privileges;
exit

設定したDBでログインできることを確認します。

mysql -u redmine -p
SHOW DATABASES;
exit
  • 配置ディレクトリ作成
sudo mkdir -p /home/www-data/redmine

自分の環境に合わせます。

  • 所有者変更
sudo chown -R www-data:www-data /home/www-data
  • Redmine 6.0.1を入手
sudo -u www-data svn co https://svn.redmine.org/redmine/branches/6.0-stable /home/www-data/redmine

Redmineのコンフィグを設定します。

  • サンプルファイルをコピーしてコンフィグを編集
sudo -u www-data cp -pi /home/www-data/redmine/config/database.yml.example /home/www-data/redmine/config/database.yml

/home/www-data/redmine/config/database.yml

このファイルを教義・信仰に従ったエディタで編集してください。

database.yml 編集内容

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  # rootからredmineに変更します
  password: "redmine用のパスワード"
  encoding: utf8mb4
# 本番環境(production)のみ設定を行います

Redmineのマイグレーションを行います。

  • Redmineのルートディレクトリに移動
cd /home/www-data/redmine/ && pwd

/home/www-data/redmine/ (Redmineを配置したディレクトリ)であることを確認します

  • bundle install
sudo -u www-data bundle install --without development test --path vendor/bundle
  • シークレットトークンの発行
sudo -u www-data bundle exec rake generate_secret_token
  • DBマイグレーション
sudo -u www-data RAILS_ENV=production bundle exec rake db:migrate
  • 日本語化
sudo -u www-data RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data

Apacheの設定ファイルを作成します。

【】を自分の作成したRedmineのサーバ名/ドメイン名に変更します。

cat <<- __EOF__ | sudo tee -a /etc/apache2/sites-available/redmine.conf
<VirtualHost *:80>
    ServerName 【hoge.example.com】
    # ServerNameは自身が設定したredmineに読み替えてください。
    DocumentRoot /home/www-data/redmine/public
    <Directory /home/www-data/redmine/public>
        Options -MultiViews
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
__EOF__

設定を反映させます。

  • ファイル作成確認
ls -l /etc/apache2/sites-available/redmine.conf
  • 設定ファイル有効化
sudo a2ensite redmine.conf
  • 初期サイト設定を無効化
sudo a2dissite 000-default.conf
sudo a2dissite default-ssl.conf
  • コンフィグファイル整合性確認
sudo apache2ctl configtest

Syntax OK を確認します

  • 設定反映前のapacheステータス確認
systemctl status apache2.service

active(running)を確認します

  • apache再起動
sudo systemctl restart apache2.service
  • 設定反映後のapacheステータス確認
systemctl status apache2.service

active(running)を確認します

Webページの表示を確認します。

http://設定したRedmineドメイン

でRedmineのトップページが表示されれば成功です。

直ちにadmin/adminでログインし、強固なパスワードを設定し直します。

Redmine 5.1対応版のknowledgebaseプラグインを検索できるように修正。

Redmine 5.1でも動くようになったknowlegebaseプラグイン。

なぜかその記事が検索で引っかからなかったので対処を行います。

環境

  • Ubuntu 24.04
  • Redmine 5.1
  • Apache 2.4
  • Ruby 3.2
  • knowlegebase 5.0.0

手順

参考:Redmine v5.1系で knowledgebaseプラグインの記事を検索する

Redmineのknowlegebaseディレクトリに移動します。

  • knowlegebaseのlibディレクトリに移動
cd /redmine/root/directory/plugins/plugins/redmine_knowledgebase/lib/ && pwd

/redmine/root/directory/は自分の環境に合わせます。

rbファイルのバックアップを取得します。

  • ファイルバックアップ
sudo cp -pi redmine_knowledgebase.rb /path/to/backup/directory/redmine_knowledgebase.rb

任意のバックアップディレクトリを指定します。

  • バックアップ確認
diff -u /path/to/backup/directory/redmine_knowledgebase.rb redmine_knowledgebase.rb

エラー(差分)がないことを確認します。

ファイルの編集を行います。

redmine_knowledgebase.rb

の、

base_url = File.dirname(__FILE__)
REQUIRED_FILES.each { |file| require(base_url + '/' + file) }

module RedmineKnowledgebase
end

の箇所を、

module RedmineKnowledgebase

  Redmine::Activity.register :kb_articles
  Redmine::Search.available_search_types << 'kb_articles'
end

となるように編集します。

  • 差分確認
diff -u /path/to/backup/directory/redmine_knowledgebase.rb redmine_knowledgebase.rb
 module RedmineKnowledgebase
+
+  Redmine::Activity.register :kb_articles
+  Redmine::Search.available_search_types << 'kb_articles'
 end

設定の反映と修正確認を行います。

  • Webサービス再起動
sudo systemctl restart apache2.service
  • Webサービス再起動確認
systemctl status apache2.service

active(running)を確認します。

  • 動作確認

修正を行ったRedmineにアクセスし、knowlegebaseへのアクセス権があるユーザーでログインします。

Redmineの検索機能で、knowledgebaseプラグインの記事が検索できていれば設定完了です。

Page 1 of 3

Powered by WordPress & Theme by Anders Norén