Mostrando postagens com marcador VPN. Mostrar todas as postagens
Mostrando postagens com marcador VPN. Mostrar todas as postagens

domingo, 5 de março de 2023

Cloudflare Tunnel: melhor que VPN! O serviço que eu procurava para acesso remoto!

Pessoal,


Descobri um serviço excelente para acessar remotamente os computadores de casa com segurança: Cloudflare Tunnel!

Imagine que está fora de casa, seja no trabalho ou em uma viagem, e deseja acessar um computador ou seu NAS em casa. Existem algumas possibilidades. A mais tradicional, por segurança, é através de uma VPN (não essas VPNs pagas, mas um serviço com o OpenVPN ou WireGuard.). Outra possibilidade é escancarar seu computador expondo ele na internet através de uma autorização no seu firewall.

Aqui entra a esse túnel da Cloudflare: você instala um cliente dentro da sua rede (seja em Windows, Linux, Mac ou um container Docker) para criar uma conexão segura com a Cloudflare. Após essa etapa, criaremos um ou vários nomes para acessar os serviços internos (através de FQDNs - Fully Qualified Domain Names ou Nomes de Domínio Totalmente Qualificados, DNS Names ou registros CNAME).

Assim, por exemplo, pretendo usar para acessar meu Synology NAS sem precisar expô-lo através do Quickconnect ou abrindo o firewall para tanto. Posso simplicar e criar um 'synology.meudominio.com.br' para o NAS e passar para a Cloudflare qual o endereço IP privado e a porta. O Synology usa uma interface HTTP através da porta 5000, mas quando acessamos através desse túnel, essa interface se torna uma conexão HTTPS pela porta 443.

Só vejo vantagens: é um modo conveniente de acessar seu conteúdo privado, tem o redirecionamento de uma porta HTTP 5000 para a porta HTTPS e, uma vez que estamos conectados a um FQDN gerenciado pela Cloudflare, também ocultramos o nosso endereço IP WAN!!! Sério, é muita vantagem!!!

Talvez o grande  "inconveniente" seja a necessidade de ter um nome de domínio registrado. Pelo que procurei, esses domínios gratuitos como No-Ip e DuckDNS não servem para isso. Assim, eu optei por registrar um domínio para mim.

Sugiro que vocês pesquisem bastante pois os preços variam muito, principalmente a depender do TLD (Top Level Domain ou sufixo de domínio, o ".com" ou ".com.br"). Os TLDs da modinha, como .info, .app, .tech e outros podem custar algumas centenas de dólares a mais que os .com ou .com.br. Mas essa é uma decisão individual. Eu registrei o meu através da própria Cloudflare pois queria um TLD ".com" e a Cloudflare era mais barato que encontrei.

Indo em frente, é necessário um registro gratuito no Cloudflare. Após o registro e o login, você verá essa tela aqui:


A marcação "1" mostra o seu domínio ativo já cadastrado no Cloudflare. Caso não tenha um, é necessário adicionar o domínio clicando na marcação "2". Essa parte foge do escopo deste texto, então clique aqui para aprender a transferir seu domínio para a Cloudflare segundo as exigências dela. Asseguro que é bem simples. Basicamente você terá que trocar os nameservers de onde está hospedado o seu domínio pelos nameservers da Cloudflare.

Passada esta etapa, vamos criar o túnel! Clique no seu site (lá na marcação "1"). Deve aparecer uma tela com opções de serviços da Cloudflare. Desça e escolha a opção "Free". Deve ser pedido o seu cartão de crédito, mas nada será cobrado (se quiser ficar tranquilo, coloque um cartão virtual com apenas 5 dólares e que dure apenas um ou dois meses...).



Depois, tendo seu domínio devidamente registrado na Cloudflare, eles irão oferecer alguns serviços gratuitos para aumentar a segurança e velocidade de acesso (reescreve o endereço usando HTTPS, redireciona as requisições de HTTP para HTTPS e utiliza a compressão Brotli para acelerar o tempo de carregamento das páginas). Sugiro ativar tudo.


Agora os servidores da Cloudflare vão processar essas mudanças do registro do domínio e isso pode levar algum tempo, às vezes algumas horas. Você será notificado quando tudo estiver pronto (pelo email de cadastro na Cloudflare) e no painel da Cloudflare estará esta mensagem:


Clique nesse site e vamos criar o túnel:


