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

タイムタグ、ライフログ。

Twitterの話題が元で:

英国に滞在していたときの記憶が蘇りました。なので、AWSにて管理しているPiwigoの写真を更新です。

ロンドン

https://hideout.reisalin.com/index.php?/category/7

こちらはテムズ川のクルーズに絞ったもの。

当時は晴れた日ばかりを選んで撮影したはずですが、こうしてみるとくすんだ空の色です。

コーンウォール

https://hideout.reisalin.com/index.php?/category/1

願わくば、6~7月にもう一度行きたい場所。自分にとって初めて目にする大西洋にも感動しました。

カンタベリー

https://hideout.reisalin.com/index.php?/category/12

ここも暮らしていた場所なので、感慨深いです。

改めて:写真というのは自分の思い出をタグ付けするものであり、明確な記録(ログ)であると思いました。

Mod_Securityが検知したIPアドレスの自動遮断スクリプト・修正。

以下のスクリプトを修正しました。

このスクリプトの主な動き

  1. Mod_Securityが検知したエラーログからIPアドレスのみを抜き出す。
  2. 重複を排除した上でsuscpicious_ip.YYYYMMDD形式で保存。
  3. 全てのsuscpicious_ip.YYYYMMDDを統合する。
  4. ここからnegativelist.txtを作成する。
  5. negativelist.txtの中に疑陽性(自身のアクセス元)のIPを排除する。
  6. Webサービスを再起動する。

そうして、「一度でもMod_Securityが疑わしいと検知すれば、次回以降のアクセスを許さない」という、言わば“ONE OUTS”システムを採用しています。

この可読性を高めました。

スクリプトが動く前提

  • ApacheとMod_Securityを運用している。
  • 以下のように、「negativelist.txt」に記録されたIP全てをブロックするようにしている。

apacheバーチャルサイト設定の抜粋

# Mod Security
SecRuleEngine On
## ModSecurity有効化
SecRequestBodyInMemoryLimit 524288000
SecRequestBodyLimit 524288000
## ファイルのアップロードをできるようにします。
    # ネガティブリスト
    SecRule REMOTE_ADDR "@pmFromFile negativelist.txt" "phase:1,id:2,deny,msg:'Negativelisted IP address'"

修正したスクリプト

※ 教義・信仰に沿ったエディタで記載します。

  • negativelist.sh
#!/bin/bash
# このシェルスクリプトは、変数で定義したエラーログからIPアドレスを抽出し、
# suspicious_ipディレクトリに保存し、その後、特定のIPアドレスを削除して
# /etc/apache2/sites-available/negativelist.txtに書き込むものです。

# 読み込むログのディレクトリとファイル名を変数指定
log_dir="/var/lib/redmine/log"
log_file="error.log"

# 除外するIPアドレスをファイルで指定
exclude_ips_file="/path/to/exclude_ips.txt"

# IPアドレスを抽出して重複を排除し、ファイルに保存
cd "$log_dir"
awk 'match($0,/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/) { print substr($0, RSTART, RLENGTH) }' "$log_file" | sort | uniq > "$log_dir/suspicious_ip/suspicious_ip.$(date +%Y%m%d)"
chown www-data:www-data "$log_dir/suspicious_ip/suspicious_ip.$(date +%Y%m%d)"

# 過去のIPアドレスを読み込んで重複を排除し、ファイルに保存
cat "$log_dir/suspicious_ip/suspicious_ip."2* | sort | uniq > "$log_dir/suspicious_ip_all.txt"
chown www-data:www-data "$log_dir/suspicious_ip_all.txt"

# 新たにリストに書き起こす
cat "$log_dir/suspicious_ip_all.txt" > /etc/apache2/sites-available/negativelist.txt

# 除外するIPアドレスをファイルから削除
while IFS= read -r exclude_ip; do
  sed -i "/$exclude_ip/d" /etc/apache2/sites-available/negativelist.txt
done < "$exclude_ips_file"

# Apacheを再起動
systemctl restart apache2.service
  • 除外するIPアドレスリスト

※ 教義・信仰に沿ったエディタで作成します。

  • exclude_ips.txt 記載例
192.168.0.1
172.28.0.1
# 一行ずつ記載

記載後の設定

  • スクリプトの所有者変更
sudo chown root:root negativelist.sh
  • スクリプトの実行権付与
sudo chmod 744 negativelist.sh
  • cron登録
sudo crontab -e -u root
  • cron内容
0 6 * * * /home/manualmaton/bin/negativelist.sh

これによって、スクリプトを変数化。他のサーバへの転用を行いやすくしました。

スマートウォッチ、バンドの追加。

5月の連休最終日に購入したスマートウォッチ。

備え付けのシリコンバンドで蒸れてかぶれてしまうという問題点は替えのバンドで解決。懸念事項だった「かぶれ」も特に見られなかったので、先日、買い足しました。

最初に買った一本がボディの色に合わせた明るい緑だったので、今回は紺です。

購入したナイロンバンドがQuick Releaseに対応しているので、外すのはピンをずらすだけでした。

装着もその逆になります。

全体的な見た目なこの通り。明るい色から落ち着いた色へと変わります。

先日の東京都心でのサイクリングで、自転車でどの道をどれぐらい走ったかまで記録することも検証できたので、これはできる限り使っていこうと思います。

iPad miniカバー差し替え。

利用しているカバーがへたれてきたので、差し替えです。

左側が今まで使ってきたもの。周囲の塗装ははげてきており、折りたたみのスタンドもへたれるようになりました。

そこで、Amazonで適当なノーブランド品を注文。(右の画像)

縁が明るいラベンダー色。Apple Pencilも問題なく充電状態で収納可能です。

裏面はアクリル仕様となっていて、金属面の光沢がより映えるようになっていました。

Let’s Encryptの証明書をRSA方式で更新。

以前ご案内した、Let's Encryptのデフォルト暗号化形式がデフォルトでECDSA方式に変更されたという話。

ただ、サーバの環境によっては、この暗号化形式をサポートしていない事があります。(ワイルドカード証明書を様々なサーバに適用するケースでありがちです)
本来ならばサーバそのもののバージョンアップを図るべきでしょうが、運用によってはままならず。

そんなときにLet's Encryptの暗号化を従来のRSA方式に変える方法をメモしておきます。

前提

  • Let's EncryptでSSLを利用している。
  • 適用するサーバがECDSA方式の暗号化形式に対応していない。

作業手順

Let's Encrypt(Certbot)サーバで実施します。

ここでは、

  • hoge.example.com ドメインのワイルドカード証明書を取得し
  • 有効期限前にhoge@example.com宛にメールを送付する

として手順を示します。

証明書更新

sudo certbot certonly --manual -d\
*.hoge.example.com\
 -m hoge@example.com\
 --agree-tos --manual-public-ip-logging-ok\
 --key-type rsa --preferred-challenges dns-01
# ディレクトリやメールアドレスは自身の環境に合わせます。
# --key-type rsa を明示します

この後、DNSでTXTレコードを設定するよう求められるので、それに従いDNSの所有権を確認します。

確認されたら証明書は更新されます。

証明書と鍵の整合性確認

openssl x509 -pubkey -in /etc/letsencrypt/live/hoge.example.com/cert.pem -noout | openssl md5
(stdin)= ハッシュ値
# SSL証明書ファイル

openssl pkey -pubout -in /etc/letsencrypt/live/hoge.example.com/pprivkey.pem | openssl md5
(stdin)= ハッシュ値
# 秘密鍵ファイル

## Let's Encryptで指定されたディレクトリや証明書・秘密鍵を指定してください
## 2つのハッシュ値が合っていれば証明書と秘密鍵の整合性は取れています

証明書の鍵方式確認

openssl rsa -text -noout -in /etc/letsencrypt/live/hoge.example.com/pprivkey.pem
# 正常に表示されればRSA方式で暗号化されています

後は、指定したディレクトリの証明書や秘密鍵を適切に他サーバに適用します。

メモのテンプレ化。(メモポン導入)

付箋やメモ用紙を伝言メモなどに変える文具「メモポン」。そのガンダム版が出るというリリースを見たのが今年(2023年)1月の話。

それが先日、到着しました。

パッケージ外観&開封

パッケージとしてはこの形。一般的な付箋の大きさに合わせているだけあって、インパクトはかなりのものです。

外側の梱包を外していくと、広くて大きいスタンプが出てきました。

印影

インクは既に充填された状態なので、さっそく、手帳に押してみます。

インクの乗りは予想以上。スタンプと言うより「印刷」というのがイメージに近いです。

これだけの大きさの「許可」と「否」はプライベートで使うに留めておいたほうが賢明です。

使い勝手が高いのがハロのチェックリスト。これなら手帳でのToDoを瞬時に呼び出せるという形。

ここ数年「書く」「記録する」が完全に日課になったので、メモのテンプレを促進する道具はありがたいです。

Redmineの不正アクセス対策。(ufwと二段階認証)

概要

AWS Lightsailに構築しているRedmine。 不審なアクセスがあったので対応を行いました。

アクセスの内容

とてもシンプルに、チケットの新規発行画面に何回もアクセスしているというもの。

正規のリクエストなのでWAFでブロックされません。(解析システム:matomoで検知した次第です)

そもそも自分しかアカウントを用意していないため、この時点で不正アクセスの兆候だと判断。以下、対処を行います。

ufwでの処理

  • ufwによるブロック
