最近、私は教育プロジェクトWAFをサービスとして開始しました。私の見解に従ってこのプロジェクトを開発するには、次のものが必要です。
WebアプリケーションファイアウォールはWebサーバーとインラインです。着信トラフィックと発信トラフィックを傍受して検査し、攻撃がWebサーバーに到達するのを防ぎ、要求元のクライアントへの機密データの漏洩を防ぎます。
悪意のあるリクエストを検出するための署名
クライアント---> WAFサーバー--->オリジンサーバー
クライアントがドメイン名にAレコードを追加するだけで、トラフィックがサーバーに転送され、フィルタリングされると元のサーバーに送信されるという考え方です。
私の質問は、最初に、クライアントの元のIPアドレスに要求を転送するこのサーバーを実装するためのいくつかのポインターを提供してください。
次に、ネームサーバーをどのように処理できますか?サーバーの元のIPアドレスが漏洩するため。そうすれば、WAFをバイパスするのは簡単です。
質問1に関して:
ほとんどのWebサーバーをリバースプロキシとしてセットアップできます(IIS、Apache、Nginx、さらにはNodeJSもすべて機能します)。 IISとNginxの方が速いので(必須ではありません)望ましいです(私の意見ですが、これは常に正しいとは限りません)。
IISをプロキシとして設定する手順は、 ここ にあります。
使用できるVMの形で既製のWAFもあります。 barracuda はその一例です(内部でNginxを使用しているようです)
質問2に関して:
あなたは2つのことをすることができます
webサーバーがWebプロキシのパブリックIPからの接続のみを受け入れるようにしてください。
webサーバーは、プロキシSaaSのクライアント証明書を検証した後にのみ接続を許可します。 TLSが必要であり、Webサーバーはクライアント証明書の検証を実装する必要があります。
webサーバーとプロキシの間でトンネル(VPN)を使用し、インターネットの他の部分からWebサーバーを非表示にします
それが役に立てば幸い。