CentOS 7にホスト型IDS『OSSEC』をサーバ・エージェント方式で導入する
Pocket

『OSSEC』はログ監視やファイルの改ざん検知、Rootkitの検出などが行える、WindowsやLinuxで利用できるホスト型IDSだ。
今回は、この『OSSEC』をCentOS 7にサーバ・エージェント方式で導入し、エージェントを導入したサーバへの侵入検知を行う。OSSECには公式のWebコンソールも一応用意されているのだが、あまりコミットされてないし2016年12月時点では脆弱性もそのままっぽいので今回は利用しない。

なお、OSSECのサーバ⇔クライアント間通信ではUDPの1514ポートを利用するので、間にファイアウォールなどがあるようであれば事前に開放しておくこと。

 

1.OSSEC サーバ・エージェントのインストール

1-1.OSSEC サーバのインストール

まず事前対応として、firewalldが動作しているようであれば、以下のコマンドを実行して1514ポートを開放する。

firewall-cmd --permanent --zone=public --add-port=1514/udp
firewall-cmd --reload

 

次に、サーバ側で以下のコマンドを実行しリポジトリを追加、OSSECのパッケージを導入する。

wget -q -O - http://www.atomicorp.com/installers/atomic | sh
[root@BS-PUB-SEC ~]# wget -q -O - http://www.atomicorp.com/installers/atomic | sh

Atomic Free Unsupported Archive installer, version 3.1

BY INSTALLING THIS SOFTWARE AND BY USING ANY AND ALL SOFTWARE
PROVIDED BY ATOMICORP LIMITED YOU ACKNOWLEDGE AND AGREE:

THIS SOFTWARE AND ALL SOFTWARE PROVIDED IN THIS REPOSITORY IS
PROVIDED BY ATOMICORP LIMITED AS IS, IS UNSUPPORTED AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ATOMICORP LIMITED, THE
COPYRIGHT OWNER OR ANY CONTRIBUTOR TO ANY AND ALL SOFTWARE PROVIDED
BY OR PUBLISHED IN THIS REPOSITORY BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.

For supported software packages please contact us at:

  sales@atomicorp.com

Do you agree to these terms? (yes/no) [Default: yes] [[Enter]]

Configuring the [atomic] repo archive for this system

Installing the Atomic GPG keys: OK

Downloading atomic-release-1.0-21.el7.art.noarch.rpm: Preparing...                             ################################# [100%]
Updating / installing...
   1:atomic-release-1.0-21.el7.art    ################################# [100%]
OK

Enable repo by default? (yes/no) [Default: yes]: [[Enter]]


The Atomic repo has now been installed and configured for your system
The following channels are available:
  atomic          - [ACTIVATED] - contains the stable tree of ART packages
  atomic-testing  - [DISABLED]  - contains the testing tree of ART packages
  atomic-bleeding - [DISABLED]  - contains the development tree of ART packages

 

Serverとして動作させるためのパッケージを導入、サービスを起動する。

yum install -y ossec-hids ossec-hids-server
/etc/init.d/ossec-hids start

 

1-2.OSSEC エージェントのインストール

次に、監視対象となるノードにOSSEC エージェントをインストールする。
OSSEC サーバと同様に、リポジトリの追加を行う。

wget -q -O - http://www.atomicorp.com/installers/atomic | sh

 

エージェントパッケージを導入する。

yum install -y ossec-hids ossec-hids-client

 

エージェントの設定ファイルを変更し、OSSEC サーバに関する情報を記述してやる。

●/var/ossec/etc/ossec.conf

<!-- OSSEC example config -->

<ossec_config>
  <client>
    <server-ip>OSSEC サーバのIPアドレス</server-ip>
  </client>

  <syscheck>
    <!-- Frequency that syscheck is executed -- default every 2 hours -->
    <frequency>7200</frequency>

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

    <!-- Files/directories to ignore -->
    <ignore>/etc/mtab</ignore>
    <ignore>/etc/mnttab</ignore>
    <ignore>/etc/hosts.deny</ignore>
    <ignore>/etc/mail/statistics</ignore>
    <ignore>/etc/random-seed</ignore>
    <ignore>/etc/adjtime</ignore>
    <ignore>/etc/httpd/logs</ignore>
    <ignore>/etc/utmpx</ignore>
    <ignore>/etc/wtmpx</ignore>
    <ignore>/etc/cups/certs</ignore>
  </syscheck>

  <rootcheck>
    <rootkit_files>/var/ossec/etc/shared/rootkit_files.txt</rootkit_files>
    <rootkit_trojans>/var/ossec/etc/shared/rootkit_trojans.txt</rootkit_trojans>
  </rootcheck>

  <localfile>
    <log_format>syslog</log_format>
    <location>/var/log/messages</location>
  </localfile>

  <localfile>
    <log_format>syslog</log_format>
    <location>/var/log/secure</location>
  </localfile>

  <localfile>
    <log_format>syslog</log_format>
    <location>/var/log/maillog</location>
  </localfile>

  <localfile>
    <log_format>apache</log_format>
    <location>/var/log/httpd/error_log</location>
  </localfile>

  <localfile>
    <log_format>apache</log_format>
    <location>/var/log/httpd/access_log</location>
  </localfile>

</ossec_config>
Sponsored Links

2.OSSECのサーバ・エージェント間の連携を行う

OSSECサーバ側でエージェントの登録とエージェント側に設定する鍵ファイルを発行する。
以下のコマンドを実行して対話式に設定を行っていく。

/var/ossec/bin/manage_agents
[root@BS-PUB-SEC ~]# /var/ossec/bin/manage_agents


****************************************
* OSSEC HIDS v2.8.3 Agent manager.     *
* The following options are available: *
****************************************
   (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 #(エージェントの登録)

- Adding a new agent (use '\q' to return to the main menu).
  Please provide the following:
   * A name for the new agent: BS-PUB-CENT7-01
   * The IP Address of the new agent: 192.168.100.XXX
   * An ID for the new agent[001]: [[Enter]]
Agent information:
   ID:001
   Name:BS-PUB-CENT7-01
   IP Address:172.20.100.118

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


****************************************
* OSSEC HIDS v2.8.3 Agent manager.     *
* The following options are available: *
****************************************
   (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: E #(鍵ファイルの発行)

Available agents:
   ID: 001, Name: BS-PUB-CENT7-01, IP: 192.168.100.XXX
Provide the ID of the agent to extract the key (or '\q' to quit): 001

Agent key information for '001' is:
MDAxIEJTLVBVQi1DRU5UNy0wMSAxNzIuMjAuMTAwLjExOCA2NGU4NTk1OGI4N2I1NjI2MmI1M2I3OTU5NGRiMTU5Njg2MmE0NWZjNmFlMDhjYjM5ZGZhMDk1YzFmZDBiNDRi

** Press ENTER to return to the main menu.



****************************************
* OSSEC HIDS v2.8.3 Agent manager.     *
* The following options are available: *
****************************************
   (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: Q

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

manage_agents: Exiting ..

 

OSSECサーバ側でエージェント登録・鍵の発行が完了したら、OSSEC エージェント側で鍵のインポート(といっても、鍵文字列を張り付けるだけだが…)およびエージェントサービスの起動を行う。
まず、以下のコマンドで鍵のインポートを行う。

/var/ossec/bin/manage_client
[root@BS-PUB-CENT7-01 ~]# /var/ossec/bin/manage_client


****************************************
* OSSEC HIDS v2.8.3 Agent manager.     *
* The following options are available: *
****************************************
   (I)mport key from the server (I).
   (Q)uit.
Choose your action: I or Q: I

* Provide the Key generated by the server.
* The best approach is to cut and paste it.
*** OBS: Do not include spaces or new lines.

Paste it here (or '\q' to quit): MDAxIEJTLVBVQi1DRU5UNy0wMSAxNzIuMjAuMTAwLjExOCA2NGU4NTk1OGI4N2I1NjI2MmI1M2I3OTU5NGRiMTU5Njg2MmE0NWZjNmFlMDhjYjM5ZGZhMDk1YzFmZDBiNDRi

Agent information:
   ID:001
   Name:BS-PUB-CENT7-01
   IP Address:192.168.100.XXX

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



****************************************
* OSSEC HIDS v2.8.3 Agent manager.     *
* The following options are available: *
****************************************
   (I)mport key from the server (I).
   (Q)uit.
Choose your action: I or Q: Q

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

manage_agents: Exiting ..

 

最後にサーバ・エージェントともにサービス再起動を行う。

/etc/init.d/ossec-hids start

 

これで、サーバ・エージェントの設定は完了。
この時点でサーバ側がちゃんとエージェントを認識しているのか確認してみよう。
以下のコマンドで、ちゃんとサーバ側でエージェントを認識しているかどうか確認できる。StatusがActiveになっていれば問題ない。

/var/ossec/bin/agent_control -i エージェントID
[root@BS-PUB-SEC ~]# /var/ossec/bin/agent_control -i 001

OSSEC HIDS agent_control. Agent information:
   Agent ID:   001
   Agent Name: BS-PUB-CENT7-01
   IP address: 192.168.100.XXX
   Status:     Active

   Operating system:    Linux BS-PUB-CENT7-01.blacknon.local 3.10.0-327.28.2..
   Client version:      OSSEC HIDS v2.8.3 / 6322ee12ea9a05951f97923a8341a01a
   Last keep alive:     Thu Dec 29 00:37:41 2016

   Syscheck last started  at: Unknown
   Rootcheck last started at: Unknown

 

これで、ひとまずOSSECのサーバ・エージェントのインストールと設定は完了。
今の段階だとデフォルトの監視設定しかできていないので、次回以降にいろいろと設定をいじってみることにする。

 

【参考】

 

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。

*