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:
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:
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.
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.
echo "export GOPATH=$HOME/.go" >> ~/.bashrc
echo "export PATH=$PATH:$GOROOT/bin:$GOPATH/bin:$HOME/.local/bin:$HOME/.bin" >> ~/.bashrc
. ~/.bashrc
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
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.
mkdir -p ~/.config/autostart
cd ui
cp opensnitch_ui.desktop ~/.config/autostart/
sudo systemctl enable opensnitchd
sudo service opensnitchd start
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:
sudo service opensnitchd stop
sudo systemctl disable opensnitchd
Remova os arquivos OpenSnitch instalados:
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
Esse post foi traduzido do site LinuxUprising.com pela rtland.team.
Confira a versão original desse post em inglês:
How To Install OpenSnitch Application-Level Firewall In Ubuntu