簡単で効果的な一般的な解決策は、logcheckを使用することです。
sudo apt-get install logcheck
[edit /etc/logcheck/logcheck.conf to your liking]
logcheckは、定期的にすべてのログを効率的にスキャンし(前回中断したところから開始)、表示内容をフィルター処理して正常と見なされるものをすべて除去し、オプションで正常/通常のパターンと一致しないものでアラートをメールで送信します。
主なアイデアは、ログファイル内の重大なエントリの出現を常に監視することです。すべてのエントリは常に必要なので、必要はありません。
logcheckは高度に構成可能です(man logcheck
)。以下を含むすべてを構成できます。
- チェックの頻度
- チェックされるログファイル
- 正常とみなされるものとそうでないもの
- アラート(異常なイベント)を電子メールで送信する場所
もっと。無視(通常/ルーチン)パターンは、/ etc / logcheck / ignore.d。*の下の複数のファイルにあり、必要に応じてカスタマイズできます。主に無視する独自のパターンを追加することができます。デフォルトのUbuntuパッケージには、多くのサービスの無視パターンを備えた広範なファイルのセットがすでに付属しているため、システムの動作が異常でない限り、追加することはあまりありません。事前に設定された3つの無視ファイルプロファイルセットがあります: ignore.d.workstation、ignore.d.server、およびignore.d.paranoidから選択できます。
ログチェックの背後にある主な考え方は、システムで実行されているさまざまなサービスがすでに異常なイベントを記録しているということです。たとえば、sshdまたはpamはすでに認証の失敗を記録します。そのため、主な欠落コンポーネントは次のとおりです。
どちらも便利なパッケージのlogcheckで提供されます。logcheckを他のロギングと組み合わせることができます。たとえば、iptablesは、ルールを追加することで明示的に許可されていないネットワーク接続試行をsyslogに設定できます。
iptables -A input -j LOG
iptables -A input -j DROP
すべての許可ルールの直後。
私が見つけlogcheckのよりもはるかに有用であることがlogwatchのそれは正常な活動と考えられているものを無視するルールの非常に大きな数のパッケージ化事前来るので(他の回答で提案されています)。その結果、電子メールで送信されるアラートの信号/ノイズ比がはるかに高くなります。YMMV。
logcheckのもう1つの利点は、ログを記録するサービスと直交するため、機能の重複がないことです。syslog
異常または異常を問わず、イベントをログに記録するために使用する新しいサービスを/var/log
あなたのファイルに追加するたびに、自動的にアラートを取得し始めます。
の仕方:
logcheck
すでに事前構成されているため、この回答の先頭にある2行は、開始するために必要なすべてを本質的にカバーしています。インストールするだけで、最上位の設定ファイルに移動
します。電子/etc/logcheck/logcheck.conf
メールアドレスを変更して、logcheck
アラートを電子メールで送信します。
次に、2番目のステップを詳しく説明するわかりやすいリファレンスを示します。UbuntuはDebianに基づいているため、これらの手順はUbuntuでも機能するはずです。
ここに別の良いリファレンスがあります。
インストールすると、継続的な改善プロセスが開始されます。時間が経つにつれて、すでに知っていることや気にする必要のないことを無視して、ルールを改善します。この改良プロセスは、お気に入りのテキストエディターでファイルにテキスト行を追加するのと同じくらい簡単です。
無視ファイルの各行は拡張正規表現です(を参照man 7 regex
)が、無視するログ行に一致する限り、単純な文字列を使用できます。ただ、文字が好きなことを覚えて*
、?
「+」、 []
、()
彼らが実際にログの行に表示されている場合ので、あなたはバックスラッシュでエスケープしなければならない、正規表現の中で特別な\
ファイルを無視しました。
つまり、受け取りたくないアラートを受け取った場合は、メールで送信されたログ行を見て、それに一致するパターンを、選択した無視ファイルの1行として追加します。/etc/logcheck/ignore.d.<yourloglevel>/my-ignores
個人的な無視ファイルとして使用することをお勧めし
ます。どこ<yourloglevel>
の一つであるparanoid
、server
または
workstation
(既にメイン設定ファイルで選択したとおり/etc/logcheck/logcheck.conf
)。他の無視ファイルの例を見て、プロセスIDやタイムスタンプなど、常に変化するテキストを説明する方法を確認してください。学ぶべき多くの既存の例があります。
最後のヒント:新しいルールのテストに非常に便利なlogcheck
、少し便利なユーティリティが付属していlogcheck-test
ます。man logcheck-test
詳細については。