squid
June 13, 2024

Простая настройка 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