Dificultando a espionagem num computador com Linux

Mesmo quem usa Linux hoje em dia não está imune às intromissões das empresas norte americanas e europeias que lhe oferecem sistemas gratuitos. Um exemplo disso é tal de telemetria, que faz com o nosso computador aquilo que o Google Analytics faz com um website, o problema é que os dados que saem do seu computador, saem criptografados e você não sabe nada do que vai dentro deles.

[ Hits: 3.267 ]

Por: JavaNunes Rosenberg em 02/03/2023


Introdução



Quando se pensa em espionagem na informática as pessoas tendem a serem preconceituosas e imaginal só situações envolvendo a China e outros países satanizados por ai. A verdade é que como usamos sites, redes sociais, computadores e sistemas operacionais regidos pelos norte americanos, a probabilidade de sermos espionados por entidades norte americanas é centenas vezes maior do que algo envolvendo a China.

Outro dia fiquei reparando nas conexões que o meu Fedora Linux fazia com o mundo externo ao me logar no Gnome ou KDE (Plasma), mesmo eu desabilitando pelo systemd serviços ligado ao flatpak como flatpak-add-fedora-repos, flatpak-system-helper e outras coisas como chrony e timers, a minha máquina ainda assim usava as "maravilhas" da criptografia usando a porta 443 de outros hosts para enviar sabe-se lá o que sobre mim para a internet, deve ser a praga da telemetria, mas enfim, em um mundo cada vez mais monitorado por governos poderosos, não dá pra confiar cegamente em coisas secretas que saem do seu computador com destino desconhecido. Se eu não posso gerenciar e ver o que tem dentro, não é confiável, simples assim!

Movi o conteúdo da pasta de repositório /etc/yum.repos.d/ para outro lugar e o problema diminuiu, mas não foi sanado. Vira e mexe um IP maroto recebia pelas portas 443 e 5355 informações do meu PC, teve um inclusive que sempre que eu iniciava o meu PC ao dia e me logava no Gnome, pegava cerca de uns 19KB e transacionava com um IP lá da Inglaterra, fiquei pensando comigo mesmo: será que é um print de tela saindo do meu PC? Não sei e não quero pagar pra ver!

Então decidi fazer um frontend em Java para ir bloqueando IPs, quando eu me logava no ambiente gráfico sem abrir nenhum programa de comunicação no Fedora Linux, esses IPs se comunicavam comigo:

8.43.85.67
15.228.175.157
142.251.128.78
38.145.60.21
23.214.205.3
45.134.141.12
200.25.7.49
54.233.149.99
142.251.129.161
45.134.141.12
138.199.5.36
162.159.136.232
199.232.114.137
142.250.219.129
34.120.208.123
52.41.18.18
34.160.144.191
52.35.151.234
18.64.174.19
142.250.219.234
142.251.128.106
142.251.128.42
104.244.42.194
38.145.60.20
45.134.141.11
199.232.114.49
8.43.85.73

O hosts que me davam mais medo eram os começados com 45.

Eu bloqueava esses IPs no iptables mas logo aparecia outro parecido para substituí-lo, tipo enxame de cupins, mata um, vem mais dez. Quando eu bloqueava vários, aí eles apelavam para o IPV6!

Quando eu fechava as portas no IPV6, usavam a porta de hostmon 5355. Enfim, era uma luta para ter informações do meu computador, parecia ate coisa de Windows com o famigerado svchost abrindo conexões estranhas para tudo que é lugar, isso tinha que parar afinal eu não uso Windows!

O que eu fiz

Como o iptables infelizmente não bloqueia aplicativos, seria muito bom se bloqueasse, apelei para o poder dele de bloquear grupos e usuários aliado ao famoso sudo, é meio trabalhoso mas surtiu efeitos.

No seu Linux, como administrador (root), crie um grupo chamado "nospy":

# groupadd -g 1999 nospy

Adicione o usuário root e joão (troque joão pelo seu usuário) ao grupo nospy:

# usermod -G nospy root
# usermod -G nospy joao

Também como administrador edite o arquivo /etc/sudoers:

# visudo

Coloque a seguinte linha dentro do editor visudo no lugar onde tenha por perto linhas parecidas com o comando abaixo:

%nospy      ALL=(ALL)                  ALL

Agora iremos dizer ao firewall do Linux para bloquear todas conexões xeretas que saem do nosso computador e vão para porta 443, 80 e 5355 dos computadores mundanos, usando usuários que fazem parte do grupo principal de joao e root, geralmente o seu grupo principal, por padrão, também leva o nome do seu usuário, para ver qual é, use o comando id ou abra /etc/group, de posse do nome desses grupos que no exemplo acima também se chamam root e joao, vamos usar o iptables para bloquear saída desses grupos para a porta 443 e outras.

Eu uso Fedora Linux e decidi desabilitar o firewalld que é nativo dele por achá-lo muito confuso e bobo, darei preferência ao tradicional iptables mesmo. Lembrando que você poderá acrescentar mais portas e grupos já existentes para deixar tudo ainda mais severo, só não adicione nas regras do firewall o nosso grupo nospy, ele foi criado para só ele navegar.

