カテゴリー: ガジェット Page 11 of 85

growiのプラグイン追加。

growiはv6以降よりプラグインを簡単にインストールできる機能が備わっています。

今回、それを用いてテーブル(表)の視認性を向上させました。

growiに管理者権限でログイン後、プラグインインストーラーで

https://github.com/weseek/growi-plugin-datatables

を入力後に「インストール」。インストール後、念のため、growiを再起動します。

導入後、任意のWikiページのテーブルに「Enable Data Table」ボタンが表示されるので、こちらをクリック。

  • 検索欄
  • 列の表示/非表示
  • 並べ替え

などが表示され、

細かい表示もしやすくなっています。

思った以上にかゆいところに手が届く機能なので、growiを使っている方にはおすすめです。

温泉旅行で役立ったもの。

今年の最初にも訪れた温泉旅行。

そのときの反省を生かして携行品をブラッシュアップさせました。そして、その結果が出た形です。

まずはLinuxをインストールした中古のLet's note。

今年初め、この宿で過ごしたときChromebookでは操作感が物足りなかったというのが、これを買った直接的な要因でした。

  • より打ちやすいキーボード
  • 解像度の高い画面
  • 抜群の操作感

は、確かな満足感。

携帯性も今までと変わらず。スーツケースのモバイルポケットにしっかり入ります。

また、モバイルスピーカーも役立ちました。

部屋の眼下に渓流が流れており、隣の部屋の物音どころかテレビの音も聞き取れないという状況でしたので、ピンポイントで音が届く機器はありがたい存在でした。

そして、新たに持って行ったランチバッグも活躍しました。

飲み物やお菓子などの冷たいものを持ち歩く機会は存外に多く、お土産を運ぶときにも活躍。

フィードバックがしっかり活きた旅行でした。

apacheで特定のユーザーエージェントからのアクセスを拒否。

概要

自分のサーバのアクセスログを見たら

"GET /picture.php?/6797/category/73 HTTP/1.1" 200 14394 "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"

と、クローラーが大量にアクセスしてきました。robots.txtも意に介さない悪名高いbotのようなので、このアクセスを、サーバで拒否します。

