logo
Доступ к удалённым ресурсам организации из дома

Документация по настройки Squid

Прокси работает по следующей схеме:
Принцип работу прокси

Системные требования к Squid

Рекомендуется установка в отдельную виртуальную машину или контейнер, чтобы не делить конфиругацию с другими сервисами. При использовании Squid и ВебПосредника стоит разместить их в одной виртуальной машине или контейнере.

Аутентификация и авторизация пользователей

Аутентификация - проверка, что пользователь является тем, кем представляется (обычно проверка логина и пароля).

Авторизация - принятие решение о доступе пользователя к ресурсу. При этом пользователь может быть как аутентифицирован (по логину и паролю для доступа из интернета), так и нет (при доступе по IP-адресу из сети организации).

При общении с поддержкой вы сообщаете внешние IP-адреса вашей организации и в автогенерируемой конфигурации Squid с этих адресов и из приватных (локальных) сетей будет разрешен доступ ко всем ресурсам без ввода логина и пароля.

Но из интернета надо пользователей авторизовать, для чего проверить логин с паролем, а для этого надо иметь базу аккаунтов для пользователей.

Squid имеет множество способов аутентификации полозователей, но вам подойдет один из трех:

Хранение логинов и паролей в файле с digest-хешами

Создайте файл, в котором будут хрониться логины с хэшами паролей:

sudo touch /etc/squid/passwd_digest

Для создание/добавления пользователя userName в файл /etc/squid/passwd_digest используйте команду:

sudo htdigest /etc/squid/passwd_digest 'Library Proxy' userName

Недостаток команды, что придется пароль вводить в консоли и для автоматической генерации этот способ не подходит.

Вы можете сгенерировать сами нужный файл в виде строк: user:realm:MD5(user:realm:password)

Т.е. при вычислении digest его надо вычислять как MD5-хеш от user:realm:password, где realm может быть любым.

Проверка логинов и паролей в LDAP

Если у организации уже есть LDAP-сервер, то лучше логины с паролями хранить именно в нём, чтобы один логин/пароль подходил ко всем ресурсам организации.

Используйте примерно такую команду в /etc/sqiud/squid.conf для проверки логина/пароля в LDAP на основе ActiveDirectory:

auth_param basic program /usr/lib64/squid/basic_ldap_auth -P -R -b "dc=myorg,dc=ru" -D cn=proxy-user,cn=users,dc=myorg,dc=ru -w PROXY_PASSWORD -f "(&(userPrincipalName=%s@myorg.ru)(objectClass=Person))" dc.myorg.ru

В этом примере надо заменить myorg.ru на ваш домен, dc.myorg.ru - контроллер домена, cn=proxy-user - имя прокси-пользователя для подключения, а PROXY_PASSWORD - пароль прокси-пользователя.

Шифрование трафика до Squid

Чтобы трафик от пользователя до прокси-сервера нельзя было перехватить в незашифрованном виде, он шифруется с помощью TLS, но для этого Squid надо отдать сертификат.

Можно сертификат выпустить вручную, но удобней получать его автоматически через Let's Encrypt.

Для автоматического получения нужен веб-сервер и для этого удобно использовать Angie, который используется для ВебПосредника.

Таким образом вы устанавливаете Angie, при настройке ВебПосредника он будет сконфигурирован на получение сертификатов через встроенную в Angie поддержку ACME и когда сертификат будет получен - он будет подложен и Squid.

Такой способ позволяет разово настроить шифрование Squid и больше его не трогать, обеспечив обновление сертификатов через Angie по протоколу ACME.

Настройка Angie

Настройте Angie для ВебПосредника, этого будет достаточно для защиты сертификатом соединения до Squid.

Если вы решили ВебПосредник не устанавливать, то настройте Angie в качестве веб-сервера в любую пустую папку с именем сервера proxy.myorg.ru и включите ACME в этой конфигурации.

Настройка Squid

Перед настройкой Squid вам надо сообщить поддержке URL прокси, на котором это все будет работать, например proxy.myorg.ru. Этот адрес будет занесен на сайт koo.elibsystem.ru для автоматической генерации документации и распространении настроек в браузер и плагин.

Конфигурация для Squid генерируется автоматически, просто выберите вашу организацию и скопируйте конфигурацию.