Existe algum firewall em nível de aplicativo para o Ubuntu 16.04? (com GUI)

17

Devo confessar que sou muito novo no mundo Linux e existem conceitos que me parecem muito desconhecidos.

Uma coisa que mais sinto falta é de um firewall de nível de aplicativo bom, mas simples. A partir de agora, com toda essa intrusiva conectividade intrusiva e permanente com a Internet, é uma obrigação saber exatamente o que seu computador está fazendo, por que e com quem. Um analisador de protocolo é bom, mas muito hostil e demorado para "analisar" que é praticamente inútil para usuários domésticos.

Eu descobri muitos programas em ambientes Windows que não devem se conectar à internet, mas eles fazem (e com o firewall gratuito do ZoneAlarm eu posso pará-los).

Com o Gufw (e vários outros) você precisa saber quais aplicativos você já instalou (e sabemos que isso é quase impossível com este sistema operacional moderno, com bilhões de linhas de código).

O que eu estou procurando é um firewall que monitora a conexão NIC / WAN e detecta qualquer programa / aplicativo ou qualquer tentativa de "falar" de forma proativa, independentemente da porta que tente usar (deve dos aplicativos que mencionei anteriormente tente conectar usando portas TCP bem conhecidas: 80, 443, 8080). Isso existe? (Se não, então como eu sei o que está fazendo meu computador com certeza?)

    
por jonabrv1965 22.05.2017 / 02:59

3 respostas

11

Douane

  

O Douane é um firewall pessoal que protege a privacidade de um usuário, permitindo que um usuário controle quais aplicativos podem se conectar à Internet a partir de seu computador GNU / Linux.

Instalação

Até agora (2017/05/22) não há pacotes do Ubuntu disponíveis. Você deve construí-lo a partir da fonte.

Estas instruções de instalação são baseadas em informações do Douane Wiki e testadas no Ubuntu 16.04.2 64-bit.

Abra um terminal ( Ctrl + Alt + T ) para executar os comandos.

Preparação

Atualize seu sistema:

sudo apt update
sudo apt full-upgrade

Se você receber uma notificação pedindo para reiniciar o computador, reinicie-o.

Instalar as dependências

sudo apt install git build-essential dkms libboost-filesystem-dev libboost-regex-dev libboost-signals-dev policykit-1 libdbus-c++-dev libdbus-1-dev liblog4cxx10-dev libssl-dev libgtkmm-3.0-dev python3 python3-gi python3-dbus

Crie um diretório para compilação

cd
mkdir Douane
cd Douane

Construa o módulo do kernel

git clone https://github.com/Douane/douane-dkms
cd douane-dkms
sudo make dkms

Verifique se o módulo foi criado e instalado corretamente:

lsmod | grep douane

Você deve ver algo como:

douane                 20480  0

Construa o daemon

cd ~/Douane
git clone --recursive https://github.com/Douane/douane-daemon
cd douane-daemon
make
sudo make install

Construa o processo de diálogo

cd ~/Douane
git clone --recursive https://github.com/Douane/douane-dialog
cd douane-dialog
make
sudo make install

Iniciar o processo de diálogo:

/opt/douane/bin/douane-dialog &

Em seguida, verifique se está em execução:

pgrep -a douane-dialog

Você deve ver algo como:

21621 /opt/douane/bin/douane-dialog

Construa o configurador

cd ~/Douane
git clone https://github.com/Douane/douane-configurator
cd douane-configurator
sudo python3 setup.py install

Iniciar o daemon e configurar o início automático

Eu tive que inserir o seguinte texto no arquivo /etc/init.d/douane para ativar o início automático do daemon:

### BEGIN INIT INFO
# Provides:          douane
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Douane firewall
### END INIT INFO

Abra o arquivo para edição:

sudo nano /etc/init.d/douane

Em seguida, cole o texto acima após a descrição do programa. Pressione Ctrl + O , Insira para salvar, então Ctrl + X para sair o editor.

Estas são as primeiras 21 linhas do arquivo depois que eu inseri o texto:

#!/bin/bash
#
# douane      This shell script takes care of starting and stopping
#             douane daemon (A modern firewall at application layer)
#
# Author: Guillaume Hain [email protected]
#
# description: douane is the daemon process of the Douane firewall application. \
# This firewall is limiting access to the internet on application bases.

### BEGIN INIT INFO
# Provides:          douane
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Douane firewall
### END INIT INFO

