Aula 10 Proxy cache Squid



Documentos relacionados
Depois que instalamos o Squid vamos renomear o arquivo de configuração para criarmos um do zero.

Servidor proxy - Squid PROFESSOR : RENATO WILLIAM

5/7/2010. Apresentação. Web Proxy. Proxies: Visão Geral. Curso Tecnologia em Telemática. Disciplina Administração de Sistemas Linux

Segurança de Redes. Aula extra - Squid. Filipe Raulino filipe.raulino@ifrn.edu.br

Curso de extensão em Administração de redes com GNU/Linux

Administração de Sistemas Operacionais

SERVIDOR PROXY COM SQUID3 em GNU/Linux Debian7 Por: Prof. Roitier Campos Gonçalves

4. Abra o prompt de comando acesse o diretório c:\squid\sbin e digite os comandos abaixo:

Pré-requisitos e passos iniciais. Topologia visual

Instalação e Configuração Iptables ( Firewall)

SQUID Linux. Rodrigo Gentini

Entendendo como funciona o NAT

Prof. Roberto Franciscatto 4º Semestre - TSI - CAFW. Free Powerpoint Templates Page 1

Squid autenticando em Windows 2003 com msnt_auth

Tutorial Servidor Proxy com Squid baseado em Linux Acadêmicos : Felipe Zottis e Cleber Pivetta. Servidor Proxy

Prof. Samuel Henrique Bucke Brito

Apostila sobre Squid

Segurança de Redes. Firewall. Filipe Raulino

Procedimento para instalação do OMNE-Smartweb em Raio-X

IPTABLES. Helder Nunes

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

Projeto e Instalação de Servidores Servidores Linux Aula 6 Firewall e Proxy

Procedimentos para Reinstalação do Sisloc

Segurança de redes com Linux. Everson Scherrer Borges Willen Borges de Deus

Disciplina: Fundamentos de serviços IP Alunos: Estevão Elias Barbosa Lopes e Leonardo de Azevedo Barbosa

BACKUP ONLINE LINHA OFFICE

Atualizado em 9 de outubro de 2007

Relatório SQUID e SAMBA. Instalação e Configuração de Servidores de Rede

Prática NAT/Proxy. Edgard Jamhour. Esses exercícios devem ser executados através do servidor de máquinas virtuais: espec.ppgia.pucpr.

Sistema Operacional Unidade 13 Servidor Samba. QI ESCOLAS E FACULDADES Curso Técnico em Informática

Sarg Proxy transparente

Squid autenticado no Active Directory com Winbind

Configurando um servidor DHCP

Procedimentos para Instalação do Sisloc

MANUAL DE CONFIGURAÇÃO

Linux Network Servers

Passo a Passo da instalação da VPN

III WTR do POP-BA III Workshop de Tecnologias de Redes Ponto de Presença da RNP na Bahia Instrutor: Ibirisol Fontes Monitor: Jundaí Abdon.

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Curitiba, Novembro Resumo

Conexão rápida entre dois computadores em uma plataforma Linux

UM PBX GENUINAMENTE BRASILEIRO

LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER

Firewall. Tutorial Firewall em Linux Acadêmicos: Felipe Zottis e Cleber Pivetta

NetEye Guia de Instalação

GUIA PRÁTICO DE INSTALAÇÃO

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - MILLENNIUM

Servidor Proxy armazenamento em cache.

Guia de Conectividade Worldspan Go Res! A V A N Ç A D O

Senha Admin. Nessa tela, você poderá trocar a senha do administrador para obter acesso ao NSControl. Inicialização

Manual Administrador - Mídia System

INSTALANDO SISTEMA PFSENSE COMO FIREWALL/PROXY

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - SLIM

Procedimentos para configuração de Filters

Prof. Samuel Henrique Bucke Brito

MSN-Proxy v0.7 no Debian 5 (Atualizado)

Transparent Proxy: marcando essa opção o seu proxy será transparente. Não havendo a necessidade de configurações adicionais no navegador dos clientes.

ALTERNATIVA PARA CONEXÃO VIA INTERNET DE IP MASCARADO A IP REAL

Guia de instalação UEG Linux LTS

Procedimentos para Configuração de Redirecionamento de Portas

Atualizaça o do Maker

Faculdade de Tecnologia SENAC Goiás. Disciplina: Gerenciamento de Rede de Computadores. Goiânia, 16 de novembro de 2014.

Características de Firewalls

