TMG で Azure の Virtual Network に接続できるか挑戦中 (未完) の続編です。
Windows Azure Virtual Network VPN with TMG 2010 という記事を見て、TMG で接続するための手順が細かに紹介されていたので、もう一度やってみようと思ってシンプルな構成にしてチャレンジしてみました。
こちらは未完になっていないので接続後のオンプレミスと Azure 間のデータ授受まで試せました。
SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿
TMG で Azure の Virtual Network に接続できるか挑戦中 (未完) の続編です。
Windows Azure Virtual Network VPN with TMG 2010 という記事を見て、TMG で接続するための手順が細かに紹介されていたので、もう一度やってみようと思ってシンプルな構成にしてチャレンジしてみました。
こちらは未完になっていないので接続後のオンプレミスと Azure 間のデータ授受まで試せました。
TMG (Threat Management Gateway) 2010 はMicrosoft Forefront Threat Management Gateway Best Practices Analyzer Tool に含まれている Data Pakager を使用することで VPN 接続のログを取得することができます。
Azure の Virtual Network (VPN) を NAT の後ろにある TMG で接続できないものかと試行錯誤しているのですが、接続ができない原因のログをとるために使いたかったので使用方法を少しまとめてみたいと思います。
以下の技術情報を参考にさせていただいています。
Using TMG Data Packager to Troubleshoot Exchange Web, Lync Web and SharePoint connectivity
How TMG Data Packager can assist you troubleshooting VPN Site to Site Issues
挑戦中なだけでうまく接続ができていないのですが…。
# NAT の後ろに配置した TMG で Virtual Network に接続できた方がいらっしゃいましたらコメントを頂けると嬉しいです。
MSDN 上の情報としては以下になるようです。サポートされているデバイスの情報なども記載されています。
About VPN Devices for Virtual Network
フォーラムも開かれているようですのでこちらも定期的に確認をすると良さそうです。
Windows Azure Virtual Machines Virtual Network
IP Sec についてはこちらの情報がわかり易いです。
T10:IPSec ~技術概要とセキュアなネットワークの実現手法~ 第一部IPsecの基本とリモートアクセスへの応用
TMG にグローバル IP を割り当てた状態で、接続するための手順がこちらで詳細に説明されています。素晴らしい!!
Windows Azure Virtual Network VPN with TMG 2010
この辺も参考で
Azure Connect UP but can not route accross
Custom pre-shared key
PPTP を使用して TMG で VPN 接続した際の作業内容をメモとして。
TMG はプロキシの機能を備えていますので、キャッシング + リバースプロキシとして設定をすることが可能です。
今日はその設定をまとめてみたいと思います。
DNS キャッシュと言えば [ipconfig /displaydns] で DNS リゾルバーキャッシュを見る方法が有名かと思います。
TMG や ISA では独自に DNS キャッシュを保持する機構を持っていますので、今回はこれについてみていきたいと思います。
技術情報としては以下の情報があります。
[ISA]DNS キャッシュの仕組みとキャッシュ期間の変更方法
スクリプトを使用して、ISA Server 2004 コンピューターで DNS キャッシュの属性を設定する方法
Edge on TMG (TMG と Exchange エッジ トランスポートの共存環境) を Exchange 2010 SP1 で構築するための方法をまとめてみたいと思います。
今回は以前構築した Exchange 2010 RU4 + TMG 2010 SP1 の環境を使用しいます。
■エッジ トランスポートに Exchange Server 2010 SP1 を適用
まずは、Exchange Server 2010 SP1 を適用してます。
言語パックは、現在のサーバーにインストールされており、Exchange バイナリでアップグレードする必要があります。 |
アップグレードの場合、[DVD に含まれる~] は使えないようですので以下のURL から言語パックバンドルをダウンロードして、[言語バンドルからすべての言語をアップグレードする] を使用して、言語オプションを指定するようにします。
Microsoft Exchange Server 2010 SP1 言語パック バンドル
‘IsaManagedCtrl’ () プロセス (ID: 3256) で開かれているファイルがあるため、アップグレードを続行できません。 |
[IsaManagedCtrl] ですが、[Microsoft Forefront TMG Managed Control] サービスになります。
インストール時にはこのサービスを停止した状態にしておきます。
サーバーを再起動しても状況は変わらず、TMG 2010 の管理コンソールを確認すると、[電子メール ポリシー] でエラーが発生してしまっています。
TMG 2010 SP1 ですが、Exchange 2010 SP1 には対応していないバージョンとなっています。
Exchange 2010 SP1 に対応させるためには TMG 2010 SP1 RU1 を適用する必要があります。
Forefront TMG 2010 Service Pack 1 用のソフトウェア更新プログラム 1
TMG 2010 SP1 RU1 をダウンロードして適用し、Exchange 2010 SP1 に対応させてみたいと思います。
以上で SP1 RU1 の適用は完了です。
[Microsoft Forefront TMG Managed Control] サービスも起動して、[電子メール ポリシー] のエラーも出力されなくなっています。
# [Microsoft Forefront TMG Managed Control] サービスは手動起動しないとちょっと調子悪かったりしましたが…。
Exchange 2010 の現時点の最新版は Exchange 2010 SP1 RU1 ですが、このバージョンでも [電子メール ポリシー] は起動しました。
Exchange Server 2010 Service Pack 1 用の更新プログラムのロールアップ 1 (KB2407028)
Edge on TMG を Exchange 2010 SP1 で構築する場合、TMG を SP1 RU1 にしないと正常に機能が起動しないので注意する必要がありそうです。
Exchange Server 2010 のエッジ トランスポートサーバーと Threat Management Gateway (TMG) 2010 は共存することが可能になっています。
TMG 2010 では [電子メール ポリシー] という設定があります。
上記のダイアログにも表示されているようにこの機能を使用するためには Forefront Protection 2010 for Exchange (FPE) と Exchange のエッジ トランスポートサーバーをインストールしている必要があります。
この構成は以下の 3 種類のソフトで構成されます。
自宅の検証環境にも TMG とエッジ トランスポートは構築されているのですが、常時起動しているサーバーで起動するにはリソースが足りていないので、複数の物理サーバーで実行しています。
検証環境のサーバー増強で一台でTMG とエッジを実行できる環境を構築できそうなので、この環境の構築方法をまとめてみたいと思います。
# メモリが 2GB はないと検証環境として動かすのも少し厳しいかと。 AD LDS が 2 インスタンス、SQL Server Express、TMG、Exchange 2010 が動作しますので。
FPE に関してはオプションではなく必須コンポーネントとなっています。
エッジ トランスポート + TMG の構成で電子メール アドレスポリシーを設定しようとしても以下のエラーとなり、電子メール ポリシーが動作しません。
まずは、エッジ トランスポートをインストールします。
Exchange 2010 の現時点の最新版は、[Exchange Server 2010 SP1] となっています。
最近、[TMG 2010 SP1 Software Update 1] の提供が開始されました。
Software Update 1 for Microsoft Forefront Threat Management Gateway (TMG) 2010 Service Pack 1
こちらの Overview に以下の記載があります。
あまり意識していなかったのですが、 Update 1 から Exchange 2010 SP1 をサポートとなっています。
Update 1 に関しては、現時点では日本語版の提供がされていません。
そのためエッジ トランスポートに関しては Exchange 2010 RU4 で構築をしています。
エッジ トランスポートのインストールに関しては通常のインストールと変わりませんのでインストール手順の概要のみ記載しておきます。
ServerManagerCmd –ip D:ScriptsExchange-Edge.xml |
次に FPE をインストールします。
Exchange 2010 のインストーラーを起動すると FPE 2010 のインストールというメニューがあります。
これをクリックすると、Download Center の FPE のダウンロードサイトが開きます。
TMG のインストーラーにも FPE のインストールメニューがあります。
こちらをクリックすると、FPE のインストールが開始されます。
TMG のインストーラーには FPE のインストールモジュールが含まれていますので、FPE をインストールする場合にはこちらを使った方が楽かと。
FPE のインストールも通常のインストールと同じですので概要を。
最後に TMG をインストールします。
こちらもインストールの概要を。
以上で、Exchange 2010 のエッジトランスポートと TMG の共存環境の構築は完了です。
インストールですが、
の順番でも構築することは可能です。
FPE は、Exchange を保護するものになりますので、エッジ トランスポート導入後にインストールする必要がありますが。
通常であればエッジトランスポートの受信/送信コネクタは [Exchange Management Console] から作成することになりますが共存環境で電子メール ポリシーを有効にすると、TMG の管理コンソールで設定をすることになるようです。
電子メールのゲートウェイとして使用できるようにするための設定は別の投稿でまとめたいと思います。
TMG 2010 のログ キューについて少しまとめてみたいと思います。
TMG 2010 になりログキューという設定が追加されました。
Forefront TMG ログを構成する
ログ キューの構成
TMG Large Logging Queue: No More SQL Lockdowns?
TMG はログの出力処理による負荷が高くなる、出力先が応答なしの状態になった場合にログの内容をバイナリ形式で
キューとして出力します。
この際、ログ キューを [Large Logging Queue (LLQ)] として特定のディレクトリに出力を行います。
TMG では、ログは SQL Server に蓄積していくことができるのですが、ログの蓄積先の SQL Server が停止している状態や、ファイルとして出力している場合は、ログファイルの出力先の容量が枯渇してしまった場合などにログキューが使用されます。
ログの出力先が正常に使用できるようになると、ログ キューの内容を最終的なログに出力する処理が再開されます。
ファイアウォール製品ですので、証跡管理のためログは重要な要素となります。
そのため、ログが出力できない場合でもその間のログをロストしないようにするためキューに出力がされているのだと思います。
ログ キューの出力先ですが、TMG の管理コンソールの、[ログ & レポート] の [ログ キューの構成] で変更することが可能です。
デフォルトでは、[%ProgramFiles%Microsoft Forefront Threat Management GatewayLogs] に出力される設定となっています。
日本語のドキュメントは見当たらなかったのですが、TechNet に以下の情報が記載されています。
Overview of the Logging Improvements in Forefront Threat Management Gateway (TMG)
この中に、[Logging Queue] としてログ キューの基本的な動作概要図が記載されています。
ログ キューを [Binary LLQ Data] として出力をして、[ISA Control] が [Log Database] に格納するという流れになっています。
大まかに書くとログ キューが使用されると以下のような経路で DB に格納がされます。
ログ キューをログ DB に格納する処理はこのサービスが実施しています。
TMG のコアなサービスになるので、依存関係がかなり多いです。
ファイアウォール ポリシーと、Web アクセス ポリシーのログは独立した DB に日付単位で格納されます。
ログ キューの動作を確認してみるのは簡単にできます。
ログで使用している SQL Server のインスタンスのサービスを停止することで、ログに出力が行えなくなりますのでログ キューが使用されるようになります。
サービスから停止してもよいのですが、TMG の管理コンソールからも停止することができます。
TMG のサービスで、サービスが [SQL Server Express] となっているものが、ログに使用しているインスタンスになりますので、このサービスを停止します。
# MSFW のインスタンスが停止されます。
そうすると、ログが SQL Server に格納できなくなりますので、ログがログ キューに出力されるようになります。
ログ キューを使用しているかどうかは、[ログ & レポート] の [ログの状態を表示] から確認することができます。
キューが使われていると以下の状態になります。
# ログの状態が [キューを使用中] になっているとログ キューが使用されています。
SQL Server を起動するとキューがデータベースに書き込まれるようになりますので、ログの状態が以下のようになります。
# 正常な状態ですと、[準備完了] となっています。
原因はわかっていないのですが、ログ キューのファイルが稀にロックしてしまいキューから DB に書き込みが行われなくなることがあります。
TMG コントロールサービスがキューファイルを開いたままになってしまい、処理が継続されない状態になるようです。
# キューとして残っているファイルの更新日時が一番古いファイルがロックされてしまっているファイルになるはずです。
Process Explorer からも [mspadmin.exe] (Microsoft Forefront TMG コントロール サービス) がファイルを使用していることを確認できます。
この状態になった場合、一度 TMG コントロールのサービスを停止してロックしてしまっているファイルを削除し、サービスを開始することでDB への書き込みが再開されます。
# ロックしてしまったファイルが存在していると DB への書き込みが再開されないのですよね…。
FCS のようなウイルススキャンソフトでファイルをロックしてしまっているのかと思っていたのですが、TMG 用に推奨されているスキャンの除外設定をしても現象が発生してしまったのですよね。
プロセスとしても mspadmin.exe がファイルを開いているので、内部的に処理が進んでいないように見受けられるのですが。
TMG コントロールサービスを停止すると TMG のサービスが停止してしまうので、この方法で解消するのは現実問題としては結構難しいですよね。
ログ用のインスタンスを停止して、ログキューのディレクトリを変更することで稀にロックが解除されることもあるのですが、確実な方法ではないのですよね。
これについてはもう少し情報を集めていきたいと思います。
# ファイルがロックしていない状態でもキューが蓄積されていることがあるので、単純にスペックが足りていないだけかもしれませんが。
ログ キューをロックしてテストをしたい場合は、以下のコマンドを PowerShell で実行することで、ファイルをロックすることができます。
# 改行されている箇所は 1 行で実行します。
$file = Get-Item "C:Program FilesMicrosoft Forefront Threat Management GatewayLogs*.llq" | Sort-Object LastWriteTime -Descending | Select-Object -First 1 $fs = New-Object System.IO.FileStream($file, [System.IO.FileMode]::Open, [System.IO.FileAccess]::Read, [System.IO.FileShare]::None) # ファイルのロックを解除するタイミングで実行 $fs.Close()
ログキューが蓄積されすぎると、サーバーの再起動時に TMG のサービスが起動しないことがありますので少し気を付ける必要があると思います。
# ロックダウンモードが働いているのかもしれませんが。
TMG は日本語の情報をあまり見かけないので、情報集めるのも結構大変ですね…。
2010/10/12 追記
TMG 2010 SP1 RU1 を適用したところ、私の環境では解消されました。
Forefront TMG 2010 Service Pack 1 用のソフトウェア更新プログラム 1
この更新プログラムには、以下の修正が含まれていますのでこの対応で現象が解消されているかもしれません。
Forefront TMG 2010 SP1 はローカル SQL Server データベースにログを書き込めない