Esiste un firewall a livello di applicazione per Ubuntu 16.04? (con GUI)


20

Devo confessare che sono molto nuovo nel mondo Linux e ci sono concetti che mi sembrano poco familiari.

Una cosa che mi manca di più è un firewall di livello applicazione buono ma semplice. A partire da ora, con tutta questa pervasiva connettività intrusiva e permanente a Internet, è necessario sapere esattamente cosa sta facendo il tuo computer, perché e con chi. Un analizzatore di protocollo è ok ma troppo ostile e richiede tempo per "analizzare" che è praticamente inutile per gli utenti domestici.

Ho scoperto molti programmi in ambienti Windows che non dovrebbero connettersi a Internet ma lo fanno (e con il mio firewall gratuito ZoneAlarm posso fermarli).

Con Gufw (e molti altri) devi sapere quali app hai già installato (e sappiamo che questo è quasi impossibile con questo moderno sistema operativo con miliardi di righe di codice).

Quello che sto cercando è un firewall che monitora la connessione NIC / WAN e rilevi qualsiasi programma / app o qualunque cosa stia provando a "parlarne" in modo proattivo, indipendentemente dalla porta che sta tentando di usare (è necessario che le app che ho menzionato prima provino a connettersi utilizzando ben note porte TCP: 80, 443, 8080). Esiste? (In caso contrario, come faccio a sapere cosa sta facendo il mio computer di sicuro?)


1
Solo curioso: questo olio di serpente ha evitato seri problemi (come l'aspirazione) ultimamente?
Ripristina Monica - M. Schröder,

Risposte:


12

douane

Douane è un firewall personale che protegge la privacy di un utente consentendo all'utente di controllare quali applicazioni possono connettersi a Internet dal proprio computer GNU / Linux.


Installazione

Fino ad ora (2017/05/22) non c'erano pacchetti Ubuntu disponibili. Devi costruirlo dalla fonte.

Queste istruzioni di installazione sono basate sulle informazioni del Douane Wiki e testate su Ubuntu 16.04.2 a 64 bit.

Apri un terminale ( Ctrl+ Alt+ T) per eseguire i comandi.

Preparazione

Aggiorna il tuo sistema:

sudo apt update
sudo apt full-upgrade

Se ricevi una notifica che ti chiede di riavviare il computer, riavvialo.

Installa le dipendenze

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

Creare una directory per la compilazione

cd
mkdir Douane
cd Douane

Compilare il modulo del kernel

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

Controlla se il modulo è stato creato e installato correttamente:

lsmod | grep douane

Dovresti vedere qualcosa del tipo:

douane                 20480  0

Costruisci il demone

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

Costruisci il processo di dialogo

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

Avvia il processo di dialogo:

/opt/douane/bin/douane-dialog &

Quindi controlla se è in esecuzione:

pgrep -a douane-dialog

Dovresti vedere qualcosa del tipo:

21621 /opt/douane/bin/douane-dialog

Costruisci il configuratore

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

Avviare il demone e configurare l'avvio automatico

Ho dovuto inserire il seguente testo nel file /etc/init.d/douaneper abilitare l'avvio automatico del demone:

### 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

Apri il file per la modifica:

sudo nano /etc/init.d/douane

Quindi incollare il testo sopra dopo la descrizione del programma. Premi Ctrl+ O, Enterper salvare, quindi Ctrl+ Xper uscire dall'editor.

Queste sono le prime 21 righe del file dopo aver inserito il testo:

#!/bin/bash
#
# douane      This shell script takes care of starting and stopping
#             douane daemon (A modern firewall at application layer)
#
# Author: Guillaume Hain zedtux@zedroot.org
#
# 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

Ora puoi impostare l'avvio automatico e avviare il demone:

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

Attiva il filtro e avvia automaticamente la finestra di dialogo

Avvia il configuratore:

douane-configurator

Quindi assicurati che gli switch Usa Douane per filtrare il traffico di rete e Avvio automatico Douane all'avvio siano entrambi attivi.

È possibile rivedere le regole di filtro nella scheda Regole . Cliccando con il tasto destro su una regola si ottiene un'opzione per eliminarla.

Test

Se tutto va bene dovresti vedere la finestra di Douane che chiede l'autorizzazione quando apri applicazioni che usano connessioni di rete.


1
Ciao Eric, grazie mille per la tua pronta risposta. Come accennato, sono abbastanza alle prime armi con Linux. Ho trovato questa cosa di Douane prima di pubblicare la mia domanda, ho dato un'occhiata al sito di Douane e non esiste un "pacchetto" per Ubuntu, solo per qualcosa chiamato "Archlinux" (immagino un'altra distribuzione di Linux) ... Ho anche trovato che si può adattare questo a qualunque distro effettuando manualmente una ricompilazione e un'installazione ... ho ragione? ... nessuno l'ha già compilato e impacchettato per Ubuntu?
jonabrv1965,

