序章

サーバーでの許可されたアクティビティと許可されていないアクティビティをどのように追跡しますか?

OSSECは、サーバーにインストールしてそのアクティビティを追跡できるツールの1つです。

OSSECは、オープンソースのホストベースの侵入検知システム(HIDS)であり、ログ分析、整合性チェック、Windowsレジストリ監視、ルートキット検出、時間ベースのアラート、およびアクティブな応答を実行します。 サーバー/エージェントモードで1台のサーバーまたは数千台のサーバーを監視するために使用できます。

適切に構成されている場合、OSSECは、サーバーで何が起こっているかをリアルタイムで確認できます。

このチュートリアルでは、Ubuntu14.04LTSを実行している1台のDigitalOceanサーバーを監視するようにOSSECをインストールおよび構成する方法を示します。 ファイルが変更、削除、またはサーバーに追加された場合に、OSSECがリアルタイムで電子メールで通知するようにOSSECを構成します。 これは、OSSECが提供する他の整合性チェック機能に追加されます。

OSSECは、ファイルの変更を通知する以上のことを行うことができますが、そのすべての機能を利用する方法を示すには、1つの記事だけでは不十分です。

** OSSECの利点は何ですか?

インストールと構成の部分に入る前に、OSSECを使用することで得られる具体的な利点をいくつか見てみましょう。

以下は、ファイル/var/ossec/etc/ossec.confが変更されたことを示すOSSECからの電子メール通知の例です。

OSSEC HIDS Notification.
2014 Nov 29 09:45:15

Received From: kuruji->syscheck
Rule: 552 fired (level 7) -> "Integrity checksum changed again (3rd time)."
Portion of the log(s):

Integrity checksum changed for: '/var/ossec/etc/ossec.conf'
Size changed from '7521' to '7752'

このようなアラートを受信し、そのファイルが変更されることを予期していなかった場合は、サーバーで不正な処理が行われたことがわかります。

これは、ファイル/etc/ossec/testossec.txtが削除されたことを示すOSSECからの別の電子メールアラートの例です。

OSSEC HIDS Notification.
2014 Nov 29 10:56:14

Received From: kuruji->syscheck
Rule: 553 fired (level 7) -> "File deleted. Unable to retrieve checksum."
Portion of the log(s):

File /etc/ossec/testossec.txt was deleted. Unable to retrieve checksum.

繰り返しますが、問題のファイルを削除しなかった場合は、サーバーで何が起こっているのかを把握する必要があります。

さて、上記がOSSECをインストールしたいと思うほどあなたをくすぐったなら、ここにあなたが最初にやらなければならないいくつかのことがあります。

前提条件

もちろん、監視するサーバーが必要です。 このチュートリアルは、すでに1つあり、使用できるように設定されていることを前提としています。 今日セットアップしたばかりのサーバーでも、何ヶ月も使用しているサーバーでもかまいません。 最も重要なことは、それにアクセスでき、SSH経由でログインできることです。 サーバーにSSHで接続する方法がまだわからない場合は、OSSECの設定を行う必要はありません。

  • Ubuntu14.04サーバー
  • サーバー上にsudoユーザーを作成する必要があります。 この例では、ユーザーの名前はsammyです。 ただし、このチュートリアルは、rootユーザーの方がはるかに簡単に完了できます。
sudo su
  • オプション:ローカルSMTPサーバーからメールを送信する場合は、Postfixをインストールして簡単なメール送信を行う必要があります
  • OSSECのインストールにはコンパイルが含まれるため、gccmakeをインストールする必要があります。 build-essentialという1つのパッケージをインストールすることで、両方をインストールできます。
  • また、inotify-toolsというパッケージをインストールする必要があります。これは、リアルタイムアラートが機能するために必要です。

必要なすべてのパッケージをインストールするには、最初にサーバーを更新します。

apt-get update

パッケージをインストールします。

apt-get install build-essential inotify-tools

予備知識が整理されたので、楽しい部分に取り掛かりましょう。

ステップ1—OSSECをダウンロードして確認する

このステップでは、OSSECtarballとその暗号化チェックサムを含むファイルをダウンロードします。

これはセキュリティに関する記事なので、有効なソフトウェアをインストールしていることを確認するために、少し余分な作業を行います。 ダウンロードしたOSSECtarballのMD5およびSHA1チェックサムを生成し、それらをチェックサムファイルのチェックサムと比較するという考え方です。 それらが一致する場合は、tarballが改ざんされていないと見なすことができます。

