nginx гео фильтрация

12
baas
На сайте с 17.09.2012
Offline
121
1563

Добрый вечер.

Подскажите как лучше фильтровать трафик у nginx.

Планирую разрешить трафик только России и Испании, остальной трафик не нужен.

Как такое лучше сделать?

Спасибо за понимание!

Настройка BSD систем. (https://www.fryaha.ru) Знание сила, незнание Рабочая сила!
LEOnidUKG
На сайте с 25.11.2006
Offline
1550
#1

Если у вас свой сервер или VDS, то почему это не сделать на уровне фаервола?

✅ Трастовых площадок под размещение статей и ссылок. Опыт 12 лет! ( https://searchengines.guru/ru/forum/675690 ) ⭐ Купить вечные трастовые ссылки для сайта ( https://getmanylinks.ru/?srh ) ⭐ Ускорение ваших сайтов (WP, Opencart и др.) + Настройка сервера ( https://searchengines.guru/ru/forum/997205 )
coolwebsearcher
На сайте с 29.09.2008
Offline
86
#2

в конфиг nginx


geoip_country /usr/share/GeoIP/GeoIP.dat;
map $geoip_country_code $allowed_country {
default 0;
RU 1;
ES 1;
}

и в конфиге виртуального хоста


if ($allowed_country = '0') {
return 403;
break;
}
Услуги (http://www.our-dns.info/) | Цены (http://www.our-dns.info/prices/) | Отзывы (/ru/forum/970789)
baas
На сайте с 17.09.2012
Offline
121
#3
LEOnidUKG:
Если у вас свой сервер или VDS, то почему это не сделать на уровне фаервола?

Фаервол ipfw, он по моему такого не может.

---------- Добавлено 30.08.2018 в 19:03 ----------

coolwebsearcher:
в конфиг nginx


geoip_country /usr/share/GeoIP/GeoIP.dat;
map $geoip_country_code $allowed_country {
default 0;
RU 1;
ES 1;
}


и в конфиге виртуального хоста


if ($allowed_country = '0') {
return 403;
break;
}

Ага, на подобие нашел.

Спасибо.

LEOnidUKG
На сайте с 25.11.2006
Offline
1550
#4
Фаервол ipfw, он по моему такого не может.

Всё он умеет. В гугле достаточно информации.

baas
На сайте с 17.09.2012
Offline
121
#5
LEOnidUKG:
Всё он умеет. В гугле достаточно информации.

Хмм, если только получить список ип адресов России и Испании, добавить в таблицу у ipfw, а остальной весь трафик закрыть.

Вот что пришло в голову.

LEOnidUKG
На сайте с 25.11.2006
Offline
1550
#6
baas:
Хмм, если только получить список ип адресов России и Испании, добавить в таблицу у ipfw, а остальной весь трафик закрыть.
Вот что пришло в голову.

Именно так и нужно делать. Иначе у вас сервер повешается каждый запрос по ляму всех запросов проверять.

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

baas
На сайте с 17.09.2012
Offline
121
#7
LEOnidUKG:
Именно так и нужно делать. Иначе у вас сервер повешается каждый запрос по ляму всех запросов проверять.
Вам нужен именно белый список. Но также не забывайте, что его надо периодически обновлять.

А тогда другой вопрос, где взять данные по подсетям России и Испании?

В файл http://www.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip

"217.182.247.0","217.182.247.63","3652646656","3652646719","ES","Spain"

"217.194.240.0","217.194.255.255","3653431296","3653435391","RU","Russian Federation"

В ручную рассчитывать какая подсеть не хочется.

---------- Добавлено 30.08.2018 в 20:13 ----------

Разобрался.

Преобразовать можно уже готовым решением geo2nginx.pl.

Преобразует в понятный для фаервол синтаксис

$ egrep 'Spain|Russia' GeoIPCountryWhois.csv | perl nginx/geo2nginx.pl | tail
217.197.112.0/20 RU;
217.197.192.0/20 RU;
217.197.224.0/19 RU;
217.198.0.0/20 RU;
217.198.80.0/20 RU;
217.198.160.0/19 RU;
217.198.192.0/20 ES;
217.199.208.0/20 RU;
217.199.240.0/20 RU;
217.216.0.0/15 ES;

Для незнающих, geo2nginx.pl этот скрипт находится в исходниках nginx, в корневой директории contrib

D
На сайте с 28.06.2008
Offline
975
#8

Поисковых ботов гугла шлете лесом?

Я все же за решение на уровне Nginx, оно по мне более гибкое, наглядное и управляемое.

baas
На сайте с 17.09.2012
Offline
121
#9
Dram:
Поисковых ботов гугла шлете лесом?
Я все же за решение на уровне Nginx, оно по мне более гибкое, наглядное и управляемое.

Помница вы разбирались с подобной темой. есть уже какие-то наработки?

KM.UA
На сайте с 17.07.2008
Offline
246
#10

Если российский провайдер купил у иностранцев сети, а geoip не знает об этом, то имеете определенные шансы забанить и часть РФ.

Бывали прецеденты, не рекомендую.

Хостинг (https://good-host.net) / Linux VPS (https://good-host.net/vps) / Windows VPS (https://good-host.net/windows-vps) / Выделенные серверы (https://good-host.net/dedicated) 12 лет онлайн!
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий