見出し画像

TWSNMP FCのポーリング辞典:syslogからレポート作成

syslogからネットワーク上で通信しているデバイスの情報、サーバーにアクセスしているユーザーの情報、ファイヤーフォールを通過する通信の情報などが取得できます。ネットワークの状態を知るためには有益な情報です。TWSNMP FCで、これらの情報からレポートを作成するためのポーリングの説明です。

ポーリング設定

基本的なポーリングの設定は、

種別

SYSLOGを設定します。

モード

モードで作成するレポートを指定します。以下のモードがあります。

device
syslogからIPアドレスに対応するMACアドレスの情報を抽出してデバイスレポートを作成する。
user
syslogからユーザーID、アクセス元アドレス(IPまたはMAC)、ログインの成功失敗の状況を抽出してユーザーレポートを作成する。
flow
syslogから送信元IPとポート、宛先IPとポート、プロトコル、通信量を抽出してサーバーレポート、通信フローレポートを作成します。

フィルター

対象のログを取得するためのフィルターを正規表現で指定します。

抽出パターン

レポートを作成するために必要なGROKパターンを指定します。

で登録したものです。

デバイスレポート

デバイスレポートは、

Dec 13 07:32:42 rpi root: mac=00:01:02:03:04:05 ip=192.168.1.222

のようなログからMACアドレスとIPアドレスを取得して、

のようにレポートに反映させます。

組み込みでDEVICEという抽出パターンがあります。

定義は

`mac=%{MAC:mac}.+ip=%{IP:ip}`

です。

ユーザーレポート

ユーザーレポートは、

Dec 13 05:10:33 rpi sshd[18703]: Failed password for invalid user test from 192.168.1.250 port 51696 ssh2
Dec 13 07:01:47 rpi sshd[21406]: Accepted password for pi from 192.168.1.250 port 55485 ssh2
Dec 14 05:56:41 rpi sshd[23428]: Accepted publickey for root from 192.168.1.250 port 59115 ssh2: RSA 2b:12:fb:d3:e2:9d:f9:79:b9:6d:77:34:e8:7c:8d:bc

のようなログからユーザーIDとアクセス元IP、成功失敗のを取得して

のようなレポートを作成します。
このレポートは、SSHのログインに関するログを使っていますが、組み込んである抽出フィルターはSSHLOGINという名前で

`%{GREEDYDATA:stat} (password|publickey) for( invalid user | )%{USER:user} from %{IP:client}`

のような定義です。statが

Accepted

の場合に成功とする判断します。

サーバー、通信フローレポート

ファイヤーフォールの

'id=firewall sn=18B169A9C2A8 time="2020-12-13 00:06:15"  pri=6 c=1024 m=537 msg="Connection Closed" app=11 n=58652207 src=10.30.165.222:52868:X0 dst=52.113.194.132:443:X1 srcMac=70:85:c2:c8:64:a1 dstMac=10:48:80:02:1b:d0 proto=tcp/https sent=1353 rcvd=6605 spkt=8 rpkt=11 dpi=0 cdur=61566 rule="8 " fw_action="NA"'

のようなログから送信元IPとポート、宛先IPとポート、プロトコル、通信量を取得してサーバーレポート、通信フローレポートを作成します。

地球儀に通信を表示することもできます。

このポーリングはNetFlowに対応していないファイヤーフォールやNetFlowを有効にすると負荷が高くなり通信障害が発生するファイヤーフォールのためにsyslogからフローに関する機能です。NetFlow使ったほうがよいと思います。

sonicwall

などのWELF形式の通信ログ

からデータを抽出するパターンはWELFFLOWで組み込んであります。

src=%{IP:src}:%{BASE10NUM:sport}:.+dst=%{IP:dst}:%{BASE10NUM:dport}:.+proto=%{WORD:prot}.+sent=%{BASE10NUM:sent}.+rcvd=%{BASE10NUM:rcvd}.+spkt=%{BASE10NUM:spkt}.+rpkt=%{BASE10NUM:rpkt}


開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。