Amazon Linux2にOSSECをインストールした（OSSEC-Serverインストール）

# はじめに
Amazon Linux2にOSSECをインストールしたときのメモ

この記事はOSSECのServerをインストールしたときのメモです。
[OSSEC-Agentインストール](https://qiita.com/Diavolo/items/2bab537c36203049188d)の記事と合わせてお読みください。
理由：OSSECのAgentをインストールしたサーバIPアドレスが必要です。また、ここで発行したkeyをOSSEC-Agentに登録します。

# 環境
AmazonLinux2 AMI(HVM)
Kernel 4.14
SSD Volume Type
64ビットx86
VCPUの数 1

# 参考ページ
https://github.com/ossec/ossec-hids
https://www.ossec.net/docs/docs/manual/installation/installation-requirements.html#redhat-centos-fedora-amazon-linux

# OSSECのインストール
## OSSECのインストールに必要なコンポーネントをインストール
```
# sudo su
# yum install zlib-devel pcre2-devel make gcc sqlite-devel openssl-devel libevent-devel systemd-devel
```
## OSSECのソースコードのアーカイブ（tar.gz）を/tmpにダウンロードして解凍
```
# cd /tmp
# wget https://github.com/ossec/ossec-hids/archive/refs/heads/master.zip
# ls
# master.zip
# unzip master.zip
# ls
# master.zip ossec-hids-master
```

## OSSECのインストールシェルを実行
```
# cd ossec-hids-master
# ls
# active-response  build.sh      CONFIG   CONTRIBUTORS  doc         etc      install.sh  README.md  SUPPORT.md
BUGS             CHANGELOG.md  contrib  debian_files  Dockerfile  INSTALL  LICENSE     src
# ./install.sh
```
### インストール言語を選択。今回は日本語なので、jpを入力。
```
# (en/br/cn/de/el/es/fr/hu/it/jp/nl/pl/ru/sr/tr) [en]:jp
```

### 以下の画面が表示されるのでENTERを押下。なお、Cコンパイラについては、最初の手順でgccをインストール済み
```
 OSSEC HIDS v3.6.0 インストールスクリプト - http://www.ossec.net

 OSSEC HIDS のインストール作業を始めます．
 事前に C コンパイラがシステムにインストールされてる必要があります．

  - システム: Linux ip-xxx-xxx-xxx-xxx.ec2.internal yyy.yyy.yyy-yyy.yyy.amzn2.x86_64
  - ユーザ: root
  - ホスト: ip-xxx-xxx-xxx-xxx.ec2.internal

  -- 続けるには ENTER を押してください．また，Ctrl-C で中止します． --
```

### インストールの種類を選択。今回はサーバーをインストールするので、localを入力。
```
1- どの種類のインストールを選択しますか (server，agent，local または help)? server

  - Server インストールを選択しました.
```

### インストール先ディレクトリはそのままで良いのでENTERを押下。
```
2- インストール環境を設定しています.

 - OSSEC HIDS のインストール先を選択してください [/var/ossec]:

    - インストール先を以下に作成します  /var/ossec .
```

### メール通知の希望を選択。今回は希望するので、yを入力
```
3- 設定 OSSEC HIDS.

  3.1- メール通知を希望しますか? (y/n) [y]: y
   - メールアドレスは何ですか? hogehoge.fugafuga.xxxxx＠xxxx.yyyy

   - あなたの SMTP サーバを発見しました: xxxxx.xxxxx-smtp-in.xx.xxxx.yyyy.
   - このサーバを使用しますか? (y/n) [y]: y

   --- この SMTP サーバを使用します:  xxxxx.xxxxx-smtp-in.xx.xxxx.yyyy.
```

### 整合性検査を行うデーモンを実行させるか選択。今回は希望するので、yを入力
```
  3.2- 整合性検査を行うデーモンを実行させますか? (y/n) [y]: y

   - syscheck (整合性検査デーモン) を実行させます.
```

### rootkit検知エンジンを実行させるか選択。今回は希望するので、yを入力
```
  3.3- rootkit 検知エンジンを実行させますか? (y/n) [y]: y

   - rootcheck (rootkit 検知) を実行させます.
```

### アクティブレスポンスを有効にするか選択。今回は希望するので、yを入力
```
  3.4- アクティブレスポンスによりイベントが発生した際に特定の
       コマンドを実行することができます．
       例えば，ある IP アドレスを遮断することや特定のユーザ
       に対してアクセスを無効にすることができます．
       詳細な情報は以下にあります:
       http://www.ossec.net/en/manual.html#active-response

   - アクティブレスポンスを有効にしますか? (y/n) [y]: y

     - アクティブレスポンスを有効にしました．

   - デフォルトでは，host-deny と firewall-drop レスポンス
     が有効化することができます．一つ目は /etc/hosts.deny
     にホストを加えます．二つ目は iptable (linux) か
     ipfilter (Solaris, FreeBSD または NetBSD) によりホストを
     遮断します．

   - SSHD への総当たりスキャン，ポートスキャンや他の何らかの
     攻撃手法を停止することに使うことができます．
     また，例えば，snort のイベントに基づいてそれらを遮断する
     こともできます．
```

### firewall-dropレスポンスを有効にするか選択。今回は希望するので、yを入力
```
   - firewall-drop レスポンスを有効にしますか? (y/n) [y]: y

     - local での levels >= 6 に対する firewall-drop を有効にしました

   -
      - xxx.xxx.xxx.xxx
```

### ホワイトリストへIPを追加するか選択。今回は希望するので、yを入力。IPは自PCのIPアドレスを入力。(Windowsの場合、DOSでipconfigして自PCのIPを取得)
```
   - ホワイトリストへ IP を追加しますか? (y/n)? [n]: y
   - IP を入力してください (スペース区切り): yyy.yyy.yyy.yyy
```

### リモートsyslogを有効にするか選択。今回は希望するので、yを入力
```
   - リモート syslog を有効にしました.
```

### 以下のログはデフォルトで監視するようだ。続けるのでENTERを押下
```
  3.6- 以下のログを解析するための設定を準備しています:
    -- /var/log/messages
    -- /var/log/secure
    -- /var/log/maillog

 - 他のファイルを監視したい場合は，ossec.conf を変更し
   新しいエントリーを追加してください．
   設定に関するどんな質問にも我々の Web サイト http://www.ossec.net
   を訪れることで答えることができます．


   --- 続けるには ENTER を押してください ---
```

### コンパイルとインストールが開始。インストールが完了すると以下の画面が出力される
```
 - システムは Linux.
 - 初期スクリプトはブート中に OSSEC HIDS を起動するよう修正しました．

 - 設定が完全に終了しました.

 - OSSEC HIDS を開始させます:
      /var/ossec/bin/ossec-control start

 - OSSEC HIDS を停止させます:
      /var/ossec/bin/ossec-control stop

 - 以下のファイルで設定についての確認と変更ができます /var/ossec/etc/ossec.conf


        OSSEC HIDS の使用に感謝します．
        あなたが何らかの質問，提案したいときや，バグを発見したときは，
        contact@ossec.net まで連絡するか ossec-list@ossec.net にある
        我々の公開メーリングリストを使ってください．
    (http://www.ossec.net/main/support/)．

        詳細な情報は http://www.ossec.net にあります．

        ---  ENTER を押すと終了します (以下，詳細な情報が続きます)．---

 - エージェントを追加する前にアクセスするための認証が必要になります．
   エージェントを追加するか削除する際は 'manage_agents' を実行してください:

   /var/ossec/bin/manage_agents

   詳細な情報は以下にあります:
   http://www.ossec.net/docs/docs/programs/manage_agents.html
```

## インストール後の確認
### OSSECの状態確認。起動していないので、not running...が出力される
```
# /var/ossec/bin/ossec-control status
ossec-monitord not running...
ossec-logcollector not running...
ossec-remoted not running...
ossec-syscheckd not running...
ossec-analysisd not running...
ossec-maild not running...
ossec-execd not running...
```

### OSSECを起動する。
```
# /var/ossec/bin/ossec-control start
Starting OSSEC HIDS v3.7.0...
Started ossec-maild...
Started ossec-execd...
Started ossec-analysisd...
Started ossec-logcollector...
Started ossec-remoted...
Started ossec-syscheckd...
Started ossec-monitord...
Completed.
```

###  OSSECの状態確認。起動したので、is running...が出力される
```
# /var/ossec/bin/ossec-control status
ossec-monitord is running...
ossec-logcollector is running...
ossec-remoted not running...
ossec-syscheckd is running...
ossec-analysisd is running...
ossec-maild is running...
ossec-execd is running...
```

### psコマンドでプロセスを確認
```
# ps -aef | grep ossec
ossecm    4721     1  0 10:24 ?        00:00:00 /var/ossec/bin/ossec-maild
root      4725     1  0 10:24 ?        00:00:00 /var/ossec/bin/ossec-execd
ossec     4729     1  0 10:24 ?        00:00:01 /var/ossec/bin/ossec-analysisd
root      4734     1  0 10:24 ?        00:00:00 /var/ossec/bin/ossec-logcollector
root      4746     1  0 10:24 ?        00:00:11 /var/ossec/bin/ossec-syscheckd
ossec     4749     1  0 10:24 ?        00:00:00 /var/ossec/bin/ossec-monitord
root      5521  3276  0 11:01 pts/0    00:00:00 grep --color=auto ossec
```

### 他のコマンドも試してみる。enableの後にオプションを付加して、機能を有効にできるようだ。
```
# /var/ossec/bin/ossec-control enable

Enable options: database, client-syslog, agentless, debug
Usage: /var/ossec/bin/ossec-control enable [database|client-syslog|agentless|debug]
```

### manage_agentsを実行する。最初にagentを追加するので、Aを入力
```
# /var/ossec/bin/manage_agents
****************************************
* OSSEC HIDS v3.7.0 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: test
   * The IP Address of the new agent: xxx.xxx.xxx.xxx
   * An ID for the new agent[001]: 001
Agent information:
   ID:001
   Name:test
   IP Address:xxx.xxx.xxx.xxx

Confirm adding it?(y/n): y
Agent added with ID 001.
```
### 次にagentにインストールするKeyを追加するので、Eを入力
```
Available agents:
   ID: 001, Name: test, IP: xxx.xxx.xxx.xxx

Provide the ID of the agent to extract the key (or '\q' to quit): 001

Agent key information for '001' is:
hogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehoge
** Press ENTER to return to the main menu.



****************************************
* OSSEC HIDS v3.7.0 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.
```

# おわりに
今回の記事は以上です。では、また。