Você está na página 1de 23

LINUX

SERVIDOR PROXY

SQUID
SERVIDOR PROXY

• É um servidor que se encontra entre o nosso


"browser" e o servidor final a que pretendemos
aceder.

• este intercepta o nosso pedido ao servidor final para


verificar se ele proprio pode fornecer essa
informação.

• caso o não consiga então efectua esse pedido ao


servidor final.
SERVIDOR PROXY
• Quando temos uma rede de computadores e
desejamos fazer com que todos eles fiquem ligados á
internet, a melhor opção é usar um servidor proxy

• Em primeiro lugar, o proxy evita ter de atribuir


enderenços IP externos a todos os computadores da
rede. Em vez disso, podemos configurar a rede
interna na gama de endereços 192.168.10.0/24, que
fica protegida do exterior.

• Em segundo lugar, o servidor proxy faz cache de


dados local, o que permite racionalizar o uso da linha
de comunicações e melhorar a velocidade de acesso
ao exterior.
SERVIDOR PROXY

• Por exmplo, quando alguém pede uma página Web


que outro utilizador já viu há pouco tempo, o servidor
proxy já não necessita de ir buscar ao exterior, dado
que já possui uma cópia guardada no disco local.

• Assim, quando o primeiro utilizador pode ter demorado


vários minutos até ver a página, o segundo utilizador
obtém a mesma página numa questão de alguns
segundos. O mesmo se passa para todos os acessos
subsequentes, até o tempo de validade da cópia em
cache expire.
SERVIDOR PROXY

• O servidor proxy deve ser configurado num


computador com acesso directo ao exterior.Por
exemplo, quando temos uma rede local em que
apenas um dos computadores possui um modem ou
placa RDIS, devemos instalar o serviço proxy nesse
computador

• Em LINUX existem vários programas que permitem


criar servidores proxy.

• Os mais usados são os Squid e o próprio Apache.


SERVIDOR PROXY
• Quando os utilizadores da rede interna só pretendem
navegar pela Web ( protocolos HTTP e FTP ) e enviar ou
receber e-mail, então um servidor de proxy e um servidor
de e-mail resolvem integralmente o problema de
“conectividade” com o exterior.

• Pelo contrário, quando os utilizadores pretendem usar


outros tipos de software, como por exemplo os programas
de IRC e ICQ, então temos de usar outras soluções,
como o IP-masquerading, que dão acesso aos outros
serviços.

• No entanto, mesmo quando se utiliza o IP-masquerading,


continua a ser muito vantajoso usar o servidor proxy, por
causa da cache local.
SERVIDOR PROXY

Os seus propósitos são:

• Aumentar a velocidade de acesso a um grupo de


utilizadores, isto porque ele armazena a informação por
estes requisitada.

• Filtrar os pedidos de informação a determinados sites,


por exemplo uma empresa pode evitar o acesso dos
seus empregados a determinados sites (XXX).
O SERVIDOR PROXY SQUID

• O Squid é um dos servidores de proxy mais poderosos


que existem e, por esse motivo, é o proxy escolhido por
grande parte dos ISP.

• Para além de uma cache local de alta performance,


possui uma arquitectura hierárquica,que lhe permite
reutilizar a cache de outros proxys.

• Por exemplo numa rede local, o próprio proxy local


pode passar todos os pedidos externos ao proxy do
ISP onde estamos ligados.
O SERVIDOR PROXY SQUID
• Por sua vez, o ISP a que estamos ligados, também vai
estar ligado a outros ISP em países diferentes. Por
exemplo, pode estar ligado a um super-ISP nos EUA, a
outro em Inglaterra e a outro na Alemanha.

• Para maximizar a performance, o proxy do ISP nacional


pode redireccionar os pedidos destinados ao estrangeiro,
para os servidores de proxy dos super-ISP que estão mais
próximos do destino.

• Com esta técnica, consegue-se reduzir imenso o tráfico


total na internet, com todos os benefícios inerentes: uma
grande melhoria na velocidade global da rede e custos de
exploração mais baixos.
O SERVIDOR PROXY SQUID

• No exemplo da rede local, a


probabilidade de alguém já ter ido ler a
mesma página Web que nós desejamos
ler é muito baixa. Agora, quando estamos
a usar um proxy de um ISP com milhares
de utilizadores, a probabilidade já é muito
grande.
O SERVIDOR PROXY SQUID

• O Squid oferece alto desempenho de cache para


servidores web, mas também oferece grandes
vantagens em comparação com outros servidores
proxy:

- Realiza, além da cache de objectos como arquivos de


