Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em...

57
Proxy SQUID Professor: João Paulo de Brito Professor: João Paulo de Brito Gonçalves Gonçalves Campus Cachoeiro Curso Técnico em Informática

Transcript of Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em...

Page 1: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Proxy SQUID

Professor: João Paulo de Brito GonçalvesProfessor: João Paulo de Brito Gonçalves

Campus CachoeiroCurso Técnico em Informática

Page 2: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

O objetivo principal de um servidor proxy é possibilitar que máquinas de uma rede privada possam acessar uma rede pública, como a Internet, sem que para isto tenha uma ligação direta com esta.

O servidor proxy costuma ser instalado em uma máquina que tenha acesso direto à Internet, sendo que as demais efetuam as solicitações através desta.

Proxy (definições)

Page 3: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Justamente por isto que este tipo de servidor é chamado de proxy, pois é um procurador, ou seja, sistema que faz solicitações em nome de outros.

O proxy SQUID é como um burocrata que não se limita a simplesmente repassar as requisições: ele analisa todo o tráfego de dados, separando o que pode ou não pode passar e guardando as informações para uso posterior, de forma semelhante à um firewall.

Proxy (definições)

Page 4: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

A configuração de um proxy muda de navegador A configuração de um proxy muda de navegador para para

navegador, mas é necessária para que o navegador, mas é necessária para que o navegador consiga se conectar através do proxy navegador consiga se conectar através do proxy nos servidores WEB.nos servidores WEB.

Além do navegador, outros programas podem Além do navegador, outros programas podem ser configurados para trabalharem através do ser configurados para trabalharem através do proxy: clientes de ICQ e MSN e até programas proxy: clientes de ICQ e MSN e até programas P2P. As vantagens em se utilizar um proxy são P2P. As vantagens em se utilizar um proxy são basicamente três:basicamente três:

Configuração de um proxy no navegador

Page 5: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

1) É possível impor restrições de acesso com base no 1) É possível impor restrições de acesso com base no horário, login, endereço IP da máquina e outras horário, login, endereço IP da máquina e outras informações e bloquear páginas com conteúdo informações e bloquear páginas com conteúdo indesejado.indesejado.

2) O proxy funciona como um cache de páginas e 2) O proxy funciona como um cache de páginas e arquivos, armazenando informações já acessadas. arquivos, armazenando informações já acessadas. Quando alguém acessa uma página que já foi Quando alguém acessa uma página que já foi carregada, o proxy envia os dados que guardou no carregada, o proxy envia os dados que guardou no cache, sem precisar acessar a mesma página cache, sem precisar acessar a mesma página repetidamente. repetidamente.

3) É possível logar todos os acessos feitos através do 3) É possível logar todos os acessos feitos através do proxy, sendo possível visualizar os acessos proxy, sendo possível visualizar os acessos posteriormente utilizando o Sarg.posteriormente utilizando o Sarg.

Proxy - Funções

Page 6: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.
Page 7: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

- - Proxy não-transparente – é o proxy padrão, Proxy não-transparente – é o proxy padrão, onde é necessário configurar o navegador, onde é necessário configurar o navegador, para que ele possa acessar o proxy e se para que ele possa acessar o proxy e se conectar através dele. Sem esta conectar através dele. Sem esta configuração, é impossível acessar a Web se configuração, é impossível acessar a Web se o computador onde está o proxy é o único o computador onde está o proxy é o único ponto de conexão com a Internet na rede.ponto de conexão com a Internet na rede.

Modalidades de Proxy- Proxy Transparente – é um proxy onde não é necessário configurar o navegador para apontar para o seu endereço, pois através de uma regra do iptables, todo o tráfego direcionado para a porta 80 é redirecionado para a porta 3128.

Page 8: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Roteador

Instalando o SQUID

O SQUID é composto de um único pacote, por isso a instalação é simples.

Toda a configuração do SQUID é feita em um único arquivo, o /etc/squid3/squid.conf.

