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

# はじめに
Amazon Linux2にOSSECをlocalインストールしたときのメモ
この記事は、OSSEC-AgentとOSSEC-Serverを同一マシンにlocalインストールする手順になっています。

OSSEC-AgentとOSSEC-Serverを別々のマシンにインストールする記事もありますので、ご興味のある方はそちらの記事もご覧ください。記事のリンクです。
- [Amazon Linux2にOSSECをインストールした（OSSEC-Serverインストール）](https://qiita.com/Diavolo/items/81ce9ecdfca2a7c6b1a4)
- [Amazon Linux2にOSSECをインストールした（OSSEC-Agentインストール）](https://qiita.com/Diavolo/items/2bab537c36203049188d)

# 環境
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)? local

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

### インストール先ディレクトリはそのままで良いので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
```

### 以下のログはデフォルトで監視するようだ。続けるので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 を押すと終了します (以下，詳細な情報が続きます)．---
```

## インストール後の確認
### OSSECの状態確認。起動していないので、not running...が出力される
```
# /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を起動する。
```
# /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-syscheckd...
Started ossec-monitord...
Completed.
```

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

### 他のコマンドも試してみる。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]
```

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