Anda di halaman 1dari 48

SOBRE PEDRO DELFINO

Pedro Delfino é o fundador do PROFISSIONAIS


LINUX (http://profissionaislinux.com.br) que tem
como principal objetivo formar novos profissio-
nais para atuar na área de administração de
servidores LINUX assim como soluções
opensource, é autor do E-tinet, (http://e-tinet.
com) um blog sobre soluções LINUX que já
ajudou milhares de leitores com seus Ebooks e
treinamentos On-line.

Utiliza Linux como ferramenta de trabalho a mais


de 14 anos, e a mais de 3 anos vem ajudando
milhares de pessoas a aprender Linux de forma
fácil e rápida, através de artigos em seu Blog.
SUMÁRIO
introdução.............................................................................................................................. 4
Onde colocar o servidor Proxy?............................................................................................. 6
Analisando o diagrama de rede para
implantação do servidor Proxy com Squid.......................................................................... 9
vantagens de usar um servidor proxy................................................................................. 13
Configuração básica do servidor proxy com squid...........................................................15
Configuração do Squid......................................................................................................... 22
Criando regras no squid.conf ..............................................................................................26
Criando regras com restrição de acesso no squid............................................................ 35
Como bloquear/liberar sites ................................................................................................41
COMO CRIAR UM SERVIDOR PROXY COM SQUID

INTRODUÇÃO

4
COMO CRIAR UM SERVIDOR PROXY COM SQUID

INTRODUÇÃO

Vamos começar vendo como configurar um servidor proxy com Squid.

Você pode achar mais informação no squid-cache.org, que é simplesmente o principal


servidor de Proxy que roda hoje sobre Linux.

Quando você ouvir alguém falar sobre proxy com Linux, com certeza a pessoa que está
falando estará se referindo ao Squid.

Um servidor proxy é uma das principais dúvidas do pessoal que começa a trabalhar com
Linux, pois é um serviço muito solicitado nas empresas.

Toda empresa que tem mais de 3 funcionários, vai precisar de um proxy. Pois hoje controlar
a banda e controlar o acesso dos usuários é um assunto bem importante, principalmente por
questões de segurança.

5
COMO CRIAR UM SERVIDOR PROXY COM SQUID

ONDE COLOCAR
O SERVIDOR
PROXY?

6
COMO CRIAR UM SERVIDOR PROXY COM SQUID

ONDE COLOCAR O SERVIDOR PROXY?

É sem dúvida uma das principais


perguntas.

Surgem várias questões sobre qual o


melhor local da rede para instalar um
proxy, são perguntas do tipo:

Onde colocar o cabo da internet?


Onde colocar o cabo da interface de
rede interna?

E minha sugestão é o você observar o


diagrama ao lado:

7
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Talvez esta seja a parte mais importante de criar o seu servidor proxy, pois se você
errar na parte lógica da rede, pode ser um erro fatal para a segurança das suas
informações, se não definir muito bem isso com certeza terá problemas com uso
indevido da internet.

8
COMO CRIAR UM SERVIDOR PROXY COM SQUID

ANALISANDO O
DIAGRAMA DE REDE
PARA IMPLANTAÇÃO
DO SERVIDOR PROXY
COM SQUID

9
COMO CRIAR UM SERVIDOR PROXY COM SQUID

ANALISANDO O DIAGRAMA DE REDE


PARA IMPLANTAÇÃO DO SERVIDOR
PROXY COM SQUID

Então vamos analisar um pouco mais


esse diagrama.

Temos aqui o Servidor Proxy, que tem


duas placas de rede.

Uma pergunta que sempre surge:

Tem como fazer com uma única placa


de rede? A Resposta é: Sim, mas não
vai ficar igual, é 100% recomendado o
uso de duas placas de rede.

A primeira placa de rede chamamos de


eth0, irei chamar ela de internet, nessa
placa vamos ligar um cabo de rede até
o nosso modem de internet, conforme
o diagrama.

10
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Já na rede interna (rede eth1), você vai precisar coloca-la no endereçamento


interno da sua rede. Em nosso diagrama de exemplo, você pode observar que temos dois
computadores, dois clientes. Inclusive eu trouxe esses dois clientes justamente para um teste,
podemos por exemplo rodar um cliente do proxy com Linux e no outro Windows.

Vamos acessar a internet passando pelo proxy, utilizando esse dois cliente na nossa rede de
exemplo.

O Endereço interno do meu proxy é o IP: 10.10.10.1 e na Máscara 255.255.255.0 classe C de


rede. Sua rede não precisa necessariamente ser igual.

Então essa é a infraestrutura necessária para se montar um proxy de internet.

11
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Uma pergunta que pode estar em sua cabeça agora:


“Mas se eu pegar o cabo de rede do modem de internet, e ligar direto no switch da rede, vai
funcionar?:

Sim, vai funcionar, mas você terá um problema sério de segurança, por que um dos clientes
pode simplesmente descobrir qual o endereçamento IP do seu modem, configurar a rota dele,
e acessar sua internet sem passar pelo proxy.

E desta forma que estamos vendo no diagrama, os dois clientes não tem outra forma de aces-
sar a internet a não ser que seja passando pelo proxy.

Essa é a principal dica de você começar sua infraestrutura de rede para trabalhar com proxy.

12
COMO CRIAR UM SERVIDOR PROXY COM SQUID

VANTAGENS DE
USAR UM
SERVIDOR PROXY

13
COMO CRIAR UM SERVIDOR PROXY COM SQUID

VANTAGENS DE USAR UM SERVIDOR PROXY

-Restrições de acesso
-Baseada em horário
-Login
-Endereço IP da máquina, etc.
-Bloquear páginas com conteúdo indesejado
-Funciona como um cache de páginas já acessadas.
-Economia de banda de internet, tornando o acesso mais rápido como o uso do cache.
-Pode servir como cache de arquivos: Exemplo: Atualização do Windows Update,
Downloads, pacotes do apt-get
-Podemos usar o Sarg como gerador de relatórios, para gerar arquivos html com os
acessos feitos pelo Squid.
-Podemos usar proxy transparente, é muito parecido com o compartilhamento via nat,
mas com o squid trabalhando como cache.

14
COMO CRIAR UM SERVIDOR PROXY COM SQUID

CONFIGURAÇÃO
BÁSICA DO
SERVIDOR PROXY
COM SQUID

15
COMO CRIAR UM SERVIDOR PROXY COM SQUID

CONFIGURAÇÃO BÁSICA DO SERVIDOR PROXY COM SQUID

Infraestrutura básica para implantação do servidor proxy


Essa configuração é para quem já sabe fazer a instalação de um servidor Linux, pois eu
vou simplesmente entrar na configuração do servidor squid.

Não vamos tratar aqui, assuntos como instalar pacotes, particionamentos e sim vamos
tratar aqui a instalação e configuração deste servidor proxy com squid.

16
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Voltando ao diagrama de rede, para


entender melhor, irei descrever um
poucos os 3 computadores rodando
nessa rede, sendo 1 o servidor proxy
com squid, e 2 clientes da rede, que
podem ser um computador com
Linux ou Windows.

17
COMO CRIAR UM SERVIDOR PROXY COM SQUID

O primeiro servidor proxy tem o IP interno 10.10.10.1, ele já tem o IP externo que está
utilizando para acessar a internet.

18
COMO CRIAR UM SERVIDOR PROXY COM SQUID

O meu segundo computador, que é um


dos dois computadores ligados ao meu
switch, tem o IP 10.10.10.113, ele está
rodando o Ubuntu.

Depois temos ainda o cliente 3, que está


rodando Windows 7 com o endereço IP
10.10.10.114

19
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Instalação do squid

Para fazer a instalação do squid, vamos usar o comando abaixo.

#apt-get install squid3

20
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Com este comando, acabamos de fazer a instalação do nosso servidor squid, que está
na versão 3.

É somente este comando para instalar o squid. Toda sua configuração está inserida
dentro do diretório /etc/squid3

21
COMO CRIAR UM SERVIDOR PROXY COM SQUID

CONFIGURAÇÃO
DO SQUID

22
COMO CRIAR UM SERVIDOR PROXY COM SQUID

CONFIGURAÇÃO DO SQUID

E o arquivo principal da configuração, é o arquivo squid.conf (não se assuste, mas é um


arquivo muito extenso, pois ele tem vários comentários e várias configurações).

Nesse arquivo, você tem por exemplo a configuração do tamanho do cache, onde o
cache vai ser guardado, o tipo de autenticação, etc.

23
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Edite o arquivo de configuração, squid.conf assim:

# vim/etc/squid3/squid.conf

E encontre a linha abaixo dentro do arquivo:

http_access allow localhost

Conforme imagem abaixo:

24
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Abaixo dessa linha, colocaremos nossas regras do squid.

E quais são as essas regras?

Primeiramente eu irei liberar a minha rede para acessar pelo proxy.

Então meu objetivo agora é liberar a internet para aqueles dois computadores da minha
rede.

25
COMO CRIAR UM SERVIDOR PROXY COM SQUID

CRIANDO REGRAS
NO SQUID.CONF

26
COMO CRIAR UM SERVIDOR PROXY COM SQUID

CRIANDO REGRAS NO SQUID.CONF

Agora que você já sabe onde vamos inserir nossas regras de configuração vamos iniciar.

# vim/etc/squid3/squid.conf

Então primeiro você irá criar uma acl, e dizer do que se trata, em nosso exemplo abaixo
está tratando do endereçamento IP com origem dos computadores, ou seja, da minha
rede interna, conforme abaixo:

acl rede_interna src 10.10.10.0/24

27
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Já com o a linha abaixo, iniciando um http_access, iremos ativar ou desativar essa nova acl
criada acima, irei dizer o que para o squid o que ele deve fazer com essa nova acl.

Eu poderia negar ou poderia liberar. Nesse caso estou liberando, conforme abaixo:

http_access allow rede_interna

OBS: colocar essa liberação da rede interna acima da entrada do http_access deny
all

Com isso eu já tenho a configuração do meu squid concluída, já consigo liberar internet
para os computadores da minha rede interna.

Agora preciso apenas fechar meu arquivo e já salvar essa configuração do squid.conf.

28
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Próximo passo é inicializar o serviço do squid, assim:

# /etc/init.d/squid3 restart
Ao reiniciar o serviço do squid com esse processo acima, o sistema derruba o squid e inicia
o serviço novamente, então se tiver muitos usuários acessando a internet pelo squid neste
momento, esse usuários irão sentir que a internet vai cair e voltar rapidamente.

Com este tipo de restart do squid, estamos parando o serviço que estabiliza e guarda todos
os caches que estão em memória ram, e precisamos aguardar que o serviço do squid grave
esses caches em disco, por isso esse processo poderá demorar um pouco dependendo da
quantidade de acessos simultâneos.

29
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Agora já posso ir no computador do meu cliente e tentar


acessar a um site qualquer, e você já irá perceber que agora
está carregando o site normalmente. Iso para ambos os
clientes, tanto utilizando o Linux como Windows.

Se você quiser saber onde estão os logs do squid, é só


digitar:

# cd /var/log/squid3

30
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Dentro do diretório /var/log/squid3 você vai encontrar


vários logs, o log de acesso do proxy está no arquivo access.
log, digite assim:

# cd /var/log/squid3
# tail -f access.log

Neste arquivo podemos ver exatamente o que seus clientes


estão tentando acessar neste momento, inclusive com o
endereço do computador cliente.

Então essa é a configuração mais básica para colocar um


proxy rodando em sua rede, funcionando como cache.

31
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Claro que aqui não estamos fazendo nenhum tipo de restrição de acesso, mas você já
tem aqui a facilidade de ter um cache na sua rede.

Voltando para o console, irei utilizar as teclas ctrl+c para sair desse log, vou entrar
novamente no squid.conf e procurar minhas regras, irei pesquisar por #regras dentro do
arquivo utilizando o editor vim, assim:

# vim/etc/squid3/squid.conf

32
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Dentro do vim, eu uso a opção abaixo para fazer a pesquisa.

ESC + : + /regras

33
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Irei fazer alguns comentários no arquivo, assim: #libera rede interna

Com essas duas regras, a acl e http_access, liberaram a rede interna através do
meu proxy, conforme já analisamos acima.

34
COMO CRIAR UM SERVIDOR PROXY COM SQUID

CRIANDO REGRAS
COM RESTRIÇÃO
DE ACESSO NO
SQUID

35
COMO CRIAR UM SERVIDOR PROXY COM SQUID

CRIANDO REGRAS COM RESTRIÇÃO DE ACESSO NO SQUID

Nós já temos o servidor proxy rodando como o squid, e os dois computadores acessando
a internet através deles.

Desta forma então, qualquer computador que estiver plugado nessa rede e que
configure o proxy manualmente no navegador, vai conseguir acessar a internet.

A configuração do manual do proxy no navegador deve utilizar o endereço IP do nosso


servidor proxy, que em nosso exemplo tem o endereço 10.10.10.1 e deve utilizar a porta
3128, que é o padrão do squid.

36
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Não importa o número de computadores desde que todos estejam configurados com
o mesmo proxy, que em nosso exemplo de diagrama é o servidor com o endereço IP
10.10.10.1.

Agora, você pode precisar fazer o bloqueio de algum computador em específico. Então
para resolver isso podemos fazer o bloqueio de um determinado computador somente,
utilizando o endereço de IP, para que não tenha o acesso a internet.

Vamos ver um exemplo.

Vamos precisar criar outra acl vou chamar ela também de:

acl pc1 src 10.10.10.113/32 #(você irá indicar o endereço de IP da máquina


que deseja bloquear).

