71
7
ティ ント
7.0 はじ
キュリティはイヤ キュ キュリテ
ルに複数のレイーが要でではNGINXおよび NGINX Plus使用し
Webアプリケーシンを護するためのさざまなについて明しますこれら
リティ対使すると、キュリティきま
、ア NGINXおよびNGINX Plus ュリ
につて説いるンですではNGINX ュリ
能の1であModSecurity 3.0 NGINXジュールれてこと
くかもし NGINXWeb
ョンウォール
WAF
す。WA F いてはModSecurity 3.0 および NGINXをダ
ン ロ ー だ さ :ク ッ ク ガ イ
7.1 IPレス くア
問題
ライアントの基づクセスする必ます
解決
HTTPストリーアクスモュー使 用して、 のリスへアク
ントす。
location /admin/ {
deny 10.0.0.1;
allow 10.0.0.0/20;
allow 2001:0db8::/32;
deny all;
}
72
ョン10.0.0.1除く10.0.0.0/20意のIPv4アドレス
アクスを20 01:0 d b 8::/32 ット IPv6アドレス
発 信 して403す。allowおよびdenyィレ
ィブHTTPサーバー、ロケーシテキト、また、TCP/UDPスト
よびサーテキト内で有ですスにるものが見つか
まで、ールがにチェックさます
解説
インターネッなリソースとサビスののレイヤー
ります。NGINX 、そ 1なる機を提供しますdeny
ディティのコンキスのアクセスをブロックする一方で、allowィレ
クティブブロックアクセスのセッするた使きますIPアド
レスIPv4またIPv6、ク ラ ス ス ド メ イ CIDR)ブ 、キ
ードall、お Unix ッ ト 使 、リ IP
アド すべのア あります。
7.2 クロオリジンリソー有の
問題
ース提 供して ース
ようにするクロスオリジンリソーCORSを許可する必要があ
解決
CORSを有するrequestッド てヘッ す。
map $request_method $cors_method {
OPTIONS 11;
GET 1;
POST 1;
default 0;
}
server {
# ...
location / {
if ($cors_method ~ '1') {
add_header 'Access-Control-Allow-Methods'
'GET,POST,OPTIONS';
add_header 'Access-Control-Allow-Origin'
'*.example.com';
add_header 'Access-Control-Allow-Headers'
'DNT,
Keep-Alive,
User-Agent,
X-Requested-With,
| 7キュリティコントロール
73
If-Modified-Since,
Cache-Control,
Content-Type';
}
if ($cors_method = '11') {
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
}
}
例ではた行わていすがmap 使 用してGETッドPOSTソッ
ドをグループ化するとで要されていますOPTIONSリクエメソッこの
バーCORS してpreflight ストント す。CORSに基
き、OPTIONSGETPOSTッド Access-Control-Allow-Origin
ダーすると、このーバーるコンテンツを、このダーに一
するオリジペーも使 きるようになりますリフラトリクエトはクラ
ント1,728,000 、つ 20ュです。
解説
JavaScriptース して ース
ものであCORSを作成エスがクロスジンと見なれる場合、
ブラウCORSールあり使するッダー
ース 使 用 ース で 使
きるようするCORSッダーするありますadd_headerディ
クティで実きますコンテンツタイプのGETHEADPOSTスト
スト ヘッ スト
ェックしす。のリストソッ使 する
リフラトリクエて、のリソーうサーバ
認しダー 定しと、のリソースを用しよう
場合ウザが発生
7.2 ース |
74
7.3ント
問題
NGINXサーバライアント間ックを暗する必ます
解決
ngx_http_ssl_module ngx_stream_ssl_module などのSSLルを使
号 化す:
http { # All directives used below are also valid in stream
server {
listen 8443 ssl;
ssl_certificate /etc/nginx/ssl/example.crt;
ssl_certificate_key /etc/nginx/ssl/example.key;
}
}
このSSL/TLS8443 でリするようにーバー
す 。デ ィ レ ssl_certificate書と、ライアントに供される
ーン ssl_certificate_key 、リ
号化暗号化NGINX 使 す。
くの SSL/TLSゴシエーション用されています
解説
全なスポ中の情報を化す最も一的な方法での記
時点ではSSLトコTLSロトコ す。SSL
ジョン1から3 す。 ロト
りまTLS依然安全確立NGINX
使すると、ービスでユーーとクラきます。り、
ライアンジネスが護されますCA署名証明書を使用する場合は、証明
ェー するありますとチェーする
チェーンファル上なりチェー
して 複 数 して 階 層
ります。 バイダーキュントください
項目
Mozilla ー側 TLSペー
Mozilla SSL成ジレータ
SSL テストSSLラボのSSLストで
| 7キュリティコントロール
75
7.4側の暗号化(応用
問題
なクライアンバーあります
解決
NGINXhttpおよびstreamSSLモ ジ に よ り 、受 け 入 れ ら SSL/TLSンドシ
完全に証明キーは、ルパたは数値を介
NGINX す。NGINX成ごとに、入れられたコル号、
リストント す。ントとNGINXーバ
ネゴシエーますNGINXライアンサーSSL/TLSネゴシ
エーョンシュきま
、ク ン ト /サーバーネゴシエーショ雑さをする目
くの してす。
http { # All directives used below are also valid in stream
server {
listen 8443 ssl;
# Set accepted protocol and cipher
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
# RSA certificate chain loaded from file
ssl_certificate /etc/nginx/ssl/example.crt;
# RSA encryption key loaded from file
ssl_certificate_key /etc/nginx/ssl/example.pem;
# Elliptic curve cert from variable value
ssl_certificate $ecdsa_cert;
# Elliptic curve key as file path variable
ssl_certificate_key data:$ecdsa_key_path;
# Client-Server negotiation caching
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
}
}
ーバSSL トコ TLSv1.2およびTLSv1.3受け入れま入れ
られる暗HIGH す。 す。 !
マーaNULLおよびMD5 す。
2ット 使 用 NGINXィレ ィブ
は、NGINXするさまざま示しまファイ
して 解 釈 data: 直 接 して
釈されますクライアントに下性を提するめにの証書キ
7.4 ライ側の暗号化(応用) |
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.145.88.130