Clique em Traffic -> Cloudflare Tunnel -> Launch Zero Trust Dashboard. Na tela que surgirá, a do Cloudflare Zero Trust, clique em Access -> Tunnels:


Escolha o nome do seu túnel e clique em "Save tunnel":


E agora escolha como irá instalar o conector na sua rede interna.


Como eu tenho um Synology NAS e ele fica ligado constantemente e hospeda uma página onde eu faço meu dashboard dos diversos serviços que rodam nele e em outros computadores, optei por instalar um container Docker nele para fazer isso.

Agora vá para o Docker do Synology e faça o seguinte:


Em Registro (1), digite Cloudflare para pesquisar (2) por esta imagem. Escolha a imagem cloudflare/cloudflared (3) e clique em baixar (4). Quando aparecer a janela para escolhar a marca, escolha "latest" (5) e clique em Selecionar (6) para iniciar o download da imagem. Feito isso, vamos preparar a imagem para executar:


Em Imagem (1), escolha a imagem que foi baixada (2) e vamos abrir para configurar. A primeira opção é para escolher a rede do container:


Agora vamos escolher o nome do container, ativar a reinicialização automática e escolher as configurações avançadas:



Após clicar em "Configurações avançadas", vamos precisar usar o comando para criar o container docker que o Cloudflare sugeriu mas será necessário editar algumas coisas. Copie para um editor de texto o comando do Docker e faça as mudanças. Tudo que está no retângulo vermelho será retirado e o que está em negrito continuará:


Após a edição, ficará assim:


Esse texto será colado nas Configurações avançadas, na aba "comando de execução":


Pronto! Clique em Salvar e depois em Avançar. Podemos executar agora com segurança. Quando voltarmos à página da Cloudflare, vamos ver isso aqui:


Pronto! A conexão foi bem sucedida! Clique em "Next"para criar os FQDN (os DNS names para acessarmos os serviços na nossa rede privada).


E é essa facilidade toda aí: como subdominínio, escolhi "nas". O domínio é o que você tem registrado (o seu <qualquercoisa.com.br>). Depois você coloca as configurações de como está acessando o serviço dentro da sua rede. O Synology é desse jeito: http://192.168.1.2:5000. Vejam que o túnel foi criado:


E é isso!

Só tem uma questão importantíssima! Quem souber esses FQDNs entrará na rede rapidamente! Assim, precisamos configurar um bloqueio. O Cloudflare Tunnel tem basicamente todos os serviços de SSO (Single Sign On) como veremos a frente. Inicialmente volte para a tela de iníico do Cloudflare Zero Trust e clique em "Settings" -> Authentication":


Perceba que apenas um modo de autenticação está ativado. Clique em "Add New" para escolher outros métodos:


E veja todos os métodos possíveis! Só fica inseguro quem quiser!


Esse método de One-time PIN já ajuda bastante. Ao tentar conectar no endereço, aparecerá essa tela:


Quem desejar entrar deverá ter um email cadastrado para acessar o túnel (sim, se você colocar outro email que não o cadastrado você não receberá o código de segurança). Digitando o email correto, o usuário receberá um email assim:


E esse código deverá ser digitado na página de acesso:


Pronto! Agora você consegue entrar.

Esse email é definido no menu da Cloudflare Zero Trust acessando: Access -> Applications e aí vcoê clica em "Add an aplication" -> Self-hosted e escolhe um nome e coloca o domínio. Interessante aqui é colocar um asterisco (sim, um "*" - coringa) no subdomínio para que essa regra de segurança valha para TODOS os serviços hospedados nesse domínio! Na página seguinte você escolhe as regras de segurança. Eu colocquei assim:


Dese modo, as mensagens são enviadas para o meu email pessoal, há bloqueio para acessos originários de alguns países conhecidos por ataques de hackers e, por padrão, preenchendo esses requisitos, o acesso é autorizado.

Há muita, muita coisa para fazer aqui ainda. Estou só aprendendo a usar essa ferramenta!

É isso, pessoal!





sábado, 17 de setembro de 2022

Dica: Tailscale - Serviço de VPN remoto

Pessoal,


Como comentei em posts anteriores (aqui e aqui), estou testando alguns serviços para ter acesso remoto aos meus servidores em casa.

No post anterior eu falei do ShellHub, um serviço bem interessante para acessar o shell remotamente via SSH.

Descobri mais dois serviços bem interessantes: o Tailscale e o ZeroTier.