37
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Depois disso já posso criar uma regra que irá real-


mente bloquear o acesso a internet do computador
com o endereço ip 10.10.10.113 assim:

http_access deny pc1

Com isso você está dizendo para o squid bloquear


qualquer acesso que tenha origem do
computador 10.10.10.113.

As regras abaixo desta irão continuar praticamente


da mesma forma, a não ser na ultima regra em
que eu liberei a rede interna, irei fazer mais um
inserção de !pc1.

Então fica assim:

http_access allow rede_interna !pc1

38
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Com isso porque vou liberar a rede interna exceto para o pc1.

Você vai ver que com essa regra, o computador escolhido não terá mais acesso liberado
a internet através do proxy.

Meu arquivo squid.conf ficou assim:

#regras
# bloqueia o pc1
acl pc1 src 10.10.10.113/32
http_access deny pc1

# libera rede interna


acl rede_interna src 10.10.10.0/24
http_access allow rede_interna !pc1

39
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Então essas duas regras são bem tranquilas, com uma variação dessa configuração
você poderá criar um servidor proxy muito poderoso.

Qualquer acl criada, como esse nosso exemplo foi:

acl pc1 src 10.10.10.113/32

Você deve usar o http_access para utilizar essa nova acl, sempre com duas opções de
controle de acesso, então poderá utilizar o deny ou o allow.