FIREWALL. Prof. Fabio de Jesus Souza. Professor Fabio Souza

Sistema Operacional Unidade 12 Comandos de Rede e Acesso Remoto

HOW TO. Instalação do Firewall 6.1 Software

Elaboração de Script de Firewall de Fácil administração

Procedimentos para Instalação do SISLOC

Manual de Administração DPS Printer 2.1 NDDigital S/A - Software

Como liberar acesso ao Skype utilizando Proxy Socks.

Comm5 Tecnologia Manual de utilização da família MI. Manual de Utilização. Família MI

TUTORIAL: MANTENDO O BANCO DE DADOS DE SEU SITE DENTRO DO DOMÍNIO DA USP USANDO O SSH!

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

- Wireless e NTP - 272

Curso de extensão em Administração de sistemas GNU/Linux: redes e serviços

Instalação do Linux Educacional 3.0 Bancadas SED

Sistema de Instalação e Criação da Estrutura do Banco de Dados MANUAL DO INSTALADOR. Julho/2007. Ministério da saúde

Segurança em Sistemas de Informação

Agente local Aranda GNU/Linux. [Manual Instalación] Todos los derechos reservados Aranda Software [1]

TUTORIAL DE INSTALAÇÃO DO PFSENSE E UMA REDE INTERNA NO VIRTUALBOX

Comandos Linux Comando tcpdump, guia de referência e introdução. Sobre este documento

Padrão ix. Manual de Instalação do Q-Ware Server Versão

Configurando o IIS no Server 2003

É o UniNorte facilitando a vida de nossos docentes e discentes.

Aula 2 Servidor DHCP. 2.1 dhcp

UM PBX GENUINAMENTE BRASILEIRO MANUAL DE INSTALAÇÃO COM IMAGEM ISO

Introdução. O Windows Server 2003 está dividido em quatro versões:

Na Figura a seguir apresento um exemplo de uma "mini-tabela" de roteamento:

Online Help StruxureWare Data Center Expert

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Manual do usuário. Mobile Auto Download

Fox Gerenciador de Sistemas

Servidor Proxy. Firewall e proxy

Virtualização com Metarouter Squid Autenticado através do OpenWRT. Sérgio Souza.

Roteador Load-Balance / Mikrotik RB750

NetEye Guia de Instalação

ESET Remote Administrator ESET EndPoint Solutions ESET Remote Adminstrator Workgroup Script de Logon

Transcrição:

1 Aula 10 Proxy cache Squid 10.1 Proxy Um proxy é um servidor HTTP com características especiais de filtragem de pacotes que tipicamente são executados em uma máquina (com ou sem firewall). O proxy aguarda por uma requisição de dentro do firewall, a repassa para um servidor remoto do outro lado do firewall (caso tenha), recebe a resposta e a envia de volta ao cliente que requisitou o serviço ou página. A principal vantagem dos proxies é o armazenamento temporário de documentos, ou seja, em uma estação que utiliza proxy para acessar páginas da internet, uma cópia e cada página visitada é guardada no cache do proxy, que é uma área do disco rígido com tamanho especificado pelo administrador e que contém as requisições do sistema, portanto, caso algum outro usuário acessar a mesma página, não há a necessidade de se buscar essa ágina na internet novamente, já que a mesma está guarda localmente e assim carregada do servidor, não necessitando acesso externos, havendo portanto ganho de desempenho tanto ao carregar o arquivo, como também para o servidor atender ais demandas de acesso. 10.2 Squid O Squid foi feito a partir do projeto Harvest da ARPA, e tem como mentor do seu projeto Duane Wesseis, do National Laboratory for Apllied Network Reaserch, e uma lista enorme de colaboradores. O nome Squid (lula, animal marinho) foi colocado simplesmente para diferenciar um software do outro, ou seja, o Squid, do proxy. O Squid é um dos proxies para Linux mais utilizados na atualidade, pois trata se de um programa robusto, simples e extremamente confiável. A sua instalação e utilização tornou se quase que obrigatório em um sistema Linux, tanto é que vem em todos os CDs de instalação de quase todas as distribuições Linux. O Squid, além de ser um excelente cache (armazenador) de navegação, funciona também como uma extraordinária ferramenta de filtragem por conteúdo, como auxílio ao funcionamento de firewall, permitindo inclusive criação de regras (ACLs) que controlam a entrada de dados na rede. O Squid é um software livre, o que implica dizer que ele está licenciado nos termos da GPL (General Public License), com isso temos uma garantia a mais (ao nosso ver, sem sombras de dúvidas é muito mais seguro que ter o software nas mão de uma única corporação que pode fechar as portas de uma hora para outra, como já vimos por várias vezes) de que nenhuma corporação vai descontinuar o projeto e deixar os seus usuários sem rumo, já que é a própria comunidade de usuários que contribui com o desenvolvimento e avanços deste software. 10.3 Objetivos de um proxy A função básica de um proxy na rede é servir como um ponto intermediário, uma ponte na rede entre uma interface de rede local e a internet, e além disso também, ele possui a função de manter um cache de conteúdo acessado na internet, armazenando em disco no servidor proxy. Assim, quando partir uma

