Re: nginx reverse proxy и nginx backend не пропускает ip

2017-08-10 Пенетрантность igroykt
Evgeniy Berdnikov Wrote:
---
> On Wed, Aug 09, 2017 at 08:54:24AM -0400, igroykt wrote:
> > Отдает 403. В логе:
> > 1.1.1.1 - - [09/Aug/2017:21:50:07 +0900] "GET /pwned/ HTTP/1.0" 403
> 564 "-"
> > "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
> (KHTML, like
> > Gecko) Chrome/59.0.3071.115 Safari/537.36" "1.2.3.4"
> > 1.1.1.1 - - [09/Aug/2017:21:50:08 +0900] "GET /favicon.ico HTTP/1.0"
> 200
> > 1150 "https://office.mytona.com/pwned/"; "Mozilla/5.0 (Windows NT
> 10.0;
> > Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
> Chrome/59.0.3071.115
> > Safari/537.36" "1.2.3.4"
> > где 1.1.1.1 это адрес frontend а 1.2.3.4 адрес backend.
> > логформат на backend:
> > log_format  main  '$remote_addr - $remote_user [$time_local]
> "$request" '
> >   '$status $body_bytes_sent "$http_referer" '
> >   '"$http_user_agent"' 'http_x_forwarded_for =
> > $http_x_forwarded_for, real_ip_remote_addr = $realip_remote_addr';
> > Судя по логу x-forwarded-for проходит в remote_addr сохраняется
> адрес
> > reverse proxy.
> 
>  Не вижу в логе знаков равенства (=), которые присутствуют в
> log_format.
>  Вероятно, применяется другая директива log_format.
> -- 
>  Eugene Berdnikov
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru

хэхэ, а ты был прав :)
вся беда из-за лог формат. ошибку при проверке не выдавало но и конфиг не
считывали видимо.
вернул лог формат к исходному виду и все директивы заработали как надо в том
числе и set_real_ip_from.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,275983,276022#msg-276022

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: nginx reverse proxy и nginx backend не пропускает ip

2017-08-09 Пенетрантность igroykt
ну без разницы.
вроде в этом треде такая же проблема.
https://stackoverflow.com/questions/39176931/nginx-allowdeny-realip-remote-addr/39183303#39183303
решили с помощью модуля луа. не хотелось бы раздувать nginx.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,275983,275985#msg-275985

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

nginx reverse proxy и nginx backend не пропускает ip

2017-08-09 Пенетрантность igroykt
Всем привет.
nginx frontend:
server{
...
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $server_name;
proxy_redirect off;
proxy_connect_timeout 2s;
proxy_pass https://office;
}
}
nginx version: nginx/1.13.3
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --with-http_ssl_module --with-http_stub_status_module
--with-http_flv_module --with-http_mp4_module --with-http_realip_module

===

nginx backend:
server {
..
location / {
.
location ^~ /restricted {
allow 1.2.3.4;
deny all;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_read_timeout 300;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
include fastcgi_params;
}
}
}
nginx version: nginx/1.13.3
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --with-http_stub_status_module --with-http_ssl_module
--with-file-aio --with-threads --with-http_mp4_module --with-http_flv_module
--with-http_realip_module



Отдает 403. В логе:
1.1.1.1 - - [09/Aug/2017:21:50:07 +0900] "GET /pwned/ HTTP/1.0" 403 564 "-"
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/59.0.3071.115 Safari/537.36" "1.2.3.4"
1.1.1.1 - - [09/Aug/2017:21:50:08 +0900] "GET /favicon.ico HTTP/1.0" 200
1150 "https://office.mytona.com/pwned/"; "Mozilla/5.0 (Windows NT 10.0;
Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115
Safari/537.36" "1.2.3.4"
где 1.1.1.1 это адрес frontend а 1.2.3.4 адрес backend.
логформат на backend:
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
  '$status $body_bytes_sent "$http_referer" '
  '"$http_user_agent"' 'http_x_forwarded_for =
$http_x_forwarded_for, real_ip_remote_addr = $realip_remote_addr';
Судя по логу x-forwarded-for проходит в remote_addr сохраняется адрес
reverse proxy.
Как жить?

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,275983,275983#msg-275983

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: oauth+property list=403 forbidden

2016-09-01 Пенетрантность igroykt
Вот заголовки png:
Request URL:https://host.example.com/somedir/some.png
Request Method:GET
Status Code:200  (from cache)
Remote Address:x.x.x.x
Response Headers
accept-ranges:bytes
allow:GET, POST, HEAD
content-length:65811
content-type:image/png
date:Thu, 01 Sep 2016 10:51:31 GMT
etag:"575506e6-10113"
last-modified:Mon, 06 Jun 2016 05:15:18 GMT
server:nginx
status:200

а вот заголовки проблемных файлов:
Request
URL:itms-services://?action=download-manifest&url=https://host.example.com/somedir/some.plist
Request Headers
Provisional headers are shown
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/52.0.2743.116 Safari/537.36
Query String Parameters
view source
view URL encoded
action:download-manifest
url:https://host.example.com/somedir/some.plist

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,269332,269339#msg-269339

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

oauth+property list=403 forbidden

2016-08-31 Пенетрантность igroykt
Всем привет.
Есть backend на nginx который раздает plist+ipa.
Есть frontend который передает запросы на oauth2_proxy который проксирует на
backend.
Проблема в том, что если с frontend запросить plist, то отдается http код
403.
127.0.0.1 - - [01/Sep/2016:11:02:33 +0900] 127.0.0.1:4181 GET -
"/somdir/some.plist" HTTP/1.0 "itunesstored/1.0 iOS/8.4 model/iPad3,3
build/12H143 (5; dt:78)" 403 2255 0.000
Когда как все остальные файлы отдаются нормально.
Конфиг:
server {
listen 443 ssl http2;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers
'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA256:ECDHE-ECDSA-AES256-SHA256:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA256:DHE-RSA-AES256-SHA256:AES256-GCM-SHA384:AES256-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_certificate /etc/ssl/some.crt;
ssl_certificate_key /etc/ssl/some.key;
server_name host.example.com;
server_tokens off;
add_header Strict-Transport-Security max-age=2592000;
add_header Allow "GET, POST, HEAD" always;
access_log /usr/local/nginx/logs/some_access.log main;
error_log /usr/local/nginx/logs/some_error.log;
location / {
proxy_pass http://127.0.0.1:4181;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
expires off;
}
}
как быть? куда копать?

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,269332,269332#msg-269332

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Как вытащить нужные данные из user-agent?

2016-01-25 Пенетрантность igroykt
igroykt Wrote:
---
> Ясно. Ну деваться уже некуда. Вроде решил вложенными if-ами.
> В итоге получилась следующая бяка:
> Если в строке есть android но нет намека на kindlefire...
> if ($http_user_agent ~* "(android)") {
> set $android A;
> }
> if ($http_user_agent !~*
> "(kftt|kfot|kfjwa|kfjwi|kfsowi|kfthwa|kfthwi|kfapwa|kfapwi|kfaswi|kftb
> wi|kfmewi|kffowi|kfsawa|kfsawi|kfarwi)") {
> set $android "${android}B";
> }
> if ($android = AB) {
> set $android_rewrite perform;
> }
> 
> Ну и наоборот
> if ($http_user_agent ~* "(android)") {
> set $amazon A;
> }
> if ($http_user_agent ~*
> "(kftt|kfot|kfjwa|kfjwi|kfsowi|kfthwa|kfthwi|kfapwa|kfapwi|kfaswi|kftb
> wi|kfmewi|kffowi|kfsawa|kfsawi|kfarwi)") {
> set $amazon "${amazon}B";
> }
> if ($amazon = AB) {
> set $amazon_rewrite perform;
> }
> Вообще наверное лучше искомые слова для kindlefire вынести в
> переменную чтобы в нескольких местах не подправлять если выйдут новые
> девайсы.

Как бы теперь запихнуть эти kftt и т.д. в одну переменную? чтобы получилось
if ($http_user_agent ~* $kindle)
Мап не сработал:
map $host $kindlefire {
default
kftt|kfot|kfjwa|kfjwi|kfsowi|kfthwa|kfthwi|kfapwa|kfapwi|kfaswi|kftbwi|kfmewi|kffowi|kfsawa|kfsawi|kfarwi;
}
и сет тоже не проканал:
set $kindlefire
kftt|kfot|kfjwa|kfjwi|kfsowi|kfthwa|kfthwi|kfapwa|kfapwi|kfaswi|kftbwi|kfmewi|kffowi|kfsawa|kfsawi|kfarwi;
if ($http_user_agent ~* "($kindlefire)") {
   set $amazon "${amazon}B";
}

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,264075,264099#msg-264099

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Как вытащить нужные данные из user-agent?

2016-01-25 Пенетрантность igroykt
Ясно. Ну деваться уже некуда. Вроде решил вложенными if-ами.
В итоге получилась следующая бяка:
Если в строке есть android но нет намека на kindlefire...
if ($http_user_agent ~* "(android)") {
set $android A;
}
if ($http_user_agent !~*
"(kftt|kfot|kfjwa|kfjwi|kfsowi|kfthwa|kfthwi|kfapwa|kfapwi|kfaswi|kftbwi|kfmewi|kffowi|kfsawa|kfsawi|kfarwi)")
{
set $android "${android}B";
}
if ($android = AB) {
set $android_rewrite perform;
}

Ну и наоборот
if ($http_user_agent ~* "(android)") {
set $amazon A;
}
if ($http_user_agent ~*
"(kftt|kfot|kfjwa|kfjwi|kfsowi|kfthwa|kfthwi|kfapwa|kfapwi|kfaswi|kftbwi|kfmewi|kffowi|kfsawa|kfsawi|kfarwi)")
{
set $amazon "${amazon}B";
}
if ($amazon = AB) {
set $amazon_rewrite perform;
}
Вообще наверное лучше искомые слова для kindlefire вынести в переменную
чтобы в нескольких местах не подправлять если выйдут новые девайсы.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,264075,264098#msg-264098

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Как вытащить нужные данные из user-agent?

2016-01-24 Пенетрантность igroykt
Всем привет!
Есть такая строка HTTP/1.0" 301 178 "-" "Mozilla/5.0 (Linux; Android 4.0.3;
KFTT Build/IML74K) AppleWebKit/537.36 (KHTML, like Gecko) Silk/47.2.3 like
Chrome/47.0.2526.83 Safari/537.36"
Надо вытащить либо KFTT либо Build/ либо Silk.
Задача определить устройства kindlefire и редиректить на один ресурс а
остальные android устройства на другой.
Всякие разные регулярки перебрал но пока без результатно.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,264075,264075#msg-264075

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru