実践記事

すぐに実現!けっこう使えるWindowsのインターネットアクセスログ(Webプロキシログ)を取ってみた

当記事は、職場や学校などで使っているWindowsパソコンやタブレットを管理者の立場として管理している方向けの記事です。職場や学校では、据え置きのWindowsパソコンの他にWindowsラップトップや持ち運びに便利なタブレットなどが普及して、そこからいつでも誰でもインターネットにアクセスできるような環境が整いつつあります。ここでは、そうしたWindowsのインターネットアクセスで、特に関心の高いブラウザからのアクセスログを実際にどう取って見るのかご紹介しています。ここではざっくりとしたご紹介までなので、詳しいやり方などご質問のある方は、お気軽に弊社までご相談ください。なお、本記事は2022年7月時点の情報であり、今後、内容が変わる可能性があります。予めご了承ください。

インターネットアクセスログの必要性

こんにちは。この記事を担当するポトフです。昨今、職場や学校では当たり前のようにインターネットへ接続できる環境が整いました。また、コロナの影響により今では自宅からでも仕事ができるように、自宅からインターネット経由で職場や学校に接続できる環境も普及しています。皆さんもそうした環境の中で職場や学校から貸与される機器を通して業務をされている方も多いのではないでしょうか。

こうした背景の中で、管理者は貸与した機器にまつわる破損や紛失等の物理的なトラブル対応の他に、職場や学校におけるインターネットアクセスによるセキュリティ対策にもより一層気をつける必要が出てきました。インターネットと繋がっている以上は外部からの脅威に対してゼロリスクを目指して100%の防御をすることは不可能です。昨今のセキュリティ対策ではセキュリティ事故やインシデントはどこかで必ず起こることを前提として、その予兆の観測や後で何が起こったのかを調べるためにログを集めておくことに注目が置かれています。その1つとして会社や職場から貸与されるWindowsの機器からのインターネットアクセスログを集めておき、後から簡単に調査できるようにしておくことで、セキュリティ対策の1つに大きく役立つことも分かっています。

Windowsの標準機能で本当に欲しいインターネットアクセスログは取れるのか?

Windowsパソコン等の機器を管理されている方の中には、Windowsのインターネットアクセスログをまだ管理・収集していない方や、ログファイルは溜めているだけで、調査・分析の手段を持っていない方も多くいらっしゃると思います。理由はコストや技術的な課題など様々あると思いますが、まだ手を打ちかねている方は「本来ならセキュリティ対策をやっておく必要がある」と思っている方が大半ではないでしょうか。こうしたセキュリティ対策では一般的にサードパーティー製の製品を購入して簡単に使える状態になるよう設定していきますが、果たしてWindowsの標準機能だけでそうしたログは取れるのでしょうか。

結論から申し上げますと、Windowsの標準機能だけでは今回想定するWindowsのインターネットアクセスログを取ることはできません(代替え方法については後述しています)。Windowsにはご承知の通りWindowsイベントログと呼ばれるログを記録する機能が標準機能で搭載されています。このWindowsイベントログにはWindows内で動いているシステムの動作ログやWindowsを操作するユーザーのさまざまな操作が記録されます。この中にWindowsファイアウォールのログを取る設定が標準機能で設定することができます。

このWindowsファイアウォールのログを有効にすると下記のようなログが出ます。

2022-05-13 17:31:58 ALLOW TCP xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 55773 5355 71 - - - - - - - SEND

2022-05-13 17:33:58 DROP UDP xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 55773 5355 71 - - - - - - - RECEIVE

2022-05-13 17:33:58 DROP UDP xx:xx:xx:xx:xx:xx xx:xx:xx:xx:xx:xx 55624 5355 81 - - - - - - - RECEIVE

2022-05-13 17:34:38 DROP ICMP xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx - - 60 - - - - 8 0 – RECEIVE

これにはWindowsパソコンやタブレットからどのようなIPアドレスと通信をしたのかという情報が記録されています。各ログの項目については左から順番に下記のような情報が記録されています。

date:日時

time:時間

action:通信の動作(ALLOW / DROP)など

protocol:通信に使用されたプロトコル(TCP / UDP / ICMP)など

src-ip:送信元 IP アドレス

dst-ip:送信先 IP アドレス

src-port:送信元ポート番号

dst-port:送信先ポート番号

size:パケットデータサイズ

tcpflags:TCP の制御フラグ(Ack / Fin / Psh / Rst / Syn / Urg)など

tcpsyn:TCP シーケンス番号

tcpack:TCP 受信確認番号

tcpwin:TCP ウィンドウ サイズ

icmptype:ICMP  Type フィールド番号

icmpcode:ICMP  Code フィールド番号

info:その他

path:送受信情報(SEND / RECEIVE)

一見、このログだけでも十分インターネットアクセスのログとして使えるようにも見えますが、ブラウザから例えば、google などの検索サイトに接続してもここにはそのURL情報などが記録されません。このログはあくまでWindowsのファイアウォールが外部の機器(IPアドレス)と通信を行ったときに、その通信を許可したのか不許可にしたのかを記録しているログです。少し惜しいですが、Windowsの標準機能ではここまでが限界のようです。

なお、当記事ではこのログはうまくマッチしませんでしたが、このログも取っておくことでセキュリティ事故などがあった場合にその調査等で使えることもあります。収集されたい方は下記の記事に具体的な設定方法などの案内がありますので、こちらも併せてご参照ください。

Microsoft Defender ファイアウォールのログをLSCにて収集する方法

Windowsのインターネットアクセスログをどうやって取る?


色々と調べた結果、Windowsの標準機能ではWindowsのインターネットアクセスログを取ることができませんでした。そこで一般的にどのような方法でこのログを取ることができるのかを調べてみました。以下のような方法があるようです。

1.Windows端末にAgentを入れて、そのAgentの管理サーバーも立てるパターン

Agentが常にWindows端末上の操作の記録を取ります。Agentの他に管理サーバーも別で立てて、Agentが記録したログはその管理サーバーで一括管理します。ポリシー設定で操作そのものを禁止(例えばUSB利用を禁止)にするなどの細かい制御をすることができるものが多いようです。ログを取るだけの為に導入するとなると、管理したいWindows端末台数辺りの費用対効果を見極める必要はありそうです。

2. L7ファイアウォールやUTMアプライアンスを立ててインターネットの境界線とWindows端末の間に置くパターン

L7ファイアウォールやUTMアプライアンス側でインターネット接続がある度にログを記録します。Windows端末側はインターネット接続をするときにこのL7ファイアウォールやUTMアプライアンスを経由するように設定します。ポリシー設定でインターネット接続をさせないようにする、外部からの内部ネットワークに対する脅威なども防ぐことができる機能を持つものが多いようです。1.と仕組みは異なりAgentは不要です。ただ、こちらも1.と同様にログを取るだけの為に導入する際は、管理したいWindows端末台数辺りの費用対効果を見極める必要がありそうです。

3. Webプロキシサーバー(またはWebフィルタリングソフト)を立ててインターネットの境界線とWindows端末の間に置くパターン

Webプロキシサーバー側でインターネット接続がある度にログを記録します。Windows端末側はインターネット接続をするときにこのWebプロキシサーバーを経由するように設定します。仕組みやコストの考え方は2.と同じです。

4.Webプロキシサーバー(またはWebフィルタリングソフト)をAgentと見立ててWindows端末に入れるパターン

WebプロキシサーバーをWindows端末に入れて、そのWebプロキシサーバー側でインターネット接続がある度にログを記録します。Windows端末側はインターネット接続をするときにこのAgentと見立てたWebプロキシサーバーを経由するように設定します。仕組みやコストの考え方は基本的に3.と同じです。3.との大きな違い(特殊な点)はWindows端末の中にWebプロキシサーバー(またはWebフィルタリングソフト)を立ててしまう点です。

今回の調査では、この以上の4パターンでインターネットアクセスログを取る方法があることが分かりました。

WebプロキシログをLogStare Collectorで取ってみた

 

前の章では、4パターンのインターネットアクセスログを取る方法を見てきましたが、パターン3のWebプロキシサーバーを立てるパターンと4のWebプロキシサーバーをWindows端末に入れるパターンを比べてみると、結局はパターン3に集約されます。では、パターン4は意味が無いかと言うとそうでもなく、パターン3でカバーができない環境でもログが取れます。パターン3は基本的に職場や学校の施設内に固定されたネットワークでのみ有効です。昨今、固定されたネットワーク以外からでもWindows端末からインターネットアクセスを行って作業や仕事ができる状況では、パターン3ではほとんど対応できません。自宅や持ち出し先でも効果を発揮するのがパターン4と言えるでしょう。

当記事では、このパターン4の方法を使ってWindows端末にWebプロキシをインストールしてインターネットアクセスログを出力し、弊社製品のLogStare Collectorで取ってみました。今回は皆さんの環境でも試しやすいようにLogStare Collector も同じWindows端末に入れて試しています。

試した結果、下記の通りうまくインターネットアクセスログを取ることができました。

ここで利用するWebプロキシサーバーはSquid(スクイド:イカという意味)と呼ばれるGNU GPLライセンス(オープンソースのライセンスの1つ)で利用できるWebプロキシサーバーを使っています。サードパーティー製品に比べて保守サポートなどは受けられないデメリットはありますが、GNU GPLライセンス下で利用可能です。

前項でお話しした通り、Windowsパソコン等の機器を管理されている方の中にはWindowsのインターネットアクセスログを管理・収集しておらず、「本来ならセキュリティ対策をやっておく必要がある」と思いつつも、まだ手を打ちかねている状況の方も多いのではないでしょうか。Windowsの標準機能でWindowsのインターネットアクセスログを取ることができれば一番良いと思いますが、この記事を皮切りに一度Windowsパソコン等のインターネットアクセスログを取ってみてはいかがでしょうか。

また、現在ログファイルは溜めているだけで、調査・分析の手段を持っていない方の中には、前述パターンのいずれかの方法でログを取られているのではないかと思います。後述する方法では、その溜めたログファイルをうまく調査・分析できるようなやり方も載せていますので、ご参考にしてみてください。

WindowsにLogStare Collectorをインストール

ログを収集して調査・分析するLogStare CollectorをダウンロードしてWindowsにインストールします。ここではWindows10 Proを使っています。LogStare Collectorは執筆当時の最新版です。ダウンロードは下記のページより申し込みます。

https://logstare.com/logstarecollector/download-free/

ダウンロードとユーザー登録ができたら、インストーラーを右クリック→管理者として実行で起動します。

ここでは、ダウンロードしたLogStare Collector のインストーラー「logstare-collector-2.3.0-setup.exe」をc:\tempフォルダに配置しています。

起動後は、下記のセットアップウィザードが立ち上がります。今回は全て規定値でインストールを進めていきます。

詳しいインストール方法は、下記のURLも併せてご覧ください。

https://www.secuavail.com/kb/references/ref-200820_01/

 

インストールをした後、ブラウザでLogStare Collectorの管理画面を表示します。規定値のユーザー名:admin 、 パスワード root1234でログインします。

ログイン後、WebプロキシサーバーのIPアドレス、今回はこのWindows10 ProのIPアドレスをデバイス・グループに登録するために、左メニューから「監視・ログ収集設定」→「デバイス・グループ」を選択します。

グループ欄から「MyNetwrok」を選択してからデバイス一覧の右側にある「+」+ボタンを押します。

 

デバイス名とIPアドレスを入力します。ここでは、Windows10 ProのIPアドレスを192.168.0.1としています。デバイス名は分かりやすい名前にします。それ以外の設定は既定のまま、追加または更新ボタンを押します。

次にWebプロキシサーバーからSyslogという方式でログを収集するための設定を行う為に、左メニューから「監視・ログ収集設定」→「監視・収集」を選択します。選択後、監視収集一覧の右側にある「+」ボタンを押します。

「監視・収集」のラジオボタンを監視から「収集」にして、プルダウンから「SYSLOG収集」を選択します。デバイス・アプリケーション種類は分かりやすい名前を入れます。ここでは「外部とのアクセスログ」としています。最後に「ファシリティ」を全て選択/解除で全て選択、「プライオリティ」を全て選択/解除で全て選択します。それ以外の設定は既定のまま、追加または更新ボタンを押します。

以上が、「WindowsにLogStareCollectorをインストール」の設定です。

WindowsにSquidをインストール

Windowsのインターネットアクセスログを出力するWebプロキシサーバーをダウンロードしてLogStare Collector をインストールした同じWindows10 Proにインストールします。ここではSquidは執筆当時の最新版です。ダウンロードは下記のページより左側のConsole App「SQUID FOR WINDOWS」の「DOWNLOAD MSI」をクリックしてダウンロードします。

https://squid.diladele.com/

ダウンロードしたMSIファイルを実行します。起動後は、下記のセットアップウィザードが立ち上がります。今回は全て規定値でインストールを進めていきます。

詳しいインストール方法は、下記のURLも併せてご覧ください。

http://www.squid-cache.org/Download/

インストールした後は、WebプロキシサーバーがWindowsのインターネットアクセスログを出力して、LogStare Collectorに渡す設定(SYSLOGプロトコルを使ってTCP/IPでログを転送する設定)を行います。設定ファイルは規定値で「c:\Squld\etc\squid\squid.conf」ファイルです。

squid.confファイルを開いて、今回は下記の通り3行分を追加しました。

  1. 15行目の設定

    1. 15行目に以下の設定を入れています。これはWindowsのインターネットアクセスログのフォーマットを決めています。ここでは timefmと言う名前を付けて、「<34>」という文字以降からがログのフォーマットです。実は、Squidは完全にSYSLOGに対応していません。SquidはSyslog TCPまたはUDPにてログ自体を投げることはできますが、いわゆるSYSLOG形式(先頭にPRI情報を付けるなど)に対応しておらず、ここではそのフォーマットに合わせる形で設定をしています。
    logformat timefm <34>logformat=lsc-squid-format duration=%tr src_ip=%>a src_port=%>p dest_ip=%<a dest_port=%<p user_ident="%[ui" user="%[un" local_time=[%tl] http_method=%rm request_method_from_client=%<rm request_method_to_server=%>rm url="%ru" http_referrer="%{Referer}>h" http_user_agent="%{User-Agent}>h" status=%>Hs vendor_action=%Ss dest_status=%Sh total_time_milliseconds=%<tt http_content_type="%mt" bytes=%st bytes_in=%>st bytes_out=%<st sni="%ssl::>sni"

    上記のフォーマットで使われているコードの大まかな意味は下記の通りです。

    %>a:接続元IP

    %<a:接続先IP

    %tl:時間

    %ru:リクエストURL(リクエスト部分無し)

    %>ru:リクエストURL(フル)

    %>Hs:HTTPステータス

    %mt:MIMEタイプ

    %rm:メソッド

    %{Referer}>h:リファラー

    %{User-Agent}>h;ユーザーエージェント

    実際にログを収集すると以下のような形でコードが値に変換されて出力されます。

    logformat=lsc-squid-format duration=30059 src_ip=::1 src_port=49407 dest_ip=- dest_port=- user_ident="-" user="-" local_time=[28/Jun/2022:12:20:30 +0900] http_method=CONNECT request_method_from_client=CONNECT request_method_to_server=CONNECT url="fef.mx.managex.xxxsoft.com:443" http_referrer="-" http_user_agent="-" status=503 vendor_action=NONE dest_status=HIER_NONE total_time_milliseconds=- http_content_type="-" bytes=125 bytes_in=125 bytes_out=0 sni="-"
  2. 17行目の設定

    17行目に以下の設定を入れています。これは先ほど設定したtimefmというフォーマットでWindowsのインターネットアクセスログを192.168.0.1にSyslog TCP/IPで送信する設定です。182.168.0.1は、LogStare Collectorをインストールした Windows10 Proで、このWebプロキシサーバーのIPアドレスでもあります。

    access_log tcp://192.168.0.1:514 timefm
  3. 19行目の設定

19行目に以下の設定を入れています。これはWebプロキシサーバーが外部に接続する際にどのDNSサーバーのIPアドレスを利用するかを設定しています。これらIPアドレスはGoogle社が運営するパブリックDNSサービスのIPアドレスです。他のIPアドレスを設定しても問題ありません。

dns_nameservers 8.8.8.8 208.67.222.222

以上の設定が終わったら、Windowsサービス管理画面からSquidサービスを再起動します。「Squid for Windows」というサービス名を再起動してください。

以上が、「WindowsにSquidをインストール」の設定です。

Windows設定でプロキシを設定

設定の最後はWindows設定でプロキシを設定します。先ほどインストールしたSquildを今回のプロキシ設定の対象にします。Windowsキーを押して検索バーで「プロキシ」と入力すると「プロキシの設定を変更する」というメニューが出てきます。プロキシサーバーを使うに「オン」をして、アドレス「http://localhost」、ポート「3128」、ローカル[イントラネット]のアドレスにはプロキシを使わないにチェックを入れます。最後に保存して設定を終了します。

以上が、「Windows設定でプロキシを設定」の設定です。

LogStare Collectorでインターネットアクセスログを見る

これまでの設定を行うことで、ブラウザを使ってインターネットアクセスを行うと、裏で自動的にインターネットアクセスログが記録されてLogStare Collectorに溜められます。いくつかブラウザを使ってインターネットアクセスを行った後にそのアクセスログが記録されているか確認します。

ブラウザでLogStare Collectorの管理画面を表示します。規定値のユーザー名:admin 、 パスワード root1234でログインします。

ログイン後、インターネットアクセスログを検索するために、左メニューから「ログデータ」→「検索・ダウンロード」を選択します。検索するデバイスのログを選択します。ここでは「192.168.0.1」「SYSLOG-外部とのアクセスログ」を選択します。最後に期間を選択します。規定値では操作している日になるため、その日に出たインターネットアクセスログが対象になります。

