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.
