Filtro da web PfSense: filtro HTTPS com SquidGuard

squidguard no pfsense

Como administrador do sistema, você constantemente enfrenta a questão de até que ponto deve filtrar o conteúdo da Internet. Esta pergunta deve ser respondida sempre que os usuários tenham acesso à Internet, seja na empresa, escolas, clubes, bibliotecas e etc.

As opiniões sobre este assunto são muito diversas. Não há 100% de proteção. É muito mais importante educar os usuários a usar a Internet de maneira responsável. Este é um grande desafio e leva tempo. Os analistas de suporte enfrentam essa tarefa e geralmente não sabem a melhor maneira de resolvê-la. Especialmente nas empresas, onde você nem sempre pode monitorar as telas, um filtro da web é muito útil. Em alguns países, a lei exige um filtro da web para as empresa e escolas. Mas às vezes, trata-se de bloquear determinados sites, como Facebook, Netflix e entre outros.

Portanto neste tutorial gostaria de mostrar como configurar um filtro da web pfSense.

Observações preliminares

O pfSense é um firewall de código aberto amplamente usado que usamos em alguns clientes. (Se você precisar comprar para instalar o pfSense , (consulte nosso guia de instalação). Com a ajuda do Squid (um servidor proxy) e do SquidGuard (o verdadeiro filtro da Web), filtraremos as conexões HTTP e HTTPS. Para este tutorial, primeiro precisamos de uma instalação ativa do pfSense. O firewall pode ser baixado aqui e instalado de acordo com estas instruções.

Como funciona

A filtragem de conexões HTTP é muito fácil e rápida de configurar. Como essas conexões não são criptografadas é possível inspecioná-las e, portanto, bloqueá-las total ou parcialmente. Hoje a maioria do sites (mesmo aqueles que você deseja bloquear) usam HTTPS, ou seja, uma conexão criptografada entre o navegador do usuário e o servidor da web. Graças ao Let’s Encrypt, agora qualquer pessoa pode configurar um certificado gratuito para o site. Isso é bom por si só, pois aumenta a segurança e torna muitos ataques impossíveis ou mais difíceis. No entanto, também dificulta a filtragem de conteúdo indesejado.

Esse “problema” pode ser resolvido de duas maneiras:

1. ataque man-in-the-middle

É uma forma de ataque em que os dados de duas partes são interceptados por alguém por isso chamado ataque do”homem no meio“. O servidor proxy descriptografa a conexão HTTPS e a reconstrói. Isso permite que eles vejam a conexão e a filtrem de acordo. O problema que quando isso ocorre os dados não são mais confiáveis, já que o “meio” foi violado.

2. filtro de URL através do SNI

Outra possibilidade é filtrar através do SNI ( Server Name Indication ). O certificado é consultado entre o navegador e o servidor da Web e assim, uma conexão criptografada é estabelecida, o navegador envia o nome de domínio (FQDN) que deseja consultar. Esta parte ainda não está criptografada e portanto, pode ser lida usando um proxy (transparente) e usada para filtragem. A figura a seguir ilustra o handshake TLS.

Você pode ver facilmente que o SNI é enviado antes da troca de chaves e da conexão segura real. Aproveitamos esse princípio e além do filtro da web para conexões HTTP, também podemos configurar um filtro de URL para conexões HTTPS sem destruir o HTTPS por um ataque do “homem no meio”.

Pesquisa segura para mecanismos de pesquisa

Crie regras de firewall para DNS

Primeiro, precisamos ativar a resolução DNS no pfSense (em Serviços → Resolução DNS ) e depois salvar e aplicar as alterações.

Solução de DNS

Para que os computadores da rede usem o servidor DNS do firewall, precisamos de uma regra que encaminhe todas as outras solicitações DNS ao firewall. Para fazer isso, criamos uma nova regra no Firewall → NAT na guia Port Forward com um clique em um dos botões de adição . E vemos o seguinte:

  1. Interface: LAN
  2. Protocolo: TCP / UDP
  3. Destino: Qualquer
  4. Intervalo de portas de destino: DNS (53)
  5. Redirecionar IP Traget: 127.0.0.1
  6. Redirecionar porta de destino: DNS (53)
  7. Descrição: descreva sua regra

Redirecionamento NAT

Agora precisamos garantir que nossa regra de firewall recém-criada esteja no lugar certo. Ele deve estar acima do padrão ” Permitir LAN padrão para qualquer regra “! Para fazer isso, abrimos as regras do firewall em Firewall → Regras e carregamos a regra. Em seguida, salve com Salvar e aplicar para aplicar as alterações.

Regras da LAN

Substituições de host para Bing e YouTube

Em seguida, criaremos algumas entradas DNS para garantir que sua pesquisa segura seja usada para Google e Bing. Para fazer isso, abrimos a Resolução DNS em Serviços → Resolução DNS novamente e adicionamos as seguintes entradas na seção Substituições de Host abaixo.

Bing

  • Host: www
  • Domínio: bing.com
  • Endereço IP: 204.79.197.220
  • Descrição: Bing
  • Em seguida, salve com Salvar

Em seguida, a entrada para o YouTube:

  • Host: www
  • Domínio: youtube. com
  • Endereço IP: 216.239.38.120
  • Descrição: Youtube
  • Salve novamente com Salvar

Substituições de host

Agora aplique as alterações novamente com Aplicar .

Substituições de host para o Google

O Google usa muitos domínios diferentes e levaria muito tempo para inseri-los manualmente. É por isso que escolhemos uma maneira diferente para o Google. Primeiro, precisamos fazer login no pfSense através do SSH (ou direto nele). O SSH deve primeiro ser ativado na interface da web e Sistema → Avançado na seção Shell Seguro .

Ativar SSH

Agora podemos efetuar login com o seguinte comando via SSH (defina o endereço IP!):

$ ssh [email protected]

No próximo menu, selecionamos a opção “8” (Shell).

pfSense Shell

Agora, criamos um arquivo no qual inserimos nossas entradas DNS para o Google. Podemos fazer isso com da seguinte maneira:

 $ vi /var/unbound/google.conf

Para sair do editor, precisamos digitar :wq (os dois pontos são importantes!). É tudo o que precisamos fazer na linha de comando.

Agora podemos editar o arquivo recém-criado usando Diagnóstico → Editar arquivo . Para fazer isso, digite o caminho /var/unbound/google.conf e pressione Upload .

Editar arquivo

Agora, copiamos o seguinte conteúdo para o arquivo:

local-data: "www.google.ad A 216.239.38.120"
local-data: "www.google.ae A 216.239.38.120"
local-data: "www.google.com A 216.239.38.120"
local-data: "www.google.com.af A 216.239.38.120"
local-data: "www.google.com.ag A 216.239.38.120"
local-data: "www.google.com.ai A 216.239.38.120"
local-data: "www.google.al A 216.239.38.120"
local-data: "www.google.am A 216.239.38.120"
local-data: "www.google.co.ao A 216.239.38.120"
local-data: "www.google.com.ar A 216.239.38.120"
local-data: "www.google.as A 216.239.38.120"
local-data: "www.google.at A 216.239.38.120"
local-data: "www.google.com.au A 216.239.38.120"
local-data: "www.google.az A 216.239.38.120"
local-data: "www.google.ba A 216.239.38.120"
local-data: "www.google.com.bd A 216.239.38.120"
local-data: "www.google.be A 216.239.38.120"
local-data: "www.google.bf A 216.239.38.120"
local-data: "www.google.bg A 216.239.38.120"
local-data: "www.google.com.bh A 216.239.38.120"
local-data: "www.google.bi A 216.239.38.120"
local-data: "www.google.bj A 216.239.38.120"
local-data: "www.google.com.bn A 216.239.38.120"
local-data: "www.google.com.bo A 216.239.38.120"
local-data: "www.google.com.br A 216.239.38.120"
local-data: "www.google.bs A 216.239.38.120"
local-data: "www.google.bt A 216.239.38.120"
local-data: "www.google.co.bw A 216.239.38.120"
local-data: "www.google.by A 216.239.38.120"
local-data: "www.google.com.bz A 216.239.38.120"
local-data: "www.google.ca A 216.239.38.120"
local-data: "www.google.cd A 216.239.38.120"
local-data: "www.google.cf A 216.239.38.120"
local-data: "www.google.cg A 216.239.38.120"
local-data: "www.google.ch A 216.239.38.120"
local-data: "www.google.ci A 216.239.38.120"
local-data: "www.google.co.ck A 216.239.38.120"
local-data: "www.google.cl A 216.239.38.120"
local-data: "www.google.cm A 216.239.38.120"
local-data: "www.google.cn A 216.239.38.120"
local-data: "www.google.com.co A 216.239.38.120"
local-data: "www.google.co.cr A 216.239.38.120"
local-data: "www.google.com.cu A 216.239.38.120"
local-data: "www.google.cv A 216.239.38.120"
local-data: "www.google.com.cy A 216.239.38.120"
local-data: "www.google.cz A 216.239.38.120"
local-data: "www.google.de A 216.239.38.120"
local-data: "www.google.dj A 216.239.38.120"
local-data: "www.google.dk A 216.239.38.120"
local-data: "www.google.dm A 216.239.38.120"
local-data: "www.google.com.do A 216.239.38.120"
local-data: "www.google.dz A 216.239.38.120"
local-data: "www.google.com.ec A 216.239.38.120"
local-data: "www.google.ee A 216.239.38.120"
local-data: "www.google.com.eg A 216.239.38.120"
local-data: "www.google.com.et A 216.239.38.120"
local-data: "www.google.fi A 216.239.38.120"
local-data: "www.google.com.fj A 216.239.38.120"
local-data: "www.google.fm A 216.239.38.120"
local-data: "www.google.fr A 216.239.38.120"
local-data: "www.google.ga A 216.239.38.120"
local-data: "www.google.ge A 216.239.38.120"
local-data: "www.google.gg A 216.239.38.120"
local-data: "www.google.com.gh A 216.239.38.120"
local-data: "www.google.com.gi A 216.239.38.120"
local-data: "www.google.gl A 216.239.38.120"
local-data: "www.google.gm A 216.239.38.120"
local-data: "www.google.gp A 216.239.38.120"
local-data: "www.google.gr A 216.239.38.120"
local-data: "www.google.com.gt A 216.239.38.120"
local-data: "www.google.gy A 216.239.38.120"
local-data: "www.google.com.hk A 216.239.38.120"
local-data: "www.google.hn A 216.239.38.120"
local-data: "www.google.hr A 216.239.38.120"
local-data: "www.google.ht A 216.239.38.120"
local-data: "www.google.hu A 216.239.38.120"
local-data: "www.google.co.id A 216.239.38.120"
local-data: "www.google.ie A 216.239.38.120"
local-data: "www.google.co.il A 216.239.38.120"
local-data: "www.google.im A 216.239.38.120"
local-data: "www.google.co.in A 216.239.38.120"
local-data: "www.google.iq A 216.239.38.120"
local-data: "www.google.is A 216.239.38.120"
local-data: "www.google.it A 216.239.38.120"
local-data: "www.google.je A 216.239.38.120"
local-data: "www.google.com.jm A 216.239.38.120"
local-data: "www.google.jo A 216.239.38.120"
local-data: "www.google.co.jp A 216.239.38.120"
local-data: "www.google.co.ke A 216.239.38.120"
local-data: "www.google.com.kh A 216.239.38.120"
local-data: "www.google.ki A 216.239.38.120"
local-data: "www.google.kg A 216.239.38.120"
local-data: "www.google.co.kr A 216.239.38.120"
local-data: "www.google.com.kw A 216.239.38.120"
local-data: "www.google.kz A 216.239.38.120"
local-data: "www.google.la A 216.239.38.120"
local-data: "www.google.com.lb A 216.239.38.120"
local-data: "www.google.li A 216.239.38.120"
local-data: "www.google.lk A 216.239.38.120"
local-data: "www.google.co.ls A 216.239.38.120"
local-data: "www.google.lt A 216.239.38.120"
local-data: "www.google.lu A 216.239.38.120"
local-data: "www.google.lv A 216.239.38.120"
local-data: "www.google.com.ly A 216.239.38.120"
local-data: "www.google.co.ma A 216.239.38.120"
local-data: "www.google.md A 216.239.38.120"
local-data: "www.google.me A 216.239.38.120"
local-data: "www.google.mg A 216.239.38.120"
local-data: "www.google.mk A 216.239.38.120"
local-data: "www.google.ml A 216.239.38.120"
local-data: "www.google.com.mm A 216.239.38.120"
local-data: "www.google.mn A 216.239.38.120"
local-data: "www.google.ms A 216.239.38.120"
local-data: "www.google.com.mt A 216.239.38.120"
local-data: "www.google.mu A 216.239.38.120"
local-data: "www.google.mv A 216.239.38.120"
local-data: "www.google.mw A 216.239.38.120"
local-data: "www.google.com.mx A 216.239.38.120"
local-data: "www.google.com.my A 216.239.38.120"
local-data: "www.google.co.mz A 216.239.38.120"
local-data: "www.google.com.na A 216.239.38.120"
local-data: "www.google.com.nf A 216.239.38.120"
local-data: "www.google.com.ng A 216.239.38.120"
local-data: "www.google.com.ni A 216.239.38.120"
local-data: "www.google.ne A 216.239.38.120"
local-data: "www.google.nl A 216.239.38.120"
local-data: "www.google.no A 216.239.38.120"
local-data: "www.google.com.np A 216.239.38.120"
local-data: "www.google.nr A 216.239.38.120"
local-data: "www.google.nu A 216.239.38.120"
local-data: "www.google.co.nz A 216.239.38.120"
local-data: "www.google.com.om A 216.239.38.120"
local-data: "www.google.com.pa A 216.239.38.120"
local-data: "www.google.com.pe A 216.239.38.120"
local-data: "www.google.com.pg A 216.239.38.120"
local-data: "www.google.com.ph A 216.239.38.120"
local-data: "www.google.com.pk A 216.239.38.120"
local-data: "www.google.pl A 216.239.38.120"
local-data: "www.google.pn A 216.239.38.120"
local-data: "www.google.com.pr A 216.239.38.120"
local-data: "www.google.ps A 216.239.38.120"
local-data: "www.google.pt A 216.239.38.120"
local-data: "www.google.com.py A 216.239.38.120"
local-data: "www.google.com.qa A 216.239.38.120"
local-data: "www.google.ro A 216.239.38.120"
local-data: "www.google.ru A 216.239.38.120"
local-data: "www.google.rw A 216.239.38.120"
local-data: "www.google.com.sa A 216.239.38.120"
local-data: "www.google.com.sb A 216.239.38.120"
local-data: "www.google.sc A 216.239.38.120"
local-data: "www.google.se A 216.239.38.120"
local-data: "www.google.com.sg A 216.239.38.120"
local-data: "www.google.sh A 216.239.38.120"
local-data: "www.google.si A 216.239.38.120"
local-data: "www.google.sk A 216.239.38.120"
local-data: "www.google.com.sl A 216.239.38.120"
local-data: "www.google.sn A 216.239.38.120"
local-data: "www.google.so A 216.239.38.120"
local-data: "www.google.sm A 216.239.38.120"
local-data: "www.google.sr A 216.239.38.120"
local-data: "www.google.st A 216.239.38.120"
local-data: "www.google.com.sv A 216.239.38.120"
local-data: "www.google.td A 216.239.38.120"
local-data: "www.google.tg A 216.239.38.120"
local-data: "www.google.co.th A 216.239.38.120"
local-data: "www.google.com.tj A 216.239.38.120"
local-data: "www.google.tk A 216.239.38.120"
local-data: "www.google.tl A 216.239.38.120"
local-data: "www.google.tm A 216.239.38.120"
local-data: "www.google.tn A 216.239.38.120"
local-data: "www.google.to A 216.239.38.120"
local-data: "www.google.com.tr A 216.239.38.120"
local-data: "www.google.tt A 216.239.38.120"
local-data: "www.google.com.tw A 216.239.38.120"
local-data: "www.google.co.tz A 216.239.38.120"
local-data: "www.google.com.ua A 216.239.38.120"
local-data: "www.google.co.ug A 216.239.38.120"
local-data: "www.google.co.uk A 216.239.38.120"
local-data: "www.google.com.uy A 216.239.38.120"
local-data: "www.google.co.uz A 216.239.38.120"
local-data: "www.google.com.vc A 216.239.38.120"
local-data: "www.google.co.ve A 216.239.38.120"
local-data: "www.google.vg A 216.239.38.120"
local-data: "www.google.co.vi A 216.239.38.120"
local-data: "www.google.com.vn A 216.239.38.120"
local-data: "www.google.vu A 216.239.38.120"
local-data: "www.google.ws A 216.239.38.120"
local-data: "www.google.rs A 216.239.38.120"
local-data: "www.google.co.za A 216.239.38.120"
local-data: "www.google.co.zm A 216.239.38.120"
local-data: "www.google.co.zw A 216.239.38.120"
local-data: "www.google.cat A 216.239.38.120"

Com um clique em Salvar, salvamos o arquivo.

O último passo é informar ao servidor DNS onde encontrar esses registros DNS. Para fazer isso, abra as configurações do servidor DNS em Serviços → Resolver DNS e clique em Mostrar opções personalizadas . Lá, inserimos as seguintes linhas, salve-as com Salvar e aplique as alterações com Aplicar .

server: 
include: /var/unbound/google.conf

Opções personalizadas de DNS

Nossos mecanismos de pesquisa estão configurados. A próxima etapa é configurar o filtro de conteúdo para HTTP e o filtro de URL para HTTPS.

Squid Proxy e SquidGuard

Instalação

Para permitir que o pfSense filtre URLs, precisamos de um servidor proxy através do qual todas as solicitações da nossa rede sejam roteadas. Para isso, usamos o Squid. Como o nome indica, o SquidGuard é o filtro real. No Sistema → Gerenciador de Pacotes , na guia Pacotes Disponíveis , instalamos o Squid e o SquidGuard.

Gerente de Embalagens

Configurações de proxy transparente para HTTP

Em Serviços → Squid Proxy Server, agora configuramos o proxy transparente para HTTP. Um proxy transparente tem a vantagem de não precisarmos definir configurações nos computadores individuais da nossa rede. Na guia Geral , ativamos os seguintes elementos:

  1. Ativar proxy Squid ✔
  2. Interface (s) de proxy: LAN
  3. Permitir usuários na interface ✔
  4. Proxy transparente HTTP ✔
  5. Interface (s) de proxy transparente: LAN

Proxy geral do Squid

Após isso salve clicando em Salvar , colocamos na guia Cache local quanto espaço em disco deve ser usado para o cache (aqui 500 MB):

Cache Squid

A configuração deve ser salva novamente com Salvar . O proxy transparente para conexões HTTP agora está configurado.

Configurando o SquidGuard

SquidGuard é o componente responsável pela filtragem de conteúdo. O SquidGuard examina cada solicitação e decide se deve ou não bloquear o aplicativo ou o site. Para isso, usamos uma lista negra, que configuramos mais tarde. Antes disso, definiremos algumas configurações gerais em Serviços → Filtro de proxy SquidGuard .

  1. Ativar ✔
  2. (não mostrado na captura de tela)
  3. Ativar registro ✔
  4. Ativar rotação de registros ✔
  5. Ativar lista negra ✔
  6. URL da lista negra: http://www.shallalist.de/Downloads/shallalist.tar.gz

Filtro de Proxy do Squid Geral

Em seguida, salvamos tudo novamente com Salvar .

Com o SquidGuard, devemos levar em conta que as alterações na configuração são ativadas somente após clicar em Salvar e aplicar (acima na guia Configurações gerais)!

Configurar listas negras e listas brancas

Agora que terminamos a configuração básica, listas negras e listas brancas estão ausentes. O URL da lista negra já foi fornecido. Agora temos que baixá-los na guia ” Lista negra “.

Lista negra

Para garantir que nosso filtro funcione, agora estamos definindo várias categorias de destino. Para fazer isso, abra a guia ” Categorias de destino ” e clique em Adicionar . Criamos uma lista branca de todos os nomes de domínio que permitimos explicitamente. Isso seria, por exemplo, todos os domínios do Google, porque bloquearemos todos os outros mecanismos de pesquisa para impedir que o usuário ignore a função Pesquisa segura configurada acima.

Entraremos o seguinte:

  1. Nome: Lista Branca
  2. Lista de Domínios:
    local-data: "www.google.ad A 216.239.38.120"
    local-data: "www.google.ae A 216.239.38.120"
    local-data: "www.google.com A 216.239.38.120"
    local-data: "www.google.com.af A 216.239.38.120"
    local-data: "www.google.com.ag A 216.239.38.120"
    local-data: "www.google.com.ai A 216.239.38.120"
    local-data: "www.google.al A 216.239.38.120"
    local-data: "www.google.am A 216.239.38.120"
    local-data: "www.google.co.ao A 216.239.38.120"
    local-data: "www.google.com.ar A 216.239.38.120"
    local-data: "www.google.as A 216.239.38.120"
    local-data: "www.google.at A 216.239.38.120"
    local-data: "www.google.com.au A 216.239.38.120"
    local-data: "www.google.az A 216.239.38.120"
    local-data: "www.google.ba A 216.239.38.120"
    local-data: "www.google.com.bd A 216.239.38.120"
    local-data: "www.google.be A 216.239.38.120"
    local-data: "www.google.bf A 216.239.38.120"
    local-data: "www.google.bg A 216.239.38.120"
    local-data: "www.google.com.bh A 216.239.38.120"
    local-data: "www.google.bi A 216.239.38.120"
    local-data: "www.google.bj A 216.239.38.120"
    local-data: "www.google.com.bn A 216.239.38.120"
    local-data: "www.google.com.bo A 216.239.38.120"
    local-data: "www.google.com.br A 216.239.38.120"
    local-data: "www.google.bs A 216.239.38.120"
    local-data: "www.google.bt A 216.239.38.120"
    local-data: "www.google.co.bw A 216.239.38.120"
    local-data: "www.google.by A 216.239.38.120"
    local-data: "www.google.com.bz A 216.239.38.120"
    local-data: "www.google.ca A 216.239.38.120"
    local-data: "www.google.cd A 216.239.38.120"
    local-data: "www.google.cf A 216.239.38.120"
    local-data: "www.google.cg A 216.239.38.120"
    local-data: "www.google.ch A 216.239.38.120"
    local-data: "www.google.ci A 216.239.38.120"
    local-data: "www.google.co.ck A 216.239.38.120"
    local-data: "www.google.cl A 216.239.38.120"
    local-data: "www.google.cm A 216.239.38.120"
    local-data: "www.google.cn A 216.239.38.120"
    local-data: "www.google.com.co A 216.239.38.120"
    local-data: "www.google.co.cr A 216.239.38.120"
    local-data: "www.google.com.cu A 216.239.38.120"
    local-data: "www.google.cv A 216.239.38.120"
    local-data: "www.google.com.cy A 216.239.38.120"
    local-data: "www.google.cz A 216.239.38.120"
    local-data: "www.google.de A 216.239.38.120"
    local-data: "www.google.dj A 216.239.38.120"
    local-data: "www.google.dk A 216.239.38.120"
    local-data: "www.google.dm A 216.239.38.120"
    local-data: "www.google.com.do A 216.239.38.120"
    local-data: "www.google.dz A 216.239.38.120"
    local-data: "www.google.com.ec A 216.239.38.120"
    local-data: "www.google.ee A 216.239.38.120"
    local-data: "www.google.com.eg A 216.239.38.120"
    local-data: "www.google.com.et A 216.239.38.120"
    local-data: "www.google.fi A 216.239.38.120"
    local-data: "www.google.com.fj A 216.239.38.120"
    local-data: "www.google.fm A 216.239.38.120"
    local-data: "www.google.fr A 216.239.38.120"
    local-data: "www.google.ga A 216.239.38.120"
    local-data: "www.google.ge A 216.239.38.120"
    local-data: "www.google.gg A 216.239.38.120"
    local-data: "www.google.com.gh A 216.239.38.120"
    local-data: "www.google.com.gi A 216.239.38.120"
    local-data: "www.google.gl A 216.239.38.120"
    local-data: "www.google.gm A 216.239.38.120"
    local-data: "www.google.gp A 216.239.38.120"
    local-data: "www.google.gr A 216.239.38.120"
    local-data: "www.google.com.gt A 216.239.38.120"
    local-data: "www.google.gy A 216.239.38.120"
    local-data: "www.google.com.hk A 216.239.38.120"
    local-data: "www.google.hn A 216.239.38.120"
    local-data: "www.google.hr A 216.239.38.120"
    local-data: "www.google.ht A 216.239.38.120"
    local-data: "www.google.hu A 216.239.38.120"
    local-data: "www.google.co.id A 216.239.38.120"
    local-data: "www.google.ie A 216.239.38.120"
    local-data: "www.google.co.il A 216.239.38.120"
    local-data: "www.google.im A 216.239.38.120"
    local-data: "www.google.co.in A 216.239.38.120"
    local-data: "www.google.iq A 216.239.38.120"
    local-data: "www.google.is A 216.239.38.120"
    local-data: "www.google.it A 216.239.38.120"
    local-data: "www.google.je A 216.239.38.120"
    local-data: "www.google.com.jm A 216.239.38.120"
    local-data: "www.google.jo A 216.239.38.120"
    local-data: "www.google.co.jp A 216.239.38.120"
    local-data: "www.google.co.ke A 216.239.38.120"
    local-data: "www.google.com.kh A 216.239.38.120"
    local-data: "www.google.ki A 216.239.38.120"
    local-data: "www.google.kg A 216.239.38.120"
    local-data: "www.google.co.kr A 216.239.38.120"
    local-data: "www.google.com.kw A 216.239.38.120"
    local-data: "www.google.kz A 216.239.38.120"
    local-data: "www.google.la A 216.239.38.120"
    local-data: "www.google.com.lb A 216.239.38.120"
    local-data: "www.google.li A 216.239.38.120"
    local-data: "www.google.lk A 216.239.38.120"
    local-data: "www.google.co.ls A 216.239.38.120"
    local-data: "www.google.lt A 216.239.38.120"
    local-data: "www.google.lu A 216.239.38.120"
    local-data: "www.google.lv A 216.239.38.120"
    local-data: "www.google.com.ly A 216.239.38.120"
    local-data: "www.google.co.ma A 216.239.38.120"
    local-data: "www.google.md A 216.239.38.120"
    local-data: "www.google.me A 216.239.38.120"
    local-data: "www.google.mg A 216.239.38.120"
    local-data: "www.google.mk A 216.239.38.120"
    local-data: "www.google.ml A 216.239.38.120"
    local-data: "www.google.com.mm A 216.239.38.120"
    local-data: "www.google.mn A 216.239.38.120"
    local-data: "www.google.ms A 216.239.38.120"
    local-data: "www.google.com.mt A 216.239.38.120"
    local-data: "www.google.mu A 216.239.38.120"
    local-data: "www.google.mv A 216.239.38.120"
    local-data: "www.google.mw A 216.239.38.120"
    local-data: "www.google.com.mx A 216.239.38.120"
    local-data: "www.google.com.my A 216.239.38.120"
    local-data: "www.google.co.mz A 216.239.38.120"
    local-data: "www.google.com.na A 216.239.38.120"
    local-data: "www.google.com.nf A 216.239.38.120"
    local-data: "www.google.com.ng A 216.239.38.120"
    local-data: "www.google.com.ni A 216.239.38.120"
    local-data: "www.google.ne A 216.239.38.120"
    local-data: "www.google.nl A 216.239.38.120"
    local-data: "www.google.no A 216.239.38.120"
    local-data: "www.google.com.np A 216.239.38.120"
    local-data: "www.google.nr A 216.239.38.120"
    local-data: "www.google.nu A 216.239.38.120"
    local-data: "www.google.co.nz A 216.239.38.120"
    local-data: "www.google.com.om A 216.239.38.120"
    local-data: "www.google.com.pa A 216.239.38.120"
    local-data: "www.google.com.pe A 216.239.38.120"
    local-data: "www.google.com.pg A 216.239.38.120"
    local-data: "www.google.com.ph A 216.239.38.120"
    local-data: "www.google.com.pk A 216.239.38.120"
    local-data: "www.google.pl A 216.239.38.120"
    local-data: "www.google.pn A 216.239.38.120"
    local-data: "www.google.com.pr A 216.239.38.120"
    local-data: "www.google.ps A 216.239.38.120"
    local-data: "www.google.pt A 216.239.38.120"
    local-data: "www.google.com.py A 216.239.38.120"
    local-data: "www.google.com.qa A 216.239.38.120"
    local-data: "www.google.ro A 216.239.38.120"
    local-data: "www.google.ru A 216.239.38.120"
    local-data: "www.google.rw A 216.239.38.120"
    local-data: "www.google.com.sa A 216.239.38.120"
    local-data: "www.google.com.sb A 216.239.38.120"
    local-data: "www.google.sc A 216.239.38.120"
    local-data: "www.google.se A 216.239.38.120"
    local-data: "www.google.com.sg A 216.239.38.120"
    local-data: "www.google.sh A 216.239.38.120"
    local-data: "www.google.si A 216.239.38.120"
    local-data: "www.google.sk A 216.239.38.120"
    local-data: "www.google.com.sl A 216.239.38.120"
    local-data: "www.google.sn A 216.239.38.120"
    local-data: "www.google.so A 216.239.38.120"
    local-data: "www.google.sm A 216.239.38.120"
    local-data: "www.google.sr A 216.239.38.120"
    local-data: "www.google.st A 216.239.38.120"
    local-data: "www.google.com.sv A 216.239.38.120"
    local-data: "www.google.td A 216.239.38.120"
    local-data: "www.google.tg A 216.239.38.120"
    local-data: "www.google.co.th A 216.239.38.120"
    local-data: "www.google.com.tj A 216.239.38.120"
    local-data: "www.google.tk A 216.239.38.120"
    local-data: "www.google.tl A 216.239.38.120"
    local-data: "www.google.tm A 216.239.38.120"
    local-data: "www.google.tn A 216.239.38.120"
    local-data: "www.google.to A 216.239.38.120"
    local-data: "www.google.com.tr A 216.239.38.120"
    local-data: "www.google.tt A 216.239.38.120"
    local-data: "www.google.com.tw A 216.239.38.120"
    local-data: "www.google.co.tz A 216.239.38.120"
    local-data: "www.google.com.ua A 216.239.38.120"
    local-data: "www.google.co.ug A 216.239.38.120"
    local-data: "www.google.co.uk A 216.239.38.120"
    local-data: "www.google.com.uy A 216.239.38.120"
    local-data: "www.google.co.uz A 216.239.38.120"
    local-data: "www.google.com.vc A 216.239.38.120"
    local-data: "www.google.co.ve A 216.239.38.120"
    local-data: "www.google.vg A 216.239.38.120"
    local-data: "www.google.co.vi A 216.239.38.120"
    local-data: "www.google.com.vn A 216.239.38.120"
    local-data: "www.google.vu A 216.239.38.120"
    local-data: "www.google.ws A 216.239.38.120"
    local-data: "www.google.rs A 216.239.38.120"
    local-data: "www.google.co.za A 216.239.38.120"
    local-data: "www.google.co.zm A 216.239.38.120"
    local-data: "www.google.co.zw A 216.239.38.120"
    local-data: "www.google.cat A 216.239.38.120"
  3. Descrição: White List
  4. Salve com Salvar.

lista branca

O último passo no momento é estabelecer algumas regras. Fazemos isso na guia ACL comum . Em seguida, clique no sinal ” + ” em ” Lista de regras de destino ” para abrir uma lista dos diferentes conjuntos de regras. Agora, existem categorias diferentes e nossa lista branca aparece aqui. Agora, fazemos as seguintes configurações:

  • Lista branca: acesse a lista branca
  • Acesso padrão [todos]: acesso permitido

ACL comum

As outras categorias podem ser configuradas conforme necessário. Aqui estão alguns exemplos:

  • Bloquear anuncios: [blk_BL_adv] acesso negado
  • Bloquear pornografia: [blk_BL_porn] acesso negado
  • etc.

Para impedir que um usuário pule nosso filtro de URL digitando o endereço IP de uma página, ainda habilitamos Não permitir endereços IP em URLs . Se essa configuração causar problemas, você deve desativá-la novamente.

Não permitir endereços IP

Em seguida, salvamos clicando em Salvar , alterne para a guia Configurações gerais e pressione Aplicar novamente para aplicar nossas alterações.

Configuração de teste

Tudo está configurado para conexões HTTP e podemos testar a configuração. Não é necessário configurar mais nada em um computador na LAN. O filtro já deve funcionar. Se visitarmos uma página que aparece em uma de nossas listas negras, essa página será exibida:

Sites bloqueados

Proxy transparente para conexões HTTPS

Até agora, o proxy transparente está ativo apenas para HTTP, ou seja, solicitações não criptografadas. No começo deste artigo, eu já apontei as dificuldades na filtragem de conexões criptografadas, ou seja, HTTPS. No nosso caso, ativaremos um proxy transparente para HTTPS, o que nos permitirá ativar um filtro de URL para todas as solicitações na porta 443 (HTTPS), mas com a desvantagem de que não podemos (e não queremos!) Analisar o conteúdo em vez disso, o navegador exibirá uma mensagem de erro do certificado. Falarei mais sobre isso em breve.

Primeiro, ativamos o proxy transparente para HTTPS. Para fazer isso, abra as configurações de proxy em Serviços → Squid Proxy Server e selecione as seguintes configurações no SSL Man na seção Middle Filtering:

  • Interceptação HTTPS / SSL ✔
  • Método SSL / MITM: emenda tudo
  • Interfaces de interceptação SSL: LAN
  • CA: selecione um certificado de autoridade de certificação. Talvez tenhamos que criar um primeiro. (em Sistema → Gerenciador de certificação ).
  • Salve tudo com Salvar .

MITM SSL

Agora tudo está configurado e também podemos testar as conexões HTTPS. Como já foi escrito, desta vez não recebemos uma mensagem de erro informativa quanto às conexões HTTP, mas um aviso do navegador:

Erro de certificado

Embora essa mensagem de erro não seja muito significativa, alcançamos nosso objetivo real de bloquear páginas indesejadas.

Conclusão

Agora configuramos um sistema que filtra todo o tráfego de rede em nossa LAN (ou WLAN). Isso bloqueia as páginas que foram definidas usando listas negras.

Os prós e contras de tais bloqueios têm posições diferentes. De qualquer forma, é um problema que não pode e não deve ser resolvido 100% tecnicamente, uma vez que se trata mais de educar (usuários) para que eles possam usar com responsabilidade a “Internet”. Certamente, não é o caminho certo para atingir esse objetivo apenas com essa filtragem.

Por outro lado, é especialmente útil para empresas, escolas ou até em casa é possível limitar a quantidade de conteúdo inadequado.

(Fonte: https://forum.pfsense.org/index.php?topic=112335.0 )

Deixe uma resposta