Простая настройка Squid с авторизацией
1. Установка Squid
1.1 Используемая документация
1.2 Установка Squid
apt install squid
1.3 Настройка Squid
Создадим файл с пользователем и его паролем для будущего прокси:
echo "user:$(openssl passwd -salt GqxMofo+ -apr1 password)" >>/etc/squid/passwd
user:password
Соль добавляемая к паролю параметром -salt должна быть не более 8 символов. Параметр не обязательный. Сгенерить можно командой:
openssl rand -base64 6
Алгоритм хеширования пароля может быть -apr1, -5 (SHA256), -6 (SHA512).
Если не указывать пароль, запрос на ввод пароля будет интерактивный, это более безопасно так как не сохраняется в истории команд консоли.
Если в файле несколько раз встречается пользователь с одинаковым именем, актуальна всегда самая последняя запись. Если вы по ошибке задублировали пользователя, просто удалите последнюю строку и пользователь сможет как раньше заходить со своим прежним паролем.
Настройка параметров Basic авторизации:
cat >/etc/squid/conf.d/auth.conf <<HEREDOC auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd auth_param basic realm Proxy Auth Required acl auth proxy_auth REQUIRED http_access allow auth HEREDOC
Настройка логирования в более удобной форме чем по умолчанию предлагает Squid. Но это вкусовщина на усмотрение админа, каждый настраивает под себя https://www.squid-cache.org/Doc/config/logformat/
cat >/etc/squid/conf.d/log.conf <<HEREDOC logformat squid_tl %{%d/%b/%Y %H:%M:%S %z}tl %6tr %>a %Ss/%03>Hs %<st %rm %ru %un %Sh/%<a %mt access_log daemon:/var/log/squid/access.log squid_tl HEREDOC
cat >/etc/squid/conf.d/squid.conf <<HEREDOC cache_mgr admin@example.com httpd_suppress_version_string on visible_hostname squid.example.com HEREDOC
Если не планируем светить наш прокси на весь интернет и скрыть его за плагинами cloak/v2ray-plugin/xray-plugin или чем-то подобным
sed -i 's/http_port 3128/http_port 127.0.0.1:3128/' /etc/squid/squid.conf
Проверяем что нет ошибок в конфиге и говорим перечитать конфиг. Это быстрей чем перезапуск службы через systemctl restart squid
squid -k check && squid -k reconfigure
Проверяем работу нашего прокси
curl --proxy http://squid.example.com:3128 --proxy-user user:password https://checkip.groupit.team