O Firejail é uma ferramenta de segurança para Linux que isola processos, limitando seu acesso ao sistema e protegendo contra ataques. Ele utiliza namespaces e seccomp para restringir a interação de aplicativos com o sistema operacional. Isso impede que malwares ou programas maliciosos comprometam a integridade do sistema. Além disso, o Firejail permite o controle detalhado sobre as permissões dos aplicativos, aumentando a segurança ao rodar softwares em ambientes controlados.
Todavia, para garantir anonimato, será necessário usar o Firejail com conexão criptografada em redes seguras e anônimas descentralizadas, como o Tor. Para esse fim, é preciso configurar o ProxyChains para rotear o tráfego da rede pelo Tor. Não será possível, ao utilizar o Firejail em condições de segurança avançada, como no modo --private --private-tmp, que impede que um navegador ou programa com configurações de proxy configure o IP 127.0.0.1 e a porta 9050 do Tor Service. Esse modo é o mais seguro, mas bloqueia o acesso ao Tor. Portanto, será necessário utilizar adaptações nesse modo mais seguro para rotear o aplicativo pelo Tor utilizando o ProxyChains.
sudo apt update && sudo apt upgrade;
sudo apt install firejail
sudo nano /etc/firejail/firejail.config
# Mude a opção
restricted-network yes
# Para
restricted-network no
Use meu script instala_tor que automatiza a instalação exatamente como a equipe do Tor Project recomenda! Leia as instruções no GitHub: https://github.com/leandroibov/instala-tor-hidden-service
Ou siga as instruções manualmente em: https://support.torproject.org/apt/
Após a instalação, mantenha as configurações padrão para rodar com o IP 127.0.0.1 e a porta 9050!
sudo apt install proxychains
sudo apt install proxychains4
Obs: Os dois proxychains funcionam...
sudo nano /etc/proxychains.conf
# Adicione essas linhas e comente o resto
dynamic_chain
proxy_dns
tcp_read_time_out 15000
tcp_connect_time_out 8000
[ProxyList]
socks4 127.0.0.1 9050
socks5 127.0.0.1 9050
sudo nano /etc/proxychains4.conf
# Adicione essas linhas e comente o resto
dynamic_chain
proxy_dns
tcp_read_time_out 15000
tcp_connect_time_out 8000
[ProxyList]
socks4 127.0.0.1 9050
socks5 127.0.0.1 9050
Para usar o Proxychains com Firejail, basta seguir o comando abaixo:
firejail + opções do firejail + comando_do_programa_desejado
Por que o modo --private e --private-tmp são considerados alguns dos mais seguros no Firejail?
O modo --private cria um diretório home isolado e temporário para o aplicativo, garantindo que nenhum dado seja salvo permanentemente no sistema. Isso impede que informações sensíveis, configurações ou arquivos criados durante a execução do aplicativo permaneçam no dispositivo após o seu fechamento.
O modo --private-tmp monta um sistema tmpfs (sistema de arquivos temporário em memória) sobre o diretório /tmp, armazenando dados temporários exclusivamente na memória RAM. Isso evita que esses arquivos sejam gravados no disco rígido, garantindo que nenhuma informação temporária seja mantida permanentemente no sistema.
Ambos os modos oferecem um alto nível de segurança e privacidade, isolando os dados do usuário e evitando que informações sensíveis sejam armazenadas de forma duradoura no dispositivo ou de maneira que ataques forenses consigam recuperar por métodos de recuperação de dados, mesmo após a exclusão, pois o modo tmpfs é um modo que fica 100% na memória RAM! Por isso, ao usar muitos comandos com --private-tmp, você gastará memória RAM e precisará calcular e monitorar quanto de RAM está disponível para usar os vários comandos do Firejail com --private-tmp! Dependendo do caso, o usuário pode precisar comprar mais memória RAM para atender às suas necessidades!
Exemplo para rodar aplicativos instalados via apt no modo --private:
firejail --noprofile --nodbus --private --private-tmp --ipc-namespace --nosound --novideo proxychains4 librewolf;
firejail --nodbus --private --private-tmp --ipc-namespace --nosound --novideo proxychains firefox;
firejail --nodbus --private --private-tmp --ipc-namespace --nosound --novideo proxychains pidgin;
Para mais segurança, evite usar o --nodbus, mas se ocorrer o bug do teclado de não aceitar os inputs, você terá que usar. Veja os exemplos:
firejail --private --private-tmp --ipc-namespace --nosound --novideo proxychains firefox;
firejail --private --private-tmp --ipc-namespace --nosound --novideo proxychains pidgin;
Atenção: Para rodar aplicativos portáteis no Firejail, aqueles que vêm em pastas, é preciso especificar o caminho completo onde o executável está e não usar ./executável, mesmo se estiver dentro da pasta do aplicativo! Infelizmente, é complexo rodar os aplicativos portáteis no modo --private do Firejail!
Exemplos de como rodar a carteira Electrum em AppImage e o Exodus, supondo que foram salvos em /home/seu_usuario/:
firejail --noprofile --nodbus --nosound --novideo --ipc-namespace --machine-id --caps.drop=all proxychains /home/seu_usuario/Exodus/Exodus-linux-x64/Exodus;
firejail --noprofile --nodbus --nosound --novideo --ipc-namespace --machine-id --caps.drop=all proxychains /home/seu_usuario/Electrum/Electrum-4.5.8-x86_64.AppImage;
firejail --noprofile --nodbus --seccomp --caps.drop=all --nosound --novideo proxychains -f /etc/proxychains.conf ~/Telegram/Telegram;
firejail --noprofile --nodbus --seccomp --caps.drop=all --nosound --novideo proxychains -f /etc/proxychains.conf /home/seu_usuario/Telegram/Telegram;
Bug do teclado reconhecido com o Firejail em algumas versões do Linux:
O teclado não funciona no Debian 12 com alguns aplicativos! Para resolver, adicione o comando --nodbus e isso pode corrigir o problema!
Comandos firejail funcionam com alguns programas e outros não!
Se os comandos não funcionarem, você precisará adaptar as opções do Firejail até encontrar aquelas que funcionam corretamente, e isso se descobre por meio de testes!
Alguns programas não aceitam certos comandos do Firejail, enquanto outros aceitam!
Teste se está vazando DNS e se está na rede Tor.
Exemplo com o librewolf:
firejail --noprofile --nodbus --private --private-tmp --ipc-namespace --nosound --novideo proxychains4 librewolf https://check.torproject.org https://dnsleaktest.org
Doar monero para ajudar no crescimento desse projeto: Clique aqui!