Servidor Proxy

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar

Servidor Proxy

Um servidor Proxy é uma espécie de memória cache comunitária na qual cada página Web que um usuário acessar ficará armazenada na cache do servidor. Quando um usuário acessa um conteúdo o navegador primeiro faz a requisição ao servidor Proxy. Se a página requisitada estiver na cache o servidor Proxy entrega imediatamente. Se a página não estiver na cache o servidor Proxy faz a consulta na Internet, requisita o conteúdo, e armazena em sua cache [1].

[1]

Ao utilizar um Proxy, além da configuração do servidor é necessário configurar cada um dos navegadores e outros programas que vão acessar a Internet via servidor Proxy.

Squid

Instalação
No Linux um servidor Proxy é implementado pelo pacote Squid, instalado com o comando:
sudo apt-get install squid
Arquivo de configuração
A configuração do Squid feita no arquivo
/etc/squid3/squid.conf
Antes de editar o arquivo de configuração, faça uma cópia backup do arquivo original para recuperar as configurações originais, caso necesário:
sudo cp /etc/squid3/squid.conf /etc/squid3/squid.conf.bak

O arquivo squid.conf é bastante extenso e complexo, entretanto, com uma configuração mínima já é possível de ser utilizado.

Procure no arquivo /etc/squid3/squid.conf as TAGS abaixo, e retire os comentários caso seja necessário para habilitar os seguintes parâmetros básicos:

#  TAG: http_port
http_port 3128
# Especifica a porta padrão de escuta do squid.
#  TAG: cache_dir
cache_dir ufs /var/spool/squid3 100 16 256
# Deve ser descomentado. 
# Define o diretório cache do Squid (/var/spool/squid3)
# Por padrão tem tamanho máximo de 100 MB, com 16 diretórios, cada um com 256 sub-diretórios.

Listas de controle de acesso

Com o Squid é possível o bloqueio ou liberação de acesso a determinados sítios, redes, em determinados dias e horários.

O controle de acesso é realizado através das chamadas listas ACL (Access Control List).

#  TAG: acl

O formato geral de uma ACL é:

#          acl aclname acltype argument ...
#          acl aclname acltype "file" ...
O aclname é o nome escolhido para a regra, acltype define a origem, destino, tempo, etc, o argument define números IP, máscara de rede etc, e file deve conter o caminho e nome do arquivo que definirá uma coleção de máquinas ou sites Web, etc.

Verifique os tipos de regras acl (acltype) disponíveis procurando no arquivo squid.conf:

#       ***** ACL TYPES AVAILABLE *****

Algumas regras default são pré definidas:

# ACLs all, manager, localhost, and to_localhost

Recomendação mínima de configuração para permitir acesso dos computadores a partir da rede local:

acl localnet src 192.168.0.0/16 
Localizar e descomentar esta ACL de acordo com o endereçamento IP da rede local.
Exemplo de controles de acesso
[1]
  • Permitir acesso a todos:
acl all src 0.0.0.0/0.0.0.0
http_access allow all
  • Permitir acesso somente da rede local:
acl localnet src 192.168.0.0/16
http_access allow localnet
  • Bloquear acesso a computadores da rede local:
acl host src 192.168.1.10/32 192.168.1.11/32
http_access deny host
  • Bloquear acesso a sites indesejáveis:
acl sites dstdomain "/etc/squid3/acl/sites-deny"
http_access deny sites
Neste caso deve-se criar o arquivo /etc/squid3/acl/sites-deny e inserir os sites indesejados, um por linha.
  • Restringir horário de acesso:
acl horario time MTWHF 08:00-18:00
http_access allow localnet horario
http_access deny localnet
Onde: S=domingo, M=segunda, T=terça, W=quarta, H=quinta, F=sexta e A=sábado.
Acesso permitido apenas a portas específicas
Verifique no arquivo /etc/squid3/squid.conf a configuração padrão para as listas ACL permitindo somente acesso as portas específicas:
acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 1025-65535  # unregistered ports
acl CONNECT method CONNECT

#Bloqueia se não for porta segura
http_access deny !Safe_ports
#Bloqueia se não for conexão SSL
http_access deny CONNECT !SSL_ports

Configuração e teste do navegador para utilizar servidor Proxy

Cada navegador que for utilizar o servidor Proxy deve ser configurado.

No Firefox a configuração do Proxy é acessada por Editar -> Preferências -> Avançado -> Rede:

  • Modifique a configuração do Proxy e acrescente em HTTP: <IP_do_Servidor_Proxy> e Porta: 3128 e clique em Usar este proxy para todos os protocolos.
  • Testar o acesso a um site Web.

Os arquivos e páginas acessadas são armazenados no diretório /var/spool/squid3/.

Referências

  1. 1,0 1,1 1,2 VALLE, O. T. Adminstração de Redes com Linux: Fundamentos e práticas, IFSC, Florianópolis, 2010.

--Evandro.cantu (discussão) 11h10min de 22 de fevereiro de 2016 (BRT)