序章
OSSECは、オープンソースのホストベースの侵入検知システム(HIDS)であり、ログ分析、整合性チェック、Windowsレジストリ監視、ルートキット検出、時間ベースのアラート、およびアクティブな応答を実行します。 サーバー内で何が起こっているかを監視したい場合は、サーバーにインストールするアプリケーションです。 OSSECは、WindowsおよびすべてのUnixライクなオペレーティングシステムでサポートされています。 ただし、このチュートリアルで使用されているドロップレットは両方ともUbuntu14.04を実行しています。
OSSECをインストールして、インストール先のサーバーのみを監視できます。これは、OSSEC用語ではローカルインストールです。 OSSECに関するこれまでの2つのチュートリアルは、ローカルOSSECインストールの例です。 Ubuntu14.04にOSSECセキュリティ通知をインストールおよび構成する方法とFreeBSD10.1にOSSECをインストールおよび構成する方法。
OSSECは、OSSEC agentと呼ばれる他の何千ものサーバーを監視するためにも使用できます。 OSSECエージェントは、OSSECサーバーと呼ばれる別のタイプのOSSECインストールによって監視されます。 OSSECサーバーが1つ以上のエージェントを監視するように構成された後、追加のエージェントはいつでも追加または削除できます。 OSSECエージェントの監視は、エージェントにインストールされているエージェントソフトウェアを介して、またはエージェントレスモードを介して行うことができます。 このチュートリアルでは、エージェントモードを使用します。このモードでは、エージェントにOSSECエージェントソフトウェアをインストールします。
このチュートリアルでは、OSSECサーバーとOSSECエージェントをインストールし、サーバーがエージェントを監視し、サーバーが電子メールにアラートを送信するようにサーバーとエージェントを構成する方法を学習します。
前提条件
このチュートリアルを完了するには、次のものが必要です。
-
2つのUbuntu14.04ドロップレット。 DigitalOceanダッシュボードに表示される両方のIPアドレスに注意してください。 これらをそれぞれ
your_server_ip
およびyour_agent_ip
と呼びます。 -
このチュートリアルの最初の3つの手順に従って取得できる、両方のドロップレットのsudo非rootユーザー。
-
Iptablesファイアウォールが両方で有効になっています。 Linuxでは、OSSECの最新の安定したリリースでは、アクティブな応答機能のためにiptablesが必要です。 Ubuntuのデフォルトのファイアウォールアプリケーションであるufwでは動作しません。 Ubuntu 14.04でIptablesを使用してファイアウォールを設定する方法の手順に従って、両方のサーバーにiptablesを設定します。
ステップ1—サーバーとエージェントにOSSECをダウンロードして確認する
まず、両方のドロップレット(サーバーとエージェント)でOSSECをダウンロードして検証します。 このステップのすべてのコマンドは、特に指定がない限り、両方のドロップレットで実行する必要があります。
OSSECは、圧縮されたtarballとして提供されます。 このセクションでは、OSSECとそのチェックサムファイルをダウンロードします。このファイルは、tarballが改ざんされていないことを確認するために使用されます。 まず、通常どおりにサーバーにログインしてから、パッケージデータベースを更新します。
sudo apt-get update
利用可能なアップデートをインストールします。
sudo apt-get upgrade
最後に、必要なパッケージをインストールします。
サーバーに、以下をインストールする必要があります。
sudo apt-get install inotify-tools build-essential
エージェントに、以下をインストールする必要があります。
sudo apt-get install build-essential
その後、両方のドロップレットで、OSSECとそのチェックサムファイルをダウンロードします。 プロジェクトのウェブサイトで最新バージョンを確認できますが、以下のバージョンは執筆時点で最新のものです。
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)? server
以降の質問では、デフォルトを受け入れることができます。つまり、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
ルートになったら、cd
をOSSECの構成ファイルが存在するディレクトリに移動します。
cd /var/ossec/etc
構成ファイルはossec.conf
です。 まず、バックアップコピーを作成します。
cp ossec.conf ossec.conf.00
次に、オリジナルを開きます。 ここでは、nano
テキストエディタを使用していますが、どちらでも使用できます。
nano ossec.conf
メール設定はファイルの先頭にあります。 変更するフィールドの説明と、それに続くサンプルossec.conf
ファイルを次に示します。
- インストール中に送信したメールです。 アラートはそのメールアドレスに送信されます。
- OSSECのアラートが発信されているように見える場所です。 これを有効な電子メールアドレスに変更して、電子メールプロバイダーのSMTPサーバーによってスパムとしてタグ付けされる可能性を減らします。
- 独自の電子メールサーバーがあり、OSSECサーバーがインストールされているホストと同じホスト上にある場合は、 に設定ローカルホスト 。
ご了承くださいと同じにすることができます。 完了すると、そのセクションは次のようになります。 赤の変数を独自の変数に置き換えます。
<global>
<email_notification>yes</email_notification>
<email_to>sammy@example.com</email_to>
<smtp_server>mail.example.com.</smtp_server>
<email_from>sammy@example.com</email_from>
</global>
メール設定を変更したら、ファイルを保存して閉じます。 次に、OSSECを起動します。
/var/ossec/bin/ossec-control start
受信トレイで、OSSECが開始されたことを通知する電子メールを確認してください。 メールが表示されない場合は、スパムフォルダを確認してください。
ステップ4—OSSECエージェントをインストールします
このセクションでは、OSSEC agentを2番目のドロップレットにインストールする方法を学習します。 これは、サーバーのインストールに似ています。 エージェントのインストールを開始する前に、それを解凍します。
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?:your_server_ip
以前に取得した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からルートとして動作しているはずなので、これらのコマンドで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: a
次に、エージェントの名前、その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: agentUbuntu
* The IP Address of the new agent: your_agent_ip
* An ID for the new agent[001]:
Agent information:
ID:001
Name:agentUbuntu
IP Address:111.111.111.111
Confirm adding it?(y/n): y
Agent added.
その後、メインメニューに戻ります。 次に、画面にエコーされるエージェントのキーを抽出する必要があります。 (以下の例とは異なります。)エージェント用に入力する必要があるため、必ずコピーしてください。
...
Choose your action: A,E,L,R or Q: e
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): 001
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: 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: i
正しいオプションを入力したら、指示に従ってサーバーから生成されたキーをコピーして貼り付けます。
Agent information:
ID:001
Name:agentUbuntu
IP Address:104.236.222.251
Confirm adding it?(y/n): y
Added.
** Press ENTER to return to the main menu.
メインメニューに戻り、qと入力して終了します。
Choose your action: I or Q: q
ステップ7—ファイアウォールを通過するUDPポート1514トラフィックを許可する
エージェントとサーバー間の通信はUDPポート1514を介して行われるため、そのポートを通過するトラフィックを許可するには、両端のiptablesにルールを追加する必要があります。
まず、エージェントとサーバーの両方でドロップルールを一時的に削除します。
sudo iptables -D INPUT -j DROP
ルールをOSSECserver に追加するには、OSSECエージェントのIPを使用して次のように入力します。
iptables -A INPUT -p UDP --dport 1514 -s your_agent_ip -j ACCEPT
次に、エージェントで、OSSECサーバーのIPを使用して次のように入力します。
iptables -A INPUT -p UDP --dport 1514 -s your_server_ip -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 001
を使用してOSSECサーバーから再起動することもできます。ここで、001はエージェントのIDです。
OSSECサーバーでは、次のように入力してアクティブなエージェントを一覧表示できます。
/var/ossec/bin/list_agents -c
以下のような出力が得られた場合は、サーバーとエージェントが通信していることがわかります。
agentUbuntu-111.111.111.111 is active.
結論
この時点で、サーバーとエージェントの両方からの通知を含むアラートをサーバーから受信しているはずです。 エージェントに関連するアラートの件名は、OSSEC Notification - (agentUbuntu) 111.111.111.111 - Alert level 3
のようになります。 これらのメールの本文はOSSEC HIDS Notification
で始まります。
サーバーとエージェントが通信できることを確認したら、両方のインストールをさらにカスタマイズできます。 OSSECサーバーおよびエージェントでファイルの追加を警告し、リアルタイムで警告するために行うことができる変更は、ローカルOSSECインストールで行うことができる変更と同じです。 これらの変更を行う手順については、 Ubuntu14.04にOSSECセキュリティ通知をインストールおよび構成する方法の関連セクションを参照してください。
監視するドロップレットが3つ以上ある場合は、この記事と同じ手順を使用して、それらをOSSECエージェントとしてセットアップに追加できます。 これを設定しているときに問題が発生した場合、手がかりを探す最初の場所は、/var/ossec/logs/ossec.log
にあるエラーログです。
この記事では、サーバーエージェントモードでのOSSECのセットアップの基本についてのみ説明します。 詳細については、http://ossec-docs.readthedocs.orgを参照してください。