Configurar servidor proxy Squid (Ubuntu)
Este artigo tem por objetivo ensinar como configurar um servidor Squid com configurações mínimas para seu funcionamento adequado. Para isso temos que aprender o que é um servidor proxy Squid e como ele funciona para depois podermos configurá-lo.
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.
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.
acl nome tipo string | "arquivo"
Existem vários tipos de ACL que podemos utilizar, abaixo temos os mais comuns:
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 - Tuesday (Terça-feira), W - Wednesday (Quarta-feira), H - Thursday (Quinta-feira), F - Friday (Sexta-feira) e A - Saturday (Sábado);
- src - tipo utilizado para indicar endereços IP de origem. Pode-se especificar um endereço de rede, como 192.168.16.0/24, um endereço de um determinado host, como 192.168.16.10/24 ou uma faixa de endereços, como 192.168.16.10-192.168.16.20/24;
- dst - semelhante ao tipo anterior, mas está relacionada ao endereço de destino;
- dstdomain - usado da mesma forma que srcdomain, entretanto com relação ao destino;
- srcdom_regex - avalia o domínio usando expressões regulares. Seu uso é semelhante às duas anteriores, acrescentando a flexibilidade do uso da expressão regular;
- dstdom_regex - usado da mesma forma que srcdom_regex, entretanto com relação ao destino;
- url_regex - este tipo percorre a URL à procura da expressão regular especificada. Deve ser observado que a expressão é case-sensitive, para que seja case-insensitive deve ser usada a opção -i. É o tipo mais comum de ACL, dada a flexibilidade proporcionada pelo uso de expressões regulares;
- urpath_regex - tipo semelhante à url_regex, mas procura a expressão 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 após 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 é também case-sensitive, para que seja case-insensitive deve ser usada a opção -i;
- port - realiza o controle pela porta de destino do servidor, neste tipo deve ser especificado o número da porta;
- proto - serve para especificar o protocolo, como por exemplo FTP ou HTTP;
- method - especifica o tipo de método usado na requisição, como por exemplo GET, CONNECT ou POST;
- browser - 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;
- ident - Realiza o controle de acesso baseado no nome do usuário. Este tipo requer um servidor Ident rodando na máquina do cliente;
- ident_regex - semelhante a ident, mas utilizando expressão regular;
- proxy_auth - tipo usado para implementar autenticação de usuários no proxy. A autenticação é feita com uso de softwares externos. Podem ser passados os nomes dos usuários ou usada a opção REQUIRED para que seja autenticado qualquer usuário válido;
- snmp_community - tipo usado para especificar o nome da comunidade SNMP para que se possa monitorar o Squid através deste protocolo;
- maxconn - especifica um limite de conexões vindas de um determinado cliente, interessante para uso com outras ACLs de forma a limitar quantidades de conexões para determinados endereços específicos;
- req_mime_type - 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;
- arp - tipo usado para construir lista de acesso baseada no MAC Address da interface de rede do cliente, ou seja, em vez de endereço IP da placa, usa-se o seu endereço MAC.
desde já obrigado