私はかなり長い間Linuxを使用していますが、スキャンやログイン試行の失敗などの疑わしいネットワークアクティビティをその場でメールまたは視覚/音声通知。
私はログなどを調べる方法を知っていますが、ほとんどの場合、手動で時間のかかるプロセスです。私はいくつかの優れたログ解析機能を備えた半/完全に自動化されたものを探しています。
私はSnortなどのネットワークを監視するIDSシステムを知っていますが、それらは平均的なホームユーザーにとってはやり過ぎであり、起動して実行するための苦痛なプロセスです。
ホームユーザーとして私にとって良い選択肢は何ですか?
簡単で効果的な一般的な解決策は、logcheckを使用することです。
Sudo apt-get install logcheck
[edit /etc/logcheck/logcheck.conf to your liking]
logcheck定期的にすべてのログを効率的にスキャンし(前回中断したところから開始)、何をフィルタリングします正常と見なされるものをすべて削除し、オプションで、正常/通常のパターンと一致しないものをアラートとしてメールで送信します。
主なアイデアは、ログファイル内の重大なエントリの出現に注意することです。すべてのエントリは常に、したがってyouする必要はありません。
logcheckは高度に設定可能です(man logcheck
)。以下を含むすべてを構成できます。
もっと。無視(通常/ルーチン)パターンは、/ etc/logcheck/ignore.d。*の下にある複数のファイルにあり、必要に応じてカスタマイズできます。主に無視する独自のパターンを追加することができます。デフォルトのUbuntuパッケージには、すでに多くのサービスの無視パターンを含む広範なファイルのセットが付属しているため、システムの実行が異常でない限り、追加することはあまりありません。事前構成された無視ファイルプロファイルには、3セットがあります:ignore.d.workstation、ignore.d.server、およびignore.d.paranoidから選択できます。
logcheckの背後にある主なアイデアは、システムで実行されているさまざまなサービスがすでに異常なイベントを記録しているということです。例えば。 sshdまたはpamはすでに認証失敗を記録します。そのため、主な欠落コンポーネントは次のとおりです。
どちらも便利なパッケージでlogcheckで提供されます。 logcheckと他のロギングを組み合わせることができます。たとえば、iptablesは、ルールを追加することで明示的に許可されていないネットワーク接続試行をsyslogに構成できます。
iptables -A input -j LOG
iptables -A input -j DROP
すべての許可ルールの直後。
logcheckはlogwatch(他の回答で提案)これは、通常のアクティビティと見なされるものを無視する非常に多くのルールがあらかじめパッケージ化されているためです。その結果、電子メールで送信されるアラートの信号/ノイズ比がはるかに高くなります。 YMMV。
logcheckのもう1つの利点は、orthogonalログを記録するすべてのサービスに対して、機能の重複はありません。 syslog
を使用して、/var/log
の下の任意のファイルに異常または非イベントを記録する新しいサービスを追加するたびに、自動的にアラートの取得を開始します。
HOWTO:
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
詳細。
ネットワーク上に多くのシステムがない場合、SnortのようなIDSのセットアップはおそらく過剰です(特に、マシン上にネットワークサービスがない場合)。システムで何が起こっているかのレポートを自分自身に送信するようにlogwatchを設定することから始めることをお勧めします。それが完了したら、可能な限り多くの関連情報を取得できるようにsyslogを構成します。
ネットワークでサービス(ftp、web、nfs、sshなど)を実行するときは、確実に侵入検知が必要です。これは、それらがインターネット上で公開されているためです。
経験豊富なネットワーク管理者による毎日の監視が必要です。このサービスを実行する場合、おそらくこの問題を回避する方法についての最低限の知識を既に持っているでしょう。
このサービスのいずれも実行していない場合、インターネットルーターファイアウォールは、ポート上の着信接続を既にブロックしています。ネットワークルーターをスキャンするには
あなたがすべて緑なら、あなたはすべて良いです。
最後になりましたが、おそらくルーターには侵入検知システムが組み込まれています(すべてのルーターの99%がストライプ化されたLinuxサーバーを実行しているため)。これについては、ルーターの製造元のマニュアルを確認する必要があります。