SEnginx 보안 관련 모듈 설정
http {
#nginx
# 10MB SEnginx
statistics_zone 10m;
# IP
ip_blacklist on;
# IP
ip_blacklist_size 10240;
#IP ( )
ip_blacklist_timeout 120;
# SEnginx
ip_blacklist_mode local;
# 10MB , 10 ( 10 )
limit_req_zone $binary_remote_addr zone=mudoom:10m rate=10r/s;
# 10MB , 10 , 2
ip_behavior_zone zone=brand:10m sample_base=10 sample_cycle=2s;
# IP
geo $ip_wl {
#
ranges;
default 0;
127.0.0.1-127.0.0.1 1;
}
# UA ,
whitelist_ua $ua_wl {
#
caseless;
"Baiduspider" ".*\.baidu\.com";
"Baidu-YunGuanCe-SLABot" ".*\.baidu\.com";
"Googlebot" ".*\.google\.com";
"360Spider" ".*\.360\.cn";
"360JK" ".*\.360\.cn";
"Sosospider" ".*\.soso\.com";
"Sogou web spider" ".*\.sogou\.com";
"bingbot" ".*\.bing\.com";
}
server{
# server
# server , SEnginx
virtual_server_name www.mudoom.com;
# server ip brand url 。
ip_behavior zone=brand type=sensitive_url;
#
location @process { # IP User-Agent
robot_mitigation_global_whitelist ua_var_name=ua_wl ip_var_name=ip_wl ip_var_value=1;
# Robot Mitigation ( )
robot_mitigation on;
# (JS)
robot_mitigation_mode js;
#
robot_mitigation_blacklist 50;
# ( )
robot_mitigation_timeout 600;
# ajax
robot_mitigation_challenge_ajax off;
#php-fpm
fastcgi_pass 127.0.0.1:9000;
...
}
# ,
location /blacklist_show { allow 127.0.0.1;
deny all;
ip_blacklist_show;
}
# ,
location /blacklist_flush {
allow 127.0.0.1;
deny all;
ip_blacklist_flush;
} # SEnginx ,
location /stats {
allow 127.0.0.1;
deny all;
statistics;
} # location
location /RequestDenied {
return 403;
}
# location
location /mudoom {
#
ip_behavior_sensitive;
# 100 ,
limit_req zone=mudoom burst=100 forbid_action=@process condition=$cond;
# 30%
ifall ($insensitive_percent >= 0) ($insensitive_percent < 30) {
set $cond 1;
}
# IP User-Agent cookie
cookie_poisoning_whitelist ua_var_name=ua_wl ip_var_name=ip_wl ip_var_value=1;
#cookie
cookie_poisoning off;
# cookie block 、pass 、remove cookie
cookie_poisoning_action block;
# 5
cookie_poisoning_action blacklist,5; # , error log log
cookie_poisoning_log on;
# IP User-Agent Naxsi
naxsi_whitelist ua_var_name=ua_wl ip_var_name=ip_wl ip_var_value=1;
#
LearningMode;
#
#SecRulesEnabled;
#
#SecRulesDisabled;
#
DeniedUrl "/RequestDenied"; #
CheckRule "$XSS >= 4" BLOCK;
CheckRule "$TRAVERSAL >= 4" BLOCK;
CheckRule "$EVADE >= 8" BLOCK;
CheckRule "$UPLOAD >= 8" BLOCK;
CheckRule "$RFI >= 8" BLOCK;
CheckRule "$SQL >= 8" BLOCK;
#php-fpm
fastcgi_pass 127.0.0.1:9000;
...
}
}
}
SEnginx 접근 통계 반환 부분 변수 설명:
변량
설명 하 다.
traffic
방문 량 통계
cur_req
현재 요청 수
req
총 해당 요구 수
res_2xx
2xx 요청 수
res_3xx
3xx 요청 수
res_4xx
4xx 요청 수
res_5xx
5xx 요청 수
sent
송신 데이터 량
recvd
수용 데이터 량
attack
공격 통계
sql
SQL 주입
xss
XSS
rfi
원 격 파일 포함
dt
디 렉 터 리 관통
evade
Evading tricks
fu
파일 업로드
cp
쿠키 변경
wd
홈 페이지 변경
rm
로봇 도전
other
기타
메모: SEnginx 접근 통 계 는 메모리 에 저장 되 어 있 기 때문에 nginx 가 닫 힐 때마다 통계 가 삭 제 됩 니 다.
원본 주소:https://www.mudoom.com/Article/show/classify_id/1/id/32.html 보좌 하 다
전재 출처 를 밝 혀 주 십시오. 가끔 저의 작은 역 을 돌아 다 니 는 것 도 환영 합 니 다. 감사합니다.)