Blog Linux Avante

Como instalar o firewall de nível de aplicativo OpenSnitch no Ubuntu

14 de maio de 2021

OpenSnitch é um port para Linux do aplicativo de firewall Little Snitch para MacOS, atualmente considerado um software beta.

Se você estiver procurando por um firewall de nível de aplicativo para Linux que vem com uma GUI, experimente o OpenSnitch. Este software de firewall pode monitorar aplicativos em execução em seu sistema, bloqueando seu acesso à Internet até que você permita ou proíba.

Editado posteriormente: o OpenSnitch original foi abandonado. Há um fork com melhorias e correções de bugs que está atualmente em desenvolvimento, então sugiro usar o fork em vez do projeto original que não é mais mantido. Veja este artigo para detalhes.

Veja como funciona o OpenSnitch. Quando um aplicativo tenta acessar a Internet, é inicialmente bloqueado e uma caixa de diálogo é exibida, perguntando se você deseja permitir sua conexão uma vez, nesta sessão ou para sempre:

Diálogo do OpenSnitch questionando ação de uma conexão

Você também pode bloquear seu acesso alterando a primeira lista suspensa de Permitir conexões para Bloquear conexões e selecionar a duração da mesma forma (uma vez, para esta sessão ou para sempre).

Como você pode ver na captura de tela acima, várias informações são fornecidas, como o domínio ao qual o aplicativo tenta se conectar, o IP de origem e de destino ou o ID do processo.

A partir do ícone da bandeja, você pode acessar as estatísticas da rede OpenSnitch, que exibe informações sobre os processos atuais, hosts, endereços, portas ou usuários, bem como uma visão geral de suas conexões atuais:

Aba de estatísticas do OpenSnitch

Embora o aplicativo venha com uma interface gráfica em Qt, ele também pode ser usado a partir da linha de comando. Para saber como especificar regras personalizadas para OpenSnitch, consulte esta página.

Depois de permitir ou negar a conexão de um aplicativo à Internet, não há GUI para alterar isso, caso você mude de ideia, pelo menos por enquanto. Mas você pode redefinir uma regra excluindo (ou modificando) o arquivo de regra que você encontrará no diretório /etc/opensnitchd/rules (depois que o OpenSnitch for instalado e executado uma vez).

OpenSnitch ainda está em beta, por isso faltam alguns recursos. No momento, o daemon OpenSnitch apenas intercepta e gerencia conexões de saída, mas o suporte para conexões de entrada está planejado.

O OpenSnitch não é fornecido para a maioria das distribuições Linux (não consegui encontrar nenhum pacote para Debian / Ubuntu / Linux Mint). Para baixar o código-fonte do OpenSnitch e ver como instalá-lo, verifique esta página.

As instruções de instalação do OpenSnitch fornecidas oficialmente para o Ubuntu estão um pouco incompletas, então escrevi um tutorial a seguir.

Como instalar o firewall de nível de aplicativo OpenSnitch no Ubuntu ou Linux Mint

O guia abaixo requer Ubuntu 18.04, 18.10, 19.04 ou 19.04 (ou mais recente). Não consegui compilar no Ubuntu 16.04. Essas etapas também devem funcionar no Linux Mint 19.*, sistema operacional elementar Juno, Pop! _OS 18.04 e mais recente, e outras distribuições Linux baseadas no Ubuntu 18.04 e mais recente.

  1. Go é necessário para alguns pacotes e, para que todo o procedimento funcione corretamente, alguns caminhos precisam ser adicionados ao seu PATH. Para isso, execute os comandos abaixo:

Comandos para usar no terminal

echo "export GOPATH=$HOME/.go" >> ~/.bashrc

echo "export PATH=$PATH:$GOROOT/bin:$GOPATH/bin:$HOME/.local/bin:$HOME/.bin" >> ~/.bashrc

. ~/.bashrc

  1. Instale as dependências do OpenSnitch:

Comandos para usar no terminal

sudo apt install golang-go python3-pip python3-setuptools python3-slugify protobuf-compiler libpcap-dev libnetfilter-queue-dev python-pyqt5 pyqt5-dev pyqt5-dev-tools git

  1. Comece a construir OpenSnitch e seus requisitos:

Comandos para usar no terminal

go get github.com/golang/protobuf/protoc-gen-go

go get -u github.com/golang/dep/cmd/dep

cd $GOPATH/src/github.com/golang/dep

./install.sh

export PATH=$PATH:$GOPATH/bin

python3 -m pip install --user grpcio-tools

go get github.com/evilsocket/opensnitch

cd $GOPATH/src/github.com/evilsocket/opensnitch

make

sudo -H make install

Ao executar o comando go get github.com/evilsocket/opensnitch , você pode receber um erro dizendo que nenhum arquivo Go foi encontrado ( can't load package: package github.com/evilsocket/opensnitch: no Go files in... ) . Ignore esta mensagem e continue com o restante das etapas.

O último comando acima usa -H porque alguns comandos PIP são executados pelo arquivo de instalação, e a opção -H define a variável HOME para o diretório inicial do usuário de destino, portanto, ele não mexe com algumas permissões.

  1. Adicione o OpenSnitch para inicializar e iniciar seus serviços (você só precisa executar esses comandos uma vez):

Comandos para usar no terminal

mkdir -p ~/.config/autostart

cd ui

cp opensnitch_ui.desktop ~/.config/autostart/

sudo systemctl enable opensnitchd

sudo service opensnitchd start

Como remover OpenSnitch

Para remover OpenSnitch de seu sistema Ubuntu / Linux Mint, use este guia. Isso é necessário porque o OpenSnitch foi instalado a partir da fonte, e não usando um gerenciador de pacotes.

Pare e desative o serviço opensnitchd:

Comandos para usar no terminal

sudo service opensnitchd stop

sudo systemctl disable opensnitchd

Remova os arquivos OpenSnitch instalados:

Comandos para usar no terminal

rm ~/.config/autostart/opensnitch_ui.desktop

rm -rf ~/.go/src/github.com/evilsocket/opensnitch

sudo rm /usr/local/bin/opensnitch-ui

sudo rm /usr/local/bin/opensnitchd

sudo rm -r /etc/opensnitchd

sudo rm -r /usr/local/lib/python3./dist-packages/opensnitch_ui

sudo rm -r /usr/local/lib/python3.*/dist-packages/opensnitch/

sudo rm /etc/systemd/system/opensnitchd.service

sudo rm /etc/systemd/system/multi-user.target.wants/opensnitchd.service

sudo rm /usr/share/applications/opensnitch_ui.desktop

sudo rm /usr/share/kservices5/kcm_opensnitch.desktop

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.