segunda-feira, 14 de setembro de 2015

Configurando Proxy Transparente com Squid Proxy e PfSense

1. Instalando PFSense

Confira o manual de instalação aqui: http://www.nanoshots.com.br/2015/08/instalacao-e-configuracao-do-firewall.html


2. Instalando os pacotes do Squid e SquidGuard

Na no menu "System", vá até a aba "Packages"




Na aba Available Packages, procure por Squid e SquidGuard entre os pacotes e em seguida clique no "+" para instalá-los como modulos no pfSense.








3. Configurando o Proxy Server

Configurações Gerais 

Acesse Services > Proxy Server e na aba "General" marque a opção "Transparent proxy" e "Allow users on interface" e Deixe a interface do Proxy configurada para a placa de rede interna.




No campo "Bypass proxy for these source IPs" coloque os IPs da sua rede que você não queira que passe pelo Proxy.


 Configurando o Cache de Disco 

Na aba Cache Mgmt vamos configurar o cache do sistema de Proxy.



Hard Disk Cache: Aqui vamos definir o tamanho total do cache que será armazenado em disco. Vamos solicitar uma quantia bacana de arquivos cacheados que não acarrete em perda de desempenho do sistema. Esse valor deve ser em torno de 2000 a 4000 (2GB a 4 GB)

Hard Disk Cache System: É o diretório onde vão ser armazenados os arquivos de cache. Recomendo que deixe o mesmo no diretório /var/squid/cache por Default.

Memory Cache Size: Aqui vamos definir o tamanho de memória do sistema para alocar os arquivos cacheados. Esse campo deve ser preenchido com NO MÁXIMO 50% da memória total do servidor em MB. Neste exemplo estou trabalhando em um servidor com 1 GB de RAM, ou seja 1024 MB de RAM, então podemos configurá-lo com 512 MB.

Minimum Object Size: Corresponde ao tamanho mínimo dos arquivos armazenados em cache. Esse podemos deixar em 0 por Default.

Maximum Object Size: Corresponde ao tamanho máximo de arquivos armazenados em cache. Caso configuremos o valor correspondente a 10000 (10 MB), todos os arquivos e downloads com menos de 10 MB vão ficar cacheados na memória até que a mesma fique cheia. Todos os arquivos e Downloads maiores passariam direto pelo SQUID. Esse valor é relativo ao fluxo da sua rede, por padrão eu gosto de deixar o mesmo com 10% da memória de cache, ou seja 5000

Maximum Object Size in RAM: Quantidade máxima de objetos armazenados dentro da mémoria Ram do servidor. Padrão 32 objetos. EX: 40.000/32 = 1.250 objetos armazenados na mémoria para cache.

Do Not Cache: Aqui podemos preencher quais dominios, IP’s que não serão cacheados pelo nosso servidor. Ex: www.bradesco.com.br



Controlando o acesso 

Na aba Acess Control iremos definir algumas configurações referentes a rede e aos filtros. 





Allowed subnets: Aqui vamos definir as subredes em que o Proxy vai se aplicar.

Whitelist: Aqui vamos definir os sites que vão passar livres pelo Squid.

Blacklist: Aqui vamos definir os sites e termos que vão ser bloqueados imediatamente pelo Squid.



Configurando os Filtros do SquidGuard 

Ativando os Filtros 
Acesse o menu de filtros do Squid em Services > Proxy filter e ative o proxy guard clicando em "Enable", em seguida ative as opções "Enable GUI log" e  "Enable log"


Baixando a Blacklist

Mais abaixo, ative a opção da Blacklist e na Blacklist Options e na Blacklist URL baixe o seguinte arquivo:
http://www.shallalist.de/Downloads/shallalist.tar.gz


Em seguida na aba Blacklist, veja se a URL que definimos está no campo de Black List Update e clique em Download para baixar o pacote de atualização.




Configurando a Blacklist 


Agora na aba Common ACL clique em Target Rules List  para mostrar os grupos de ACLs, agora só marcas as mesmas como desejar. Em seguida clique em Save.



Agora é só salvar :)

SOBRE O AUTOR

Matheus Fidelis

http://msfidelis.github.io/

Power Ranger, Piloto de Helicópteros e Astronauta da NASA. Desenvolvedor Web PHP com foco em Backend e POO, Linux SysAdmin DevOps e Entusiasta Python. Criou esse site pra contribuir com a comunidade com coisas que aprende dentro de um setor maluco de TI :)

11 comentários:

  1. Gostaria de bloquear o facebook e youtube via proxy transparente, como fazer?

    ResponderExcluir
    Respostas
    1. Podemos fazer de duas formas:
      1) Colocando os termos Facebook e Yoube na Blacklist do Proxy Server
      2) Editando via SSH alguma das ACL's que baixamos e colocar lá dentro o http e https dos dois sites

      Excluir
    2. Teria como fazer um tutorial explicando?

      Excluir
    3. Claro, vou colocar no meu backlog de PfSense

      Excluir
    4. Sem querer ser chato rs, teria como me passar seu blog do PfSense?

      Excluir
    5. proxy em modo transparente não tem como filtrar endereços que utilizam https, por exemplo facebook e youtube.

      Excluir
  2. Obrigado Matheus pelo artigo, parabéns, Porém tenho um pergunta, por que vc não usou o squid3?

    ResponderExcluir
  3. boa noite teria como fazer cache de arquivos como musicas videos ?

    ResponderExcluir
  4. Pessoal,

    Boa tarde!

    Sou novato na area de linux, e estour tentando instalar o PFSENsE na minha rede.

    Segui o tutorial a risca, porem depois de tudo configurado, o pfsense bloqueia tudo, e mesmo voce indo em
    common ACL, Target Rules, e liberando uma categoria (testei ate liberando todas) ele apresenta a tela:


    Request denied by pfSense proxy: 403 Forbidden

    Reason:
    Client address: 192.168.2.23
    Client name: 192.168.2.23
    Client group: default
    Target group: none
    URL: http://www.terra.com.br/

    Alguem pode me dar uma luz?

    estou usando a versao: 2.3.1-RELEASE (i386)
    squid versao: 0.4.18
    squidGuard versao: 1.14_3


    agradeço desde ja a atençao de todos!

    att,

    Diego

    ResponderExcluir
  5. Boa Tarde ja depararam em modo transparente vc colocando em Bypass Proxy for These Destination IPs
    colocando alias la depois de um tempo comeca liberar tudo ? Quando remove esse alias comeca a bloquer ?

    ResponderExcluir
  6. Boa Tarde ja depararam em modo transparente vc colocando em Bypass Proxy for These Destination IPs
    colocando alias la depois de um tempo comeca liberar tudo ? Quando remove esse alias comeca a bloquer ?

    ResponderExcluir

 
Nanoshots | Open Source Security, Linux e Tutoriais © 2015 - Designed by Templateism.com