LINUX.ORG.RU

Nginx блокировка стран не работает, почему?

 


1

1

Всем привет, использую связку Nginx + PHP-FPM и все это под cloudflare, я использую подобную конфигурацию [code=bash] if ($allowed_country = no) { return 444; } if ($allow = no) { return 403; }

load_module «modules/ngx_http_geoip_module.so»;

GeoIP start

geoip_country /usr/share/GeoIP/GeoIP.dat;
map $geoip_country_code $allowed_country {
		include /etc/nginx/block_country;
}
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
limit_req_zone $binary_remote_addr zone=ip:10m rate=5r/s;
map $http_cf_ipcountry $allow {
default yes;
		include /etc/nginx/block_country;	
}

[/code]

Но когда смотрю netstat, я вижу айпи из заблокированных стран, почему так?


Полагаю тебе netstat показывает как ip из заблокированной страны получает от nginx заглушку с кодом 403.

Поищи списки socks5 прокси и потесть:

curl yoursite.com --socks5-host <proxy:port>
anonymous
()
Ответ на: комментарий от anonymous

хз

У меня проблема в том, что netsat отображает ip из под cloudflare пуллов, а количество запросов там допустим 2048 запросов отображает так. 2048 127.0.0.1, типа они крутятся на PHP-fpm

DEBIL
() автор топика

nginx netstat

А почему ты думаешь, что у тебя в netstat ip не должны появляться? Они же проходят уровень netfilter и доходят до nginx и уже там блокируются.

turtle_bazon ★★★★★
()
Ответ на: комментарий от te111011010

f

Вроде как не пускает, но в логах есть вот такие IP-адреса. 101.128.67.211 (индонезия), но ИНДОНЕЗИЯ у меня в блоке,«GET / HTTP/1.1» 301

DEBIL
() автор топика
Ответ на: f от DEBIL
> GET yoursite.com
< 301 это редирект, HTTP->HTTPS, 
> GET https://yoursite.com
< 403 Forbidden

Хотя теоретически должно был бы быть так:

> GET yoursite.com
< 403 Forbidden

Вроде как не пускает, но в логах есть вот такие IP-адреса.

Ты логи nginx’а смотришь? Там должно быть что-то вроде такого:

yoursite.com:80 234.234.234.234 - - [19/Dec/2019:16:07:37 +0300] "GET / HTTP/1.1" 403 555 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36" "-"

anonymous
()
Ответ на: комментарий от anonymous

da

[code]85.132.71.82 - - [19/Dec/2019:15:43:46 +0200] «GET / HTTP/1.1» 503 1253 "site.ru «Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36» [/code]

вот забаненный айпишник как я понимаю.

DEBIL
() автор топика
Ответ на: da от DEBIL

Код не тот, 50х это все ошибки сервера. Нужно 4хх - 401, 403, 451, в твоем случае самый подходящий 403.

anonymous
()
Ответ на: комментарий от anonymous

103.138.226.1 - - [19/Dec/2019:16:13:59 +0200] «GET / HTTP/1.1» 403 177 «-» «Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36»

то есть вот это заблокированный ип, а 503 возникал из-за того что ресурс не прогружается, верно?

https://www.abuseipdb.com/check/103.138.226.1 - вот это вообще бангладеш

DEBIL
() автор топика
Ответ на: комментарий от DEBIL

то есть вот это заблокированный ип, а 503 возникал из-за того что ресурс не прогружается, верно?

Нет, это вомзожно nginx послал код 503 (ошибка на сервере), я думаю ты что-то не так сконфигурировал. Но если у тебя сервер приложений за nginx, то он тоже может вернуть 503 и тогда nginx просто передаст 503 как есть клиенту от сервера приложений.

У nginx есть системные логи? Он там может написать подробности что не так в конфигах.

anonymous
()
Ответ на: комментарий от anonymous

неа, ошибок нет. Только предупреждения связанные с директивой ssl

DEBIL
() автор топика

ЕМНИП там был старый GeoIP… Или вообще не было GeoIP… Наши вебщики 100% пересобирали nginx чтобы по странам работало по-человечески.

pkuutn
()
Ответ на: комментарий от pkuutn

у меня есть GeoIP, я его через load_module подключил

DEBIL
() автор топика

Что-то припоминаю, что некоторые айпишки определяются неправильно (как из другой страны) в geoip. Нужно использовать дополненные списки адресов.

serveria
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.