Servidor Proxy SQUID

O que é  um Proxy


O Proxy é um servidor que atende a requisições repassando os dados do cliente à frente: um usuário (cliente) conecta-se a um servidor Proxy, requisitando algum serviço, como um arquivo, conexão, página web, ou outro recurso disponível em outro servidor.

Um servidor Proxy pode, opcionalmente, alterar a requisição do cliente ou a resposta do servidor e, algumas vezes, pode disponibilizar este recurso mesmo sem se conectar ao servidor especificado. Pode também atuar como um servidor que armazena dados em forma de caixa (cache) em redes de computadores. São instalados em máquinas com ligações tipicamente superiores às dos clientes e com poder de armazenamento elevado.
Esses servidores têm uma série de usos, como filtrar conteúdo, providenciar anonimato, entre outros.

Um Proxy de caixa/cache HTTP ou em inglês caching Proxy, permite, por exemplo, que o cliente requisite um documento na World Wide Web e o Proxy procura pelo documento na sua caixa (cache). Se encontrado, a requisição é atendida e o documento é retornado imediatamente. Caso contrário, o Proxy busca o documento no servidor remoto, entrega-o ao cliente e salva uma cópia na sua caixa (cache). Isto permite uma diminuição na latência, já que o servidor Proxy, e não o servidor original é requisitado, proporcionando ainda uma redução do uso da banda.



Instalação e configuração do Squid (Proxy)


Primeiramente digite no terminal o comando apt-get install squid e confirme digitando um S, após o fim da instalação digite rm /etc/squid/squid.conf para remover o arquivo de configuração do squid, o arquivo original é muito extenso e confuso.

Então crie um arquivo novo no mesmo endereço digitando vi /etc/squid/squid.conf.


Assim que abrir o novo arquivo digite os comandos na mesma ordem, pois o squid lê de cima para baixo se você colocar que esta bloqueando um site e em baixo colocar que esta liberando, o site vai ficar bloqueado, pois você colocou a regra a cima que ele é para estar bloqueado, e o squid simplesmente ignora a regra abaixo.

Tela com regras digitadas
Segue Explicação de cada linha da tela acima

http_port 3128  porta onde o squid vai ficar disponivel.


visible_hostname Squid  nome do servidor.


#########MEMORIA EM CACHE na memoria RAM e no HD ########


cache_mem 64MB configuração que seta a quantidade de memoria RAM dedicada ao cache.



maximum_object_size_in_memory 64 KB  determina o tamanho máximo dos arquivos que serão guardados no cache.


maximum_object_size 512 MB  define o tamanho máximo do arquivo de download.


minimum_object_size 0 KB  define o tamanho mínimo do arquivo de download.


cache_swap_low 90  define a porcentagem mínima de uso do cache.


cache_swap_high 95  define a porcentagem máxima de uso do cache.


cache_dir ufs /var/spool/squid 2048 16 256  composto por quarto valores, primeiro /var/spool/squid indica a pasta onde armazena os arquivos em cache, Segundo 2048 indicam em MB quantidade de espaço reservado em HD para arquivos em cache, terceiro e quarto 16 e 256 indicam a quantidade de subpastas quer serão criadas dentro do diretório, ou seja, 16 pastas com 256 subpastas cada uma.


cache_access_log /var/log/squid/access.log  define onde se guarda os Logs de acesso do Squid.


refresh_pattern ftp: 15 20% 2280 define a atualização do cache os números indicam o intervalo de cada atualização em minutos, o numero 15 o Squid ira verificar se as paginas e arquivos com mais de 15 minutos foram atualizados, o terceiro numero indica 2280 indica o tempo máximo depois do qual o objeto é sempre verificado.


refresh_pattern gopher: 15 0% 2280  idem ao de cima só muda o protocolo.


refresh_pattern. 15 20% 2280 idem ao de cima só muda o protocolo.





##################### Regras de conexão das portas e sites liberados e proibidos #######################



acl all src 0.0.0.0/0.0.0.0  cria uma regra que todos ip podem usar o proxy


acl manager proto cache_object


acl localhost src 127.0.0.1/255.255.255.255  cria uma regra que você utiliza ao usar o proxy localmente no servidor onde ele se encontra instalado.


acl SSL_ports port 443 563  portas seguras.


acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535  portas seguras.


acl purge method PURGE

acl CONNECT method CONNECT

http_access allow manager localhost

http_access deny manager

http_access allow purge localhost

http_access deny purge

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports





##################### sites proibidos ##############



acl sites_bloqueados url_regex -i "/etc/squid/sites_bloqueados.txt"

http_access deny sites_bloqueados  define sites bloqueados pelo administrador, você deve criar um arquivo no VI como no exemplo (vi /etc/squid/sites_bloqueados.txt)

e dentro desse arquivo você digita os sites que devem ser bloqueados, no nosso exemplo digitamos Orkut.com, facebook.com e youtube.com.

salve o arquivo e indique depois do regex –i entre aspas duplas o caminho do arquivo texto com os sites digitados que você criou.



##################### palavras proibidas ##############



acl palavras_proibidas dstdom_regex "/var/proibido"

http_access deny palavras_proibidas  define palavras proibidas, ou seja, se você digitar alguma palavra que é proibida que fosse digitada no arquivo /var/proibido (mesma maneira do site, ao invés de digitar o site você digita apenas a palavra.)

é bloqueado o site.







####################### extensões de arquivos proibido ######################



acl extensao_proibido url_regex -i .avi .exe .mp3 .mp4 .torrent .msi .jpg .jpeg .psd .cdr .src

http_access deny extensao_proibido  define extensões que você não pode fazer downloads.



acl redelocal src 192.168.1.0/24  define que a rede local tem acesso ao proxy.

http_access allow localhost

http_access allow redelocal



http_access deny all  define  se o acesso não entrou em nenhuma regra a cima ele simplesmente nega o acesso.

Após  digitar, criar e salvar seu arquivo squid.conf, você deve reiniciar o serviço Squid para que entre em funcionamento suas regras, utilizando o comando /etc/init.d/squid restart.