«

»

8月 28

NotifEventLog を使用して、イベントログに特定のイベントが発生したときに、gmail経由でメール通知してみる

手元で作業するパソコンしかなくて、使ってないときは電源を切っているなら、気にする必要はない事柄。

 

でも、つけっぱなしにして作業をさせたまま出かけたりすることがあるなら、気になること。

「今、働かせているパソコン、サーバ、元気だろうか…」

 

電源を切ってあるパソコンが、サイバー攻撃に遭うことは、決してありません。

気をつける必要があるとすれば、飼い猫、子供、それから泥棒です。

それらへの対策はここでは述べません(ソフトウェア的に解決することはできません)。

 

電源をつけっぱなしにしていて、ネットにつないだままのパソコンやサーバには

外部からの攻撃が常に期待されます。じゃなかった、予想されます。

やべえ、リモートデスクトップで進入を試みた形跡があるよ…なイベントログのスクリーンキャプチャ画像です。

やべえ、リモートデスクトップで侵入を試みた形跡があるよ…

 

 

ところで、Windowsのイベントログをよく見ると、どうやら、特定のイベントログが生成された際に、それをメールで通知する機能がはじめから備わっているように見えます。

さっそく試してみましょう。

Windows標準の、EventLogからメールを送信する機能、の設定画面のスクリーンキャプチャ。

Windows標準の機能で、イベントログからメールを送ろうと試みる

正しくは、これはイベントログ単独の機能ではなく、タスクスケジューラに生成されたタスクが、イベントログでのイベント生成をトリガにして、メール送信タスクとして動作するものです。

 

しかし、よく見ると…メールサーバの設定はあるんですが、認証に関する設定がさっぱりありません…。

認証を必要としないようなデンジャラスなメールサーバは使ってないっつーの。

これじゃプロバイダのメールサーバにも会社のメールサーバにも、gmailのメールサーバにも取り次いでもらえないでしょ?

タスクとして生成されたメール送信機能。しかし…

タスクとして生成されたメール送信機能。しかし…

 

そこで、イベントログを監視しつつ、メール送信は賢くSMTPSやらSMTP-AUTHやらポート番号の変更やらにしっかり対応してくれるソフトを探そうかな、と思うわけで…

そしてすぐ見つかりました。

  • NotifEventLog (制作者様,Vector) for Windows Server 2003, Windows XP, Windows Vista
  • NotifEventLogSecond (制作者様,Vector) for Windows Server 2008, Windows Vista, Windows 7

 

対応OSが異なるので、お使いのOSにあわせたものを落としてきましょう。

当方では試験用の Windows Server 2008 R2 x64 な環境があったため、NotifEventLogSecond のほうを試用しました。

 

 

まず、インストールします。

インストールが完了しても、実はそのままでは機能しません。

よくわからない人は…一度再起動しちゃってください。

わかってる人は、サービスが初期状態では起動してくれないので、コンパネから管理ツール→サービスを開いて、NotifEventLogSecondを探して起動させましょう。再起動しなくてもいいです。

 

NotifEventLogSecond のメールの設定。

NotifEventLogSecond のメールの設定。GMailから送るように設定してみる。この設定は架空のアカウントです。

 

「メールテスト送信」をクリックして、メール送信を試験してみましょう。失敗するようなら…入力ミスしてると思いますよー。動作確認してるもの。メールサーバの設定頑張ってやってください。なお、GMail以外でSMTPS使う場合、特に、証明書をちゃんと作ってないいわゆるオレオレ証明書状態のところの場合、SMTPS(SSLを試用して接続する)は、テスト送信では成功しても、本番のメール送信では失敗するようです。マイリマシタ。

テストメール送信のサンプル。

どれ、スマホ用のメールアカウントに通知メールを投げる設定を試してみようか…なロールプレイ

 

これに成功したら次は、「通知先」を設定します。送りたい宛先をどんどん入れます。

 

