Configurando um proxy-cache usando o squid no ubuntu e debian (básico)
Esse tutorial eu irei ensinar a configurar o o básico do squid, que é um proxy-cache , que é uma ferramenta fundamental para admistradores de redes com tráfego extremos para ajudar a diminuir o consumo do link.
Um exemplo prático, se 10 usuários ascessarem o mesmo Web site ele na verdade será carregado apenas uma vez no servidor de proxy , diminuindo o tráfego do link, que na maioria das vezes não é muito largo. outro exemplo se 10 usuários baixarem 10 vezes um arquivo, ele só vai ser realmente baixado 1 vez , o resto vai vir do cache do proxy, isso se aplica a imagens vídeos e outras coisas .
Para esse tutorial é importante que você saiba o básico de comandos do console e da estrutura de diretórios e inicialização de programas em modo texto (console) recomendo ler o guia foca se quiser se aprofundar no mundo do software livre . Outra coisa , aprenda a usar o google , ele sempre lhe trará respostas , antes mesmo de postar em foruns e listas.
Bem vamos começar .
Passos que vão ser feitos nesse tutorial.
- Instalar o programa .
- Criar o arquivo ip_Liberados dentro do diretório /etc/squid/
- Renomear a conf padrão .
- Baixar e descompactar a conf que eu editei .
- Reiniciar o squid
- Habilitar o proxy no navegador
- Testar ver se está funcionando corretamente.
- Duvidas consultar o google .
Vamos instalar o squid .
No ubuntu .
sudo apt-get install squid
No debian como root.
apt-get install squid
A conf padrão dele fica no diretório.
/etc/squid
se chama squid.conf
/etc/squid/squid.conf
Dica! caso você queira tirar os comentários # do arquivo squid.conf
cat squid_original.conf | grep -v ^# | uniq | tee squid.conf
Então vamos primeiro criar um aquivo e no qual vamos inserir os Ips que desejamos liberar no proxy, para evitar o uso de seu proxy na internet .
sudo touch /etc/squid/ip_Liberados
ou no debian
# touch /etc/squid/ip_Liberados
E vamos iserir os ips que desejamos . para saber o ip da sua máquina
sudo ifconfig
julio6@Ubuntu-Desktop:~$ sudo ifconfig
[sudo] password for julio6:
eth0 Encapsulamento do Link: Ethernet Endereço de HW 00:15:F2:2B:98:52
inet end.: 192.168.254.20 Bcast:192.168.254.255 Masc:255.255.255.0
endereço inet6: fe80::215:f2ff:fe2b:9852/64 Escopo:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1
pacotes RX:65393 erros:0 descartados:0 excesso:0 quadro:0
Pacotes TX:60230 erros:0 descartados:0 excesso:0 portadora:0
colisões:0 txqueuelen:1000
RX bytes:64778657 (61.7 MB) TX bytes:9155948 (8.7 MB)
IRQ:18 Endereço de E/S:0xb000
Vamos editar o arquivo que criamos e vamos inserir os ips que desejamos .
sudo nano /etc/squid/ip_Liberados
No meu caso esses.
192.168.254.1
192.168.254.20
192.168.254.2
192.168.254.3
192.168.254.4
192.168.254.5
192.168.254.15
O squid já vem com a conf dele padao e pronta para usar
Agora eu vou mostrar a conf abaixo editada por min .
################################
############Porta Padrão #####################
http_port 3128
#########################################
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
####### Caso exista o Apache evita conflitos #############
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
############Logs do Squid######################
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log squid
############ verifica o arquivo de Host da maquina ########
hosts_file /etc/hosts
###########################################
############Configuração do cache##################
############tamanho do cache coloque o melhor pra seu uso #
cache_mem 10 GB
############ tamanho maximo de arquivos na memoria ####
maximum_object_size_in_memory 128 KB
############ tamanho maximo do arquivo no cache #######
maximum_object_size 300 MB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
###########################################
############Regras de Liberar O seu IP ###############
############ Proteger a sua rede de usos externos ao squid ###
############Acl que consulta o arquivo ##########
acl Libera_IP src “/etc/squid/ip_Liberados”
############ Regra que libera a acl Libera_IP #######
http_access allow Libera_IP
######################################
############Log de erros em Portugues##########
######################################
error_directory /usr/share/squid/errors/Portuguese
#######################################
############Atualizar Cache##################
#######################################
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
############Faixa da rede interna ##############
acl all src 0.0.0.0/255.255.255.0
#######################################
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
############Partas do SSL padrão #############
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
############ Portas Liberadas ##################
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
##########################################
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
############Bloqueia todas as portas menos as sefe portas###
http_access deny !Safe_ports
##########################################
http_access deny CONNECT !SSL_ports
############Libera Localhost#####################
http_access allow localhost
############Bloquear todos ips e acessos externos #######
http_access deny all
############## Libera que recarregue as páginas#########
http_reply_access allow all
############Libera consultas icpms #################
icp_access allow all
############################################
cache_effective_group proxy
############endereço de erros do cache ###############
coredump_dir /var/spool/squid
Baixe aqui a conf .
No console.
cd /etc/squid
Renomeiar a conf padrão
sudo mv squid.conf squid.conf-old
wget http://www.xjulio.info/blog/squid.conf.tar.gz
tar -xzvf squid.conf.tar.gz
Reniciar o squid.
# /etc/init.d/squid restart
ou
sudo /etc/init.d/squid restart
Lembrando que a conf que vem no squid já é o suficiente, basta editar a parte que libera acessos externos .
Para habilitar o proxy no navegador firefox .
vai em preferências do navegador .

E coloca o endereço de ip do seu proxy .

Referências .
http://www.squid-cache.org/Doc/#non-english
