You are on page 1of 6

Configurar servidor proxy squid Definição

Definição
O Squid é um servidor proxy utilizado para gerenciar o acesso a internet (rede externa), pois ele implementa um controle sobre o conteúdo que deve ou não ser acessado pelas máquinas clientes gerenciadas por este servidor.

Funcionamento
O Squid trabalha com ACLs (Listas de Controle de Acesso) e através dessas listas de controle ele se torna uma poderosa ferramenta na administração de tráfego de conteúdo entre a rede interna e a externa. São através dessas listas que conseguimos criar e definir o controle de acesso a internet de forma simples e flexível, tornando o Squid uma ferramenta precisa em seu objetivo, que é basicamente bloquear o acesso a determinados sites, que podem ser fornecidos dentro de um arquivo de texto, e os que não estiverem dentro deste arquivo o Squid reconhece que são sites de livre acesso. O Squid também conta com um cache que serve para armazenar sites visitados, dando a impressão ao usuário de estar navegando mais rapidamente, que de fato é verdade, pois ele está buscando um site ou uma parte do site que já está salva dentro do servidor e as outras partes ou sites que ainda não estão, o servidor irá buscá-los e armazená-los até um certo limite.

Tipos de ACLs
As ACLs são definidas da seguinte forma: acl nome tipo string | "arquivo" Existem vários tipos de ACL que podemos utilizar, abaixo temos os mais comuns:

srcdomain - tipo indicado para verificar o domínio da máquina cliente. Os domínios serão obtidos por resolução reversa de IP, o que pode causar atrasos para a resposta da requisição. A definição do domínio deve ser feita da seguinte forma: ".meudominio.com.br", não podendo ser esquecido o "." (ponto) no início; time - usado para especificar dias da semana e horários. Os dias da semana são definidos através de letras que os representam, e os horários através de intervalos na forma hora:minuto_inicio-hora:minuto_final. Os dias da semana são especificados assim: S - Sunday (Domingo), M - Monday (Segunda-feira), T

ident_regex . entretanto com relação ao destino.10/24 ou uma faixa de endereços. req_mime_type . maxconn .Wednesday (Quarta-feira). entretanto com relação ao destino. para que seja case-insensitive deve ser usada a opção -i.Realiza o controle de acesso baseado no nome do usuário. mas utilizando expressão regular. ident . como 192. Deve ser observado que a expressão é case-sensitive.Thursday (Quintafeira).avalia o domínio usando expressões regulares. como 192.semelhante a ident.                  .0/24. como 192. mas procura a expressão regular na URL sem levar em conta o nome do servidor e o protocolo. Ela é também case-sensitive. W .168. neste tipo deve ser especificado o número da porta. Este tipo requer um servidor Ident rodando na máquina do cliente.usado da mesma forma que srcdomain. CONNECT ou POST.este tipo percorre a URL à procura da expressão regular especificada. method . acrescentando a flexibilidade do uso da expressão regular.especifica o tipo de método usado na requisição.tipo usado para construir lista de acesso baseada no MAC Address da interface de rede do cliente. urpath_regex . Pode-se especificar um endereço de rede. mas está relacionada ao endereço de destino.usado da mesma forma que srcdom_regex. como por exemplo FTP ou HTTP.html.usa uma expressão regular para tentar "casar" com os dados do cabeçalho HTTP e combinando então com o navegador utilizado pelo cliente. browser .Saturday (Sábado). Seu uso é semelhante às duas anteriores. H .16.16. isto quer dizer que a procura será feita apenas na parte da URL após o nome do servidor. srcdom_regex . A autenticação é feita com uso de softwares externos. interessante para uso com outras ACLs de forma a limitar quantidades de conexões para determinados endereços específicos. dada a flexibilidade proporcionada pelo uso de expressões regulares.br/pasta/sexo. É o tipo mais comum de ACL. arp . em vez de endereço IP da placa. como por exemplo GET.especifica um limite de conexões vindas de um determinado cliente. como por exemplo.tipo usado para implementar autenticação de usuários no proxy.Friday (Sexta-feira) e A .especifica uma expressão regular para ser verificada no cabeçalho da requisição em busca de um tipo MIME que coincida com o especificado.168.servidor.168. dst . F . proxy_auth .Tuesday (Terça-feira).html. proto . a procura será realizada apenas na parte /pasta/sexo.tipo usado para especificar o nome da comunidade SNMP para que se possa monitorar o Squid através deste protocolo.16. . url_regex . snmp_community .16. ou seja.tipo semelhante à url_regex. usa-se o seu endereço MAC.168. para que seja case-insensitive deve ser usada a opção -i.serve para especificar o protocolo.realiza o controle pela porta de destino do servidor.tipo utilizado para indicar endereços IP de origem. src . na URL http://www.10192. um endereço de um determinado host. dstdom_regex .semelhante ao tipo anterior. Podem ser passados os nomes dos usuários ou usada a opção REQUIRED para que seja autenticado qualquer usuário válido. dstdomain .com.20/24. port .

