>  기사  >  백엔드 개발  >  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. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.