Sei sulla pagina 1di 26

Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.

html

Squid - Dicas - script, modelos e


comandos na manutenção de
servidor proxy - Squid
Atualizado em: 04/09/2006
Sobre este documento
Dicas - Solução de problemas
Criar ambiente de testes e backup da instalação
Resumo - Dicas - Comandos de uso frequente...
Configuração via ambiente gráfico e remotamente
Iniciar, parar, reiniciar, status
Logs, exemplos de comandos e filtros
Mais ajuda e dicas de pesquisa
httptunnel, furos de bloqueio - freeproxy, webproxy
Firewall - regras Iptables - redirecionamento
Exemplos de regras que redirecionam o trafego
Excluir uma estação do redirecionamento - acessar a net sem proxy
Configurando estações - Clientes do proxy
Configurar clientes do proxy Squid
wget, lynx e outros clientes sem config própria.
apt-get, smart e proxy autenticado
ACL - Manutenção
Zerar configurações, limpar cache
Limpar cache - reiniciar processo - solução de problemas.
CUPS e servidor web interno
Remover comentarios do arquivo de configuração
Controle de IP na rede
Formato e manipulação de data no log.
Problemas no acesso ao Hotmail + I.E. + Squid.
Indicações:

Sobre este documento


Resumo de comandos, linhas de comando e scripts utilizados na manutenção de
servidor proxy - Squid (na minha opinião e como eu uso, copiar e colar)

Os comandos e dicas podem não atender as suas necessidades, não ser compatível

1 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

com sua instalação, use como referencia, tente adaptar ao seu ambiente.

Dicas - Solução de problemas


Tente instalar e configurar por partes, tente isolar o problema, facilita na
localização do problema e solução, na manutenção ou instalação tente seguir esta
ordem.

Passo 1 - Configure o servidor para navegar e pingar as maquinas da rede interna,


configure as duas placas de rede e teste com ping para a rede interna e internet,
prossiga com a instalação somente depois de obter respostas do comando ping
para as maquinas da rede interna e navegar normalmente, quando não tem
ambiente gráfico na maquina, use o lynx para testar a navegação, wget para
download, outro serviço que possa testar o funcionamento da internet, ou arrisque
prosseguir com o ping, no caso do ping faça testes com ping para um dominio.

Passo 2 - Compartilhe a conexão, sem firewall, somente compartilhe para testar a


navegação a partir de uma estação, em lugar do firewall utilize estas regras de
iptables.

modprobe iptable_nat
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

Ajuste o device de acordo com sua rede, ppp0 como no exemplo acima para
conexões via modem discado ou ADSL conectado via pppoe, conexões de ADSL
com IP fixo ou obtido por DHCP o device é eth0, altere no exemplo acima para o
device em uso.

Passo 3 - Configure a estação para navegar, ainda não tem nada de proxy,
configure somente o gateway e DNS, com esta configuração a estação navega
sem restrição alguma, veja mais dicas sobre compartilhamento de internet em

http://www.zago.eti.br/adsl-compartilhar.txt

Somente depois que conseguir navegar a partir de uma estação, passe para a
configuração do Squid.

Passo 4 - Instale, configure e inicie o Squid, lembrando que não basta instalar, a
configuração padrão não funciona, precisa de alguns ajustes na configuração.
Explicando, precisa de um ajuste minimo no squid.conf, diretivas como classe de
IP da rede, nome da maquina e outros detalhes, dependendo do controle desejado
precisa criar ACL, usuários, senhas e outros detalhes. Tente fazer uma
configuração sem controle algum, pelo menos para entender o funcionamento,
subir o Squid e testar a navegação, no FAQ tem varios modelos prontinhos para

2 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

copiar e colar, não deve servir para o seu proposito, mas são instalações testadas e
que funcionam, utilize uma delas pelo menos para entender como funciona e
testar, depois faça a sua configuração a partir de zero, para trocar a configuração,
basta substituir o squid.conf, apagar cache e recriar novamente, não precisa
remover ou reinstalar nada, somente limpar o cache e trocar o squid.conf, também
criar ou alterar as ACL conforme a nova configuração.

Inicie o squid e verifique se está rodando OK, prossiga com os proximos tópicos
somente depois de iniciar sem mensagens de erro e o status acusar que está
rodando.

Passo 5 - Redirecionando o trafego da porta 80 para a porta 3128, altere as regras


de compatilhamento, de novo, ajuste o device caso seja diferente de ppp0 como
neste exemplo, ajuste também a classe de rede caso seja diferente de 192.168.1.0.

modprobe iptable_nat
/usr/sbin/iptables -t nat -A PREROUTING -p tcp -m multiport -s 192.168.1.0/24 --dport 80,443
/usr/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

Antes de configurar a estação, teste a rede novamente, mesmo aplicando a regra


acima, nas estações o ping tem que alcançar dominios na internet.

Passo 6 - Configurar estações para usar o proxy, no navegador, procure pelas


opções de configuar proxy, em IP informe o IP do micro que roda Squid em porta
informe 3128, salve a configuração e teste a nevagação, as condições de acesso a
sites vai depender da configuração do Squid, de qualquer forma vai obter alguma
resposta, navegar ou a tela de erro do Squid, não esqueça dos logs, no servidor
abra um console e execute a linha de comando.
tail -f /var/log/squid/access.log

Este comando exibe no console as mensagens de log, exibe em tempo real, no


momento em que estão sendo formadas, tente a navegação na estação e veja os
resultados no console, até aqui fica fácil isolar o problema, se navegava antes do
redirecionamento e agora não navega, já sabe onde procurar, inicie verificando se
está o Squid está rodando, configurações do squid, diretivas, ACL, permissões
nos arquivos e diretórios utilizados pelo squid, documentação de configuração do
Squid, pegue a mensagem de erro e coloque na caixa de pesquisa do Google..

Procure também nas mensagens de outros arquivos de log do sistema, qualquer


dúvida volte ao inicio e vá testando passo a passo, quando Ok, configure o
firewall.

Passo 7 - Firewall, as regras acima não tem proteção alguma, maquinas de cara
para a internet precisa de um firewall minimo, os exemplos acima são regras para
compartilhar e não oferece proteção, portanto precisa criar seu firewall, como
pode notar, precisa de uma linha de comando no firewall para redirecionar o