2 solicitação de outra máquina na rede buscando o mesmo conteúdo, será apenas verificado se não houve alterações na página original, se a modificação de fato não for confirmada, o proxy envia o conteúdo direto de seu cache interno para a máquina cliente da rede, pois a única máquina que sai diretamente para a internet é o serviço proxy, e os clientes da rede se comunicam diretamente com ele. Porém se o conteúdo não tiver sido cacheado antes, e por conseqüência não estiver presente no cache, então o servidor irá baixar esse conteúdo para o seu cache. Dessa forma, lá estará uma cópia para uma consulta futura proveniente dos clientes, reduzindo assim o tempo de acessos e o consumo de banda para uso de internet. 10.4 Normas Com relação a termos de segurança em redes, a utilização de um proxy cache em uma rede e sua configuração possuem vínculo de procedimento com a orientação da Norma BS7799 em sua versão NBR ISO/IEC 10799:2001 e NBR ISO/IEC 1079:2005, no item 9.4, onde se diz:... em uma rede devem existir mecanismos de controle de acesso à serviços de rede, tanto internos quantos externos (sendo que o segundo caso é o mais específico de controle de proxy), fazendo controle de acesso dos usuários aos serviços de informação... 10.5 Requisitos mínimos de hardware Os requisitos mínimos aconselháveis de hardware para um bom desempenho do seu servidor proxy são: K6 II 350 Mhz 128 RAM Disco IDE 10 GB para sistema e log. 2 placas de rede (para isolar as redes) 10.6 Instalação Caso queira se fazer a instalação do proxy cache Squid de forma isenta de distribuição, deve se buscar os pacotes binários do mesmo no endereço: http://www.squid cache.org Após o download do arquivo binário, deve se proceder com o desempacotamento e decompactação do mesmo: # tar xvfz squid 2.6.STABLE10.tar.gz # cd squid 2.6.STABLE10 #./configure prefix=/etc/squid # make # make install Os arquivos do Squid serão devidamente instalados no diretório /etc/squid neste caso, poruqe assim o definimos, mas geralmente quando instalamos via pacote coilado ele se instala em /usr/local/squid. Caso queira se utilizar os instaladores da distribuição, os passos são simples: Red Hat/Fedora: # yum install squid

3 ou, Debian: # apt get install squid Isso irá gerar os arquivos de configuração do squid dentro do diretório /etc. 10.7 Configuração básica do Squid O arquivo a ser utilizado aqui é o squid.conf que se localiza em /etc/squid/squid.conf. # vim /etc/squid/squid.con Passo 1: hablitar a porta do squid http_port 10.0.0.1:3128 Obs de segurança: o Squid deve habilitar o socket de conexão exclusivamente para a respectiva rede a fim de se obter uma proteção maior contra a possibilidade de o servidor ser atribuído com a função proxy anônimo, pois essa característica é utilizada muitas vezes por invasores para mascarar Ips de origem de invasão, ou até por usuários mal intencionados que desejam burlar políticas de controle de acesso préestabelecidas. Passo 2: habilitar o cache para do padrão para o valor de espaço em disco desejado e quantidade de diretórios desejados: padrão: cache_dir /var/cache/squid 100 16 256 alteração: cache_dir /var/cache/squid valor_em_mb 64 64 Passo 3: criar/ativar os diretórios de cache: # /etc/init.d/squid start ou # squid k reconfigure Somente estas alterações são suficientes para a ativação do Squid como um proxy cache básico, logo agora nos resta tomarmos alguns cuidados básicos de checagem, executando os seguintes comandos: netstat serve para verificar as portas ativas na pilha de rede do servidor: # netstat ntl less # netstat nul less fuser serve para verificar os processos ativos nas respectivas portas alocadas pelo Squid: # fuser v 3128/tcp # fuser v 3128/udp

