Squid configurado como proxy no Ubuntu Server

O artigo retrata a instalação do Squid para atuar como proxy em uma rede de computadores. Será descrito no artigo o passo a passo sobre como configurar este servidor e estabelecer sua rede de forma rápida e simples. Deparar com pequenos macetes que ajudam a manter a gerência da rede e controle, sem perder tempo em buscar novos procedimentos e erros que não ficam claros na sua instalação.

[ Hits: 70.794 ]

Por: Wesley de Toledo Costa em 10/07/2012


Passo I: Configuração e Instalação



Configurando as interfaces de rede

Partindo do pressuposto que o sistema operacional, no caso o Ubuntu Server 11, já esteja instalado. Verifique as placas de rede que foram reconhecidas:

sudo ifconfig

Exemplo:

eth0    Link encap:Ethernet HWaddr 00:0a:5e:65:a6:af
          inet addr:192.168.x.x Bcast:192.168.x.255 Mask:255.255.255.0
          inet6 addr: fe80::20a:5eff:fe65:a6af/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:288803 errors:0 dropped:0 overruns:0 frame:0
          TX packets:196541 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:325622713 (325.6 MB) TX bytes:28563856 (28.5 MB)
          Interrupt:19

lo       Link encap:Local Loopback
          inet addr:127.0.0.1 Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING MTU:16436 Metric:1
          RX packets:37 errors:0 dropped:0 overruns:0 frame:0
          TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:16972 (16.9 KB) TX bytes:16972 (16.9 KB)


Se não reconhecer a outra(s) placa(s) de rede. Use o seguinte comando para cada placa de rede que você instalou e não apareceu.

Exemplo:

sudo ifconfig eth1 up

Para verificar, use o ifconfig novamente:

sudo ifconfig

eth0    Link encap:Ethernet HWaddr 00:0a:5e:65:a6:af
          inet addr:192.168.x.x Bcast:192.168.x.255 Mask:255.255.255.0
          inet6 addr: fe80::20a:5eff:fe65:a6af/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:288803 errors:0 dropped:0 overruns:0 frame:0
          TX packets:196541 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:325622713 (325.6 MB) TX bytes:28563856 (28.5 MB)
          Interrupt:19

eth1    Link encap:Ethernet HWaddr 00:1e:c9:3e:0a:fe
          inet addr:192.168.y.y Bcast:192.168.y.255 Mask:255.255.255.0
          inet6 addr: fe80::21e:c9ff:fe3e:afe/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:187374 errors:0 dropped:0 overruns:0 frame:0
          TX packets:276611 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:26530616 (26.5 MB) TX bytes:315087701 (315.0 MB)
          Interrupt:18

lo       Link encap:Local Loopback
          inet addr:127.0.0.1 Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING MTU:16436 Metric:1
          RX packets:37 errors:0 dropped:0 overruns:0 frame:0
          TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:16972 (16.9 KB) TX bytes:16972 (16.9 KB)


Agora, configure suas interfaces de rede:

sudo vi /etc/network/interfaces

Obs.: O arquivo deverá ficar semelhante ao exemplo abaixo:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface

auto lo
iface lo inet loopback

# The primary network interface
auto eth0 eth1 #para subir as interfaces automaticamente no reboot e não precisar usar o comando sudo ifconfig “placa de rede” up


Exemplo:

iface eth0 inet static # configurar a saída de rede ( Seu IP Interno para um gateway ou IP Público)
address 192.168.x.x #IP de saída
netmask 255.255.255.0 #mascará padrão
network 192.168.x.0 # Inicio da rede
broadcast 192.168.x.255 # Fim da rede
gateway 192.168.x.x #gateway que sua rede aponta
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 8.8.8.8 # estou usando o DNS externo da Google

iface eth1 inet static #Placa de rede que irá controlar a rede interna
address 192.168.2.1 # IP desta placa
netmask 255.255.255.0 # Máscara padrão
network 192.168.2.0 # Inicio desta rede
broadcast 192.168.2.255 # Fim desta rede


Inserir DNS de seu Provedor:

sudo vi /etc/resolv.conf

Exemplo:

nameserver 8.8.8.8
nameserver 8.8.4.4


Reinicie as interfaces de rede:

sudo /etc/init.d/networking restart

Pode ser que dê uma mensagem de falha em uma das interfaces, mas não se preocupe (pelo menos neste momento, não).

Instalações necessárias

Atualize o sistema, antes de prosseguir, com o seguinte comando:

sudo apt-get update –y;apt-get upgrade –y

Instale alguns programas e bibliotecas que ajudarão a manipular o GNU/Linux:

sudo apt-get install gcc g++ mc openssh-server libnet-ssleay-perl libauthen-pam-perl líbio-pty-perl

Instale o Squid, utilizando o comando:

sudo apt-get install squid squid-common bind9

    Próxima página

Páginas do artigo
   1. Passo I: Configuração e Instalação
   2. Passo II: mão na massa
   3. Passo III: Script do firewall
   4. Passo IV: Finalizando com BIND
Outros artigos deste autor

Instalação, configuração do Samba e utilização de quota

Samba - Instalação e configuração descomplicada

Autenticar estação de trabalho GNU/Linux no Windows Server - Instalação e configuração do Centrify

Leitura recomendada

MaraDNS: Simples - Seguro - Robusto (parte 2)

Acessando o celular Siemens MC60 no Linux

