Se você quer mais controle e velocidade na sua rede, uma alternativa é usar um serviço/servidor de proxy. Nesse post vamos mostrar como usar o Squid Proxy com Raspberry Pi, uma alternativa de baixo custo para o seu sistema de controle de acesso à internet.

Logo Squid Proxy

Antes de falar da instalação do Squid, vamos falar um pouco sobre serviços de proxy.

O que é o Squid Proxy

O Squid é um sofware muito popular (e gratuito) que provê serviços de proxy para a sua rede. Mas o que é isso?

Basicamente o que um serviço desse tipo faz é realizar a conexão com a internet e “distribuir” essa conexão na rede local. Vamos dar uma olhada na imagem abaixo:

Os clientes da rede interna se conectam em um servidor proxy, e este por sua vez possui a conexão com a internet. Toda a comunicação com a internet passa pelo servidor proxy. É muito parecido com o que um roteador faz, certo?

Mas a diferença é que com um serviço de proxy como o Squid você pode limitar o acesso à determinadas páginas da internet, trazendo mais segurança para a sua rede, além de gerar um log de acesso que permite que você veja exatamente as páginas que cada usuário acessou.

Além das questões de segurança, uma característica muito interessante do Squid é o cache de páginas, ou seja, ele armazena no servidor as últimas páginas acessadas. Assim, na próxima vez que algum browser for fazer a requisição para esta mesma página, o proxy não precisa ir até a internet: ele simplesmente carrega a página a partir do cache local, retornando o resultado para o usuário com muito mais rapidez.

Instalando o Squid em uma placa Raspberry Pi

Vamos ver então como implantar o Squid Proxy com Raspberry Pi, em um procedimento que serve para qualquer placa da linha Raspberry. Nos nossos testes usamos uma placa Raspberry Pi 4.

Como pré-requisito para instalar o Squid, precisamos do sistema operacional instalado e configurado em um cartão SD, e o acesso direto à máquina ou via SSH.

Para instalação do sistema operacional no cartão utilizando o Noobs, recomendo o post Raspberry Pi: Instale o Raspbian e crie seu primeiro programa em Python e para configurar o acesso via SSH, consulte o post Tutorial Raspberry Pi com SSH.

Cumpridos os requisitos acima, vamos aos passos para instalação e configuração do Squid:

1) Instalação do squid via apt-get

Abrir uma sessão terminal (direto ou via ssh) e digitar:

apt-get install squid3

2) Criação do arquivo bad-sites.acl

O arquivo bad-sites.acl será usado para listar todos os websites que devem ser bloqueados para as máquinas que acessam a Internet via proxy. Vamos começar editando esse arquivo:

  • sudo vi /etc/squid/bad-sites.acl (Nota: bad-sites pode ser trocado por qualquer nome, desde que tenha a extensão .acl)
  • Pressionar a tecla “a” para começar a editar o arquivo
  • Inserir um website sem o prefixo por linha. Exemplo:
    • .adgear.com
    • .dyntrk.com
    • .254a.com
  • Pressionar ESC
  • Pressionar “:wq!” para salvar o arquivo

3) Configuração do arquivo squid.conf

Antes de mexer no arquivo de configuração, vamos criar uma cópia de segurança:

sudo cp /etc/squid/squid.conf /etc/squid/squid/orig

Agora vamos editar o squid.conf:

sudo vi /etc/squid/squid.conf

O arquivo squid.conf é extenso, para encontrar a seção correta para atualização, pressiona a tecla “/” e depois digite “INSERT YOUR OWN RULE(S)” e pressione ENTER.

Uma vez nessa seção insira as seguintes informações no arquivo:

http_access allow localhost  ← Permite o acesso a qualquer website desde o próprio proxy

acl internal_network src 192.168.1.1/24 ←  Define uma lista de ips internos a serem autorizados para acessar a internet. Troque o endereço IP pelo equivalente da rede onde o proxy foi instalado

acl bad_url dstdomain “/etc/squid/bad-sites.acl” ← Define uma lista de sites para serem bloqueados, nomeado como “bad_url” e faz referência ao arquivo bad-sites.acl criado anteriormente. Se você criou o arquivo .acl com outro nome, ele deve estar de acordo nessa linha

http_access deny bad_url ← Bloqueia o acesso a qualquer domínio pertencente à lista “bad_url”

http_access allow internal_network ← Autoriza o acesso à Internet para todas as máquinas incluídas na lista “internal_network”

# And finally deny all other access to this proxy

http_access deny all ← Bloqueia qualquer outro acesso não previsto nas listas anteriores.

4) Início do serviço squid

Para iniciar o Squid, abra uma janela de terminal e digite:

sudo service squid start

Dessa forma já teremos o serviço Squid rodando e pronto para conexão.

Usando o Squid Proxy com Raspberry Pi

O que precisamos fazer agora é configurar as máquinas (no nosso caso, Windows), para que a conexão com a internet seja feita através do nosso proxy Squid. Para isso, utilize os passos abaixo:

  • Na barra de pesquisa procure por Internet Options, ou faça isso através do painel de controle do Windows
  • Em Connections clique em Lan Settings
  • Na seção Proxy Server selecione a opção “Use a proxy server for your LAN…”
  • No campo Address entre com o endereço ip do servidor proxy. (Usamos o endereço 192.168.1.50)
  • No campo porta, entre com o valor 3128 (default)
  • Clique OK e feche a janela de configurações

Sua tela deve ficar mais ou menos assim:

Windows Internet Options Lan Settings Proxy Server

Agora basta acessar a internet normalmente, e os dados do cliente já estarão sendo registrados no servidor proxy. Você pode realizar facilmente o monitoramento do log de conexão do Squid acessando o arquivo access.log.

Para fazer isso, abra uma janela de terminal ou acesse via SSH e digite:

sudo tail -f -s 5 /var/log/squid/access.log

Gostou? Confira outros posts utilizando Raspberry Pi aqui mesmo no Arduino e Cia!

Agradeço o Sr. Maurício Thomsen pela ajuda neste post. O Maurício tem uma placa Raspberry Pi ligada a 2 anos sem interrupções, rodando o Squid Proxy. 🙂

Avalie este post!