Пример конфигурации
Содержание |
На этой страницы приведен пример конфигурации для демонстрации некоторых функций SEnginx.
Тестовый сайт
Файл конфигурации
В этом файле конфигурации мы включаем защиту от изменения cookie, защиту от ботов и брандмауэр веб-приложений naxsi.
user nobody;
worker_processes 1;
error_log logs/error.log notice;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
include /usr/local/senginx/naxsi/naxsi_config/naxsi_core.rules;
geoip_country /usr/local/senginx/GeoIP.dat;
geoip_city /usr/local/senginx/GeoLiteCity.dat;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'
' - [$geoip_city, $geoip_city_country_name]';
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
gzip on;
session_max_size 1024;
upstream backend {
server 127.0.0.1:8080;
}
server {
listen 80;
server_name some_site.org;
access_log logs/access.www.log main;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
session_timeout 600;
session on;
location /RequestDenied {
return 403;
}
location /favicon.ico {
proxy_pass http://backend;
}
location /download {
proxy_pass http://backend;
}
location /img {
proxy_pass http://backend;
}
location /cn {
error_log logs/error.cn.log;
robot_mitigation on;
robot_mitigation_mode js;
robot_mitigation_action block;
robot_mitigation_whitelist {
"Baidu" "Baiduspider";
"Google" "Googlebot";
}
cookie_poisoning on;
cookie_poisoning_action block;
#LearningMode;
SecRulesEnabled;
#SecRulesDisabled;
DeniedUrl "/RequestDenied";
include wl.conf;
## check rules
CheckRule "$XSS >= 4" BLOCK;
CheckRule "$TRAVERSAL >= 4" BLOCK;
CheckRule "$EVADE >= 8" BLOCK;
CheckRule "$UPLOAD >= 8" BLOCK;
CheckRule "$RFI >= 8" BLOCK;
CheckRule "$SQL >= 8" BLOCK;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://backend;
}
location /en {
error_log logs/error.en.log;
robot_mitigation on;
robot_mitigation_mode js;
robot_mitigation_action block;
robot_mitigation_whitelist {
"Google" "Googlebot";
}
cookie_poisoning on;
cookie_poisoning_action block;
#LearningMode;
SecRulesEnabled;
#SecRulesDisabled;
DeniedUrl "/RequestDenied";
include wl-en.conf;
## check rules
CheckRule "$XSS >= 4" BLOCK;
CheckRule "$TRAVERSAL >= 4" BLOCK;
CheckRule "$EVADE >= 8" BLOCK;
CheckRule "$UPLOAD >= 8" BLOCK;
CheckRule "$RFI >= 8" BLOCK;
CheckRule "$SQL >= 8" BLOCK;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://backend;
}
location / {
if ($geoip_country_code = CN) {
rewrite ^/$ /cn redirect;
}
if ($geoip_country_code != CN) {
rewrite ^/$ /en redirect;
}
}
}
}
Объяснение
Этот файл конфигурации применим для SEnginx версии 1.5.3, собранным с модулями Сookie Poisoning и GeoIP. Некоторые директивы могут не работать в других версиях SEnginx.
Базовая конфигурация тестового сайта: apache слушает на порту 8080 в localhost, а SEnginx проксирует все поступающие запросы в apache с применением следующих функций:
- Диспетчеризация запросов на основе геолокации IP-адреса источника.
- HTTP Robot Mitigation
- Cookie Poisoning
- Брандмауэр веб-приложений naxsi