そして最後に、どんなイベントのときにメールを送るのか?を設定します。「フィルター」です。

NotifEventLogSecond のイベントフィルターの設定サンプル。

4624番のイベントのときにメールを送るように設定。Windows Server 2008 では、4624番は、そのホストに誰かがログインしたときのイベントの番号。だと思う!タブンね!

 

これの設定がちょいと難しい。そもそも、どんなことが起きたときにどんなイベントログが出るの?という問題。

エラーは起こしてみないとわかりません。

上の例ではログイン処理発生時と、「重大」または「エラー」に設定されたイベントのときにメール通知するという設定にしてみました。

 

 

実際に届いたメールはこんなに長いものでした。

対象イベント件数: 1

日時: 2012年8月28日 00:05:00
レベル: 情報
ログの名前: Security
ソース: Microsoft-Windows-Security-Auditing
イベントID: 4624
タスクカテゴリー: ログオン
キーワード: 成功の監査
ユーザー: 
コンピューター: Hoge
オペコード: 情報

アカウントが正常にログオンしました。

サブジェクト:
	セキュリティ ID:		S-1-5-15
	アカウント名:		HOGE$
	アカウント ドメイン:		MYNETWORK
	ログオン ID:		0x3e7

ログオン タイプ:			4

新しいログオン:
	セキュリティ ID:		S-1-5-21-1040834280-512322116-2299033067-1000
	アカウント名:		hoge
	アカウント ドメイン:		HOGE
	ログオン ID:		0x69aa5d3
	ログオン GUID:		{00000000-0000-0000-0000-000000000000}

プロセス情報:
	プロセス ID:		0x3c4
	プロセス名:		C:\Windows\System32\svchost.exe

ネットワーク情報:
	ワークステーション名:	HOGE
	ソース ネットワーク アドレス:	-
	ソース ポート:		-

詳細な認証情報:
	ログオン プロセス:		Advapi  
	認証パッケージ:	Negotiate
	移行されたサービス:	-
	パッケージ名 (NTLM のみ):	-
	キーの長さ:		0

このイベントは、ログオン セッションの作成時に生成されます。
このイベントは、アクセス先のコンピューターで生成されます。

サブジェクトのフィールドは、ログオンを要求した
ローカル システム上のアカウントを示します。
これはサーバー サービスなどのサービス
または Winlogon.exe や Services.exe などの
ローカル プロセスであることが最も一般的です。

ログオン タイプのフィールドは、発生したログオンの種類を示します。
最も一般的なタイプは、2 (対話型) と 3 (ネットワーク) です。

新しいログオンのフィールドは、
新しいログオンを作成するアカウント、
つまりログオン先のアカウントを示します。

ネットワークのフィールドは、リモート ログオン要求の送信元を示します。
ワークステーション名は常に表示されるとは限らず、場合によっては空白のままであることがあります。

認証情報のフィールドは、この特定のログオン要求に関する詳細情報を示します。
	- ログオン GUID は、このイベントを KDC イベントに関連付ける場合に使用できる一意の識別子です。
	- 移行されたサービスは、このログオン要求に関与した中間サービスを示します。
	- パッケージ名は、NTLM プロトコルのうち使用されたサブプロトコルを示します。
	- キーの長さは、生成されたセッション キーの長さを示します。これは、セッション キーが要求されなかった場合は 0 になります。

--------------------------------------------------

 

よしこれで、誰かが勝手にうちのサーバに侵入しても、バレバレだぜ。

ということになります(ログインされる前になんとかしろよ)。

自分がログインしてもメールが来るので割とうっとうしいです。

 

 

 

本当にやりたいのは、USBが引っこ抜けちゃったとか、ディスクの空き容量が少なくてヤバイよ、とか、負荷が高すぎてヤバイよ、なんていうアラートメールが送れたらいいなと思ったわけですが…。まあ、ここから頑張ればできるでしょう。誰かやり方紹介してくれないかなー。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次の HTMLタグおよび属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>