Neste post vou falar do Tailscale e em outro do ZeroTier. Num primeiro momento, parece que o Tailscale é baseado no Wireguard e o ZeroTier no OpenVPN. Isso proporciona mais rapidez ao Tailscale porém o OpenVPN é bem mais rodado que o Wireguard, assim o ZeroTier sai na frente em questão de segurança.

É importante perceber que tanto esse serviço quanto o ZeroTier ou o ShellHub não darão a você acesso completo a sua rede, mas sim acesso a uma máquina da rede. O OpenVPN dá o acesso à rede por completo, ou seja, sua máquina remota parece que está dentro da rede doméstica. Pode parecer a mesma coisa, mas não é.

Por exemplo, o meu NextCloud está instalado na mesma VM do OMV (192.168.1.3). Assim, se eu instalar esses serviços nessa VM, só preciso digirar a porta no navegador e pronto, acesso. Mas se o serviço estiver instalado ou ativo em outra VM, não terei acesso ao NextCloud. A mesma coisa se eu quiser acessar o meu Proxmox (192.168.1.2), também não vou conseguir. Já o OpenVPN, Wireguard ou um VPN tradicional dará o acesso à rede toda. É diferente, entenderam?

Vamos lá. Após entrar no site do Tailscale (tailscale.com), faça seu cadastro e siga em frente, escolhendo qual máquina você deseja conectar. No meu caso, como vou instalar na VM do OMV, vou usar a recomendação do serviço e instalar o pelo curl.

    $ curl -fsSL https://tailscale.com/install.sh | sh

Prontamente ocorre a instalação em menos de 30 segundos. Para concluir e iniciar o serviço, execute o comando abaixo:

    $ tailscale up

O serviço cria um enderço para você acessar e autenticar:


Copie esse endereço, cole no navegador e siga em frente. Prontamente o serviço é adicionado.


Pronto! Agora copie o IP da máquina que deseje acessar, coloque no navegador fora da rede e pronto!

Em breve vou falar do ZeroTier.

Por enquanto é isso!

domingo, 5 de setembro de 2021

Instalei o PROXMOX!

Pessoal,

Grandes mudanças aqui.

Comprei  um HD de 8TB e, junto com dois de 4 TB que eu já tinha e um pequeno de 1TB, resolvi instalar o Proxmox e reorganizar todo o meu servidor.

O Proxmox é um ambiente de virtualização, ou seja, ele não é um NAS. Ao contrário, é preciso criar uma VM nele e instalar algum NAS. No caso, vou voltar a usar o FreeNAS (agora TrueNAS).

A vantagem do Proxmox para mim será criar as minhas VMs independente do NAS. O NAS vai ficar para rodar backups e outras coisas, inclusive uma VM com Ubuntu e alguns dockers por esse Ubuntu.

A instalação do Proxmox é bem simples e vai ficar no HD de 500GB que está na máquina. Depois de baixar a ISO no site do Proxmox e gravar um pendrive bootável com a ISO usando o Balena Etcher, coloquei no computador, dei boot e fui seguindo as instruções:




(Escolha uma boa senha aqui: é a senha do root do Proxmox)





A instalação é bem rápida, uns 5 minutos. Depois disso, ela mostra um resumo para você saber qual página vai acessar a interface web do Proxmox:


Aqui no meu roteador, esse é o endereço padrão e já previamente fixado para esta máquina. Veja aqui como fixar o IP da sua máquina, pois isso é fundamentar para o Proxmox e a instalação do NAS.

Agora vamos entrar na interface web do Proxmox. No Mac (não sei outros sistemas, mas imagino que seja a mesma coisa para qualquer sistema e qualquer navegador), vai dar um erro informando que a página não é segura. Vá em frente, é assim mesmo:




("Olá, eu sou o Proxmox!")

Digite "root" para usuário e a senha que você escolheu lá atrás.


Essa aí em cima é a tela inicial do Proxmox. Não tem nada (óbvio, acabei de instalar), mas é onde irão ficar as VM que você criar.

Como é um Debian, a primeira coisa que eu gosto de fazer é atualizar todo o Debian (veja aqui como). Não apareceu na foto, mas tem um botão escrito "Shell" à direita da tela. Clique lá para abrir o Shell do Proxmox e vamos em frente para atualizar tudo (lembre-se que você estará como root, então não será preciso o "sudo").

Feito isso, vamos começar a brincadeira.

