話はこちら。

QNAPを新調し

ノートPCをNextcloudのフロントエンドとして流用。ここまでは順調でしたが、順調しすぎたために見放していた感があります。

「公開サーバばかり見ていた」

発端はデスクトップに通知された「QNAPのファームアップ」がデスクトップ上に通知されたことにあります。

この作業はWeb管理画面から「ファームウェアの更新」を行うというシンプルな動作ではありますが、

  1. 圧倒的多数のマルウェアは、これらストレージを狙うから定期的なファームアップは必須である。
  2. そもそもファイルサーバという生命線のアップデートである。
  3. 必然的にファイルに触れない期間が発生する。
  4. おまけにQNAPは長期稼働を前提として作られている反面、停止と起動はとても時間がかかる

ため「大好きな人を探す方が難しい」状態です。

なので、空き時間ができたことを利用して

  • 自宅サーバのカーネルアップデート
  • Nextcloudのバージョンアップ

を行いました。

気づいた異変

動作確認のためにログを見ようとしたところ、

/var/log/nextcloud

に移動すると異変がありました。

ls -la

すると

nextcloud.log
nextcloud_access.log
nextcloud_error.log

しかありません。「あれ?」状態です。『黄金の風』でジョルノ言うところの

「いや…… そんなはずはない……」

が発生しました。

「ログローテーションされていない」

(この段階で既にファイルサーバのファームアップは完了していますが)

数秒ほど思考停止した後、状況の確認に取りかかります。

取り急ぎ、

/etc/logrotate.d/nextcloud

を開きました。

犯人判明

以下のような状態だったのです。

/var/log/nextccloud/*.log

よく見ると(よく見なくても)

nextccloud

と描かれていました。

「h」でも「;」でもない。cが一つ多い。 たった一文字のタイポが「今までログがローテーションされず、ログの肥大化を招いた」真犯人でした。

「いや…… そんなはずはない……」

が発生しました。(二度目)

早速修正し、自体は解消。今度はOKとばかりに

sudo logrotate -f /etc/logrotate.d/nextcloud

を実行し、ログローテーションを確認しました。

なぜ気付かなかったか

では、なぜこれに気づかなかったのか?

理由は技術ではありません。

  • 自宅だから
  • 外部公開していないから
  • エラーが出ないから
  • ログは書き込まれ続けるから

つまり

「動いているように見えていた」

という厳然たる事実と

「前はしっかり動かしていたから手なりでOK」という慢心。

それ以上に「物理的に外的や脆弱性を狙われる心配はない」ということでいつもなら入念に行う事前事後のチェックが抜けていました。

本件で助かったこと

「自宅で失敗できたから自分が『やらかした』で思うだけで済んだ」

に過ぎません。これが仕事なら

  • ログが肥大化
  • ディスク枯渇
  • サービス停止
  • インシデント報告
  • 発生時の会議

になります。逆に言えば「こういう状況が発生しようがない」作業であるが故に招いた悲劇です。

チェック者が自分しかいないことの歪み

真っ当なシステム開発(チームワーク)であれば、この事象が起きなかったでしょう。

nextccloud

という間の抜けたミスは単体テスト、システム統合テスト、リリース前チェック、運用などで一発で分かります。

しかし、チェック者は私。運用者も私です。誰にも気付かれず居座り続けます。

大事故になった原因は

技術的に難しい問題

ではなく

「当然動いている」という思い込み

でした。

つまり、「最も危険なのは設定ファイルではなく、『きっと大丈夫だろう』という自分自身の前提だった」という結論。

今回の教訓は

  • 設定ファイルを書いたら configtest
  • サービスを再起動したら status
  • logrotateを書いたら sudo logrotate -f
  • cronを書いたら即時実行
  • バックアップを書いたら実際に復元
  • 「動いている」は証拠にならない。期待した副作用が起きていることまで確認する

という、運用者としての当然の心がけは「プライベートこそ」重要だと思いました。何せプライベートのバックアップミスや吹っ飛ばしは誰かに責任転嫁できません。

誰かのせいにしたいが自分の顔しか思い浮かばない
I'm casting around in my head for someone to blame and it's just me, keeps coming back at me.

です。

『バキ 最凶死刑囚編』

で柳龍光が言う

一つ質問をしよう
この地球上で最も強力な毒ガスとは――何かワカるかね?
答えは酸素

ワカったときにはもう遅い

という、「理解った」時点でのバイアスに陥ったという読者にしてみれば笑い話。私にとっては苦い話となりました。