O sistema operacional Linux é conhecido pela sua robustez em termos de segurança e, comparado com outros sistemas populares, apresenta menos vulnerabilidades no que diz respeito à privacidade. No entanto, mesmo com essa reputação, sempre existe margem para aprimoramento. É aqui que entra o Firejail, uma ferramenta que possibilita aos utilizadores confinar qualquer aplicação em execução, isolando-a do restante do sistema. Essencialmente, o Firejail cria uma “caixa de areia” para cada programa, impedindo que este aceda a outras partes do sistema. Este utilitário é o mais popular para sandboxing de aplicações no Linux, o que explica a sua inclusão em várias distribuições. Abaixo, exploraremos como instalar o Firejail no seu sistema Linux.
AVISO: Pode encontrar um tutorial em vídeo no final deste artigo.
Instalação do Firejail
Ubuntu
sudo apt install firejail
Debian
sudo apt-get install firejail
Arch Linux
sudo pacman -S firejail
Se a versão do Firejail disponível nos repositórios do Arch Linux não o satisfaz, pode optar por instalar a versão Git do AUR.
Fedora
Infelizmente, não existe um pacote Firejail nos repositórios principais do Fedora. No entanto, os utilizadores do Fedora podem instalar o software através do Copr.
O Copr funciona de maneira semelhante aos PPAs no Ubuntu ou ao AUR no Arch Linux. Qualquer utilizador pode criar um repositório Copr e disponibilizar software. Existem vários repositórios Copr com o Firejail, por isso, se o repositório mencionado neste artigo deixar de ser atualizado, pode consultar o site do Copr para encontrar alternativas.
Para instalar o Firejail no Fedora, utilize os seguintes comandos:
sudo dnf copr enable ssabchew/firejail sudo dnf install firejail
OpenSUSE
Tal como acontece com muitos softwares de terceiros no openSUSE, o Firejail está disponível no OBS. É possível instalar rapidamente as versões do Firejail para as versões mais recentes do Leap e Tumbleweed. Consulte aqui para aceder aos pacotes.
Certifique-se de utilizar o botão de instalação com 1 clique via YaST.
Outras Distribuições
O código fonte do Firejail é acessível e fácil de compilar caso utilize uma distribuição Linux não suportada.
Comece por instalar o pacote Git na sua distribuição. Para isso, abra o seu gestor de pacotes, procure por “git” e instale-o. Certifique-se também de instalar as ferramentas de compilação necessárias para a sua distribuição (pode encontrar informações no wiki da sua distribuição). Por exemplo, no Debian/Ubuntu, a compilação requer o pacote `build-essential`.
Após instalar o Git, utilize-o para obter a versão mais recente do software Firejail:
git clone https://github.com/netblue30/firejail.git
O código será transferido para o seu sistema. Entre na pasta recém-criada através do comando `cd`.
cd firejail
Antes de poder compilar o software, precisa de executar um ficheiro de configuração. Este irá analisar o seu sistema e informar o software sobre as suas especificações. Este passo é essencial, sem ele a compilação não será possível.
configure
O programa está agora configurado para compilação. Vamos gerar um makefile. Este ficheiro contém as instruções necessárias para construir o software. Utilize o comando `make` para o criar.
make
Por último, instale o software Firejail no seu sistema:
sudo make install-strip
Utilizando o Firejail
O processo de isolamento de aplicações com o Firejail é bastante simples. Para isolar uma aplicação, basta adicionar o prefixo “firejail” antes do comando de execução. Por exemplo, para executar o editor de texto Gedit numa “sandbox”, isolado do resto do sistema, utilize o comando: `firejail gedit` no terminal. Esta é a base do funcionamento. Para sandboxing simples, isto é suficiente. No entanto, a configuração do Firejail pode requerer um pouco mais de atenção.
Por exemplo, se executar `firejail firefox`, o navegador Firefox será executado numa sandbox restrita, onde nenhuma outra parte do sistema poderá interagir com ele. Apesar de aumentar a segurança, pode impedir, por exemplo, que o navegador salve uma imagem num diretório específico, devido às restrições impostas pelo Firejail. É importante configurar quais diretórios estão acessíveis dentro da sandbox. A seguir, explicamos como fazê-lo:
Listas de Permissões e Listas Negras
As listas de permissões e listas negras são específicas para cada aplicação. Não é possível definir regras globais para o que as aplicações isoladas podem ou não aceder. O Firejail já inclui vários ficheiros de configuração pré-definidos, com configurações adequadas para a maioria dos utilizadores. No entanto, utilizadores mais avançados podem personalizar estes ficheiros.
Abra um terminal e navegue até ao diretório `/etc/firejail`:
cd /etc/firejail
Utilize o comando `ls` para ver todo o conteúdo do diretório, juntamente com o comando `more` para visualizar os resultados por página. Utilize a tecla Enter para avançar a página.
Localize o ficheiro de configuração da sua aplicação. Neste exemplo, continuaremos com o Firefox.
ls | more
Abra o ficheiro de perfil do Firefox no editor de texto nano:
sudo nano /etc/firejail/firefox.profile
Como mencionado anteriormente, o Firejail vem com configurações padrões que funcionam bem para a maioria dos utilizadores. Por exemplo, apesar da aplicação estar isolada, o diretório `~/Downloads` e os diretórios de plugins estão acessíveis. Para adicionar mais itens à lista de permissões, localize a seção adequada e adicione as suas próprias regras.
Por exemplo, para permitir que o Firefox aceda às suas imagens para fazer uploads no Facebook, adicione:
whitelist ~/Pictures
O mesmo método pode ser usado para listas negras. Para impedir que o Firefox aceda a diretórios específicos, utilize algo como:
blacklist ~/secret/file/area
Salve as alterações com Ctrl + O.
Nota: “~/” significa /home/utilizador atual
Conclusão
O sandboxing é uma forma eficaz de proteger o seu sistema contra aplicações maliciosas ou vulnerabilidades que possam comprometer os seus dados. Se valoriza a segurança no Linux, experimentar esta ferramenta é uma excelente opção.