DDoS 공격: 분산 서비스 거부 공격은 다수의 브로일러 또는 가짜 IP를 사용하여 다수의 서버 요청을 시작하여 결국 서버를 마비시키는 공격입니다. CC 공격: DDoS 공격과 비슷하지만 주로 많은 수의 페이지 요청을 시작하므로 트래픽은 크지 않지만 페이지 접속 불가를 유발할 수 있다는 특징이 있습니다.
이 글에서는 주로 lua+Nginx에서 CC 공격을 빠르고 효과적으로 방어하는 방법을 소개합니다. Nginx 설치 방법에 대해서는 자세히 설명하지 않겠습니다. 예제를 살펴보시면 도움이 될 것입니다.
Nginx 구성을 사용하여 cc 공격을 간단하게 방어하세요
==================================== = ===============================
주로 nginx와 lua를 사용하여 방어 목적을 달성하기 위해 협력합니다.
1. Nginx 컴파일은 lua를 지원합니다
-----------------------------------
1. 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 공격에 대한 간단한 방어를 구현하도록 Nginx 구성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!