Windowsログオン、リモートデスクトップ接続時の発報、監視、プログラム実行
更新:19/02/10 | Windowsログオン、リモートデスクトップ接続時の監視 | Windows Logon Audit
ログオン監視とは、セッション接続時の監視とは
業務や個人でWindowsを利用している場合で、複数の家族や社員がログオン(ログイン)する環境があった場合、いつ、誰がログオンしたかを検知して確認することで、不正ログインを即座に察知して対応を取ることが出来るようになります。
特にISMSなどの企業内でのセキュリティ資格取得を考えた場合、Audit(監査)の一環としていつ、誰が、どこにログインしたかを発報、記録することは必須の設定と言えます。ここでは、どのようにして設定をするのが良いのか、楽なのかをベストプラクティスとして紹介いたします。
前提条件
前提条件として、以下のような環境にしておく必要があります。
- 正しい時刻を記録するため、NTP(ネットワーク時刻同期)などによって正しい時計情報となっていること。
- ログイン用のIDを各員にIDが振られていること。IDを共有してしまっていると、不正アクセスに気づきづらくなります。
発報方法
ログインや、リモートデスクトップ接続時に管理者やログインした人に発報をすることで、「自分はログインしていないのにおかしい」とか、「こんな時間にログインしているのはおかしい」とか、「何度もログインをしていて不自然」といったことに気づくところに目的があります。
そのため、以下のような方法で気づきを得る必要があります。
- メールでログイン者に知らせる(SMTPを叩くなどして実現)
- SMSでログイン者に知らせる(TwilioなどでSMS送信する)
- 電話でログイン者に知らせる(Twilioなどで電話発信する)
- Google Spreadsheetなどに記録を残す(APIを叩くか、POST/GETを受けるGASを書く事で可能)
ログオン時のプログラム実行
ユーザーがWindowsログオンした際にプログラムを実行するには、グループポリシーを使うのが簡単です。又は、タスクを利用することでもバッチを実行することが出来ます。ここは、どちらを選んでも得られる効果は同じになります。
ログオン時の発報を設定しても、リモートデスクトップ接続が一度切断されて再接続される場合には実行されないという問題があります。ここについては、後述の別の設定を設ける必要がありますが設定を揃えるという意味では「タスクスケジューラ」で統一して設定しておくのが良いかもしれません。
グループポリシーを使う場合
- 「ファイル名を指定して実行」にて「gpedit.msc」と入力して実行します。
- グループポリシーの設定で、[ローカルグループポリシー]-[コンピュータの構成]-[管理用テンプレート]-[システム]-[グループ ポリシー]にある「ログオン スクリプトの遅延を構成する」を『未構成』⇒『無効』に変更します。
- ”未構成”⇒”無効”にチェックして「OK」を押下します。(これは、ログオンスクリプトが遅延して実行されることを避けるための設定です)
- グループポリシーの設定で、[ユーザの構成]-[Windowsの設定]-[スクリプト(ログオン/ログオフ)]にてログオンをダブルクリックします。
- バッチの場合は「スクリプト」タブ、PowerShellの場合は「PowerShell スクリプト」タブにそれぞれ設定していきます。
6. ログオン時に実行したい「バッチ」をフルパスで登録します。(実際のスクリプトについては後述する共通のものです)
タスクスケジューラを利用する場合
- [すべてのプログラム]→[アクセサリ]→[システムツール]→[タスクスケジューラ]を選択します。
- [トリガー]タブで新規をクリックし、タスクの開始をログオン時とします。
- [操作]タブで操作をプログラムの開始とし、プログラム/スクリプトに起動するプログラムを設定します。(実際のスクリプトについては後述する共通のものです)
リモートデスクトップ接続の再接続時にプログラム実行
ログオン時の発報を設定しても、リモートデスクトップ接続が一度切断されて再接続される場合には実行されないという問題があります。そのため、タスクスケジューラを使って再接続時のプログラム実行を設定します。
- [すべてのプログラム]→[アクセサリ]→[システムツール]→[タスクスケジューラ]を選択します。
- [トリガー]タブで新規をクリックし、タスクの開始をセッション接続時とします。
- [操作]タブで操作をプログラムの開始とし、プログラム/スクリプトに起動するプログラムを設定します。(実際のスクリプトについては後述する共通のものです)
メール発報スクリプト
ここでは、各設定にて実行するプログラム(スクリプト)について説明します。PowerShellを使った方法を紹介します。タスクスケジューラでは、PowerShellスクリプトを直接指定出来ないため、PowerShellスクリプトを実行する間接的なバッチファイルを作成してこれを指定するようにします。
$uname = $env:USERNAME;
switch ($uname) {
"computer" {$mailto = "admin"}
"administrator" {$mailto = "admin"}
default {$mailto = $uname}
}
$AccountName = "sender@test.com"
$Password = "passwordOfMail"
# connect gmail
$SMTPClient = New-Object Net.Mail.SmtpClient("smtp.gmail.com", 587)
$SMTPClient.EnableSsl = $True
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("$AccountName","$Password");
# Header
$MailFrom = "$AccountName"
$Subject = "【Audit】" + $uname + "(" + $type + ")リモートデスクトップ利用の自動お知らせ"
$Body = "本メールは、システムから自動送信されています。 "
# message object
$mailto = $mailto + "@test.com"
$Message = New-Object Net.Mail.MailMessage($MailFrom, $mailto, $Subject, $Body)
# send mail
$SMTPClient.Send($Message)
まず、$typeにて新規ログオンがあったことを通知するようにしています。つまり、ログオン用のプログラムはこれで良いのですが、セッション再接続時のプログラムには「セッション再接続」などの文字列を指定するようにします。それ以外の部分は全く同じで構いません。
$AccountName/$PasswordはSMTPサーバーのID/PWDとなっています。
基本的にはログインIDにドメイン名を付加したメールアドレスに発報するようになっていますが、特定のID(例ではcomputer, administrator)についてはadmin@test.comに送るよう指定も可能です。
メールアドレスは、ユーザーIDにドメイン名@test.comを付加して自動的に決めているため、ユーザーIDがそのままメールアドレスにはならないような場合にはSwitch文の条件を増やして対応するメールアドレスを指定する必要があります。
あとは、メールのタイトルや内容を適宜調整すれば独自の設定にすることも可能です。これによって、リモートデスクトップ接続時にログイン時にはログインを意味する発報が、リモートデスクトップ接続を切断しているところに再接続した場合には、再接続を意味する発報が可能となるため、自信の操作による発報かどうかを各員が確認すれば良いことになります。
メール発報部分を変更する事で、SMS送信や電話連絡、Spreadsheet記録などに切り替えたり併用したりすることも可能となります。
- お勧めリンク
- ダウンロード
- ストリーミング関連
- Macintosh関連
-
- Macでも使えるDVDドライブ
- Leopard詳解
- iLife詳解
- Macの修復方法特集
- Apple MacBook (Pro)
- Macで無線LAN802.11n
- 新旧MacBookベンチマーク
- フルHD編集Apple iMovie&Final Cut Express
- ROXIO Toast Platinum
- フルHD編集Apple Final Cut X
- MacBookのHDD換装方法
- MacとWindowsのファイル共有
- MacでWindowsを遠隔操作
- WinユーザーのためのMac概論
- 無料の辞書検索ツール 英辞郎
- 代表的なタブブラウザの比較
- Macお勧めのフリーソフト紹介
- 無料のOffice環境 NeoOffice
- エミュレータ比較
- Macで最適バックアップ
- iGeek Indelible
- intego PersonalBackup
- EMC® Retrospect® for Mac
- Mac版 ウイルス対策
- Ruby On Rails インストール(Mac編)
- Ruby On Rails 開発の初歩(Model)
- Ruby On Rails 開発環境RadRails
- Ruby On Rails DBメンテナンス
- Excel, Wordを使ってMacで年賀状宛名印刷
- Windows関連
-
- EaseUS Todo Backupで完璧バックアップ
- DVD, Blu-rayリッピングツール AnyDVD HD
- キャプチャーソフト hunuaaCap
- Windows2003でリモートデスクトップ7を動かす
- 最適なバックアップソフトは
- robocopyによるバックアップ
- リージョンフリー
- リージョンフリー化を有効活用
- マルチブート
- Antivir®
- eTrust Antivirus
- AVG AntiVirus
- C#徹底講座
- メーラー Mailer
- VBA徹底活用術
- JustSystemメーラーShuriken
- FTPソフトとコマンドライン解説
- DOS/Vパーツリンク集
- Oracle10gBronze試験対策
- CDからMP3へ簡単に変換する方法
- メディアなど
- ハードウェア
-
- iPhone 3G
- iPhone 4
- iPod+iTunes
- iPhone SDK
- 色域(AdobeRGB)
- hp mini 1000
- 環境紹介
- KDDI au新旧プラン研究
- DVDをMP4にコンバート
- 無線LAN環境802.11n
- キャプチャボード
- HD-LANによるネットワークストレージ構築
- NEC LavieJ LJ500/5A
- LavieJ HDD換装
- LavieJ 調子の悪いHDDの復旧
- LavieJ 無線LANモジュールの換装
- LavieJ メモリの追加
- LavieJ バックアップ作成と復元
- Intel PRO/Wireless 2200BG
- 液晶・プラズマテレビ比較
- プリンタ(hp PSC2550)
- 万能リモコン クロッサム
- 婦人体温計 プチソフィア
- 婦人体温計 マドンナ
- ソフトウェア/サービス/開発SDK
- デジタル一眼レフカメラ
- テクニカル記事
- 趣味関連
- ゲーム 〜楽しいゲームの紹介や攻略法
- RoverMNI(ローバーミニ)
- 雑記
- その他
-
- ネットバンキングに便利な金融機関
- 便利なサイト翻訳機能
- 便利ツール GMail
- 無料電話Gizmoの嘘とほんと
- リンク:一般ページへのリンク集
- 相互リンク:相互リンク募集中!
- 本ページの統計:本サイトの統計データ公開
- コメント・フィードバック