🛠️ rsyslogでiptablesログを破棄する設定手順
2025年6月27日
2026年6月3日
概要
iptables の LOG ターゲットによって出力される大量のログが syslog を圧迫するのを防ぐため、rsyslog にフィルタ設定を追加して、特定のログメッセージを保存せずに破棄する方法を紹介します。
前提条件
OS:Debian 系 Linux(Raspberry Pi OS 等)
対象:rsyslog がインストールされていること
📁 設定ファイルの場所
フィルタ設定は以下のファイルに記述します:
📝 対象ファイル:
このファイルは
/etc/rsyslog.d/10-iptables-filter.confこのファイルは
rsyslog.conf の $IncludeConfig /etc/rsyslog.d/*.conf により自動的に読み込まれます。
✏️ 記述方法と構文
各行は以下の構文で記述します:
:msg, contains, "フィルタしたい文字列" ~
:msg, contains, "文字列"— メッセージに指定した文字列が含まれるかチェックするフィルタ条件~(チルダ)— マッチしたメッセージを破棄する(どこにも保存しない)
🧾 設定例
/etc/rsyslog.d/10-iptables-filter.conf の記述例:
# iptables ログをフィルタして破棄する :msg, contains, "UDP LOG ポート番号:" ~ :msg, contains, "BLOCK INPUT:" ~ :msg, contains, "SRC=" ~
📝 各行の末尾の
フィルタしたい文字列に合わせて変更してください。
~(チルダ)は破棄を意味します。マッチした行はどのログファイルにも書き込まれません。フィルタしたい文字列に合わせて変更してください。
🔄 rsyslog の再起動
設定ファイルを保存したら、rsyslog を再起動して設定を反映させます:
sudo systemctl restart rsyslog
✅ エラーなく再起動できれば設定完了です。
✅ 動作確認
rsyslog の状態を確認します:
sudo systemctl status rsyslog
フィルタが正しく機能しているか確認するには、/var/log/syslog を監視して対象のログが出力されていないことを確認します:
sudo tail -f /var/log/syslog
📌 注意点
- フィルタ設定ファイルは
/etc/rsyslog.d/内に配置することで、rsyslog の再起動時に自動的に読み込まれます。 ~による破棄は、マッチしたメッセージをすべてのログに書き込まなくします。重要なログが含まれる可能性がある場合は、フィルタ文字列を慎重に選択してください。- 設定変更後は必ず
rsyslogを再起動してください。