Este é meu primeiro artigo, espero que sirva para muitos que estão em busca da configuração base do Squid 3 + Iptables no Linux Debian 5 Lenny. O tema proposto também funciona para outras distros, como Slackware e Fedora. No artigo relato as diferenças de pastas configuração em tais distros.
Bem, antes de tudo vamos fazer a instalação do Squid 3. Vamos atualizar nossa lista de pacotes, utilizando um terminal, logue como usuário "root" ou utilize "sudo" antes de cada comando, sendo que neste caso seu usuário precisa ter privilégio no sudoers.
# apt-get update
Após concluída a tarefa, vamos instalar o pacote Squid 3:
# apt-get install squid3
Concluída esta tarefa, vamos a configuração do Squid.
O coração do Squid fica em /etc/squid3/squid.conf, onde vamos fazer o backup do mesmo e em seguida trabalhar suas configurações. Quando for abrir este arquivo, use seu editor de texto preferido, eu utilizo o vim, portanto substitua pelo que preferir.
Criando nossa configuração em um novo squid.conf (use seu editor preferido):
# vim /etc/squid3/squid.conf
Abrindo este novo arquivo, copie e cole este script e altere para suas características. Retire meus comentários se desejar:
##squid.conf
http_port 3128
cache_mem 1000 MB # Se seu servidor for dedicado, coloque neste valor a metade de sua memória RAM, do contrário use apenas 25%
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid3 45000 16 256 # Aqui é o tamanho máximo de sua cache, no meu caso é 45GB, estude sua necessidade e capacidade da partição /var
access_log /var/log/squid3/access.log squid
cache_log /var/log/squid3/cache.log
cache_store_log /var/log/squid3/store.log
pid_filename /var/log/squid3/squid3.pid # pid - mudamos para esta pasta para facilitar na identificação de problemas
mime_table /usr/share/squid3/mime.conf
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl vlan24 src 192.168.30.0/24 # Representa a sua rede e respectiva máscara de sub-rede
acl lan src 172.18.28.0/24 # Assim como neste exemplo, se você tiver mais de uma rede, deve ser expressada uma por uma
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 1863 # 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
As linhas abaixo, já postadas no script, são responsáveis pelo nome do usuário que o Squid usa para manipular os arquivos, neste exemplo usuário "proxy":
Obs.: Se você usa Debian não se preocupe e desconsidere este item, pois o Debian cria o usuário "proxy" por padrão. Porém se você usa outras distros e fez a instalação do binário ou outra fonte, deve seguir os seguintes passos:
Criar um usuário "proxy" ou outro nome se preferir, sendo que altere no squid.conf:
# useradd proxy
Dê propriedade à pasta de log do Squid para o usuário que você criou, no Debian e outras distros fica em /var/log/squid3/ e no Slackware /var/log/squid3/, daí você identifica onde fica em sua distro e:
# chown proxy.proxy /var/log/squid3/
ou # chown proxy.proxy /var/squid3/log/ (Slackware)
Se você estiver com dificuldades para encontrar esta pasta, basta criá-la com estas características e dar as permissões ao usuário criado e mudar o padrão do script squid.conf aqui postado.
# mkdir -p /var/log/squid3
E não esqueça da permissão após criar a pasta:
# chown proxy.proxy /var/log/squid3/
Se você for implementar um proxy transparente, deverá aplicar algumas configurações em seu script de firewall, assunto abordado na página seguinte.
[2] Comentário enviado por jucinaldo em 05/03/2009 - 22:10h
Cara vc usa Fedora como vi em seu Perfil. Vc pode baixar o pacote e intalar tanto por yum ou rpm -ivh, sendo quue a diferenca entre esta ´e s´o de que se precisar de alguma biblioteca ou alguma + o yum pode facilitar, dai com yu seria ## yum localinstall o_pacote, dai se ele n~ao instalar frescar com assinatura do pacote, basta fazer assim ### yum --nogpgcheck localinstall o_pacote o pacote rpm sao pre compilados ´e um abra´co...
valews!!
[3] Comentário enviado por andriopj em 06/03/2009 - 15:48h
caro fernandofranco
vc pode instalar pelo yum.
incrusive, o fedora 10, ja vem com squid instalado senao me engano.
contudo desinstale todos o squid que ja vem pre definido no fedora 10, e utilize o seguinte comando para instalar ele: yum install squid
todos os pacotes/blibliotecas serao instalados automaticamente, nas pasta padrao do squid.
logo logo, estou postando meu config, tou fazendo ele com a seguinte ideia: transparent, faca cache, tenha uma certa seguranca (ataques) mas nao bloqueia nada na rede (skype, msn, hotmail, web).
esse erro ai enche o meu cache.log em 5 minutos e deixa ele com uma tamanho de 2GB ai o meu squid trava.
eu uso squid-3.0-stable9
obrigado desde de ja . ^^
[7] Comentário enviado por geraldogof em 17/03/2009 - 21:01h
Parabéns Jucinaldo,
Ótima dica a sua me ajudou muito mesmo, mas aproveitando gostaria de implementar uma segunda sub-rede no meu servidor Debian. Por favor o que fazer para tal?
Abraço, Geraldo
[12] Comentário enviado por francisco.costa em 08/05/2009 - 21:54h
jucinaldo, muito obrigado por compartilhar seu conhecimento. Essa galera do VOL já me ajudou bastante. Espero um dia ter conhecimento suficiente pra ajudar alguém.
[13] Comentário enviado por bestmoor em 21/07/2009 - 21:36h
tenho um problema montei um Debian transparente mais nao consigo pingar para fora da rede ...mais nos navegadores estam navegando
ja aplicaquei os nats no iptables mais ainda nao funciona alguma dica ?
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -s 192.168.0.0/255.255.255.0 -p tcp --dport 80 -j REDIRECT --to-port 3128
[15] Comentário enviado por zarate.manaus em 18/01/2010 - 18:43h
quero saber como instalar e configurar o squid 3.0 para fazer um servidor de proxy e cache e criar uma lista de IPS poderao ter acesso a internet e por fim cadastrar todos os mesmo no meu servidor de rede.agradeço desde ja .Obrigado!
[18] Comentário enviado por merloata em 29/05/2010 - 17:29h
Boa tarde !!!
Estou com um problema aqui sou novo no ramo linux, estou com um problema aqui uso uma distribuição
do slackware 12 e ja instalei o squid 3.1 e funciona tudo normal so q somente com proxy ativo no windows
ja mudei tudo que tem q ser feito para rodar trasnparent e nada de funcionar ja rodei o firewall configurei o iptables
e nada de funcionar transparent...o q posso esta fazendo errado ??? vou colocar meu firewall aqui e meu squid a conf deles
[19] Comentário enviado por UnsigneD em 11/06/2010 - 14:27h
Ola!
Segui este tutorial de inicio ao fim, desde ja agredexo ao autor pelo excelente trabalho!
Mas estou com dificuldades...
Eu estou a configurar um proxy em ubuntu server 9.10 e estou a fazer os testes com windows xp a verificar se o proxy fica a funcionar ou nao, o servidor proxy tem duas placas de rede, tenho o squid.conf tal como esta neste post
o meu ficheiro das interfaces de rede esta desta forma:
auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp #interface externa ligada a internet
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 3128 -j ACCEPT
iptables -A FORWARD -p tcp --dport 80 -j REJECT
iptables -A FORWARD -p tcp --dport 1863 -j REJECT
iptables -A FORWARD -d loginnet.passport.com -j REJECT
iptables -A INPUT -p tcp --syn -j DROP
Ja tentei com o ficheiro firewall da seguinte forma:
#!bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -s 192.168.1.0/255.255.255.0 -p tcp --dport 80 -j REDIRECT --to-port 3128
e também não obtive sucesso...
e o que se passa é o seguinte, coloquei o windows XP com estas definiçoes na placa de rede:
ip: 192.168.1.2
netmask: 255.255.255.0
gateway: 192.168.1.1 (ip do servidor proxy, na eth1)
acedo ao internet explorer e coloco o proxy como 192.168.1.1 porta 3128 e tenho internet a funcionar (logo parto do principio que o proxy esta a funcionar correctamente), mas se retirar essa opção do proxy no internet explorer deixo de ter internet no windows xp, não sei o que se passa, ando as voltas com isto e não consigo resolver!
[22] Comentário enviado por nildopd em 04/07/2011 - 23:30h
AMIGAO jurjus ,boa noite.
Você já conseguiu resolver seu problema ? caso não, explica direitinho o que vc quer fazer e qual a versão linux q vc está pretendendo usar. vlw... abraço
[23] Comentário enviado por adrianoti10 em 03/05/2012 - 17:46h
Boa tarde, como faco para concertar esse erro, estou testando esse squid na minha maquina virtual.
FATAL: Bungled squid.conf line 6: cache_dir ufs /var/spool/squid3 128 16 256 # Aqui é o tamanho máximo de sua cache, no meu caso é 45GB, estude sua necessidade e capacidade da partição /var
Squid Cache (Version 3.1.19): Terminated abnormally.
CPU Usage: 0.008 seconds = 0.000 user + 0.008 sys
Maximum Resident Size: 14384 KB
Page faults with physical i/o: 0
[25] Comentário enviado por Roque em 26/08/2012 - 13:47h
Boas turma, estou com o mesmo problema do colega gnulinuxspirit instalei no Ubuntu em uma máquina virtual que é onde vai rodar o squid (Se bem que ainda não sei estou testando é capaz de deixar uma máquina para rodar o squid futuramente) mas enfim estou com a versão 12.04 Ubuntu e estou com o mesmo erro aí
atomick@server:/etc/init.d$ sudo squid3 start
FATAL: Bungled squid.conf line 6: cache_dir ufs /var/spool/squid3 1024 16 256 # Aqui é o tamanho máximo de sua cache, no meu caso é 45GB, estude sua necessidade e capacidade da partição /var
Squid Cache (Version 3.1.19): Terminated abnormally.
CPU Usage: 0.016 seconds = 0.016 user + 0.000 sys
Maximum Resident Size: 14912 KB
Page faults with physical i/o: 0
[26] Comentário enviado por bruno_proweb em 26/08/2012 - 16:31h
Brother você já viu se nao digitou uma letra em maiusculo na linha 6 ou esses erros que todos cometem de digitação?
Caso não seja isso pode ser também espaço em disco, da um df -h ai e veja como está a unidade em espaço livre...
[27] Comentário enviado por lelecomb em 28/11/2012 - 19:32h
brother, boa tarde. sou novissimo na questão linux, mas gostaria de aprender. qnd coloquei o meu squid pra rodar apresentou o seguinte erro:
2001/12/31 21:09:55| WARNING: (B) '::/0' is a subnetwork of (A) '::/0'
2001/12/31 21:09:55| WARNING: because of this '::/0' is ignored to keep splay tree searching predictable
2001/12/31 21:09:55| WARNING: You should probably remove '::/0' from the ACL named 'all'
2001/12/31 21:09:55| ERROR: '0.0.0.0/0.0.0.0' needs to be replaced by the term 'all'.
2001/12/31 21:09:55| SECURITY NOTICE: Overriding config setting. Using 'all' instead.
2001/12/31 21:09:55| strtokFile: /etc/squid/msn not found
2001/12/31 21:09:55| Warning: empty ACL: acl libera_msn url_regex "/etc/squid/msn"
2001/12/31 21:09:55| strtokFile: /etc/squid/ip_liberado not found
2001/12/31 21:09:55| Warning: empty ACL: acl ipliberado src "/etc/squid/ip_liberado"
2001/12/31 21:09:55| strtokFile: /etc/squid/sites_liberados not found
2001/12/31 21:09:55| Warning: empty ACL: acl sites_liberado url_regex "/etc/squid/sites_liberados"
2001/12/31 21:09:55| strtokFile: /etc/squid/negado not found
2001/12/31 21:09:55| Warning: empty ACL: acl noway url_regex "/etc/squid/negado"
2001/12/31 21:09:55| ERROR: Directive 'upgrade_http0.9' is obsolete.
2001/12/31 21:09:55| cache_cf.cc(381) parseOneConfigFile: squid.conf:177 unrecognized: 'broken_vary_encoding'
2001/12/31 21:09:55| ERROR: Directive 'extension_methods' is obsolete.
[28] Comentário enviado por lelecomb em 28/11/2012 - 19:34h
segue logo abaixo o meu script...
## DATA 28 de novembro de 2012
###################################
## PORTA DE ACESSO A INTERNET######
###################################
http_port 3128
###################################
## NOME DO SERVIDOR ###############
###################################
visible_hostname FACETEN
## indicam a partir de que percentagem do tamanho total
## cache o squid começa a apagar os arquivos
cache_swap_low 90
cache_swap_high 95
## Define o tamnho total do cache em disco - O endereço refere a
## que diretório se deseja utilizar como cache, seguido do tamanho
## máximo do cache no disco (em MB) e os dois últimos números da
## linha indicam a quantidade de pastas e subpastas que o Squid
## utilizará para se organizar ao gravar o cache
cache_dir ufs /var/spool/squid3/cache1 3000 16 256
cache_dir ufs /var/spool/squid3/cache2 3000 16 256
cache_dir ufs /var/spool/squid3/cache3 3000 16 256
cache_dir ufs /var/spool/squid3/cache4 3000 16 256
cache_dir ufs /var/spool/squid3/cache5 3000 16 256
cache_dir ufs /var/spool/squid3/cache6 3000 16 256
cache_dir ufs /var/spool/squid3/cache7 3000 16 256
cache_dir ufs /var/spool/squid3/cache8 3000 16 256
cache_dir ufs /var/spool/squid3/cache9 3000 16 256
cache_dir ufs /var/spool/squid3/cache10 3000 16 256
## caminho para onde devem ser exportados os logs que depois
## poderão ser analisados, manualmente, com com algum gerador
## de relatórios como o SARG
cache_access_log /var/log/squid3/access.log
#Converte as mensagens geradas pelo squid par o Português
error_directory /usr/share/squid3/errors/Portuguese
######################################
## PAGINA DE BLOQUEIO ################
######################################
error_directory /usr/share/squid3/errors/pt-br
[30] Comentário enviado por cgonzagaskill em 23/01/2014 - 17:43h
Olá Amigo,
Parabéns pelo post! Porém tenho um duvida preciso liberar acesso externo para um servidor de câmeras na minha rede interna, Meu servidor é debian 7.0 estou fazendo ppoe para um modem adsl em uma das placas de rede e uma outra placa de rede conectando ao switch para rede interna. além disso no servidor debian 7.0 rodo Dyndns e Squid.
Preciso abrir as portar via iptables e fazer o redicionamento do acesso externo das portas para o acesso do servidor interno de câmeras. É possível o caminho das pedras ?
[34] Comentário enviado por _Aprendiz_ em 28/12/2015 - 17:28h
Boa tarde pessoal. Estou com o mesmo problema citado pelo adrianoti10. segue abaixo erro e depois o meu squid.config.
================================= ERRO ======================================
root@ProxyDamare:/etc/squid3# squid3 -k reconfigure
FATAL: Bungled /etc/squid3/squid.conf line 6: cache_dir ufs /etc/squid3 45000 16 256 #Aqui é o tamanho
máximo de sua cache, no meu caso é 45GB, estude sua necessidade e capacidade da partição /var
Squid Cache (Version 3.4.8): Terminated abnormally.
CPU Usage: 0.016 seconds = 0.012 user + 0.004 sys
Maximum Resident Size: 34304 KB
Page faults with physical i/o: 0
##squid.conf
http_port 3128 transparent
cache_mem 256 MB # Se seu servidor for dedicado, coloque neste valor a metade de sua memória RAM, do contrário use apenas 25%
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/log/squid3 45000 16 256 #Aqui é o tamanho máximo de sua cache, no meu caso é 45GB, estude sua necessidade e capacidade da partição /var
access_log /var/log/squid3/access.log squid
cache_log /var/log/squid3/cache.log
cache_store_log /var/log/squid3/store.log
pid_filename /var/log/squid3/squid3.pid # pid - mudamos para esta pasta para facilitar na identificação de problemas
mime_table /usr/share/squid3/mime.conf
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl vlan24 src 192.168.5.0/24 # Representa a sua rede e respectiva máscara de sub-rede
#acl lan src 172.18.28.0/24 # Assim como neste exemplo, se você tiver mais de uma rede, deve ser expressada uma por uma
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 1863 # 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
[36] Comentário enviado por lemic em 25/10/2016 - 21:09h
Não tem o transparent mais, é intercept, mais num funciona no esquema do 2.7, vc tem que mudar sua vida toda por uma coisa que nem vale mais apena, tenta bloquear o terra pelo squid 3.3.8 ae, não funciona. Seu firewall tem de ser modificado, o squid.conf nem quem escreveu esta coisa caotica consegue explicar. LIXO