ホームページ  >  記事  >  バックエンド開発  >  CC 攻撃に対する簡単な防御を実装するための Nginx の構成

CC 攻撃に対する簡単な防御を実装するための Nginx の構成

小云云
小云云オリジナル
2018-02-22 10:40:453703ブラウズ

DDoS 攻撃: 分散型サービス拒否攻撃は、多数のブロイラーまたは偽の IP を使用して大量のサーバー リクエストを開始し、最終的にサーバーを麻痺させる攻撃です。 CC攻撃:DDoS攻撃に似ていますが、主に大量のページリクエストを開始するのが特徴で、トラフィック量は多くありませんが、ページにアクセスできなくなる可能性があります。

この記事では主に、lua+Nginx で CC 攻撃を迅速かつ効果的に防御する方法を紹介します。 Nginx のインストール方法については説明しませんので、サンプルをご覧ください。

Nginx 設定を使用して CC 攻撃を簡単に防御します
===================================== = ===============================

主にnginxとluaを連携させて防御の目的を達成します。

1. Nginx コンパイルは lua をサポートします
--------------------------------

1. lua をダウンロードします。 nginx-module


wget https://github.com/openresty/lua-nginx-module/archive/master.zip
unzip master.zip

2. コンパイル


#./configure \
--user=nginx \
--group=nginx \
--prefix=/usr/local/gacp/nginx \
--error-log-path=/data/logs/nginx/error/error.log \
--http-log-path=/data/logs/nginx/access/access.log \
--pid-path=/usr/local/gacp/nginx/conf/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-pcre \
--with-http_realip_module \
--with-http_gzip_static_module \
--with-google_perftools_module \
--with-file-aio \
--add-module=../ngx_cache_purge-2.3 \
--add-module=../lua-nginx-module-master

# make && make install

2. 設定


http {
.....
limit_req_zone $cookie_token zone=session_limit:3m rate=1r/s;
limit_req_zone $binary_remote_addr $uri zone=auth_limit:3m rate=1r/m;


}

server {
listen 80;
server_name localhost;
access_log /data/logs/nginx/access/localhost.access.log main;
error_log /data/logs/nginx/error/localhost.error.log;
charset utf-8;
client_max_body_size 75M;
root /data/www;

location / {

limit_req zone=session_limit burst=5;

rewrite_by_lua '
local random = ngx.var.cookie_random
if(random == nil) then
return ngx.redirect("/auth?url=" .. ngx.var.request_uri)
end

local token = ngx.md5("opencdn" .. ngx.var.remote_addr .. random)
if(ngx.var.cookie_token ~= token) then
return ngx.redirect("/auth?url=" .. ngx.var.request_uri)
end
';
}

location /auth {
limit_req zone=auth_limit burst=1;

if ($arg_url = "") {
return 403;
}

access_by_lua '
local random = math.random(9999)
local token = ngx.md5("opencdn" .. ngx.var.remote_addr .. random)
if(ngx.var.cookie_token ~= token) then
ngx.header["Set-Cookie"] = {"token=" .. token, "random=" .. random}
return ngx.redirect(ngx.var.arg_url)
end
';

}
}

とても簡単ですね。


関連する推奨事項:

CC 攻撃対策 PHP CC 攻撃対策実装コード

以上がCC 攻撃に対する簡単な防御を実装するための Nginx の構成の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。