Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Servidor proxy com Squid - Instalação e configuração
Linux user
rik_99
28/07/2012
Esse artigo é voltado para os iniciantes em TI, portanto, procurei escrevê-lo o mais didático possível para ajudar a galera. Tratando-se de uma pequena iniciação ao Squid.
[ Hits: 26723 ]
Conceito: 10.0   4 voto(s)4 voto(s)4 voto(s)4 voto(s)4 voto(s) + quero dar nota ao artigo

Instalação e configuração básica

O Squid, um servidor de Proxy, trabalha como saída principal da rede. Com isso, podemos centralizar nosso foco em segurança (políticas de acesso, autenticação, etc.) em uma única máquina.

O Squid trabalha com os principais protocolos da Internet, alguns deles são: HTTP, HTTPS, FTP.

O Squid é um Software Livre licenciado pela GPL, sua utilização pode nos trazer várias vantagens, como:
  • Autenticação;
  • Controle de acesso;
  • Cache;
  • Controle centralizado;
  • Registros de acesso, etc.

Ele também atua como Proxy transparente evitando que usuários "espertinhos" possam burlar o controle de acesso.

Bem, chega de teoria e vamos começar o trabalho. Este tutorial é voltado à distribuições baseadas no Debian.

O Squid é formado de um único pacote, o que torna sua instalação extremamente fácil:

# apt-get install squid

Depois que instalamos o Squid, vamos renomear o arquivo de configuração para criarmos um do zero:

# mv /etc/squid/squid.conf /etc/squid/squid.conf.orig
# pico /etc/squid/squid.conf


Vamos criar uma configuração básica no arquivo, adicionando as seguintes linhas:

http_port 3128
visible_hostname KORZOS

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 SSL_ports port 443 563
acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535
acl purge method PURGE
acl CONNECT method CONNECT

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

acl redelocal src 192.168.0.0/24

http_access allow localhost
http_access allow redelocal
http_access deny all


Depois, dê um:

# /etc/init.d/squid restart

...Que seu Squid já deve estar em pleno funcionamento.

Entendendo a configuração

Agora, precisamos descobrir para que serve cada uma destas linhas:
  • http_port 3128: Define em qual porta o Squid vai atuar, a porta default é a 3128, mas podemos definir qualquer outra porta.
  • visible_hostname KORZOS: Define o nome do servidor, lembre-se de substituir o "KORZOS" pelo nome do seu servidor.
  • acl all src 0.0.0.0/0.0.0.0: Esta linha cria uma ACL, uma política de acesso com nome "all" contendo qualquer IP.
  • acl localhost src 127.0.0.1/255.255.255.255: Aqui criamos uma ACL de nome "localhost" contendo localhost.
  • acl SSL_ports port 443 563: Cria a ACL contendo as portas que são utilizadas no protocolo HTTPS.
  • acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535: Cria a ACL contendo as portas de diversos protocolos conhecidos na Internet.
  • acl manager proto cache_object: Cria a ACL manager do tipo proto.
  • acl purge method PURGE : Cria a ACL manager do tipo method.
  • acl CONNECT method CONNECT: Cria a ACL CONNECT também do tipo method.
  • http_access allow manager localhost: Libera a ACL manager e localhost.
  • http_access deny manager : Bloqueia a ACL manager.
  • http_access allow purge localhost: Libera a ACL purge e localhost
  • http_access deny purge: Bloqueia a ACL purge.
  • http_access deny !Safe_ports: Esta linha se torna bastante interessante pelo uso da "!", pois ela bloqueia qualquer conexão que não contenha o conteúdo da ACL Safe_Ports.
  • http_access deny CONNECT !SSL_ports: Bloqueia qualquer conexão que não esteja no conteúdo da ACL SSL_ports.
  • acl redelocal src 192.168.0.0/24: Cria a ACL redelocal contendo a faixa de endereço da rede.
  • http_access allow localhost: Libera a ACL localhost.
  • http_access allow redelocal: Libera a ACL redelocal.
  • http_access deny all: Bloqueia a ACL all


Próxima página >>




Páginas do artigo
   1. Instalação e configuração básica
   2. Incorporando - Adicionando o cache
   3. Criando e entendendo as ACLs
   4. Configuração final

