Blog Linux Avante

Fork do firewall de nível de aplicativo OpenSnitch para Linux com melhorias e correções de bugs

6 de março de 2020

OpenSnitch, um firewall de aplicativo para Linux, não está mais em desenvolvimento ativo. Isso não significava que era o fim deste projeto, porque Gustavo fez um fork há cerca de 8 meses e tem estado constantemente melhorando desde então.

Firewall de aplicativo OpenSnitch Linux

OpenSnitch (fork) é um firewall de nível de aplicativo de código aberto gratuito para Linux feito de um daemon (escrito em Go) e uma GUI (PyQt5). Ele monitora conexões de saída que seus aplicativos estão tentando fazer, impedindo ou permitindo sua conexão com base em um conjunto de regras (o usuário é solicitado a permitir ou negar o acesso quando nenhuma regra existente for encontrada). O aplicativo é inspirado no Little Snitch, um firewall de aplicativo comercial baseado em host para macOS.

É importante notar desde o início que, assim como o software de firewall OpenSnitch original, o fork está em progresso, com sua página dizendo "não espere que ele esteja livre de bugs e não confie nele para qualquer tipo de segurança ", sem entrar em detalhes.

Usando firewall de nível de aplicativo OpenSnitch no Linux

Vamos dar uma olhada em como esse aplicativo funciona. Tendo o daemon OpenSnitch em execução em segundo plano e a IU da bandeja do OpenSnitch em execução, quando um aplicativo tenta acessar a Internet, uma caixa de diálogo é exibida perguntando se você deseja permitir ou negar conexões deste processo (ou porta, etc.), uma vez, por alguns segundos/minutos, esta sessão ou para sempre.

Diálogo de prompt de firewall de aplicativo OpenSnitch Linux

Esta caixa de diálogo contém informações como o nome do aplicativo, nome de domínio/IP ao qual está tentando se conectar, porta, IP de origem, IP e porta de destino, ID do usuário e ID do processo.

O ícone da bandeja permite o acesso às estatísticas da rede OpenSnitch (há também um botão para salvar as estatísticas em um arquivo .cvs):

Estatísticas da rede do firewall OpenSnitch

Esta GUI não permite alterar as regras do OpenSnitch, portanto, depois de permitir ou negar o acesso a alguns processos/aplicativos, você não poderá mais alterar isso usando uma GUI. Até que a GUI do OpenSnith obtenha suporte para edição de regras de firewall existentes (ou adição manual de regras da GUI), você precisará editar os arquivos de regra, que podem ser encontrados em /etc/opensnitchd/rules/

Este é um exemplo de regra simples de OpenSnitch:

cat /etc/opensnitchd/rules/allow-simple-usrlibfirefoxfirefox.json 
{
  "created": "2020-02-24T14:16:23.5976661+02:00",
  "updated": "2020-02-24T14:16:23.597682816+02:00",
  "name": "allow-simple-usrlibfirefoxfirefox",
  "enabled": true,
  "action": "allow",
  "duration": "always",
  "operator": {
    "type": "simple",
    "operand": "process.path",
    "data": "/usr/lib/firefox/firefox",
    "list": []
  }

OpenSnitch fork

Fork do aplicativo OpenSnitch Linux

Desde o fork do OpenSnitch, Gustavo melhorou o software e corrigiu muitos problemas, incluindo:

  • Adição do suporte para regras avançadas (listas), que podem ser usadas para permitir ou restringir conexões com base no IP de destino, porta e mais - captura de tela acima
  • A IU de estatísticas de rede foi bastante aprimorada, agora permitindo filtrar resultados e configurar o número de itens a serem exibidos na guia Geral e muito mais. Agora também é possível ver os detalhes de uma regra/processo na guia Geral
  • Melhor desempenho da IU e congelamento fixo da IU em alguns casos, um problema bastante comum para usuários do antigo firewall OpenSnitch
  • Correções de UI HiDPI
  • Adicionados mais prazos à caixa de diálogo de permissão/negação (30s, 5m, 15m, 30m, 1h)
  • É possível usar ftrace (debugfs) ou/proc para pesquisar processos em execução (PIDs) e obter o caminho do processo
  • Se o daemon não consegue se comunicar com a IU, a ação padrão é aplicada
  • Adicionada opção para permitir/negar domínios de segundo nível
  • Corrigidas travas que ocorriam ao analisar arquivos .desktop (um problema bastante comum no antigo OpenSnitch)
  • Adicionados alertas de IU para avisar sobre conexões não respondidas
  • Exibir a janela do aplicativo quando não houver bandeja do sistema disponível
  • Interceptar e analisar conexões UDPLite
  • Permitir a interceptação de conexões locaishost e multicast
  • Outras mudanças

Além disso, agora existem binários OpenSnitch DEB para download, tornando mais fácil instalar este software de firewall no Debian 9 e mais recente, Ubuntu 16.04 e mais recente, e Linux Mint 18 e mais recente, junto com outras distribuições Linux baseadas nestes (por exemplo, Pop!_OS, etc.).

Baixe OpenSnitch (fork)

Baixar OpenSnitch

O desenvolvedor OpenSnitch fork disponibilizou os pacotes OpenSnitch DEB para download (você precisa baixar e instalar os pacotes opensnitch e python3-opensnitch-ui), junto com o código-fonte. O daemon do firewall OpenSnitch é iniciado automaticamente após a instalação dos pacotes DEB, mas você precisará iniciar a GUI (bandeja) manualmente no menu de aplicativos. O ícone da bandeja do OpenSnitch será iniciado automaticamente na próxima vez que você fizer login.

[Edição posterior] Para usuários do Arch Linux/Manjaro, o pacote AUR opensnitch-git foi trocado do antigo OpenSnitch não mantido para o fork, então você pode usá-lo para instalá-lo.

Para instalar o OpenSnitch (fork) da fonte, consulte sua documentação.

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