{"id":234,"date":"2019-08-02T11:14:03","date_gmt":"2019-08-02T14:14:03","guid":{"rendered":"http:\/\/xaxowareti.com.br\/?p=234"},"modified":"2019-08-02T11:14:03","modified_gmt":"2019-08-02T14:14:03","slug":"proxy-http-https-squidguard-sgerror-php-wpad-via-dhcp-e-dns-100","status":"publish","type":"post","link":"https:\/\/xaxowareti.com.br\/?p=234","title":{"rendered":"Proxy HTTP\/HTTPS + SquidGuard + sgerror.php + WPAD via DHCP e DNS 100%"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Esse \u00e9 pra voc\u00ea que tentou tutorias de diversos locais e sempre parava pela metade, devido a erros ou falta de informa\u00e7\u00f5es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fiz um ambiente 100% funcional e venho compartilhar com voc\u00eas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Cen\u00e1rio:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">pfSense&nbsp; 2.3 +<br>package Squid<br>package SquidGuard<br>LAN&nbsp; 192.168.1.1\/24<br>pfsense.localdomain<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">***** Validado nas vers\u00f5es: 2.3.X&nbsp; ***<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">*** Validado nas vers\u00f5es 2.4.X em 27\/10\/2017 ***<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">*** N\u00e3o testei em vers\u00f5es anteriores&nbsp; *****<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Utilizo (e recomendo) a webGUI em HTTPS, por quest\u00f5es de seguran\u00e7a.&nbsp; Por\u00e9m, haviam problemas com sgerror.php do squidguard quando utilizado desta maneira (mas vamos contorn\u00e1-los!). Neste guia, estou utilizando HTTPS &#8211; porta 9443.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Preparando o ambiente<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">System &gt; General Setup<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Escolha os servidores DNS de sua prefer\u00eancia, no meu caso, utilizei 8.8.8.8 e 8.8.4.4.<br>Desmarcar o \u201cDisable DNS Forwarder\u201d, pois vamos utilizar este servi\u00e7o para fornecer o WPAD via DNS, atingindo qualquer navegador.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">System &gt; Advanced &gt; Admin Access<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Habilite o acesso&nbsp; SSH<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">System &gt; Cert. Manager<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adicione um novo CA para utiliza\u00e7\u00e3o no Man-In-The-Middle do Squid posteriormente<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Descriptive Name: Escolha um nome para sua CA. Este nome ser\u00e1 vis\u00edvel para os clientes.<br>Method:&nbsp; Selecione \u201cCreate an internal Certificate Authority\u201d no menu dropdown.<br>Key length: \u00c9 recomendado 2048 para m\u00e1xima compatibilidade<br>Digest Algorithm \u2013 use SHA256 ou superior.<br>LifeTime \u2013 Configure para 3650 dias (10 anos).<br>Distinguished Name \u2013 Preencha todos os campos como Country, State, etc.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Salve<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Services &gt; DNS Resolver<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por padr\u00e3o, o PF habilita este servi\u00e7o. Desative, pois vamos configurar atrav\u00e9s do DNS Forwarder<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Services &gt; DNS Forwarder<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Habilite o DNS forwarder<br>Marque&nbsp; &nbsp; DNS Query Forwarding&nbsp; &nbsp; &#8211;&nbsp; Query DNS servers sequentially<br>Interfaces \u2013 LAN<br>Marque&nbsp; Strict binding<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em custom options, adicione as seguintes instru\u00e7\u00f5es:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dhcp-option=252,http:\/\/192.168.1.1\/proxy.pac\ndhcp-option=252,http:\/\/192.168.1.1\/wpad.dat\ndhcp-option=252,http:\/\/192.168.1.1\/wpad.da\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos adicionar um host em \u201cHost Overrides\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Add<br>Host = wpad<br>Domain = localdomain (altere para o dom\u00ednio que voc\u00ea tenha configurado)<br>IP Address = 192.168.1.1<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Salve as configura\u00e7\u00f5es feitas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Services &gt; DHCP Server<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DNS Server 1 =&nbsp; 192.168.1.1&nbsp; (A resolu\u00e7\u00e3o de nomes ser\u00e1 controlada pelo pr\u00f3prio&nbsp; pfSense)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Additional BOOTP\/DHCP Options \u2013 Adicione 3 entradas&nbsp; 252<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">252&nbsp; &#8211;&nbsp; text&nbsp; &#8211;&nbsp;&nbsp;<a href=\"http:\/\/192.168.1.1\/wpad.dat\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/192.168.1.1\/wpad.dat<\/a><br>252&nbsp; &#8211;&nbsp; text&nbsp; &#8211;&nbsp;&nbsp;<a href=\"http:\/\/192.168.1.1\/wpad.da\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/192.168.1.1\/wpad.da<\/a><br>252&nbsp; &#8211;&nbsp; text&nbsp; &#8211;&nbsp;&nbsp;<a href=\"http:\/\/192.168.1.1\/proxy.pac\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/192.168.1.1\/proxy.pac<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos preparar o NGINX para subir uma 2\u00ba inst\u00e2ncia, para servir o WPAD e o sgerror.php na porta 80.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Anteriormente, eram realizados diversos comandos no SHELL para este prop\u00f3sito, mas foram substitu\u00eddos por este pacote (<a href=\"https:\/\/forum.pfsense.org\/index.php?topic=131161.0\" target=\"_blank\" rel=\"noreferrer noopener\">WPAD &#8211; n\u00e3o oficial<\/a>), criado pelo Marcelloc, que ser\u00e1 instalado no passo a seguir.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">M\u00e3os a obra!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Entrar pelo Putty no PFSense e com usu\u00e1rio root, na tela de op\u00e7\u00f5es escolher a op\u00e7\u00e3o 8.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Habilitar o reposit\u00f3rio n\u00e3o oficial (DE ACORDO COM SUA VERS\u00c2O):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2.3.X 32 bits<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fetch -q -o \/usr\/local\/etc\/pkg\/repos\/Unofficial.conf https:\/\/raw.githubusercontent.com\/marcelloc\/Unofficial-pfSense-packages\/master\/Unofficial.conf\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2.3.X 64 bits<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fetch -q -o \/usr\/local\/etc\/pkg\/repos\/Unofficial.conf https:\/\/raw.githubusercontent.com\/marcelloc\/Unofficial-pfSense-packages\/master\/Unofficiali386.conf\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2.4.X 64 bits<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fetch -q -o \/usr\/local\/etc\/pkg\/repos\/Unofficial.conf https:\/\/raw.githubusercontent.com\/marcelloc\/Unofficial-pfSense-packages\/master\/Unofficial.24.conf\n\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Fazer update dos reposit\u00f3rios:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pkg update -f\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Agora ir\u00e1 aparecer o pacote WPAD para download no Gerenciador de Pacotes. Fa\u00e7a a instala\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este pacote cria a 2\u00aa inst\u00e2ncia do NGINX, os arquivos WPAD e os diret\u00f3rios respectivos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Na webGUI, acesse o menu SERVICES &gt; WPAD&nbsp; |&nbsp; Adicione a interface (geralmente LAN) e salve.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Feito isto, acesse em um navegador que esteja na rede LAN para confirmar o funcionamento:<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttp:\/\/192.168.1.1\/wpad.dathttp:\/\/192.168.1.1\/wpad.dahttp:\/\/192.168.1.1\/proxy.pac\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Vai baixar os arquivos, ou apresentar o conte\u00fado na pr\u00f3pria p\u00e1gina web (dependendo o navegador e as configura\u00e7\u00f5es).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se voc\u00ea chegou at\u00e9 aqui, com tudo funcionando, significa que o ambiente est\u00e1 preparado para receber as configura\u00e7\u00f5es do squid e squidguard!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Services &gt; Squid Proxy Server<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lembrando que deve-se configurar o Local Cache para poder ativar as configura\u00e7\u00f5es do squid.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Habilite o squid<br>Marque a op\u00e7\u00e3o&nbsp; &#8211; Resolve DNS IPv4 First<br>Transparent HTTP Proxy\u2013 Deixe DESMARCADO<br>HTTPS\/SSL Interception \u2013 Deixe MARCADO<br>Porta 3128 (sim, a mesma porta!)<br>CA \u2013 selecione o certificado criado l\u00e1 no in\u00edcio<br>SSL Certificate Deamon Children \u2013 25<br>Remote Cert Checks&nbsp; &#8211; Selecione este:&nbsp; &nbsp; Accept remote server certificate with erros<br>Certificate Adapt \u2013 Selecione estes 2:&nbsp; Set \u201cNot After\u201d&nbsp; |&nbsp; Set \u201cNot Before\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E agora o segredo:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em Show Advanced Options, na caixa Integrations, coloque isto:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ssl_bump none all<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Salve as configura\u00e7\u00f5es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Services &gt; SquidGuard Proxy Filter<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Habilite o servi\u00e7o<br>Marque as 3 op\u00e7\u00f5es de LOG<br>Habilite a blacklist e coloque o link da mais conhecida:&nbsp;&nbsp;<a href=\"http:\/\/www.shallalist.de\/Downloads\/shallalist.tar.gz\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/www.shallalist.de\/Downloads\/shallalist.tar.gz<\/a><br>Salve<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Va na guia Target Categories<br>Adicione uma nova<br>Nome \u2013 BRADESCO<br>Regular Expression \u2013 bradesco<br>Marque o log da ACL<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Salvar<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Porque Bradesco? O site do bradesco fica dando refresh sozinho, alternando entre&nbsp;<a href=\"http:\/\/bradesco.com.br\/\" target=\"_blank\" rel=\"noreferrer noopener\">bradesco.com.br<\/a>&nbsp;e banco.bradesco.<br>Com isso resolve o problema, j\u00e1 que somos obrigado a criar uma Target Categorie pro SG ficar 100%, matamos 2 coelhos numa cajadada s\u00f3!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Blacklist<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fa\u00e7a o download da shallalist e aguarde o processo finalizar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Common ACL<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Clique no bot\u00e3o + ao lado de TargetRules List e deixe a categoria BRADESCO como ALLOW<br>Defina as outras categorias de acordo com sua necessidade<br>Redirect mode \u2013 ext url err page(enter URL)<br>Redirect info &#8211;&nbsp;&nbsp;<a href=\"http:\/\/192.168.1.1\/sgerror.php?url=302%20&amp;a=%25a&amp;n=%25n&amp;i=%25i&amp;s=%25s&amp;t=%25t&amp;u=%25u\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/192.168.1.1\/sgerror.php?url=302 &amp;a=%a&amp;n=%n&amp;i=%i&amp;s=%s&amp;t=%t&amp;u=%u<\/a><br>Marque o log e salve<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>DICA: Para aparecer a categoria corretamente na p\u00e1gina de bloqueio, voc\u00ea deve deixar expl\u00edcito a a\u00e7\u00e3o DENY nas ACLs. Se deixar o &#8220;tra\u00e7o&#8221; para pegar a pol\u00edtica padr\u00e3o, a categoria n\u00e3o ser\u00e1 exibida!<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Volte para General Settings e de um APPLY<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Finalizado o t\u00e3o sonhado proxy ativo de forma \u201ctransparente\u201d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>DICA: Fa\u00e7a bloqueio das portas 80 e 443 na sa\u00edda da LAN, para for\u00e7ar que a navega\u00e7\u00e3o saia somente pelo proxy!<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Note que n\u00e3o ser\u00e1 necess\u00e1rio instalar o certificado nas esta\u00e7\u00f5es;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00e3o ser\u00e1 necess\u00e1rio cadastrar o proxy no navegador (Deixar op\u00e7\u00e3o detectar automaticamente marcada);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Funciona para qualquer browser, Chrome, IE, Firefox, Opera, etc\u2026<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">**Obs1: Caso n\u00e3o tenha funcionado, observe todos os passos atentamente<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Obs2: Os tratamentos para libera\u00e7\u00e3o e bloqueio de conte\u00fado ser\u00e3o feitos todos no squidGuard<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Obs3: N\u00e3o funciona para dispositivos mobiles (Android \/ iOS \/ WindowsPhone), a n\u00e3o ser que voc\u00ea configure manualmente nos aparelhos,<br>o que torna invi\u00e1vel. Neste caso, a solu\u00e7\u00e3o seria isolar a rede wifi com VLAN\/Captive Portal**<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Chegamos ao fim!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Esse \u00e9 pra voc\u00ea que tentou tutorias de diversos locais e sempre parava pela metade, devido a erros ou falta de informa\u00e7\u00f5es. Fiz um ambiente 100% funcional e venho compartilhar com voc\u00eas. Cen\u00e1rio: pfSense&nbsp; 2.3 +package Squidpackage SquidGuardLAN&nbsp; 192.168.1.1\/24pfsense.localdomain ***** Validado nas vers\u00f5es: 2.3.X&nbsp; *** *** Validado nas vers\u00f5es 2.4.X em 27\/10\/2017 *** *** N\u00e3o [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-234","post","type-post","status-publish","format-standard","hentry","category-sem-categoria"],"_links":{"self":[{"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/posts\/234","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=234"}],"version-history":[{"count":1,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/posts\/234\/revisions"}],"predecessor-version":[{"id":235,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/posts\/234\/revisions\/235"}],"wp:attachment":[{"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}