執筆時点では、OSSECの最新のサーバーエディションはバージョン2.8.1です。 ダウンロードするには、次のように入力します。

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

両方のファイルが配置されていることを確認するには、次のように入力します。

ls -l ossec*

次のファイルが表示されます。

ossec-hids-2.8.1-checksum.txt
ossec-hids-2.8.1.tar.gz

次に、catコマンドを使用してチェックサムファイルを調べてみましょう。

cat ossec-hids-2.8.1-checksum.txt

期待される出力:

MD5(ossec-hids-2.8.1.tar.gz)= c2ffd25180f760e366ab16eeb82ae382
SHA1(ossec-hids-2.8.1.tar.gz)= 0ecf1df09558dc8bb4b6f65e1fb2ca7a7df9817c

上記の出力で重要な部分は、=記号の右側にある部分です。 これらは、tarballのMD5およびSHA1チェックサムです。

次に、tarball用に生成したチェックサムがダウンロードしたチェックサムと一致することを確認します。

tarballのMD5sumを生成するには、次のように入力します。

md5sum ossec-hids-2.8.1.tar.gz

期待される出力:

c2ffd25180f760e366ab16eeb82ae382  ossec-hids-2.8.1.tar.gz

生成されたMD5チェックサムをチェックサムファイルのチェックサムと比較します。 それらは一致する必要があります。

次のように入力して、SHA1チェックサムについても同じようにします。

sha1sum  ossec-hids-2.8.1.tar.gz

期待される出力:

0ecf1df09558dc8bb4b6f65e1fb2ca7a7df9817c  ossec-hids-2.8.1.tar.gz

両方が一致する場合、あなたは行ってもいいです。 ステップ2は手招きします。

ステップ2—OSSECをインストールします

このステップでは、OSSECをインストールします。

OSSECは、サーバーエージェントローカル、またはハイブリッドモードでインストールできます。 このインストールは、OSSECがインストールされているサーバーを監視するためのものです。 これは、ローカルのインストールを意味します。

インストールを開始する前に、ファイルを展開する必要があります。 次のように入力します。

tar -zxf ossec-hids-2.8.1.tar.gz

その後、ossec-hids-2.8.1という名前のディレクトリが作成されます。 インストールを開始するには、次のように入力して、そのディレクトリに(cd)を変更する必要があります。

cd ossec-hids-2.8.1

現在のディレクトリの内容を確認するには、次のように入力してlsコマンドを使用します。

ls -lgG

次のファイルとディレクトリが表示されます。

total 100
drwxrwxr-x  4  4096 Sep  8 21:03 active-response
-rw-rw-r--  1   542 Sep  8 21:03 BUGS
-rw-rw-r--  1   289 Sep  8 21:03 CONFIG
drwxrwxr-x  6  4096 Sep  8 21:03 contrib
-rw-rw-r--  1  3196 Sep  8 21:03 CONTRIBUTORS
drwxrwxr-x  4  4096 Sep  8 21:03 doc
drwxrwxr-x  4  4096 Sep  8 21:03 etc
-rw-rw-r--  1  1848 Sep  8 21:03 INSTALL
-rwxrwxr-x  1 32019 Sep  8 21:03 install.sh
-rw-rw-r--  1 24710 Sep  8 21:03 LICENSE
-rw-rw-r--  1  1664 Sep  8 21:03 README.md
drwxrwxr-x 30  4096 Sep  8 21:03 src

そのリストで私たちが関心を持っている唯一のファイルはinstall.shです。 これがOSSECインストールスクリプトです。 インストールを開始するには、次のように入力します。

./install.sh

インストールに関するいくつかの質問に答えるように求められます。

あなたに必要とされる最初の仕事は言語の選択です。 以下の出力に示すように、デフォルトは英語です。 インストールプロセス全体を通じて、選択する必要がある場合は、角かっこで囲まれたエントリがデフォルトです。 デフォルトが希望する場合は、ENTERキーを押してデフォルトを受け入れます。 メールアドレスを入力する以外に、何をしているのかわからない限り、すべてのデフォルトを受け入れることをお勧めします。

エントリはで表示されます。

