TAG:
auth_param :: opções utilizadas para definir os vários parâmetros suportados pelo Squid3 para diferentes esquemas de autenticações.
Formato:
auth_param scheme parameter [setting]
A ordem em que são apresentados os esquemas de autenticação para o cliente é dependente da ordem em que o esquema aparece pela primeira vez no arquivo de configuração.
Isto é, tem um bug (não é compatível com a RFC 2617) em que ele vai usar o esquema básico que se constitui da primeira entrada apresentada, mesmo se esquemas mais seguros forem utilizados.
Utilize a ordem nas configurações recomendadas abaixo.
Se outros navegadores têm dificuldades (não reconhecem os esquemas oferecidos, mesmo se você estiver usando o esquema básico) ou se você colocar primeiro o básico, ou desativar os outros esquemas (comentando sua linha de entrada).
Uma vez que um esquema de autenticação esteja totalmente configurado, ele só pode ser desligado fechando o Squid3 e/ou reiniciando. As alterações podem ser feitas com o Squid3 funcionando e ativadas com "reconfigure", isto é, você pode mudar para um suporte diferente, mas não desconfigurar o suporte completamente.
Por favor, note que esta diretiva define como o Squid processa a autenticação, porém, não ativa automaticamente a autenticação.
Para usar a autenticação, você deve, além disso, utilizar ACLs baseadas no login em http_access (proxy_auth, proxy_auth_regex or external with %LOGIN used in the format tag). O navegador tentará autenticar de acordo com a primeira ACL encontrada em http_access e também será desafiado para novo login com credenciais se a requisição estiver sendo negada por uma ACL do tipo proxy_auth.
* Atenção: a autenticação não pode ser usada em um proxy transparente interceptador, no qual o cliente pensa que está falando com o servidor de origem. Esta é uma limitação do protocolo TCP/IP para proxy transparente interceptando na porta 80. Não é uma limitação do Squid. As opções "transparent", "intercept" ou "tproxy", desabilitam a autenticação.
Parâmetros para o esquema básico
"program" cmdline :: especifica o comando para o autenticador externo. O programa lê uma linha contendo "username password" e responde "OK" ou "ERR" em um loop infinito.
Respostas do tipo "ERR" podem, opcionalmente, ser seguidas por uma descrição de erro disponível como %m na página de erro retornado. Se você usar autenticação, tenha certeza de ter pelo menos uma ACL do tipo proxy_auth.
Por padrão, o esquema de autenticação básico não é usado, a menos que um programa seja especificado.
Se você quiser usar a tradicional autenticação NCSA de proxy, defina esta linha para algo como:
auth_param basic program /etc/squid3/libexec/ncsa_auth /etc/squid3/etc/passwd
"utf8" on|off :: HTTP usa iso-latin-1 como conjunto de caracteres, enquanto alguns back-ends de autenticação, como LDAP usam UTF-8.
Se for definido como "on", o Squid3 traduzirá o HTTP charset iso-latin-1 para UTF-8 antes de enviar o nome de usuário e senha para o suporte.
"children" numberofchildren [startup=N] [idle=N] [concurrency=N] :: número máximo de processos para autenticar.
Se você iniciar com um valor baixo, o Squid3 vai ter que esperar por eles para processar um backlog de verificação de credenciais, e isto vai diminuir a velocidade. Quando as verificações de senha são feitas através de uma rede (lenta) é provável que você precise de muitos processos autenticadores.
As opções "startup=" e "idle=", permitem uma distorção na quantidade exata de execução. O mínimo startup=N será usado durante a inicialização e o reconfigure do Squid3.
Squid3 irá iniciar em grupos de até idle=N, em uma tentativa de atender às necessidades do tráfego e manter idle=N livre acima do máximo das necessidades.
A opção "concurrency=", define o número de requisições simultâneas que o Squid3 pode processar. O padrão 0 é utilizado para suportar apenas uma requisição por vez.
Configurando-o para um número maior que 0 altera o protocolo usado para incluir um número de canal na primeira linha do request/response, permitindo que vários pedidos possam ser enviados em paralelo mesmo sem esperar a resposta.
Não deve ser definida, a menos que tenha suporte para isso.
auth_param basic children 20 startup=0 idle=1
"realm" realmstring :: especifica o nome que será comunicado ao cliente para o esquema básico de autenticação de proxy (parte do texto que o usuário vai ver quando for solicitado seu nome de usuário e senha). Não há padrão.
auth_param basic realm Squid proxy-caching web server
"credentialsttl" timetolive :: especifica para o Squid3 por quanto tempo é válido o "username:password", em outras palavras, muitas vezes o programa auxiliar é chamado para esse usuário. Defina um valor baixo para forçar a revalidação com senhas curtas.
Note que definir um valor alto, não tem impacto sobre a sua suscetibilidade para repetir os ataques, a menos se você estiver usando uma senha de uso único no sistema (como SecureID). Se você estiver usando tal sistema, estará vulnerável a ataques de repetição, a menos que você use a ACL "max_user_ip" em uma regra "http_access".
"casesensitive" on|off :: especifica se nomes de usuários são case sensitive. A maioria dos bancos de dados de usuários são case sensitive permitindo que o mesmo nome de usuário possa ser escrito usando letras maiúsculas e minúsculas. Faz uma grande diferença para o processamento da ACL user_max_ip.
auth_param basic casesensitive off
Parâmetros para o esquema Digest
"program" cmdline :: especifica o comando para o autenticador externo. Um programa lê uma linha contendo "username":"realm" e responde com o valor apropriado hexadecimal H (A1) ou "ERR", se o usuário (ou o seu hash H (A1)) não existe.
Veja RFC 2616 para a definição de H (A1).
As respostas "ERR" podem, opcionalmente, ser seguidas por uma descrição de erro disponível como %m na página retornada.
Por padrão, o esquema de autenticação Digest não é usado, a menos que um programa seja especificado.
Se for usar um autenticador Digest, defina esta linha como, por exemplo:
auth_param digest program /etc/squid3/bin/digest_pw_auth /etc/squid3/etc/digpass
"utf8" on|off :: HTTP usa iso-latin-1 como conjunto de caracteres, enquanto alguns back-ends de autenticação, como LDAP, usam UTF-8.
Se for definido como "on", o Squid3 traduzirá o HTTP charset iso-latin-1 para UTF-8 antes de enviar o nome de usuário e senha para o suporte.
"children" numberofchildren [startup=N] [idle=N] [concurrency=N] :: número máximo de autenticações para autenticar (padrão 5).
Se você iniciar com um valor baixo, o Squid3 terá que esperar por eles para processar um backlog de cálculos de H (A1), e vai diminuir a velocidade.
Quando os cálculos H (A1) forem feitos através de uma rede (lenta), é provável que você precise de muitos processos autenticadores.
As opções "startup=" e "idle=", permitem uma distorção na quantidade exata de execução. O mínimo startup=N será usado durante a inicialização e o reconfigure do Squid3.
Squid3 irá iniciar em grupos de até idle=N em uma tentativa de atender às necessidades do tráfego e manter idle=N livre acima do máximo das necessidades.
A opção "concurrency=" define o número de requisições simultâneas que o Squid3 pode processar. O padrão 0 é utilizado para suportar apenas uma requisição por vez. Configurando-o para um número maior que 0, altera o protocolo usado para incluir um número de canal na primeira linha do request/response, permitindo que vários pedidos possam ser enviados em paralelo mesmo sem esperar a resposta.
Não deve ser definida, a menos que tenha suporte para isso.
auth_param digest children 20 startup=0 idle=1
"realm" realmstring :: especifica o nome que será comunicado ao clliente para o esquema Digest de autenticação de proxy (parte do texto que o usuário vai ver quando for solicitado seu nome de usuário e senha). Não há padrão.
auth_param digest realm Squid proxy-caching web server
"nonce_garbage_interval" timeinterval :: especifica o intervalo de "nonces" emitidos para checar a validade dos clients_agent's. "Nonce" refere-se a um 'número usado uma vez'.
Geralmente, é um número aleatório (ex.:, autenticação MD5).
"nonce_max_duration" timeinterval :: especifica o tempo máximo que um dado nonce será válido.
"nonce_max_count" number :: especifica o número máximo de vezes que um dado nonce pode ser usado.
"nonce" é um número usado uma vez. Geralmente, é um número pseudo-aleatório, emitido em um protocolo de autenticação para garantir que comunicações antigas não possam ser reutilizadas em 'ataques de repetição'.
"nonce_strictness" on|off :: determina se o Squid3 requer um comportamento estrito de incremento-por-1 para a contagem de nonce, ou apenas incremento (off - para uso quando agentes geram contagem nonce que ocasionalmente decrementam um (isto é, 1,2,4,6)). O padrão é off.
"check_nonce_count" on|off :: esta diretiva, se definida como off, torna possível desativar a verificação da contagem nonce para contornar implementações de buggy digest qop em certas versões de navegadores.
O padrão é on, para verificar a contagem nonce e proteger de ataques de repetição de autenticação.
"post_workaround" on|off :: esta é uma solução para bug de certos navegadores que enviam uma requisição digest incorreta em pedidos POST, quando reutilizam o mesmo nonce que adquiriram antes em uma requisição GET.