前書き

OSSECは、ログ分析、整合性チェック、Windowsレジストリの監視、ルートキットの検出、時間ベースのアラート、アクティブな応答を実行する、オープンソースのホストベースの侵入検知システム(HIDS)です。 サーバー内で何が起こっているかを監視したい場合、サーバーにインストールするアプリケーションです。 OSSECは、WindowsおよびすべてのUnixライクなオペレーティングシステムでサポートされています。ただし、このチュートリアルで使用するドロップレットは両方ともUbuntu 14.04を実行しています。

OSSECは、インストールされているサーバーのみを監視するためにインストールできます。これは、OSSEC用語ではローカルインストールです。 OSSECに関する2つの以前のチュートリアルは、ローカルOSSECインストールの例です:https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-ossec-security-notifications-on-ubuntu-14-04 [Ubuntu 14.04でOSSECセキュリティ通知をインストールおよび構成する方法]およびhttps://www.digitalocean.com/community/tutorials/how-to-install-and-configure-ossec-on-freebsd-10-1[How To FreeBSD 10.1にOSSECをインストールして設定します]。

OSSECは、OSSEC * agents *と呼ばれる他の何千ものサーバーを監視するためにも使用できます。 OSSECエージェントは、OSSEC * server *と呼ばれる別のタイプのOSSECインストールによって監視されます。 OSSECサーバーが1つ以上のエージェントを監視するように構成された後、追加のエージェントはいつでも追加または削除できます。 OSSECエージェントの監視は、エージェントにインストールされたエージェントソフトウェアを介して、またはエージェントレスモードを介して行うことができます。 このチュートリアルでは、OSSECエージェントソフトウェアをエージェントにインストールするエージェントモードを使用します。

このチュートリアルでは、OSSECサーバーとOSSECエージェントをインストールし、サーバーがエージェントを監視するようにサーバーとエージェントを構成する方法を学びます。サーバーはメールにアラートを送信します。

前提条件

このチュートリアルを完了するには、次のものが必要です。

手順1-サーバーとエージェントでOSSECをダウンロードして確認する

まず、両方のドロップレット(サーバーとエージェント)でOSSECをダウンロードして検証します。 このステップのすべてのコマンドは、特に指定がない限り、両方のドロップレットで実行する必要があります。

OSSECは、圧縮されたtarballとして提供されます。 このセクションでは、OSSECとそのチェックサムファイルをダウンロードします。このファイルは、tarballが改ざんされていないことを確認するために使用されます。 開始するには、通常どおりサーバーにログインし、パッケージデータベースを更新します。

sudo apt-get update

利用可能なアップデートをインストールします。

sudo apt-get upgrade

最後に、必要なパッケージをインストールします。

*サーバー*に、以下をインストールする必要があります。

sudo apt-get install inotify-tools build-essential
  • agent *で、次をインストールする必要があります。

sudo apt-get install build-essential

その後、両方のDropletsで、OSSECとそのチェックサムファイルをダウンロードします。 http://www.ossec.net/?page_id=19 [プロジェクトのウェブサイト]で最新バージョンを確認できますが、以下のものは執筆時点で最新のものです。

wget -U ossec http://www.ossec.net/files/ossec-hids-2.8.1.tar.gz

wget -U ossec http://www.ossec.net/files/ossec-hids-2.8.1-checksum.txt

両方のファイルをダウンロードしたら、圧縮されたtarballのmd5sumを確認します。

md5sum -c ossec-hids-2.8.1-checksum.txt

出力は次のようになります。

ossec-hids-2.8.1.tar.gz: OK
md5sum: WARNING: 1 line is improperly formatted

続いて、SHA1チェックサムを確認します。

sha1sum -c ossec-hids-2.8.1-checksum.txt

出力は次のようになります。

ossec-hids-2.8.1.tar.gz: OK
sha1sum: WARNING: 1 line is improperly formatted

いずれの場合も、* WARNING *行を無視します。 * OK *行は、ファイルが正常であることを確認するものです。

