Neste tutorial vou ensinar como configurar uma proxy Squid básico nos próximo ensinarei a adicionar
mas recursos a nosso proxy. no post de hoje será mais rápido e fácil que preparar Lula a Dorê.
Vamos partir do ponto que você já o que é um servido proxy e para o que ele server e que só busca uma
receita para configuração rápida desta Lula ;)
A distribuição que vamos utilizar e o Debian Wheezy versão 7.5 mas esse how-to vale para qualquer
distribuição baseada em Debian como por exemplo Ubuntu, Linux Mint e etc...
O arquivo de configuração do Squid e auto explicável ele vem todo comentado com suas
5780 linhas ai você me pergunta 5780 LINHAS !??? Eu preciso disso tudo ???
E eu respondo calma gafanhoto a resposta e sim e não depende do que você precisa implementar
não hoje em nosso tutorial prometo que não vamos passar das 64 linhas contando com as linhas em branco
Mas não espere que nada de grandioso saia daqui. mas lembre-se uma passo de cada vez.
# apt-get install squid3
Agora vamos gerar bacukp do arquivo de configuração original do squid com comando
# cp /etc/squid3/squid.conf /etc/squid3/squid.conf_old
Lembra das 5780 linhas que eu falei que não íamos precisar de todas o squid tem um conceito chamado
politicas padrões ou seja algumas ACLs sem as quais ele não funciona. essas vem descomentadas prontas para usar, as restantes vem todas comentadas vamos nos livrar delas por enquanto lembre-se de fazer um backup antes pois elas serão uteis futuramente.
geramos novo squid.conf com as politicas padrões
# grep -v ^["#"] /etc/squid3/squid.conf_old > /etc/squid3/squid.conf
Com o comando acima geramos um novo squid.conf contendo somente as linhas sem comentários ou seja
as ACLS basicas do squid.
Agora vamos visualizar abaixo nosso arquivo de configuração:
# cat /etc/squid3/squid.conf
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
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 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 CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all
######################## FIM DO ARQUIVO #############
O seu arquivo de configuração terá esse conteúdo com a diferença que ele terá muitas linha em branco a mais eu removi para dar maior clareza
Agora chegou a hora da verdade para termos um proxy funcional e com a função de cache precisamos de adicionar algumas linhas.
Para fins didáticos as linhas em vermelho são as que eu adicionei
e as linhas começadas com # em azul são comentários no arquivo de configuração, as linhas em preto fazem parte das ACLS padrão do squid.
O carácter cerquilha na frente dos comando indicam que eles devem ser aplicados como usuário root.
Decidi por comentar o máximo possível de opções no arquivo de configuração, por acreditar que dessa maneira facilite o entendimento e as alterações para a sua realidade.
Edite o arquivo de configuração com seu editor favorito no meu caso o VI.
Segue abaixo como ficou o arquivo de configuração.
você pode copiar e colar e alterar o exemplo abaixo ou pode simplesmente baixar o arquivo pronto a partir do link de download: squid.conf:
você pode copiar e colar e alterar o exemplo abaixo ou pode simplesmente baixar o arquivo pronto a partir do link de download: squid.conf:
# vi /etc/squid3/squid.conf
# porta padrão do squid onde o proxy escutará
http_port 192.168.101.1:3128
# No meu caso 192.168.101.1 a porta padrão do squid é a 3128 mas você pode substitui-la por qualquer # outra de sua preferência como por exemplo a 8080
# opções de cache e outras
coredump_dir /var/spool/squid3
cache_mem 1024 MB
# tamanho do cache de memoria RAM usado pelo squid lembrese quanto mais memoria para cache melhor # mas devemos respeitar os limites do hardware
cache_dir ufs /var/spool/squid3 5120 64 64
# diretório e quantidades de subdiretórios do squid
maximum_object_size_in_memory 64 KB
maximum_object_size 700 KB
minimum_object_size 0 kB
# tamanhos máximo e mínimo de objetos no cache do squid
# limite minimo de ocupação do cache
cache_swap_low 85
# limite maximo de ocupação do cache
cache_swap_high 95
# opções diversas explico na próxima
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
# definições da rede na qual o servidor proxy ira trabalhar
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
# Log de acesso a paginas
access_log /var/log/squid3/access.log
#Diretório de Paginas de erros
error_directory /usr/share/squid3/errors/Portuguese
# você pode personalizar as sua paginas de erro sempre uma ótima opção
#Portas consideradas seguras pelo servidor proxy
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 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 CONNECT method CONNECT
acl lan src 192.168.101.0/26
# acls Básicas do squid
# aqui vai uma dica muito importante a ordem das ACLs é fundamental uma vez que o squid
# interpreta as ACLs de cima para baixo ou seja se a anterior bloqueia um coisa não adianta embaixo #libera-la que ela ainda estará bloqueada
http_access allow manager localhost
http_access allow localhost
http_access deny CONNECT !SSL_ports
http_access deny !Safe_ports
http_access deny manager
http_access deny all
#################### Fim do arquivo ###################
Agora que terminamos de editar o arquivo de configuração do squid só falta reiniciarmos o serviço.
com o comando abaixo:
# service squid3 restart
OBS: Para o servidor proxy funcionar corretamente devemos habilitar o repasse de pacotes
através da maquina dos seguintes passos:
Editar o arquivo /etc/sysctl.conf:
# vi /etc/sysctl.conf
Encontrar e descomentar a linha contendo:
Encontrar e descomentar a linha contendo:
net.ipv4.ip_forward=1
Aqui lanço uma observação, para evitar que os usuários burlem seu proxy devemos usar regras de iptables.
Aqui lanço uma observação, para evitar que os usuários burlem seu proxy devemos usar regras de iptables.
Essas regras e suas explicações eu postareis mais a frente.
Agora configuramos nosso web Broswer para acessar a internet através do proxy.
No meu caso o navegador iceweasel.
Como vemos em figura abaixo:
No menu editar ---> preferências--> avançado --> Rede
Selecionar a opção configuração manual de proxy
Preencher com o endereço do seu servidor proxy
marcar a opção usar esse proxy para todo os protocolos.
Clicamos em OK e fechar
Agora se você fez tudo certinho e só testar em nosso navegador e navegar normalmente como vemos abaixo:
Referências:
Linux squid manpage
Arquivo de configuração do squid
OBS: aqui temos uma configuração básica do Squid sem autenticação, filtro de URLs, proxy transparente e outros recursos suportados pelo mesmo. Nos próximos post usaremos esse arquivo de configuração como base para implantamos outros recursos.