Manual traduzido do Squid - Parte 3

Nesta terceira parte da tradução do manual do Squid 3, lucraremos com informações valiosas sobre SSL e cache. A tradução não foi realizada literalmente. Alguns termos foram adaptados para maior compreensão e alguns termos, foram deixados em inglês para evitar perder-se alguma coisa na tradução.

[ Hits: 25.154 ]

Por: Buckminster em 02/12/2013


Introdução



Em relação ao uso de SSL no Squid, é preciso atentar que algumas opções SSL não suportam ACLs do tipo fast (rápidas) e/ou slow (lentas) e isso faz com que o Squid fique lento e/ou sujeito a travamentos.

Alguns tipos de ACLs, requerem a suspensão da requisição atual para poder acessar uma fonte de dados externa. Aquelas que são marcadas com a tag [slow] são lentas, aquelas que são marcadas com a tag [fast] são rápidas. E aquelas não marcadas, são rápidas.

Para ver sobre ACLs, leia a primeira e a segunda parte aqui:
Outro cuidado, é compilar o Squid com o parâmetro: --enable-ssl Caso queira utilizar ACLs externas, deve compilá-lo também com o parâmetro: --enable-ssl-crtd

Em relação ao cálculo do cache_mem e do cache_dir tem informações aqui:
Cada opção de cache_dir tem um tipo específico de sistema de armazenamento para ser usado. O ufs é o padrão.

Para ativar qualquer um dos outros sistemas de armazenamento, o Squid deve ser compilado com a opção --enable-storeio= seguida do tipo de armazenamento que se quer (aufs, diskd, etc). Você pode compilá-lo com vários parâmetros habilitados.

Por exemplo:

      --enable-storeio="ufs,aufs,diskd"

Os tipos de armazenamento rock e coos não são muito utilizados. O tipo coos ainda é instável no Squid 3.

Os títulos das páginas estão com o primeiro tópico abordado na página, porém, em uma página, tem mais informações do que o título descreve.

Perdoem-me pelos possíveis erros de revisão e de tradução.

SSL Options

TAG: ssl_unclean_shutdown
Nota: esta opção só está disponível se o Squid for compilado com o parâmetro: --enable-ssl
Alguns navegadores, especialmente o Internet Explorer, tem alguns bugs com as mensagens de desligamento do SSL. Default: ssl_unclean_shutdown off


TAG: ssl_engine
Nota: esta opção só está disponível se o Squid for compilado com o parâmetro: --enable-ssl
Usado com o OpenSSL. Você vai precisar definir isso, caso use a aceleração SSL de Hardware, por exemplo.
Default: none


TAG: sslproxy_client_certificate
Nota: esta opção só está disponível se o Squid for compilado com o parâmetro: --enable-ssl
Certificados SSL do cliente para usar com URLs: https://
Default: none


TAG: sslproxy_client_key
Nota: esta opção só está disponível se o Squid for compilado com o parâmetro: --enable-ssl Chave SSL do cliente para usar com URLs: https://
Default: none


TAG: sslproxy_version
Nota: esta opção só está disponível se o Squid for compilado com o parâmetro: --enable-ssl
Define a versão SSL para usar com URLs: https://

As versões suportadas são:
        
    1  automatic (default)
    2  SSLv2
    3  SSLv3
    4  TLSv1.0
    5  TLSv1.1
    6  TLSv1.2
   
Default: sslproxy_version 1


TAG: sslproxy_options
Nota: esta opção só está disponível se o Squid for compilado com o parâmetro: --enable-ssl
Implementação das opções SSL para usar com URLs: https://

As mais importantes são:
   
    NO_SSLv2 -   desabilita o uso de SSLv2
    NO_SSLv3 -   desabilita o uso de SSLv3
    NO_TLSv1 -   desabilita o uso de TLSv1.0
    NO_TLSv1_1 - desabilita o uso de TLSv1.1
    NO_TLSv1_2 - desabilita o uso de TLSv1.2
   
  • SINGLE_DH_USE :: sempre cria uma nova chave ao usar a troca de chaves temporary/ephemeral DH
  • SSL_OP_NOTICKET :: esta opção desativa o uso da RFC-5077 de tickets por sessão. Alguns servidores podem ter problemas em entender a extensão TLS devido à especificação ambígua na RFC4507.
  • ALL :: permite vários bugs sugeridos como "inofensivos" pelo OpenSSL. Esteja avisado que isso pode reduzir a segurança SSL/TLS para alguns ataques.
Veja a documentação SSL_CTX_set_options do OpenSSL para obter uma lista completa das opções possíveis.
Default: none


TAG: sslproxy_cipher
Nota: esta opção só está disponível se o Squid for compilado com o parâmetro: --enable-ssl
Lista de cifragem SSL para usar com URLs: https://
Os dois pontos (:) separam a lista das cifragens suportadas.
Default: none


TAG: sslproxy_cafile
Nota: esta opção só está disponível se o Squid for compilado com o parâmetro: --enable-ssl
Arquivo contendo certificados CA para utilizar com URLs: https://
Default: none


TAG: sslproxy_capath
Nota: esta opção só está disponível se o Squid for compilado com o parâmetro: --enable-ssl
Diretório contendo certificados CA para utilizar com URLs: https://
Default: none


TAG: ssl_bump
Nota: esta opção só está disponível se o Squid for compilado com o parâmetro: --enable-ssl
Esta opção é consultada quando uma requisição CONNECT for recebida em http_port (ou uma nova conexão for interceptada em https_port), desde que a porta foi configurada com ssl-bump.

Os dados posteriores sobre a conexão, ou são tratados como HTTPS e descriptografados, ou são tunelados como TCP sem decodificação, dependendo do primeiro "mode" bump de acordo com a ACL usada.

       ssl_bump <mode> [!] acl ...

Os seguintes modos ssl-bump são suportados:
  • cliente-first :: permite o bumping (colisão) da conexão. Estabelece uma conexão segura com o cliente em primeiro lugar, em seguida, conecta-se ao servidor. Este modo não permite que o Squid imite o certificado SSL do servidor e não funciona com conexões SSL interceptadas.
  • server-first :: permite o bumping da conexão. Estabelece uma conexão segura com o servidor em primeiro lugar, em seguida, estabelece uma conexão segura com o cliente, imitando um certificado do servidor. Funciona com ambas as requisições de conexão (connect) e interceptações SSL .
  • none :: torna-se um túnel TCP sem decodificar a ligação. Funciona com ambas as requisições de conexão e interceptação SSL. Este é o comportamento default quando nenhuma opção ssl_bump for dada ou quando não tem ACL ssl_bump declarada.

Por default, nenhuma conexão é colidida (bumped).

A primeira opção ssl_bump encontrada ganha. Se nenhuma ACL for encontrada, a conexão não é colidida. Ao contrário da maioria das ACLs allow/deny, a opção ssl_bump não tem uma regra implícita do tipo "negar a última opção dada". Você deve fazer essa regra se for converter as regras antigas ssl_bump allow/deny que dependem dessa regra.

Esta cláusula suporta ambos os tipos de ACLs, rápidas e lentas.

Veja: Wiki.squid-cache.org - Squid Faq para mais detalhes.
Veja também: http_port ssl - colisão, https_port ssl - bump

Exemplo: "bumpa" todas as requisições, exceto as provenientes de localhost e quem vai para example.com.
    
  acl broken_sites dstdomain .example.com
  ssl_bump non localhost
  ssl_bump none broken_sites
  ssl_bump server-first all
   
Default: none


TAG: sslproxy_flags
Nota: esta opção só está disponível se o Squid for compilado com o parâmetro: --enable-ssl

Várias flags modificam o uso do SSL enquanto URLs https:// são usadas:
  • DONT_VERIFY_PEER :: aceita certificados que falharam a verificação.
  • Para o controle refinado, consulte: sslproxy_cert_error
  •   NO_DEFAULT_CA :: não use o default CA da lista interna do OpenSSL.
Default: none


TAG: sslproxy_cert_error
Nota: esta opção só está disponível se o Squid for compilado com o parâmetro: --enable-ssl

Utilize esta ACL para ignorar os erros de validação do certificado do servidor.