O arquivo original, instalado junto com o pacote, é realmente enorme, contém comentários e exemplos para quase todas as opções disponíveis.

Page 9: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Roteador

Arquivo de configuração básico

http_port 3128visible_hostname nome_da_maquinaacl localhost src 127.0.0.1acl all src 0.0.0.0/0.0.0.0http_access allow localhosthttp_access deny all

Estas linhas são suficientes para o que Squid funcione.

As linhas dizem o seguinte:

Page 10: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Arquivo de configuração básico

http_port 3128 – a porta onde o servidor Squid vai ficar disponível. A porta 3128 é o padrão.

visible_hostname nome_da_maquina – o nome do servidor, o mesmo que foi definido na configuração da rede.

acl localhost src 127.0.0.1 e http_access allow localhost: estas duas linhas criam uma ACL(uma política de acesso) chamada “localhost”, que se refere ao endereço da interface de loopback da máquina. Ele permite que a máquina local use o proxy sem restrições.

Page 11: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Arquivo de configuração básico

acl all src 0.0.0.0/0.0.0.0 e http_access deny all: estas duas linhas criam uma ACL(uma política de acesso) chamada “all”, incluindo todos os endereços IP possíveis.

Esta regra faz com que qualquer máquina que não tenha sido permitida anteriormente seja bloqueada. Ou seja, esta regra faz com que qualquer máquina que não seja o localhost tenha o seu acesso bloqueado pelo proxy.

Page 12: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Arquivo de configuração básico

Configure o seu navegador usando o endereço IP 127.0.0.1 para usá-lo como proxy, com a porta 3128, e teste a conexão.

Se tudo estiver ok, você conseguirá acessar o proxy através do servidor proxy instalado na sua máquina local.

Page 13: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

O controle de acesso do squid tem recursos suficientes para definir com precisão quais tipos de serviços podem ser acessados por quais máquinas e em quais horários.

As regras da lista de controle de acesso (ACLs) têm uma sintaxe bastante simples, e são incluídas no arquivo squid.conf.

ACLs

Page 14: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

http_access: permite clientes HTTP (browsers) acessarem a porta HTTP. Esta é a ACL primária e serve de base para permitir ou negar o acesso de todas as outras.

- allow – permite o acesso à ACL- deny – nega o acesso à ACL

Tipos de Elementos de ACL

Page 15: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

src – endereço IP de origem (cliente). dest – endereço IP do destino (servidor).Exemplo:acl redelocal src 172.16.48.0/255.255.240.0http_access deny redelocalBloqueia qualquer acesso de qualquer máquina.acl usuario_ofensor src 10.0.0.95http_access deny usuario_ofensorBloqueia o acesso da máquina 10.0.0.95.

Tipos de Elementos de ACL

Page 16: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

srcdomain – um domínio de origem(cliente) dstdomain – um domínio de destino(servidor). Exemplo:acl bloqueados dstdomain www.orkut.com http_access deny bloqueados

Foi criada uma acl bloqueados que contém o endereço www.orkut.com e em seguida foi incluída a regra para bloquear o acesso ao domínio.

Tipos de Elementos de ACL

Page 17: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

url_regex: comparação de um URL baseada em url_regex: comparação de um URL baseada em expressão regular.expressão regular.

Exemplo:Exemplo:

acl proibir_cracker url_regex crackeracl proibir_cracker url_regex crackerhttp_access deny proibir_crackerhttp_access deny proibir_cracker

Impede que qualquer usuário acesse páginas que Impede que qualquer usuário acesse páginas que contenham a palavra “cracker” na URL. contenham a palavra “cracker” na URL.

Tipos de Elementos de ACL

Page 18: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

• Um tipo de bloqueio útil em muitas situações é Um tipo de bloqueio útil em muitas situações é com relação a formatos de arquivos. com relação a formatos de arquivos.

