Документация по настройки Squid
Прокси работает по следующей схеме:
Системные требования к Squid
Рекомендуется установка в отдельную виртуальную машину или контейнер, чтобы не делить конфиругацию с другими сервисами. При использовании Squid и ВебПосредника стоит разместить их в одной виртуальной машине или контейнере.
- OC: Linux (возможно применение отечественной RedOS8, бесплатного Oracle Linux и т.д.);
- ОЗУ: от 8 ГБ;
- Процессор: 6 ядер от 2 ГГц;
- Сеть: от 20 Мбит/c;
- Веб-сервер: Angie;
- Прокси-сервер: Squid любой актуальной версии;
- Шифрование: ACME в Angie для получения бесплатных сертификатов через Let's Encrypt.
Аутентификация и авторизация пользователей
Аутентификация - проверка, что пользователь является тем, кем представляется (обычно проверка логина и пароля).
Авторизация - принятие решение о доступе пользователя к ресурсу. При этом пользователь может быть как аутентифицирован (по логину и паролю для доступа из интернета), так и нет (при доступе по IP-адресу из сети организации).
При общении с поддержкой вы сообщаете внешние IP-адреса вашей организации и в автогенерируемой конфигурации Squid с этих адресов и из приватных (локальных) сетей будет разрешен доступ ко всем ресурсам без ввода логина и пароля.
Но из интернета надо пользователей авторизовать, для чего проверить логин с паролем, а для этого надо иметь базу аккаунтов для пользователей.
Squid имеет множество способов аутентификации полозователей, но вам подойдет один из трех:
- Пользователи хранятся в LDAP организации;
- Пользовательские логины и пароли хранятся в сгенерированном файле, где пароли в виде хешей;
- В этом же самом файле всего один пользователь с паролем - общий на всех и вы его сообщаете по закрытым каналам (не надо через публичный доступ в интернете);
- Проверить логин пароль в цифровой библиотеке ELiS;
- Проверить логин с паролем в АБИС Ирбис;
- Написать собственный способ проверки логина и пароля.
Хранение логинов и паролей в файле с 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 генерируется автоматически, просто выберите вашу организацию и скопируйте конфигурацию.