したがって、言語が英語の場合は、ENTERを押してください。 それ以外の場合は、言語の2文字を入力して、Enterキーを押します。

  (en/br/cn/de/el/es/fr/hu/it/jp/nl/pl/ru/sr/tr) [en]:

言語を選択すると、次のように表示されます。

OSSEC HIDS v2.8 Installation Script - http://www.ossec.net

 You are about to start the installation process of the OSSEC HIDS.
 You must have a C compiler pre-installed in your system.
 If you have any questions or comments, please send an e-mail
 to [email protected] (or [email protected]).

  - System: Linux kuruji 3.13.0-36-generic
  - User: root
  - Host: kuruji

  -- Press ENTER to continue or Ctrl-C to abort. --

ENTERを押すと、次のようになります。

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

localと入力し、Enterキーを押します。 あなたは得るべきです:

  - Local installation chosen.

2- Setting up the installation environment.

  - Choose where to install the OSSEC HIDS [/var/ossec]:

デフォルトを受け入れて、Enterキーを押します。 その後、次のようになります。

    - Installation will be made at  /var/ossec .

3- Configuring the OSSEC HIDS.

  3.1- Do you want e-mail notification? (y/n) [y]:

ENTERを押します。

  - What's your e-mail address? [email protected]

OSSECからの通知を受信する電子メールアドレスを入力します。

  - We found your SMTP server as: mail.example.com.
  - Do you want to use it? (y/n) [y]:

--- Using SMTP server:  mail.example.com.

使用する特定のSMTPサーバー設定がない場合は、Enterキーを押します。

次に、OSSECに実行する必要のあるチェックを知らせます。 スクリプトからのプロンプトに応答して、ENTERを押してデフォルトを受け入れます。

整合性チェックデーモンの場合はENTER。

  3.2- Do you want to run the integrity check daemon? (y/n) [y]:

- Running syscheck (integrity check daemon).

ルートキット検出の場合はENTER。

  3.3- Do you want to run the rootkit detection engine? (y/n) [y]:

- Running rootcheck (rootkit detection).

アクティブな応答の場合はENTER。

  3.4- Active response allows you to execute a specific command based on the events received.  

   Do you want to enable active response? (y/n) [y]:

   Active response enabled.

ファイアウォールドロップ応答のデフォルトを受け入れます。 出力にいくつかのIPv6オプションが表示される場合があります-それは問題ありません。

  Do you want to enable the firewall-drop response? (y/n) [y]:

- firewall-drop enabled (local) for levels >= 6

   - Default white list for the active response:
      - 8.8.8.8
      - 8.8.4.4

   - Do you want to add more IPs to the white list? (y/n)? [n]:

ここにIPアドレスを追加できますが、必須ではありません。

OSSECは、監視するファイルのデフォルトリストを表示します。 インストール後にファイルを追加できるので、Enterキーを押します。

3.6- Setting the configuration to analyze the following logs:
    -- /var/log/auth.log
    -- /var/log/syslog
    -- /var/log/dpkg.log

 - If you want to monitor any other file, just change
   the ossec.conf and add a new localfile entry.
   Any questions about the configuration can be answered
   by visiting us online at http://www.ossec.net .


   --- Press ENTER to continue ---

この時点で、インストーラーはOSSECをインストールするために必要なすべての情報を持っています。 キックバックして、インストーラーに任せましょう。 インストールには約5分かかります。 インストールが成功すると、OSSECを起動して構成する準備が整います。

注:インストールが失敗する理由の1つは、コンパイラがインストールされていない場合です。 その場合、次のようなエラーが発生します。

5- Installing the system
 - Running the Makefile
./install.sh: 85: ./install.sh: make: not found

 Error 0x5.
 Building error. Unable to finish the installation.

そのエラーが発生した場合は、チュートリアルの「前提条件」セクションで説明されているように、build-essentialをインストールする必要があります。

インストールが成功すると、次のタイプの出力が表示されます。

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

 - Configuration finished properly.

 - To start OSSEC HIDS:
                /var/ossec/bin/ossec-control start

 - To stop OSSEC HIDS:
                /var/ossec/bin/ossec-control stop

 - The configuration can be viewed or modified at /var/ossec/etc/ossec.conf

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

これでOSSECがインストールされました。 次のステップはそれを開始することです。

ステップ3—OSSECを起動します