iptables -A OUTPUT -m owner --gid-owner root -p tcp --dport 443 -j DROP
iptables -A OUTPUT -m owner --gid-owner root -p tcp --dport 80 -j DROP
iptables -A OUTPUT -m owner --gid-owner root -p tcp --dport 5355 -j DROP

iptables -A OUTPUT -m owner --gid-owner joao -p tcp --dport 443 -j DROP
iptables -A OUTPUT -m owner --gid-owner joao -p tcp --dport 80 -j DROP
iptables -A OUTPUT -m owner --gid-owner joao -p tcp --dport 5355 -j DROP

Agora para bloquear espiões engraçadinhos que usam IPV6 faremos o mesmo acima mas com o ip6tables:

ip6tables -A OUTPUT -m owner --gid-owner root -p tcp --dport 443 -j DROP
ip6tables -A OUTPUT -m owner --gid-owner root -p tcp --dport 80 -j DROP
ip6tables -A OUTPUT -m owner --gid-owner root -p tcp --dport 5355 -j DROP

ip6tables -A OUTPUT -m owner --gid-owner joao -p tcp --dport 443 -j DROP
ip6tables -A OUTPUT -m owner --gid-owner joao -p tcp --dport 80 -j DROP
</pre><br/>

Feito isso, crie uma forma de salvar essas regras, no meu caso eu uso uma ferramenta pronta que funciona fazendo isso:

# service iptables save e # service ip6tables save

no seu caso eu não sei, mas enfim, o Linux é cheio de possibilidades para personalização (sua maior vantagem), crie a sua maneira.

Feito isso tudo, quando o usuário joão ou root se logarem, as conexões que saem do seu PC para a porta 443 do cidadão livre do mundo que não conhecemos, serão frustradas, você poderá monitorar isso usando como root o aplicativo iptraf ou iptraf-ng, é uma ferramenta maravilhosa, simples e interativa.

Quando o usuário joao e root que participam do grupo de nome joao e root também, tentarem navegar usando o Firefox, eles não conseguirão, afinal programamos a sua máquina para nada dos grupos nativos desses dois usuários se conectarem na porta 443 (https) dos outros, é agora que vem a mágica: somente os aplicativos que você deseja usar é que vão poder se conectar às portas proibidas (443, 80 e 5355), para isso você que tem usuário joao deverá usar o seguinte comando:

sudo -g nospy firefox

Será pedida a sua senha, digite, aí quando o Firefox for chamado, ele irá conseguir navegar e se conectar aos milhões de porta 443 que ele, assim como qualquer navegador moderno, usa. Nada impede no Firefox mandar o que não deve para sei lá onde, mas nesse caso, a solução seria analisar o código fonte dele, compilá-lo e usá-lo, o que é uma tarefa inglória para a maioria de nós.

Dessa forma, só os apps que chamamos e que queremos usar, é que vão ter o poder usar a porta 443, se você notar que algum daemon acessa essa porta ainda, veja com qual grupo ele se inicia e o bloquei também com o iptables.

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Como configurar o NGinx em 3 passos

Balanceamento de links - Load balance + Failover + Failback

SNMPv3 no Debian/Ubuntu - Configurando para consultas externas

Debian 9: como instalar TL-WN823N v2 (TP-LINK)

Servidor Proxy - Parte I

  
Comentários
[1] Comentário enviado por fabio em 02/03/2023 - 19:07h

Excelente artigo, parabéns!

[2] Comentário enviado por removido em 03/03/2023 - 16:42h

Excelente artigo


Conheça meu trabalho em https://byteuniverse.com/

[3] Comentário enviado por overclk em 04/03/2023 - 10:49h

Ótimo artigo.
Mas como faria para executar programas flatpak? E também como permitir a atualização do sistema via terminal?
Adicionar 'sudo -g nospy' antes do comando 'flatpak run' não funciona. O que fazer?

[4] Comentário enviado por javanunes_com em 06/03/2023 - 01:14h


[3] Comentário enviado por overclk em 04/03/2023 - 10:49h

Ótimo artigo.
Mas como faria para executar programas flatpak? E também como permitir a atualização do sistema via terminal?
Adicionar 'sudo -g nospy' antes do comando 'flatpak run' não funciona. O que fazer?


Olá, eu notei que uma das fontes de prováveis comunicações estranhas [ou não] do computador para fora, é justamente com esses mecanismos de instalação e atualização de software, alguns poderão alegar que simplesmente é o seu computador verificando atualizações e versões remotamente, porem nunca poderemos saber se junto com isso, não tem algum "Espião de Troia".
Bom, aqui na minha máquina eu criei um aplicativo frontend (em java e c++) que automatiza essa tarefa pra mim, mas em suma, o que ele faz é:
Desligar o firewall para mexer com os pacotes e depois liga-lo novamente assim:
service iptables stop
dnf install bla bla bla
flatpak bla bla bka
rpm pla bla bla
dnf upgrade blablabla
service iptables start

Não tem atualização automática permitida não, de jeito nenhum, aqui eu faço manual !


[5] Comentário enviado por zerocoolroot em 10/03/2023 - 19:37h

Parceiro, excelente artigo..!!

Fique com minhas congratulações..!!

Abraços..!!

[6] Comentário enviado por maurixnovatrento em 12/03/2023 - 15:07h


Muito bom, excelente artigo.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts