Welcome! Log In Create A New Profile

Advanced

Проблема блокирования и распознования метода CONNECT, ошибка «client sent invalid request "CONNECT {address}:25"»

October 19, 2009 06:52PM
Здравствуйте.


Не так давно на сервер (Linux Debian) был установлен Nginx (версии 0.8.20), на время конфигурации он был настроен слушать порт 8080.

Через некоторое время в логах был замечен HTTP-метод CONNECT, на удаленный адрес и 25 порт.

После чего в конфиг была добавлена проверка на правильные методы запросов:
[code]
## Only allow GET, HEAD and POST request methods
if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 444;
}
[/code]


Но проверка не сработала, и в логи были произведены записи:

access.log
[code]
94.100.178.70 - - "CONNECT 194.67.23.20:25 HTTP/1.0" 500 186 "-" "-" "-"
[/code]

error.log
[code]
[info] 29637#0: *5 client sent invalid request while reading client request line, client: 94.100.178.70, request: "CONNECT 194.67.23.20:25 HTTP/1.0"

[notice] 29637#0: *5 "^(GET|HEAD|POST)$" matches "GET", client: 94.100.178.70, request: "CONNECT 194.67.23.20:25 HTTP/1.0"
(строка повторяется еще 9 раз)

[error] 29637#0: *5 rewrite or internal redirection cycle while internal redirect to "/error/40x.html", client: 94.100.178.70, request: "CONNECT 194.67.23.20:25 HTTP/1.0"
[/code]


Выдержка из конфига:

[code]
server {
listen: 8080;

## Logs
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log debug;

## Errors
# client errors
error_page 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 /error/40x.html;
# server errors
error_page 500 501 502 503 504 505 506 507 /error/50x.html;

location /error {
internal;
}

## Only allow GET, HEAD and POST request methods
if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 444;
}

## Index names
index index.php index.html index.htm;

## Main site
location / {
try_files $uri $uri/ =404;
}
}
[/code]


Вопросы:

1) Есть ли возможность отсеять HTTP-метод CONNECT на уровне Nginx?

2) Почему при проверке переменной $request_method CONNECT совпал с GET?

3) Возможно ли такое, что значение переменной $request_method было GET, а не CONNECT?

4) Каким образом вы бы отсеяли нездоровый метод?
Subject Author Posted

Проблема блокирования и распознования метода CONNECT, ошибка «client sent invalid request "CONNECT {address}:25"»

Mrau Hu October 19, 2009 06:52PM

Re: Проблема блокирования и распознования метода CONNECT, ошибка «client sent invalid request "CONNECT {address}:25"»

Igor Sysoev October 20, 2009 08:06AM

Re: Проблема блокирования и распознования метода CONNECT, ошибка «client sent invalid request "CONNECT {address}:25"»

Mrau Hu October 21, 2009 06:30AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 194
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready