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

12
baas
На сайте с 17.09.2012
Offline
171
1716

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

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

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

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

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

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

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

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
coolwebsearcher
На сайте с 29.09.2008
Offline
87
#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
171
#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
1774
#4
Фаервол ipfw, он по моему такого не может.

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

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

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

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

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

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

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

baas
На сайте с 17.09.2012
Offline
171
#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
1114
#8

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

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

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

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

KU
На сайте с 17.07.2008
Offline
251
#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 ) 14 лет онлайн!
12

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