3 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

trafego da porta 80 para a porta 3128 controlada pelo Squid, no seu firewall
substitua a linha que faz NAT por esta linha.
/usr/sbin/iptables -t nat -A PREROUTING -p tcp -m multiport -s 192.168.1.0/24
--dport 80,443 -j REDIRECT --to-ports 3128

Lembrando que o Squid controla somente a navegação pela porta 80, os demais
serviços que utilizam outras portas são controlados pelo Iptables, tais como
clientes de e-mail, eles utilizam as portas 25 e 110 que não passam pelo squid,
conexões via ssh que utilizam a porta 22, outros serviços que utilizam outras
portas diferente da porta 80, configure e controle com regras no iptables, um
exemplo para fazer NAT para o restante, tudo que não passar pela porta 80, no
firewall, coloque depois da regra de redireconamento.

/usr/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE


echo 1 > /proc/sys/net/ipv4/ip_forward

Criar ambiente de testes e backup da


instalação
Considere criar um ambiente de testes, não adianta reclamar que não tem "verba"
ou não tem maquina, não custa nada, o pouco tempo que investir agora vai lhe
poupar muito mais no futuro além de evitar muitos problemas, considere um bom
investimento de tempo, pode instalar diversos squid pela rede sem problema
algum.

Veja dicas de como fazer duas instalações Linux no mesmo HD, utilize
estações para testes, evite em servidores embora seja possivel, passo a passo
em
http://www.zago.eti.br/boot_div.txt

Dual boot Linux e windows - Aproveite e veja a dica sobre backup da


instalação completa do windows na partição Linux, quando algum virus
comer o windows ou precisar reinstalar, vai poupar muito tempo, basta uma
simples cópia de volta para recuperar a instalação do windows, passo a passo
em.
http://www.zago.eti.br/boot-dual-win-e-linux.html

Nesta estação (instalação) de testes, vai consumir somente parte do espaço do HD


e nada mais, utilizando maquina que está atrás de firewall não precisa de mais
uma placa de rede, funciona com somente uma placa, configure a nova instalação
como uma estação para acessar à internet, sem passar por outro Squid, caso já
tenha algum fazendo o controle de acesso à internet, caso ele esteja rodando ma
maquina que compartilha a conexão, então inclua no firewall a regra que exclua a

4 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

maquina de testes do proxy, com esta maquina navegando sem passar por outro
proxy voce tem o servidor que precisa para seus testes, basta instalar o Squid e
configurar uma estação para usa-lo como servidor proxy, ou melhor alterar o
endereço de proxy e gateway apontando para o IP da maquina testes.

Regra de iptables para excluir um IP do redirecionamento, no meu firewall para


excluir a maquina de testes, utilizo esta regra.

/usr/sbin/iptables -t nat -A PREROUTING -i eth1 -s \! 192.168.1.53 -p tcp -m multiport --dpo


REDIRECT --to-ports 3128
/usr/sbin/iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE

Neste exemplo a estação com IP 192.168.1.53 acessa internet sem passar pelo
proxy e pode ser usada para rodar outro squid, nesta maquina configure o squid,
utilize outra estação da rede para utilizer este novo Squid, altere somente o
endereço de IP do proxy e gateway apontando para o segundo servidor proxy,
prontinho, tenho outro Squid rodando e estações passando por ele, este segundo
proxy sai pelo firewall sem problema algum, ambiente perfeito para testes.

Além de testes ou para backup, serve também como um segundo proxy, não
encontrei utilidade para esta opção, mas é possivel manter dois squid na mesma
rede, rodando independente e com regras diferentes,

Em ambiente de testes vale usar um modem discado nesta maquina, esta opção
também é indicada para testar firewall, regras de squid e outros serviços de rede,
pode até ser usado quando cai o link ou ADSL, embora muito mais lento permite
acesso à internet enquanto o ADSL não volta.

Com o squid configurado na maquina de testes (clone do principal), utilize


qualquer estação da rede, configure ou altere as configurações de proxy
apontando para o servidor de testes, prontinho, tem tudo que precisa para testar
ACL, diretivas do Squid e muito mais, quando concluir a configuração, basta
repetir o processo no principal, ou simplificando, copiar os arquivos de
configuração.

Considere manter esta instalação como backup, em casos de emergencia, nunca


se sabe quando vai ocorrer acidentes, queimar a maquina, HD ou uma pane na
configuração que pare tudo, nestas situações basta alterar o IP que as estações
nem ficam sabendo da troca, em menos de um minuto se faz a troca do IP e sobe
o Squid.

Use ferramentas como VNC, SSH, FreeNX, Putty e outras, não fique pulando pra
lá e pra cá, indo de maquina em maquina, a partir do ambiente gráfico da
maquina Linux, abra um console para acompanhar os logs e acesse o VCN da
estação windows para simular o uso. A partir da estação windows faça conexão
via FreeNX ou Putty para abrir o console e acompanhar os resultados do que
acontece com os acessos pela estação windows.

5 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

Ainda está difícil, faltando opções?, problemas com falta de hardware?,


então use maquina virtual, veja dicas no FAQ;
http://www.zago.eti.br/qemu.txt

Porque não pensei nisso antes!

Resumo - Dicas - Comandos de uso


frequente...

Configuração via ambiente gráfico e remotamente


Algumas distros tem ferramentas próprias de configuração, como exemplo
Yast2 no SUSE 10 tem configurador proxy, estas ferramentas nem sempre
atende todas as necessídades, mesmo nestas distros pode se utilizar outras
ferramentas como webmin ou editar os arquivos de configuação
manualmente.

webmin tem modulo para configurar Squid e outros recursos, na aba


"servidores" procure pelo icone "Servidor Proxy Squid", em outros idiomas
ou versões mais antigas procure por algo relacionado a servidores e proxy.
Veja mais sobre webmin, como acessar remotamente e outras dicas em
http://www.zago.eti.br/webmin.txt

SSH - Considere o uso do ssh, permite executar aplicativos do ambiente


gráfico remoto, tem varios aplicativos para windows, tanto em ambiente
gráfico como texto (shell) é a mais segura e melhor ferramenta para acesso
remoto, altamente configurável.

