Instalando e configurando Squid no CentOS 5.4

Publicado por José Bento em 20/02/2010

[ Hits: 45.223 ]

 


Instalando e configurando Squid no CentOS 5.4



Olá pessoal geek do Viva o Linux! Esse meu artigo não visa entrar em profundos detalhes nas ACLs do Squid e sim como instalar e configurar o Squid no CentOS 5.4. Uso essa versão do CentOS no momento como servidor, mas com certeza esse artigo também serve pra versões anteriores do sistema, embora seja sempre bom usarmos a versão mais atual.

Vamos instalar o Squid via yum:

# yum install squid

Ou via rpm:

# wget ftp://ftp.muug.mb.ca/mirror/centos/5.4/os/i386/CentOS/squid-2.6.STABLE21-3.el5.i386.rpm
# rpm -ivh squid-2.6.STABLE21-3.el5.i386.rpm

Agora vamos renomear o squid.conf, que está dentro da pasta /etc/squid, pra squid.conf.original:

# mv /etc/squid/squid.conf /etc/squid/squid.conf.original

Vamos copiar a configuração do squid.conf abaixo e colocar no squid.conf que iremos criar dentro da pasta /etc/squid/:

http_port 3128 transparent
# http_port 3128 transparent (caso seja transparente)
visible_hostname Servidor_Webproxy_squid
#client_netmask 255.255.255.0 (Desabilitando a máscara de rede, aparecerá o IP no access.log)

# Configurações de cache, dono, logs, errors
cache_effective_user squid
cache_effective_group squid
cache_mem 256 MB
cache_dir diskd /etc/squid/cache/1 1999 128 512 Q1=64 Q2=72
cache_access_log /etc/squid/logs/access.log
cache_log /etc/squid/logs/cache.log
cache_store_log /etc/squid/logs/store.log
error_directory /usr/share/squid/errors/Portuguese

# Atualização do cache
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
auth_param basic children 5
auth_param basic realm Internet Security Pisa
auth_param basic credentialsttl 1 hours
auth_param basic casesensitive off
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320

# ACL global e portas
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/255.255.255.255
acl SSL_ports port 443 563 # SSL, https, snews
acl Safe_ports port 80 8080 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 10000 # webmin
acl Safe_ports port 631 # cups
acl Safe_ports port 901 # samba
acl CONNECT method CONNECT

# ---- Cache do Windows Update ----
refresh_pattern windowsupdate.com/.*\.(cab|exe|dll|msi) 10080 100% 43200 reload-into-ims
refresh_pattern download.microsoft.com/.*\.(cab|exe|dll|msi) 10080 100% 43200 reload-into-ims
refresh_pattern www.microsoft.com/.*\.(cab|exe|dll|msi) 10080 100% 43200 reload-into-ims
refresh_pattern au.download.windowsupdate.com/.*\.(cab|exe|dll|msi) 4320 100% 43200 reload-into-ims

# Limitando a velocidade de download na rede a 50 kbps
acl limitando_download url_regex -i .exe$ .mp3$ .vqf$ .tar.gz$ .gz$ .rpm$ .rar$ .avi$ .mpeg$ .mpe$ .mpg$ .qt$ .ram$ .rm$ .iso$ .raw$ .wav$ .vqf$ .mov$
#acl ips_download_diretoria src "/etc/squid/ip_diretoria"
acl rede_de_trabalho url_regex -i 192.168.3.0/255.255.255.0
delay_pools 2
delay_class 1 2
delay_parameters 1 50000/50000 50000/50000
#delay_parameters 1 -1/-1 50000/50000 50000/50000
#delay_access 1 allow ips_download_diretoria
delay_access 1 allow limitando_download
#delay_class 2 2
#delay_parameters 2 15000/20000
delay_access 2 allow rede_de_trabalho


# ACL's da rede local
acl REDE_INTERNA src 192.168.3.0/255.255.255.0

# Validação das redes local
http_access allow REDE_INTERNA
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all
http_reply_access deny all !REDE_INTERNA
icp_access deny all !REDE_INTERNA

Criando a pasta /etc/squid/cache/1 do "cache_dir":

# cd /etc/squid
# mkdir -p /cache/1


Criando a pasta logs dentro da pasta /etc/squid/ e depois os arquivos access.log, cache.log e store.log:

# cd /etc/squid
# mkdir logs
# cd logs
# touch access.log
# touch store.log
# touch cache.log


Agora vamos dar as permissões necessárias às pastas do Squid e seu arquivos:

# chown squid:squid -R /etc/squid/logs/
# chown squid:squid -R /etc/squid/cache/


Criar o diretório de SWAP do Squid:

# squid -z

Depois desses passos até aqui, vamos iniciar o Squid:

# service squid start
ou
# /etc/init.d/squid/start

Pronto! Se você seguiu a risca esse documento sem nenhum problemas, seu servidor proxy Squid já estará no ar. Agora, se você teve algum problema para rodar o Squid, poste o erro aqui que farei de tudo pra arrumar uma solução.

Obs.: Não se esqueça de colocar as regras de redirecionamento do firewall iptables da porta 80 de navegação para a porta padrão do Squid, que é a 3128, conforme código abaixo:

#################
# HTTP e SQUID
#################
#
# Liberando a rede ao acesso a internet
#
iptables -A INPUT -s 192.168.3.0/24 -p tcp -m multiport --dport 80,3128 -m state --state NEW -j ACCEPT
iptables -A FORWARD -s 192.168.3.0/24 -p tcp -m multiport --dport 80,3128 -m state --state NEW -j ACCEPT
iptables -t nat -A PREROUTING -s 192.168.3.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -p tcp --dport 80 -o eth1 -j MASQUERADE # eth1 é a placa de rede do servidor que sai pra internet

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Picocom - Gravando dados enviados via USB pelo Arduino

Deletar kernel antigo para não aparecer no GRUB2

VM900M da gigabite X SuSE

O comando history

Mapeando unidade de rede entre Windows e Linux

  

Comentários
[1] Comentário enviado por leandrobrunoo em 26/02/2010 - 10:49h

fiz como diz a dica e deu esse erro

[email protected]:/etc/squid# service squid restart
* Restarting Squid HTTP proxy squid 2010/02/26 10:48:17| parseConfigFile: squid.conf:1 unrecognized: 'ss'
2010/02/26 10:48:17| parseConfigFile: squid.conf:2 unrecognized: 'rt'
FATAL: cache_dir /etc/squid/cache/1: (2) No such file or directory
Squid Cache (Version 2.7.STABLE3): Terminated abnormally.
CPU Usage: 0.010 seconds = 0.010 user + 0.000 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0
Aborted


[2] Comentário enviado por jose.freitas.rj em 26/02/2010 - 17:29h

leandrobrunoo, você criou a pasta cache/1 dentro da pasta /etc/squid com o comando mkdir -p cache/1
?
esse erro "FATAL: cache_dir /etc/squid/cache/1: (2) No such file or directory" esta´reclamando que não existe a pasta /1.
pra saber se tem erro no teu squid dê o comando squid -NCd1 que é vai te mostrar se tá legal ou não. pra sair desse comando, ctrl+c

abraços...

[3] Comentário enviado por xcyclops em 26/05/2010 - 11:48h

Olá José,
tudo bem?

Primeiramente gostaria de parabenizar pelo artigo, muito bom. "Simples" e objetivo!
Amigo, estou com a seguinte mensagem de "erro" pra mim:

chown: cannot access `/etc/squid/cache/': No such file or directory

Segue abaixo, o passo-a-passo de como fiz após configurar o squid.conf :

====>

[[email protected] squid]# cd /etc/squid
[[email protected] squid]# mkdir -p /cache/1
[[email protected] squid]# ls
cachemgr.conf icons mime.conf msntauth.conf squid.conf squid.conf.DEFAULT2
errors mib.txt mime.conf.default msntauth.conf.default squid.conf.default squid.conf.original
[[email protected] squid]# cd /cache/
[[email protected] cache]# ls
1
[[email protected] cache]# cd /etc/squid
[[email protected] squid]# mkdir logs
[[email protected] squid]# cd logs
[[email protected] logs]# touch access.log
[[email protected] logs]# touch store.log
[[email protected] logs]# touch cache.log
[[email protected] logs]# chown squid:squid -R /etc/squid/logs/
[[email protected] logs]# chown squid:squid -R /etc/squid/cache/
chown: cannot access `/etc/squid/cache/': No such file or directory
[[email protected] logs]# cd /etc/squid/
[[email protected] squid]# ls
cachemgr.conf icons mib.txt mime.conf.default msntauth.conf.default squid.conf.default squid.conf.original
errors logs mime.conf msntauth.conf squid.conf squid.conf.DEFAULT2
[[email protected] squid]# cd /cache/
[[email protected] cache]# ls
1
[[email protected] cache]#


<=====


O que poderia ser?

Obrigado.
Abraços,

xCyclops.

[4] Comentário enviado por xcyclops em 26/05/2010 - 12:28h

Olá amigo,
Descobri o problema...

o /cache estava no / do linux e não no /etc/squid/cache/

Com isso, move o /cache para o /etc/squid/cache/


Mas agora estou com outro problema:

[[email protected] squid]# /etc/init.d/squid start
Starting squid: /etc/init.d/squid: line 42: 3105 Aborted $SQUID $SQUID_OPTS >> /var/log/squid/squid.out 2>&1
[FAILED]
[[email protected] squid]# cat /var/log/squid/squid.out
FATAL: cache_dir /etc/squid/cache/1: (13) Permission denied
Squid Cache (Version 2.6.STABLE21): Terminated abnormally.
CPU Usage: 0.003 seconds = 0.001 user + 0.002 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0
WARNING: cache_dir /etc/squid/cache/1: (13) Permission denied
squid: ERROR: Could not read pid file
/var/run/squid.pid: (13) Permission denied
FATAL: cache_dir /etc/squid/cache/1: (13) Permission denied
Squid Cache (Version 2.6.STABLE21): Terminated abnormally.
CPU Usage: 0.003 seconds = 0.001 user + 0.002 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0
[[email protected] squid]#


Quando inicio o squid da o seguinte erro.
O que voce acha?

Abraços,
xCyclops.

[5] Comentário enviado por laranjeira em 20/07/2010 - 07:19h

Bom dia, estou com um problema meu squid não esta inicializando com este comando
[[email protected] logs]# /etc/init.d/squid start
init_cache_dir /etc/squid/cache/1... Iniciando squid: .....[FALHOU].......
[[email protected] logs]#
O grande detalhe e que o comando squid -z tambem não funcionou.

[ro[email protected] squid]# ls -n
total 440
drwxr-xr-x 3 23 23 4096 Jul 19 08:14 cache
-rw-r--r-- 1 0 23 419 Mar 31 04:46 cachemgr.conf
lrwxrwxrwx 1 0 0 31 Jul 19 07:59 errors -> /usr/share/squid/errors/English
lrwxrwxrwx 1 0 0 22 Jul 19 07:59 icons -> /usr/share/squid/icons
drwxr-xr-x 2 23 23 4096 Jul 19 08:15 logs
-rw-r--r-- 1 0 0 27733 Mar 31 04:46 mib.txt
-rw-r--r-- 1 0 0 11651 Mar 31 04:46 mime.conf
-rw-r--r-- 1 0 0 11651 Mar 31 04:46 mime.conf.default
-rw-r--r-- 1 0 0 421 Mar 31 04:46 msntauth.conf
-rw-r--r-- 1 0 0 421 Mar 31 04:46 msntauth.conf.default
-rw-r--r-- 1 0 0 2727 Jul 19 08:11 squid.conf
-rw-r--r-- 1 0 0 154887 Mar 31 04:46 squid.conf.default
-rw-r----- 1 0 23 154887 Mar 31 04:46 squid.conf.original

[[email protected] cache]# ls -n
total 8
drwxr-xr-x 2 0 0 4096 Jul 19 08:12 1

[[email protected] logs]# ls -n
total 12
-rw-r--r-- 1 23 23 0 Jul 19 08:15 access.log
-rw-r--r-- 1 23 23 0 Jul 19 08:15 cache.log
-rw-r--r-- 1 23 23 0 Jul 19 08:15 store.log

Assim esta meu squid, desde ja agradeço ajuda.



[6] Comentário enviado por rozenraurio em 01/10/2010 - 16:44h

Ola tenho 2 Duvida.
ola so como esta minha estrutura.
Eth0- 192.168.1.250-------> Link de ADSl
Eth1- 10.0.0.254-------->Rede local
outra coisa, nao sei onde eu coloco o

# Liberando a rede ao acesso a internet
#
iptables -A INPUT -s 192.168.1.0/24 -p tcp -m multiport --dport 80,3128 -m state --state NEW -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -p tcp -m multiport --dport 80,3128 -m state --state NEW -j ACCEPT
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -p tcp --dport 80 -o eth1 -j MASQUERADE
# eth1 é a placa de rede do servidor que sai pra internet.

sera q é em rc.local?

[7] Comentário enviado por jose.freitas.rj em 04/10/2010 - 10:19h

Caro rozenraurio, esses comandos você coloca no script de firewall do iptables. Se você não tiver 1 é melhor começar a pensar em ter. Aqui no VOL tem vários e ensina como fazer...

[8] Comentário enviado por joaquimnt em 29/03/2011 - 14:44h

Boa tarde caros,
Notei que ao executar o comando "chown squid:squid -R /etc/squid/cache/", me retornava uma mensagem de que o diretório não foi encontrado mesmo eu tendo executado antes o comando "mkdir -p /cache/1", então, eu executei "mkdir /etc/squid/cache", em sequida executei os comandos "mkdir -p /cache/1" e "chown squid:squid -R /etc/squid/cache/" novamente e pronto, rodou na maior tranquilidade. Não sei se isto pode ajudar vocês também.

[9] Comentário enviado por marcoscd em 27/07/2011 - 14:07h

a duvida e a seguinte
como fazer a configuração das placas de rede
uma placa de rede para adsl da nes
outra plca de rede que vou ligar no meu switch

como posso fazer a configuração desta duas placas de rede

obrigado
[email protected]

[10] Comentário enviado por jioday em 29/05/2014 - 14:39h

FATAL: auth_param basic program/usr/lib/squid/ncsa_auth: (2) No such file or directory
este é o erro que esta a mi dar dor de cabeça por em quanto.....



Contribuir com comentário