# Source function library.
. /lib/lsb/init-functions

Agora você pode configurar o início automático e iniciar o daemon:

sudo systemctl daemon-reload
sudo systemctl enable douane
sudo systemctl start douane

Ative o filtro e inicie automaticamente o diálogo

Inicie o configurador:

douane-configurator

Em seguida, verifique se os switches Usar Douane para filtrar meu tráfego de rede e Início automático de Douane on boot estão ativados.

Você pode analisar as regras de filtragem na guia Regras . Clicando com o botão direito em uma regra, você tem a opção de excluí-la.

Teste

Se estiver tudo bem, você deverá ver a janela do Douane pedindo permissão quando abrir aplicativos que usam conexões de rede.

    
por Eric Carvalho 22.05.2017 / 03:12
2

Esta é realmente uma boa pergunta, mas eu odeio perguntas como essa porque elas são realmente difíceis de responder sem parecer que a segurança não é importante.

Primeiro, deixe-me dizer que a segurança é importante, mas que o Linux lida de maneira muito diferente do que o Windows faz.

Então, vamos resolver sua dúvida.

Primeiro, não haverá um firewall de saída que funcione da mesma forma que o alarme de zona. O Linux simplesmente não precisa muito de um. Muitos aplicativos funcionam em uma arquitetura cliente / servidor, embora você os esteja usando na mesma máquina. O Xorg é um ótimo exemplo. Primeiro você tem um servidor (neste caso a parte que desenha na tela) e um cliente (gedit) gedit fala com o servidor sobre como desenhar seus botões, colocando seu texto e assim por diante. Mesmo algo tão simples quanto um mouse tem essa mesma arquitetura (ou poderia ter). Um programa atua como um servidor escutando informações e enviando dados quando eles são recebidos, então um cliente "se conecta" àquele "servidor de mouse" e espera por informações.

Isso é tão comum no Linux que se você criasse um "firewall" que pedisse permissão para cada conexão de rede, provavelmente não seria capaz de configurá-lo porque não poderia se conectar ao seu próprio servidor.

Isso tudo é um exemplo muito grosseiro, algumas delas são enganosas porque são de alto nível. Mas ainda é bem verdade.

Para proteger os usuários do Linux contra isso, temos um conjunto de duas regras muito básicas que fazem um bom trabalho "básico".

Primeiro, nenhum usuário, exceto o root, pode abrir qualquer porta abaixo de 1024. (novamente em nível muito alto). Isso significa que até mesmo executar um servidor FTP (em uma porta padrão) você precisa ter acesso root. Você, como usuário, geralmente pode abrir "portas altas" (aquelas acima de 1024). Mas veja a regra dois.

2º. Nenhum processo pode acessar qualquer arquivo que o usuário que está iniciando o processo não pôde acessar. (novamente nível muito alto) Então, se "coteyr" fosse iniciar um servidor FTP, então o servidor FTP no pior caso (alto nível) teria apenas o mesmo acesso exato que o usuário coteyr que o iniciou.

Por causa da combinação dessas duas regras, um "software" que pergunta toda vez que algo tenta se conectar ao firewall apenas atrapalha, e não há muita demanda por ele.

Dito isso, você sempre pode criar uma regra de firewall de saída e, em muitos casos, isso provavelmente não é uma má idéia. Muitos serviços podem ser (e são, por padrão) configurados para usar soquetes baseados em arquivos (ou baseados em memória) e não soquetes baseados em rede.

Uma regra de firewall de entrada geralmente fecha as lacunas ímpares deixadas pela regra 1 ou 2.

Meu ponto é este. Segurança é importante e eu não estou tentando dizer que não é, é só aqui no Linux que temos ferramentas e objetivos diferentes. Eu recomendaria que você analisasse as permissões de usuário e grupo do Linux e usasse uma ferramenta como gfw e IPTABLES para preencher quaisquer lacunas.

    
por coteyr 22.05.2017 / 06:27
2

Existe um novo projeto chamado OpenSnitch descrito em

link

A página do projeto é link

Neste ponto, é considerado software alpha, e estranhamente é escrito em Python, mas pelo menos é uma tentativa nova, enquanto Douane é um programa muito antigo que (eu acho) é muito mais difícil de instalar.

Aviso: Eu não testei pessoalmente nenhum dos programas, apenas tentei descobrir se havia outras opções e percebi que ninguém havia mencionado o OpenSnitch aqui ainda.

    
por user736189 13.09.2017 / 07:36