【ミドルウェア補強】——2、Nginx安全補強規範
1.適用状況
Nginxを使用して導入するWebサイトに適しています.
2.スキル要件
Nginxの構成に精通しており、Nginxを導入し、サイトに対してNginxを使用してセキュリティを強化することができます.
3.前置条件
1、サイトオープンポート、プロセスIDによって、サイトがNginxで配置することを確認する;
2、Nginxインストールディレクトリを見つけて、具体的なサイトに対してプロファイルを修正する.
3、実行中に何か疑問や提案があれば、速やかにフィードバックしなければならない.
4.詳細な操作
4.1ログ構成
1.nginx.confプロファイルをバックアップする.
構成を変更し、以下のようにログ記録ファイル、記録内容、記録フォーマットを設定し、mainというラベルのlog_を追加します.formatフォーマット
2、serverラベル内で、ログパスを定義する
3、保存してからnginxサービスを再起動します.
4.2ディレクトリ閲覧禁止
nginx.confプロファイルをバックアップします.
プロファイルを編集し、HTTPモジュールに次の行を追加します.
保存してからnginxサービスを再起動します.
4.3ディレクトリ実行権限の制限
nginx.confプロファイルをバックアップします.
プロファイルを編集し、serverラベルに次の内容を追加します.
保存してからnginxサービスを再起動します.
次の点に注意してください.
1、以上のプロファイルコードはlocation~.php{...}の上に置く必要があります.下に置くと無効です.
2、attachmentsは相対パスを書く必要があり、絶対パスを書くことはできません.
4.4エラーページリダイレクト
nginx.confプロファイルをバックアップします.
構成を変更し、http{}セグメントに次の内容を追加します.
保存、nginxサービスの再起動が有効
4.5ベストプラクティス
4.5.1バージョン情報の非表示
nginx.confプロファイルをバックアップします.
プロファイルを編集し、httpモジュールの次の行を追加します.
保存してからnginxサービスを再起動します.
4.5.2 HTTPリクエストの制限方法
nginx.confプロファイルをバックアップします.
プロファイルを編集し、次の内容を追加します.
保存してからnginxサービスを再起動します.
備考:よく使うGETとPOSTの方法だけを許可して、せいぜい1つのHEADの方法をプラスします
4.5.3 IPアクセス制限
nginx.confプロファイルをバックアップします.
プロファイルを編集し、serverラベルに次の内容を追加します.
保存してからnginxサービスを再起動します.
4.5.4同時および速度の制限
nginx.confプロファイルをバックアップします.
プロファイルを編集し、serverラベルに次の内容を追加します.
保存してからnginxサービスを再起動します.
4.5.5制御タイムアウト時間
nginx.confプロファイルをバックアップします.
次のように設定されたプロファイルを編集します.
保存してからnginxサービスを再起動します.
4.6リスク操作項目
4.6.1 Nginx降格
nginx.confプロファイルをバックアップします.
プロファイルを編集し、次の行を追加します.
保存してからnginxサービスを再起動します.
4.6.2盗難防止チェーン
nginx.confプロファイルをバックアップします.
プロファイルを編集し、serverラベルに次の内容を追加します.
保存してからnginxサービスを再起動します.
4.6.3パッチ更新
1、ソフトウェア情報
2、パッチのインストール
パッチの手動インストールまたは最新バージョンのソフトウェアのインストール
変換元:https://blog.csdn.net/qq_23936389/article/details/85013923
Nginxを使用して導入するWebサイトに適しています.
2.スキル要件
Nginxの構成に精通しており、Nginxを導入し、サイトに対してNginxを使用してセキュリティを強化することができます.
3.前置条件
1、サイトオープンポート、プロセスIDによって、サイトがNginxで配置することを確認する;
2、Nginxインストールディレクトリを見つけて、具体的なサイトに対してプロファイルを修正する.
3、実行中に何か疑問や提案があれば、速やかにフィードバックしなければならない.
4.詳細な操作
4.1ログ構成
1.nginx.confプロファイルをバックアップする.
構成を変更し、以下のようにログ記録ファイル、記録内容、記録フォーマットを設定し、mainというラベルのlog_を追加します.formatフォーマット
(http , server ):
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
2、serverラベル内で、ログパスを定義する
access_log logs/host.access.log main
3、保存してからnginxサービスを再起動します.
4.2ディレクトリ閲覧禁止
nginx.confプロファイルをバックアップします.
プロファイルを編集し、HTTPモジュールに次の行を追加します.
autoindex off;
保存してからnginxサービスを再起動します.
4.3ディレクトリ実行権限の制限
nginx.confプロファイルをバックアップします.
プロファイルを編集し、serverラベルに次の内容を追加します.
# : PHP
location ~ /attachments/.*\.(php|php5)?$ {
deny all;
}
# : PHP
location ~
/(attachments|upload)/.*\.(php|php5)?$ {
deny all;
}
保存してからnginxサービスを再起動します.
次の点に注意してください.
1、以上のプロファイルコードはlocation~.php{...}の上に置く必要があります.下に置くと無効です.
2、attachmentsは相対パスを書く必要があり、絶対パスを書くことはできません.
4.4エラーページリダイレクト
nginx.confプロファイルをバックアップします.
構成を変更し、http{}セグメントに次の内容を追加します.
http {
...
fastcgi_intercept_errors on;
error_page 401 /401.html;
error_page 402 /402.html;
error_page 403 /403.html;
error_page 404 /404.html;
error_page 405 /405.html;
error_page 500 /500.html;
...
}
:
ErrorDocument 400 /custom400.html
ErrorDocument 401 /custom401.html
ErrorDocument 403 /custom403.html
ErrorDocument 404 /custom404.html
ErrorDocument 405 /custom405.html
ErrorDocument 500 /custom500.html
401.html、402.html、403.html、404.html、405.html、500.html 。
保存、nginxサービスの再起動が有効
4.5ベストプラクティス
4.5.1バージョン情報の非表示
nginx.confプロファイルをバックアップします.
プロファイルを編集し、httpモジュールの次の行を追加します.
server_tokens off;
保存してからnginxサービスを再起動します.
4.5.2 HTTPリクエストの制限方法
nginx.confプロファイルをバックアップします.
プロファイルを編集し、次の内容を追加します.
if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 444;
}
保存してからnginxサービスを再起動します.
備考:よく使うGETとPOSTの方法だけを許可して、せいぜい1つのHEADの方法をプラスします
4.5.3 IPアクセス制限
nginx.confプロファイルをバックアップします.
プロファイルを編集し、serverラベルに次の内容を追加します.
location / {
deny 192.168.1.1; # IP
allow 192.168.1.0/24; # IP
allow 10.1.1.0/16; # IP
deny all; # IP
}
保存してからnginxサービスを再起動します.
4.5.4同時および速度の制限
nginx.confプロファイルをバックアップします.
プロファイルを編集し、serverラベルに次の内容を追加します.
limit_zone one $binary_remote_addr 10m;
server
{
listen 80;
server_name down.test.com;
index index.html index.htm index.php;
root /usr/local/www;
#Zone limit;
location / {
limit_conn one 1;
limit_rate 20k;
}
………
}
保存してからnginxサービスを再起動します.
4.5.5制御タイムアウト時間
nginx.confプロファイルをバックアップします.
次のように設定されたプロファイルを編集します.
client_body_timeout 10; #
client_header_timeout 10; #
keepalive_timeout 5 5; # , ,
send_timeout10; #
保存してからnginxサービスを再起動します.
4.6リスク操作項目
4.6.1 Nginx降格
nginx.confプロファイルをバックアップします.
プロファイルを編集し、次の行を追加します.
user nobody;
保存してからnginxサービスを再起動します.
4.6.2盗難防止チェーン
nginx.confプロファイルをバックアップします.
プロファイルを編集し、serverラベルに次の内容を追加します.
location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip)$ {
valid_referers none blocked server_names *.nsfocus.com http://localhost baidu.com;
if ($invalid_referer) {
rewrite ^/ [img]http://www.XXX.com/images/default/logo.gif[/img];
# return 403;
}
}
保存してからnginxサービスを再起動します.
4.6.3パッチ更新
1、ソフトウェア情報
nginx -v
nginx –t
2、パッチのインストール
パッチの手動インストールまたは最新バージョンのソフトウェアのインストール
変換元:https://blog.csdn.net/qq_23936389/article/details/85013923