1
Prima di tutto grazie ancora Eric per il supporto ... Uhm ... più di 30 passaggi per installare ed eseguire un'app in Linux ... non molto user-friendly, vero? ... Sto iniziando a vedi perché Linux ha una ricezione molto bassa al di fuori del personale tecnico ... Ci proverò (principalmente perché devo
separarmi

Non esiste un PPA per fornire file binari? Google ha trovato launchpad.net/~zedtux/+archive/ubuntu/douane (ma non l'ho provato).
Melebio

4

C'è un nuovo progetto chiamato OpenSnitch descritto a

https://www.cyberciti.biz/python-tutorials/opensnitch-the-little-snitch-application-like-firewall-tool-for-linux/

La pagina del progetto è https://www.opensnitch.io/

A questo punto è considerato un software alfa e stranamente è scritto in Python, ma almeno è un nuovo tentativo, mentre Douane è un programma molto vecchio che (penso) sia molto più difficile da installare.

Disclaimer: non ho testato personalmente nessuno dei due programmi, stavo solo cercando di scoprire se ci sono altre opzioni e ho notato che nessuno aveva ancora menzionato OpenSnitch qui.


> "stranamente è scritto in Python" - no non è stranamente, in realtà è una buona idea usare un linguaggio di alto livello per tutto tranne le parti "calde" per risparmiare tempo e fare meno errori.
Sarge Borsch,

3

Questa è davvero una bella domanda, ma odio domande come questa perché è davvero difficile rispondere senza venire fuori come dire che la sicurezza non è importante.

Quindi, prima di tutto, lasciami dire che la sicurezza è importante, ma che Linux la gestisce in modo molto diverso da Windows.

Quindi affrontiamo la tua domanda.

Innanzitutto non ci sarà un firewall in uscita che funzioni allo stesso modo dell'allarme di zona. Linux semplicemente non ne ha una grande necessità. Molte applicazioni funzionano in un'architettura client / server anche se le si utilizza sullo stesso computer. Xorg è un ottimo esempio. Per prima cosa hai un server (in questo caso la parte che disegna sullo schermo) e un client (gedit) gedit parla al server del disegno dei suoi pulsanti, posizionando il suo testo e così via. Anche qualcosa di semplice come un mouse ha la stessa architettura (o potrebbe avere). Un programma funge da server che ascolta le informazioni e invia i dati quando le riceve, quindi un client "si connette" a quel "server mouse" e attende le informazioni.

Questo è così diffuso in Linux che se dovessi creare un "firewall" che chiedesse l'autorizzazione per ogni connessione di rete, probabilmente non saresti in grado di configurarlo perché non potrebbe connettersi al proprio server.

Questo è un esempio molto approssimativo, in parte fuorviante perché di livello così elevato. Ma è ancora molto vero.

Per proteggerci da utenti Linux, abbiamo una serie di due regole di base che fanno un ottimo lavoro "di base".

1 °, nessun utente tranne root può aprire qualsiasi porta al di sotto di 1024. (di nuovo molto alto livello). Ciò significa che per eseguire anche un server FTP (su una porta standard) è necessario disporre dell'accesso root. Come utente, di solito è possibile aprire "porte alte" (quelle superiori a 1024). Ma vedi la seconda regola.

2 °. nessun processo può accedere a nessun file a cui l'utente che ha avviato il processo non ha potuto accedere. (di nuovo livello molto alto) Quindi se "coteyr" dovesse avviare un server FTP, quel server FTP nel peggiore dei casi (alto livello) avrebbe solo lo stesso accesso dell'utente coteyr che lo ha avviato.

A causa della combinazione di queste due regole, un "software" che chiede ogni volta che qualcosa tenta di connettere il firewall si mette in mezzo e non c'è molta richiesta per questo.

Detto questo, puoi sempre creare una regola firewall in uscita, e in molti casi questa probabilmente non è una cattiva idea. Molti servizi possono essere (e sono predefiniti) configurati per utilizzare socket basati su file (o basati su memoria) e non socket basati su rete.

Una regola del firewall in entrata solitamente chiude tutti gli spazi dispari lasciati dalla regola 1 o 2.

Il mio punto è questo. La sicurezza è importante e non sto cercando di dire che non lo è, è solo qui nella terra di Linux che abbiamo diversi strumenti e obiettivi. Consiglierei di esaminare le autorizzazioni di utenti e gruppi di Linux e quindi utilizzare uno strumento come gfw e IPTABLES per colmare eventuali lacune.


3
> nessun processo può accedere a nessun file a cui l'utente che ha avviato il processo non ha potuto accedere , il che non è diverso da Windows, come sembra implicito. Questa non è una differenza del sistema operativo. Onestamente, tuttavia, se si consentissero solo tutte le connessioni di loopback, un firewall di questo tipo non interferirebbe con le applicazioni client / server TCP sulla stessa macchina - è perfettamente possibile impostarne uno che controlli solo l'accesso alla rete. (Inoltre, a meno che non si esegua Windows 9x, gli ACL di Windows sono, semmai, più potenti delle tradizionali autorizzazioni Unix. Il che ha ancora poco a che fare con la limitazione della rete.)
Bob

1
In realtà, leggendo di nuovo la risposta ... Non sono sicuro di come sia rilevante non essere in grado di utilizzare porte conosciute - è utile solo per impedire il mascheramento dei servizi di sistema (ad esempio fingendo di essere sshdsu 22), ma la domanda sembra per chiedere di più sull'esfiltrazione dei dati. Che sono quasi interamente connessioni in uscita e hanno poco a che fare con le porte a cui ti è consentito associare.
Bob,

1
Innanzitutto non ci sarà un firewall in uscita che funzioni allo stesso modo dell'allarme di zona. Linux semplicemente non ha un grande bisogno di uno: le tabelle IP controlleranno sia in uscita che in arrivo, per favore non dire cose che in realtà non conosci.
djsmiley2k - CoW,

Ciao Honza, durante il mio tour "compiti a casa" ho visto più volte risposte come la tua. E in qualche modo lo capisco, ma ... ed è un grande "ma" ... non è quello che sto cercando ... Capisco il porto, la bassa esposizione (a causa della scarsa diffusione della piattaforma) e tutti gli altri concetti che hai citato ... ma quello che sto cercando è capire in modo semplice (ad es. zonealarm) cosa sta facendo il mio computer al di fuori del computer stesso .. (è Xorg / gedit, per seguire il tuo esempio, in ho bisogno di andare su Internet per fare qualsiasi cosa? se è così, voglio / ho bisogno di sapere perché / quando / dove ...
jonabrv1965

Quindi scaverai un po 'più a fondo. prova In netstatquesto momento la mia scatola ha 1354 connessioni aperte. 65 di questi sono connessioni di rete. Questo è un numero piuttosto basso per me (non dire che è per tutti) ma poi inizieresti a cercare di scoprire cosa fa ciascuna di queste connessioni. Come ho detto, non è che la sicurezza non sia importante, è solo un ambiente molto diverso.
coteyr,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.