Acesso remoto via ssh em ambiente gráfico, cliente windows utilizando -


Winscp - putty - Freenx - tutorial em
http://www.zago.eti.br/ssh/ssh-gui.html

FAQ, instalar, configurar, dicas e exemplos de uso do SSH em


http://www.zago.eti.br/ssh/ssh.txt

Arquivos de configuração podem ser editados e manipulados com simples


editor de texto, seja para fazer toda a configuração ou simples ajustes, pode
utilizar ferramentas como webmin e refinar os ajustes com seu editor de
texto preferido, pode copiar estes arquivos de outra instalação, portanto fique
à vontade para fazer a seu modo, veja mais dicas de como manipular
arquivos de configuração em
http://www.zago.eti.br/modelos/A-menu-modelos.html

6 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

Veja também na página principal sobre squid, tópico " Ferramentas de


configuração... ", manutenção via web.

Iniciar, parar, reiniciar, status


Parar, iniciar, reiniciar e carregar as novas alterações.

Verifique qual o comando para sua distro, são diferentes entre as distros,

Comandos comum na maioria das distro.

squid -k reconfigure Carregar alterações no squid.conf ou ACL, execute sempre


que fizer alterações no squid.conf ou ACL.

Parar o serviço, derrubar o Squid, prefira esta opção em lugar de


squid -k shutdown
outras semelhantes como "service squid stop" ou "rcsquid stop".

Segue alguns exemplos para Conectiva e SUSE.

Configurar para iniciar junto com o boot da maquina: chkconfig squid on

SUSE 10.1

rcsquid restart Reiniciar o serviço, evite esta opção, prefira squid -k reconfigure.

Conectiva 10

service squid restart - Reiniciar Squid, evite esta opção, prefira squid -k
reconfigure.

service squid start Iniciar Squid manualmente

squid -D iniciar sem testar DNS, pode usar no /etc/rc.d/rc.local.

Esta opção (-D) serve para não testar o DNS, deve ser usada quando a maquina
que roda o squid não está conectada na net no momento que inicia o squid e
portanto não como testar o DNS e resulta em erro, ocorre em conexões via
modem discado ou ADSL conectado via pppoe, quando tenta iniciar o squid antes
de conexão com a net ocorre o erro porque não tem como testar o DNS, organize
a inicialização de forma que o Squid seja iniciado depois de completar a conexão
com a internet, tente iniciar o squid via rc.local lembre de incluir a linha do Squid
depois da linha que conecta na net.

Caso ainda falhe, tente com esta:


squid -D z

7 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

service squid status conferir status, se está rodando ou não, retorna mensagem
semelhante a esta.

root@faqcl9# service squid status


squid inativo mas seus subsistemas trancados

Tenho detectado este problema principalmente após alterações nas configurações


do Squid, depois de "mexer e fuçar" nas configurações ele para de rodar ou passa
ter comportamento estranho, não grava logs, não inicia ou morre logo em seguida.

Tente resolver o problerma apagando o arquivo de pid do squid, localize squid.pid


e remova este arquivo, exemplo.

Localizar o processo, execute: find / -name squid.pid

Deverá retornar algo como:

/var/run/squid.pid

Matar o processo, execute: kill -9 /var/run/squid.pid

Caso não resolva, verifique se a maquina está conectada na internet, tente limpar
o cache, zerar os logs e outros procedimentos indicados em outros tópicos deste
documemnto.

Mais dicas sobre como iniciar serviços e acompanhar procesoss.

http://www.zago.eti.br/iniciar.txt
http://www.zago.eti.br/processos.txt

Logs, exemplos de comandos e filtros


Acompanhando os logs em tempo real

Acompanhe os logs em tempo real, enquanto eles são formados voce pode
acompanhar as entradas dos registros no log do Squid, execute:
tail -f /var/log/squid/access.log

Consulte também os log do sistema, veja o que disponível em /var/log.


ls -la /var/log/

tail -f /var/log/messages

Refinar a pesquisa, ideal em casos de muitos registros nos logs, para acompanhar
somente os registros da estação com IP 192.168.1.53, execute

8 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

tail -f /var/log/squid/access.log | grep 192.168.1.53

Substitua 192.168.1.53 por outro termo que deseja procurar, exemplo, exibir
somente os logs que contenha sexo em qualquer parte do registro.
tail -f /var/log/squid/access.log | grep sexo

Em lugar de sexo, use a palavra que deseja procurar, foto, msn, orkut, mail e
etc....

Para salvar o resultado deste filtro em arquivo, use os redirecionadores, exemplo


para salvar em arquivo /tpm/logteste.txt
tail -f /var/log/squid/access.log | grep sexo >> /tmp/logteste.txt

Alguns exemplos.

Exibir as ultimas 100 linhas e sair.


tail -100 /var/log/squid/access.log

Refinar o resultado, exibir somente o IP e a URL, exemplo;


tail -f /var/log/squid/access.log | awk '{print "IP="$3"\t URL="$7}'

Formato e exemplo de resultado:


IP=192.168.1.53 URL=http://www.zago.eti.br/log.txt

Exibir outros campos do Log, troque "IP="$3", pela coluna que deseja, altere IP
para o nome que deseja exibir e $3 pela coluna que deseja exibir, neste exemplo o
IP é a terceira coluna e a URL é a setima, para exibir IP e tipo de acesso que fica
na coluna 4 use:
tail -f /var/log/squid/access.log | awk '{print "IP="$3"\t CODIGO="$4}'

Formato e exemplo de resultado:

IP=192.168.1.53 CODIGO=TCP_MISS/200
IP=192.168.1.53 CODIGO=TCP_MISS/200

Com curingas pode acompanhar no mesmo console e simultaneamente diversos


