Red Hat Training

A Red Hat training course is available for RHEL 8

Capítulo 7. Configuração do servidor proxy de cache Squid

O Squid é um servidor proxy que armazena o conteúdo para reduzir a largura de banda e carregar páginas da web mais rapidamente. Este capítulo descreve como configurar o Squid como um proxy para o protocolo HTTP, HTTPS e FTP, assim como autenticação e restrição de acesso.

7.1. Configurando o Squid como um proxy de cache sem autenticação

Esta seção descreve uma configuração básica do Squid como um proxy de cache sem autenticação. O procedimento limita o acesso ao proxy com base em faixas de IP.

Pré-requisitos

  • O procedimento pressupõe que o arquivo /etc/squid/squid.conf é o fornecido pelo pacote squid. Se você editou este arquivo antes, remova o arquivo e reinstale o pacote.

Procedimento

  1. Instale o pacote squid:

    # yum instalar lula
  2. Edite o arquivo /etc/squid/squid.conf:

    1. Adaptar as listas de controle de acesso (ACL) do site localnet para corresponder aos intervalos de IP que devem ser permitidos para usar o proxy:

      acl localnet src 192.0.2.0/24
      acl localnet 2001:db8:1::/64

      Por padrão, o arquivo /etc/squid/squid.conf contém a regra http_access allow localnet que permite utilizar o proxy de todas as faixas de IP especificadas em localnet ACLs. Note que você deve especificar todas as localnet ACLs antes da regra http_access allow localnet.

      Importante

      Remova todas as entradas existentes no site acl localnet que não correspondem ao seu ambiente.

    2. A seguinte ACL existe na configuração padrão e define 443 como uma porta que usa o protocolo HTTPS:

      acl Porta SSL_port 443

      Se os usuários devem ser capazes de usar o protocolo HTTPS também em outras portas, acrescente uma ACL para cada uma dessas portas:

      acl Porta SSL_ports port_number
    3. Atualizar a lista de regras acl Safe_ports para configurar com quais portas a Squid pode estabelecer uma conexão. Por exemplo, para configurar que os clientes que utilizam o proxy só podem acessar recursos nas portas 21 (FTP), 80 (HTTP) e 443 (HTTPS), mantenha apenas as seguintes declarações acl Safe_ports na configuração:

      acl Safe_ports port 21
      acl Safe_ports port 80
      acl Safe_ports port 443

      Por padrão, a configuração contém a regra http_access deny !Safe_ports que define a negação de acesso às portas que não estão definidas em Safe_ports ACLs.

    4. Configure o tipo de cache, o caminho para o diretório de cache, o tamanho do cache e outras configurações específicas do tipo de cache no parâmetro cache_dir:

      cache_dir ufs /var/spool/squid 10000 16 256

      Com estas configurações:

      • A lula usa o tipo de cache ufs.
      • A Squid armazena seu cache no diretório /var/spool/squid/.
      • O cache cresce até 10000 MB.
      • A Squid cria subdiretórios de nível 1 em 16 no diretório /var/spool/squid/.
      • A Squid cria subdiretórios 256 em cada diretório de nível 1.

        Se você não definir uma diretiva cache_dir, a Squid armazena o cache na memória.

  3. Se você definir um diretório de cache diferente de /var/spool/squid/ no parâmetro cache_dir:

    1. Criar o diretório do cache:

      # mkdir -p path_to_cache_directory
    2. Configurar as permissões para o diretório do cache:

      # chown squid:lula path_to_cache_directory
    3. Se você executar o SELinux no modo enforcing, defina o contexto squid_cache_t para o diretório do cache:

      # semanage fcontext -a -t squid_cache_t "path_to_cache_directory(/.*)?"
      # restorecon -Rv path_to_cache_directory

      Se o utilitário semanage não estiver disponível em seu sistema, instale o pacote policycoreutils-python-utils.

  4. Abra a porta 3128 no firewall:

    # firewall-cmd --permanent --add-port=3128/tcp
    # firewall-cmd --reload
  5. Habilite e inicie o serviço squid:

    # systemctl habilita --agora lula

Etapas de verificação

Para verificar se o proxy funciona corretamente, baixe uma página da web usando o utilitário curl:

# curl -O -L"https://www.redhat.com/index.html" -x"proxy.example.com:3128"

Se curl não exibir nenhum erro e o arquivo index.html tiver sido baixado para o diretório atual, o proxy funciona.