NGINX Plus リリース 22 (R22)が利用可能になったことをお知らせします。 NGINX オープンソースをベースにした NGINX Plus は、唯一のオールインワン ソフトウェア ロードバランサー、コンテンツ キャッシュ、Web サーバー、API ゲートウェイです。 このリリースの主な焦点は、大規模なアプリケーションの粒度と回復力を強化するための監視と認証です。
NGINX Plus R22 の新機能は次のとおりです。
古いオペレーティングシステムはサポートされなくなりました–
NGINX Plus は相互 TLS をサポートしており、クライアント証明書を使用して接続クライアントの ID を確認し、暗号化された接続を確立します。 相互 TLS はクライアントの ID について高いレベルの保証を提供しますが、失効した証明書の管理は管理上の負担になる可能性があります。 オンライン証明書ステータス プロトコル(OCSP) は、提示されたクライアント証明書のステータスを検証することでこの問題を解決します。
RFC 6960で定義されているように、OCSP を使用して X.509 クライアント証明書の有効性をチェックするように NGINX Plus を設定できます。
SSL クライアント証明書の OCSP 検証を有効にするには、証明書の検証を有効にするssl_verify_client
ディレクティブとともに、新しいssl_ocsp
ディレクティブを含めます。
NGINX Plus は、 ssl_ocsp_responder
ディレクティブで別の URI を定義しない限り、クライアント証明書に埋め込まれた OCSP URI に OCSP 要求を送信します。
すべてのワーカー プロセスで共有される単一のメモリ ゾーンに OCSP 応答をキャッシュするには、ゾーンの名前とサイズを定義するssl_ocsp_cache
ディレクティブを含めます。 OCSP 応答のnextUpdate
値に別の値が指定されていない限り、応答は 1 時間キャッシュされます。
クライアント証明書の検証の結果は、OCSP 失敗の理由を含め、 $ssl_client_verify
変数で確認できます。
クライアント証明書が信頼されていない場合、または OCSP 応答が有効でない場合、TLS ハンドシェイクは失敗します。 ステータスコード495
(SSL
証明書
エラー)
が返され、エラー ログにエラー
重大度レベルのエントリが作成されます。
YYYY / MM / DD hh : mm : ss [エラー] 31222#0: *5 証明書ステータスを要求中に OCSP 応答で証明書ステータスが「失効」になりました。応答者: 127.0.0.1
NGINX Plus 向けのOpenID Connect リファレンス実装は、新規および既存のアプリケーション全体に SSO を拡張し、複雑さとコストを最小限に抑えます。 リファレンス実装では、NGINX Plus 機能とNGINX JavaScript モジュール(njs) の組み合わせを使用して、認証エンドポイントとのコード交換を実行し、IdP から ID トークンを受け取ります。 ID トークン自体は NGINX Plus キー値ストアにキャッシュされ、不透明なセッション トークンがクライアントに送信されます。 次に、クライアントは、バックエンド アプリケーションにアクセスする前に、NGINX Plus が ID トークンを検証するために使用する有効なセッション トークンを提示して認証します。
このリリースでは、OIDC リファレンス実装に多数の機能強化が加えられ、次の 2 つの重要な変更が加えられています。
マップ
ブロックに渡すことにより、構成で複数の IdP がサポートされるようになりました。 この追加の柔軟性により、OIDC リファレンス実装コードを変更する必要性が軽減されます。サンプル構成は次のとおりです。
各マップ
ブロックでは複数の値が許可されるため、複数の IdP と認証パラメーター (クライアント シークレット、JWK キー ファイル、認証エンドポイント) をサポートできます。 ここでは$host
変数を入力パラメータとして使用していますが、リクエスト ヘッダーから派生した任意の変数を指定することもできます。
NGINX Plus API は、監視とトラブルシューティングに役立つように、OpenID Connect ログインに関連するアクティビティを追跡するようになりました。 OpenID Connect リファレンス実装の詳細については、 GitHub リポジトリを参照してください。
DDoS 攻撃とブルートフォース パスワード推測攻撃は、アプリケーションにとって重大な脅威です。 レート制限により、その影響を軽減できます。レート制限とは、NGINX Plus が一定期間内に各クライアントが実行できるリクエストの数を制限することです。
NGINX Plus R20では、 NGINX Plus API ( /api/ version /http/limit_reqs
および/api/ version /http/limit_conns
エンドポイント) へのリクエスト レートと接続制限のリアルタイム監視が追加されました。 情報は、NGINX Plus ライブ アクティビティ モニタリング ダッシュボードに、累積カウントが表形式で、タイムスタンプ付きのカウントがグラフ形式で表示されます。
テーブルには、 limit_req_zone
およびlimit_conn_zone
ディレクティブによって定義された各ゾーンの行が含まれます。 グラフを表示するには、行の左端にあるグラフ アイコンをクリックします。
拡張されたチャートは継続的に更新され、各時間間隔の値が積み上げ面グラフとして表示されます。 表示される情報は、次の方法でカスタマイズできます。
デフォルトのダッシュボード更新間隔は 1 秒で、各チャートには約 30 分間の履歴データが保存されます。 ダッシュボードの更新間隔を長くする(更新頻度を下げる)と、利用可能な履歴データの量が増えます。 ダッシュボードのグラフは永続的ではなく、タブから移動したりタブを再読み込みしたりすると履歴データが失われることに注意してください。
NGINX JavaScript モジュールは、 NGINX Plus の機能を拡張し、トラフィックのよりきめ細かな制御、アプリケーション間での JavaScript 機能の統合、セキュリティの脅威からの防御など、幅広いユースケースを可能にします。 NGINX JavaScriptモジュールが更新されました0.4.1以下の機能が含まれます:
js_import
ディレクティブ次のコードと構成は、エラーが発生するたびにクライアントから送信されたヘッダーの正確なセットをログに記録するために、新しいr.rawHeadersIn
オブジェクトを使用する方法を示しています。[編集者注: これは、NGINX JavaScript モジュールの多くの使用例の 1 つにすぎません。 完全なリストについては、 「NGINX JavaScript モジュールの使用例」を参照してください。
以下は、404
応答:
$ curl http://localhost/bogus $ tail --lines=1 /var/log/nginx/access_json.log {"response":{"timestamp":" YYYY - MM - DD T hh : mm : ss + TZ_offset ","status":404},"request":{"client":"127.0.0.1","uri":"/bogus","headers":[["Host","localhost:80"],["User-Agent","curl/7.64.1"],["Accept","*/*"]]}}
パスワードブルートフォース攻撃やクレデンシャルスタッフィングなどのタイミング攻撃を軽減するために、認証が失敗したときに NGINX Plus の応答を遅らせることができます。 新しいauth_delay
ディレクティブは、 Auth Basic 、 Auth JWT 、およびAuth Requestモジュールによって処理される認証リクエストに適用できる遅延を指定します。
NGINX Plus を実行している場合は、できるだけ早くNGINX Plus R22にアップグレードすることを強くお勧めします。 また、いくつかの追加の修正と改善も行われ、サポート チケットを発行する必要があるときに NGINX がサポートしやすくなります。
NGINX Plus をまだお試しいただいていない方は、セキュリティ、負荷分散、API ゲートウェイとして、または強化された監視および管理 API を備えた完全にサポートされた Web サーバーとして、ぜひお試しください。 30 日間の無料トライアルを今すぐ開始できます。 NGINX Plus がアプリケーションの配信と拡張にどのように役立つかを実際にご確認ください。
「このブログ投稿には、入手できなくなった製品やサポートされなくなった製品が参照されている場合があります。 利用可能な F5 NGINX 製品およびソリューションに関する最新情報については、 NGINX 製品ファミリーをご覧ください。 NGINX は現在 F5 の一部です。 以前の NGINX.com リンクはすべて、F5.com の同様の NGINX コンテンツにリダイレクトされます。"