Utilize o deny para bloquear e o allow para liberar, como o exemplo abaixo:
http_access deny pc1

40
COMO CRIAR UM SERVIDOR PROXY COM SQUID

COMO BLOQUEAR/
LIBERAR SITES

41
COMO CRIAR UM SERVIDOR PROXY COM SQUID

COMO BLOQUEAR/LIBERAR SITES

Então você pode bloquear e liberar somente os sites desejados. Se for


de seu interesse bloquear um site específico, preste atenção nesses
exemplos.

# vim /etc/squid3/squid.conf

Vamos utilizar essa acl chamada SITE_NEGADO, assim:

acl SITE_NEGADO dstdomain .globo.com .r7.com

Ela tem o tipo dstdomain, onde podemos identificar o domínio de


destino, e o terceiro parâmetro indicamos o endereço do site que será
negado, nossa função será bloquear alguém que tentar acessar um
destes dois sites.

42
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Por enquanto só criamos a acl ( lista de acesso ), agora vamos para o próximo passo que
é informar ao squid o que ele irá fazer com a nossa acl SITE_NEGADO.

Então para ativar essa acl vamos usar novamente o http_access, podemos ativar ela
em qualquer local do arquivos squid.conf, mas o local mais indicado é ativar exatamente
onde está ilustrado abaixo.