O Proxmox faz o download da ISO do sistema que você deseja instalar na VM e vai mantendo tudo organizado. Gostei disso. Para fazer isso, vá em "Datacenter -> local (pve) -> ISO Images" e faça o download da imagem (entrei no site do Ubuntu, downloads, Ubuntu Server LTS e peguei o link para baixar - o Proxmox faz esse download). Essa imagem, no meu caso, será armazenada no HD de 500GB onde está instalado o Proxmox.




Baixada a imagem, vá em Criar VM (à direita da tela) e siga o passo a passo. É realmente muito fácil.








Clicando em "Console", você vê, via VNC, a sua VM. Muito fácil.

Após instalar o Ubuntu Server, entre nesse post aqui para ver o básico do básico que é necessário instalar para o Ubuntu funcionar bem (atualizações, GCC, Net-Tools, VPN, No-IP DUC).

Bom, por hoje é só (já são 3h da madrugada).

Amanhã eu crio a VM com o NAS e mostro para vocês!

terça-feira, 17 de agosto de 2021

Instalando o Pi-Hole: um tutorial para instalação e acréscimo de listas de bloqueio!

Pessoal,

Estive meio sumido aqui do blog, mas pretendo fazer algumas alterações na rede daqui de casa e vou contando aos poucos.

Hoje vamos falar sobre o Pi-Hole.

No passado tentei instalar ele aqui no NAS, mas deu algum pau e zebrou foi tudo.

Os geradores de conteúdo na internet ganham dinheiro com publicidade (seja no site/Youtube/Instagram/etc) ou de outra renda não relacionada com o conteúdo que eles criam/divulgam. Eu mesmo estou nessa por hobby, para aprender e divulgar o que aprendi. Mas tem gente que vive disso e a publicidade pode ser a principal fonte de renda.

Por outro lado, algumas propagandas são muito invasivas, gerando um monte de anúncios e pop-ups que atrapalham a navegação. Quem nunca desistiu de ver um site por causa do excesso de propagandas?

Existem duas formas de resolver isso. Ou você instala um ad-block no navegador (que por si só pode gerar brechas para invasões, pode ser um malware ou pode coletar informações) ou você instala um bloqueador de anúncios de rede.

Este último é o Pi-Hole. Ele surgiu como alternativa de código aberto ao AdTrap e vem crescendo desde então. Ele funciona como um firewall, todos os anúncios e serviços de rastreamento são bloqueados para todos os dispositivos atrás dele. Ou seja, se você instalar na sua casa, todos os dispositivos (computadores, tablets, celulares, smartTVs) ficam "bloqueados". Funcionam, assim, melhor que os ad-blocks, que só bloqueiam os anúncios no navegador onde ele está rodando.

Se você tiver uma VPN residencial (veja aqui como fazer), pode direcionar mesmo o seu uso externo para sua VPN, filtrar tudo e receber os sites sem publicidade.

O pulo do gato é configurar o Pi-Hole como servidor de DHCP (ou receber a informação vinda da internet, filtrar e entregar ao cliente).

Basicamente é assim que o negócio funciona:

