web-dev-qa-db-ja.com

文書化されたリバースプロキシ実装のベストプラクティス

リバースプロキシの実装に関するベストプラクティスのドキュメントを探しています。

内部データベース/ Webサーバーに外部からのアクセスを許可する必要があり、これを達成するための最も効率的で安全な方法を決定しようとしています。

私たちはすでにmodプロキシApache構成を実行しているRed Hat 2サーバーを持っていますが、(このサーバーは古くなっているため)今日のベストプラクティスを確認したいと思います。

私はかなりググってみましたが、今のところ、ありふれたセキュリティのベストプラクティスに関連する非常に一般的なアドバイス以外のものが見つかりません。

何でも提供していただければ幸いです。

ありがとう!エリック

8
Irongrave

NIST SP 800-44パブリックWebサーバーの保護に関するガイドライン は、魔法の弾丸ではありませんが、良い出発点です(そして、それは現在数年前です)。

私の経験では、最も重要な要件と軽減策のいくつかは、順不同で、次のとおりです。

  • プロキシ、バックエンドWeb(およびDB)サーバーが直接アウトバウンド(インターネット)接続(DNSおよびSMTP、特にHTTPを含む)を確立できないことを確認してください。これは、必要に応じて、必要な送信アクセスの(転送)プロキシ/リレーを意味します。
  • ロギングが便利(上記の9.1)であり、coherentであることを確認してください。複数のデバイス(ルーター、ファイアウォール/ IPS/WAF、プロキシ、ウェブ/アプリサーバー、DBサーバー)からのログがある場合があります。各デバイス間でレコードをすばやく確実かつ確実にリンクできない場合は、間違っています。これは、NTP、およびPID、TID、セッションID、ポート、ヘッダー、Cookie、ユーザー名、IPアドレスなどの一部またはすべてをログに記録することを意味します(一部のログには機密情報が含まれている可能性があります)。
  • プロトコルを理解し、情報に基づいた慎重な決定を行います。たとえば、暗号/ TLSのバージョンの選択、HTTPヘッダーサイズ、URLの長さ、Cookieなどです。リバースプロキシには制限を実装する必要があります。階層型アーキテクチャーに移行する場合は、開発チームがループに入っていることを確認して、問題をできるだけ早くキャッ​​チできるようにしてください。
  • 外部から脆弱性スキャンを実行するか、誰かに実行してもらいます。 フットプリントを知っていることと、レポートがデルタと理論上のTLS SNAFU du-jour。
  • 障害のモードを理解します。負荷や安定性の問題があるときに、デフォルトの「HTTP 500-ホイールが外れた」ことをユーザーに送信する
  • 監視、測定基準、グラフ:異常の調査や容量計画では、通常のデータと履歴データがあることは非常に貴重です
  • チューニング:からTCP SYN-cookiesへのバックログをリッスンする時間待機。ここでも、意図的に情報に基づいた決定を行う必要があります。
  • 基本的なOS強化ガイドラインに従い、chroot/jails、ホストベースのIDS、および可能な場合はその他の手段の使用を検討します。
10
mr.spuratic