スキップしてメイン コンテンツに移動

TA-dmarc add-on for SplunkでExchange Onlineにアクセスしよう

TA-dmarc add-on for Splunk | Splunkbase でExchange Onlineにアクセスしよう

2022年11月時点ではExchange OnlineのIMAPは基本認証が使えないはずですので、モダン認証(OAuth2)を使う必要があります。WEBアプリ開発者でない方にとってはどうすれば?と途方に暮れているかもしれませんのでお役に立てればと思います。

ということで、最新のSplunkとTA-dmarcをセットアップしましょう。
TA-dmarcの[入力]の[Create New Input]に[DMARC imap(oauth2)]が表示されていることを確認します。 (TA-dmarc v4.1.1以降が必要です)

また、この作業を行う前に、DNSでDMARCレコードを公開または「rua=mailto:<EMAIL>」を追記し統計レポートを受け取ることを確認しましょう。
統計レポートはドメインごとに24時間に1度の頻度なので届くのは翌日だと思います。

設定の流れ

  1. TA-dmarcで使用するアカウント情報を作成する
  2. TA-dmarc Account登録
  3. メールボックスの権限設定
  4. TA-dmarc Inputの登録
  5. 動作確認

TA-dmarcで使用するアカウント情報を作成する

Azure ADポータルの[管理]>[アプリの登録]を開き、[新規登録]を選択します。
  • [名前] 管理しやすい名前を付けましょう。
  • [サポートされているアカウントの種類] 用法に合わせて選択ですが「この組織ディレクトリのみに含まれるアカウント」でよいと思います。
  • [リダイレクト URL] 「Web」を選び「https://localhost」に設定します。
[登録]を選択すると登録したアプリの[概要]に画面が変わります。
表示された"アプリケーション (クライアント) ID"の値は"Username"として後ほど利用します。
次に[管理]>[証明書とシークレット]を開き[新しいクライアントシークレット]を選択します。
  • [説明] 任意の名前
  • [有効期限] セキュリティ面を考慮すると短い方が良いですが運用とのバランスもありますのでお任せします。
[追加]を選択します。
追加されたシークレットの[値]を"Password"で使用します。このページから離れると二度と確認できませんので気を付けてください。
わからなくなったらシークレットを作成してください。使わなくなったシークレットは忘れず削除しましょう。

TA-dmarcでアカウントを登録する

先ほど作成したアプリの情報を使い設定します。
アカウント登録
Splunkの[TA-dmarc]>[設定]>[Account]の追加を行います。
  • Account name: わかりやすい名前を設定します。(有効期限を入れておく良いかも)
  • Username: Azure ADのアプリの"アプリケーション(クライアント)ID"です。
  • Password: "証明書とシークレット"で作成したシークレットのになります。
パスワードには有効期限がありますので期限切れになる前に更新してください。

メールボックスの権限設定

メールボックスには作成したアプリを使用して接続しますので権限設定が必要です。
とりあえずPowerShellでExchange Onlineに接続しましょう。
Install-Module -Name ExchangeOnlineManagement
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline -Organization <TENANTID>

  • <TENANTID> Azure ADの概要または、作成したアプリの概要で確認できます。 

New-ServicePrincipal -AppId <CLIENTID> -ServiceId <OBJECTID>
Add-MailboxPermission -Identity "<EMAIL>" -User <OBJECTID> -AccessRights FullAccess

  • <CLIENTID> アプリ登録、アカウント登録で使用した "アプリケーション(クライアント)ID"です。
  • <OBJECTID> Azure ADの[エンタープライズアプリケーション]からアプリ登録で使用した名前を開くと[概要]の”オブジェクト ID”に表示されています。
  • <EMAIL> TA-dmarcから接続するメールアドレスです。
    DNSのDMARCレコードに設定した「rua=mailto:<EMAIL>」

実行してエラーが出なければ権限設定は完了なのでExchange Onlineを切断しましょう。

Disconnect-ExchangeOnline

TA-dmarc Inputの登録

TA-dmarcの[入力]>[Create New Input]で[DMARC imap(oauth2)]を選択します。
基本的には初期値のままでよいです。
  • Name:任意の名前
  • Interval:受信チェックする間隔を秒で指定します。(例:3600)
  • Grobal Account: 事前に登録したアカウントを選択します。
  • IMAP server: 初期値の[outlook.office365.com]
  • IMAP username: 権限設定で使用したメールアドレスを入力 <EMAIL>
  • OAuth2 Authority: 「https://login.microsoftonline.com/<tenant_id>」
    <tenant_id>は権限設定で使用した<TENANTID>です。
入力出来たら[追加]を選択します。

動作確認

