Назад | Перейти на главную страницу

Squid возвращает 400 в GET / HTTP / 1.1 и заголовок хоста

Мне нужно продемонстрировать и протестировать настройку Squid, которая по умолчанию должна вносить в черный список и разрешать запросы только к URL-адресам из белых списков из известных сетей. В настоящее время он работает в моей тестовой среде и работает должным образом, но я хочу протестировать и продемонстрировать его по запросу, с более приятной обратной связью, чем с curl.

Я развернул Redbot (https://github.com/mnot/redbot), который я настроил для отправки всех HTTP-запросов через прокси-сервер Squid.

С помощью curl -x с машины Redbot все мои тесты проходят, но при использовании приложения Squid возвращает 400, что бы ни случилось. Все запросы отправляются в Squid, и я вижу каждый запрос, но вместо того, чтобы возвращать 403 и X-Squid-Error: ERR_ACCESS_DENIED 0, или разрешив запрос, каждый запрос получает 400, а X-Squid-Error: ERR_INVALID_URL 0.

Копаясь в нем - журналы и tcpdump - я вижу ключевое различие в том, что Redbot отправляет запрос в форме:

GET / HTTP/1.1
Host: chess.com

Curl отправляет:

GET http://chess.com/ HTTP/1.1
Host: chess.com

Из RFC кажется, что запрос Redbot полностью действителен, и поэтому я чувствую, что Squid должен поступить правильно и вывести из заголовка хоста, что хочет Redbot, и пройти через его ACL. Однако это просто ошибки с:

HTTP/1.1 400 Bad Request
Server: squid/3.5.27
Mime-Version: 1.0
Date: Mon, 23 Apr 2018 11:50:23 GMT
Content-Type: text/html;charset=utf-8
Content-Length: 3465
X-Squid-Error: ERR_INVALID_URL 0
X-Cache: MISS from proxy.redaction.com
Via: 1.1 proxy.redaction.com (squid/3.5.27)

Это похоже на проблему с конфигурацией Squid? Или мне нужно, чтобы Redbot делал запрос, как Curl?

Обновить:

Добавление intercept к http_port директива привела к тому, что заголовок Host попал в URL-адрес, но теперь Squid выдает 403, даже если ACL должен это разрешать:

z1524498993.558      0 10.8.0.33 TCP_MISS/403 3985 GET
http://www.openstreetmap.com/ - HIER_NONE/- text/html
1524498993.559      0 10.8.2.19 TCP_MISS/403 4077 GET
http://www.openstreetmap.com/ - ORIGINAL_DST/10.8.0.33 text/html


acl cluster src 10.8.0.0/16
acl streetmap dstdomain .openstreetmap.com
http_access allow cluster streetmap
http_access deny all