私はかなり長い間、内部使用のために WCF サービスを作成してきました (WinForms および MVC Web アプリと一緒に)。ただし、サービスの 1 つを未洗いに公開する必要があります。
これは単一のソース会社からのものであるため、次のことを提案しました。
建築
- 会社は VPN を使用して、HTTPS/SSL 経由で DMZ サーバーにリクエストを送信します
- DMZ ファイアウォールは、特定の企業 IP のみを許可します
- DMZ IIS サーバーが要求を内部 IIS サーバーに渡します
- 内部ファイアウォールは DMZ サーバー INTERNAL FACING IP のみを許可します
- 内部 IIS WCF サービスは要求を消費し、応答をチェーンに戻します。
しかし、私の IT マネージャーは、これ以上の詳細を求めています。
例えば
- 使用または作成するアカウントと、それらに付与する権限。
- 一般向けの IIS サーバーが DoS やハッキングなどから保護されるように制限する方法。
- 「安全な」詳細を誤って表示する公開 IIS サーバーを停止する方法
- サーバー/IIS 内で何をオフにするか
- trace.axd など、アクセスを制限するファイル
私も彼の理由を理解できます-すべてがうまくいけば、彼は缶を運びます...つまり、最終的に私が缶を運ぶことを意味します! メインフレームと IBM/Websphere のバックグラウンドから、IIS がいかに「安全でない」かについて彼が耳にするのはすべてです。
彼が本当に聞いているのは、「開発者/管理者がIIS/WCFを適切に保護していない」ということだと思います...だから私はそれを「適切に」やりたいと思っています!
(情報については、Troy Hunt の投稿を調べています ...しかし、ここにはたくさんあります!MSDN の一連の「子供用画用紙」を調べてみましたが、エンドレスから知る必要があることを抽出するのが非常に難しいことがわかりました。 「顕著な事実を隠しながら、この段落を長くして、より重要に聞こえるようにしましょう」というフィラーがあります!)