正しく設定できていれば受信済みレポートの取り込みが始まります。
サーチで「| inputlookup ta_dmarc_checkpointer_lookup」を実行すれば取り込んだメッセージを確認できますし、「sourcetype="dmarc:json"」で内容を確認できます。

うまく取り込めない場合は、Splunkインストールフォルダの「var/log/splunk」にある「ta_dmarc_*」ファイルを確認するとエラーの原因が分かるかもしれません。


コメント

このブログの人気の投稿

SharePoint アイテム保管ライブラリをのぞいてみよう(2023年1月改訂)

※アカウント移行に失敗し画像を失ったので再度取得し改訂しました。 Office 365 Advent Calendar 2021  の12月16日投稿です。 警告: 個人的な理解に基づく内容、表現です。疑いを持って取り扱ってください。 SharePoint と OneDrive の保持の詳細 - Microsoft 365 Compliance | Microsoft Docs SharePoint Onlineをご利用の方にとっては普通?の機能ですが、SharePoint Server 2010以前から利用している方にとっては2013からの新機能「インプレース保持」で使われる「アイテム保管ライブラリ」をちょっとのぞいてみようという内容です。 Exchangeのインプレース保持とSharePointの保持は違うよ~ Exchange のインプレース保持はごみ箱から消えたメッセージを含むすべてを保持することができるのですが、SharePointでは対象外アイテムが存在しますし、編集についてはバージョン履歴に依存しています。また、情報管理ポリシーの「ごみ箱に移動する」が動作しなくなるなど利用者への影響もありますので注意が必要です。また、保持してることを内緒にしたくてもサイト管理者にはバレバレな点は認識しておかないとね。あとE3相当以上の方はExchangeは容量無制限ですけど、SharePointはしっかりと契約容量に含まれているので上司の方から説明のたびに叱られる可能性がありますね。 SharePointの保持は、Exchangeが連携して利用する大容量添付ファイル送信やTeamsメッセージの添付ファイルを保持する目的のために存在する機能なのかな~という感じがします。SharePointの情報調査や監査という意味では、バックアップ製品などでこまめに世代管理する必要があると感じます。 SharePointで削除されたアイテムは各サイトの「アイテム保管ライブラリ」にコピーされ設定期間保持されます。 各サイトというのがミソですね。しかも、サイト管理者から参照可能な場所に保持されるため、保持について理解のないサイト管理者はこのライブラリのアイテムURLを見ることができないユーザーに渡すなど困った行動を起こす可能性があります。 それでは保持を確認するために保持されるアイテムを準

あけまして

コロナから始まり、コロナに終わる。 今年は別の話題で終わると良いですね。 モーそろそろアフターコロナになりたいな〜と思います。  今日は何人でした。とかね、なんか昭和最後の年末年始をちょっと思い出す。 なんだかな〜って感じですね。

1000ユーザーの役職情報を削除しなさい

ActiveDirectoryを管理していると、「1,000ユーザーの役職情報を削除しなさい」なんてオーダーが出る可能性はある。 理由は何でもいい。似たような状況に置かれたと考えてほしい。 Q.急いでいるんだけど、いつまでに完了できる? A.ん~~1ユーザー30秒かからないとして500分程度。大体8時間  ちょっと残業すれば今日中に終わると思います。 これ、あなたの答えですか? 先日までは私の答えもこれだったかもしれません。 でも、今の私なら、「それなら30分くらいもらえれば終わります」(余裕) なぜなら私にはPowerShellという武器があるから。 まぁ、以前から便利なのは知ってたんですけどね、使う機会がなくてスクリプトとしては使っていなかったんですよ。やっても「Export-SPWeb」みたいな単発の命令ばっかりで~ じゃぁ、スクリプトっぽくいくよ~ Import-Module ActiveDirectory $users = Get-ADUser -Filter * ForEarch($user in $users) { Set-ADUser -Identity $user -Clear Title } あとはActiveDirectoryを編集できる権限で実行するだけ。 5分で書いて1分実行。 ついでに確認用のコマンドをちょっと打って まぁ、20分は忙しそうなふりして遊びましょうか? 本当に動かすときは、編集対象に問題がないかとか、ちゃんと編集できた確認とか やるべきことは色々あるけど、たった6行・・・ いや、最小限でいよく Import-Module ActiveDirectory Get-ADUser -Filter * | Set-ADUser -Clear Title 2行で終わるかも・・・ つぶしてもいい環境だったらこれでいいよね。 PowerShellの何がすごいかって、 今までの方法だと、サーバーに接続して・・・って言語すらまともに使えないのに~ って感じだったのが、それぞれのコマンドが勝手に必要な手順をこなしてくれるんですよね。 スクリプトやプログラム言語でActiveDirectoryからユーザー一覧を取得する。 これだけでも結構な行数のプログラムを書かなければならなかった?わけなんですが、 Get-ADuser -Filter