4 10.8 Acessos e logs Os logs dos clientes podem ser monitorado através dos logs relacionados ao Squid, que se localizam em /usr/local/squid/var/logs/cache.log, por meio do comando tail: acessos : # tail f /var/log/squid/access.log cache: # tail f /var/log/squid/cache.log 10.9 ACLs (Access Lists Lista de Acessos) As ACL permitem especificar endereços de origem ou destino, domínios, horários, usuários, portas ou métodos de conexão ao Proxy, que servirão de base para permitir ou negar o acesso baseando se em conjuntos dessas ACL's. Isto permite uma grande flexibilidade na configuração do Squid: podemos, por exemplo, especificar quais endereços podem ser acessados, quais não podem ser acessados, que certo endereço somente pode ser acessado em determinado horário, que um usuário somente pode acessar a partir de uma maquina especifica, que um protocolo pode ou não ser utilizado, ou qualquer combinação dessas permissões/restrições. acl minharede src 192.168.0.0/255.255.255.0 Máscara da ACL _ Domínio, rede ou IP da ACL Tipo de ACL Nome da ACL Comando de criação de ACL Isto cria uma ACL de nome minharede do tipo src (IP de origem) sendo seu domínio 192.168.0.0/255.255.255.0 uma rede classe C. Agora temos que dar permissão a esta ACL a diretiva que faz isso e o http_access, então temos que inserir no squid.conf: http_access allow minharede Mas isso não pode ser feito em qualquer lugar, o squid e meio chato com a ordem dos parâmetros. Vamos ver como esta o arquivo padrão e quais alterações devem ser feitas para entendermos melhor. 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 80 21 443 563 70 210 1025 65535

5 acl Safe_ports port 280 # http mgmt acl Safe_ports port 488 # gss http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multilink http acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access deny!safe_ports http_access deny CONNECT!SSL_ports http_access deny all Como podemos ver existem vários tipos de ACL, vamos nos ater a primeira, foi criada uma ACL do tipo src, isto significa maquina de origem, com nome "all" que corresponde a qualquer maquina existente. A ultima diretiva diz que a conexões correspondentes a diretiva all estão proibidas de continuar. A diretiva ACL tem de ser criada antes de ser conferido algum direito. Então agora a ordem das linhas deverá ser a seguinte: 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 80 21 443 563 70 210 1025 65535 acl Safe_ports port 280 # http mgmt acl Safe_ports port 488 # gss http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multilink http acl CONNECT method CONNECT # ACL's do usuário acl minharede src 192.168.0.0/255.255.255.0 #ACL correspondente a rede interna # permissões para as ACLs http_access allow minharede http_access deny all #permite conexões da rede interna Podemos ver que temos varias linhas para a ACL Safe_ports, isso merece duas considerações, primeiro e possível especificar vários parâmetros para uma ACL, seja dando um espaço entre os

6 parâmetros ou colocando duas entradas para a mesma ACL assim se tivéssemos que permitir também a rede 192.168.1.0/255.255.255.0 poderíamos criar a ACL de duas formas: # com espaço: acl minharede 192.168.0.1/255.255.255.0 192.168.1.0/255.255.255.0 #ou com duas linhas acl minharede 192.168.0.0/255.255.255.0 acl minharede 192.168.1.0/255.255.255.0 A segunda consideração e que por padrão as diretivas ACL são do tipo "OU", ou seja uma conexão pertencera a uma ACL se qualquer um dos parâmetros coincidir. No nosso exemplo, a rede 192.168.0.0 OU rede 192.168.1.1 coincidiram com a ACL. A ordem entre as diretivas ACL não e importante. Para as diretivas http_access a coisa funciona diferente, como podemos ver a diretiva de permissão da rede interna foi inserida antes do deny all. O squid lê as diretivas de CIMA para BAIXO, parando a comparação na primeira que coincidir. Além disso as diretivas http_access são do tipo "E", para que a diretiva entre em ação, a conexão tem de estar coincidindo com TODAS as ACL's especificadas. EX: acl minharede src 192.168.0.0/255.255.255.0 acl horacom time SMTWHFA 09:00 10:00 http_access allow minharede horacom http_access deny all No exemplo acima, só as maquinas da rede 192.168.0.0/255.255.225 de 09:00 as 10:00 poderão acessar a Internet, as demais maquinas ou qualquer maquina fora deste horário não poderão acessar. 10.10 Configuração do squid.conf A seguir trecho do arquivo squid.conf, com parte de acl de rede e de regras pronto para usar: # ACLs acl permitir_rede src 10.1.1.0 acl horario time SMTWHFA 09:00 10:00 acl proibir_sites dstdomain "/usr/local/squid/etc/sitios" acl proibir_palavras url_regex i "/usr/local/squid/etc/palavras" # permissões http_access allow permitir_rede http_access allow permitir_rede horario http_access deny proibir_sitios http_access deny proibir_palavras

7 http_access deny permitir_rede horario http_access deny proibir_ip Onde os arquivos proibir_sitios e proibir_palavras devem ser atualizados constantemente, para que possamos ter sempre um filtro de conteúdos bem atualizados e funcional. Exemplo do arquivo proibir_sitios: www.sexy.com.br www.playboy.com www.playboy.com.br Exemplo de arquivo proibir_palavras: playboy sexy ninfeta msn orkut 10.11 Outras ACLs 10.11.1 ACL de arquivos de download Exemplo de ACL que servem para bloquear arquivos de downloads pela internet. Exemplo: acl mp3 url_regex i.*\.mp3$ acl mpeg url_regex i.*\.mpeg$ acl zip url_regex i.*\.zip$ acl avi url_regex i.*\.avi$ acl exe url_regex i.*\.exe$ acl rar url_regex i.rar acl scr url_regex i.scr acl msi url_regex i.msi acl wmv url_regex i.wmv acl pif url_regex i.pif 10.11.2 ACL com MAC address Para que o Squid possa controlar o acesso por MAC ADDRESS da placa de rede: As regras adicionadas do arquivo squid.conf ficariam da seguinte maneira: # ACLs MAC address acl iface1 arp 11:11:11:11:11:11 acl iface2 arp 12:12:12:12:12:12

8 acl iface3 arp 13:13:13:13:13:13 # permissões MAC address http_access allow iface1 http_access allow iface2 http_access allow iface3 10.12 Squid com autenticação Para ativas autenticação de usuários no squid, devemos localizar a linha: #auth_param basic program /usr/libexec/ncsa_auth /usr/etc/passwd E descomentá la, deixando assim: auth_param basic program /usr/bin/ncsa_auth /etc/squid/passwd Descomentar as seguintes linhas também: auth_param basic children 5 auth_param basic realm Digite sua senha auth_param basic credentialsttl 2 hours auth_param basic casesensitive off Feito isso é só salvar e fechar o arquivo. Agora devemos localizar o arquivo ncsa_auth: # find / name ncsa_auth Depois de localizá lo, copie o para o diretório /usr/bin: # cp /usr/sbin/ncsa_auth /usr/bin/ncsa_auth Criando usuários do Squid Agora devemos criar o arquivo onde ficarão os usuários e senhas. No arquivo de configuração especificamos que o arquivo onde ficarão os usuários e senha é /etc/squid/passwd. Então vamos criá lo: # cd /etc/squid # htpasswd c passwd aluno Onde: htpasswd : comando para criar o arquivo de senhas; c : parâmetro para criar o arquivo; passwd : nome do arquivo; aluno : usuário. Isto se faz só na primeira vez para criar o arquivo, depois é só digitar (sem o " c"):

9 # htpasswd passwd outro_usuário Cada vez que você criar um usuário ele vai pedir para que você digite a senha dele. Agora vamos reiniciar o Squid: # /etc/init.d/squid restart ou # squid k reconfigure O Squid já estará autenticando os usuários, agora deve se configurar o navegador das estações para usar proxy. 10.13 Ativando proxy transparente no Squid 2.6.x Para ativar o suporte a proxy transparente no Squid série 2.6 basta: 1) acessar o arquivo /etc/squid/squid.conf e alterar as seguinte linha: http_port 3128 para: http_port 192.168.0.1:3128 transparent Salvar e reiniciar o Squid normalmente. 2) adicionar a seguinte linha no firewall: # iptables t nat A PREROUTING d 192.168.0.0/24 p tcp dport 80 j REDIRECT to port 3128 O Squid já está com suporte a proxy transparente. 10.14 Ativando proxy transparente no Squid 2.4.x Se quisermos usar o squid.conf da série 2.4, devemos retirar as seguintes linhas: httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on