Squid3: разрешать доступ к некоторым сайтам только для определенного пользователя

Вопрос или проблема

У меня есть прокси squid3 на моем сервере Ubuntu.

Я хочу разрешить доступ группе сайтов только для группы пользователей.
Сейчас мой простой код выглядит так:

acl WHITELIST url_regex "/var/proxy/whitelist/test.whitelist"
http_access allow WHITELIST
http_access deny all

Для тестирования в списке только “google.it”, и прокси работает.

На сервере есть другой пользователь с именем “test_user” и паролем “password”.

Моя первая проблема: как я могу настроить конфигурацию squid на сервере так, чтобы разрешить только белый список только для пользователя/группы?

Вторая проблема: на клиенте (с Lubuntu), что я должен настроить? Я пытаюсь настроить /etc/environment следующим образом:

export http_proxy=http://test_user:password@myserverip:2888/
export https_proxy=http://test_user:password@myserverip:2888/
export ftp_proxy=http://test_user:password@myserverip:2888/
no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
export HTTP_PROXY=http://test_user:password@myserverip:2888/
export HTTPS_PROXY=http://test_user:password@myserverip:2888/
export FTP_PROXY=http://test_user:password@myserverip:2888/
NO_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com"

РЕДАКТИРОВАТЬ:
в моих настройках прокси я установил пользователя и это работает, но на клиенте Lubuntu firefox всегда запрашивает у меня пароль..

/etc/environment выглядит так:

export HTTP_PROXY=http://simone:[email protected]:2888/
  1. подготовьте файл, содержащий список пользователей
  2. подготовьте файл, содержащий список сайтов
  3. свяжите их в squid.conf следующим образом

    acl userlist src "/home/acl/userlist"  
    acl whitelist urlpath_regex "/home/acl/whitelist"    
    http_access allow userlist sitelist
    

готово.

для вашей второй проблемы,

номер порта для squid3 – 3128.
поэтому измените номер порта.
и вы можете настроить параметры прокси в файле /etc/apt/apt.conf
следующим образом:

https_proxy=http://test_user:password@myserverip:3128

примечание: если файл apt.conf недоступен, создайте его.

Вот и всё!

Ответ или решение

Настройка Squid3 для ограничения доступа к определенным сайтам только для группы пользователей является важной задачей для обеспечения безопасности и контроля доступа в корпоративной сети. В данном ответе будет подробно рассмотрено, как можно реализовать такие настройки, начиная от конфигурации сервера Squid3 и заканчивая настройками клиента на основе Lubuntu.

Теория (Theory)

Squid — это популярный прокси-сервер, используемый для кэширования и фильтрации веб-контента. Он позволяет создавать сложные правила доступа, чтобы контролировать, кто и когда может посещать те или иные веб-сайты. Основные концепции, которые будут использоваться в настройке Squid3 для решения вашей задачи, включают контроль доступа (ACL) и аутентификацию пользователей.

ACL (Access Control List) — это списки контроля доступа, позволяющие задавать правила пропуска или блокировки запросов на основании разных критериев (например, IP-адрес, имя пользователя, URL). Аутентификация — процесс проверки подлинности пользователя по его учетным данным (логин и пароль).

Пример (Example)

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

  1. Файл пользователей: Создайте файл /home/acl/userlist, в котором будут указаны разрешенные пользователи. Пример:

    test_user
  2. Файл сайтов: В файле /home/acl/whitelist укажите разрешенные URL. Пример:

    \.google\.it
  3. Конфигурация Squid: Включите в конфигурационный файл squid.conf следующие строки:

    auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/squid_passwd
    auth_param basic realm proxy
    acl authenticated_user proxy_auth REQUIRED
    acl userlist src "/home/acl/userlist"
    acl whitelist url_regex "/home/acl/whitelist"
    http_access allow authenticated_user userlist whitelist
    http_access deny all
    • auth_param: Настройка базовой аутентификации через NCSA.
    • proxy_auth REQUIRED: Определяет, что аутентификация обязательна.

Применение на практике (Application)

  1. Создание файла паролей для пользователей: Используйте utility htpasswd для добавления пользователей с паролями. Например:

    htpasswd -c /etc/squid3/squid_passwd test_user

    Введите пароль для пользователя test_user при запросе.

  2. Перезапуск сервиса Squid: После обновления конфигурационных файлов выполните перезапуск Squid для применения изменений:

    sudo service squid3 restart
  3. Настройка клиента (Lubuntu):

    Клиент должен быть настроен на использование прокси-сервера через файл /etc/environment или через настройки системы для работы через прокси. Так как вы упомянули, что ваша конфигурация указывает неверный порт, убедитесь, что указано корректное значение 3128 вместо 2888.

    export http_proxy=http://test_user:password@myserverip:3128/
    export https_proxy=http://test_user:password@myserverip:3128/
    export ftp_proxy=http://test_user:password@myserverip:3128/
    no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"

Если после всех изменений Firefox продолжает запрашивать пароль на Lubuntu, убедитесь, что ваша конфигурация аутентификации в файле Squid и в системе клиента настроена корректно.

Следуя вышеописанным шагам, вы сможете настроить Squid3 для ограничения доступа к определенным сайтам лишь для некоторых пользователей, обеспечив дополнительный уровень контроля и безопасности в сети. Комбинация аутентификации пользователей и использования ACL позволяет эффективно управлять доступом и предоставлять необходимые полномочия только тем лицам, которым это требуется.

Оцените материал
Добавить комментарий

Капча загружается...