ステップ2-OSSECサーバーのインストール

この手順では、OSSEC * server *をインストールするため、これらのコマンドは1つのドロップレットでのみ実行する必要があります。 サーバーのインストールを開始する前に、解凍します。

tar xf ossec-hids-2.8.1.tar.gz

`+ ossec-hids-2.8.1 +`というディレクトリに展開されます。そのディレクトリに移動します。

cd ossec-hids-2.8.1/

次に、インストールを開始します。

sudo ./install.sh

セットアッププロセス全体を通して、入力を行うよう求められます。 これらのほとんどの場合、デフォルト値を受け入れるには、* ENTER *を押すだけで済みます。

最初に選択を求められるのは、インストール言語の選択です。 デフォルトでは英語(en)であるため、希望する言語の場合は* ENTER *を押します。 それ以外の場合は、サポートされている言語のリストから2文字を入力します。

次の質問では、どのようなインストールが必要かを尋ねられます。 ここで、* server *と入力します。

1- What kind of installation do you want (server, agent, local, hybrid or help)?

後続の質問の残りについては、デフォルトを受け入れることができます。つまり、* ENTER *を押すだけです。 メールに関する質問については、必ず有効なメールアドレスを入力してください。 通知が送信されます。

インストールが成功した場合、次の出力が得られます。

- System is Debian (Ubuntu or derivative).
- Init script modified to start OSSEC HIDS during boot.

- Configuration finished properly.

...

   More information can be found at http://www.ossec.net

   ---  Press ENTER to finish (maybe more information below). ---

次に* ENTER *を押すと、これが表示されるはずです。

- In order to connect agent and server, you need to add each agent to the server.
  Run the 'manage_agents' to add or remove them:

  /var/ossec/bin/manage_agents

  More information at:
  http://www.ossec.net/en/manual.html#ma

手順3-OSSECサーバーの構成

エージェントはまだインストールされていないため、後でサーバーに追加するタスクに取り組みます。 とりあえず、アラートを送信できるようにサーバーを構成しましょう。

ここでは、OSSECサーバーのメール設定を構成し、指定したメールにアラートを送信できることを確認します。 OSSECのファイルとディレクトリにアクセスして変更するには、rootユーザーに切り替える必要があります。

sudo su

rootになったので、OSSECの設定ファイルがあるディレクトリに「+ cd +」を追加します。

cd /var/ossec/etc

設定ファイルは `+ ossec.conf +`です。 まず、バックアップコピーを作成します。

cp ossec.conf ossec.conf.00

次に、オリジナルを開きます。 ここでは、 `+ nano +`テキストエディターを使用しますが、好きな方を使用できます。

nano ossec.conf

メール設定はファイルの上部にあります。 変更するフィールドの説明と、サンプルの `+ ossec.conf +`ファイルが続きます。

  • * <email_to \> *は、インストール時に指定したメールです。 アラートはそのメールアドレスに送信されます。

  • * <email_from \> *は、OSSECのアラートの発信元と思われる場所です。 これを有効なメールアドレスに変更して、メールプロバイダーのSMTPサーバーによってスパムとしてタグ付けされる確率を減らします。

  • 独自のメールサーバーがあり、OSSECサーバーがインストールされているホストと同じホストにある場合、* <smtp_server \> 設定を localhost *に変更できます。

  • <email_to \> <email_from \> *を同じにすることができます。 完了すると、そのセクションは次のようになります。赤の変数を独自の変数に置き換えます。

<global>
   <email_notification>yes</email_notification>
   <email_to></email_to>
   <smtp_server></smtp_server>
   <email_from></email_from>
</global>

メール設定を変更した後、ファイルを保存して閉じます。 次に、OSSECを起動します。

/var/ossec/bin/ossec-control start

OSSECが開始されたことを知らせるメールを受信トレイで確認します。 メールが表示されない場合は、スパムフォルダーを確認してください。

手順4-OSSECエージェントのインストール

このセクションでは、2つ目のDropletにOSSEC * agent *をインストールする方法を学びます。 これは、サーバーのインストールに似ています。 エージェントのインストールを開始する前に、解凍します。

tar xf ossec-hids-2.8.1.tar.gz

`+ ossec-hids-2.8.1 +`というディレクトリに展開されます。そのディレクトリに移動します。

cd ossec-hids-2.8.1/

次に、インストールを開始します。

sudo ./install.sh

ほとんどのプロンプトは以前と同じですが、いくつかは異なります。 尋ねられたとき:

1- What kind of installation do you want (server, agent, local, hybrid or help)?

答えは* agent *でなければなりません。 そして尋ねられたとき:

3.1- What's the IP Address or hostname of the OSSEC HIDS server?:

前に取得したOSSECサーバーのIPアドレスを入力します。 これは、他のドロップレット(OSSECサーバーがインストールされたもの)のIPアドレスです。

その他の質問については、OSSECサーバーのインストール中に行ったように* ENTER *を押してデフォルトを受け入れます。 インストール後、次の出力が得られます。

- System is Debian (Ubuntu or derivative).
- Init script modified to start OSSEC HIDS during boot.

- Configuration finished properly.

...

   More information can be found at http://www.ossec.net

   ---  Press ENTER to finish (maybe more information below). ---

そして、もう一度* ENTER *を押すと、以下が表示されるはずです。

- You first need to add this agent to the server so they
  can communicate with each other. When you have done so,
  you can run the 'manage_agents' tool to import the
  authentication key from the server.

  /var/ossec/bin/manage_agents

  More information at:
  http://www.ossec.net/en/manual.html#ma

これで、エージェントとサーバーがインストールされましたが、まだ通信できません。

ステップ5-エージェントをサーバーに追加してそのキーを抽出する

OSSECサーバーで、エージェントを追加するプロセスを開始します。

:ステップ3からrootとして操作する必要があるため、これらのコマンドで `+ sudo +`を使用する必要はありません。

/var/ossec/bin/manage_agents

次に、以下に示すオプションが表示されます。 * a *を選択して、エージェントを追加します。

  (A)dd an agent (A).
  (E)xtract key for an agent (E).
  (L)ist already added agents (L).
  (R)emove an agent (R).
  (Q)uit.
Choose your action: A,E,L,R or Q:

次に、エージェントの名前、IPアドレス、およびIDを指定するよう求められます。 サーバーから受信したアラートのフィルタリングに役立つため、名前を一意にします。 IDについては、* ENTER *を押してデフォルトを受け入れることができます。

3つのフィールドすべてに入力したら、* y *を入力して確認します。

- Adding a new agent (use '\q' to return to the main menu).
 Please provide the following:
  * A name for the new agent:
  * The IP Address of the new agent:
  * An ID for the new agent[001]:
Agent information:
  ID:001
  Name:agentUbuntu
  IP Address:111.111.111.111

Confirm adding it?(y/n):
Agent added.

その後、メインメニューに戻ります。 次に、エージェントのキーを抽出する必要があります。これは画面にエコーされます。 (以下の例の場合とは異なります。)エージェントに入力する必要があるため、必ずコピーしてください。

...

Choose your action: A,E,L,R or Q:

Available agents:
  ID: 001, Name: agentUbuntu, IP: 111.111.111.111
Provide the ID of the agent to extract the key (or '\q' to quit):

Agent key information for '001' is:
MDAxIGFnZW50VWJ1bnyEwNjI5MjI4ODBhMDkzMzA4MR1IXXwNC4yMzYuMjIyLjI1MSBiMTI2U3MTI4YWYzYzg4M2YyNTRlYzM5M2FmNGVhNDYTIwNDE3NDI1NWVkYmQw

** Press ENTER to return to the main menu.
  • ENTER *を押すと、再びメインメニューに戻ります。 * q *と入力して終了します。

...

Choose your action: A,E,L,R or Q:

** You must restart OSSEC for your changes to take effect.

manage_agents: Exiting ..

