andrelop

Eu utilizo um laptop com Linux para trabalhar e onde trabalho utilizamos o Google Workdpace como solução de autenticação de usuários via SSO do Google.

Usamos uma solução de terceiros que integra a autenticação local no laptop com usuários corporativos do nosso domínio no Google Workspace.

Antes dessa solução ser adotada, eu tinha um usuário local simples criado no meu laptop e me autenticava localmente com ele. A senha desse usuário local não precisava ser muito complexa porque eu já encripto meu disco local e, por isso, já tinha que fornecer uma outra senha durante a inicialização do sistema operacional para poder abrir o disco e ter acesso aos dados.

Com a utilização da solução que integra o usuário local com o meu usuário coporativo do Google Workspace, meu login local no laptop passou a exigir minha senha do Google Workspace, essa sim uma senha bem mais complexa.

Essa senha é propositalmente mais complexa, porque uma vez autenticado localmente com um usuário local eu já tinha acesso ao meu aplicativo gerenciador de senhas, que sempre esteve configurado para preencher automaticamente minhas senhas quando solicitado, incluíndo essa senha mais complexa, por isso não precisava lembrar dela (precisava decorar somente a senha mestre do gerenciador de senhas).

Porém, agora com a necessidade de sempre digitar a senha do Google Workspace para login local (e para destravar o laptop quando saio por um tempo e volto a utilizá-lo), dado que nesse momento não tenho acesso ao aplicativo gerenciador de senhas, estava começando a ficar chateado com o fato de ter que ficar decorando minha senha complexa (acima de 30 caracteres, com letras, números, caracteres especiais, etc) e ter que digitá-la a todo momento.

A rotina corporativa também exige a troca dessa senha (por uma de complexidade igual ou superior) a cada 3 meses no máximo, logo quando eu estava começando a realmente decorar a senha complexa ela precisava ser trocada.

Entendi que o ideal para meu caso seria ter uma forma de autenticar/destravar a proteção de tela do laptop com um leitor biométrico, como um leitor de impressões digitais, por exemplo. Infelizmente, o laptop que me foi fornecido pela empresa não tem um leitor biométrico embutido.

Pesquisando sobre o suporte a um leitor desses em Linux, a conclusão a qual cheguei é que existem bem poucos disponíveis compatíveis com Linux e os poucos que encontrei compatíveis eram bem caros.

Comecei a pensar como seria bom se eu conseguisse usar a autenticação por leitura de impressões digitais que já existe no meu celular (Android) para poder logar/destravar a tela do meu laptop : não seria necessário ter que lidar com um outro dongle USB adicional e não precisaria comprar nenhum hardware adicional.

Procurei por uma solução e achei o PC Bio Unlock. É uma solução que envolve um aplicativo que você roda no PC, para instalar um cliente localmente, e um app instalado no celular. O app no celular se comunica com o aplicativo no PC por uma conexão de rede TCP ou por Bluetooth.

Você executa o aplicativo no laptop (Linux) pela primeira vez, escolhe se quer usar TCP ou Bluetooth (usei a primeira opção no meu caso, para não ter que deixar o Bluetooth ligado continuamente) e clica no botão de instalar.

Isso instala o aplicativo, que a partir de então fica em execução em background, aguardando conexão do app no celular. A instalação do aplicativo no desktop também adiciona uma modificação no gerenciador de login (suporta vários, no meu caso é o SDDM, padrão do Plasma no KDE) que muda o prompt de login, indicando que o login ou destravamento da tela do laptop pode ser feito pelo app no celular.

Quando essa mensagem surge na sua tela de login ou no destravamento de tela no laptop, o app no celular exibe uma tela de autenticação por bimometria. Assim que você insere seu dedo para se autenticar por impressão digital no celular, seu login é feito ou sua tela é destravada no laptop.

Funcionou muito bem pro meu caso de uso. O app no celular exibe propagandas, mas existe uma versão Pro que, imagino, remove as propagandas (porém, ainda não vi necessidade de atualizar para essa versão Pro).

Com isso, não precisei deixar minha senha corporativa mais simples para facilitar a digitação da mesma com frequência e, melhor ainda, simplesmente deixei de ter que digitar essa senha de uma vez por todas. Passei a usar autenticação por biometria sem nem sequer ter um dispositivo de leitura biométrica no laptop.

Recomendo ? Ainda não sei, estou usando somente há um dia e, por enquanto, ainda não vi problemas. Por desconfiança, cheguei a deixar por algum tempo um tcpdump sendo executado em background, observando o tráfego de rede para verificar se o aplicativo no laptop não estava tentando transmitir algum dado meu para algum servidor remoto, mas não encontrei nada suspeito.

Use por sua conta e risco, mas em um primeiro momento me parece seguro. No futuro, caso eu não note nenhum problema, vou verificar o custo de atualizar para a versão Pro, pois assim eu deixo de ver propagandas quando abro o app no celular (as propagandas não são invasivas de qualquer forma).

Eu cheguei a usar o WriteFreely por algum tempo há alguns meses. Optei por ele por ser minimalista, simples, leve e poder federar os posts com ActivityPub.

Porém, senti falta do suporte a utilizar imagens nos posts. Sim, eu sei que daria para fazer links com os endereços das imagens, mas ainda assim eu teria que hospedar essas imagens externamente em algum lugar e, claro, pagar uma taxa para mantê-las por lá.

Desisti de usá-lo por esse motivo e, na época, descobri os plugins de federeação de posts do Wordpress, então migrei para o Wordpress e abandonei o WriteFreely.

Tudo OK, mas em diversos momentos ainda sentia que o Wordpress para o meu caso de uso era uma bazuca para matar uma formiga e que ele consumia mais recursos do que eu estava confortável que ele utilizasse.

Devido a recente confusão relacionada ao Wordpress, decidi que já era hora de deixar de usá-lo. A minha primeira escolha era novamente o WriteFreely, mas de novo esbarrei no problema de onde hospedar minhas imagens.

Deixei a ideia cozinhar por alguns dias e, hoje, do nada me lembrei do Minio, que é uma solução de código aberto e gratuita para implementar um solução de object storage.

logo do Minio

Dado que o WriteFreely não suporta apontar para arquivos de imagens locais, mas sim somente linkar para eles através de URLs, o que eu fiz foi instalar o Minio via Docker localmente no meu mini-PC onde hospedo esse blog.

Durante a instalação, apontei na configuração do Minio para um diretório do disco do mini-PC que separei para armazenar as imagens. O Minio também possui uma interface de administração Web de fácil uso, que permite criar buckets, diretórios dentro desses buckets, adicionar conteúdo nesses diretórios (como imagens por exemplo) e atribuir permissões de forma bem granular a esse conteúdo (somente leitura, por exemplo).

Cada arquivo ganha então uma URL única, de forma que, a partir desse ponto, é possível referenciá-los a partir do código Markdown de um post no WriteFreely e pronto : o WriteFreely passa a exibir o conteúdo do seu post acompanhado das imagens sem que seja necessário hospedar as imagens em um outro local externo qualquer e muito menos ter gastos com isso.

Sou pão duro. Sempre penso inúmeras vezes antes de gastar.

Há tempos vinha pensando em hospedar minha própria instância de Mastodon, mas sabendo que isso iria envolver algum gasto fui deixando a idéia de lado.

Agora nesse início do ano de 2024, resolvi dedicar um pouco mais de tempo a isso e acabei finalmente fazendo isso. Mas, obviamente, fui atrás de uma forma barata de fazer isso.

Inicialmente tentei hospedar tudo em casa mesmo, mas descobri que meu provedor de Internet me entrega um endereço IP interno (não público), o que me impede de hospedar conteúdo e servir para o mundo diretamente.

Uma opção seria ter um VPS e hospedar por lá, mas isso envolve maior custo. Olhei preços de VPS e acabei entendendo que mesmo os mais baratos sempre tem alguma pegadinha (ex: desconto somente com comprometimento de 1 ano pago adiantado).

Entendi então que eu não precisaria hospedar tudo em um VPS. Precisaria somente ter um local onde eu pudesse ter um IP público e portas HTTP/HTTPS não bloqueadas pelo meu provedor.

Desse local eu poderia encaminhar as conexões para minha casa através de uma conexão segura. Dessa forma o maior custo seria da infraestrutura doméstica, mas esse seria um custo fixo e não recorrente (menos mal).

A idéia seria então essa. O mínimo de infraestrutura possível externamente e o restante sendo servido internamente aqui de casa mesmo.

O que fiz para conseguir isso foi :

  • Desisti de pagar um VPS externo e inicialmente crie uma máquina virtual no serviço de cloud do Google, usando a camada gratuita deles, que me permite criar uma máquina virtual bem pequena e ter ela rodando 24x7 sem custos

  • Dentro de casa, instalei Linux em Intel NUC, que é um mini PC pouco maior que o tamanho da palma da minha mão, que pode ficar ligado 24x7 e que consome pouca energia, sem fazer barulho algum

  • Na máquina virtual no cloud do Google, instalei e configurei o Caddy, um servidor web bem interessante que me permite servir conteúdo em meu domínio e ter certififcados digitais gratuitos emitidos pelo Let's Encrypt, de forma automática, incluíndo a renovação

  • Nessa máquina virtual no Google e no meu mini PC interno, instalei e configurei o cliente do Tailscale, que é um serviço de VPN bem simples de ser usado, gratuito (tem limite de usuários, mas sou somente um usuário), e com isso eu passei a conseguir fazer a máquina virtual externa, no Google, enxergar meu mini PC interna em uma rede virtual privada e segura

  • Configurei o Caddy para servir https://status.andrelop.org/, entregar o certificado digital, e redirecionar as demais conexões internas necessárias para o Mastodon funcionar para meu mini PC interno

  • No meu mini PC interno, instalei o Mastodon com todos os componentes seguindo a ótima documentação disponibilizada pelo Guto Carvalho, com algumas adaptações (Debian ao invés de Ubuntu, uma versão mais nova do Mastodon e usando o Caddy ao invés do Nginx)

Na prática, eu tive o custo de comprar o mini PC, mas isso ficou bem longe do custo de um computador “normal”, ficando inclusive mais barato de que a maioria dos celulares Android de entrada/quase intermediários. E é um custo único fixo, já pago, não recorrente

Por fim, acabei ainda instalando essa instância do WriteFreely no https://write.andrelop.org/ para que eu possa documentar mais algumas das minhas aventuras, também me baseando na igualmente ótima documentação, também disponibilizada pelo Guto Carvalho

Também aproveitei e coloquei para funcionar um Pi-Hole para servir minha rede interna, que agora recebe bem menos anúncios, uma vez que o Pi-Hole bloqueia uma boa parte deles.