• Você pode querer bloquear o download de Você pode querer bloquear o download de arquivos .exe ou .sh para dificultar a instalação de arquivos .exe ou .sh para dificultar a instalação de programas nas estações, ou bloquear arquivos .avi programas nas estações, ou bloquear arquivos .avi ou .wmv para economizar banda da rede, por ou .wmv para economizar banda da rede, por exemplo.exemplo.

Neste caso, você pode usar a regra a seguir, Neste caso, você pode usar a regra a seguir, especificando as extensões de arquivo desejadas. especificando as extensões de arquivo desejadas. Ela utiliza o parâmetro "url_regex" dessa vez Ela utiliza o parâmetro "url_regex" dessa vez procurando pelas extensões de arquivos procurando pelas extensões de arquivos especificadas:especificadas:

acl extban url_regex -i \.avi \.exe \.mp3 \.torrentacl extban url_regex -i \.avi \.exe \.mp3 \.torrenthttp_access deny extbanhttp_access deny extban

Tipos de Elementos de ACL

Page 19: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

-Time – permite especificar hora do dia e dia da semana que se deseja proibir ou permitir o acesso à Internet.

Exemplo:acl madrugada time 00:00-06:00http_access deny madrugada

Acl almoco time 12:00–14:00http_access deny almoco

Proxy irá bloquear acessos feitos de madrugada ou no horário de almoço.

Tipos de Elementos de ACL

Page 20: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

-Para bloquear dias da semana específicos temos a tabela:

Tipos de Elementos de ACL

acl expediente time MTWHF acl expediente time MTWHF 09:00-18:0009:00-18:00http_access allow expedientehttp_access allow expediente

acl final_de_semana time SA 8:00-acl final_de_semana time SA 8:00-13:0013:00http_access deny final_de_semanahttp_access deny final_de_semana

Page 21: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Roteador

Proto – Protocolo de transferência Exemplo:

acl manager proto cache_objecthttp_access allow manager

Permite que o cache de objetos seja acessado.

Tipos de Elementos de ACL

Page 22: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Roteador

Port – número de porta de destino (servidor)Exemplo:

acl safe_port port 21http_access allow safe_port

Permite o acesso à porta 21 de destino no servidor passando pelo proxy.

Tipos de Elementos de ACL

Page 23: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

cache_mem – configura o tamanho de memória RAM que será usado como cache. É interessante configurar uma cache em memória principal, pois a leitura em disco é um processo muito mais demorado.

Exemplo: cache_mem 32 MB

cache_dir - permite definir em quais diretórios serão armazenados os objetos, ou seja, especifica o cache em disco a ser utilizado. É necessário especificar o tipo de sistema de arquivos a ser utilizado no armazenamento. Atualmente o tipo que pode ser utilizado com segurança é o ufs.

Exemplo: cache_dir ufs /var/spool/squid 2048 16 256

Parâmetros de Configuração

Page 24: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

maximum_object_size_in_memory – determina o tamanho máximo dos arquivos que serão guardados no cache feito na memória RAM (o resto vai para o cache feito no HD). O cache na memória é muito mais rápido, mas é interessante deixá-lo para arquivos menores, pois seu tamanho é reduzido.

maximum_object_size_in_memory 1 MBmaximum_object_size minimum_object_size –

configuração da cache em disco, que armazenará os arquivos maiores. Por padrão o máximo são downloads de 16 MB e o mínimo é zero, o que faz com que mesmo imagens e arquivos pequenos sejam armazenados no cache.

Parâmetros de Configuração

Page 25: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

cache_access_log – define o arquivo onde serão guardados os logs de acesso do SQUID. Por padrão, o SQUID guarda o log de acesso no arquivo /var/log/squid3/access.log.

Caso a lista de domínios permitidos ou bloqueados se torne grande demais, pode-se optar por criar um arquivo de “sites negados” ou “sites permitidos” e referenciá-lo no arquivo de configuração.

Exemplo:acl permitidos url_regex –i “/etc/squid3/permitidos” http_access allow permitidosacl bloqueados url_regex –i “/etc/squid3/bloqueados”http_access deny bloqueados