デフォルトでは、OSSECは起動時に起動するように構成されていますが、初回は手動で起動する必要があります。

現在のステータスを確認する場合は、次のように入力します。

/var/ossec/bin/ossec-control status

期待される出力:

ossec-monitord not running...
ossec-logcollector not running...
ossec-syscheckd not running...
ossec-analysisd not running...
ossec-maild not running...
ossec-execd not running...

これは、OSSECのプロセスが実行されていないことを示しています。

OSSECを開始するには、次のように入力します。

/var/ossec/bin/ossec-control start

あなたはそれが起動するのを見るはずです:

Starting OSSEC HIDS v2.8 (by Trend Micro Inc.)...
Started ossec-maild...
Started ossec-execd...
Started ossec-analysisd...
Started ossec-logcollector...
Started ossec-syscheckd...
Started ossec-monitord...
Completed.

ステータスを再度確認すると、OSSECが実行中であることを確認できます。

/var/ossec/bin/ossec-control status

この出力は、OSSECが実行されていることを示しています。

ossec-monitord is running...
ossec-logcollector is running...
ossec-syscheckd is running...
ossec-analysisd is running...
ossec-maild is running...
ossec-execd is running...

OSSECを起動した直後に、次のような電子メールが届くはずです。

OSSEC HIDS Notification.
2014 Nov 30 11:15:38

Received From: ossec2->ossec-monitord
Rule: 502 fired (level 3) -> "Ossec server started."
Portion of the log(s):

ossec: Ossec started.

これは、OSSECが機能していることの別の確認であり、監視するように構成されていることが発生するたびに電子メールアラートを送信します。 再起動しても、OSSECからメールが届きます。

このメールがすぐに届かなくても心配しないでください。 OSSECサーバーの電子メールがメールプロバイダーに届くようにするために、電子メール設定(チュートリアルの後半で説明します)を微調整する必要がある場合があります。 これは、GoogleやFastmailなどの一部のサードパーティの電子メールサービスプロバイダーに特に当てはまります。

ステップ4—ファイル変更に関するリアルタイムアラート用にOSSECを構成する

次に、OSSECのファイルとディレクトリを理解し、OSSECの監視とアラートの設定を変更する方法を学びましょう。

このチュートリアルでは、指定したディレクトリにファイルが変更、削除、または追加されるたびに通知するようにOSSECを変更します。

OSSECのディレクトリ構造を理解する

OSSECのデフォルトディレクトリは、root(管理者)権限を持つユーザーのみがアクセスできる chroot -ed(サンドボックス)環境です。 標準ユーザーは、cd/var/ossecに入れたり、その中のファイルを一覧表示したりすることはできません。 ただし、root(またはadmin)ユーザーとしては可能です。

したがって、次のように入力して、cdをインストールディレクトリに追加します。

cd /var/ossec

新しい作業ディレクトリ内のファイルを一覧表示するには、次のように入力します。

ls -lgG

次のファイルとディレクトリが表示されます。

total 40
dr-xr-x---  3 4096 Nov 26 14:56 active-response
dr-xr-x---  2 4096 Nov 20 20:56 agentless
dr-xr-x---  2 4096 Nov 20 20:56 bin
dr-xr-x---  3 4096 Nov 29 00:49 etc
drwxr-x---  5 4096 Nov 20 20:56 logs
dr-xr-x--- 11 4096 Nov 20 20:56 queue
dr-xr-x---  4 4096 Nov 20 20:56 rules
drwxr-x---  5 4096 Nov 20 21:00 stats
dr-xr-x---  2 4096 Nov 20 20:56 tmp
dr-xr-x---  3 4096 Nov 29 18:34 var
  • OSSECのメイン設定ファイルは/var/ossec/etcディレクトリにあります。
  • 事前定義されたルールは/var/ossec/rulesディレクトリにあります
  • OSSECの管理に使用されるコマンドは/var/ossec/binにあります
  • /var/ossec/logsディレクトリに注意してください。 OSSECがエラーをスローした場合、そのディレクトリの/var/ossec/logs/ossec.logファイルが最初に表示されます

メイン設定ファイル、/ var / ossec / etc / ossec.conf

メイン設定ファイルにアクセスするには、/var/ossec/etcに変更する必要があります。 これを行うには、次のように入力します。

cd /var/ossec/etc

そのディレクトリでlsを実行すると、次のファイルとディレクトリが表示されます。

ls -lgG

結果:

total 120
-r--r----- 1 97786 Sep  8 22:03 decoder.xml
-r--r----- 1  2842 Sep  8 22:03 internal_options.conf
-r--r----- 1  3519 Oct 30 13:46 localtime
-r--r----- 1  7752 Nov 29 09:45 ossec.conf
-rw-r----- 1    87 Nov 20 20:56 ossec-init.conf
drwxrwx--- 2  4096 Nov 20 21:00 shared

主な設定ファイルは/var/ossec/etc/ossec.confです。

念のため、ファイルを変更する前に、バックアップコピーを作成してください。 そのコピーを作成するには、次のようにcpコマンドを使用します。

cp /var/ossec/etc/ossec.conf /var/ossec/etc/ossec.conf.00

変更が機能しない場合やシステムを台無しにした場合は、コピーに戻して通常の状態に戻すことができます。 これは、常に利用する必要がある最も単純な災害復旧の方法です。

次に、nanoエディターを使用してossec.confを開きます。

nano /var/ossec/etc/ossec.conf

構成ファイルは、いくつかのセクションを持つ非常に長いXMLファイルです。

メール設定

注:特にGmailアドレスへの送信など、より厳格なメールプロバイダーに送信する場合、電子メールは一般的に厄介です。 スパムを確認し、必要に応じて設定を微調整します。

表示される最初の構成オプションは、インストール時に指定した電子メールのクレデンシャルです。 別のメールアドレスやSMTPサーバーを指定する必要がある場合は、ここで指定します。

<global>
    <email_notification>yes</email_notification>
    <email_to>[email protected]</email_to>
    <smtp_server>mail.example.com.</smtp_server>
    <email_from>ossecm@ossec_server</email_from>
</global>

デフォルトでは、OSSECは1時間に12通の電子メールを送信するため、電子メールアラートが殺到することはありません。 <email_maxperhour>N</email_maxperhour>設定をそのセクションに追加して、次のように表示することにより、その値を増減できます。

<global>
    <email_notification>yes</email_notification>
    <email_to>[email protected]</email_to>
    <smtp_server>mail.example.com.</smtp_server>
    <email_from>ossecm@ossec_server</email_from>
    <email_maxperhour>N</email_maxperhour>
</global>

Nを、1から9999の間の1時間あたりに受信するメールの数に置き換えてください。

一部のサードパーティの電子メールサービスプロバイダー(GoogleやFastmailなど)は、<email_from>アドレスに上記のコードブロックのような有効なドメイン部分が含まれていない場合、OSSECによって送信されたアラートをサイレントにドロップします。 これを回避するには、その電子メールアドレスに有効なドメイン部分が含まれていることを確認してください。 例えば:

<global>
    <email_notification>yes</email_notification>
    <email_to>[email protected]</email_to>
    <smtp_server>mail.example.com.</smtp_server>
    <email_from>sammy@ossec_server.com</email_from>
</global>

<email_to>アドレスと<email_from>アドレスは同じにすることができます。 例えば:

<global>
    <email_notification>yes</email_notification>
    <email_to>[email protected]</email_to>
    <smtp_server>mail.example.com.</smtp_server>
    <email_from>[email protected]</email_from>
</global>

外部の電子メールプロバイダーのSMTPサーバーを使用したくない場合は、独自のSMTPサーバーを指定できます(構成されている場合)。 (これはこのチュートリアルではカバーされていませんが、これらの手順に従ってPostfixをインストールできます。)SMTPサーバーがOSSECと同じドロップレットで実行されている場合は、<smtp_server>設定をlocalhost。 例えば:

<global>
    <email_notification>yes</email_notification>
    <email_to>[email protected]</email_to>
    <smtp_server>localhost</smtp_server>
    <email_from>[email protected]</email_from>
</global>

OSSECはデフォルトではリアルタイムのアラートを送信しませんが、このチュートリアルではリアルタイムの通知が必要になるため、これを変更する必要があります。

それでもOSSECから期待される電子メールを受信しない場合は、/var/ossec/logs/ossec.logのログでメールエラーを確認してください。

メールエラーの例:

2014/12/18 17:48:35 os_sendmail(1767): WARN: End of DATA not accepted by server
2014/12/18 17:48:35 ossec-maild(1223): ERROR: Error Sending email to 74.125.131.26 (smtp server)

これらのエラーメッセージを使用して、電子メール通知の受信に関する問題をデバッグするのに役立てることができます。

スキャンの頻度

ossec.conf<syscheck>セクションで、次のように開始します。

<syscheck>
    <!-- Frequency that syscheck is executed - default to every 22 hours -->
    <frequency>79200</frequency>

新しいファイルの作成に関するアラートをオンにします。 <alert_new_files>yes</alert_new_files>という行を追加して、次のようにします。

<syscheck>
    <!-- Frequency that syscheck is executed - default to every 22 hours -->
    <frequency>79200</frequency>

    <alert_new_files>yes</alert_new_files>

テストの目的で、システムチェックの頻度をはるかに低く設定することもできます。 デフォルトでは、システムチェックは22時間ごとに実行されます。 テストの目的で、これを1分に1回、つまり60秒に設定することをお勧めします。 テストが終了したら、これを正常な値に戻します。

<syscheck>
    <!-- Frequency that syscheck is executed - default to every 22 hours -->
    <frequency>60</frequency>

    <alert_new_files>yes</alert_new_files>

ディレクトリとファイルの変更設定

その直後に、OSSECが監視するシステムディレクトリのリストが表示されます。 それは次のようになります:

<!-- Directories to check  (perform all possible verifications) -->
<directories check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
<directories check_all="yes">/bin,/sbin</directories>

各行に設定report_changes="yes" realtime="yes"を追加して、リアルタイム監視を有効にしましょう。 これらの行を変更して、次のようにします。

<!-- Directories to check  (perform all possible verifications) -->
<directories report_changes="yes" realtime="yes" check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
<directories report_changes="yes" realtime="yes" check_all="yes">/bin,/sbin</directories>

report_changes="yes"はまさにその通りです。 realtime="yes"についても同様です。

OSSECが監視するように構成されているディレクトリのデフォルトのリストに加えて、監視する新しいディレクトリを追加できます。 この次のセクションでは、OSSECに/home/sammy/var/wwwを監視するように指示します。 そのために、既存の行のすぐ下に新しい行を追加して、そのセクションが次のようになるようにします。

<!-- Directories to check  (perform all possible verifications) -->
<directories report_changes="yes" realtime="yes" check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
<directories report_changes="yes" realtime="yes" check_all="yes">/bin,/sbin</directories>

<directories report_changes="yes" realtime="yes" restrict=".php|.js|.py|.sh|.html" check_all="yes">/home/sammy,/var/www</directories>

必要な設定に一致するようにディレクトリを変更する必要があります。 ユーザーの名前がsammyでない場合は、ホームディレクトリへのパスを変更する必要があります。

監視する新しいディレクトリ用に、restrictオプションを追加しました。これは、指定されたファイル形式のみを監視するようにOSSECに指示します。 このオプションを使用する必要はありませんが、画像ファイルなど、OSSECに警告させたくない他のファイルがある場合に便利です。

ossec.confの変更は以上です。 ファイルを保存して閉じることができます。

/var/ossec/rules/local_rules.xmlのローカルルール

次に変更するファイルは/var/ossec/rulesディレクトリにあるため、cdと入力して次のように入力します。

cd /var/ossec/rules

そのディレクトリでlsを実行すると、次のようなXMLファイルが多数表示されます。

ls -lgG

省略された出力:

total 376
-r-xr-x--- 1  5882 Sep  8 22:03 apache_rules.xml
-r-xr-x--- 1  2567 Sep  8 22:03 arpwatch_rules.xml
-r-xr-x--- 1  3726 Sep  8 22:03 asterisk_rules.xml
-r-xr-x--- 1  4315 Sep  8 22:03 attack_rules.xml

...

-r-xr-x--- 1  1772 Nov 30 17:33 local_rules.xml

...

-r-xr-x--- 1 10359 Sep  8 22:03 ossec_rules.xml

...

現在私たちが関心を持っているのは、local_rules.xmlossec_rules.xmlの2つのファイルだけです。 後者にはOSSECのデフォルトのルール定義が含まれ、前者にはカスタムルールを追加します。 つまり、local_rules.xmlを除いて、このディレクトリ内のファイルは変更しません。