Por exemplo, as seguintes linhas irão ignorar todos os erros de validação quando dos servidores de example.com. Todos os outros erros de validação irão resultar em ERR_SECURE_CONNECT_FAIL.
    
    acl BrokenButTrustedServers dstdomain example.com
    sslproxy_cert_error allow BrokenButTrustedServers
    sslproxy_cert_error deny all
    
Esta opção suporta as ACLs do itp fast (rápidas).

Veja: Wiki.squid-cache.org/SquidFaq para detalhes.

Usar ACLs lentas (slow) pode resultar em falhas do servidor.

Sem essa opção, todos os erros de validação de certificado de servidor finalizam a transação. É perigoso ignorar os erros de validação, porque um erro, geralmente, significa que o servidor pode ser não confiável e a conexão pode ser insegura.

Veja também: sslproxy_flags and DONT_VERIFY_PEER.

Opção default: sslproxy_cert_error deny all
Default: none


TAG: sslproxy_cert_sign
Nota: esta opção só está disponível se o Squid for compilado com o parâmetro: --enable-ssl
   
    sslproxy_cert_sign <signing algorithm> acl ...
   
Os seguintes algoritmos de assinatura de certificado são suportados:
  • signTrusted :: entra usando o certificado CA configurado que é geralmente colocado e é confiável pelos navegadores dos usuários finais. Este é o default para os certificados de origem do servidor de confiança.
  • signUntrusted :: entra para garantir o erro X509_V_ERR_CERT_UNTRUSTED do navegador. Este é o Default para certificados de servidor de origem não confiável, que não são auto-assinados (ver ssl :: certUntrusted).
  • signSelf :: entra usando um certificado auto-assinado com o CN certo de gerar o erro X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT no navegador. Este é o default para o servidor de origem com certificados auto-assinados (ver SSL :: certSelfSigned ).

Essa cláusula só suporta ACLs rápidas.

Quando a ACL sslproxy_cert_sign acl for usada, o Squid usa o correspondente algoritmo para gerar o certificado e ignora todas as opções sslproxy_cert_sign subsequentes (a primeira tem precedência). Se nenhuma ACL for usada, o algoritmo de assinatura default é determinado pelos erros detectados por ocasião da obtenção e validação do certificado do servidor de origem.

* Atenção: SQUID_X509_V_ERR_DOMAIN_MISMATCH e ssl:certDomainMismatch podem ser usadas com sslproxy_cert_adapt, mas se, e somente se o Squid está batendo uma requisição de conexão que carrega um nome de domínio. Em todos os outros casos (conexão [CONNECT] para um endereço IP ou uma conexão SSL interceptada), o Squid não consegue detectar a incompatibilidade de domínios no momento da geração do certificado, quando bump-server-first for usado.
Default: none


TAG: sslproxy_cert_adapt
Nota: esta opção só está disponível se o Squid for compilado com o parâmetro: --enable-ssl

    sslproxy_cert_adapt <adaptation algorithm> acl ...

Os seguintes algoritmos de adaptação de certificados são suportados:
  • setValidAfter :: define a propriedade Not After (depois não) do certificado CA usado para assinar os certificados gerados.
  • setValidBefore :: define a propriedade Not Before (antes não) do certificado CA usado para assinar os certificados gerados.
  • setCommonName ou setCommonName { NC } :: define a propriedade Subject.CN para o nome do host especificado como um parâmetro CN ou, se nenhum parâmetro CN for indicado, é extraído da requisição CONNECT. É um erro de configuração usado em setCommonName sem um parâmetro explícito para conexões interceptadas (intercept) ou conexões tproxied SSL.

Essa cláusula só suporta tipos de ACLs rápidas.

O Squid, primeiro usa a opção sslproxy_cert_adapt do algoritmo de adaptação. Dentro de um grupo, quando a ACL sslproxy_cert_adapt corresponde, o Squid usa o algoritmo de adaptação correspondente para gerar o certificado e ignora todas as opções sslproxy_cert_adapt subseqüentes (ou seja, o primeiro encontrado tem a precedência dentro de cada grupo). Se nenhuma ACL for encontrada, a ação default ocorre.

