Фев 282012
 

На одном из проектов возникла ситуация DDOS атаки. Атаки шли с ip`ов ( америкосов, конадцев и китайцев ). Решил полностью пока на время заблочить весь трафик с этих стран.
На этом проекте я использую вэб сервер nginx так вот решил через модуль geoIP выделить эти странны и забанить.
Для начало обновим базы geoIP.
далее в Nginx, /usr/local/etc/nginx/nginx.conf в секцию http добавим код

geoip_country /usr/local/share/GeoIP/GeoIP.dat;
map $geoip_country_code $bad_country {
	default 1;
	include geo/good_countries;
}

Мы подключили файл GeoIP.dat и определили переменные $bad_country / good_countries в нех укажим страны которым разрешен/запрещен доступ.
Далее, в интересующий нас location, например / добавим условие блокировки пользователя:

vorker / {
       listen IP:8080;
       server_name http://my_site:8080/ /;
       if ($bad_country){
              return 403;
       }
}

IP — IP сайта.
Заполним файл geo/good_countries.
Если мы используем $geoip_country_code, то коды стран должны быть в виде двух буквенных аббревиатур.
Пример

RU - Россия
US - Америкосы
UA - Хохлы

Файле good_countries список стран должен быть соответствующим образом оформлен:

US 0;
CA 0;
CN 0;

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

/usr/local/etc/rc.d/nginx reload

 Leave a Reply

(required)

(required)

37 Запросов к базе. 0,377 Генерации страницы, 36MB Использование памяти.
Вы зашли с IP: 54.225.16.10