下記のように検索条件の下にログが出ていることで、インターネットアクセスログが取れていることが分かります。ここでは3件のログがあり、6月24日と27日の14時台にログが出ています。アクセス先はmicrosoft.comドメインで、同じ時間帯に定期的に出ているようなので、なにか裏でジョブが動いているのかもしれません。必要に応じてWindows10 Proの状態を確認するなど対応を行っても良いと思います。

また、画面上側の検索キーワードには、例えば気になるURLの一部または全部やHTTPステータス、ユーザー名などを入れることができます。複数のキーワードも入れることができ、大量にあるインターネットアクセスログの中から必要なログだけを見ることができます。

検索結果の右側にはCSV形式でダウンロードボタンもあります。特定のログだけを抽出してファイルで取り出すことができるため、後でその特定ログを分析するために加工・編集したい場合に便利です。

こちらはご参考ですが、ここで構築したLogStare Collectorを、弊社製品のLogStare Reporterと連携することで収集したログを集計・レポーティングすることができます。下記はレポートのイメージですが、よりグラフィカルにログを分析したい場合にはお勧めです。

https://www.logstare.com/demosite/

以上が、「LogStare Collectorでインターネットアクセスログを見る」です。

一通りの設定を終えて

ここまででWindowsのインターネットアクセスログについて調べてみたこと、LogStare Collector+Squidを通してインターネットアクセスログを収集して調査・分析できるところまでをご紹介しました。こういったツールをうまく組み合わせることで、ただ単にログを貯めておくよりも分かりやすく調査・分析できることがご覧いただけたと思います。また、ログを詳しく見ていく中で、利用しているユーザー自身も気づいていないインターネットアクセスがある、貸与された機器が意外な時間帯にインターネットアクセスをしているなど、ログを取っていると使えそうな情報も実はたくさん記録できます。

管理者は日々忙しい中でシステムのトラブル対応だけでなく、昨今ではセキュリティ対策も行わなければならず、こうしたWindowsのインターネットアクセスの見える化も今後ますます重要になってきます。とにかくログは記録しておくことは、これまで通り必要ですが、うまく調査・分析できるようにLogStare Collector+Squidで見える化もしてみてはいかがでしょうか。

この記事では細かい説明は省いていますので、設定や動作など気になることや、このサービスに対応して欲しいといった要望がありましたら是非お問い合わせいただければと思います。

ここまでご覧いただき誠にありがとうございました。 (記:ポトフ)

記載されている会社名、システム名、製品名は一般に各社の登録商標または商標です。

当社製品以外のサードパーティ製品の設定内容につきましては、弊社サポート対象外となります。

PrivateLinkEndpoints関連メトリクス一覧前のページ

【現場SE奮闘記 vol.1】社内ネットワークで「嵐」が起きたその日次のページ

ピックアップ記事

  1. Zabbixヒストリデータのレポート生成について
  2. ログフォワーダー「okurun.jar」について
  3. 自社製品をAMIにしてAWSマーケットプレイスへ出品
  4. IoT機器「Raspberry pi」とLogStare Collectorで温…

関連記事

  1. FortiGate

    【現場SE奮闘記 vol.2 】「天狗となったエンジニア」~FortiGate NATの仕様編~

    筆致についてはタイトル毎に統一されていません。あらかじめご了承ください…

  2. AWS/Azure

    自社製品をAMIにしてAWSマーケットプレイスへ出品

    はじめにかねてより弊社製品のAWSマーケットプレイス出品を目論んで…

  3. 実践記事

    LogStare Reporter-レポート作成キャンペーン「LogStareチャレンジ」やってみた…

    当記事では、LogStareチャレンジを開始するまでの環境構築手順につ…

  4. 実践記事

    【現場SE奮闘記 vol.1】社内ネットワークで「嵐」が起きたその日

    筆致についてはタイトル毎に統一されていません。あらかじめご了承ください…

  5. FortiGate

    【禁断の異機種間HA】FortiGate-60F/60EでHAを組んでみた!

    こんにちは。takiです。タイトルの通り今回もやってみた系の記…

Microsoft365もっと活用セミナー

ナレッジステアはセキュアヴェイルグループが運営しています

ネットワーク管理者向けセキュリティセミナー

無料で使えるシステム監視・ログ管理ソフト

  1. AWS/Azure

    AWSマーケットプレイス上から無償版のLogStare Collectorを試す…
  2. SNMPを触ってみた

    ログ分析・監視テクニック

    SNMPとは?新入社員が生まれてはじめて触ってみた!
  3. NW機器

    SonicWall UTMにSyslog送信設定を追加する方法について
  4. ログ分析・監視テクニック

    nProbeであらゆる通信をログに記録し可視化する
  5. NW機器

    Nutanix Prism ElementにおけるSNMP監視/REST API…
PAGE TOP