Horário de verão brasileiro até 2038 (Atualização 2017)

Sou advogado e consegui instalar Certificado Digital para PJe

Atributos de arquivos no Linux

  
Comentários
[1] Comentário enviado por danniel-lara em 11/07/2012 - 09:05h

Parabéns pelo artigo muito bom mesmo

[2] Comentário enviado por andrefreire em 11/07/2012 - 10:40h

Wesley,

Acho que você se confundiu em algumas coisas.
1) A rede ALL deve ser qualquer rede que não a sua rede local ou seja 0/0.

2) Quando você permite o tráfego para sua rede local logo como primeira regra nada mais será bloqueado.

3) Na sua definição de redelocal faltou a máscara.

Sua regra funcionaria se fosse algo assim:

http_access allow redelocal !bloqueio

mais ainda assim eu faria algo do tipo:

acl all src 0/0

http_access deny !redelocal "o que não for rede local será bloqueado"
http_access allow redelocal !bloqueio "o que for rede local e não estiver em bloquei passa"
http_access deny all "outras redes serão bloqueadas"

Espero que não se chateie...

Grande abraço.

[3] Comentário enviado por toledocosta em 11/07/2012 - 11:56h


[2] Comentário enviado por andrefreire em 11/07/2012 - 10:40h:

Wesley,

Acho que você se confundiu em algumas coisas.
1) A rede ALL deve ser qualquer rede que não a sua rede local ou seja 0/0.

2) Quando você permite o tráfego para sua rede local logo como primeira regra nada mais será bloqueado.

3) Na sua definição de redelocal faltou a máscara.

Sua regra funcionaria se fosse algo assim:

http_access allow redelocal !bloqueio

mais ainda assim eu faria algo do tipo:

acl all src 0/0

http_access deny !redelocal "o que não for rede local será bloqueado"
http_access allow redelocal !bloqueio "o que for rede local e não estiver em bloquei passa"
http_access deny all "outras redes serão bloqueadas"

Espero que não se chateie...

Grande abraço.


Boa Tarde andrefreire.
Agradeço as considerações, claro este artigo foi desenvolvido de forma básica para deixar a rede funcionando, não inseri todas as formalidades e regras que usei em minha rede para não torna-lo extenso, mas considero suas observações cabiveis e excelentes.

Muito obrigado e ate mais...

[4] Comentário enviado por defabio em 11/07/2012 - 13:13h

Wesley,

poque colocar estes servers?

nameserver 8.8.8.8
nameserver 8.8.4.4

[5] Comentário enviado por johnnyb em 11/07/2012 - 15:04h


[4] Comentário enviado por defabio em 11/07/2012 - 13:13h:

Wesley,

poque colocar estes servers?

nameserver 8.8.8.8
nameserver 8.8.4.4


Amigo se vc colocar no squid e melhor bom eu particularmente prefiro la, Porque vc nao inclui o dhcp :D e muito melhor
e mais pratico do que vc fica setando ip nas maquinas :D e la tambem tem como coloca ip fixo :D

[6] Comentário enviado por dalveson em 11/07/2012 - 17:46h

Parabens pelo artigo, ajudara sem duvida nenhuma a muitos que tenham duvidas sobre o squid e o bind.
PS: como o colega andrefreire falou tem algumas regras que estao um pouco confusa, lembramos que o squid é top dow e ler as regras de cima para baixo, ou seja se vc liberar o acesso em uma regra, nao adianta tentar bloquear em outra que vem logo abaixo que nao dara certo.
Minha contribuição é apenas no metodo de organização das acls, por exemplo minhas acls safe_ports organizo assim com a finalidade de economizar espaço na leitura do meu arquivo:
acl SSL_ports port 443 563 873
acl Safe_ports port 80 21 443 70 210 280 488 591 777 631 873 901
a outra contribuição é com relação ao padrao dos arquivos que ficarao em cache no disco, eu prefiro usar aufs ao inves de ufs, pois o aufs é bem mais rapido a consulta no disco, ficaria assim:
cache_dir aufs /var/cache/squid 2048 64 128
no mais como ja frisei anteriormente o artigo está otimó, o mais importante vc já fez que é compartilhar o que vc sabe com os demais colegas da comunidade.
abraços

[7] Comentário enviado por glaubernicassio em 18/07/2012 - 15:03h

Preciso muito de uma ajuda.

E montei um linux com o samba e o squid (servidor proxy), mas depois disso existem alguns sites que não abrem como:

globo.com

yahoo.com.br

hotmail.com

Não sei o que fazer já fiz varias alterações no linux mas não resolve.SOCORRO!!!!

[8] Comentário enviado por toledocosta em 18/07/2012 - 15:30h


[7] Comentário enviado por glaubernicassio em 18/07/2012 - 15:03h:

Preciso muito de uma ajuda.

E montei um linux com o samba e o squid (servidor proxy), mas depois disso existem alguns sites que não abrem como:

globo.com

yahoo.com.br

hotmail.com

Não sei o que fazer já fiz varias alterações no linux mas não resolve.SOCORRO!!!!


Boa Tarde, glaubernicassio.
Você pode verificar no seu script de firewall se não tem nenhuma regra bloqueando esses sites ou portas de acesso. Se você criou um arquivo de palavras ou sites para bloquear de uma olhadinha nele também...
Se após isso ainda estiver bloaqueado poste mais detalhes....


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts