Solution 1 :
La solution pour moi s'est avérée simple.
- Créer, valider un nouveau groupe; ajoutez les utilisateurs requis à ce groupe :
- Créer :
groupadd no-internet - Valider :
grep no-internet /etc/group - Ajouter un utilisateur :
useradd -g no-internet username
Remarque :Si vous modifiez un utilisateur déjà existant, vous devez exécuter :usermod -a -G no-internet userNamevérifier avec :sudo groups userName
- Créer :
- Créer un script dans votre chemin et rendez-le exécutable :
- Créer :
nano /home/username/.local/bin/no-internet - Exécutable :
chmod 755 /home/username/.local/bin/no-internet - Contenu :
#!/bin/bash
sg no-internet "[email protected]"
- Créer :
- Ajouter une règle iptables pour avoir abandonné l'activité du réseau pour le groupe pas d'internet :
iptables -I OUTPUT 1 -m owner --gid-owner no-internet -j DROP
Remarque :N'oubliez pas de rendre les modifications permanentes, afin qu'elles soient appliquées automatiquement après le redémarrage. Cela dépend de votre distribution Linux.
4. Vérifiez-le, par exemple sur Firefox en exécutant :
no-internet "firefox"
Au cas où vous voudriez faire une exception et autoriser un programme à accéder au réseau local :
iptables -A OUTPUT -m owner --gid-owner no-internet -d 192.168.1.0/24 -j ACCEPTiptables -A OUTPUT -m owner --gid-owner no-internet -d 127.0.0.0/8 -j ACCEPTiptables -A OUTPUT -m owner --gid-owner no-internet -j DROP
REMARQUE : En cas de ponte les règles seront maintenues. Par exemple, si vous exécutez un programme avec pas d'internet règle et ce programme ouvrira la fenêtre du navigateur, les règles seront toujours appliquées.
Solution 2 :
Une possibilité plus simple :utilisez firejail . Il exécute l'application à l'intérieur du bac à sable. Dans le bac à sable, vous pouvez contrôler l'accès de l'application à n'importe quel réseau ou dossier de votre ordinateur.
Pour exécuter une certaine application sans accès au réseau, procédez comme suit :
firejail --net=none <application>
Dans ce cas, "Le bac à sable ressemble à un ordinateur sans aucune interface réseau." (Voir la section Réseau dans la documentation)
Par exemple, firejail --net=none firefox démarrera firefox sans aucune connexion réseau.
Installation
Voir la documentation d'installation. Vous devez installer à partir du système de paquets de votre distribution, ou mieux obtenir la dernière version LTS. (Par exemple, cette dernière version LTS, 9.56.2 , fonctionne également dans Ubuntu 16.04.)