Deaktivieren Sie das Netzwerk für bestimmte Benutzer

16

Ich arbeite an einer Ubuntu / Mint-Distribution, die live laufen soll. Es gibt mehrere Konten, die in drei allgemeine Gruppen unterteilt sind: Admin, Internet und Sicherheit.

  • Der Administrator ist offensichtlich befugt, alles zu tun.
  • Das Internetkonto dient zur Nutzung des Internets.

Die anderen Konten sind Sicherheitskonten . Unter keinen Umständen sind Netzwerk-Internet, Drucker, Bluetooth, WiFi-Geräte usw. zulässig.

Was ich tun möchte, ist, die Netzwerktreiber aus dem Kernel zu entfernen, aber das würde die Konten deaktivieren, die das Internet benötigen.

Was sind die niedrigsten Möglichkeiten, um das Internet für diese Sicherheitskonten zu deaktivieren? Ich suche nach unmöglich zu verbindenden Lösungen.

Bambuntu
quelle

Antworten:

14

Das kannst du mit machen iptables.

Fügen Sie auf einem Terminal die Regel zu iptables

sudo iptables -A OUTPUT -p all -m owner --uid-owner username -j DROP

Dabei ist Benutzername der Benutzer, den Sie die Internetverbindung deaktivieren möchten. Speichern Sie die Datei und beenden Sie sie.

Dies fügt eine Regel hinzu, die iptablesbesagt, dass alle ausgehenden Pakete, die vom angegebenen Benutzer erstellt wurden, automatisch von gelöscht werden iptables.

Wenn Sie dasselbe für eine vollständige Gruppe tun möchten, empfehle ich , dass dies für eine vollständige Benutzergruppe den gleichen Effekt hat , anstatt --uid usernameSie zu verwenden --gid-owner groupname.

Um zu verhindern, dass die Group Security auf das Internet zugreift, sieht der Befehl ungefähr so ​​aus

sudo iptables -A OUTPUT -p all -m owner --gid-owner security -j DROP

Um die Regel dauerhaft zu machen, können Sie ein Skript erstellen /etc/network/if-up.d/, die erforderlichen Zeilen hinzufügen und es ausführbar machen.


Optional können Sie iptables-saveIhre aktuellen Regeln speichern und beim Booten wiederherstellen.

Speichern Sie die aktuellen iptablesRegeln

sudo iptables-save > /etc/iptables_rules

Öffnen Sie /etc/rc.localmit Ihrem bevorzugten Texteditor und fügen Sie am Ende der Datei

/sbin/iptables-restore < /etc/iptables_rules

Dadurch werden die gespeicherten Regeln bei jedem Start wiederhergestellt.

Weitere Informationen finden Sie auf der Seite [ iptablesmanpage ]. Dort finden Sie weitere Informationen zu verschiedenen iptablesOptionen.

Bruno Pereira
quelle
Vielen Dank. Das hat im Internet funktioniert, aber dieser Benutzer kann immer noch Bluetooth verwenden. Ich teste auf WLAN, habe es aber nicht bestätigt. Ich scheine den Account auf DENY geklebt zu haben. Ich habe es versucht, sudo iptables -A OUTPUT -p all -m owner --uid-owner internet -j ACCEPTaber das hat es zum Testen nicht wieder eingeschaltet.
Bambuntu
Ok, iptables scheinen ein Filter für etwas Niedrigeres zu sein, das die Netzwerkverbindung tatsächlich herstellt. Welche Anwendung ermöglicht die Verbindung? Kann ich es deaktivieren? Wenn ja, deaktivieren Sie basierend darauf, wer die Kontrolle über die Konsole hat. Diese Live-Distribution ist für mehrere Benutzer gedacht, jedoch nicht für mehr als eine Konsole. Wenn ich also nachverfolgen kann, wer die Konsole verwendet, kann ich diese Netzwerk-App möglicherweise basierend auf den Berechtigungen dieses Benutzers deaktivieren.
Bambuntu
Nun, das wäre Ihr Netzwerkmanager in Ubuntu, dh network-managerwenn Sie einen Benutzer aus der Gruppe entfernen networkund die Verbindung in network-manageroder einem ähnlichen Tool deaktivieren , kann er sie nicht wieder herstellen, während dies ein Teil des Benutzers ist der Netzwerkgruppe wird. Dies ist eine andere Ebene des Denkens, da es die Verbindung selbst deaktiviert.
Bruno Pereira
Nach ein bisschen googeln habe ich festgestellt, dass Sie den Netzwerk-Manager entfernen und Ubuntu traditionell einrichten können, indem Sie / etc / network / interfaces bearbeiten . Dies scheint nicht die Netzwerk-App zu sein, die ich deaktivieren möchte. Ich sehe ein bisschen tiefer aus. Wie tief können wir gehen, bevor wir zum Fahrer kommen?
Bambuntu
Ich konnte den Netzwerkmanager entfernen und bereinigen. Zu diesem Zeitpunkt war das Netzwerk deaktiviert. Aber ich konnte die Dinge damit zurückbringen: sudo /etc/init.d/networkingnach der Bearbeitung /etc/network/interfaces Also ist /etc/init.d/networkingso niedrig wie du?
Bambuntu
2

Brunos Lösung ist gut: Ich denke, die beste in sich geschlossene Lösung.

Eine andere Möglichkeit, über die Sie nachdenken können, ist das Einrichten einer Firewall / eines Proxys auf einem separaten Computer als Gateway zum Internet, das nur Verbindungen zulässt, die eine Benutzerauthentifizierung ermöglichen. Sie können beide zusammen für zusätzlichen Schutz verwenden.

Poolie
quelle