Instalando e configurando Squid no CentOS 5.4

Publicado por José Bento em 20/02/2010

[ Hits: 45.625 ]

 


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

Samba, saiba para que serve essa grande ferramenta do Linux

Compartilhando internet com controle de banda

Instalando o banco de dados Firebird no CentOS 5.3

Thunderbird no Debian Wheezy 7.8 64 bits

Tutorial DDNS over NAT

  

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

fiz como diz a dica e deu esse erro

root@bjcia:/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 :

====>

[root@fw-telsim squid]# cd /etc/squid
[root@fw-telsim squid]# mkdir -p /cache/1
[root@fw-telsim 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
[root@fw-telsim squid]# cd /cache/
[root@fw-telsim cache]# ls
1
[root@fw-telsim cache]# cd /etc/squid
[root@fw-telsim squid]# mkdir logs
[root@fw-telsim squid]# cd logs
[root@fw-telsim logs]# touch access.log
[root@fw-telsim logs]# touch store.log
[root@fw-telsim logs]# touch cache.log
[root@fw-telsim logs]# chown squid:squid -R /etc/squid/logs/
[root@fw-telsim logs]# chown squid:squid -R /etc/squid/cache/
chown: cannot access `/etc/squid/cache/': No such file or directory
[root@fw-telsim logs]# cd /etc/squid/
[root@fw-telsim 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
[root@fw-telsim squid]# cd /cache/
[root@fw-telsim cache]# ls
1
[root@fw-telsim 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:

[root@fw-telsim 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]
[root@fw-telsim 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
[root@fw-telsim 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
[root@localhost logs]# /etc/init.d/squid start
init_cache_dir /etc/squid/cache/1... Iniciando squid: .....[FALHOU].......
[root@localhost logs]#
O grande detalhe e que o comando squid -z tambem não funcionou.

[root@localhost 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

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

[root@localhost 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
marcoscd@gmail.com

[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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts