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

アライドテレシス AT-TQシリーズの認証ログの統計を取る

なんでアライドテレシスなのか?は聞かないでくれ。
たまたまAT-TQシリーズのログとSplunkがあったからだ。


IEEE802.1x認証を行っていると、認証ログはRadiusかアクセスポイントのどちらかを見ることになる。私はネットワーク屋としてのプライド?があるので、APのログを使うことにした。


jan 1 07:07:10 info: hostapd: wlan1: STA xx:xx:xx:xx:xx:xx IEEE 802.1X: authenticated - identity 'username' EAP type: 25 (PEAP)
jan 1 07:07:11 Warning: hostapd: wlan1: STA xx:xx:xx:xx:xx:xx IEEE 802.1X: authentication failed - identity 'username' EAP type: 25 (PEAP)

IEEE802.1x認証のログは上の2種類だ。成功したか、失敗したかだよね。
通常は成功のログしかないはずなので、抽出したいのは失敗したログ。
ただログを調べるだけだと芸がないので、かっこよく表示したい。


そう、表にするのだ。
















ユーザー名authenticatedauthentication failed
username102
username2120

そう、こんな感じだ。


Splunkにはログを解析してフィールドとして抽出してくれる機能が備わっているので、「field=data, field2=data2,」みたいなログだと準備はいらないけど、アライドのログのように自動フィールド抽出が出来なかった場合は、ちょっとした設定が必要になるので、これを超端折って説明するよ。


これを実現するためには、ログからユーザー名ごとのauthenticatedとauthentication failedを抽出しカウントしなければならない。手作業なら絶対にやりたくない作業だね。


まずはフィールド抽出の定義をするよ。


フィールド抽出で2つの正規表現を使う。
ユーザー名の抽出は「identity 'username'」を検索することになる。
正規表現でいうと「identity \'(?<identity>.*)\'」これでidentityというフィールドが定義できた。
次に、authenticatedとauthentication failedを抽出するわけだけど、前後の文字列をうまく使うと簡単だ。
ログを見るとIEEE 802.1X: ~~~ - identityとなっているのでこんな感じですね。
「IEEE 802.1X:(?<auth>.*)- identity」これでauthフィールドが用意できた。


とりあえず、「identity=* 」で検索すると、上の2種類のログだけが抽出されるはずだ。
さらに、「identity=* | counttable identity auth」と検索すると目的の表が表示される。


完成。
すごく簡単だよね。


ちなみに、「identity=* auth=*failed | counttable identity auth」にすれば、認証失敗したユーザー名と回数の表が表示される。


この表の数字をクリックすると、ログを抽出することができる。


もしかしたら、利用者が「つながらないなぁ~」とあれこれ試してる間に原因を調べて、対処法を教えてあげるなんてことも出来るかもね。


こんな便利な機能が無料で使えるって素晴らしいよね。
アラートを上げたいとか、ログのサイズが1日500MBを超える場合は有償になるけど無償の範囲でも十分役に立つ。
一度触ると離れられないSplunk地獄?天国?が待ってるわけだけど、windows版もあるのでお勧めですよ~



コメント

このブログの人気の投稿

SharePoint アイテム保管ライブラリをのぞいてみよう

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