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 pacotesquid
. Se você editou este arquivo antes, remova o arquivo e reinstale o pacote.
Procedimento
Instale o pacote
squid
:# yum instalar lula
Edite o arquivo
/etc/squid/squid.conf
: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 regrahttp_access allow localnet
que permite utilizar o proxy de todas as faixas de IP especificadas emlocalnet
ACLs. Note que você deve especificar todas aslocalnet
ACLs antes da regrahttp_access allow localnet
.ImportanteRemova todas as entradas existentes no site
acl localnet
que não correspondem ao seu ambiente.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
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çõesacl 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 emSafe_ports
ACLs.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.
-
A lula usa o tipo de cache
Se você definir um diretório de cache diferente de
/var/spool/squid/
no parâmetrocache_dir
:Criar o diretório do cache:
# mkdir -p path_to_cache_directory
Configurar as permissões para o diretório do cache:
# chown squid:lula path_to_cache_directory
Se você executar o SELinux no modo
enforcing
, defina o contextosquid_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 pacotepolicycoreutils-python-utils
.
Abra a porta
3128
no firewall:# firewall-cmd --permanent --add-port=3128/tcp # firewall-cmd --reload
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.