サーバー運用日誌 2026-06-11

Uncategorized

概要

本日は管理下の全サーバーを対象にlogwatchパトロールを実施した。複数サーバーで共通する構造的な問題を発見・修正し、スパム対策を大幅に強化した一日となった。


サマリーテーブル

項目内容
対象サーバーcPanelサーバー×5台 + DirectAdminサーバー×1台
実施日2026年6月11日(logwatch対象日)
発見した問題logwatch tmpdir残留、スパムフィルタ設定ミス、cronゴミファイル、.bak二重実行、セキュリティ攻撃試行
修正アカウント数13アカウント(cPanel: 12、DA: 全体)
推定スパム遮断改善数約3,630件/日

1. logwatch tmpdir 一斉発生

現象

全cPanelサーバー5台で同日に /var/cache/logwatch/logwatch.XXXXXXXX という一時ディレクトリが残留し、Anacronから警告メールが届いた。

原因

前夜のcPanelによる自動パッケージ更新(Apache 2.4.67→2.4.68、PHP 8.4.21→8.4.22 など)のタイミングでlogwatchプロセスが中断されたと推定される。5台同日発生はこの自動更新が共通トリガーであることを示している。

対処

各サーバーで該当ディレクトリを rm -rf で削除。翌日以降は正常にlogwatchが完走することを確認予定。

教訓

cPanelの自動更新日の翌朝はtmpdir残留を予め疑う。5台同日発生パターンはcPanel側のイベントと連動している可能性が高い。


2. スパムフィルタ設定ミス(全サーバー共通問題)

現象

複数サーバーで特定アカウントのスパム率が50〜99%に達しており、SpamAssassinが検知しているにもかかわらずスパムが受信トレイに届いていた。

根本原因

cPanelサーバー(a200・a600・a400・a500): 既存のvfilterが X-Spam-Score のしきい値(8点以上)で廃棄する設定になっていた。SpamAssassinがスパムと判定(X-Spam-Status: Yes)しても、スコアが8点未満の場合はすり抜けて受信トレイに届く状態だった。

DirectAdminサーバー(da01): /etc/system_filter.exim のスパム処理が seen finish(フィルタ処理を終了するだけ)になっており、メールは通常通り配信されていた。seen finish は自動返信をスキップする効果しかなく、廃棄処理ではない。

対処

cPanelサーバー: 対象12アカウントのvfilterを X-Spam-Status: Yes ベースの条件に変更。スコアに関係なくSpamAssassinが「Yes」と判定したメールをすべて /dev/null に廃棄するよう統一した。

# Exim filter
if $h_X-Spam-Status: contains "Yes"
then
  save /dev/null
  finish
endif

DirectAdminサーバー: /etc/system_filter.eximseen finishsave /dev/null + finish に修正。全アカウント共通でスパムが廃棄されるようになった。変更前にバックアップを取得済み。

修正対象アカウント一覧

サーバーアカウントスパム率修正内容
a200ukkhawai38%X-Spam-Status:Yes に修正
a600nksarc78%同上
a600dandh73%vfilter新規作成
a600stbmcom35%vfilter新規作成
a600ginzade39%vfilter新規作成
a400iwashiro92%X-Spam-Status:Yes に修正
a400myanmarp99%同上
a400kagayaki75%同上
a500kisoh69%X-Spam-Status:Yes に修正
a500matsubox92%同上
a500momijiy77%同上
a500amanet79%同上
da01全アカウント28%system_filter修正

推定改善効果

対象遮断見込み
cPanelサーバー12アカウント約2,110件/日
da01全アカウント約1,520件/日
合計約3,630件/日

教訓

  • X-Spam-Score しきい値ベースのvfilterは危険。SpamAssassinの判定と乖離するケースがある。X-Spam-Status: Yes ベースが正しい設定
  • seen finishsave /dev/null + finish は全く異なる動作をする。混同注意
  • vfilterが「なし」のアカウントは新規作成時にデフォルト設定が入らないため、作成後に設定を追加する運用フローを検討する価値がある
  • スパムがサーバーのEximでCPUを大量消費する(da01は1日4時間超のExim CPU消費)。廃棄設定を正しく入れることはパフォーマンス改善にも直結する

3. logwatch 二重実行(a500固有)

現象

a500で /etc/cron.daily/0logwatch.bak がAnacronから実行され、tmpdir警告メールが 0logwatch.bak 名義で届いた。

原因

過去に 0logwatch をRFC 5321行長制限対策で改良した際、元ファイルを .bak にリネームしたが、新ファイル作成後に .bak の実行権限を外し忘れた。両ファイルに実行権限があったためAnacronが両方を実行し、logwatchが二重起動していた。

対処

chmod -x /etc/cron.daily/0logwatch.bak で実行権限を削除。0logwatch のみ実行される状態に修正。.bak はバックアップとして残置。

教訓

スクリプトを改良して新旧ファイルが並存する場合は、旧ファイルの実行権限を必ず外す。cron.daily 配下はファイルが存在するだけで実行されるため注意が必要。


4. 孤立cronファイル(a200固有)

現象

logwatchのCronセクションに「ORPHAN entries: 2」と表示された。

原因

削除済みユーザー uchi134 のcronファイルが /var/spool/cron/ に空ファイルとして残存していた。

対処

rm /var/spool/cron/uchi134 で削除。内容は空ファイルであり実害はなかった。


5. セキュリティ攻撃試行(da01)

.envファイルへのディレクトリトラバーサル攻撃

185.177.72.x 帯域から /?file=../../../../var/www/html/.env へのアクセスが6/8〜6/12にかけて連日発生。logwatchではHTTP 200と記録されており一見して成功に見えたが、調査の結果、DirectAdminのデフォルトページ(webserver is functioning normally)が返されていたことが判明。.env ファイルはサーバー上に存在せず、情報漏洩なし。

攻撃元 185.177.72.0/24 をCSFの csf.deny に追加してブロック済み。

教訓

  • HTTP 200 = 攻撃成功ではない。レスポンスボディとサイズの確認が必要
  • DirectAdminはどんなクエリストリングでも200でデフォルトページを返す仕様を把握しておく
  • 連日同一帯域からの試行は予防ブロックの対象とする

Exim認証試行

1,983回の不正リレー試行が記録された。hanbai.com ドメインのランダムなユーザー名や、実在する顧客ドメインのアドレスを使ったパスワードクラッキング攻撃。すべて535エラーで拒否済み。CSFおよびcphulkdが正常に機能している。


6. a600 logwatch行数異常(83,000行)

他サーバーが1〜2万行程度のlogwatchレポートを生成する中、a600は83,000行(全体の93%がDovecotセクション)となった。

原因はDovecot Disconnects数が80,453件と他サーバーの10〜15倍に達していること。スパム率45%による不正接続試行の多さと、IMAPポーリング頻度の高さが要因と推定。今回のvfilter修正でスパム着弾が減れば、来週以降の行数も改善する見込み。


タイムライン

時刻(概算)作業
午前a700〜a600 tmpdir削除・logwatch解析・vfilter修正
午後前半a500 tmpdir削除・.bak修正・logwatch解析・vfilter修正
午後後半a400 tmpdir削除・logwatch解析・vfilter修正
夕方da01 logwatch解析・.env攻撃調査・CSFブロック・system_filter修正

チームしずく 2026-06-11

タイトルとURLをコピーしました