{"id":404,"date":"2013-02-25T10:30:42","date_gmt":"2013-02-25T13:30:42","guid":{"rendered":"http:\/\/www.viazap.com.br\/?p=404"},"modified":"2013-02-25T10:30:42","modified_gmt":"2013-02-25T13:30:42","slug":"ultrasurf-bloqueio-definitivo","status":"publish","type":"post","link":"https:\/\/blog.clusterweb.com.br\/?p=404","title":{"rendered":"UltraSurf &#8211; Bloqueio definitivo"},"content":{"rendered":"<table width=\"100%\" border=\"0\" cellspacing=\"3\" cellpadding=\"3\">\n<tbody>\n<tr>\n<td colspan=\"2\"><b>Introdu\u00e7\u00e3o<\/b><\/p>\n<div>Que tal passar horas planejando e configurando o controle de acesso a conte\u00fado de uma rede, ir dormir feliz da vida com o gostinho do dever cumprido e acordar no dia seguinte, com o pesadelo de saber que foi tudo em v\u00e3o, pois os usu\u00e1rios est\u00e3o acessando o conte\u00fado bloqueado normalmente?<\/p>\n<p>O objetivo aqui n\u00e3o \u00e9 entrar na discuss\u00e3o se o controle de acesso a conte\u00fado deve ou n\u00e3o ser realizado na navega\u00e7\u00e3o WEB de uma empresa, institui\u00e7\u00f5es de ensino, resid\u00eancias ou onde quer se seja.<\/p>\n<p>O fato \u00e9 que, se por algum motivo, determinado conte\u00fado teve que ser bloqueado ou monitorado, este deve ser bloqueado, ou monitorado, de forma que os usu\u00e1rios da rede n\u00e3o consigam burlar tais controles. Sendo necess\u00e1rio assim, prever e tratar todos os poss\u00edveis desvios que, eventualmente, os usu\u00e1rios tentem utilizar para burlar os controles estipulados.<\/p>\n<p>Muitas s\u00e3o as t\u00e9cnicas que os usu\u00e1rios de uma rede de computadores acabam recorrendo na tentativa, em geral com sucesso, de burlar os controles impostos. Entre essas t\u00e9cnicas, podemos citar como exemplo:<\/p>\n<ul>\n<li>https;<\/li>\n<li>tunneling;<\/li>\n<li>socks;<\/li>\n<li>proxy an\u00f4nimo;<\/li>\n<li>webproxy;<\/li>\n<li>ferramentas como HotSpot Shield, HideIpPlatinum, JAP ou o implac\u00e1vel <em>UltraSurf<\/em>.<\/li>\n<\/ul>\n<p>Sendo o UltraSurf, atualmente, a grande dor de cabe\u00e7a de muitos administradores de redes, e o grande motivador deste trabalho.<\/p>\n<p>O foco aqui n\u00e3o \u00e9 detalhar o comportamento ou uso de todas as t\u00e9cnicas ou ferramentas acima citadas, afinal, facilmente voc\u00ea encontra este conte\u00fado na Internet.<\/p>\n<p>Aqui vamos bater de frente com o grande vil\u00e3o da vez, o UltraSurf, indo na sequ\u00eancia vendo os meios utilizados, j\u00e1 com sucesso, para banir em definitivo, esta e todas as t\u00e9cnicas e ferramentas citadas da rede.<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><b>UltraSurf &#8211; Problemas comuns<\/b><\/p>\n<div>Pense, se existisse um aplicativo execut\u00e1vel, n\u00e3o instal\u00e1vel, com menos de 1.4 MB, que ao ser executado, por exemplo de um pendrive, passasse dando &#8216;risada&#8217; pelos bloqueios de conte\u00fado configurados em sua rede, sem sequer deixar rastros, ou ent\u00e3o te dar tchau!<\/p>\n<p>Pois \u00e9, esse aplicativo j\u00e1 existe, e se chama <em>UltraSurf<\/em>!<\/p>\n<p>O UltraSurf, desenvolvido pela empresa UltraReach, foi desenvolvido para burlar qualquer bloqueio de conte\u00fado configurado na rede.<\/p>\n<p>Ao ser executado, conecta-se com seus servidores e cria uma esp\u00e9cie de proxy local na m\u00e1quina do usu\u00e1rio, saindo toda a navega\u00e7\u00e3o realizada pelo usu\u00e1rio por esse proxy local, passando assim, por cima de qualquer controle de conte\u00fado imposto.<\/p>\n<p>Ao rodar o UltraSurf, ele inicia sua busca incans\u00e1vel por uma brecha no firewall, por onde possa passar e estabelecer a conex\u00e3o com seus servidores externos. Inicialmente, tenta estabelecer a conex\u00e3o via porta 443 em um dos endere\u00e7os IP de seus infinitos servidores, n\u00e3o conseguindo via porta 443, passa a tentar a conex\u00e3o em uma s\u00e9rie de outras portas, e incansavelmente, segue esta rotina de ir trocando porta e IP, at\u00e9 conseguir estabelecer a conex\u00e3o.<\/p>\n<p>Confesso aqui, que chega a ser divertido ficar monitorando todo esse processo via <em>tcpdump<\/em>.<\/p>\n<p>Caso n\u00e3o tenha \u00eaxito na conex\u00e3o padr\u00e3o, vamos imaginar que voc\u00ea j\u00e1 tenha realizado bloqueios que o impediram de conectar, o usu\u00e1rio vai ao UltraSurf e facilmente configura o IP e porta de um servidor proxy, que pode ser o pr\u00f3prio proxy da sua rede, ou ent\u00e3o um externo, conseguindo dessa forma, fazer a conex\u00e3o com um de seus servidores por dentro do proxy informado.<\/p>\n<p>Aproveito, e deixo aqui meus parab\u00e9ns \u00e0 equipe por tr\u00e1s desta respeit\u00e1vel ferramenta!<\/p>\n<h1>Problemas comuns na tentativa do bloqueio<\/h1>\n<p>Na busca por meios de bloqueio do UltraSurf na Internet, \u00e9 comum cair em alternativas que sugerem bloquear uma rela\u00e7\u00e3o intermin\u00e1vel de endere\u00e7os IP, tidos como sendo os servidores utilizados para conex\u00e3o, bloquear a porta 443, liberando esta somente para os IPs necess\u00e1rios para uso na rede, utilizar o Snort etc&#8230;<\/p>\n<p>Sendo comum ver nos coment\u00e1rios dos posts, coisas do tipo: &#8220;comigo funcionou perfeitamente!&#8221;, &#8220;testando com a vers\u00e3o X funciona, mas com a Y n\u00e3o&#8221;, &#8220;comigo continua acessando normalmente&#8221;, &#8220;rodo o UltraSurf e o Snort n\u00e3o detecta que ele est\u00e1 rodando&#8221;.<\/p>\n<p>Isto se deve ao fato de que a cada nova vers\u00e3o lan\u00e7ada do UltraSurf, novas faixas de IP e portas s\u00e3o utilizadas, o padr\u00e3o de conex\u00e3o \u00e9 redefinido, anulando assim, todos os bloqueios antes configurados, tornando a tentativa de bloqueio do UltraSurf, por este paradigma, totalmente impratic\u00e1vel, trabalhosa e ineficaz.<\/p>\n<p>Como podemos observar na descri\u00e7\u00e3o do comportamento do UltraSurf, \u00e9 comum que t\u00e9cnicas e ferramentas utilizadas para burlar os controles de uma rede fa\u00e7am uso de comportamentos e portas de uso padr\u00e3o e necess\u00e1rio em uma rede, conseguindo com isso, dificultar bastante as tentativas de bloqueio.<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><b>A solu\u00e7\u00e3o<\/b><\/p>\n<div>A solu\u00e7\u00e3o aqui demostrada foi estudada, configurada, colocada em produ\u00e7\u00e3o e amplamente testada na rede acad\u00eamica do Senac Lages\/SC, onde o objetivo principal foi possibilitar aos alunos do Curso T\u00e9cnico em Redes de Computadores, turma que se forma no final do primeiro semestre de 2012, a possibilidade de vivenciar problemas reais de campo, possibilitando desta forma, uma constru\u00e7\u00e3o significativa do conhecimento, e deixando-os preparados para a cruel realidade do mundo do trabalho.<\/p>\n<p>Para resolver o problema, entrou na &#8216;jogada&#8217; o Mutley, servidor rodando <em>FreeBSD<\/em> que fornece com exclusividade para toda a rede acad\u00eamica, os servi\u00e7os: DHCP, DNS, Gateway e Proxy.<\/p>\n<p>O bloqueio do UltraSurf e das outras t\u00e9cnicas relacionadas \u00e9 relativamente simples, bastando ter as portas corretas fechadas no firewall e o uso de um proxy n\u00e3o transparente.<\/p>\n<p>Na sequ\u00eancia, veremos a estrutura\/caracter\u00edsticas do servidor Mutley, as regras aplicadas e as implica\u00e7\u00f5es que cada a\u00e7\u00e3o reflete.<\/p>\n<h1>Estrutura\/Caracter\u00edsticas do servidor Mutley<\/h1>\n<p>FreeBSD 9 configurado como gateway da rede disponibilizando os seguintes servi\u00e7os:<\/p>\n<ul>\n<li>DHCP<\/li>\n<li>DNS<\/li>\n<li>PROXY<\/li>\n<li>FIREWALL<\/li>\n<\/ul>\n<p>PF utilizado como firewall, configurado dentro do conceito de politicas <em>Default Deny<\/em>, onde somente s\u00e3o abertas as portas que realmente s\u00e3o utilizadas na rede.<\/p>\n<p>Portas SSH, 80, 53 e 3128 abertas somente para acesso ao pr\u00f3prio servidor, porta 443 fechada para qualquer uso.<\/p>\n<p>Com isso, j\u00e1 evitamos que seja poss\u00edvel utilizar t\u00e9cnicas de tunneling, socks, proxy an\u00f4nimo, al\u00e9m de j\u00e1 impedir que o UltraSurf e similares consigam conectar.<\/p>\n<h1>Exemplo da regra no PF<\/h1>\n<div># permite \u00e0s m\u00e1quinas da redeLan, acessar as portas listadas somente via ipLan<br \/>\npass in quick on $intLan proto { tcp, udp } from $redeLan to $ipLan port { 53, 80, 3128, 22 } keep state<\/div>\n<p><em>Squid<\/em> configurado como proxy N\u00c3O transparente, onde toda navega\u00e7\u00e3o, sem exce\u00e7\u00e3o, de http, https e ftp, somente ser\u00e1 permitida via proxy, estando as respectivas portas devidamente fechadas no firewall.<\/p>\n<p>O <em>Dquid<\/em> tem sua configura\u00e7\u00e3o padr\u00e3o e dentro da sua necessidade, a \u00fanica coisa adicionada se deu ao fato de que ferramentas como UltraSurf permitem que seja configurado o endere\u00e7o de proxy da rede, conseguindo desta forma, funcionar por dentro do proxy mesmo.<\/p>\n<p>Para impedir que isso aconte\u00e7a, foi criada uma ACL para n\u00e3o permitir a navega\u00e7\u00e3o direta por IP.<\/p>\n<h1>Exemplo da ACL<\/h1>\n<div># acl para n\u00e3o permitir nagevacao por IP<br \/>\nacl naoIP dstdom_regex -i ([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}($|:.+|\/))<br \/>\nhttp_access deny CONNECT naoIP<\/div>\n<h1>Revisando a solu\u00e7\u00e3o<\/h1>\n<ul>\n<li>Firewall configurado dentro dos padr\u00f5es de Default Deny;<\/li>\n<li>Liberar somente as portas necess\u00e1rias para funcionamento da rede;<\/li>\n<li>Portas SSH, 80, 53 e 3128 liberadas exclusivamente para acesso ao IP da LAN do servidor;<\/li>\n<li>Proxy n\u00e3o transparente, atuando como sa\u00edda exclusiva de HTTP, HTTPS e FTP;<\/li>\n<li>Bloqueio no proxy de navega\u00e7\u00e3o por IP.<\/li>\n<\/ul>\n<p>Com estes passos simples, conseguimos com m\u00ednimo esfor\u00e7o, eliminar por completo o uso do UltraSurf e das ferramentas, ou t\u00e9cnicas, mencionadas para burlar os controles de conte\u00fado da rede.<\/p>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><b>Toda a\u00e7\u00e3o, gera uma rea\u00e7\u00e3o<\/b><\/p>\n<div>Claro que toda a\u00e7\u00e3o gera um rea\u00e7\u00e3o, e com o Mutley rodando a todo vapor e os bloqueios funcionando perfeitamente, acabaram surgindo alguns pontos, j\u00e1 devidamente resolvidos, que mereceram um pouco mais de estudo.<\/p>\n<p>Seguem abaixo os problemas detectados e as solu\u00e7\u00f5es j\u00e1 implementadas para resolv\u00ea-los.<\/p>\n<p>Problemas detectados com a aplica\u00e7\u00e3o do Mutley na rede:<\/p>\n<p>Como est\u00e1 sendo utilizado proxy N\u00c3O transparente, h\u00e1 a necessidade de configurar o endere\u00e7o do proxy nos navegadores para poder navegar, o que pode ser considerado um problema para alguns usu\u00e1rios.<\/p>\n<p>Solu\u00e7\u00e3o: Para resolver isso, foi implementado no Mutley, a solu\u00e7\u00e3o de configura\u00e7\u00e3o autom\u00e1tica de proxy, <em>WPAD<\/em>.<\/p>\n<p>O WPAD permite que os navegadores, rodando em m\u00e1quinas Windows, consigam obter, de forma 100% autom\u00e1tica, a configura\u00e7\u00e3o de proxy da rede via DHCP ou DNS.<\/p>\n<p>Como a base de funcionamento da nossa rede \u00e9 Windows, com a implanta\u00e7\u00e3o do WPAD, j\u00e1 ficou resolvido o problema da configura\u00e7\u00e3o de proxy nos navegadores.<\/p>\n<p>Nos clientes n\u00e3o-Windows, como por exemplo <a href=\"http:\/\/www.vivaolinux.com.br\/linux\/\">GNU\/Linux<\/a>, se faz necess\u00e1ria a configura\u00e7\u00e3o manual do proxy no navegador.<\/p>\n<p>* A configura\u00e7\u00e3o de proxy foi automatizada via WPAD para os navegadores, mas temos uma serie de aplica\u00e7\u00f5es que usam as portas 80, HTTPS ou FTP, e que n\u00e3o permitem configura\u00e7\u00e3o de proxy autom\u00e1tica ou manual em suas interfaces. O Windows Update \u00e9 um desses casos.<\/p>\n<p>Solu\u00e7\u00e3o: Para resolver este problema, foram utilizados aplicativos do pr\u00f3prio Windows (proxycfg, netsh winhttp set proxy) para realizar a configura\u00e7\u00e3o do proxy a n\u00edvel de sistema operacional.<\/p>\n<p>Criada uma ACL para liberar a navega\u00e7\u00e3o por IP para casos espec\u00edficos, por exemplo, a realiza\u00e7\u00e3o de FTP.<\/p>\n<p>Exemplo:<\/p>\n<div># acl para permitir navegacao por ip para ftp<br \/>\nacl ftpporip url_regex ftp:\/\/[0-9]*\\.[0-9]*\\.[0-9]*\\.[0-9]*<br \/>\nhttp_access allow ftpporip<\/div>\n<h1>Considera\u00e7\u00f5es finais<\/h1>\n<p>\u00c9 isso pessoal, espero que as dicas aqui passadas possam ser \u00fateis.<\/p>\n<p>Refor\u00e7o que a solu\u00e7\u00e3o aqui proposta j\u00e1 se encontra em uso a mais de um ano!<\/p><\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Introdu\u00e7\u00e3o Que tal passar horas planejando e configurando o controle de acesso a conte\u00fado de uma rede, ir dormir feliz da vida com o gostinho do dever cumprido e acordar no dia seguinte, com o pesadelo de saber que foi tudo em v\u00e3o, pois os usu\u00e1rios est\u00e3o acessando o conte\u00fado bloqueado normalmente? O objetivo aqui [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1,79,42,51,68],"tags":[113,80,117,224],"class_list":["post-404","post","type-post","status-publish","format-standard","hentry","category-viazap","category-firewall","category-leitura-recomendada","category-linux-linuxrs","category-redes-2","tag-bloqueio","tag-firewall-2","tag-iptables","tag-ultasurf"],"_links":{"self":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/404","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=404"}],"version-history":[{"count":1,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/404\/revisions"}],"predecessor-version":[{"id":405,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/404\/revisions\/405"}],"wp:attachment":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=404"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=404"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=404"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}