OSSECについて学び始めた その４

#はじめに
ふとセキュリティについて何か学習を始めたいと思いました。オープンソースのプログラムを解読しながら、理解を深めていきたいと思います。
まずはオープンソースのOSSECについて学習します。まずはドキュメントを読むことから始めます。
https://www.ossec.net/docs/

今回は第四弾としまして、OSSECのインストールについて読んでいきます。
https://www.ossec.net/docs/docs/manual/installation/index.html

##インストール
###インストール要件
UNIX システムの場合、OSSEC は gnu make、gcc、libc のみ必要とします。OpenSSLは推奨ですが、オプションで前提条件として必要です。しかし、あるシステムでプリコンパイルして、そのバイナリを最終的な箱に移すというオプションも常にあります。
・PCRE2
・zlib
・libevent
・RedHat / Centos / Fedora / Amazon Linux
・Ubuntu / Debian
・OpenSuse
・FreeBSD
・OpenBSD
のインストール要件が書いてあります。

###マネージャー/エージェントのインストール
OSSEC HIDSのインストールは非常に簡単で、install.shシェルスクリプトがそのほとんどを自動化してくれます。インストールを行う前に、いくつかの質問に答える必要があります。最も重要なことの1つは、どのタイプのインストールを希望するかということです。サーバ、エージェント、ローカル、ハイブリッドなど、正しいインストールタイプを選択することが重要です。これらの詳細については、OSSEC Architectureのページに記載されています。

基本的にinstall.shを叩けば、インストールができるようです。

###手動インストール
OSSECは、手動でもインストールすることも可能です。ossec.conf ファイルは変更されませんので、インストール後に設定する必要があります。ossec、ossecm、ossecrの各ユーザーは引き続き自動的に作成されます。

install.shを使用しない場合は、make installでのインストールも可能なようです。install.shを使用しないので、ossec.confは手動で変更する必要があるようです。

###Windowsエージェントのインストール
OSSECはWindowsシステムのみをエージェントとしてサポートしており、機能させるためにはOSSECサーバーが必要です。
####Step 1: Opening the Agent Manager menu
このプロセスの最初のステップは、エージェントマネージャーメニューに入ることです。ossec サーバから、次のコマンドを入力します。

/var/ossec/bin/manage_agents

####Step 2: Adding an Agent
エージェントを追加することが最初に必要なことです。アクション "A "を選択します。
エージェントマネージャは、まず名前の入力を求めます。これはどんな名前でもかまいません。
次に、Windows クライアントの IP アドレスを要求されます。
その後、クライアントに割り当てるユニークなIDを要求されます。IDはすべて数字で、最大8桁の数字でなければならない。また、エージェントマネージャーは、新しいエージェントにIDを提案します。
最後に、提供されたすべての情報の確認を求めます。そして、すべてのエージェント情報を /var/ossec/etc/client.keys に追加して、メインメニューに戻ります。

####Step 3: Extracting a Key
ここで、クライアントキーを抽出する必要があります。メインメニューから、アクション "E "を選択します。エージェントのリストが表示されます。キーを抽出するエージェントのフルIDを入力します。鍵の全体像が表示されます。後で必要になるので、クリップボードにコピーしてください。

####Step 4: The Windows Side
次に、Agent Windowsという実行ファイルをhttps://ossec.github.io/downloads.html からダウンロードします。インストールウィザードをデフォルトのまま実行します。インストールが完了すると、Ossecエージェントマネージャが起動するはずです。

###Package Installation
OSSECプロジェクトでは、RPMとdebのパッケージを公開しています。パッケージへのリンクは、OSSECのダウンロードページで見ることができます。
・RPM Installation
・Deb Installation
・pkg Installation
について記載があります。

###Compiling OSSEC for a Binary Installation
OSSECは通常、インストールされるシステムごとにコンパイルされますが、これが必ずしも容易でない場合があります。このような場合に役立つように、バイナリのインストール方法がいくつか用意されています。OSSECは、1つのシステムでコンパイルし、インストール先のシステムにコピーすることができます。このインストール方法では、ターゲットシステム上にGNU makeが必要です。

OSSECはクロスコンパイルの機能が非常に限られています。Windows 用のバイナリは Linux システム上でビルドできますが、その他のシステム用のバイナリは、同じ OS と CPU プラットフォームのシステム上でビルドする必要があります。

####Compiling OSSEC for install on a second server
まず、インストールしたいバージョンに対応するOSSECパッケージをダウンロードし、解凍します（コンパイラのあるシステムで）。

ダウンロードしたパッケージのソースディレクトリに入り、エージェント版をビルドするようにOSSECを設定します。makeコマンドで正しいバイナリがコンパイルされるはずです。

ossec-hids-*/etc/preloaded-vars.conf を変更し、BINARY_INSTALL を yes に設定します。

最後にOSSECのパッケージを作成します。

####Installation of the binary OSSEC package
ターゲットシステム（Cコンパイラを持たないシステム）において、上記の手順で作成したossec-binary.tarをダウンロードします。

バイナリパッケージを解凍し、./install.shを実行することでインストールを完了します。

インストールのプロンプトに従うと、インストールが完了します。

###Server Virtual Appliance Installation
####概要
OSSEC仮想アプライアンスは、OVF（Open Virtualized Format）形式の仮想システムです。OSSEC 2.7サーバーとWebUI（0.8ベータ版）がインストールされています。

####アカウントとパスワード
####Convert OVF to a VMWare image
VMWare のデスクトップ環境によっては、OVF イメージをネイティブにサポートしていない場合があり、そのようなシステムのために VMWare は ovftool を作成しました。VMWare社のサイトからovftoolをダウンロードします（登録が必要です）。

###Unattended Source Installation
OSSECは、install.shのようなインタラクティブな操作なしに、コンパイルとインストールができる機能を備えています。インストールスクリプトは、etc/preloaded-vars.conf設定ファイルから質問に対する答えを収集することができます。

インストーラが尋ねる質問のほとんどは、デフォルトの答えとともに設定ファイルに存在します。各変数をアンコメントすることで、スクリプトが答えを知ることができます。デフォルトのインストールから変更する場合は、設定ファイル内で行う必要があります。

###Compiling the OSSEC Windows Agent on Windows
2.9以降、サポート対象外となりました。WindowsエージェントはLinuxシステム上でビルドすることができます。
OSSECのWindowsエージェントを使用するほとんどの人は、OSSECのサイトからコンパイル済みのものをダウンロードします。これは、多くの個人ユーザーにとっては良いオプションですが、より特殊なニーズを持つユーザーやエンタープライズ環境のユーザーには合わないかもしれません。これらのカテゴリーに属するユーザーは、個々のニーズに合わせてエージェントをカスタマイズし、内部ビルドを維持することで利益を得ることができる。

Linux上でWindowsエージェントをコンパイルする方法はすでに説明されていますが、皮肉なことにWindowsではそのプロセスはあまりうまくいきません。私はこれを Windows で動作させる必要がありましたので、そのプロセスを共有しようと思いました。

###Integration and Deployment with cfengine
最近、OSSEC-HIDSを手動であまり手をかけずに大規模に展開する必要がありました。私が出会ったほとんどすべてのOSSEC-HIDSのチュートリアルは、これが可能だと言っているが、私はそれを実演するチュートリアルを見つけることができなかった。そこで、オープンソースの精神に則り、簡単な概要を寄稿することにします。

ということで、オープンソースの有志の方々により、コンパイルやインストール方法は様々存在するようです。後ほど、ソースコードを解析していく過程で、その辺も理解することになると思います。

#おわりに
今回はここまで。では、また。