環境

  • Ubuntu 20.04
  • Apache 2.4 (aptでインストールしたため、ディレクトリは/etc/apache2配下にあります。

また、バーチャルサイトによる複数のサイトを運用しているので、そのうちの1つだけを弾きます。

さっくりとした手順

  1. Apacheのバーチャルサイトの設定ファイルのバックアップを取ります。
  2. 設定ファイルを追記します。
  3. 設定を反映します。
  4. 拒否されていることを確認します。

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

  • ディレクトリ移動
cd /etc/apache2/sites-available && pwd
  • ファイルバックアップ
sudo cp -pi hoge.conf /path/to/backup/directory/hoge.conf.$(date +%Y%m%d)

設定を行いたい自分の設定ファイルを、任意のバックアップディレクトリにバックアップします。

  • バックアップ確認
diff -u /path/to/backup/directory/hoge.conf.$(date +%Y%m%d) hoge.conf

差分が無ければ(エラーがなければ)バックアップは成功です。

設定ファイル追記

上述した設定ファイルを教義・進行に則ったエディタで編集します。(要管理者権限)

  • 追記例
    DocumentRoot /var/www/html/hoge
    <Directory /var/www/html/hoge>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
     ## GoogleBOTを拒否(正常bot不正bot両方拒否)
     SetEnvIfNoCase User-Agent "Googlebot" bot
     ## Facebookのクローラーを拒否
     SetEnvIfNoCase User-Agent "facebookexternalhit/1.1" fb_bot
     <RequireAll>
      Require all granted
      Require not env bot
      Require not env fb_bot
     </RequireAll>

/var/www/html/hogeは自分の環境に合わせます。

※ついでにGoogleBOTも拒否します。

  • 差分確認
diff -u /path/to/backup/directory/hoge.conf.$(date +%Y%m%d) hoge.conf
  • 差分例
-        Require all granted
+     ## GoogleBOTを拒否(正常bot不正bot両方拒否)
+     SetEnvIfNoCase User-Agent "Googlebot" bot
+     ## Facebookのクローラーを拒否
+     SetEnvIfNoCase User-Agent "facebookexternalhit/1.1" fb_bot
+     <RequireAll>
+      Require all granted
+      Require not env bot
+      Require not env fb_bot
+     </RequireAll>

設定反映

  • 構文確認
sudo apache2ctl configtest

Syntax OKを確認します。

  • Apache再起動
sudo systemctl restart apache2.service
  • Apache再起動確認
systemctl status apache2.service

active(running)を確認します。

設定反映確認

設定を行ったアクセスログを開きます。

403 3772 "-" "facebookexternalhit/1.1 

のように、ステータスコードが「403」になっていれば、アクセス拒否されています。

思考中、思考中。(piwigoとmatomoの連携)

やりたいこと

フォトアルバムシステム、piwigoをシステム解析システム、matomoに置きたいのですが、どうもうまくいかず。

「ここまでやった」というメモのために残します。

前提

  • 自前でアクセス解析:matomoとフォトアルバム:piwigoをインストール済み。
  • 両者はそれぞれインターネット通信が可能。(相互に見えている)

やったこと

piwigoサイトに管理者権限でログインし、Add< head > Elementをインストールします。

有効にして、設定します。

エレメントの所に、matomoで提示されたトラッキングコードを埋め込みます。

結果

piwigo側のサイトのソース表示で、matomoのトラッキングコードが表示されることを確認しました。

ですが、その後、何回かアクセスを繰り返しているにもかかわらずうまくカウントされません。

  • wordpress : プラグインにより連携可能
  • redmine: view customize pluginで設定可能

まで行いましたが、うまい手は見つからず。

状況を見ながらもう少し続けてみます。

Nextcloud・アプリログのローテーション。

apache/nginxなどと連携した場合のアクセスログではなく、アプリそのもののログローテーションです。

ログの位置

/path/to/nextcloud/directory/data

例えば、 `/var/www/html/nextloud/data`などを示します。

ローテーションファイル

  • /etc/logrotate.d/nextcloud2

を、協議・進行に沿ったエディタを用いて以下のように作成します。

/var/www/html/nextcloud/data/*.log {
    daily
    dateext
    dateformat -%Y%m%d
    rotate 10
    missingok
    notifempty
    su www-data www-data
    create 640 www-data www-data
    sharedscripts
    compress
    delaycompress
        postrotate
                if invoke-rc.d apache2 status > /dev/null 2>&1; then \
                invoke-rc.d apache2 reload > /dev/null 2>&1; \
                 fi;
        endscript
}

ログの位置やローテーションサイクルなどは自分の環境に合わせてください。

sudo logrotate -v /etc/logrotate.d/nextcloud2

でエラーがなければ、アプロログのローテーションは完了です。

推し色と漢字ニブ。

丸善の洋書コーナーにて

  • ハリー・ポッター:スリザリンの弁当バッグ
  • ハリー・ポッター:スリザリンのモバイルポシェット

を入手した後、万年筆コーナーで発見。

LAMY Safari 2024年の新色。

それだけではなく、

アジア系言語に合わせて

  • とめる
  • はらう

に特化したものだとか。確かに、独特の心地よい書き味が楽しめました。

何より、先月から統一し始めたスリザリンカラーとしっかり合致するのが最高でした。

ミニポシェット追加。

スリザリンの弁当バッグに次いで購入。

ミニポシェットです。

このバッグと同じところが作ったものなので、手に取ったときから気体で一杯でした。

人造皮革ながらも質感は十分。スリザリンのロゴもキレイに遇われています。

上述したリュックととも親和性バッチリ。伸ばしてアタッチメントとくくりつけ

浮いているファスナーの隙間から紐が取り出せます。

ますます、携行品が統一されました。

Redmine5.1のdmsfプラグインの脆弱性対応。(プラグインアップグレード)

概要

Redmineの文書管理プラグイン、dmsfに脆弱性が発表されたので、その対応を行います。

脆弱性概要

https://jvndb.jvn.jp/ja/contents/2024/JVNDB-2024-000055.html

当該プラグインを有効にしている場合、Redmineにログインしているユーザーによって、Redmineの実行権限で可能な範囲で、サーバー上の任意のファイルを取得されたり削除されたりする可能性があります。

脆弱性対象

バージョン3.1.4より前のバージョン

筆者環境

  • Ubuntu 22.04
  • Apache2.4
  • MySQL 8.0.3
  • Redmine 5.1
  • dmsf 3.1.3

注意事項

脆弱性に対応したバージョンは、2024年5月現在、Redmine 4.2には対応していません。

筆者のようにRedmine 4.2を単独ユーザーで運用していない限りは、以下のオプションを強く推奨します。

  • Redmine及びOS全体のバージョンアップを図る。
  • 本プラグインを無効化する。

さっくりとはならない手順

  1. DBのバックアップ
  2. Webサービス停止
  3. 既存プラグインディレクトリの退避
  4. git cloneによるプラグイン入手
  5. DBマイグレーション
  6. Webサービス起動
  7. プラグインアップグレード確認

DBのバックアップを行います。

  • 作業用ディレクトリに移動
cd /hoge && pwd

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

  • DBのバックアップ取得
 mysqldump -h localhost -u redmine -p --no-tablespaces --single-transaction redmine > redmine_backup.$(date +%Y%m%d).sql
  1. -u ユーザ オプション db名です。自分の環境に合わせます。
  2. パスワードはDBのユーザパスワードです。

Apacheの停止を行います。

※ 利用者への注意喚起も行ってください。

  • 停止前のステータス確認
systemctl status apache2.service

active (running)を確認します。

  • Apache停止
sudo systemctl stop apache2.service
  • 停止後のステータス確認
systemctl status apache2.service

inactive (dead)を確認します。

既存プラグインを退避します。

  • redmineプラグインディレクトリに移動
cd /redmine/root/directory/plugins && pwd

ディレクトリは自分の環境に合わせます。

  • dmsfプラグイン退避
sudo mv redmine_dmsf /path/to/backup/directory/redmine_dmsf.$(date +%Y%m%d)

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

  • dmsfプラグイン退避確認
ls -ld /path/to/backup/directory/redmine_dmsf.$(date +%Y%m%d)

ディレクトリがあることを確認します。

プラグインをgit cloneします。

  • git clone
sudo -u www-data git clone -b v3.1.4 https://github.com/danmunn/redmine_dmsf

脆弱性に対応したv3.1.4を指定します。

  • clone確認
ls -ld redmine_dmsf

ディレクトリがあることを確認します。

プラグインのアップグレードを行います。

  • Redmineのルートディレクトリに移動
cd /redmine/root/directory && pwd

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

  • bundle install
sudo -u www-data bundle install
  • DBマイグレーション
sudo -u www-data bundle exec rake redmine:plugins:migrate RAILS_ENV=production

Webサービスを再開します。

  • 再開前のステータス確認
systemctl status apache2.service

inactive (dead)を確認します。

  • Apache再開
sudo systemctl start apache2.service
  • 停止後のステータス確認
systemctl status apache2.service

active (running)を確認します。

バージョンアップを確認します。

  1. Redmineに管理者権限でログインします。
  2. 管理>プラグインに進みます。
  3. DMSFプラグインが3.1.4になっていることを確認します。
  4. 既存の動作(チケットの発行/編集など)に問題が無いことを確認します。

おまけ:切り戻し手順

このプラグイン、アップグレードの失敗や手順ミスで軽くRedmine全体が機能不全に陥ります。そのため、切り戻し手順を記しておきます。

通常の切り戻し

ディレクトリ移動

  • Redmineのルートディレクトリに移動
cd /redmine/root/directory && pwd

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

プラグインアンインストール

sudo -u www-data rake redmine:plugins:migrate NAME=redmine_dmsf VERSION=0 RAILS_ENV=production

ディレクトリ削除

sudo rm plugins/redmine_dmsf -Rf

Webサービス再起動

sudo systemctl restart apache2.service

それでもダメだった切り戻し(DBリストア)

cd /hoge
# mysqldumpを行ったディレクトリ

mysql -h localhost -u redmine -p redmine < redmine_backup.$(date +%Y%m%d).sql
# パスワードはredmineインストール時に設定したDBユーザのものです

sudo systemctl restart apache2.service

UbuntuサーバのSwap処理頻度を変更。

Ubuntuサーバを運用中、実メモリに余裕があるにもかかわらずスワップアウトが出ている事象を確認。

これを変更してみます。

環境

  • Ubuntu 20.04
  • メモリ4GB
  • スワップ6GB

事象と設定変更

現状確認

  • メモリ使用量の確認
free -h
  • 自分の環境の確認
              total        used        free      shared  buff/cache   available
Mem:          3.8Gi       1.8Gi       694Mi       176Mi       1.3Gi       1.6Gi
Swap:         6.0Gi       6.0Mi       6.0Gi
  • swappiness確認
cat /proc/sys/vm/swappiness

60を確認しました。

設定変更

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

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

  • バックアップ確認
diff -u /path/to/backup/directory/systtl.conf.$(date +%Y%m%d) /etc/sysctl.conf

差分がなければ(エラーなく実行できれば)バックアップ成功です。

  • sedによるファイル追記
sudo sed -i '$ a\vm.swappiness = 10' /etc/sysctl.conf

上記の参考サイトを元に、swappinessを10に指定します

  • 設定変更確認
diff -u /path/to/backup/directory/systtl.conf.$(date +%Y%m%d) /etc/sysctl.conf
  • 差分
+vm.swappiness = 10
  • 設定反映
sudo sysctl -p

vm.swappiness = 10と結果が返ってくることを確認します。

設定反映確認

cat /proc/sys/vm/swappiness

10に変更されていることを確認します。

まずはこの値で様子を見てみようと思います。

Redmineのプラグインをインストールするときに使うコマンド

概要

Redmineのプラグインを導入する際の基本的な手順をメモしておきます。

前提

こちらは筆者のメイン環境です。各自、自分の環境に合わせてください。

  • 既にRedmineがインストールされている状態
  • Ubuntu系OS
  • WebサーバとしてApache2を利用
  • Ruby on RailsでApacheと連携
  • RedmineはApacheの実行ユーザ(www-data)

インストールの基本

  1. A.プラグインを/redmine/root/directory/plugins配下に設置(必須)
  2. B.依存関係があるrubyプログラムをインストール(オプション)
  3. C.DBマイグレーション(オプション)
  4. D.Webサービス再起動(必須)
  5. E:動作確認(必須)

A-1:Zipファイルをダウンロードする場合の手順

A-1.1:作業用ディレクトリに移動します。

cd /hoge

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

A-1.2:ZIPファイルを入手します。

  • curl
  • wget
  • scpなどで転送
  • デスクトップを兼ねている場合はダウンロード

など、任意の手を用います。

A-1.3:ファイルを解凍します。

unzip plugin.zip

A-1.4:解凍されたファイル群のディレクトリの所有者を変更します。

sudo chown -R www-data:www-data plugin-hoge

バージョン番号が付与されているパターンが多いです

A-1.5:Redmineのプラグインディレクトリに配置します。

sudo mv plugin-hoge /redmine/root/directory/plugins/plugin

配置する際に、バージョン名などを消しておきます。

→ ここを行ったらB以降に進みます。


A-2:git cloneする場合の手順

A-2.1:Redmineのプラグインディレクトリに移動します。

cd /redmine/root/directory/plugins && pwd

自分の環境に合わせます。 (例:/var/lib/redmine)
筆者環境は/home/www-data/redmineです

A-2.2:git cloneを行います。

sudo -u www-data git clone git_repository 

大概はgithubのURLをそのまま(https://込み)です。

→ ここを行ったらB以降に進みます。


B: 依存関係があるrubyプログラムをインストールする場合の手順(オプション)

B-1: redmineのrootディレクトリに移動します。

cd /redmine/root/directory/ && pwd

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

B-2. Bundle installを行います。

sudo -u www-data bundle install

Bundle complete!と出たらOKです。

→ ここを行ったらC以降に進みます。


B-1: redmineのrootディレクトリに移動します。

cd /redmine/root/directory/ && pwd

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

C: DBマイグレーションを行う場合の手順(オプション)

C-1: redmineのrootディレクトリに移動します。

cd /redmine/root/directory/ && pwd

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

C-2: DBのマイグレーションを行います。

sudo -u www-data bundle exec rake redmine:plugins:migrate RAILS_ENV=production

エラーが出てこなければOKです。

→ ここを行ったらD以降に進みます。


D:Webサービスの再起動

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

active (running)を確認します。


E: 動作確認

  1. Redmineに管理者権限でログインします。
  2. 管理>プラグインに進みます。
  3. インストールしたプラグインがあることを確認します。
  4. 他の機能が動くことを確認します。

Page 11 of 85

Powered by WordPress & Theme by Anders Norén