* Atenção: SQUID_X509_V_ERR_DOMAIN_MISMATCH e ssl:certDomainMismatch podem ser usadas com sslproxy_cert_adapt, mas se, e somente se o Squid está batendo uma requisição de conexão que carrega um nome de domínio. Em todos os outros casos (conexão [CONNECT] para um endereço IP ou uma conexão SSL interceptada), o Squid não consegue detectar a incompatibilidade de domínios no momento da geração do certificado, quando bump-server-first for usado.
Default: none


TAG: sslpassword_program
Nota: esta opção só está disponível se o Squid for compilado com o parâmetro: --enable-ssl

Especifica um programa usado para inserir senhas de chaves SSL quando utilizar chaves SSL criptografadas. Se não for especificada nenhuma chave, ou deve ser criptografado, ou o Squid começou com a opção -N para permitir a consulta de maneira interativa para a senha.

O nome do arquivo de chave é dado como argumento para o programa permitir a seleção da senha correta, se você tiver várias chaves criptografadas.
Default: none

    Próxima página

Páginas do artigo
   1. Introdução
   2. Opções relacionadas com ACLS externas SSL_CRTD e opções ICP
   3. Opções de autenticação
   4. Opções de cache de memória e armazenamento
   5. Opções de logfile
   6. Opções para solução de problemas
Outros artigos deste autor

Como um monte de letras de um código fonte transforma-se em voltagens?

Montagem de Cluster

Encapsulando BIND 9 e Apache 2 para obter maior segurança

Manual do IPtables - Comentários e sugestões de regras

Compilando o Squid3

Leitura recomendada

Cache Full Squid + WebHTB

Autenticando usuários do Squid em um banco de dados MySQL

Compilando o Squid com autenticação PAM

Squid transparente com cache de arquivos + Windows Update + taxa de transferência em downloads

Instalando o Squid + SquidGuard

  
Comentários
[1] Comentário enviado por Diego-Garcia em 02/12/2013 - 11:29h

Já está no meus favoritos, mais um excelente artigo.

[2] Comentário enviado por Buckminster em 02/12/2013 - 20:36h


[1] Comentário enviado por Diego-Garcia em 02/12/2013 - 11:29h:

Já está no meus favoritos, mais um excelente artigo.


Obrigado Diego.

[3] Comentário enviado por andersonjackson em 03/12/2013 - 12:56h

Excelente trabalho. Parabéns.

[4] Comentário enviado por Buckminster em 03/12/2013 - 16:53h


[3] Comentário enviado por andersonjackson em 03/12/2013 - 12:56h:

Excelente trabalho. Parabéns.


Obrigado.

[5] Comentário enviado por alysonpires em 05/12/2013 - 04:55h

Parabéns! Conteúdo grande, enorme... Pode ser até chato de ler, mas é completo! Isso que importa ;)

[6] Comentário enviado por Buckminster em 05/12/2013 - 17:06h


[5] Comentário enviado por alysonpires em 05/12/2013 - 04:55h:

Parabéns! Conteúdo grande, enorme... Pode ser até chato de ler, mas é completo! Isso que importa ;)


Obrigado.
É o Manuel do Squid. Não tem como ser de outro tamanho.
É bom para consultas. Não tem necessidade de ler tudo de uma vez.
Eu uso para consultas quando preciso de algum esclarecimento.

[7] Comentário enviado por jfernandes em 09/12/2013 - 09:47h

Meus parabéns primeiro pela iniciativa, muito boa, e segundo por fazer um belo trabalho .
Parabéns .

[8] Comentário enviado por Buckminster em 09/12/2013 - 20:03h


[7] Comentário enviado por jfernandes em 09/12/2013 - 09:47h:

Meus parabéns primeiro pela iniciativa, muito boa, e segundo por fazer um belo trabalho .
Parabéns .


Obrigado.

[9] Comentário enviado por px em 12/12/2013 - 14:32h

Mais um excelente conteúdo, como sempre! muito bem escrito e direto ao ponto, parabéns e nota 10!

[10] Comentário enviado por Buckminster em 12/12/2013 - 17:23h


[9] Comentário enviado por px em 12/12/2013 - 14:32h:

Mais um excelente conteúdo, como sempre! muito bem escrito e direto ao ponto, parabéns e nota 10!


Obrigado Pedro.


Contribuir com comentário