Lösung 1:
Die Lösung für mich war einfach.
- Erstellen, bestätigen Sie neue Gruppe; Fügen Sie dieser Gruppe die erforderlichen Benutzer hinzu:
- Erstellen:
groupadd no-internet
- Validieren:
grep no-internet /etc/group
- Benutzer hinzufügen:
useradd -g no-internet username
Hinweis:Wenn Sie bereits vorhandene Benutzer ändern, sollten Sie Folgendes ausführen:usermod -a -G no-internet userName
prüfen mit:sudo groups userName
- Erstellen:
- Erstellen Sie ein Skript in Ihren Pfad einfügen und ausführbar machen:
- Erstellen:
nano /home/username/.local/bin/no-internet
- Ausführbare Datei:
chmod 755 /home/username/.local/bin/no-internet
- Inhalt:
#!/bin/bash
sg no-internet "[email protected]"
- Erstellen:
- Fügen Sie iptables-Regel hinzu zum Beenden der Netzwerkaktivität für die Gruppe no-internet :
iptables -I OUTPUT 1 -m owner --gid-owner no-internet -j DROP
Hinweis:Vergessen Sie nicht, die Änderungen dauerhaft zu machen, damit sie nach dem Neustart automatisch angewendet werden. Das hängt von Ihrer Linux-Distribution ab.
4. Überprüfen Sie es, zum Beispiel in Firefox, indem Sie Folgendes ausführen:
no-internet "firefox"
Falls Sie eine Ausnahme machen und einem Programm den Zugriff auf lokales Netzwerk erlauben möchten :
iptables -A OUTPUT -m owner --gid-owner no-internet -d 192.168.1.0/24 -j ACCEPT
iptables -A OUTPUT -m owner --gid-owner no-internet -d 127.0.0.0/8 -j ACCEPT
iptables -A OUTPUT -m owner --gid-owner no-internet -j DROP
HINWEIS: Im Falle eines Spawnings werden die Regeln beibehalten. Zum Beispiel, wenn Sie ein Programm mit no-internet ausführen Regel und dieses Programm öffnet das Browserfenster, trotzdem werden die Regeln angewendet.
Lösung 2:
Eine einfachere Möglichkeit:Verwenden Sie firejail . Es führt die Anwendung in der Sandbox aus. In der Sandbox können Sie den Zugriff der Anwendung auf jedes Netzwerk oder jeden Ordner auf Ihrem Computer steuern.
Um eine bestimmte Anwendung ohne Netzwerkzugriff auszuführen, gehen Sie wie folgt vor:
firejail --net=none <application>
In diesem Fall "sieht die Sandbox aus wie ein Computer ohne Netzwerkschnittstellen." (Siehe Netzwerkabschnitt in der Dokumentation)
Beispiel:firejail --net=none firefox
startet Firefox ohne Netzwerkverbindung.
Installation
Siehe Installationsdokumentation. Sie sollten aus dem Paketsystem Ihrer Distribution installieren oder besser die neueste Version LTS besorgen. (Zum Beispiel diese neueste LTS-Version, 9.56.2
, funktioniert auch in Ubuntu 16.04.)