【初心者向け Wazuh 第5弾】エージェントを導入できない機器を監視する – Syslogによるログ収集

本記事では、WazuhでSyslogを受信し、エージェントを導入できない機器のログを監視する方法を紹介します。

はじめに

みなさんこんにちは。

前回の記事では、Wazuhはエージェントを導入した直後からさまざまなセキュリティ監視を行えることを確認しました。

一方で、ルーター、スイッチ、ファイアウォールなど、エージェントを導入できない機器や、運用上の理由からエージェントの導入が難しい機器も少なくありません。Wazuhでは、これらの機器からSyslogを受信し、ログを収集・分析することもできます。

今回は、監視対象にエージェントを導入せず、Syslogを利用してログを収集してみましょう。

▼前回までの記事はこちら
【初心者向け】最短で構築!Wazuh公式OVAで検証環境を作る方法(VirtualBox)
【初心者向けWazuh第2弾】Windows&Linuxにエージェントを導入してログ収集を開始する方法
【初心者向けWazuh第3弾】Wazuh公式OVAで構築した検証環境を最新版へアップグレードする方法
【初心者向けWazuh第4弾】初期設定のWazuhで何ができる?

この記事を読むと分かること

  • WazuhでSyslog受信を有効化する方法
  • テスト用のSyslogを送信して動作を確認する方法
  • Wazuhで収集されたSyslogをWeb UIで確認する方法

本記事は、Wazuh, Inc.のオンラインドキュメント「User manual」を参考に作成しています。
本記事に関するお問い合わせは、弊社のお問い合わせフォームよりご連絡ください。記事の作成にあたっては正確な記述に努めていますが、本記事の内容に基づく運用結果について、弊社では一切の責任を負いかねます。あらかじめご了承ください。

作業環境と前提条件

今回使用する環境

以下の環境を使用します。

  • Wazuhサーバー:Wazuh v4.14.7(VirtualBox上の仮想マシン)
  • Syslog送信元:以下のうちいずれか1つをご準備ください
    • Windows
    • Linux
    • Syslog対応機器

ⓘ 補足
今回の記事ではSyslog対応機器をお持ちでない方でもお試しいただけるように、WindowsのPowerShellコマンドやLinuxのloggerコマンドを使用してテスト用のSyslogをWazuhへ送信し、動作を確認します。

WindowsとLinuxの両方を用意する必要はありません。

Wazuhエージェントが導入された端末を使用していただいても構いませんが、エージェント経由で収集されたログとSyslog経由で収集されたログを区別しやすくするため、可能であればWazuhエージェントを導入していない端末の使用をおすすめします。

Syslogを送信できるツールであれば、本記事で紹介する方法以外を使用していただいても構いません。

前提条件

以下を満たしていることを前提とします。

  • 第1弾の構築が完了していること(バージョンは問いませんが、v4.14.1以降を想定しています。)
  • Syslog送信元からWazuhサーバーへ、送信に使用するプロトコルおよびポート番号で通信できること

WazuhのSyslog受信を有効化する

TCP 514ポートでSyslogを受信するようにWazuhサーバーを設定します。

ⓘ 補足
本記事では接続確認やトラブルシューティングを行いやすいよう、TCP 514を使用します。

SyslogではUDP 514が利用されることが多く、機器によってはUDPのみをサポートしている場合があります。その場合は、UDPを使用してください。

💡 ヒント
WazuhのSyslog受信機能は初期状態では無効化されています。
設定変更前の状態を確認したい場合は、Wazuhサーバーにログインし、以下のコマンドを実行してください。
sudo ss -lntp | grep ':514'

何も表示されなければ、現在WazuhサーバーはTCP 514でSyslogを待ち受けていません。
設定反映後に再度同じコマンドを実行し、TCP 514の待ち受けが開始されていることを確認してみましょう。

なお、UDPを使用する場合は、以下のコマンドで待ち受け状態を確認できます。
sudo ss -lunp | grep ':514'

Wazuh Web UIにログインし、
」→「Server management」→「Settings」→「Edit configuration」を選択します。

Manager configuration画面が開きます。
既存の <remote> 定義と同じ階層に下の定義を追加してください。

⚠ 注意
既存の <remote> 定義は削除せず、そのまま残してください。

 <!-- Syslog Monitoring TEST -->
  <remote>
    <connection>syslog</connection>
    <port>514</port>
    <protocol>tcp</protocol>
    <allowed-ips>xxx.xxx.xxx.xxx/xx</allowed-ips>
  </remote>

ⓘ 補足
UDPを使用する場合は、<protocol>udp</protocol> としてください。

<allowed-ips> は必須です。Syslog送信元が属するネットワークをCIDR形式で指定してください(例:192.168.1.0/24)。指定したネットワークにSyslog送信元が含まれていない場合、Syslogは受信されません。

「Save」を選択して保存し、「Restart Manager」を選択して再起動します。

「Confirm」を選択します。

Managerの再起動が完了したことを確認します。

Syslog受信が有効になったことを確認するため、待ち受け状態を確認してみましょう。

Wazuhサーバーで次のコマンドを実行します。

sudo ss -lntp | grep ':514'

以下のようなLISTEN行が表示されれば、TCP 514の待ち受けが開始されています。

LISTEN 0 128 0.0.0.0:514 0.0.0.0:* users:((“wazuh-remoted”,pid=26888,fd=4))

※ 表示内容は環境によって異なる場合があります。

Syslog送信元からWazuhサーバーへTCP 514で接続できることも確認してみましょう。

Windowsを使用する場合
Syslog送信に使用するWindows端末にログインしてPowerShellを起動し、次のコマンドを実行します。

Test-NetConnection <WazuhサーバーIP> -Port 514

「TcpTestSucceeded : True」と表示されれば通信可能です。

Linuxを使用する場合
Syslog送信に使用するLinux端末にログインし、次のコマンドを実行します。
※ nc (netcat) コマンドが利用できる環境を想定しています。

nc -vz <WazuhサーバーIP> 514

「succeeded!」と表示されれば通信可能です。

💡 ヒント
接続できない場合は、Wazuhサーバーの設定や通信経路上のネットワーク設定を確認してください。ご利用環境によっては、ファイアウォールやアクセス制御による通信制限が行われている場合があります。

これでWazuhがSyslogを受信する準備が整いました。
次は、実際にSyslogを送信して動作を確認してみましょう。

WazuhへSyslogを送信する

Wazuhへテスト用のSyslogを送信してみましょう。
Windows、Linux、またはSyslog対応機器のいずれかで試してみてください。

なお、WindowsまたはLinuxを使用する手順では、動作確認のために次の2種類のテスト用SyslogをWazuhへ送信します。

1つ目:一般的なSSH認証失敗イベント

<14>Sep 11 09:00:00 TEST-PC sshd: Invalid user SYSLOG_TEST from 198.51.100.10

2つ目:独自形式のファイアウォール拒否イベント

<14>Sep 11 09:00:00 TEST-PC firewall: SYSLOG_TEST firewall_action=deny severity=high srcip=203.0.113.10 dstip=192.168.1.10 dstport=3389 protocol=tcp

ⓘ 補足
以降のコマンド中の <WazuhサーバーIP> は実際のWazuhサーバーのIPアドレスに変更してください。

Windows(PowerShell)を使用する場合

Syslog送信に使用するWindows端末にログインし、PowerShellを使用してテスト用のSyslogをWazuhへ送信します。

1つ目のSyslogを送信します。

$m="<14>$((Get-Date).ToString('MMM dd HH:mm:ss',[System.Globalization.CultureInfo]::InvariantCulture)) $env:COMPUTERNAME sshd: Invalid user SYSLOG_TEST from 198.51.100.10";$c=New-Object Net.Sockets.TcpClient('<WazuhサーバーIP>',514);$s=$c.GetStream();$b=[Text.Encoding]::UTF8.GetBytes($m+"`n");$s.Write($b,0,$b.Length);$s.Close();$c.Close()

2つ目のSyslogを送信します。

$m="<14>$((Get-Date).ToString('MMM dd HH:mm:ss',[System.Globalization.CultureInfo]::InvariantCulture)) $env:COMPUTERNAME firewall: SYSLOG_TEST firewall_action=deny severity=high srcip=203.0.113.10 dstip=192.168.1.10 dstport=3389 protocol=tcp";$c=New-Object Net.Sockets.TcpClient('<WazuhサーバーIP>',514);$s=$c.GetStream();$b=[Text.Encoding]::UTF8.GetBytes($m+"`n");$s.Write($b,0,$b.Length);$s.Close();$c.Close()

Syslogの送信が完了したら、Wazuh Web UIで確認してみましょう。

Linux(logger)を使用する場合

Syslog送信に使用するLinux端末にログインし、loggerを使用してテスト用SyslogをWazuhへ送信します。

ⓘ 補足
本記事では、--rfc3164 オプションを指定し、RFC3164形式のテスト用Syslogを送信します。
利用しているディストリビューションによっては、loggerコマンドのオプションが異なる場合があります。

1つ目のSyslogを送信します。

logger --rfc3164 -t sshd -T -n <WazuhサーバーIP> -P 514 "Invalid user SYSLOG_TEST from 198.51.100.10"

2つ目のSyslogを送信します。

logger --rfc3164 -t firewall -T -n <WazuhサーバーIP> -P 514 "SYSLOG_TEST firewall_action=deny severity=high srcip=203.0.113.10 dstip=192.168.1.10 dstport=3389 protocol=tcp"

Syslogの送信が完了したら、Wazuh Web UIで確認してみましょう。

Syslog対応機器を使用する場合

Syslog対応機器を使用する場合は、Syslog送信先としてWazuhサーバーを指定してください。

  • 送信先IPアドレス:WazuhサーバーのIPアドレス
  • プロトコル:TCP
  • ポート:514

ⓘ 補足
UDPのみに対応する機器を使用する場合は、WazuhのSyslog受信を有効化する際に<protocol>udp</protocol>を指定してください。

Syslog送信先を設定した後、管理画面へのログインや設定変更など、Syslogが出力される操作を行ってください。 Syslogの送信が完了したら、Wazuh Web UIで確認してみましょう。

Wazuh Web UIで確認する

送信したSyslogがWazuh Web UIでどのように表示されるかを確認してみましょう。

Wazuh Web UIにログインし、」 → 「Explore」 → 「Discover」を選択します。

WindowsまたはLinuxでテスト用のSyslogをWazuhへ送信した場合は、Search欄に SYSLOG_TEST と入力し、本記事で送信したSyslogを検索します。

送信した1つ目のSSH認証失敗イベントのテスト用Syslogが表示されていることを確認してください。

💡 ヒント
今回送信したテスト用のSyslogメッセージ内には、SYSLOG_TEST が含まれています。

Syslog対応機器を使用した場合は、Syslog対応機器からのログを探してください。

💡 ヒント
Search欄に「location:<使用したSyslog対応機器のIPアドレス>」を入力してEnterキーを押す、
または、Search field names欄にlocationと入力してAvailable fieldsセクションでlocationを選択し、虫眼鏡アイコンをクリックして使用したSyslog対応機器のIPアドレスを選択するとログが見つかるはずです。

検索結果の > をクリックすると、行が展開表示されます。
送信したテスト用Syslogを確認してください。

💡 ヒント
送信したテスト用Syslogメッセージは、full_logフィールドで確認できます。
sshd: Invalid user SYSLOG_TEST from 198.51.100.10

ところで、送信したもう1つの独自形式のファイアウォール拒否イベントのテスト用Syslogは表示されたでしょうか?

SYSLOG_TEST firewall_action=deny severity=high srcip=203.0.113.10 dstip=192.168.1.10 dstport=3389 protocol=tcp

本記事で使用している初期状態のWazuhでは、2つ目のSyslogはWazuh Web UIに表示されません。

念のため、独自形式のSyslogもWazuhサーバーに届いていることを確認しておきましょう。
Wazuhサーバーで次のコマンドを実行します。

sudo tcpdump -nn -i any port 514

その状態で、再度、2つ目のテスト用Syslogを送信してください。

以下のような通信が表示されれば、Wazuhサーバーまで通信が到達しています。

Syslog送信元IPアドレス.送信元ポート > WazuhサーバーIPアドレス.514

ⓘ 補足
確認後は Ctrl+C で終了してください。

Wazuhサーバーは2つ目のテスト用Syslogも正常に受信しています。
では、なぜ2つ目のSyslogはWazuh Web UIに表示されないのでしょうか?

次回は、このSyslogをWazuhで分析できるようにしていきます。

まとめ

今回はSyslogによるログ収集を試してみました。

本記事のポイントは以下のとおりです:

  • WazuhはSyslogを受信することで、エージェントを導入できない機器のログも収集できる
  • WindowsやLinuxからテスト用のSyslogを送信し、動作を確認できる
  • Wazuhは受信したすべてのSyslogを表示するわけではない

一般的なSSH認証失敗イベントのSyslogは初期状態のWazuh Web UIに表示されるものの、独自形式のSyslogは表示されない場合があるということが分かりました。

次回予告:表示されなかったSyslogをWazuhで分析する

次回は、今回Web UIに表示されなかった独自形式のSyslogをWazuhで分析できるようにします。

Wazuh Cloud の利用を検討している方へ

本記事で紹介したように、Wazuh公式OVAを使用して構築したセルフホスト環境では、Syslogを直接受信してログを収集できます。

一方、Wazuh Cloud環境では、WazuhサーバーはSyslogを直接受信できません。

そのため、Wazuh Cloud環境でエージェントを導入できない機器のログを監視する場合は、別途Syslogサーバーを用意し、そのSyslogサーバーにWazuhエージェントを導入してログを収集します。

Wazuh Cloud 環境でのSyslog監視を検討されている場合は、事前に無料トライアルで動作をご確認いただくことをおすすめします。

Wazuh製品紹介ページ

Wazuhの特長や機能については、以下の製品紹介ページをご参照ください。

Wazuh Cloud無料トライアル

Wazuh Cloudの無料トライアルについては、以下よりお気軽にお問い合わせください。

こんな記事も読まれています

最新記事

おすすめ記事

  1. インターネット回線速度をグラフで見える化!Checkmk×Speedtest CLI活用術

  2. 【初心者向け Wazuh 第2弾】Windows&Linuxにエージェントを導入してログ収集を開始する方法

  3. デスクトップ仮想化の 4 通りの構成と Windows 11 マルチセッション

製品カテゴリー

その他の情報

TOP