000 linhas. mas precisamos prestar atenção nos passos a serem realizados para que possamos ter um servidor configurado e rodando de modo a cumprir com o seu objetivo. Este arquivo é o /etc/squid/squid. mas não se assuste. Na internet a mais comum é a porta 3128. Ele parece mais um manual do que um arquivo de configuração. então você deve removê-lo.conf. que é a edição do arquivo que nos garantirá todo o controle entre as máquinas clientes e o mundo externo. 2° passo: Agora vem a parte mais crucial. Se tiver comentada. 1° passo: Instalar o Squid.. pois a maior parte dessas linhas são comentários. Estando no shell como root digite: # vim /etc/squid/squid. de mais de 3.Configurando o servidor proxy Squid no servidor A configuração do servidor é muito simples. basta criá-la e complementá-la da seguinte forma: cache_dir ufs /var/spool/squid 100 16 256 . se não existir. rsrsrs As linhas que devem ser editadas ou criadas são as seguintes: http_port 3128 Quando você conseguir encontrar essa linha ela pode estar comentada com um "#" antes dela. Para isso basta estarmos no shell como root e digitarmos o seguinte comando: # apt-get install squid E esperar até que ele termine de baixar e instalar o pacote. cache_dir Esta linha pode estar comentada ou nem existir..conf O vim abrirá o arquivo e você notará que é uma arquivo gigantesco. basta remover. Esta linha indica ao Squid em que porta ele ficará escutando as requisições de tráfego. que é administrar o tráfego de conteúdo na internet.

acl proibir url_regex "/etc/squid/proibidos/sites_proibidos" Com esta linha estamos criando uma ACL de bloqueio chamado "proibir". acl máquinas src 192. onde esta define que "máquinas" é um grupo de máquinas que vão do intervalo de 192. Essa linha deve ficar assim: visible_hostname lab1-pc01 No caso meu servidor se chama: lab1-pc01. o tráfego na internet. exemplo: a máquina 192. Também ensinarei .0/24 Com esta linha estamos criando uma ACL de nome "máquinas".0 até 192.244. se elas já existirem.10. o 16 que poderá haver 16 diretórios e o 256 indica o número máximo aceito de arquivos por diretório. cache_mem Aqui será especificado o tamanho de memória RAM que o servidor disponibilizará para realizar as consultas.10. para que ele não pense que foi um erro do computador. comente-as e faça com que a suas sejam as válidas no arquivo. Note que o comando url_regex está fazendo referência a um arquivo chamado sites_proibidos. Essa linha deve ficar assim: cache_mem 8 MB Geralmente 8 MB de memória.Esta configuração serve para que o servidor reserve um espaço em disco para armazenar as páginas mais navegadas pelos clientes.104 tentou acessar o Orkut e não conseguiu devido ao proxy ter barrado essa solicitação.10.168. então ao navegador do cliente é informado o servidor que barrou.10. diminuindo. Mais adiante vou ensinar como este arquivo deve ser criado. Atenção: Geralmente as linhas a seguir devem ser criadas por você. que posteriormente será aplicada ao grupo "máquinas". visible_hostname Esta linha serve para informar qual servidor bloqueou o acesso a um site. O 100 diz que será reservado 100 MB em disco.168. Para comentar uma linha basta adicionar um "#" na linha que desejar que seja um comentário.168. assim. onde este arquivo contém os endereços que devem ser bloqueados. fazendo com que o acesso às mesmas seja mais rápido e que o servidor só as atualize se realmente houver essa necessidade.168.

do contrário pule para o próximo tópico. bloqueando assim. pois as ACLs nunca podem ter o mesmo nome. Para isso estou criando uma ACL que tem a mesma faixa de IP da ACL "máquinas".10. que no nosso caso foi /etc/squid/proibidos/sites_proibidos. precisamos por último definir o que pode ser acessado.como colocar esse arquivo em outra máquina que não seja a que tenha o servidor Squid instalado. este grupo de máquinas.0/24 Agora que definimos o que não pode acessar. acl lab1 src 192. porém eu preciso especificar um nome diferente. 3° passo: Este passo é o mais simples: salvar o arquivo! . http_access deny máquinas proibir Esta linha está aplicando a ACL de bloqueio chamada "proibir" à acl "máquinas". http_access allow lab1 Por fim estou liberando a ACL "lab1" para acessar qualquer conteúdo (site) que não seja os que estão dentro do arquivo de bloqueio. . 1° passo: Criar o arquivo com o nome e no diretório que você colocou dentro da ACL. Para isso basta dar o comando: # vim /etc/squid/proibidos/sites_proibidos Então sera criado um arquivo vazio com este nome.-) Criando o arquivo de bloqueio no servidor Este tópico só deve ser seguido se você desejar que o arquivo fique no servidor.168. hehehe. senão não irá acessar nada. Agora é hora de aprendermos como criar o arquivo que será utilizado pela nossa ACL de bloqueio para podermos começar a bloquear alguns sites.

nem mesmo no Google.orkut.. Bom d+. .. Bem.com baixaki www.com. evitando que com isso ele encontre um site que possibilite entrar no Orkut. Exemplo de arquivo com sites: orkut sexo www. Ele só pode conter um site ou nome por linha.baixaki.orkut.A estrutura do arquivo é muito importante para que ele seja um arquivo válido para o Squid. o www.br Note que no arquivo existe a palavra "orkut" e o endereço "www. já o nome orkut server para impedir que ele pesquise sobre esse nome. jamais coloque mais de um site por linha ou nome.orkut. não é? :D 2° passo: Criado seu arquivo.com serve para bloquear o acesso quando o pessoa digitar este endereço no browser.com". basta salvá-lo.