ossec_rules.xmlのデフォルトのルール定義は、ローカルルールに変更してコピーできるように、確認するのに役立ちます。 ossec_rules.xmlでは、ファイルが監視対象ディレクトリに追加されたときに発生するルールはルール554です。 デフォルトでは、OSSECはそのルールがトリガーされたときにアラートを送信しないため、ここでのタスクはその動作を変更することです。 デフォルトバージョンでのルール554は次のようになります。

<rule id="554" level="0">
<category>ossec</category>
<decoded_as>syscheck_new_entry</decoded_as>
<description>File added to the system.</description>
<group>syscheck,</group>
</rule>

ルールのlevel0に設定されている場合、OSSECはアラートを送信しません。 このルールを変更して、アラートレベルを上げます。 デフォルトファイルで変更する代わりに、ルールをlocal_rules.xmlにコピーし、アラートをトリガーできるように変更します。

これを行うには、/var/ossec/rules/local_rules.xmlファイルのバックアップコピーを作成します。

cp /var/ossec/rules/local_rules.xml /var/ossec/rules/local_rules.xml.00

nanoでファイルを編集します。

nano /var/ossec/rules/local_rules.xml

ファイルの最後に新しいルールを追加します。 <group> ... </group>タグ内にあることを確認してください。

<rule id="554" level="7" overwrite="yes">
<category>ossec</category>
<decoded_as>syscheck_new_entry</decoded_as>
<description>File added to the system.</description>
<group>syscheck,</group>
</rule>

ファイルを保存して閉じます。

これらはすべて必要な変更です。

OSSECを再起動します

残っているのはOSSECを再起動することだけです。これは、OSSECのファイルを変更するたびに実行する必要があります。 OSSECを再起動するには、次のように入力します。

/var/ossec/bin/ossec-control restart

すべてが正常に機能している場合は、OSSECから(再)開始したことを通知する電子メールを受信する必要があります。

ステップ5—ファイル変更アラートをトリガーする

また、OSSECが監視するように構成されているディレクトリで何が起こっているかに応じて、次のような電子メールが届くはずです。

次に、/home/sammyでサンプルファイルを作成してみてください

touch /home/sammy/index.html

ちょっと待って。 コンテンツを追加します。

nano /home/sammy/index.html

ちょっと待って。 ファイルを削除します。

rm /home/sammy/index.html

次のような通知の受信を開始する必要があります。

OSSEC HIDS Notification.
2014 Nov 30 18:03:51

Received From: ossec2->syscheck
Rule: 550 fired (level 7) -> "Integrity checksum changed."
Portion of the log(s):

Integrity checksum changed for: '/home/sammy/index.html'
Size changed from '21' to '46'
What changed:
1c1,4
< This is an html file
---

    <!doctype html> <p>This is an html file</p>

Old md5sum was: '4473d6ada73de51b5b36748627fa119b'
New md5sum is : 'ef36c42cd7014de95680d656dec62de9'
Old sha1sum was: '96bd9d685a7d23b20abd7d8231bb215521bcdb6c'
New sha1sum is : '5ab0f31c32077a23c71c18018a374375edcd0b90'

またはこれ:

OSSEC HIDS Notification.
2014 Dec 01 10:13:31

Received From: ossec2->syscheck
Rule: 554 fired (level 7) -> "File added to the system."
Portion of the log(s):

New file '/var/www/header.html' added to the file system.

注: OSSECは、ファイルの追加についてはリアルタイムのアラートを送信せず、ファイルの変更と削除についてのみアラートを送信します。 ファイルの追加に関するアラートは、ossec.confの頻度チェック時間によって管理される完全なシステムチェックの後に送信されます。

nano /var/ossec/etc/ossec.conf

frequencyの設定:

<syscheck>
    <!-- Frequency that syscheck is executed - default to every 22 hours -->
    <frequency>79200</frequency>

繰り返しになりますが、メールが届かない場合は、スパムを確認し、/var/ossec/logs/ossec.logを確認し、メールログを確認してください。

結論

これにより、OSSECが提供するものを味わうことができたと思います。 より高度なセットアップと構成が可能であるため、サーバーを監視および保護するためにOSSECを展開する方法に関する今後の記事にご注目ください。

OSSECの詳細については、プロジェクトのWebサイトhttp://www.ossec.net/にアクセスしてください。