手順6-サーバーからエージェントへのキーのインポート

このセクションはエージェントで完了する必要があり、サーバーで抽出されたエージェントのキーをインポート(コピー)して、エージェントの端末に貼り付ける必要があります。 開始するには、次を入力してルートに変更します。

sudo su

次に入力します。

/var/ossec/bin/manage_agents

次のオプションが表示されます。

  (I)mport key from the server (I).
  (Q)uit.
Choose your action: I or Q:

正しいオプションを入力したら、指示に従って、サーバーから生成されたキーをコピーして貼り付けます。

Agent information:
  ID:001
  Name:agentUbuntu
  IP Address:104.236.222.251

Confirm adding it?(y/n):
Added.
** Press ENTER to return to the main menu.

メインメニューに戻り、* q *と入力して終了します。

Choose your action: I or Q:

手順7-ファイアウォールを通過するUDPポート1514トラフィックを許可する

エージェントとサーバー間の通信はUDPポート1514を介して行われるため、そのポートを経由するトラフィックを許可するには、両端のiptablesにルールを追加する必要があります。

まず、エージェントとサーバーの両方でドロップ規則を一時的に削除します。

sudo iptables -D INPUT -j DROP

OSSEC * server *にルールを追加するには、OSSECエージェントのIPを使用して次を入力します。

iptables -A INPUT -p UDP --dport 1514 -s  -j ACCEPT

次に、* agent *で、OSSECサーバーのIPを使用して以下を入力します。

iptables -A INPUT -p UDP --dport 1514 -s  -j ACCEPT

次に、エージェントとサーバーの両方でファイアウォールを通過するすべての送信トラフィックを許可します。

iptables -A OUTPUT -j ACCEPT

最後に、両方にドロップ規則を再度追加します。

sudo iptables -A INPUT -j DROP

`+ iptables-persistant +`が必要条件でインストールしたため、これらのルールは再起動後も持続するはずです。

手順8-OSSECエージェントとサーバーの再起動

サーバーとエージェントが通信するように構成されたので、両方を再起動して以下を使用して変更を有効にします。

/var/ossec/bin/ossec-control restart

エージェント自体からOSSECエージェントを再起動できるほか、「+ / var / ossec / bin / agent_control -R +」を使用してOSSECサーバーから再起動することもできます。* 001 *はエージェントのIDです。

OSSECサーバーで、次のように入力してアクティブなエージェントをリストできます。

/var/ossec/bin/list_agents -c

以下のような出力が得られれば、サーバーとエージェントが話していることがわかります。

agentUbuntu-111.111.111.111 is active.

結論

この時点で、サーバーとエージェントの両方からの通知を含むアラートをサーバーから受信しているはずです。 エージェントに関連するアラートの件名は、「+ OSSEC通知-(agentUbuntu)111.111.111.111-アラートレベル3+」のように見えます。 これらのメールの本文は「+ OSSEC HIDS Notification」で始まります。

サーバーとエージェントが通信できることを確認したら、両方のインストールをさらにカスタマイズできます。 OSSECサーバーおよびエージェントでファイルの追加を警告するため、およびリアルタイムで警告するために行うことができる変更は、local OSSECインストールで行うことができるものと同じです。 https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-ossec-security-notifications-on-ubuntu-14-04 [インストールおよび設定方法]の関連セクションを参照してください。これらの変更を行う方法については、Ubuntu 14.04のOSSECセキュリティ通知]をご覧ください。

監視するドロップレットが3つ以上ある場合は、この記事で説明したのと同じ手順を使用して、それらをOSSECエージェントとしてセットアップに追加できます。 この設定中に問題が発生した場合、手がかりを探す最初の場所は、 `+ / var / ossec / logs / ossec.log +`にあるエラーログです。

この記事では、OSSECをサーバーエージェントモードでセットアップする基本についてのみ説明します。 詳細については、http://ossec-docs.readthedocs.org/en/latest/manual/index.html [http://ossec-docs.readthedocs.org]をご覧ください。