#regras
# bloqueia o pc1
acl pc1 src 10.10.10.113/32
http_access deny pc1

# libera rede interna


acl rede_interna src 10.10.10.0/24
http_access allow rede_interna !pc1 !SITE_NEGADO

43
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Vamos lá, eu irei explicar agora com mais detalhes.

Vamos começar editando o squid.conf que está dentro do /etc/squid3 vou pesquisar
por regras, e vou criar a acl a seguir.

acl SITE_NEGADO dstdomain .globo.com .r7.com

Estes dois sites não poderão serem acessados, veja na imagem a seguir a regra onde
estou liberando a minha rede interna, exceto a acl SITE_NEGADO, utilizando o ! para
indicar essa exceção.

44
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Ou seja, eu disse ao squid qual computador tem o acesso internet, mas deve negar a
acl SITE_NEGADO.

Resultado esse laboratório, nenhum computador da rede poderá acessar o site do


globo.com ou do r7.com.

Lembrando que essa instrução de vários sites, é separado por um espaço. Agora é só
salvar o squid.conf e utilizar o comando abaixo para o squid reconhecer a nova configu-
ração.

45
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Você pode estar se perguntando: Então o que vai acontecer agora?

É simples, a rede interna pode acessar qualquer site, menos aqueles definidos
anteriormente na acl SITE_NEGADO.

Eu posso dizer também que eu tenho uma lista de sites liberados, isso é bem utilizado
em empresas em que eu já configurei o squid, é comum se fazer uma lista de sites libe-
rados para empresa toda, como por exemplo bancos e sites institucionais.

46
COMO CRIAR UM SERVIDOR PROXY COM SQUID

Abaixo o exemplo de uma acl para resolver esse problema.

acl SITE_LIBERADO dstomain .bradesco.com.br .caixa.gov.br

Podemos ver com esse conteúdo algumas das funcionalidades do squid, é claro que
existem muitas outras, mas isso foi de uma maneira simples, uma breve explicação de
como utilizar o proxy para liberar e bloquear sites, e principalmente para que você
entenda a lógica do arquivo de configuração do squid e principalmente a lógica da acl e
do http_access.

47
COMO CRIAR UM SERVIDOR PROXY COM SQUID

E-TINET é um projeto pessoal de Pedro Delfino, profissional com mais de 14 anos de


experiência em sistemas Linux. A E-TINET tem como objetivo treinar e capacitar os
profissionais de tecnologia a trabalharem com o Linux profissionalmente.

Veja aqui como começar uma formação Linux profissional e domine, de uma vez por
todas, esse sistema tão importante para a sua carreira.
48