Outros artigos deste autor

Leitura recomendada

Comentários
[1] Comentário enviado por Thalysson S em 28/07/2012 - 12:03h:

Muito bom o artigo !


[2] Comentário enviado por tiago1 em 28/07/2012 - 12:38h:

Olá,

Você está explicando a instalação do pacote Squid, mas já existe o Squid3, mais recente. Esse mais antigo ainda pode ser usado?


[3] Comentário enviado por danniel-lara em 29/07/2012 - 11:17h:

bom esse artigo
Parabéns


[4] Comentário enviado por david fonseca em 29/07/2012 - 12:13h:

Muito bom , tirei varias duvidas com esse artigo,

uma outra duvida , 1 pc da minha rede quer estar liberado nao consegue conectar ao servidor de muonilne , o quer devo fazer?


[5] Comentário enviado por rik_99 em 30/07/2012 - 01:25h:

Thiago a respeito da versão do squid a mais usada atualmente é a 2.7 pela sua estabilidade, outras versões como a 3.0 ou 3.1 não são tão aplicáveis quando você precisa usar o patch do zph ou o tproxy, em breve irei postar outro artigo sobre o tproxy e zph. Resumindo, ao meu ver a verão 2.7 é a "melhor" ate o momento.


[6] Comentário enviado por rik_99 em 30/07/2012 - 01:28h:

David esse problema provavelmente é o seu firewall que deve estar segurando alguma coisa, precisamos de mais alguns detalhes para tentar lhe ajudar...


[7] Comentário enviado por rik_99 em 30/07/2012 - 01:30h:

Valeu pelo alógio Daniel, baaaaaaaa tchê bom saber que gostou..... rrsrrsrsrsrrsrsr


[8] Comentário enviado por rik_99 em 30/07/2012 - 01:31h:

Valeu Thalysson... obrigado!!!


[9] Comentário enviado por david fonseca em 30/07/2012 - 08:43h:


[6] Comentário enviado por rik_99 em 30/07/2012 - 01:28h:

David esse problema provavelmente é o seu firewall que deve estar segurando alguma coisa, precisamos de mais alguns detalhes para tentar lhe ajudar...


Certo , quais informações ?

tentei liberar a porta 44405 com o comando iptables -A FORWARD -p tcp --dport 44405 -j ACCEPT , quer teoricamente e a porta de comunicação do muonline
e coloquei o ip 10.75.0.254 ( estar fora da minha range dhcp ) para passar por fora do proxy

tem algum comando ou software quer mim mostre a porta quer o usuário esta tentando abri quando inicia o game?



[10] Comentário enviado por rik_99 em 30/07/2012 - 10:00h:

David você pode usar o tcpdump para analisar o trafego dessa máquina,
instalar:

# aptitude install tcpdump

Analisar trafego

# tcpdump -i interface host ip


[11] Comentário enviado por david fonseca em 30/07/2012 - 10:45h:


[10] Comentário enviado por rik_99 em 30/07/2012 - 10:00h:

David você pode usar o tcpdump para analisar o trafego dessa máquina,
instalar:

# aptitude install tcpdump

Analisar trafego

# tcpdump -i interface host ip


No caso teria quer fazer

tcpdump -i eth0 host 10.75.0.254

ou

tcpdump -i eth1 host 10.75.0.254

eth0 = INTERNET
eth1 = LAN


[12] Comentário enviado por rik_99 em 30/07/2012 - 14:42h:

David pode ser pela sua interface de lan mesmo.


[13] Comentário enviado por david fonseca em 30/07/2012 - 21:47h:


[12] Comentário enviado por rik_99 em 30/07/2012 - 14:42h:

David pode ser pela sua interface de lan mesmo.


Amigo deu isso

