Синтаксис защиты Ddos - Nginx

Я использую этот синтаксис для своего файла конфигурации Nginx /etc/nginx/nginx.conf , который гласит:

user www-data;
worker_processes 2;
pid /run/nginx.pid;
worker_rlimit_nofile 100000;

events {
worker_connections 2048;
multi_accept on;
}

http {

##
# Basic Settings
##

client_header_buffer_size 2k;
large_client_header_buffers 2 1k;

client_body_buffer_size 10M;
client_max_body_size 10M;

client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;

limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;
limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=50r/s;

server {
limit_conn conn_limit_per_ip 10;
limit_req zone=req_limit_per_ip burst=10 nodelay;
}

sendfile on;
tcp_nopush on;
tcp_nodelay on;
types_hash_max_size 2048;
server_tokens off;

# server_names_hash_bucket_size 64;
# server_name_in_redirect off;

include /etc/nginx/mime.types;
default_type application/octet-stream;

##
# Virtual Host Configs
##

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

}

Блоки серверов моих веб-сайтов включены в: include / etc / nginx / sites-enabled / *;

Сервер, определенный в http , как показано выше, заменяет блоки server {} в моих sites-enabled / * , чтобы защита от DDOS работала должным образом?

1
задан 8 December 2020 в 16:00
2 ответа

Я предполагаю, что вы имеете в виду ngx_http_limit_conn_module и ngx_http_limit_req_module .

Синтаксис: номер зоны limit_3256; [115 По умолчанию: -
Контекст: http, сервер, местоположение
Эти директивы наследуются от предыдущего уровня конфигурации тогда и только тогда, когда на текущем уровне не определены директивы limit_conn.

Таким образом, для limit_conn вам необходимо поместить его на один уровень выше в http , чтобы сделать его унаследованным в блоках сервера .

Синтаксис: limit_req zone = name [burst = number] [nodelay | задержка = число];
По умолчанию: -
Контекст: http, сервер, местоположение
Эти директивы наследуются от предыдущего уровня конфигурации тогда и только тогда, когда на текущем уровне не определены директивы limit_req.

То же самое для limit_req , поместите его на один уровень выше в http ], чтобы он унаследовал его в блоке server .

1
ответ дан 4 January 2021 в 08:45

На самом деле существует важное различие между DOS и DDOS атаками. Дополнительный D в DDOS означает распределенный.

Для простых DOS атак может использоваться ваша установка. Однако это действительно зависит от вашего приложения или веб-сайта, где может быть разница между допустимым или ожидаемым вариантом использования и недопустимым или не ожидаемым вариантом использования. Не существует универсального рецепта.

Для смягчения DDOS атак ваша установка не поможет . Такие атаки будут осуществляться с множества разных IP-адресов. Обычно DDOS-атаки должны подавляться на уровне сети и с очень высокой пропускной способностью.

0
ответ дан 4 January 2021 в 08:45

Теги

Похожие вопросы