A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Proxy SQUID Campus Cachoeiro Curso Técnico em Informática

Apresentações semelhantes


Apresentação em tema: "Proxy SQUID Campus Cachoeiro Curso Técnico em Informática"— Transcrição da apresentação:

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

2 Proxy (definições) 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.

3 Proxy (definições) 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.

4 Configuração de um proxy no navegador
A configuração de um proxy muda de navegador para navegador, mas é necessária para que o navegador consiga se conectar através do proxy nos servidores WEB. Além do navegador, outros programas podem ser configurados para trabalharem através do proxy: clientes de ICQ e MSN e até programas P2P. As vantagens em se utilizar um proxy são basicamente três:

5 Proxy - Funções 1) É possível impor restrições de acesso com base no horário, login, endereço IP da máquina e outras informações e bloquear páginas com conteúdo indesejado. 2) O proxy funciona como um cache de páginas e arquivos, armazenando informações já acessadas. Quando alguém acessa uma página que já foi carregada, o proxy envia os dados que guardou no cache, sem precisar acessar a mesma página repetidamente. 3) É possível logar todos os acessos feitos através do proxy, sendo possível visualizar os acessos posteriormente utilizando o Sarg.

6

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

8 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. Roteador

9 Arquivo de configuração básico
http_port 3128 visible_hostname nome_da_maquina acl localhost src acl all src / http_access allow localhost http_access deny all Estas linhas são suficientes para o que Squid funcione. As linhas dizem o seguinte: Roteador

10 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 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.

11 Arquivo de configuração básico
acl all src / 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.

12 Arquivo de configuração básico
Configure o seu navegador usando o endereço IP 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.

13 ACLs 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.

14 Tipos de Elementos de ACL
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

15 Tipos de Elementos de ACL
src – endereço IP de origem (cliente). dest – endereço IP do destino (servidor). Exemplo: acl redelocal src / http_access deny redelocal Bloqueia qualquer acesso de qualquer máquina. acl usuario_ofensor src http_access deny usuario_ofensor Bloqueia o acesso da máquina

16 Tipos de Elementos de ACL
srcdomain – um domínio de origem(cliente) dstdomain – um domínio de destino(servidor). Exemplo: acl bloqueados dstdomain http_access deny bloqueados Foi criada uma acl bloqueados que contém o endereço e em seguida foi incluída a regra para bloquear o acesso ao domínio.

17 Tipos de Elementos de ACL
url_regex: comparação de um URL baseada em expressão regular. Exemplo: acl proibir_cracker url_regex cracker http_access deny proibir_cracker Impede que qualquer usuário acesse páginas que contenham a palavra “cracker” na URL.

18 Tipos de Elementos de ACL
Um tipo de bloqueio útil em muitas situações é com relação a formatos de arquivos. Você pode querer bloquear o download de arquivos .exe ou .sh para dificultar a instalação de programas nas estações, ou bloquear arquivos .avi ou .wmv para economizar banda da rede, por exemplo. Neste caso, você pode usar a regra a seguir, especificando as extensões de arquivo desejadas. Ela utiliza o parâmetro "url_regex" dessa vez procurando pelas extensões de arquivos especificadas: acl extban url_regex -i \.avi \.exe \.mp3 \.torrent http_access deny extban

19 Tipos de Elementos de ACL
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:00 http_access deny madrugada Acl almoco time 12:00–14:00 http_access deny almoco Proxy irá bloquear acessos feitos de madrugada ou no horário de almoço.

20 Tipos de Elementos de ACL
Para bloquear dias da semana específicos temos a tabela: acl expediente time MTWHF 09:00-18:00 http_access allow expediente acl final_de_semana time SA 8:00-13:00 http_access deny final_de_semana

21 Tipos de Elementos de ACL
Proto – Protocolo de transferência Exemplo: acl manager proto cache_object http_access allow manager Permite que o cache de objetos seja acessado. Roteador

22 Tipos de Elementos de ACL
Port – número de porta de destino (servidor) Exemplo: acl safe_port port 21 http_access allow safe_port Permite o acesso à porta 21 de destino no servidor passando pelo proxy. Roteador

23 Parâmetros de Configuração
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

24 Parâmetros de Configuração
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 MB maximum_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.

25 Parâmetros de Configuração
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 permitidos acl bloqueados url_regex –i “/etc/squid3/bloqueados” http_access deny bloqueados

26 Parâmetros de Configuração
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.

27 Parâmetros de Configuração
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.

28 Parâmetros de Configuração
- Desta forma, os parâmetros ficariam da seguinte forma na configuração: refresh_pattern ^ftp: 15 20% 2280 refresh_pattern ^gopher: 15 0% 2280 refresh_pattern % 2280

29 Parâmetros de Configuração
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.

30 Proxy Autenticado 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.

31 Proxy Autenticado 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

32 Proxy Autenticado Depois de terminar de cadastrar os usuários, adicione as linhas que ativam a autenticação no squid.conf: auth_param basic realm Squid auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/squid_passwd acl autenticados proxy_auth REQUIRED http_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.

33 Proxy Autenticado 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.

34 Proxy Transparente 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.

35 Proxy Transparente Basta substituir a linha http_port 3128 por
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.

36

37 Network Adress Translation(NAT)
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.

38 NAT: Network Address Translation
resto da Internet rede local (e.x., rede caseira) 10.0.0/24 Todos os datagramas deixando a rede local têm o mesmo único endereço IP NAT origem: , e diferentes números de porta origem Datagramas com origem ou destino nesta rede usam endereços /24 para origem e destino (como usual)

39 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)

40 NAT: Network Address Translation
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

41 NAT: Network Address Translation
Tabela de tradução NAT end. lado WAN end. lado LAN 1: host envia datagrama p/ , 80 2: roteador NAT muda end. origem do datagrama de , 3345 p/ , 5001, e atualiza tabela , , 3345 …… …… O: , 3345 D: , 80 1 O: , 80 D: , 3345 4 O: , 5001 D: , 80 2 O: , 80 D: , 5001 3 4: roteador NAT muda end. destino do datagrama de , 5001 p/ , 3345 3: Resposta chega p/ end. destino: , 5001

42 NAT: Network Address Translation
campo do número de porta com 16-bits: 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

43 Source-NAT 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.

44 Source-NAT 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 /24 -o eth0 -j SNAT --to-source

45 Source-NAT 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 /24 \ -o ppp0 -j MASQUERADE

46 Destination-NAT 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.

47 Destination-NAT 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

48 Proxy Transparente 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.

49 Proxy Transparente e Iptables
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.

50 Proxy Transparente e iptables
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

51 Proxy Transparente e iptables
-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.

52 SARG 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.

53 SARG 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.

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

55 SARG 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

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

57 Configurações Adicionais
- Você pode modificar a mensagem de erro no seu proxy para Português usando dentro do arquivo de configuração a linha: error_directory /usr/share/squid3/errors/pt_br Você pode ainda personalizar as páginas de erro editando os arquivos dentro da pasta “/usr/share/squid3/errors/Portuguese” ou “/usr/share/squid3/erros/English”(de acordo com a língua definida na configuração). A pasta contém vários arquivos html, um para cada tipo de erro indicado.


Carregar ppt "Proxy SQUID Campus Cachoeiro Curso Técnico em Informática"

Apresentações semelhantes


Anúncios Google