arquivos de log, exemplos para abrir todos os arquivos que terminam com .log em
/var/log/squid
tail -F /var/log/squid/*.log

tail -f /var/log/squid/*.log

Com filtro por usuário, IP, URL ou outra opção registradas nos logs, use o grep
como neste exemplo;
tail -f /var/log/squid/*.log | grep 192.168.1.53

9 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

Abrir também o /var/log/messages, observe que tem um espaço separando os dois


endereços.
tail -f /var/log/squid/*.log /var/log/messages

tail -f /var/log/squid/*.log /var/log/messages | grep 192.168.1.53

Faça testes, modifique os exemplos acima, tente outras opções.

Veja mais sobre grep em:


http://www.zago.eti.br/grep.txt

Veja mais sobre awk em:


http://www.zago.eti.br/awk.txt

Saber o tamanho do cache, veja no squid.conf o caminho do cache, o local não é


padrão, portanto, procure na sua instalação, pode pegar o endereço no squid.conf,
procure pela linha semelhante a esta;
cache_dir ufs /var/cache/squid 100 16 256

Neste exemplo o cache está em /var/cache/squid , saber o tamanho, espaço


ocupado, execute; du -sh /var/cache/squid e o resultado deverá ser semelhante a
109M /var/cache/squid.

O local muda conforme a distro, script de instalação ou a gosto do administrador,


o mais comum é procurar pelo sub-diretório squid abaixo de /var/spool, neste
caso utilize o comando du -sh /var/spool/squid, ou localize o caminho correto,
navegue pelos diretórios, consulte o squid.conf, use o find e sua intuição...

Tem mais opções, inclusive como gerar gráficos individualizados, relatórios em


HTML via SARG e muitos outros recursos, veja mais sobre log e relatórios no
FAQ

http://www.zago.eti.br/squid/sarg.html

http://www.zago.eti.br/log.html

http://www.zago.eti.br/squid/log.txt

Mais ajuda e dicas de pesquisa


Help do Squid

/usr/sbin/squid -help

man squid

10 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

Ver com quais com quais flags o Squid foi compilado:

/usr/sbin/squid -v

Quando não entender a mensgem de erro porque está em ingles, utilize tradudores
como Altavista ou Google, se ainda não entendeu a mensagem, então coloque
parte dela na caixa de pesquisa do Google.

Explore o mecanismo de busca do Google, coloque na caixa de dialogo a


mensagem de erro ou parte dela, tente combinar a pesquisa para refinar os
resultados.

httptunnel, furos de bloqueio -


freeproxy, webproxy
Nas regras de bloqueio (ACL) inclua o bloqueio a estes endereços e as indicações
deles:

http://www.guardster.com/

http://proxy.amsistemas.com.br

http://www.proxy4free.com/index.html

http://www.the-cloak.com/anonymous-surfing-home.html
http://www.the-cloak.com/login.html

http://www.megaproxy.com/

http://www.freeproxy.com/

http://surfeasy.info/surfeasy/

http://www.publicproxyservers.com/page1.html

http://www.hopster.com/

Neste site tem um software que burla o proxy e firewall, não testei.

http://www.wproxy.com https://wproxy.com/

Caso teus usuários consiga acessa-los, atraves deles vão burlar o proxy e acessar
qualquer outro site na internet, vai anular totalmente as regras de bloqueio do teu
Squid, alguns tem software que instalam na estação para permitir o acesso e uso
deles mesmo com eles bloqueado nas regras do squid e firewall, parece ser

11 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

demais, ainda não detectei esta situação, como tudo é possivel, acho que a solução
é a constante vigilancia, analise dos logs e trafego, refinar as regras pra dificultar
ao maximo e nunca vacilar com a segurança e monitoramento.

Não tenho como listar todos aqui, mesmo porque não sei quais são, o ideal é
acompanhar os logs do squid, pelos relatorios do SARG fica muito mais fácil
descobrir acesso a sites estranhos e suspeitos, depois é só acrescentar na lista de
sites bloqueados.

Procure no google por httptunnel, anonimato e expressões semelhantes vai se


surpreender com o que tem disponivel para usuários criar problemas na tua rede e
burlar proxy ou firewall.

Firewall - regras Iptables -


redirecionamento

Exemplos de regras que redirecionam o trafego


Redirecionar todo o trafego da porta 80 para o Squid.

Forçar as estações passarem pelo proxy, precisa colocar uma regra no firewall pra
redirecionar todo o trafego da porta 80 para a porta 3128, o local de inserir a regra
também é muito importante, tem que ser antes da regra que faz nat para evitar
que as estações continue navegando sem passar pelo proxy, veja este exemplo:

modprobe iptable_nat
iptables -t nat -A PREROUTING -p tcp -m multiport -s 192.168.1.0/24 --dport 80,443 -j RED
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

Cuidado com a quebra de linha no seu browser, cliente de e-mail ou editor, no


exemplo acima esta parte:

iptables -t nat -A PREROUTING -p tcp -m multiport -s 192.168.1.0/24 --dport


80,443 -j REDIRECT --to-ports 3128

tem que ser uma única de linha, tem que ajustar para sua rede, neste exemplo
estou permitindo proxy pra toda a rede interna com IP 192.168.1.0/24, altere para
a sua classe de rede, ajuste também no squid.conf "acl minharede src
192.168.1.0/255.255.255.0" tem que ser da mesma classe de rede. Neste exemplo
192.168.1.0/24, todas as maquinas da rede permite alterações somente no ultimo
octeto 192.168.1.x, mantenha a mesma classe em todas as maquinas, nas
estações, no squid.conf e placa de rede interna do micro que compartilha a

12 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

conexão (firewall), o Squid pode rodar em outra maquina com IP da mesma


classe de rede.

As demais linhas no exemplo acima serve pra fazer NAT para os demais serviços
como ftp, cliente de e-mail e qualquer acesso à web sem ser pela navegação na
porta 80.

Cuidado com a segurança, o exemplo acima serve somente pra ilustrar onde
deverá ser colocada a regra de redirecionamento, aplique as suas regras de
firewall, qualquer problema altere posição da regra acima para o inicio do
firewall.

Excluir uma estação do redirecionamento - acessar


a net sem proxy
Qualquer excessão que queira fazer via iptables, tem que ser acrescentada no
firewall antes da regra que direciona o trafego pro Squid, o IPtables para a
execução do script (analize das regras) na primeira condição que for atendida. Pra
excluir um IP do redirecionamento pro Squid, a regra tem que estar no script do
firewall, antes da que redireciona o trafego pro Squid.

Esta regra redireciona todo o trafego da porta 80 para a porta 3128 do Squid.

/usr/sbin/iptables -t nat -A PREROUTING -p tcp -m multiport -s 192.168.1.0/24 --dport 80,443

Com a regra acima todas as estações todas as estações são forçadas a passar pelo
proxy pra alcançar a net, portanto submetendo às regras configuradas no Squid,
mas é possível manter o proxy para toda a rede e excluir algumas maquinas do
proxy, ficam sujeitas somente às regras de iptables.

Excluir somente uma estação, pode aplicar direto na regra de redirecionamento,


quando precisar excluir mais de uma maquina (IP), crie uma regra (linha abaixo)
para cada maquina, obrigatoriamente a ordem destas regras no script tem que ser
colocadas na posição antes da regra de redirecionamento, no exemplo a seguir
inclue a regra de redirecionamento para facilitar o entendimento, segue alguns
exemplos de regras para tirar do proxy as maquinas com final 42, 53 e 155,

/usr/sbin/iptables -t nat -A PREROUTING -i eth1 -s 192.168.1.42/32 -p tcp -m multiport --dpo


/usr/sbin/iptables -t nat -A PREROUTING -i eth1 -s 192.168.1.53/32 -p tcp -m multiport --dpo
/usr/sbin/iptables -t nat -A PREROUTING -i eth1 -s \! 192.168.1.155 -p tcp -m multiport --dp

Ou se preferir, outro formato com o mesmo resultado;

/usr/sbin/iptables -t nat -A PREROUTING -i eth1 -s 192.168.1.42/32 -p tcp -m multiport --dpo


/usr/sbin/iptables -t nat -A PREROUTING -i eth1 -s 192.168.1.53/32 -p tcp -m multiport --dpo
/usr/sbin/iptables -t nat -A PREROUTING -i eth1 -s 192.168.1.155/32 -p tcp -m multiport --dp
/usr/sbin/iptables -t nat -A PREROUTING -p tcp -m multiport -s 192.168.1.0/24 --dport 80,443

13 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

Onde eth1 é interface interna e 192.168.1.0 é toda a rede interna (clase de rede),
altere conforme sua rede.

Mais um exemplo;

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.32/32 -j MASQUERADE


iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.53/32 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.155/32 -j MASQUERADE

Ou também;

iptables -t nat -A POSTROUTING -s 192.168.1.53 -o ppp0 -j MASQUERADE


iptables -t nat -A POSTROUTING -s 192.168.1.53 -o eth0 -j MASQUERADE

A primeira linha é pra quem levanta a interface ppp0 e a segunda é pra quem levanta a eth0, n

No meu firewall utilizo esta regra para excluir do redirecionamento a maquina


com ip 192.168.1.53.
/usr/sbin/iptables -t nat -A PREROUTING -i eth1 -s \! 192.168.1.53 -p tcp -m
multiport --dport 80,443 -j REDIRECT --to-ports 3128

/usr/sbin/iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE

onde

eth0 = interface externa (que sai pra net)


eth1 = interface interna (rede interna)

Nestas estações não configure proxy no navegador, caso configure vai


passar pelo proxy como outra estação qualquer, quem usa mais de um
navegador, pode configurar um deles passando pelo proxy e outro não,
em ambiente de testes pode ser muito útil.

Confira se as regras de NAT estão ativas para os IP em questão, após a inclusão


das regras, execute o script de firewall e depois veja se os IP aparecem na
listagem do comando;
iptables -L -v -t nat

Configurando estações - Clientes do


proxy

Configurar clientes do proxy Squid


Estações que estão atrás de um servidor proxy, precisam de configuração especial
sobre a rede, além da configuração de rede na estação, IP, DNS, gateway e rota,
quando acessam a internet pelo proxy como Squid, precisam configurar os

14 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

navegadores e demais serviços que utilizam a porta 80 para acessar a internet pelo
proxy, brownser como Mozilla, konqueror, I.E tem opções de configuração do
proxy, procure no seu navegador pela opção de configurar o servidor proxy,
informe o IP e porta, onde IP é o IP do micro que roda o Squid e a porta em que
está ouvindo, normalmente é a 3128.

No Firewall deve ter uma regra redirecionando o trafego da porta 80 para a porta
3128, algo semelhante a estas regras.

modprobe iptable_nat
/usr/sbin/iptables -t nat -A PREROUTING -p tcp -m multiport -s 192.168.1.0/24 --dport 80,443
/usr/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forwardd

Quando falhar o acesso a FTP, acrescente as regras pra fazer NAT também de
FTP, são estas regras:

modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe iptable_nat

No firewall precisa carregar os modulos responsaveis pelo NAT de FTP, requer


no minimo estas regras e nesta ordem:

modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe iptable_nat
/usr/sbin/iptables -t nat -A PREROUTING -p tcp -m multiport -s 192.168.1.0/24 --dport 80,443
/usr/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

Agora faça um teste com o konqueror nas estações, na aba:

configurações
Configurar konqueror
Proxy
selecione usar proxy e configurações específicas manualmente, clique
em configurar, na linha FTP não preencha, deixe esta linha vazia e
não selecione a opção [] usar o mesmo servidor proxy para todos os
protocolos, o proxy Squid não controla a porta do ftp, portanto não
marque esta opção.

Teste com servidor de FTP externo, tente com servidores de ftp anonimo como a
unicamp, teste com este endereço

ftp://ftp.unicamp.br/pub/

Servidores de FTP que requer login, exemplo, atualizar sites, acrescente na URL o
login e senha, neste formato:

ftp://meulogin:minhasenha@www.zago.eti.br/

Configurar I.E, tente este caminho:

15 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

Em primeiro lugar por questões de segurança tente não usar I.E. tem muitas
recomendações de segurança indicando outros navegadores em lugar do I.E.

Quando o ping alcança a internet e o I.E. não navega, procure nas opções de
configurar para navegar por uma rede LAN, procure pelas opções de proxy e
informe o IP do servidor proxy e a porta. Com isto deverá navegar, caso falhe,
veja nas configurações de rede se tem o IP da mesma classe, gateway e DNS, veja
se o ping alcança o micro que compartilha a conexão, tente com outros
navegadores, com outros serviços de acesso à internet para tentar isolar o
problema.

Quando o I.E. navega mas não acessa sites de FTP e no micro que compartilha a
conexão carrega os modulos como indicado acima, outros navegadores acessa e
falha somente com I.E, então é problema de configuração do I.E. Na barra de
menu do internet explorer -> guia avançado no item "navegação" procure pelas
opções com referencia a FTP, desmarque ou marque a opção "Ativar o modo de
exibição de pastas para sites ftp". Tente acessar ftp, caso falhe inverta as opções,
vai tentando que a solução é nestes itens.

Configurar I.E direto no registro do windows, tópico em testes com win98 SE.

Faça testes antes de aplicar esta solução na rede, verifique em uma maquina se o
caminho confere, avalie e teste em uma maquina antes de aplicar em todas.

Crie um script com edit do DOS ou bloco de notas, como sugestão de nome
proxyon.reg com este conteúdo;

REGEDIT4

[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"ProxyEnable"=dword:00000001
"ProxyServer"="192.168.1.2:3128"
"ProxyOverride"="<local>"

No exemplo acima altere somente o IP 192.168.1.2 para o do seu servidor proxy,


as demais linhas não altere mantenha o REGEDIT4 como está, nome pode mudar
mas tem que terminar com .reg, no prompt do DOS execute;
regedit -s \\caminho\proxyon.reg

Desfazer a configuração, crie o proxyoff.reg com este conteúdo;

REGEDIT4

[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Internet Settings] "ProxyEnabl


"ProxyServer"=" "
"ProxyOverride"="<local>"

no prompt do DOS execute; regedit -s \\caminho\proxyoff.reg

Não precisa reiniciar Windows, precisa fechar todas as janelas do I.E. e abrir

16 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

novamente.

Não exibe a configuração em propriedades do navegador, fica tudo transparente.

Duplo clique sobre o arquivo tem o mesmo resultado, optei pelo exemplo acima
porque serve para executar na linha de comando (prompt do DOS), incluir no
logon script do Samba.

Considere incluir no iniciar, login script do Samba ou outro metodo de execução


automatica, com um servidor DHCP fornecendo IP e gateway, não precisa
configurar nada nas estações win98

wget, lynx e outros clientes sem config própria.


Alguns serviços como wget, lynx, e outros serviços que também acessam a net
pela porta 80 e não tem opção para configurar o proxy, eles utilizam a
configuração do sistema, a configuração de proxy é diferente, portanto precisa
configurar no sistema e não no serviço que vai usar, formato da linha de comando
para configurar proxy para wget, lynx e outros.
export http_proxy=http://ip.do.proxy:porta-do-proxy

Exemplo da linha de comando que libera estações para acesso à internet


compartilhada com proxy Squid, onde o servidor tem o IP 192.168.1.2 e todo o
trafego é redirecionado para a porta 3128, nos navegadores deve utilizar como
servidor proxy 192.168.1.2 porta 3128, para wget e lynx acessarem a internet
nesta mesma rede, o comando fica assim:
export http_proxy=http://192.168.1.2:3128

Ajuste o IP e porta para sua rede, 192.168.1.2 é meu gateway, IP da maquina que
roda Squid.

Após o comando, teste a navegação ou download, navegar com lynx, execute.


lynx http://www.zago.eti.br/comandos.txt

Donload com wget


wget http://www.zago.eti.br/comandos.txt

Use também a dupla "vi" + lynx, converte páginas da web para texto limpo
diretamente no editor "vi", aproveite e faça o teste, dentro do editor "vi" em modo
comando, cole esta linha:
:r !lynx -dump http://200.204.198.164/zago/comandos.txt

Ou importe este documento que voce está lendo, limpinho, sem nada de HTML

17 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

dentro do editor "vi".


:r !lynx -dump http://www.zago.eti.br/squid/dicas-e-truques.html

Esta configuração de proxy se perderá quando desligar a maquina, para tornar


permanente precisa incluir nos arquivos de configuração do sistema, pode
configurar para todos usuários da maquina ou somente para usuários específicos.

Configuração permanente e restrita a alguns usuários, insira a linha de comando


no .bash_profile dos usuários, basta editar o arquivo .bash_profile que fica no
home do usuário e acrescentar após a ultima linha:
export http_proxy=http://192.168.1.2:3128

Pronto, automatizado a execução desta linha no login do usuário.

Configurando para todos os logins nesta maquina, acrescente no final do arquivo


/etc/profile, use o um editor pra acrescentar a linha:
export http_proxy=http://192.168.1.2:3128

Ou da maneira mais simples:


echo "export http_proxy=http://192.168.1.2:3128" >> /etc/profile

A partir do próximo boot da maquina a configuração do proxy já vem


configurado para wget, lynx e demais serviços que pegam os dados do proxy na
variável de ambiente, quando optar pelo /etc/profile valerá para todos os usuários,
portanto não precisa incluir no .bash_profile dos usuários

apt-get, smart e proxy autenticado


APT-GET Somente pra maquinas atrás de proxy squid.... no CL basta copiar e
colar esta linha no shell:
echo 'Acquire::HTTP::proxy "http://192.168.1.2:3128";' >> /etc/apt/apt.conf

Ajuste o IP e porta para sua rede, 192.168.1.2 é meu gateway, IP da maquina que
roda Squid.

Não precisa fazer alterações no squid.

Fazer NAT também para FTP precisa incluir no firewall os modulos:

modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe iptable_nat

Com autenticação.

18 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

Com proxy autenticado, quando requer senha para acessar internet, precisa liberar
por usuário, pra informar login e senha, coloque no arquivo /etc/apt/apt.conf,
normalmente ele está vazio, caso não existir pode criar, dentro dele coloque a
linha neste formato:

Acquire::HTTP::proxy "http://usuario:senha@192.168.1.2:3128/;
Acquire::HTTP::proxy "http://zago:minhasenha@192.168.1.2:3128;

Variavel de ambiente.

Como variavel de ambiente, pra usar somente na sessão atual, precisa executar no
shell toda vez que for usar, pode digitar ou copiar e colar, colocar dentro de um
script, vale também colocar no .bashrc do root ou outro meio qualquer que possa
comandar a execução, precisa criar duas variáveis de ambiente, elas valem
somente até reiniciar a maquina, veja exemplo:

export ftp_proxy=http://usuario:senha@192.168.1.2.8:3128
export http_proxy=http://usuario:senha@192.168.1.2:3128

Pra conferir, ver o conteúdo da variavel:

echo $ftp_proxy
echo $http_proxy

Caso não funcione com apt-get, procure por proxy no FAQ sobre apt,
pesquise em
http://www.zago.eti.br/apt.txt

Veja também as regras de firewall que podem bloquear portas ou a


saida da conexão.

BitTorrent atrás de servidor proxy, procure por proxy neste FAQ:


http://www.zago.eti.br/bittorrent.txt

Smart - Veja exemplos no FAQ


http://www.zago.eti.br/smart-dicas.html
http://www.zago.eti.br/smart.txt

smart config --set http-proxy=<seu-proxy>

ACL - Manutenção
ACL - Manutenção, alterações nas ACL, incluir, excluir ou alterar palavras de
bloqueio e etc....

19 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

Acompanhe os logs ou relatorios do sarg, quando encontrar sites sendo


bloqueados ou liberados indevidamente basta fazer a correção no arquivo que
contém as palavras, use qualquer editor de texto puro, por exemplo "vim", após
salvar o arquivo, pra recarregar o squid execute:
squid -k reconfigure

ou
service squid reload

Não precisa parar e reiniciar o squid.

Pra muitas alterações, faça duas conexões via ssh, torne root, alterne entre os
terminais, um pra fazer alterações e outro para acompanhar os logs em tempo
real, execute:
tail -f /var/log/squid/access.log

Na outra conexão vá pro diretório /etc/squid, pra fazer alterações edite o arquivo
desejado, salve e recarregue o squid com (squid -k reconfigure), volte ao terminal
dos logs e continue acompanhado.

O ideal é editar o arquivo e acrescentar as palavras em ordem alfabetica, facilita a


organização e manutenção.

Zerar configurações, limpar cache

Limpar cache - reiniciar processo - solução de


problemas.
OBS. Dica para aplicar em instalação que parou de funcionar, Squid que não
inicia ou morre alguns segundos após iniciar, a provável causa pode ser algum
arquivo travado, erro no cache ou algum arquivo de dados, zerando estes
arquivos, volta à condição inicial como funcionava na instalação, esta dica não
resolve erros nem falhas de configuração ou hardware.

Agora tente parar e reiniciar o serviço, na maioria das vezes vai resolver o
problema, caso persista, então resta a força bruta (radicalismo), apague tudo e
recrie novamente, deve existir outras formas, utilizo a recurso acima quando falha
sigo a dica passada pelo Anderson andersonmsp@click21.com.br, em varios
casos que a opção acima falhou, a dica abaixo funcionou, tenho até um resumo no
final pra copiar e colar, veja que funciona na minha instalação do CL10, pode não
servir pra tua instalação que pode ter nomes de arquivos e diretórios diferentes,

20 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

procure pelo equivalente na sua instalação.

Tem que funcionar porque zera tudo, caso persista o problema, tente voltar a
copia de um squid.conf e ACL que funcionavam antes das alterações, verifique o
espaço em disco, hardware, processos e use a intuição pra descobrir a causa do
problema.

Antes de aplicar os procedimentos abaixo, pare todos os processos do squid,


verifique se ainda tem algum processo rodando

``ps -aux | grep squid ``

Para solucionar o problema, proceda assim:

remova o diretório /var/spool/squid rm -rf /var/spool/squid

recrie novamente mkdir squid

Libere a permissão chmod -R 777 squid

Copie os arquivos de log para outro diretório, mova ou renomeie, exemplo para
mover os logs para /tmp, execute:

mkdir /tmp/squidlog
mv /var/log/squid/* /tmp/squidlog

Caso não precise dos logs pode remover tudo que estiver em: /var/log/squid/
rm -rf /var/log/squid/*

Recrie o arquivo access.log


touch /var/log/squid/access.log

Libera geral ou seu modo:


chmod 777 access.log

inicie o squid, demora um pouco, deve voltar a funcionar normalmente, faça um


teste, veja o status.
service squid start

Ou em uma tacaca só, resumo dos comandos (copiar e colar), colinha do zago e
Anderson.

Neste exemplo, todos os logs serão movido para /tmp.

Instalação com cache em /var/spool/squid e log em /var/log/squid:

21 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

service squid stop


mkdir /tmp/squidlog-`date +%d.%b.%Y-%H-%M`
mv /var/log/squid/* /tmp/squidlog-`date +%d.%b.%Y-%H-%M`
rm -rf /var/spool/squid
mkdir /var/spool/squid
chmod -R 777 /var/spool/squid
rm -rf /var/log/squid/*
touch /var/log/squid/access.log
chmod 777 /var/log/squid/access.log
squid -z
service squid start

Instalação com cache em /var/cache/squid e log em /var/log/squid:

service squid stop


mkdir /tmp/squidlog-`date +%d.%b.%Y-%H-%M`
mv /var/log/squid/* /tmp/squidlog-`date +%d.%b.%Y-%H-%M`
rm -rf /var/log/squid/*
rm -rf /var/cache/squid
mkdir /var/cache/squid
touch /var/log/squid/access.log
chmod 777 /var/log/squid/access.log
chown proxy.proxy /var/cache/squid
chgrp proxy /var/cache/squid
chmod 777 /var/log/squid/access.log
chown proxy.proxy /var/log/squid/access.log
chgrp proxy /var/log/squid
squid -z
service squid start

Opção para zerar somente o cache, apagar e recriar somente o cache:

service squid stop


rm -rf /var/spool/squid/*
squid -z
service squid start

CUPS e servidor web interno


ACL para liberar acesso ao servidor web interno (CUPS, Apache e etc...).

Sempre que possível, mantenho um servidor web interno para disponibilizar


os pacotes mais utilizados, tais como OpenOffice, Firefox, ClamWIN e
outros pacotes que consomem muito download, mantenho este servidor
atualizado como um mirror, isto agiliza o download pelas estações e
economiza banda, veja em:
http://www.zago.eti.br/apache.txt

22 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

Liberar o acesso a este servidor e aos servidores CUPS (servidor de


impressão) precisa criar uma acl para liberar o acesso à maquinas da
rede interna, exemplo de acl para acrescentar no squid.conf:

acl ipinterno dst 192.168.1.0/24


http_access allow ipinterno all

Neste exemplo, libera todos os servidores interno para todas as


estações, servidores web, cups e etc.., caso queira liberar somente um
servidor, por exemplo, liberar somente o servidor web que está no IP
192.168.1.3:

acl ipinterno dst 192.168.1.3/32


http_access allow ipinterno all

Liberar o acesso a servidor CUPS, precisa incluir a porta 631 na "acl


Safe_ports ", exemplo no squid.conf que libera a porta 631:

acl Safe_ports port 80 21 443 563 631 70 210 1863 1025-65535

Não imprime com proxy habilitado no I.E. Estação com win98 não
imprime na impressora compartilhada pelo CUPS, quando habilita o
proxy no I.E perde a impressão, envia e nada acontece, removendo as
configurações de proxy a estação imprime sem problema algum.
Enquanto não descubro a solução estou contornando o problema com a
seguinte solução; deixe o I.E sem configurações de proxy e use o
Firefox com proxy configurado para navegar, desta forma a estação
imprime normalmente.

Remover comentarios do arquivo de


configuração
Limpar arquivo de configuração, retirar todos os comentarios e linhas em brando
do squid.conf, isto é opcional, mas é prático pra enviar o arquivo de configuração
para outras pessoas analizarem, as duas linhas de comando abaixo estão prontas
para copiar e colar, para evitar acidentes e subrescrever o squid.conf, faça cópia
para outro local, no exemplo abaixo, a primeira linha faz copia do squid.conf para
/tmp, a segunda limpa o arquivo e salva o resultado em /tmp/squid.conf-limpo.

cp /etc/squid/squid.conf /tmp/squid.conf-comentado
egrep -v "^#|^$" /tmp/squid.conf-comentado > /tmp/squid.conf-limpo

Comparar dois squid.conf e salvar as diferenças entre eles em /tmp/squidif (altere


o caminho e nome dos arquivos)

23 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

egrep -v "^#|^$" /etc/squid/squid.conf > /tmp/squid1


egrep -v "^#|^$" /etc/squid/squid.confori > /tmp/squid2
diff -y --suppress-common-lines /tmp/squid1 /tmp/squid2 | tr -d '\011' > /tmp/squiddif
less -Nis /tmp/squiddif

Controle de IP na rede
Controlar maquinas por IP pode não ser eficiente, quando os usuários
descobrirem que podem trocar o IP pra fugir das regras voce perderá o controle.

Uma solução é centralizar tudo em um servidor de DHCP pra fornecer o IP pras


estações, pra melhorar a eficiencia, amarre o IP ao MAC-ADRESS da placa de
rede, este servidor de DHCP pode ser configurado pra fornecer além do IP,
também o DNS e gateway da rede, isto poupa o trabalho de configuração das
estações e centraliza tudo em um só lugar, pra saber mais sobre DHCP veja:

http://www.zago.eti.br/dhcpd.txt
http://www.zago.eti.br/pluguse.txt

veja também regras de iptables pelo MAC-ADRESS em:


http://www.zago.eti.br/firewall/iptables-mac.txt

Bloqueio de Banners
Protegendo usuários com antivírus
Autenticando usuários
Controle de Banda
Usando ACLs externas
MAC Address
Tags da seção Access Control Lists
tipos de acl
Relatorios e muito mais, acesse:

http://www.linuxman.pro.br/squid/

Formato e manipulação de data no


log.
No inicio da linha de log do Squid aparece um numero semelhante a:
1085173079.594

Este numero representa a data e hora no formato Unix, converter para hora
humana, por exemplo, 1085173079.594, o que vem depois do ponto são milesimos
de sengundos que não interessa na data, mesmo porque não usamos este formato

24 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

de tempo, portanto elimine o ponto e o que vem depois dele, o formato da linha
de comando é este: date --date='1/1/1970 + <UNIXTIME> seconds', para converter a
data 1085173079.594, execute esta linha de comando:
date --date='1/1/1970 + 1085173079 seconds'

Veja o resultado:

zago@faqcl9$ date --date='1/1/1970 + 1085173079 seconds'


Sex Mai 21 20:57:59 UTC 2004

Caso ocorra uma diferença de 3 horas é problema com a configuração


do locale, no Brasil são 3 horas a menos do que o GMT, acerte isto nas
configurações de fuso horario.

Exemplo em perl, data 1085173079.594 no formato Linux (unix),


converter para o formato humano

perl -e "print scalar localtime(shift||1085173079.594)"

Retorna;
[zago@faqcl10 zago]$ perl -e "print scalar localtime(shift||1085173079.594)"
Fri May 21 20:57:59 2004

Veja mais sobre data no FAQ

http://www.zago.eti.br/data.txt

Problemas no acesso ao Hotmail +


I.E. + Squid.
Algumas estações windows não acessam o Hotmail, tem algo a ver com a versão
do I.E, outros navegadores como Firefox acessa sem prolemas, caso o problema
seja somente com I.E. pra acessar o Hotmail. então faça esta alteração no teu
squid.conf

Adicione no squid.conf as linhas:

acl hotmail_domains dstdomain .hotmail.msn.com


header_access Accept-Encoding deny hotmail_domains

recarregue o squid com: squid -k reconfigure

Prontinho, as estações windows com I.E. passam acessar o hotmail passando pelo
Squid.

25 de 26 06/08/2010 00:48
Squid - Dicas - script, modelos e comandos na manutenção de servido... http://www.zago.eti.br/squid/dicas-e-truques.html

Solução indicada pelo colega Andersonmsp@yahoo.com.br

Indicações:
Tirar anuncios atraves do squid,veja que legal
http://www.linuxdicas.com.br/article678.html

Página principal sobre Squid, indicações, FAQ, tutoriais, modelos de


configuração, squid.conf, modelos de acl e mais dicas em:
http://www.zago.eti.br/squid/A-menu-squid.html

Página principal sobre Firewall - iptables


http://www.zago.eti.br/firewall/A-menu-firewall.html

Página principal deste site (FAQ)


http://www.zago.eti.br/menu.html

26 de 26 06/08/2010 00:48

Potrebbero piacerti anche