Existe-t-il un pare-feu au niveau de l'application pour Ubuntu 16.04? (avec GUI)

20

Je dois avouer que je suis très nouveau dans le monde Linux, et il y a des concepts qui me semblent très peu familiers.

Une chose qui me manque le plus est un pare-feu de niveau application bon mais simple. À partir de maintenant, avec toute cette connectivité intrusive et permanente omniprésente à Internet, il est indispensable de savoir exactement ce que fait votre ordinateur, pourquoi et avec qui. Un analyseur de protocole est correct mais trop inamical et prend beaucoup de temps à "analyser", ce qui est pratiquement inutile pour les utilisateurs à domicile.

J'ai découvert beaucoup de programmes dans les environnements Windows qui ne devraient pas se connecter à Internet mais ils le font (et avec mon pare-feu gratuit ZoneAlarm, je peux les arrêter).

Avec Gufw (et plusieurs autres), vous devez savoir quelles applications avez-vous déjà installées (et nous savons que cela est presque impossible avec ce système d'exploitation moderne avec des milliards de lignes de code).

Ce que je recherche, c'est un pare-feu qui surveille la connexion NIC / WAN et détecte tout programme / application ou tout ce qui essaie de "parler" de manière proactive, quel que soit le port essayant d'utiliser (les applications que j'ai mentionnées précédemment doivent essayer de se connecter) utilisant des ports TCP bien connus: 80, 443, 8080). Cela existe-t-il? (Sinon, comment puis-je savoir exactement ce que fait mon ordinateur?)

jonabrv1965
la source
1
Juste curieux: cette huile de serpent a-t-elle évité des problèmes graves (comme la wannacry) récemment?
Rétablir Monica - M. Schröder

Réponses:

12

Douane

Douane est un pare-feu personnel qui protège la vie privée d'un utilisateur en lui permettant de contrôler quelles applications peuvent se connecter à Internet depuis son ordinateur GNU / Linux.


Installation

Jusqu'à présent (22/05/2017), aucun paquet Ubuntu n'est disponible. Vous devez le construire à partir de la source.

Ces instructions d'installation sont basées sur des informations du Douane Wiki et testées sur Ubuntu 16.04.2 64 bits.

Ouvrez un terminal ( Ctrl+ Alt+ T) pour exécuter les commandes.

Préparation

Mettez à jour votre système:

sudo apt update
sudo apt full-upgrade

Si vous recevez une notification vous demandant de redémarrer votre ordinateur, redémarrez-le.

Installer les dépendances

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

Créer un répertoire pour la compilation

cd
mkdir Douane
cd Douane

Construisez le module du noyau

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

Vérifiez si le module a été construit et installé correctement:

lsmod | grep douane

Vous devriez voir quelque chose comme:

douane                 20480  0

Construisez le démon

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

Construire le processus de dialogue

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

Démarrez le processus de dialogue:

/opt/douane/bin/douane-dialog &

Vérifiez ensuite s'il fonctionne:

pgrep -a douane-dialog

Vous devriez voir quelque chose comme:

21621 /opt/douane/bin/douane-dialog

Construisez le configurateur

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

Démarrez le démon et configurez le démarrage automatique

J'ai dû insérer le texte suivant dans le fichier /etc/init.d/douaneafin de permettre le démarrage automatique du démon:

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

Ouvrez le fichier pour le modifier:

sudo nano /etc/init.d/douane

Collez ensuite le texte ci-dessus après la description du programme. Appuyez sur Ctrl+ O, Enterpour enregistrer, puis sur Ctrl+ Xpour quitter l'éditeur.

Voici les 21 premières lignes du fichier après avoir inséré le texte:

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

Vous pouvez maintenant configurer le démarrage automatique et démarrer le démon:

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

Activez le filtre et démarrez automatiquement la boîte de dialogue

Démarrez le configurateur:

douane-configurator

Assurez-vous ensuite que les commutateurs Utiliser Douane pour filtrer mon trafic réseau et Démarrage automatique Douane au démarrage sont tous les deux activés.

Vous pouvez consulter les règles de filtrage dans l' onglet Règles . En cliquant avec le bouton droit sur une règle, vous obtenez une option pour la supprimer.

Tester

Si tout va bien, vous devriez voir la fenêtre Douane demander l'autorisation lorsque vous ouvrez des applications qui utilisent des connexions réseau.

Eric Carvalho
la source
1
Salut Eric, merci beaucoup pour votre réponse rapide. Comme mentionné, je suis assez novice avec Linux. J'ai trouvé cette chose Douane avant de poster ma question, j'ai jeté un coup d'œil sur le site Douane et il n'y a pas de "package" pour Ubuntu, seulement pour quelque chose appelé "Archlinux" (je suppose une autre distribution de linux) ... J'ai aussi trouvé que l'on peut l'adapter à n'importe quelle distribution en faisant une recompilation et une installation manuellement ... ai-je raison? ... personne n'a déjà compilé et emballé pour Ubuntu?
jonabrv1965
1
Tout d'abord, merci encore Eric pour le soutien .. Euh ... plus de 30 étapes pour mettre en place et exécuter une application sous linux ... pas très convivial, n'est-ce pas? ... Je commence à voir pourquoi Linux a une très faible réception en dehors des gens technophiles ... je vais essayer (principalement parce que je dois me séparer de M $ Windoze à tout prix)
jonabrv1965
N'y a-t-il pas un PPA pour fournir des binaires? Google a trouvé launchpad.net/~zedtux/+archive/ubuntu/douane (mais je ne l'ai pas testé).
Melebius
4

Il y a un nouveau projet appelé OpenSnitch décrit à

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

La page du projet est https://www.opensnitch.io/

À ce stade, il est considéré comme un logiciel alpha et, étrangement, il est écrit en Python, mais au moins c'est une nouvelle tentative, alors que Douane est un très ancien programme qui (je pense) est beaucoup plus difficile à installer.

Avertissement: je n'ai personnellement testé aucun programme, j'essayais simplement de trouver s'il y avait d'autres options et j'ai remarqué que personne n'avait encore mentionné OpenSnitch ici.

user736189
la source
> "étrangement c'est écrit en Python" - non ce n'est pas bizarrement, c'est en fait une très bonne idée d'utiliser un langage de haut niveau pour tout sauf les parties "chaudes" pour gagner du temps et faire moins d'erreurs.
Sarge Borsch
3

C'est une très bonne question, mais je déteste les questions comme celle-ci car elles sont vraiment difficiles à répondre sans se détacher comme si la sécurité n'était pas importante.

Alors tout d'abord, permettez-moi de dire que la sécurité est importante, mais que Linux la gère très différemment de Windows.

Permet donc d'aborder votre question.

Tout d'abord, il n'y aura pas de pare-feu sortant qui fonctionne de la même manière qu'une alarme de zone. Linux n'en a tout simplement pas besoin. De nombreuses applications fonctionnent dans une architecture client / serveur même si vous les utilisez sur la même machine. Xorg est un excellent exemple. Vous avez d'abord un serveur (dans ce cas, la partie qui dessine à l'écran) et un client (gedit) gedit parle au serveur de dessiner ses boutons, de placer son texte et ainsi de suite. Même quelque chose d'aussi simple qu'une souris a la même architecture (ou pourrait avoir). Un programme agit comme un serveur écoutant des informations et envoyant des données lorsqu'il les obtient, puis un client "se connecte" à ce "serveur de souris" et attend des informations.

C'est tellement répandu sous Linux que si vous deviez créer un "pare-feu" qui demandait l'autorisation pour chaque connexion réseau, vous ne seriez probablement pas en mesure de le configurer car il ne pourrait pas se connecter à son propre serveur.

Ceci est un exemple très approximatif, certains sont trompeurs car ils sont si élevés. Mais c'est toujours très vrai.

Pour nous protéger les utilisateurs Linux contre cela, nous avons un ensemble de deux règles très basiques qui font un très bon travail "basique".

Tout d'abord, aucun utilisateur, à l'exception de root, ne peut ouvrir un port inférieur à 1024. (encore une fois, un niveau très élevé). Cela signifie que même pour exécuter un serveur FTP (sur un port standard), vous devez avoir un accès root. En tant qu'utilisateur, vous pouvez généralement ouvrir des "ports élevés" (ceux supérieurs à 1024). Mais voyez la règle deux.

2e. aucun processus ne peut accéder à aucun fichier auquel l'utilisateur qui a démarré le processus n'a pas pu accéder. (à nouveau très haut niveau) Donc, si "coteyr" devait démarrer un serveur FTP, alors ce serveur FTP au pire des cas (niveau élevé) n'aurait que le même accès exact que l'utilisateur coteyr qui l'a démarré.

En raison de la combinaison de ces deux règles, un "logiciel" qui demande à chaque fois que quelque chose essaie de se connecter au pare-feu se met en travers, et il n'y a pas beaucoup de demande.

Cela dit, vous pouvez toujours créer une règle de pare-feu sortant, et dans de nombreux cas, ce n'est probablement pas une mauvaise idée. De nombreux services peuvent être (et sont par défaut) configurés pour utiliser des sockets basées sur des fichiers (ou basées sur la mémoire) et non des sockets basées sur le réseau.

Une règle de pare-feu entrant ferme généralement tous les écarts impairs laissés par la règle 1 ou 2.

Mon point est le suivant. La sécurité est importante et je n'essaie pas de dire que ce n'est pas le cas, c'est juste ici dans le monde Linux que nous avons différents outils et objectifs. Je recommanderais que vous examiniez les autorisations des utilisateurs et des groupes Linux, puis utilisiez un outil comme gfw et IPTABLES pour combler les lacunes.

coteyr
la source
3
> aucun processus ne peut accéder à aucun fichier auquel l'utilisateur qui a démarré le processus n'a pas pu accéder - ce qui n'est pas différent de Windows, comme vous semblez le laisser entendre. Ce n'est pas une différence de système d'exploitation. Honnêtement, cependant, si vous autorisez simplement toutes les connexions de bouclage, un pare-feu n'interfère pas avec les applications client / serveur TCP sur la même machine - il est parfaitement possible d'en configurer une qui contrôle uniquement l'accès au réseau. (Aussi. À moins que vous exécutiez Windows 9x, les listes de contrôle d'accès Windows sont, en fait, plus puissantes que les autorisations Unix traditionnelles. Ce qui n'a encore rien à voir avec la restriction du réseau.)
Bob
1
En fait, en relisant la réponse ... Je ne sais pas non plus en quoi le fait de ne pas pouvoir utiliser des ports bien connus est utile - cela n'est utile que pour empêcher le masquage des services système (par exemple, faire semblant d'être sshdsur 22), mais la question semble demander plus sur l'exfiltration des données. Quelles sont les connexions presque entièrement sortantes et ont peu à voir avec les ports auxquels vous êtes autorisé à vous connecter.
Bob
1
Tout d'abord, il n'y aura pas de pare-feu sortant qui fonctionne de la même manière qu'une alarme de zone. Linux n'en a tout simplement pas besoin - les tables IP contrôleront aussi bien les sorties que les entrées, veuillez ne pas dire des choses que vous ne connaissez pas réellement.
djsmiley2k - CoW
Salut Honza, lors de ma tournée "devoirs", j'ai vu plusieurs fois des réponses comme la vôtre. Et je le comprends un peu, mais ... et c'est un gros "mais" ... ce n'est pas ce que je recherche ... Je comprends le port, la faible exposition (en raison de la faible diffusion de la plateforme) et tous les autres concepts que vous avez mentionnés ... mais ce que je cherche, c'est de comprendre facilement (par exemple zonealarm) ce que mon ordinateur fait en dehors de l'ordinateur lui-même .. (est Xorg / gedit, pour suivre votre exemple, en besoin d'aller sur internet pour faire quoi que ce soit? si oui je veux / besoin de savoir pourquoi / quand / où ...
jonabrv1965
Ensuite, vous allez creuser un peu plus profondément. essayez netstatEn ce moment ma boîte a 1354 connexions ouvertes. 65 d'entre eux sont des connexions réseau. C'est un chiffre assez faible pour moi (ne dis pas que c'est pour tout le monde), mais alors vous commenceriez à essayer de savoir ce que fait chacune de ces connexions. Comme je l'ai dit, ce n'est pas que la sécurité n'est pas importante, c'est juste un environnement très différent.
coteyr