私の最後のポストでは、我々としてもOSSECとしてLogwatchはをインストールしました。 それは今LogwatchはとOSSECは、同じサンドボックス内で一緒に遊んで取得する時間です。 この記事で私はOSSECによって生成されている情報を要約するLogwatchはを取得する方法を説明します。
展開オプション
我々はこれを設定するために従うことができる2つのパスを持っている:
- Logwatchは直接OSSECログを解析しています。
- OSSECは、Syslogサーバ上でLogwatchはを実行し、Syslogのタイプのサーバーへのアラートを送信する必要があります。
オプション#1の利点は、我々は1つだけのシステムが必要だということです。 logwatchのは、OSSECサーバをホスティングするシステム上で実行されます。 我々はしかし、中に実行しようとしている問題は、OSSECのアラート·ファイルが含まれます。 ログエントリは、正規化されません。 この形式は、エントリからエントリを変更できることを意味し、さらには複数行に渡って広がる可能性があります。 これは、アラート情報をフィルタリングし、要約しますLogwatchはスクリプトを作成するには、本当の悪夢になるだろう。
我々はオプション#2で行く場合は、別のボックスが私たちの集中ロギングサーバとして動作する必要があります。 OSSECサーバが非エージェントシステムからのログエントリを受け入れているために、それはUDP/514をリッスンする必要があります。 これは、集中ロギングサーバによって使用されるポートと同じであり、2つのアプリケーションが同じポートを共有することはできません(Windowsの場合を除いてですが、ソケットへのアクセスは非常に厄介です。) Logwatchは要約スクリプトははるかに容易になります作成するので、それらはSyslogサーバに送信されたときにプラス側に、警告エントリが正規化されてしまいます。 さらに、Logwatchは、すでに標準のsyslogファイルを知っているので、我々は実行する以下のカスタマイズ作業が必要となります。
最後に、私はOSSECは、SIMになるように設計されていないことを以前の投稿で述べた。 それがすべて、アラートを生成するイベントだけを記録していないためです。 だから我々はおそらく、とにかく集中管理サーバを選択しようとしていると、それはOSSECによって生成される情報を格納している理にかなっています。
私はオプション#2に向かってあなたを操舵していますように聞こえるのであれば、あなたは絶対に正しいことを確認します。 その言うものの、私は実際にははるかに複雑な設定としてオプション#1をカバーするつもりです。
日付/時刻スタンプを扱う
メインOSSECログファイルを見て、あなたは次のように表示されます。
[ルート@めちゃくちゃログ]#テール-3の/ var / OSSEC / logs /にossec.log
2010年2月18日午前12時32分05秒OSSEC-rootcheck:INFO:rootcheckのスキャンを終了する。
2010年2月18日午後2時27分06秒OSSEC-syscheckd:INFO:済みSyscheckスキャンを開始します。
2010年2月18日午後2時39分21秒OSSEC-syscheckd:INFO:済みSyscheckスキャンを終了する。
日付/時刻スタンプは、フォーマットされている方法に注意してください。 これはほとんどのアプリケーションとは異なるので、我々は実行する必要がありますまず最初にどのようにこの形式に対処するLogwatchはを設定してください。 我々は上記のフォーマットを理解することが必要なときに我々は呼び出すことができるスクリプトを作成する必要があります。
共有スクリプトディレクトリに移動して起動します。
CDの/ usr / share / logwatchの/スクリプト/共有
お好みのエディタを使用して、 "applylongdate"という名前のファイルを作成します。
viのapplylongdate
ここでは、そのファイルの内部で何が必要です。 このページからコピー/ペーストしてお気軽に:
'日付'; Logwatchはを使用し
私の$ DEBUG = $ ENV {'LOGWATCH_DEBUG'} | | 0;
$ SearchDate = TimeFilterの( '%のY /%M /%d個の%H:%Mは:%S');
するif($デバッグ> 5){
印刷STDERR "DEBUG:インサイドApplyLongDateています... \ n";
印刷STDERR "DEBUG:探している。" $ SearchDate。 は "\ n";
}
{(($ ThisLine = <STDIN>)定義されています)一方、
{($ ThisLine =〜M / ^ $ SearchDate / O)の場合
$ ThisLineを印刷する=〜S / ^ .. \ / .. \ / .. ..:..:.. / /;
$ ThisLineを印刷する;
}
}
#viの:shiftwidth = 3構文= perlのタブストップ= 3ら
一度ファイルを保存し、我々は今、適切なアクセス許可を設定する必要があります。
します。chmod 755 applylongdate
ログ·ファイルの構成
次に我々はOSSECのログファイルが置かれているLogwatchは指示する必要があります。 いつでも新しいログファイルを追加したり、Logwatchはで監視する新しいサービスを作成するには、/ etc / logwatchのディレクトリの下にして変更を配置する必要があります。 我々は2つのコンフィギュレーションファイルを作成しようとしている。 最初はOSSECメッセージを処理する、2つ目はOSSECのアラートとアクティブレスポンスの変更を処理します。
メインOSSECログファイルのコンフィグレーションファイルを作成してみましょう:
CDの/ etc / logwatchの/ confに/ログファイル
viのossec.conf
ファイルの内容は、従わなければならない。
LOGFILE =の/ var / OSSEC / logs /にossec.log
* =をApplyLongDate
あなたは今、ファイルを保存して終了することができます。 次に、残りのログ·ファイル用の設定ファイルを作成します。
viのOSSEC-alert.conf
このファイルの内容は、従わなければならない。
LOGFILE =の/ var / OSSEC /ログ/アクティブresponses.log
LOGFILE =の/ var / OSSEC /ログ/アラート/ alerts.log
LOGFILE =の/ var / OSSEC /ログ/ファイアウォール/ firewall.log
一度、完成保存して終了します。 デフォルトの権限は我々のセットアップのために許容されるべきである。
OSSECサービスの設定
次に、我々はOSSECサービスを定義し、我々は、レポートが生成されたタイトルとして使用するかを特定する必要があります。 ここでは、最初のファイルを作成する方法は次のとおりです。
CDの/ etc / logwatchの/ confに/サービス
viのossec.conf
このファイルの内容は非常に単純です。
タイトル= "OSSECメッセージ"
LogFileは= OSSEC
一度保存して終了することができます完了します。 我々は、このディレクトリ内の1つ以上のファイルを作成する必要があります。
viのOSSEC-alert.conf
このファイルの内容は次のようになります。
タイトル= "OSSECアラート"
LOGFILE = OSSECのアラート
一度、完成保存し、いつものように終了します。
エントリを解析する
次に、レポート内のログエントリをフォーマットする方法Logwatchは指示する必要があります。 我々はサービスのセットごとにカスタマイズ·スクリプトを作成する必要があります。 我々は、Logwatchは供給されたテストスクリプトを使用して起動しようとしている。念のすべての作品を作るために。
適切なディレクトリに移動して起動します。
CDの/ etc / logwatchの/スクリプト/サービス
最初のスクリプトを作成するためにお好みのエディタを使用します。
viのOSSEC
スクリプトの内容は、従わなければならない。
#!/ bin / bashに
#これはあなたがなる行が表示されますように素敵なスクリプトです。
#処理し、上に報告することができます。 それは最初に表示されます。
#標準の環境変数と、それはSTDINをとり、
#標準出力(STDOUT)に右に戻る、それをダンプします。
#これらは、標準の環境変数です。 を定義することができます。
サービス設定ファイルの#より(上記参照)。
エコー "日付の範囲:$ LOGWATCH_DATE_RANGE"
エコー "詳細レベル:$ LOGWATCH_DETAIL_LEVEL"
エコー "一時ディレクトリ:$ LOGWATCH_TEMP_DIR"
":$ LOGWATCH_DEBUGデバッグレベルを"エコー
#ここでSTDINを取るとSTDOUTにダンプする
猫
今すぐあなたの番目のスクリプトを作成します。
viのOSSECのアラート
と正確に同じ内容が含まれています。
#!/ bin / bashに
#これはあなたがなる行が表示されますように素敵なスクリプトです。
#処理し、上に報告することができます。 それは最初に表示されます。
#標準の環境変数と、それはSTDINをとり、
#標準出力(STDOUT)に右に戻る、それをダンプします。
#これらは、標準の環境変数です。 を定義することができます。
サービス設定ファイルの#より(上記参照)。
エコー "日付の範囲:$ LOGWATCH_DATE_RANGE"
エコー "詳細レベル:$ LOGWATCH_DETAIL_LEVEL"
エコー "一時ディレクトリ:$ LOGWATCH_TEMP_DIR"
":$ LOGWATCH_DEBUGデバッグレベルを"エコー
#ここでSTDINを取るとSTDOUTにダンプする
猫
最後に、我々は適切な権限を設定する必要があります。
します。chmod 755 OSSEC *
セットアップのテスト
私たちの新しい設定をテストする最も簡単な方法は、コマンドを実行することです。
logwatchの|未満
あなただけの変更を見たい場合は、各サービスは、一度に1つのレポートを実行することができます。
logwatchのサービスOSSEC |以下
logwatchのサービスOSSECアラート|以下
さらにカスタマイズ
一度上記の作業のすべてを取得するには、Logwatchはログエントリをフィルタリングし、要約することに専念することができます。 Logwatchはかなり柔軟性があり、あなたは、出力を好きなようにカスタマイズすることができます。 上記のテストスクリプトの良いところの一つは、上記のそれはあなたと仕事をしなければならないあなたを正確に示していることです。 あなたが適切だと思われるので、少し正規表現の魔法であなたのエントリをまとめることができます。 いくつかのアイデアについては、下にあるファイルをチェックアウトします。
は/ usr / share / logwatchの/スクリプト/サービス
これらは、Logwatchは含まれているデフォルトのサマリー·スクリプトです。 具体的には、ファイル "PAM"と "sshdは"を見てください。 彼らは、シンプルかつ要約フィルタの複雑なセットの両方の優れた例です。
あなたがスクリプトを開発したように、$ LOGWATCH_DETAIL_LEVEL "変数に細心の注意を払う。 これは、ユーザーが探しているどの程度の冗長性に応じてレポートの出力レベルをカスタマイズすることが許可されます。 あなたは上記のサービスディレクトリに残っている間に、例えば、次のコマンドを実行します。
以下のsshd
ファイルの内容の最初のページが表示されたときに入力します。
/詳細<Enter key>に
バックスラッシュは、私たちは、特定のテキスト文字列のファイルを検索することができます。 この例では、単語 "詳細"を探しています。 したら、それはテキスト文字列の最初のインスタンスを見つけるまで検索は、ファイルをスキップしますEnterキーを押します。 また、検索文字列を強調表示されます。 最初のマッチでは、変数$ LOGWATCH_DETAIL_LEVEL "と同じになるように著者は、変数" $詳細 "が割り当てられていることがわかります。 これは、それらのいくつかの入力を保存することです。
今、もう一度[Enter]キーに続いてバックスラッシュキーを押します。 これは、 "詳細"の次のインスタンスにファイルを介してジャンプします。 あなたが表示されるはずです。
{($詳細> = 20)の場合
$ユーザー{$ USER} {$ HOST} {$法} + +;
する} else {
するif($ホスト!〜/ $ IgnoreHost /){
$ユーザー{$ USER} {$ホスト{} "(すべて)"} + +;
詳細レベルは20(低·中の間に半分)以上に設定されている場合、著者は多くの情報を提供してください。 ファイルを介してジャンプし続けると、著者はこの手法を活用して他の例が表示されます。
現在ダウンしてファイルの最後にページとは、この文が表示されます。
{(キー%のOtherList)の場合
印刷 "の\ n **比類のないエントリ**た\ n";
印刷 "$ _:$ OtherList {$ _}時間(s)の\ n" foreachのキー%のOtherList。
}
それが最後のキャッチであるため、このセクションでは、非常に重要です。 現在のファイアウォールポリシーを考える。 私たちのほとんどは、 "私は具体的に介してトラフィックパターンを許可しなかった場合は、それを否定する"と言う最後のルールを作成します。 予期しない事態が発生した場合に言い換えると、これは私があなたがそれを処理する方法です。
ログファイルを解析するときに上記のステートメントは、同じ目的を果たします。 以前のすべての文がそれを正しくフォーマットするためにログ·エントリ内の特定のテキスト文字列にマッチしようとした "IF"。 このエントリは、**比類のないエントリ** ""あなたはまだマッチして、特定のログエントリを印刷していない場合は、タイトルのセクションでそれをプリントアウトする "と言っています。 それなしで我々が予期しないエントリを参照することはありませんので、このステップは非常に重要です。 これはおそらく、最も重要かつ興味深いものです予期しないエントリです。
Execの概要
OSSECとLogwatchは両方とも優秀な無料のツールです。 既知の攻撃パターンが行われたときの警告でOSSEC優れています。 Logwatchは、人間が実際に何が起こっているかの意味を理解することができるようにログの時間のチャンクをまとめるための素晴らしいツールです。 あなたが姿勢の深さではるかに堅牢な防御を作成できる2つのツールを組み合わせることにより、。 全体は部分の総和よりも大きくなる。
関連記事:


素晴らしい仕事に感謝します。 私はOSSECとlogwatchの両方を使用していると私は間違いなくここにあなたの指導で姿勢を改善することができます。
私は助けることが嬉しい!
logwatchのでOSSECログを結合するための良いヒント!
あなたもOSSECのアラートログファイルの日付書式を適用するために管理している?
今私は私の要約で全体OSSECのアラートログファイルではなく、logwatchの(つまり昨日)で指定されただけで日付範囲を取得します。 それはossec.logのために良好に動作します。
感謝