概要
本日は管理下の全サーバーを対象に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.exim の seen finish を save /dev/null + finish に修正。全アカウント共通でスパムが廃棄されるようになった。変更前にバックアップを取得済み。
修正対象アカウント一覧
| サーバー | アカウント | スパム率 | 修正内容 |
|---|---|---|---|
| a200 | ukkhawai | 38% | X-Spam-Status:Yes に修正 |
| a600 | nksarc | 78% | 同上 |
| a600 | dandh | 73% | vfilter新規作成 |
| a600 | stbmcom | 35% | vfilter新規作成 |
| a600 | ginzade | 39% | vfilter新規作成 |
| a400 | iwashiro | 92% | X-Spam-Status:Yes に修正 |
| a400 | myanmarp | 99% | 同上 |
| a400 | kagayaki | 75% | 同上 |
| a500 | kisoh | 69% | X-Spam-Status:Yes に修正 |
| a500 | matsubox | 92% | 同上 |
| a500 | momijiy | 77% | 同上 |
| a500 | amanet | 79% | 同上 |
| da01 | 全アカウント | 28% | system_filter修正 |
推定改善効果
| 対象 | 遮断見込み |
|---|---|
| cPanelサーバー12アカウント | 約2,110件/日 |
| da01全アカウント | 約1,520件/日 |
| 合計 | 約3,630件/日 |
教訓
X-Spam-Scoreしきい値ベースのvfilterは危険。SpamAssassinの判定と乖離するケースがある。X-Spam-Status: Yesベースが正しい設定seen finishとsave /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

