Блокировка соединений используя Nginx

Блокировка соединений используя Nginx

В этой теме «Блокировка соединений используя Nginx» я расскажу как блокировать посетителей с помощью Nginx, используя IP-адрес, referrer, сеть, страну. Это очень распространенная тема т.к нужно всегда блокировать трафик ( большая часть — боты).

Примеры использования блокировки соединений используя Nginx

1. Блокировка по IP в Nginx, для этого используйте этот синтаксис:

sh
1 lines
deny 18.19.45.67; # DOS attack, denied.

Всегда оставляйте комментарии потому что вы можете вспомнить, почему он был заблокирован позже.

2. Блокировка User Agent и заблокировать все эти ненужные сканеры:

sh
3 lines
if ($http_user_agent ~ "Purebot|Lipperhey|MaMa CaSpEr|libwww-perl|Mail.Ru|gold crawler" ) {
return 403;
}

3. Блокировка Referrer, вы можете также блокировать соединения, основываясь на информации о referrer-лах, который отправляется с веб-заголовков:

sh
3 lines
if ($http_referer ~* "bingo|casino|viagra") {
return 403;
}

4.Блокировка целой сети, если вы испытываете атаки с различных IP-адресов в пределах той же сети, то стоит заблокировать всю сеть. Вы можете сделать это, используя тот же синтаксис что и при блокировки IP-адрес, но вместо одного IP-адреса, необходимо добавить маску подсети. Пример:

sh
2 lines
deny 191.121.109.0/24;
deny 218.117.113.0/20;

5. Блокировка с использованием GeoIP и стран на nginx

С использованием GeoIP очень легко заблокировать всю страну, вы можете сделать это с помощью правил брандмауэра, или просто настройке веб-сервера Nginx, чтобы блокировать выбранную страну, которая иметься в базу данных GeoIP.

Во-первых, необходимо установить GeoIP и скачать базы данных, а затем прописать в вашей системе внутри блока HTTP {} следующий код:

sh
3 lines
if ($geoip_country_code ~ (CN|KR) ) {
return 403;
}

В этом примере я блокирую Китай и Корею. Во всяком случае, это все на сегодня, надеюсь, что это руководство поможет вам блокировать ваши нежелательных посетителей от удара сервер Nginx. Блокировка соединений используя Nginx завершена.

Was this helpful?

0 / 0