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.
Backup do squid.conf original:
# cp -v /etc/squid3/squid.conf /etc/squid3/squid.conf.BACKUP
Apagando o original:
# rm -v /etc/squid3/squid.conf
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
maximum_object_size 30000 KB
maximum_object_size_in_memory 40 KB
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
cache_mgr sudporte@viacom.net.br
memory_pools off
diskd_program /usr/lib/squid3/diskd
unlinkd_program /usr/lib/squid3/unlinkd
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern (cgi-bin|\?) 0 0% 0
refresh_pattern . 0 20% 4320
quick_abort_max 16 KB
quick_abort_pct 95
quick_abort_min 16 KB
request_header_max_size 20 KB
reply_header_max_size 20 KB
request_body_max_size 0 KB
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
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow vlan24
http_access allow vlan26
http_access allow vlan28
cache_mgr webmaster
mail_program mail
cache_effective_user proxy
cache_effective_group proxy
httpd_suppress_version_string off
visible_hostname zenhulk
error_directory /usr/share/squid3/errors/Portuguese/
Até aqui, se for utilizar proxy normal, esta é a base.
Se tiver usando
Slackware Linux, modifique as seguintes linhas do squid.conf:
De:
access_log /var/squid/logs/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
Para:
access_log /var/squid3/log/access.log squid
cache_log /var/squid3/logs/cache.log
cache_store_log /var/squid3/logs/store.log
pid_filename /var/squid3/logs/squid3.pid
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":
cache_effective_user proxy
cache_effective_group 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.
[1] Comentário enviado por
fernandofranco em 05/03/2009 - 19:17h:
uma pergunta para que o squid rode em modo de transparent, precisa complila ele como --enable-linux-netfilter ?
e uma coisa qual a diferença em instalar o squid pelo yum ou pelo rpm.
acredito que seja pq o rpm com a opcao --enable-linux-netfilter complila e o yum não? é isso
[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).
[4] Comentário enviado por
osirix em 07/03/2009 - 13:48h:
alguem poderia me explicar que erro seria esse
2009/01/30 04:40:12| httpAccept: FD 12: accept failure: (22) Invalid argument
2009/01/30 04:40:12| comm_old_accept: FD 12: (22) Invalid argument
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 . ^^
[5] Comentário enviado por
jucinaldo em 09/03/2009 - 10:50h:
cara manda o teu squid.conf!!!!!!!!!!
[6] Comentário enviado por
nemphilis em 10/03/2009 - 17:49h:
primeiro, verifique se o seu squid esta com o '--enable-linux-netfilter' ativado.
#squid -v
segundo, ali no squid.conf em http_port 3128 falta dizer que e transparente (pode ser o seu problema osirix), altere para:
http_port 3128 transparent
abracos.
[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
[8] Comentário enviado por
jucinaldo em 18/03/2009 - 11:16h:
Geraldo
Crie no squid.conf jundo das outras ACLs a acl da nova rede:
acl novarede src 192.168.1.0/24
Dai vc cria a permição para a nova rede junta as outra permições!
http_access allow novarede
dai vc salva o arquivo
e da o seguinte comanda para modifucar as regras do squido sem parar o serviço:
squid3 -k reconfigure
Abraços espero que ajude!
[9] Comentário enviado por
removido em 24/03/2009 - 20:34h:
O Squid3 e muito BALA! ++++
Flw
[10] Comentário enviado por
comfaa em 27/04/2009 - 10:45h:
tem como colocar ele autenticado mas quando seta-lo para Gateway ele ir direto pro Proxy ?
[11] Comentário enviado por
jucinaldo em 27/04/2009 - 11:17h:
cara squid em modo transparente não da pro por autenticação!!!
Valeu abraços!!
[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.
Obrigado mesmo.
[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
[14] Comentário enviado por
fernandofranco em 24/07/2009 - 09:15h:
amigo bom dia, coloque todo o suas regras de firewall, pro pessoal da uma olhada nelas.
blz
[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!
[16] Comentário enviado por
ngiongo em 16/03/2010 - 22:05h:
Ola,
Quero saber como faço para fazer o controle por mac address,um abraço
[17] Comentário enviado por
tatuape em 15/04/2010 - 01:27h:
Caro amigo... para fazer ele ter o controle por mac, primeiro vc deve verificar se a versão que tu usa ja esta configurada para usar. Veja exemplo:
Esta opção tem que está habilitada - --enable-arp-acl
# squid -v
Squid Cache: Version 2.6.STABLE2configure options: '--prefix=/usr' '--exec_prefix=/usr' '--bindir=/usr/sbin' '--sbindir=/usr/sbin' '--libexecdir=/usr/lib/squid' '--sysconfdir=/etc/squid' '--localstatedir=/var/spool/squid' '--datadir=/usr/share/squid' '--enable-async-io' '--with-pthreads' '--enable-storeio=ufs,aufs,diskd,null' '--enable-linux-netfilter' '--enable-linux-proxy' '--enable-arp-acl' '--enable-epoll' '--enable-removal-policies=lru,heap' '--enable-snmp' '--enable-delay-pools' '--enable-htcp' '--enable-cache-digests' '--enable-underscores' '--enable-referer-log' '--enable-useragent-log' '--enable-auth=basic,digest,ntlm' '--enable-carp' '--with-large-files' 'i386-debian-linux' 'build_alias=i386-debian-linux' 'host_alias=i386-debian-linux' 'target_alias=i386-debian-linux'
Estando configurada, é so colocar as ACL´s e definir suas permissões.
Espero ter ajudado.
[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
aqui é meu firewall
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A PREROUNTING -s 192.168.1.0/255.255.255.0 -p tcp --dport 80 -j REDIRECT --to-port 3128
aqui meu squid.conf
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.1.0/24 # RFC1918 possible internal network
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 localnet
http_access deny all
http_port 3128 transparent
visible_hostname amnet
hierarchy_stoplist cgi-bin ?
coredump_dir /usr/local/squid/var/cache
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
error_directory /usr/local/squid/share/errors/pt-br
[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
iface eth1 inet static #interface interna, para rede interna
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
Coloquei o ficheiro rc.local da seguinte forma:
------Inicio rc.local -----------
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
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!
alguem me ajude sff!
Obrigado
[20] Comentário enviado por
ericlobobr em 02/02/2011 - 01:58h:
vlw cara, tua confiruação foi um luiz pra mim "jucinaldo " fiz uns modificaçoes e deu certo
o funciona:
para UnsigneD se vc ainda prcisar
muda o ip pra o seu a minha
eth0=192.168.254.102
eth1=192.168.1.1
http_port 192.168.1.1:3128 transparent
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 512 MB
cache_swap_low 90
cache_swap_high 95
maximum_object_size 1500 MB
minimum_object_size 0 KB
maximum_object_size_in_memory 64 KB
cache_replacement_policy heap LFUDA
memory_replacement_policy heap GDSF
cache_dir ufs /var/spool/squid3 45000 32 256
cache_log /var/log/squid3/cache.log
cache_access_log /var/log/squid3/access.log squid
cache_store_log /var/log/squid3/store.log
pid_filename /var/log/squid3/squid3.pid
mime_table /usr/share/squid3/mime.conf
dns_nameservers 127.0.0.1
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern (cgi-bin|\?) 0 0% 0
refresh_pattern . 0 20% 4320
quick_abort_min -1 KB
quick_abort_pct 95
quick_abort_max 0 KB
quick_abort_pct 100%
negative_ttl 2 minutes
positive_dns_ttl 5 minutes
half_closed_clients off
read_timeout 60 seconds
pconn_timeout 120 seconds
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.1.1/32
acl rede src 192.168.1.0/32
acl SSL_ports port 443 563
acl Safe_ports port 21 25 43 53 70 80 110 210 280 443 488 563 587 591 777 5190
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
acl site dstdomain sinttel.com.br,mte.gov.br,caixa.gov.br,bb.com.br,itau.com.br,hsbc.com.br,santander.com.br,bancoreal.com.br,bradesco.com.br,unibanco.com.br
always_direct allow site
http_access allow localhost
http_access allow rede
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow vlan24
http_access allow all
cache_effective_user proxy
cache_effective_group proxy
visible_hostname nome do pc
cache_mgr sudporte@viacom.net.br
memory_pools off
forwarded_for off
error_directory /usr/share/squid3/errors/Portuguese/
ie_refresh on
detect_broken_pconn on
pipeline_prefetch on
diskd_program /usr/lib/squid3/diskd
unlinkd_program /usr/lib/squid3/unlinkd
request_header_max_size 20 KB
reply_header_max_size 20 KB
request_body_max_size 0 KB
cache_mgr webmaster
mail_program mail
[21] Comentário enviado por
jurjus em 13/04/2011 - 10:31h:
uma dúvida
tenho 2 placas de rede, sendo
eth0:10.10.10.0/24
eth1:192.168.1.0/24
pppo:(endereço VELOX)
Não estou sabendo como configurar, alguem pode me ajudar?
[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
qualquer coisa me add no skype
forte abraço.
nildo.ferreira
[23] Comentário enviado por
gnulinuxspirit 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