FTP e páginas da web, uma cache de procuras de
DNS. Isso quer dizer que ele guarda informações
sobre o mapeamento entre endereços IP e nomes de
máquinas da Internet, acelerando a procura de
máquinas;
• Mantém os objectos mais utilizados na memória RAM
(cujo uso pode ser limitado pela configuração);
O SERVIDOR PROXY SQUID

• O Squid suporta SSL (acesso a páginas


criptografadas) para segurança em transações;

• Pode ser organizado em hierarquias de servidores de


cache para uma melhoria significativa de
desempenho;

• Responde às requisições num único processo de


acesso a disco.
INSTALAÇÃO DO SQUID

• O servidor proxy Squid consiste num programa


principal (squid) e do seu próprio programa de
resolução de nomes (dnsserver). Quando o Squid é
inicializado, cria o processo do dnsserver, diminuindo
o tempo de espera pela resposta do DNS.

• Para instalar o Squid temos de começar por editar o


seu ficheiro de configuração:
«/etc/squid/squid.conf».
INSTALAÇÃO DO SQUID
• Este ficheiro é relativamente complexo e tem dezenas
de opções, mas ao longo de todo ficheiro existem
comentários que explicam o seu significado.

• As opções mais importantes permitem definir os


portos usados pelo serviço, os domínios internos, os
domínios externos e, ainda, criar uma lista de ACL par
definir quem pode usa o serviço e quem não pode.

• Por omissão, o Squid fica configurado no porto 3128,


mas a maior parte dos administradores costuma
preferir usar o porto 8080 ( http_port 8080 ).
INSTALAÇÃO DO SQUID

• Para lançar o Squid, é necessário começar por criar


sa directorias de swap usadas para guardar a cache
local:
# /usr/sbin/squid –z

Depois disso, podemos mandar iniciar o serviço:


# /etc/rc.d/init.d/squid start
INSTALAÇÃO DO SQUID

• O Squid além de estar disponivel na


distribuição de RH, está disponivel na
internet nomeadamente em
www.squid-cache.org onde pode ser feito
o download do pacote já compilado para
RH ou do source code.
INSTALAÇÃO DO SQUID

A necessidade de utilização de
funcionalidades avançadas como a
gestão de banda obriga á compilação do
source code, para instalações simples
recomenda-se a instalação do binário
próprio:

#rpm –ivh squid.[ver].rpm


INSTALAÇÃO DO SQUID

• Para verificar se o serviço ficou efectivamente a


funcionar, podemos usar o comando «ps ax». Se
tudo tiver correcto, vamos encontrar vários processos
com os nomes «squid», «dnsserver» e «unlinkd».
Pelo contrário, se houve algum problema, estes
processos morrem passado algum tempo.

• Para detectar a causa desses problemas, temos de


consultar as mensagens de erro no ficheiro log
«/var/log/squid/cache.log». Depois, há que voltar a
editar o ficheiro de configuração e tentar lançar
novamente o serviço, até tudo estar correcto.
INSTALAÇÃO DO SQUID

• Criar um proxy transparente


Adicionar ao ficheiro de firewall:

#Iptables –t NAT –A PREROUTING –i [NIC] –p tcp


–dport 80 –j REDIRECT --to-port 3128
INSTALAÇÃO DO SQUID

• Devemos ter muito cuidado com a segurança.

• Para isso, é necessário criar uma ACL que limita o acesso ao


proxy apenas aos enderenços da rede local:

# No ficheiro /etc/squid/squid.conf
acl all src 0.0.0.0 / 0.0.0.0
acl localnet src 192.168.0.0 / 255.255.255.0
acl localhost src 127.0.0.1 / 255.255.255.255

http_acess allow localhost


http_acess allow localnet
http_acess deny all
INSTALAÇÃO DO SQUID

• Uma forma ainda mais segura de impedir o acesso


ao proxy consiste em usar as regras da firewall
(«ipchains»/«iptables» ) para fechar totalmente o
acesso as portos do proxy a partir da rede externa.

• Por fim, quando a configuração final tiver bem


afinada, não nos podemos esquecer de usar um
editor de runlevels, par activar o serviço Squid no
arranque do sistema. Por exemplo, podemos usar o
«/usr/sbin/ntsysv» ou o painel controlo «redhat-
config-services».
INSTALAÇÃO DO SQUID

• Uma defenição importante da configuração do


squid é o espaço que usará para cache; estas
defenições são como todas as outras
introduzidas no squid.conf
• Cache_mem bytes
• Cache_dir Type DirectoryName mbytes level1
level2
BIBLIOGRAFIA

• LINUX – Curso completo / FCA

• Internet - http://www.conectiva.com