Parâmetros de Configuração

Page 26: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Mais uma configuração que você pode querer alterar é o padrão de atualização do cache.

Estas três linhas precisam sempre ser usadas em conjunto, ou seja, você pode alterá-las, mas sempre as três precisam estar presentes no arquivo.

Eliminando uma, o Squid ignora as outras duas e usa o default.

Os números indicam o intervalo (em minutos) que o Squid irá aguardar antes de verificar se um item do cache (uma página, por exemplo) foi atualizado, para cada um dos três protocolos.

Parâmetros de Configuração

Page 27: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

O primeiro número (o 15) indica que o Squid verificará (a cada acesso) se as páginas e arquivos com mais de 15 minutos foram atualizados. Ele faz uma verificação rápida, checando o tamanho do arquivo e, se o arquivo não mudou, ele continua fornecendo aos clientes o arquivo que está no cache, economizando banda da conexão

O terceiro número (o 2280, equivalente a dois dias) indica o tempo máximo, depois do qual o objeto é sempre verificado. Além do http e ftp, o Squid suporta o protocolo gopher, que era muito usado nos primórdios da internet para localizar documentos de texto, mas perdeu a relevância hoje em dia.

Parâmetros de Configuração

Page 28: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

- Desta forma, os parâmetros ficariam da seguinte forma na configuração:

refresh_pattern ^ftp: 15 20% 2280refresh_pattern ^gopher: 15 0% 2280refresh_pattern . 15 20% 2280

Parâmetros de Configuração

Page 29: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

- Caso você queira reiniciar o cache do SQUID, pode usar o comando:

squid –Z- Em alguns casos, principalmente quando existem

usuários acessando a Internet, reiniciar o proxy pode gerar transtornos desconectando estes usuários temporariamente da Internet. Para solucionar o problema, pode-se após realizar alguma alteração na configuração utilizar o comando

service squid reload - Este comando atualiza a configuração do SQUID sem

precisar reiniciá-lo.

Parâmetros de Configuração

Page 30: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Você pode adicionar uma camada extra de segurança exigindo autenticação no proxy.

Este recurso pode ser usado para controlar quem tem acesso à internet e auditar os acessos em caso de necessidade.

Quase todos os navegadores oferecem a opção de salvar a senha, de modo que o usuário precisa digitá-la apenas uma vez a cada sessão.

A forma mais simples de implementar autenticação no Squid é usando o módulo "ncsa_auth", que faz parte do pacote principal. Ele utiliza um sistema simples, baseado em um arquivo de senhas, onde você pode cadastrar e bloquear os usuários rapidamente.

Proxy Autenticado

Page 31: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Para criar o arquivo de senhas, precisamos do script "htpasswd". Nas distribuições derivadas do Debian ele faz parte do pacote apache2-utils, que você pode instalar via apt-get:

# apt-get install apache2-utils Em seguida, crie o arquivo que será usado para

armazenar as senhas, usando o comando "touch" (que simplesmente cria um arquivo de texto vazio):

# touch /etc/squid3/squid_passwd O próximo passo é cadastrar os logins usando o

htpasswd, especificando o arquivo que acabou de criar e o login que será cadastrado, como em:

# htpasswd /etc/squid3/squid_passwd gdh

Proxy Autenticado

Page 32: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Depois de terminar de cadastrar os usuários, adicione as linhas que ativam a autenticação no squid.conf:

auth_param basic realm Squidauth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/squid_passwdacl autenticados proxy_auth REQUIREDhttp_access allow autenticados

O "auth_param basic realm Squid" indica o nome do servidor, da forma como ele aparecerá na janela de autenticação dos clientes; esta é na verdade uma opção meramente estética. O "/usr/lib/squid3/ncsa_auth" é a localização da biblioteca responsável pela autenticação.

Proxy Autenticado

Page 33: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Estas quatro linhas criam uma acl chamada "autenticados" (poderia ser outro nome), que contém os usuários que se autenticarem usando um login válido.

Estas linhas devem ser colocadas antes de qualquer outra regra que libere o acesso, já que, se o acesso é aceito por uma regra anterior, ele não passa pela regra que exige autenticação.

Proxy Autenticado

Page 34: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Um dos principais problemas de usar um proxy é que você precisa configurar manualmente cada micro da rede para utilizá-lo, o que é um trabalho cansativo e tedioso, sobretudo em grandes redes.

O Squid responde a este desafio com a possibilidade de criar um proxy transparente, onde o proxy se integra a uma rede já existente, acelerando a conexão, mas sem precisar de qualquer configuração nos clientes.

Proxy Transparente

Page 35: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Basta substituir a linha http_port 3128 por http_port 3128 transparent

Ou seja, na verdade você precisa apenas adicionar o "transparent", para que o Squid passe a entender as requisições redirecionadas pela regra do firewall.

Proxy Transparente

Page 36: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.
Page 37: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

NAT (Network Address Translation), ou tradução de endereço de rede, é uma técnica que altera os endereços de um pacote, e altera os pacotes de forma inversa.

O NAT tem três utilidades básicas: o SNAT, O DNAT e proxy transparente. O SNAT ou Source-NAT, consiste em alterar o endereço de origem dos pacotes. A principal utilização do SNAT é o Masquerading, ou mascaramento de IPs, permitindo o compartilhamento de um único endereço IP válido com acesso à internet com uma rede de IPs não-válidos.

Network Adress Translation(NAT)

Page 38: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

NAT: Network Address NAT: Network Address TranslationTranslation

10.0.0.1

10.0.0.2

10.0.0.3

10.0.0.4

138.76.29.7

rede local(e.x., rede caseira)

10.0.0/24

resto daInternet

Datagramas com origem oudestino nesta rede usam endereços 10.0.0/24 para origem e destino (como

usual)

Todos os datagramas deixando a rede local têm o mesmo

único endereço IP NAT origem: 138.76.29.7, e diferentes números de porta origem

Page 39: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

NAT: Network Address Translation

Motivação: a rede local usa apenas um endereço IP, no que concerne ao mundo exterior: não há necessidade de alocar faixas de

endereços do ISP: apenas um endereço IP é usado para todos os

dispositivos pode modificar endereços de dispositivos na rede

local sem notificar o mundo exterior pode trocar de ISP sem mudar os endereços dos

dispositivos na rede local dispositivos dentro da rede local não são

explicitamente endereçáveis, i.e., visíveis do mundo exterior (um incremento de segurança)

Page 40: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

NAT: Network Address NAT: Network Address TranslationTranslation

Implementação: um roteador NAT deve:

datagramas saindo: trocar (IP origem, # porta) de cada datagrama saindo para (IP NAT, novo # porta). . . clientes/servidores remotos vão responder usando (IP NAT,

novo # porta) como endereço destino. lembrar (na tabela de tradução NAT) cada par de

tradução (IP origem, # porta ) para (IP NAT, novo # porta)

datagramas entrando: trocar (IP NAT, novo # porta) nos campos de destino de cada datagrama entrando para o (IP origem, # porta) correspondente armazenado na tabela NAT

Page 41: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

NAT: Network Address Translation

10.0.0.1

10.0.0.2

10.0.0.3

O: 10.0.0.1, 3345D: 128.119.40.186, 80

1

10.0.0.4

138.76.29.7

1: host 10.0.0.1 envia datagrama p/ 128.119.40.186, 80

Tabela de tradução NATend. lado WAN end. lado LAN

138.76.29.7, 5001 10.0.0.1, 3345…… ……

O: 128.119.40.186, 80 D: 10.0.0.1, 3345

4

O: 138.76.29.7, 5001D: 128.119.40.186, 80

2

2: roteador NATmuda end. origem do datagrama de10.0.0.1, 3345 p/138.76.29.7, 5001,e atualiza tabela

O: 128.119.40.186, 80 D: 138.76.29.7, 5001

3

3: Resposta chega p/ end. destino: 138.76.29.7, 5001

4: roteador NATmuda end. destinodo datagrama de138.76.29.7, 5001 p/ 10.0.0.1, 3345

Page 42: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

NAT: Network Address Translation

campo do número de porta com 16-bits: 60.000 conexões simultâneas com um único

endereço no lado WAN!

NAT é controverso: roteadores deveriam processar somente até a

camada 3 viola o argumento fim-a-fim

possibilidade do uso de NAT deve ser levado em conta pelos projetistas de aplicações (p.e., P2P)

escassez de endereços, por outro lado, deveria ser resolvida com o IPv6

Page 43: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

O SNAT é feito na chain POSTROUTING, da tabela nat. Ou seja, a alteração no endereço de saída do pacote é a última coisa a ser feita antes de ele ser enviado para a Internet.

POSTROUTING refere-se a pacotes que serão modificados na saída do firewall, ou seja, é uma chain que pode conter regras que alteram o endereço de origem do pacote que entra em uma condição definida pelo administrador e, após atravessar e sair do firewall o pacote passa a ter um novo cabeçalho "mascarando" a origem do mesmo.

Source-NAT

Page 44: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Este tipo de cadeia pertence à tabela NAT e portanto não trata pacotes com destino a serviços instalados e em execução no próprio firewall, como é de costume existir uma certa confusão neste sentido.

O target do pacote deve ser SNAT, e o endereço de saída é especificado pelo parâmetro --to-source <endereço-de-saída>.Também pode ser especificada uma faixa de IPs ou endereços discretos.

Exemplo: iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -o eth0 -j SNAT --to-source 20.13.25.3

Source-NAT

Page 45: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Existe uma modalidade de SNAT chamada Masquera-ding, especialmente útil para fazer SNAT em conexões com IP dinâmico (DHCP, linha discada), que é feita usando como target MAQUERADE e especificando a interface de saída.

# iptables -t nat -A POSTROUTING -s 192.168.4.0/24 \

-o ppp0 -j MASQUERADE

Source-NAT

Page 46: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

O Destination-NAT ou DNAT é feito na chain PREROUTING, também da tabela nat.

As alterações no pacote serão feitas antes de qualquer coisa, então todas as outras regras do iptables já irão tratar o pacote com o novo endereço de destino. Para fazer DNAT, é necessário especificar o target DNAT, o novo endereço de destino, com o parâmetro --to-destination <endereço-de-destino>. Podem ser especificados também a interface de entrada. Também é possível fazer redirecionamento de porta usando DNAT.

Destination-NAT

Page 47: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

O PREROUTING trata o pacote antes deste entrar no roteamento do servidor e portando pode ter o destino do pacote modificado, sendo utilizado para filtrar alguns serviços que estão em servidores hospedados atrás do firewall.

Basta especificar a porta de entrada, e também a porta no endereço de saída. Abaixo alguns exemplos:

• Regra de DNAT simples:# iptables -t nat -A PREROUTING -i eth0 –j DNAT --to-destination 192.168.1.6

Destination-NAT

Page 48: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Ao usar um proxy transparente, você tem basicamente uma conexão compartilhada via NAT, com a mesma configuração básica nos clientes. O proxy entra na história como um adicional. Uma regra de firewall envia as requisições recebidas na porta 80 do servidor para o proxy, que se encarrega de responder aos clientes.

Proxy transparente é a forma que a tabela NAT possui de realizar um redirecionamento de portas em um mesmo computador de destino.

Proxy Transparente

Page 49: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Logo, podemos concluir que o proxy-cache SQUID faz um redirecionamento das portas solicitadas por seus clientes, uma vez que os mesmos solicitam conexão via porta 80 e são redirecionados à porta 3128.

Utilizamos então para esta finalidade as cadeias PREROUTING da tabela NAT, tal como o alvo REDIRECT no iptables.

Proxy Transparente e Iptables

Page 50: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Então o comando do iptables que deve ser usado é:

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

Onde:iptables -> chama o firewall iptables. -t nat carrega a tabela nat para a o uso na regra

-A PREROUTING – usa a cadeia PREROUTING da tabela nat para criar uma regra -i eth0  -> seleciona a interface da rede eth0, por onde os pacotes com destino à Internet entram

Proxy Transparente e iptables

Page 51: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

-p tcp -> indica que o protocolo da camada de transporte usado será o tcp

--dport 80 -> indica que a porta de destino dos pacotes será a porta 80(tráfego web)

-j REDIRECT -> indica a ação a ser aplicada à regra, no caso um redirecionamento.

--to-port 3128 -> indica a porta para a qual será redirecionado o tráfego com destino na porta 80.

Proxy Transparente e iptables

Page 52: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

O Sarg é um interpretador de logs para o Squid. Sempre que executado, ele cria um conjunto de páginas,

divididas por dia, com uma lista de todas as páginas que foram acessadas e a partir de que máquina da rede veio cada acesso.

Caso você tenha configurado o Squid para exigir autenticação, ele organiza os acessos com base nos logins dos usuários. Caso contrário, ele mostra os endereços IP das máquinas.

SARG

Page 53: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Os acessos são organizados por usuário (caso esteja sendo usada autenticação) ou por IP, mostrando as páginas acessadas por cada um, quantidade de dados transmitidos, tempo gasto em cada acesso, tentativas de acesso bloqueadas pelos filtros de conteúdo e outras informações.

Além disso, ele faz um demonstrativo dos sites mais acessados pelos usuários do proxy.

SARG

Page 54: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

SARG

O Sarg é incluído na maioria das O Sarg é incluído na maioria das distribuições atuais, em alguns casos distribuições atuais, em alguns casos instalado por padrão junto com o Squid. instalado por padrão junto com o Squid. No Debian e derivados ele pode ser No Debian e derivados ele pode ser instalado com um: instalado com um:

# apt-get install sarg # apt-get install sarg

Page 55: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

Depois de instalado, chame o comando "sarg" (como root) para que os relatórios sejam gerados automaticamente a partir do log do Squid

O Sarg não é um daemon que fica residente, você precisa apenas chamá-lo quando quiser atualizar o relatório.

Após chamado, os relatórios gerados pelo SARG ficam em /var/lib/sarg

SARG

Page 56: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

- Você pode definir ainda a percentagem de uso Você pode definir ainda a percentagem de uso do cache que fará o SQUID começar a do cache que fará o SQUID começar a descartar os arquivos mais antigos. Por descartar os arquivos mais antigos. Por padrão, sempre que o cache atingir 95% de padrão, sempre que o cache atingir 95% de uso, serão descartados arquivos antigos até uso, serão descartados arquivos antigos até que a percentagem volte para um número que a percentagem volte para um número abaixo de 90%.abaixo de 90%.

cache_swap_low 90cache_swap_low 90cache_swap_high 95cache_swap_high 95

Configurações Adicionais

Page 57: Proxy SQUID Professor: João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.

- Você pode modificar a mensagem de erro no seu - Você pode modificar a mensagem de erro no seu proxy para Português usando dentro do arquivo proxy para Português usando dentro do arquivo de configuração a linha:de configuração a linha:

error_directory /usr/share/squid3/errors/pt_brerror_directory /usr/share/squid3/errors/pt_br

Você pode ainda personalizar as páginas de erro Você pode ainda personalizar as páginas de erro editando os arquivos dentro da pasta editando os arquivos dentro da pasta “/usr/share/squid3/errors/Portuguese” ou “/usr/share/squid3/errors/Portuguese” ou “/usr/share/squid3/erros/English”(de acordo com “/usr/share/squid3/erros/English”(de acordo com a língua definida na configuração). A pasta a língua definida na configuração). A pasta contém vários arquivos html, um para cada tipo contém vários arquivos html, um para cada tipo de erro indicado.de erro indicado.

Configurações Adicionais