前書き
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エージェントをインストールし、サーバーがエージェントを監視するようにサーバーとエージェントを構成する方法を学びます。サーバーはメールにアラートを送信します。
前提条件
このチュートリアルを完了するには、次のものが必要です。
-
2つのUbuntu 14.04ドロップレット。 DigitalOceanダッシュボードで確認できる両方のIPアドレスに注意してください。 これらをそれぞれ「+ your_server_ip 」および「 your_agent_ip +」と呼びます。
-
両方でIptablesファイアウォールが有効になっています。 Linuxでは、OSSECの最新の安定したリリースには、アクティブレスポンス機能のためにiptablesが必要です。 Ubuntuのデフォルトのファイアウォールアプリケーションであるufwでは動作しません。 Iptablesを使用してファイアウォールを設定する方法の手順に従ってくださいUbuntu 14.04で]両方のサーバーでiptablesをセットアップします。
手順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]をご覧ください。