auth_param

    TAG: auth_param

    Этот тэг используется для определения параметров для различных схем аутентификации поддерживаемых Squid.

    format: auth_param scheme parameter [setting]

    Порядок в котором схемы аутентификации представляются клиенту, зависит от порядка расположения схем в конфигурационном файле. Первая по порядку схема, будет представлена первой. IE имеет баг, связанную с тем, что он использует basic схему авторизации, несмотря на то, что в списке есть более безопасные схемы. Рекомендуется использовать тот порядок схем, который установлен по умолчанию. Если другие браузеры имеют сложности(не «понимают» предлагаемые схемы), тогда установите basic схему аутентификации первой в списке, либо закомментируйте другие строки со схемами.

    Как только схема аутентификации полностью сконфигурирована, она вступит в силу только после перезагрузки Squid. Изменения могут быть сделаны «на лету», но активированы при перезагрузке.

    Запомните, установка параметров определяющих как Squid будет проводить аутентификацию, не ведет к автоматическому использванию их. Для того, чтобы использовать аутентификацию, вы должны добавить ACL основанный на логине(имя пользователя). ACL должен быть вида proxy_auth, proxy_auth_regex или external с использованием переменной %LOGIN. При запросе доступа через браузер, будет запрошена аутентификация пользователя. При правильных логине и пароле, пользователю откроется доступ, иначе нет.

    Важно: аутентификация не может использовать при прозрачном(transparent) проксировании, потому что клиент «думает», что работает с Интернет напрямую, а не через прокси. Это ограничение накладывает TCP/IP протокол, а не Squid.

    === Опции для basic схемы аутентификации ===

    "program" cmdline

    Определите программу используемую для внешней аутентификации. Эта программа должна считывать строку содержающую "username password" и отвечать "OK" или "ERR" в случае корректной или ошибочной аутентификации соответсвтенно.

    По умолчанию, basic схема не используется, если не указана программа аутентификации.

    Если вы хотите использовать традиционную прокси аутентификацию перейдите в helpers/basic_auth/NCSA каталог и введите:

    % make
    % make install

    Затем, введите в конфигурационный файл что-то вроде этого:

    auth_param basic program /usr/local/libexec/ncsa_auth /usr/local/etc/passwd


    "children" numberofchildren

    Число процессов программы аутентификации, которые могут быть запущены одновременно. Если их будет слишком мало, то каждый новый клиент желающий получить доступ, будет ожидать пока не появится свободный процесс для аутентификации пользователя. Это замедляет работу Squid. Если у вас медленная сеть, возможно вы захотите увеличить число этих процессов.

    auth_param basic children 5

    "concurrency" numberofconcurrentrequests

    Число одновременно возможных для использования запросов/каналов для аутентификации.

    "realm" realmstring

    Определяет строку, которая будет отправлена пользователю в окне авторизации. Как правило, эта строка представляет собой название прокси сервера, например, Corporate proxy server.

    auth_param basic realm Squid proxy-caching web server

    "credentialsttl" timetolive

    Определяет как долго Squid будет кэшировать пару username:password пользователей. По истечению этого времени, Squid вновь запросит аутентификацию пользователя. Установите это значение маленьким, чтобы проверка пользователя проходила чаще. Заметим, использование большого значения этой опции не влияет на восприимчивость сервера к атакам если вы используете систему одноразовых паролей(Например, SecureID). Но также, если вы используете такую систему, то это не означает вашу полную защищенность от атак. Вам также рекомендуется использовать ACL вида max_user_ip в правиле http_access.

    auth_param basic credentialsttl 2 hours

    "casesensitive" on|off

    Определяет, являются ли имена пользователей(username) чуствительными к регистру. Большинство баз данных регистронезависимы, и им нет разницы, прописные или строчные буквы используются, но некоторые, всё же, регистрозависимы. Это имеет большое значение для ACL вида max_user_ip.

    auth_param basic casesensitive off

    "blankpassword" on|off

    Определяет, поддерживаются ли пустые пароли. По умолчанию, это запрещено(off), так как аутентификация с пустым паролем предусмотрена только для гостевого("guest") входа.

    === Опции для digest схемы аутентификации ===

    "program" cmdline

    Определите программу используемую для внешней аутентификации. Такая программа считывает строку содержащую "username":"realm" и отвечает соответствующим H(A1) значением в шестнадцатеричной системе(hex код), если данные верны или "ERR" если пользователь (или его H(A1) хэш) не существует. См. в RFC 2616 как определяется H(A1).

    По умолчанию, digest схема не используется, если не указана программа аутентификации.

    Если вы хотите использовать digest аутентификацию перейдите в helpers/digest_auth/ каталог и выберите программу, которую хотите использовать. В каталоге выбранной программы введите:

    % make
    % make install

    Затем, введите в конфигурационный файл что-то вроде этого:

    auth_param digest program /usr/local/libexec/digest_auth_pw /usr/local/etc/digpass

    "children" numberofchildren

    Число процессов программы аутентификации, которые могут быть запущены одновременно. Если их будет слишком мало, то каждый новый клиент желающий получить доступ, будет ожидать пока не появится свободный процесс для аутентификации пользователя. Это замедляет работу Squid. Если у вас медленная сеть, возможно вы захотите увеличить число этих процессов.

    auth_param digest children 5

    "concurrency" numberofconcurrentrequests

    Число одновременно возможных для использования запросов/каналов для аутентификации.

    "realm" realmstring

    Определяет строку, которая будет отправлена пользователю в окне авторизации. Как правило, эта строка представляет собой название прокси сервера, например, Corporate proxy server.

    auth_param digest realm Squid proxy-caching web server

    "nonce_garbage_interval" timeinterval

    Определяет временной интервал, в течение которого будет ожидание ввода логина и пароля от клиента.

    auth_param digest nonce_garbage_interval 5 minutes

    "nonce_max_duration" timeinterval

    Определяет максимальное время, в течение которого будет действительна аутентификация клиента.

    auth_param digest nonce_max_duration 30 minutes

    "nonce_max_count" number

    Определяет максимальное количество попыток аутентификации.

    auth_param digest nonce_max_count 50

    "nonce_strictness" on|off

    Определяет как будет регистрироваться корректная аутентификация клиента. Если "on", то счетчик Squid будет увеличиваться на 1(единица). Если "off", то будет использоваться число, которое отправит в ответ пользовательский агент(это может быть 1,2,4,6).

    auth_param digest nonce_strictness off

    "check_nonce_count" on|off

    Определяет, ведется ли подсчет количества попыток аутентификаций клиентом. По умолчанию выставлено значение "on" для защиты от атак связанных с подбором аутентификационных данных.

    auth_param digest check_nonce_count on

    "post_workaround" on|off

    Эта опция, как обходной путь для некоторых браузеров, которые некорректно работают с digest аутентификацией, посылая неправильные POST запросы.

    auth_param digest post_workaround off


    === Опции для NTLM схемы аутентификации ===

    "program" cmdline

    Определите программу используемую для внешней NTLM аутентификации. Такая программа, которая может обрабатывать передачу данных между клиентом и Squid сервером по протоколу NTLMSSP. Смотри helpers/ntlm_auth/ для подробной информации. Рекомендуемая программа NTLM аутентификации идет вместе с Samba-3.X, но существуют и другие средства NTLM аутентифиации.

    По умолчанию, NTLM схема не используется, если не указана программа аутентификации. Для использования NTLM аутентификации, вставьте в squid.conf, что-то вроде этого:

    auth_param ntlm program /path/to/samba/bin/ntlm_auth --helper -protocol=squid-2.5-ntlmssp


    "children" numberofchildren

    Число процессов программы аутентификации, которые могут быть запущены одновременно. Если их будет слишком мало, то каждый новый клиент желающий получить доступ, будет ожидать пока не появится свободный процесс для аутентификации пользователя. Это замедляет работу Squid. Если у вас медленная сеть, возможно вы захотите увеличить число этих процессов.

    auth_param ntlm children 5


    "keep_alive" on|off

    Эта опция включает использование постоянного соединения при инициализации запроса аутентификации. Есть сведения, что некоторые версии MS IE имеют проблемы с этим, но лучше будет если эта опция включена.

    auth_param ntlm keep_alive on


    === Опции для Negotiate схемы аутентификации ===

    "program" cmdline

    Определите программу используемую для внешней Negotiate аутентификации. Такая программа, которая может обрабатывать передачу данных между клиентом и Squid сервером по протоколу SPNEGO. Смотри helpers/ntlm_auth/ для подробной информации. Рекомендуемая программа Negotiate аутентификации идет вместе с Samba-4.X, это SPNEGO.

    По умолчанию, NTLM схема не используется, если не указана программа аутентификации.

    Для использования NTLM аутентификации, вставьте в squid.conf, что-то вроде этого:

    auth_param negotiate program /path/to/samba/bin/ntlm_auth --helper-protocol=gss-spnego


    "children" numberofchildren

    Число процессов программы аутентификации, которые могут быть запущены одновременно. Если их будет слишком мало, то каждый новый клиент желающий получить доступ, будет ожидать пока не появится свободный процесс для аутентификации пользователя. Это замедляет работу Squid. Если у вас медленная сеть, возможно вы захотите увеличить число этих процессов.

    auth_param negotiate children 5


    "keep_alive" on|off

    Если у вас возникают проблемы с запросами PUT/POST, когда вы используете Negotiate схему аутентификации, вы можете попробовать выключить эту опцию. Но это может привести, к тому, что Squid будет закрывать соединения, если браузер спрашивает, какие схемы аутентификации поддерживает прокси.

    auth_param negotiate keep_alive on


    Рекомендуемые параметры настройки для каждой из схем аутентификации:

    # auth_param negotiate program <раскомментируйте и введите путь к программе для активации>
    # auth_param negotiate children 5
    # auth_param negotiate keep_alive on

    # auth_param ntlm program <раскомментируйте и введите путь к программе для активации>
    # auth_param ntlm children 5
    # auth_param ntlm keep_alive on

    # auth_param digest program <раскомментируйте и введите путь к программе для активации>
    # auth_param digest children 5
    # auth_param digest realm Squid proxy-caching web server
    # auth_param digest nonce_garbage_interval 5 minutes
    # auth_param digest nonce_max_duration 30 minutes
    # auth_param digest nonce_max_count 50

    # auth_param basic program <раскомментируйте и введите путь к программе для активации>
    # auth_param basic children 5
    # auth_param basic realm Squid proxy-caching web server
    # auth_param basic credentialsttl 2 hours
    # auth_param basic casesensitive off