Você está na página 1de 6

Configurar servidor proxy squid Definio

Definio
O Squid um servidor proxy utilizado para gerenciar o acesso a internet (rede externa), pois ele implementa um controle sobre o contedo que deve ou no ser acessado pelas mquinas clientes gerenciadas por este servidor.

Funcionamento
O Squid trabalha com ACLs (Listas de Controle de Acesso) e atravs dessas listas de controle ele se torna uma poderosa ferramenta na administrao de trfego de contedo entre a rede interna e a externa. So atravs dessas listas que conseguimos criar e definir o controle de acesso a internet de forma simples e flexvel, 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 no estiverem dentro deste arquivo o Squid reconhece que so sites de livre acesso. O Squid tambm conta com um cache que serve para armazenar sites visitados, dando a impresso ao usurio 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 no esto, o servidor ir busc-los e armazen-los at um certo limite.

Tipos de ACLs
As ACLs so definidas da seguinte forma: acl nome tipo string | "arquivo" Existem vrios tipos de ACL que podemos utilizar, abaixo temos os mais comuns:

srcdomain - tipo indicado para verificar o domnio da mquina cliente. Os domnios sero obtidos por resoluo reversa de IP, o que pode causar atrasos para a resposta da requisio. A definio do domnio deve ser feita da seguinte forma: ".meudominio.com.br", no podendo ser esquecido o "." (ponto) no incio; time - usado para especificar dias da semana e horrios. Os dias da semana so definidos atravs de letras que os representam, e os horrios atravs de intervalos na forma hora:minuto_inicio-hora:minuto_final. Os dias da semana so especificados assim: S - Sunday (Domingo), M - Monday (Segunda-feira), T

- Tuesday (Tera-feira), W - Wednesday (Quarta-feira), H - Thursday (Quintafeira), F - Friday (Sexta-feira) e A - Saturday (Sbado); src - tipo utilizado para indicar endereos IP de origem. Pode-se especificar um endereo de rede, como 192.168.16.0/24, um endereo de um determinado host, como 192.168.16.10/24 ou uma faixa de endereos, como 192.168.16.10192.168.16.20/24; dst - semelhante ao tipo anterior, mas est relacionada ao endereo de destino; dstdomain - usado da mesma forma que srcdomain, entretanto com relao ao destino; srcdom_regex - avalia o domnio usando expresses regulares. Seu uso semelhante s duas anteriores, acrescentando a flexibilidade do uso da expresso regular; dstdom_regex - usado da mesma forma que srcdom_regex, entretanto com relao ao destino; url_regex - este tipo percorre a URL procura da expresso regular especificada. Deve ser observado que a expresso case-sensitive, para que seja case-insensitive deve ser usada a opo -i. o tipo mais comum de ACL, dada a flexibilidade proporcionada pelo uso de expresses regulares; urpath_regex - tipo semelhante url_regex, mas procura a expresso regular na URL sem levar em conta o nome do servidor e o protocolo, isto quer dizer que a procura ser feita apenas na parte da URL aps o nome do servidor, como por exemplo, na URL http://www.servidor.com.br/pasta/sexo.html, a procura ser realizada apenas na parte /pasta/sexo.html. Ela tambm case-sensitive, para que seja case-insensitive deve ser usada a opo -i; port - realiza o controle pela porta de destino do servidor, neste tipo deve ser especificado o nmero da porta; proto - serve para especificar o protocolo, como por exemplo FTP ou HTTP; method - especifica o tipo de mtodo usado na requisio, como por exemplo GET, CONNECT ou POST; browser - usa uma expresso regular para tentar "casar" com os dados do cabealho HTTP e combinando ento com o navegador utilizado pelo cliente; ident - Realiza o controle de acesso baseado no nome do usurio. Este tipo requer um servidor Ident rodando na mquina do cliente; ident_regex - semelhante a ident, mas utilizando expresso regular; proxy_auth - tipo usado para implementar autenticao de usurios no proxy. A autenticao feita com uso de softwares externos. Podem ser passados os nomes dos usurios ou usada a opo REQUIRED para que seja autenticado qualquer usurio vlido; snmp_community - tipo usado para especificar o nome da comunidade SNMP para que se possa monitorar o Squid atravs deste protocolo; maxconn - especifica um limite de conexes vindas de um determinado cliente, interessante para uso com outras ACLs de forma a limitar quantidades de conexes para determinados endereos especficos; req_mime_type - especifica uma expresso regular para ser verificada no cabealho da requisio em busca de um tipo MIME que coincida com o especificado; arp - tipo usado para construir lista de acesso baseada no MAC Address da interface de rede do cliente, ou seja, em vez de endereo IP da placa, usa-se o seu endereo MAC.

Configurando o servidor proxy Squid no servidor


A configurao do servidor muito simples, mas precisamos prestar ateno nos passos a serem realizados para que possamos ter um servidor configurado e rodando de modo a cumprir com o seu objetivo, que administrar o trfego de contedo na internet. 1 passo: Instalar o Squid. 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. 2 passo: Agora vem a parte mais crucial, que a edio do arquivo que nos garantir todo o controle entre as mquinas clientes e o mundo externo. Este arquivo o /etc/squid/squid.conf. Estando no shell como root digite: # vim /etc/squid/squid.conf O vim abrir o arquivo e voc notar que uma arquivo gigantesco, de mais de 3.000 linhas, mas no se assuste, pois a maior parte dessas linhas so comentrios. Ele parece mais um manual do que um arquivo de configurao... rsrsrs As linhas que devem ser editadas ou criadas so as seguintes: http_port 3128

Quando voc conseguir encontrar essa linha ela pode estar comentada com um "#" antes dela, ento voc deve remov-lo. Esta linha indica ao Squid em que porta ele ficar escutando as requisies de trfego. Na internet a mais comum a porta 3128. cache_dir Esta linha pode estar comentada ou nem existir. Se tiver comentada, basta remover, se no existir, basta cri-la e complement-la da seguinte forma: cache_dir ufs /var/spool/squid 100 16 256

Esta configurao serve para que o servidor reserve um espao em disco para armazenar as pginas mais navegadas pelos clientes, fazendo com que o acesso s mesmas seja mais rpido e que o servidor s as atualize se realmente houver essa necessidade, diminuindo, assim, o trfego na internet. O 100 diz que ser reservado 100 MB em disco, o 16 que poder haver 16 diretrios e o 256 indica o nmero mximo aceito de arquivos por diretrio. cache_mem Aqui ser especificado o tamanho de memria RAM que o servidor disponibilizar para realizar as consultas. Essa linha deve ficar assim: cache_mem 8 MB

Geralmente 8 MB de memria. visible_hostname Esta linha serve para informar qual servidor bloqueou o acesso a um site, exemplo: a mquina 192.168.10.104 tentou acessar o Orkut e no conseguiu devido ao proxy ter barrado essa solicitao, ento ao navegador do cliente informado o servidor que barrou, para que ele no pense que foi um erro do computador. Essa linha deve ficar assim: visible_hostname lab1-pc01

No caso meu servidor se chama: lab1-pc01. Ateno: Geralmente as linhas a seguir devem ser criadas por voc, se elas j existirem, comente-as e faa com que a suas sejam as vlidas no arquivo. Para comentar uma linha basta adicionar um "#" na linha que desejar que seja um comentrio. acl mquinas src 192.168.10.0/24

Com esta linha estamos criando uma ACL de nome "mquinas", onde esta define que "mquinas" um grupo de mquinas que vo do intervalo de 192.168.10.0 at 192.168.10.244. acl proibir url_regex "/etc/squid/proibidos/sites_proibidos"

Com esta linha estamos criando uma ACL de bloqueio chamado "proibir", que posteriormente ser aplicada ao grupo "mquinas". Note que o comando url_regex est fazendo referncia a um arquivo chamado sites_proibidos, onde este arquivo contm os endereos que devem ser bloqueados. Mais adiante vou ensinar como este arquivo deve ser criado. Tambm ensinarei

como colocar esse arquivo em outra mquina que no seja a que tenha o servidor Squid instalado. http_access deny mquinas proibir

Esta linha est aplicando a ACL de bloqueio chamada "proibir" acl "mquinas", bloqueando assim, este grupo de mquinas. acl lab1 src 192.168.10.0/24

Agora que definimos o que no pode acessar, precisamos por ltimo definir o que pode ser acessado, seno no ir acessar nada, hehehe. Para isso estou criando uma ACL que tem a mesma faixa de IP da ACL "mquinas", porm eu preciso especificar um nome diferente, pois as ACLs nunca podem ter o mesmo nome. http_access allow lab1

Por fim estou liberando a ACL "lab1" para acessar qualquer contedo (site) que no seja os que esto dentro do arquivo de bloqueio. 3 passo: Este passo o mais simples: salvar o arquivo! ;-)

Criando o arquivo de bloqueio no servidor


Este tpico s deve ser seguido se voc desejar que o arquivo fique no servidor, do contrrio pule para o prximo tpico. Agora hora de aprendermos como criar o arquivo que ser utilizado pela nossa ACL de bloqueio para podermos comear a bloquear alguns sites. 1 passo: Criar o arquivo com o nome e no diretrio que voc colocou dentro da ACL, que no nosso caso foi /etc/squid/proibidos/sites_proibidos. Para isso basta dar o comando: # vim /etc/squid/proibidos/sites_proibidos Ento sera criado um arquivo vazio com este nome.

A estrutura do arquivo muito importante para que ele seja um arquivo vlido para o Squid. Ele s pode conter um site ou nome por linha, jamais coloque mais de um site por linha ou nome. Exemplo de arquivo com sites: orkut sexo www.orkut.com baixaki www.baixaki.com.br

Note que no arquivo existe a palavra "orkut" e o endereo "www.orkut.com". Bem, o www.orkut.com serve para bloquear o acesso quando o pessoa digitar este endereo no browser, j o nome orkut server para impedir que ele pesquise sobre esse nome, nem mesmo no Google, evitando que com isso ele encontre um site que possibilite entrar no Orkut... Bom d+, no ? :D 2 passo: Criado seu arquivo, basta salv-lo.