(Fonte: https://privacyinternational.org)


Vamos lá.

Vou usar o meu Raspberry Pi, mas poderia ser uma VM no NAS ou um contêiner do Docker. Fica a gosto do freguês. Eu vou usar uma instalação do RP com Raspian e vou instalar via linha de comando com o curl.

Entre no site do serviço (https://pi-hole.net) e escolha o modo de instalação. Aqui, como disse, vai de linha de comando.

curl -sSL https://install.pi-hole.net | bash

Se você não tiver o curl instalado, use "sudo apt-get install curl" para instalá-lo. Outra coisa interessante é utilizar o ssh para instalar isso.

O resto é seguir as orientações:



O Pi-Hole precisa de um IP fixo para funcionar. Veja aqui como fazer isso. Se você já usou o SSH alguma vez e não está conseguindo logar agora, veja aqui como resolver.


O meu RP está ligado por cabo e Wifi. Vou optar pelo cabo.

Agora o Pi-Hole que saber qual o serviço de DNS que você usa. O DNS (Domain Name System) localiza e traduz o nome do site digitado no navegador para o endereço IP do site. Clique aqui para saber o que é ECS e aqui para saber o que é DNSSEC. Eu uso o 8.8.8.8 do Google, mas o OpenDNS é muito bom também.


Agora ele mostra a lista de bloqueios utilizada. Dê ok e vá em frente:


Eu uso IPv4 mesmo, mas isso depende do seu provedor de internet. Vá em frente.


Agora ele mostra o IP do RP (que no meu caso já está fixado) e o endereço do roteador (Gateway).


 Agora ele avisa que precisa manter o IP reservado:



E, SIM, eu quero instalar a interface web do Pi-Hole para administrar. E, SIM, quero instalar os arquivos adicionais para dar tudo certo e não precisar fazer tudo "na unha" depois. E também quero os arquivos de log para saber o que foi acessado, por quem, por qual dispositivo e quando.




Agora o Pi-Hole termina de instalar e mostra um resumo, inclusive o endereço para logar na interface web e a senha de administrador. Essa senha a gente troca depois.


Agora o Pi-Hole termina de instalar. Por prudência, atualize o "apt" com apt-get update e upgrade e reinicie o computador/VM/RP.

Use o navegador e acesse o endereço pi.hole/admin para entrar nas configurações.

(Muito prazer, eu sou o Pi-Hole)

Bom, depois de ir em login e colocar a senha que o programa gerou, algumas opções são apresentadas:


Whitelist e Blacklist permitem que você libere ou bloqueie sites específicos que o Pi-Hole bloqueou ou não bloqueou, respectivamente.

Talvez a coisa mais interessante seja ir em "Settings -> DHCP" e habilitar o serviço de DHCP do Pi-Hole para que ele distribua os endereços IP da sua rede, direcionando o fluxo da navegação para o Pi-Hole. O problema é que provavelmente você já tem um servidor DHCP no seu roteador.

A solução é simples e é a seguinte: Desabilite o serviço de DHCP do seu roteador e habilite o DHCP no Pi-Hole. Pronto.

Mas eu tenho um Google Wifi e no Google Wifi nada é tão simples. Neste caso, o Google Wifi NÃO permite desabilitar o DHCP... Obrigado mais uma vez, Google.

Antes de resolver isso, vamos mudar a senha do Pi-Hole. Saia em Logout, clique para logar novamente mas escolha a opção "Forgot password". Ele vai mostrar um comando para ser feito no Shell:

    sudo pihole -a -p

O Pi-Hole agora vai pedir para você colocar a senha nova. Simples assim.

Vamos agora voltar ao problema do Google Wifi.

Procurando na internet, achei uma sugestão: deixo o IP do Pi-Hole fixo no Google Wifi (por exemplo 192.168.1.2) e limito o escopo do DHCP para apenas esse endereço (por exemplo de 192.168.1.1 a 192.168.1.2). Depois, no Pi-Hole, habilito o DHCP e a partir de, por exemplo, 192.168.1.10 até 19.1.68.1.251. Deve funcionar.

Mas achei outra solução mais simples. Fui no app do Google Wifi e, dentro de "Rede Avançada", alterei a configuração do DNS. Onde antes estava "Automático", direcionando para o DNS do Google (8.8.8.8), coloquei como servidor primário o IP do Pi-Hole (192.168.1.22) e como servidor secundário o do Google (8.8.8.8).

Bom, testei e deu certo. Os adds reduziram muito. Muito mesmo.

Este modo que fiz, colocando o DNS primário com o endereço do Pi-Hole tem um problema "sério". Todas as solicitações vem do meu Google Wifi, ou seja, todas tem o endereço 192.168.1.1, ou seja, não consigo saber qual dispositivo tentou acessar determinado site e teve a requisição bloqueada.

Pra mim não tem problema, mas concordo que a melhor solução seria deixar o Pi-Hole administrar o DHCP, mas não vou comprar um novo kit de roteadores Mesh só pra isso. Quem sabe no futuro, quando o GWF der pau...

Indo em Settings -> Adlist, você pode acrescentar algumas das dezenas de listas disponíveis, seja para bloquear anúncios, trackings, sites de malwares, etc.


Depois de acrescentar as listas, atualize em Tools -> Update Gravity.


Existem várias listas. Em peguei algumas (as verdes) neste site aqui. No Reddit tem uma discussão sobre essas listas (veja aqui).

No GitHub também tem várias listas. Utilizei este projeto aqui para acrescentar algumas listas.

Acrescentando algumas listas, saí de 87.069 domínios bloqueados para 198.222 domínios bloqueados.

Nem sempre mais é mais. É preciso colocar alguma lista e ver se a navegação continua boa. Qualquer coisa, você libera um domínio, colocando ele na Whitelist ou bloqueia algum em especial, colocando na Blacklist.

Vou continuar testando aqui e aviso se tiver alguma novidade.