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

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

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

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

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

deny 18.19.45.67; # DOS attack, denied.

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

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

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

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

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

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

deny 191.121.109.0/24; 
deny 218.117.113.0/20;

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.