sudo ufw deny from IPアドレス
# より確実を期すためにIPアドレスのネットワークアドレスを指定しました (xxx.xxx.xxx.0/24)
  • 設定確認
sudo ufw status numbered
# Anywhere DENY IN 上記で指定したIP/ネットワークアドレスを確認します
  • 設定反映
sudo ufw reload
# ファイアウォールを再読込しましたと出れば反映完了です

これでひとまず不審なアクセス元は遮断。

Redmineログイン強化

筆者が用いているRedmine4.2は二段階認証が標準で備わっていますので、それを有効化します。

  1. Redmineに管理者権限でログインします。
  2. 万一に備えて別のブラウザでもログインしっぱなしにします。
  3. 管理>設定>認証に移動します。
  4. 二段階認証を「必須」にして保存します。

その後、(別ブラウザでログインしたまま)Redmineにログイン。

後は二段階認証プロセス(Google認証システムを用いました)で指示に従ってQRコードを読み込み、生成されたコードを読み込むだけ。

ひとまず、これでID/PWによるログインに加えて認証システムの二段階で不正アクセスの被害を抑えます。

視認性、携帯性。(百均グッズによる医薬部外品の携帯)

話はこの写真を撮りに自転車に乗ったところから遡ります。

木々が茂るところに居たせいで蚊の餌食となりました。これに関しては予想し得たことへの備えがないと言うことで

  • 虫除けスプレー
  • 虫刺されの薬

などを次から携帯しようという方針になったものの、

  • 一つ一つがバッグに紛れてしまう
  • 他の荷物などで圧迫された場合に破損して薬剤が漏れる

等の懸念事項がありました。

そこで用意したのがこの、百均で売られているドリンクボトル。ネットの記事で、これに災害用品を入れるというのが脳裏をよぎったので試してみます。

まずはこれに入りそうな虫除け対策を選びます。

後は詰めていくだけ。

結果、こうなりました。

一番使うであろう虫除けスプレーはすぐに取り出せるようにして 処置ができるかゆみ対策は奥(底)の方に。

これなら、携帯性もバッチリですし、何が入っているかすぐに分かります。構造上(ある程度の)防水性も確保できるのもポイント。

何よりもパッケージ化されていることで準備の手間を大きく省けます。

growi v6.0.15 → v6.1.0へのバージョンアップ後の処理。

結論から始まる概要

「リリースノートはよく読んでおくこと」

です。

Growi v6.1.0の変更点

バージョンアップ後、今まで表示されていた画像がうまく表示されない問題点がありました。

どうしたものかと更新情報を読み返したら

https://docs.growi.org/ja/admin-guide/upgrading/61x.html#%E7%AE%A1%E7%90%86%E8%80%85%E5%90%91%E3%81%91

と思いっきり書かれておりました。

では、GrowiをインストールしたLinuxサーバで対処を行います。

前提

  • Growi v6.1.0にバージョンアップした
  • 添付ファイルをローカルに保存

が作業の前提です。また、

  • Ubuntu 20.04
  • ディレクトリは'/opt/growi'

となっています。

実施した手順

Growiインストールディレクトリに移動

cd /opt/growi/packages/app/public/uploads && pwd
# 上記ディレクトリにいることを確認します。

添付ファイルディレクトリを移動

sudo mv attachment /opt/growi/apps/app/public/uploads/
sudo mv user /opt/growi/apps/app/public/uploads/

移動確認

cd /opt/growi/apps/app/public/uploads/ && pwd
# 上記ディレクトリにいることを確認します。

ls -l attachment
ls -l user
# 移動したディレクトリがあることを確認します。

作業後の確認

バージョンアップ前に投稿した添付ファイルがある記事で、ファイルが表示されていることを確認しました。

スマートウォッチ、バンドの交換。

この記事から10日ほど――

装着して問題が発覚しました。

装着後の異変

まず、本体のシリコンバンドに汚れが目立つようになったこと。何よりもかぶれが発生してしまいました。

同じような悩みを持っている方は結構いらっしゃるようで(現に「シリコンバンド かぶれ」でGarminがトップに躍り出るほどです)

解決策:ナイロンバンド

そこで急遽注文したのはこのナイロンバンド。Instinct 2sのバンド幅「20mm」に沿ったものを購入しました。

バンドの取り外しは広げたクリップの先を用いました。

そして、先のバンドと付け替え。

付け替えは割とスムーズに行うことができました。

  • シリコンと違って伸びないので調節に難あり
  • その分、ベルクロによる無段階の微調整が可能
  • 軽い

のが最初の印象。

生活習慣を改めるため購入を決意したスマートウォッチ。長く使い続けるための工夫を行いました。

Page 29 of 85

Powered by WordPress & Theme by Anders Norén