Платформы: Workstation KDE 10.1 Server 10.1 Education KDE 10.1 Workstation 10.1 Education 10.1 Версия пакета: squid-6.1-alt1.x86_64 Шаги воспроизведения: 1) Используем стандартный конфигурационный файл # cp /etc/squid/squid.conf /etc/squid/squid.conf.default 2) Получим информацию через менеджер (с локального хоста) # squidclient mgr:info Фактический результат: HTTP/1.1 403 Forbidden Server: squid/6.1 Mime-Version: 1.0 Date: Thu, 31 Aug 2023 13:30:49 GMT Content-Type: text/html;charset=utf-8 Content-Length: 3873 X-Squid-Error: ERR_ACCESS_DENIED 0 Vary: Accept-Language Content-Language: en ..... Ожидаемый результат: HTTP/1.1 200 OK Server: squid/4.15 Mime-Version: 1.0 Date: Thu, 31 Aug 2023 13:30:20 GMT Content-Type: text/plain;charset=utf-8 Expires: Thu, 31 Aug 2023 13:30:20 GMT Last-Modified: Thu, 31 Aug 2023 13:30:20 GMT ..... Как видно из примера, на версии пакета squid-4.15-alt1.x86_64 в p10 ошибка не воспроизводится. Стандартный конфигурационный файл позволяет получать доступ к менеджеру только с локального хоста.
> Шаги воспроизведения: > 1) Используем стандартный конфигурационный файл > # cp /etc/squid/squid.conf /etc/squid/squid.conf.default * # cp /etc/squid/squid.conf.default /etc/squid/squid.conf
Баг в апстриме уже есть https://github.com/squid-cache/squid/pull/1406
squid-6.3-alt1 -> sisyphus: Mon Sep 18 2023 Egor Ignatov <egori@altlinux> 6.3-alt1 - 6.3 - Fix squidclient couldn't access mgr:info (closes: #47423)
(Ответ для Vladislav Glinkin на комментарий #0) > Стандартный конфигурационный файл позволяет получать доступ к менеджеру > только с локального хоста. squid-6.3-alt1.x86_64 Исправлено только для локального подключения. Если сервер настроить так: # export MY_IP="$(hostname -i)" # apt-get install squid squid-helpers # cat > /etc/squid/squid.conf <<EOF auth_param negotiate program /usr/lib/squid/negotiate_kerberos_auth -r auth_param negotiate children 10 auth_param negotiate keep_alive on acl AUTHENTICATED proxy_auth REQUIRED acl Safe_ports port 631 # CUPS acl Safe_ports port 280 # HTTP-MGMT acl Safe_ports port 210 # WAIS acl Safe_ports port 591 # Filemaker acl SSL_ports port 443 # HTTPS (C) acl Safe_ports port 488 # GSS-HTTP acl Safe_ports port 21 # FTP acl Safe_ports port 70 # GOPHER acl Safe_ports port 777 # Multilingual HTTP acl Safe_ports port 80 # HTTP acl Safe_ports port 873 # RSYNC acl Safe_ports port 1025-65535 # Other ports acl SSL_ports port 563 # SNEWS (C) acl Safe_ports port 901 # SWAT http_access deny !Safe_ports !SSL_ports acl CONNECT method CONNECT http_access deny CONNECT !SSL_ports acl our_networks src 127.0.0.0/8 # LOCALHOST acl our_networks src $MY_IP/21 # Enter your ip-address http_access deny !our_networks http_access allow all http_access deny all http_port 3128 EOF # systemctl start squid И на клиенте выполнить: # squidclient --host SQUID_IP --port 3128 mgr:info То получим ошибку: HTTP/1.1 403 Forbidden Server: squid/6.3 Mime-Version: 1.0 Date: Tue, 10 Oct 2023 13:59:51 GMT Content-Type: text/html;charset=utf-8 Content-Length: 3925 X-Squid-Error: ERR_ACCESS_DENIED 0 Vary: Accept-Language Content-Language: en Cache-Status: server-10-1-x86-64-minimal-20231010.localdomain;detail=mismatch Via: 1.1 server-10-1-x86-64-minimal-20231010.localdomain (squid/6.3), 1.1 server-10-1-x86-64-minimal-20231010.localdomain (squid/6.3) Cache-Status: server-10-1-x86-64-minimal-20231010.localdomain;detail=no-cache Connection: close <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html><head> <meta type="copyright" content="Copyright (C) 1996-2023 The Squid Software Foundation and contributors"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>ERROR: The requested URL could not be retrieved</title> В логах на сервере: TCP_MISS/403 4341 GET http://server-10-1-x86-64-minimal-20231010.localdomain:3128/squid-internal-mgr/info - HIER_NONE/- text/html TCP_MISS/403 4480 GET http://11.77.11.77:3128/squid-internal-mgr/info - HIER_DIRECT/11.77.11.77 text/html По данным шагам ошибка не воспроизводится в p9 с версией squid-4.13-alt1 (в p10 уже 6.3 и тоже воспроизводится)
(In reply to Alexander Makeenkov from comment #4) > (Ответ для Vladislav Glinkin на комментарий #0) > > Стандартный конфигурационный файл позволяет получать доступ к менеджеру > > только с локального хоста. > > squid-6.3-alt1.x86_64 > > Исправлено только для локального подключения. Не совсем так. На данный момент запрещен доступ по конкретному ip-адресу, если сервер слушает по всем интерфейсам. При этом все работает, если обращаться по hostname. Апстрим еще не определился сохранять старое поведение или нет: https://github.com/squid-cache/squid/pull/1406#discussion_r1310360185
(Ответ для Egor Ignatov на комментарий #5) > При этом все работает, если обращаться по hostname. Подтверждаю, работает так: # squidclient --host squid-server --port 3128 mgr:info Только на сервере имя хоста тоже должно быть обязательно squid-server, иначе не работает. Спасибо.