[root@SRVHOST ~]# tcpdump -i eth1 host 10.75.0.254
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
21:45:12.346894 IP 10.75.0.254.52084 > 10.75.0.0.domain: 37871+ A? onmu.zapto.org. (32)
21:45:12.441966 IP 10.75.0.0 > 10.75.0.254: ICMP 10.75.0.0 udp port domain unreachable, length 68
21:45:13.348596 IP 10.75.0.254.52084 > 10.75.0.0.domain: 37871+ A? onmu.zapto.org. (32)
21:45:13.348613 IP 10.75.0.0 > 10.75.0.254: ICMP 10.75.0.0 udp port domain unreachable, length 68
21:45:14.362685 IP 10.75.0.254.52084 > 10.75.0.0.domain: 37871+ A? onmu.zapto.org. (32)
21:45:14.362712 IP 10.75.0.0 > 10.75.0.254: ICMP 10.75.0.0 udp port domain unreachable, length 68
21:45:16.375128 IP 10.75.0.254.52084 > 10.75.0.0.domain: 37871+ A? onmu.zapto.org. (32)
21:45:16.375143 IP 10.75.0.0 > 10.75.0.254: ICMP 10.75.0.0 udp port domain unreachable, length 68
21:45:17.346682 arp who-has 10.75.0.254 tell 10.75.0.0
21:45:17.346894 arp reply 10.75.0.254 is-at e8:9a:8f:cc:b6:fe (oui Unknown)
21:45:20.384615 IP 10.75.0.254.52084 > 10.75.0.0.domain: 37871+ A? onmu.zapto.org. (32)
21:45:20.384630 IP 10.75.0.0 > 10.75.0.254: ICMP 10.75.0.0 udp port domain unreachable, length 68


obs: antes tinha dado um netstart -n no pc do usuario e disse q a porta era a 55903 , porem liberei no iptables e nada


[14] Comentário enviado por rik_99 em 31/07/2012 - 09:05h:

David muda o ip da máquina pra faixa da sua rede.... e vê o que o resultado do tcpdump, aqui ele so ta tentando uma conexão no dominio onmu, e esta mandando um broadcast nessa faixa 10.75.0.0 para saber quem o server dns, não sei como esta sua infra ai, qual dns vc colocou nessa máquina, existe algum dns nessa faixa? coloca o ip na faixa normal ai pra ver o que acontece e posta o resultado.


[15] Comentário enviado por david fonseca em 03/08/2012 - 17:27h:

Amigo muito obrigado , meu problema foi resolvido , o problema era quer eu estava colocando o " option domain-name-servers " da minha rede interna , depois quer mudei para o quer seu artigo mostra funcionou perfeito , muito obrigado


[16] Comentário enviado por marcelinoti em 09/08/2012 - 10:09h:

bom dia, galera alguem sabe me dizer qual a diferenca em configuracao do squid 2.7 e squid 3.1? pois estou usando Ubuntu Linux 12.04 serve com squid 3.1 tem hora que da alguns erros que me tira do serio. até mais....


[17] Comentário enviado por rik_99 em 09/08/2012 - 11:16h:

Marcelo pessoalmente não gosto do squid 3.1 pois não tem ou da um trabalho de outro mundo para você utilizar patch como o ZPH ou Tproxy, o squid 2.7 é tipo mãe de todos... estável e compatível com a maioria das "expansões" que você desejar usar com ele, mas já que você esta usando abre um topico la no forum pra gente poder te ajudar, posta as mensagens de erro ou o que esta acontecendo... :)


[18] Comentário enviado por rommelinux em 01/12/2012 - 20:18h:

Ótimo, ótimo, ótimo o artigo, gostaria de adicionar uma dica para aproveitar esse artigo e configurar o squid como transparente e lembrando que terá que configurar no iptables também pois a porta que o artigo utiliza é a 3128 segue abaixo a linha que deve ser alterada:

http_port 3128 transparent

E para as estações utilizarem o squid como gateway sem precisar configurar o proxy nos browser, deve ser executado esse comando do iptables, segue abaixo:

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

Só achei que seria bom adicionar essa informação ao artigo, se o proprietário se encomodar, perdão por favor, mas está de parabéns o artigo, só gostaria de ajudar mais aos nossos colegas mesmo.

Abs a todos e uma ótima noite!


[19] Comentário enviado por rik_99 em 01/12/2012 - 20:21h:

pow rommelinux vlw, na verdade eu esqueci de adicionar essa informação, hehehe
obrigado pelo elogio tbm, isso ajuda muito a incentivar o nosso trabalho...



Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.