Configurar servidor proxy Squid (Ubuntu)

Este artigo tem por objetivo ensinar como configurar um servidor Squid com configurações mínimas para seu funcionamento adequado. Para isso temos que aprender o que é um servidor proxy Squid e como ele funciona para depois podermos configurá-lo.

[ Hits: 295.296 ]

Por: Racy Rassilan em 03/09/2009


Criando o arquivo de bloqueio no servidor



Este tópico só deve ser seguido se você desejar que o arquivo fique no servidor, do contrário pule para o próximo tópico.

Agora é hora de aprendermos como criar o arquivo que será utilizado pela nossa ACL de bloqueio para podermos começar a bloquear alguns sites.

1° passo:

Criar o arquivo com o nome e no diretório que você colocou dentro da ACL, que no nosso caso foi /etc/squid/proibidos/sites_proibidos. Para isso basta dar o comando:

# vim /etc/squid/proibidos/sites_proibidos

Então sera criado um arquivo vazio com este nome.

A estrutura do arquivo é muito importante para que ele seja um arquivo válido para o Squid. Ele só pode conter um site ou nome por linha, jamais coloque mais de um site por linha ou nome. Exemplo de arquivo com sites:

orkut
sexo
www.orkut.com
baixaki
www.baixaki.com.br

Note que no arquivo existe a palavra "orkut" e o endereço "www.orkut.com". Bem, o www.orkut.com serve para bloquear o acesso quando o pessoa digitar este endereço no browser, já o nome orkut server para impedir que ele pesquise sobre esse nome, nem mesmo no Google, evitando que com isso ele encontre um site que possibilite entrar no Orkut... Bom d+, não é? :D

2° passo:

Criado seu arquivo, basta salvá-lo.

Página anterior     Próxima página

Páginas do artigo
   1. Definição
   2. Configurando o servidor proxy Squid no servidor
   3. Criando o arquivo de bloqueio no servidor
   5. Finalização
Outros artigos deste autor

Configurando NFS + NIS (Ubuntu)

Configurar servidor PPPoE (Ubuntu)

Leitura recomendada

Mandriva 2006 - Configurando servidor proxy transparente completo

Corrigindo a falha "WARNING! Your cache is running out of filedescriptors" - Squid2.7STABLE9 Slackware 12

Instalando Squid a partir do código fonte

SQUID e as autenticações em NTLM e RADIUS

Autenticando Squid utilizando MySQL

  
Comentários
[1] Comentário enviado por lucasguara em 03/09/2009 - 16:22h

Olá parabéns pelo artigo estou com uma duvida talvez vc pode me ajudar to querendo instalar o squid e configurar aqui na minha rede tenho duas placas e rede na minha maquina a internet chega na eth1 e a rede interna e eth0 como faço para direcionar a internet pra eth0 rede interna ? e através de rota ou iptables estou começando agora

desde já obrigado

[2] Comentário enviado por nunesdutra em 03/09/2009 - 17:10h

Olá parabens pelo artigo.

Lucas voce pode direcionar a rede através do IPTABLES. a regra é essa aki:

iptables -v -t nat -I PREROUTING -i eth1 -p tcp --dport 80 -j ACCEPT

Qualquer duvida a mais poste aki!!!

[3] Comentário enviado por nox6000 em 03/09/2009 - 23:30h

Ola Lucassquara.

Olha como o amigo nunesdutra falou é simples vc compartilhar a internet, mas vou lher dar duas dicas que acredito que uma delas sera 100% perfeita para vc.

Primeira Dica:

Se o seu modem for roteado e já realiza a conexão com a internet sozinho
use esse codigo dentro do arquivo rc.local que fica no diretorio /etc

# Compartilha a Conexão

modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -eth1 -j MASQUERADE # note que eth1 é qual palca de rede esta conectada diretamente ao modem se for a eth0 troque por eth0 se for eth1 deixe eth1 lembrando que isso é para quando seu modem é roteado (Conecta sozinho).

# Abre para a rede local:
iptables -A INPUT -p tcp --syn -s 192.168.10.0/255.255.255.0 -j ACCEPT

# Fecha o resto da rede:
iptables -A INPUT -p tcp --syn -j DROP

exit 0

Feito isso basta salvar o arquivo. Então vc terar sua placa eth1 recebendo a internet do modem e liberando para a rede atraves da eth0.

Segunda Dica:
Caso seu modem não seja roteado siga um artigo da minha autoria que explica como fazer a confgiração de um discador PPPoE e compartilhar a internet

Artigo: http://www.vivaolinux.com.br/artigo/Configurar-servidor-PPPoE-(Ubuntu)?pagina=1

ATENÇÃO: Neste artigo a unica diferença é que eu não uso eth1 pra receber a internet do modem e liberar por eth0 e sim o inverso eth0 para eth1 e na hora de adicionar os comandos que fazem o compartilhamento eu não coloco nem eth0 nem eth1 e sim ppp0.

arquivo: rc.local que fica no diretorio /etc

# Compartilha a Conexão

modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -ppp0 -j MASQUERADE # note que agora eu utilisei ppp0, pois minha conexão é feita via ppp0.

# Abre para a rede local:
iptables -A INPUT -p tcp --syn -s 192.168.10.0/255.255.255.0 -j ACCEPT

# Fecha o resto da rede:
iptables -A INPUT -p tcp --syn -j DROP

exit 0


Leia o artigo que tenho certeza que vc ira conseguir e ficar muito feliz
Artigo: http://www.vivaolinux.com.br/artigo/Configurar-servidor-PPPoE-(Ubuntu)?pagina=1

[4] Comentário enviado por luizvieira em 04/09/2009 - 08:19h

Bom, artigo, conciso e objetivo!
Parabéns!
[ ]'s

[5] Comentário enviado por nox6000 em 04/09/2009 - 08:49h

Obrigado Luiz Vieira.

[6] Comentário enviado por fernandofranco em 04/09/2009 - 10:25h

meu squid está dando a seguinte mensagem : não suporta proxy transparent

alguem poderia me ajuda

[7] Comentário enviado por removido em 04/09/2009 - 10:46h

Alegria, alegria, olá como tá!

Como realmente saber se o servidor esta fazerndo cash efetivamente ? Quais comandos ? como testar a fundo um servidor recem instalado ?

[8] Comentário enviado por HelderC em 05/09/2009 - 00:43h

Pessoal, adorei o artigo, mas tenho duas dúvidas..
1- Para redirecionar a rede interna (eth0) da porta 80 para a porta 3128 (porta do squid) como faço?
2- Redirecionando para a porta 3128, todo acesso a sites passa pelo squid certo?

muito obrigado pela ajuda!

[9] Comentário enviado por removido em 08/09/2009 - 01:50h

Esse artigo mostra o squid e a configuração do mesmo de um forma simples e objetiva, muito bom. Parabéns nox6000.

@HelderC
Acho que a regra abaixo vai te ajudar, ela redireciona todo o tráfego gerado em eth0 com destino a porta 80 e manda para a porta 3128, que é a porta do squid. Não esquecendo antes de dar o comando modprobe iptable_nat.

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

[10] Comentário enviado por Marco André em 18/09/2009 - 16:07h

Muito bom o artigo. Como não tenho acesso a um servidor para testes, vou tentar implementar em máquinas virtuais.

[11] Comentário enviado por s.r.e.lan house em 23/10/2009 - 13:35h

Muito bom seu artigo estou tentando configurar o squid através dele só que estou esbarrando no terceiro tópico, não consigo salvar o arquivo bloqueio na pasta squid como você fez no artigo.

[12] Comentário enviado por nox6000 em 23/10/2009 - 13:50h

Ola s.r.e.lan house,

Para instalar configurar e etidar os arquivos de configuraçõs vc deve sempre
estar como super usuário "root" do contrario já mais conseguira editar e salvar
sempre surgira a mensagem dizendo que vc não tem permissão para tal.

[13] Comentário enviado por zelongatto em 03/02/2010 - 21:44h

parabens.. otimo artigo
obrigado

t+

[14] Comentário enviado por May_gyn em 07/04/2010 - 10:36h

Ola,

tentei utilizar esse código e não deu certo, minha máquina esta comunicando com o servidor do proxy, mas não esta tendo acesso a internet, porem meu servidor esta comunicando com a internet. Minha porta de entrada é a eth0 e de saida a eth1. O squid já esta configurado e mesmo desabilitando a passagem pelo proxy nao comunica com a internet...
Alguém poderia me ajudar...

Obrigada

[15] Comentário enviado por marcos.ths em 17/01/2011 - 22:13h

caro amigo, otimo o artigo... mas estou com um problema. qndo vejo o diretorio /etc/squid ele esta vazio ... não arquivo nenhum nem mesmo o squid.conf .

estou usando uma maquina virtual (VMWare Player) 512 mb de memoria e 20 gb de espaço ... ubuntu 10 ..

estou instalando o squid normamente não esta dando nehum erro.

se puder me ajudar fico grato.


obrigado

[16] Comentário enviado por souzarm em 26/07/2012 - 10:44h

Obrigado.


[17] Comentário enviado por epiros em 29/03/2013 - 21:44h

Parabéns pelo artigo me ajudou bastante !!!

[18] Comentário enviado por hepta em 18/07/2013 - 18:37h

Exelente artigo Racy Rassilan os meus parabéns.

Será que esta configuração também servirá para Ubuntu 12.04 LTS 64 / Ubuntu 12.04 LTS 64 Server?

Desculpem a questão de noob, mas é que sou de fato.


[19] Comentário enviado por hepta em 18/07/2013 - 18:40h


[15] Comentário enviado por marcos.ths em 17/01/2011 - 22:13h:

caro amigo, otimo o artigo... mas estou com um problema. qndo vejo o diretorio /etc/squid ele esta vazio ... não arquivo nenhum nem mesmo o squid.conf .

estou usando uma maquina virtual (VMWare Player) 512 mb de memoria e 20 gb de espaço ... ubuntu 10 ..

estou instalando o squid normamente não esta dando nehum erro.

se puder me ajudar fico grato.


obrigado


alguma razão em particular para estares a usar a versão 10?

[20] Comentário enviado por soluz em 06/08/2013 - 09:56h

Pessoal,

Preciso de ajuda sobre autenticar o Squid através da base LDAP do Windows Server 2012. Simplesmente não tenho sucesso ao tentar fazer o Squid autenticar através dos grupos do AD.

Segue meu squid.conf:

-----------

auth_param basic program /usr/lib/squid/ldap_auth -R -b "dc=dominio,dc=local" -D "cn=squid,cn=Users,dc=dominio,dc=local" -w "password" -f sAMAccountName=%s -h 192.168.0.1
auth_param basic children 5
auth_param basic realm Digite suas credenciais para acessar a internet
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
#
external_acl_type gruposad %LOGIN /usr/lib/squid/squid_ldap_group -R -b "dc=dominio,dc=local" -D "cn=squid,cn=Users,dc=dominio,dc=local" -w "password" -f "(&(objectclass=person)(sAMAccountName=%v)(merberof=cn=%a,cn=Users,dc=seap,dc=intranet))" -h 192.168.0.1
#
acl password proxy_auth REQUIRED
#
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl localnet src 192.168.0.0/24
#
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
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 Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
#
acl proxyadmins external gruposad proxy_adm
acl proxyusers external gruposad proxy_users
#
acl sites_sem_autenticacao dstdom_regex -i "/etc/squid/arquivos/sites_sem_autenticacao"
#
acl downloads_proibidos urlpath_regex -i "/etc/squid/arquivos/downloads_proibidos"
#acl downloads_permitidos urlpath_regex -i "/etc/squid/arquivos/downloads_permitidos"
#
acl palavras_proibidas url_regex -i "/etc/squid/arquivos/palavras_proibidas"
acl palavras_permitidas url_regex -i "/etc/squid/arquivos/palavras_permitidas"
#
acl sites_proibidos dstdom_regex -i "/etc/squid/arquivos/sites_proibidos"
#acl sites_permitidos dstdom_regex -i "/etc/squid/arquivos/sites_permitidos"
#
acl urls_proibidas url_regex -i "/etc/squid/arquivos/urls_proibidas"
#acl urls_permitidas url_regex -i "/etc/squid/arquivos/urls_permitidas"
#
http_access allow sites_sem_autenticacao
http_access allow proxyadmins
http_access allow palavras_permitidas
http_access deny downloads_proibidos
http_access deny palavras_proibidas
http_access deny sites_proibidos
http_access deny urls_proibidas
http_access allow password proxyusers
#
http_access allow manager localhost
http_access deny manager
#
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access allow localhost
#
http_access deny all
#
icp_access allow localnet
icp_access deny all
#
http_port 3128
#
hierarchy_stoplist cgi-bin ?
#
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
refresh_pattern . 0 20% 4320

-----------

[21] Comentário enviado por clemersonsantos em 22/04/2014 - 13:53h

Olá, eu segui o passo a passo mas meu proxy não libera o acesso a sites que sejam https, como faço para poder liberar? Desde já obrigado.

[22] Comentário enviado por DellOver em 07/08/2016 - 20:49h

nox6000 no caso que vc falou que vai direcionar a conexão de um eth para o outro, esse que vai receber a conexão tem que estar conectado a um switch ou pode ser outro roteador? Estou tentando fazer um rede com oque tenho em mãos no momento e encontro está dificuldade, qualquer ajuda é bem vinda!!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts