Whitelist-Websites für bestimmte Benutzer unter Linux?

585
DMCoding

Aus Gründen des Kinderschutzes und des Schutzes möchte ich einen technisch oder technisch versierten Teenager mit einem eingeschränkten oder eingeschränkten Konto einrichten. Ich möchte nur bestimmte Websites (z. B. iPlayer und Netflix, da es keinen Fernseher im Haus gibt) für diesen Benutzer auf die Whitelist setzen. Ich mache mir keine Sorgen um Software-Updates - diese werden über mein Konto ausgeführt, natch.

Ich verstehe, dass die übliche Antwort darin besteht, einen Proxy wie Squid oder Privoxy zu verwenden. Ich mache mir jedoch Sorgen, dass es möglich ist, solche Systeme zu umgehen, indem die lokalen Proxy-Einstellungen auf dem Client überschrieben werden, es sei denn, ein Gerät führt sie als transparenten Proxy aus und filtert den gesamten lokalen Netzwerkverkehr. Ich mache mir auch Sorgen über die technische Belastung bei der Verwaltung und Pflege eines Systems. (Das spricht als Systemadministrator.)

Ich möchte im Idealfall in der Lage sein, mit meinem Administratorkonto, das offensichtlich über Sudo verfügt, lokale Firewall-Regeln auf Benutzerbasis festzulegen. Ich hätte es theoretisch für ziemlich trivial gehalten, dass der Netzwerkstack des Kernels Verbindungen blockiert, die auf dem lokalen Benutzerprozess basieren, aus dem sie stammen, ebenso wie er ausgehende Verbindungen von bestimmten Hosts oder Ports blockieren kann und einfacher zu verwalten und zu verwalten wäre als ein Proxy, auch wenn der Kernel selbst diese Funktionalität nicht bietet, und dies scheint ein viel eleganterer und effizienterer Mechanismus zu sein als der Vorschlaghammer eines Grenzgeräts, das durch einen Host blockiert oder einen Proxy ausführt.

Hat jemand irgendwelche Gedanken dazu?

Edit: Leute, die downvoting sind. Könnten Sie in den Kommentaren warum erklären?

-1

1 Antwort auf die Frage

1
Ljm Dullaart

Um ehrlich zu sein, gibt es einen Grund, warum jeder die übliche Antwort gibt, einen Proxy zu verwenden. Es ist viel einfacher zu verwalten als ein Satz von IP-Filtern auf einem Host. Es funktioniert auch geräteübergreifend. Wenn dieser Teenager sein Telefon über das WLAN-Netzwerk verwendet, erhält er denselben Schutz.

Wenn Sie sicherstellen möchten, dass alle den Proxy verwenden, erstellen Sie eine DMZ, in der sich der Proxy befindet, und lassen Sie keinen direkten Zugriff auf das Internet zu. Dies kann leicht mit zwei einfachen NAT-Routern durchgeführt werden. Es gibt immer einen Nachteil: Je technischer der Gegner ist, desto leichter kann es sein, dass Sie Ihre Sicherheitsmaßnahmen umgehen. Und Sie möchten wahrscheinlich keine Unternehmenslösung verwalten.

KORREKTUR

Mit iptables ist es möglich;

iptables -A OUTPUT -o ethX -m owner --uid-owner -j ACCEPT 

Dabei ist –uid-owner mit dem angegebenen effektiven USERNAME identisch, wenn das Paket von einem Prozess erstellt wurde.

Aber es wird schrecklich sein, eine schlechte Idee zu verwalten.

Er hat keinen Zugriff auf internetfähige Geräte, insbesondere keine Smartphones. Das ist ein Verlust von Privilegien, die wir langsam wiederherstellen möchten, aber Vertrauen ist eine Einbahnstraße. Wenn Sie ihn beobachten lassen, ist Netflix ein guter Weg, um das zurückzugewinnen, das wir (Erwachsene, nicht ich selbst) verloren haben, als diese Privilegien zurückgezogen wurden. Momentan gibt es nur eine Person in diesem Netzwerk: Ich. Alle meine Geräte dazu zu zwingen, ständig einen Proxy zu verwenden, ist selbstzerstörerisch. Ich möchte nur, dass dieses bestimmte Benutzerkonto auf dieser bestimmten Maschine eine Website-Whitelist erzwingt. DMCoding vor 5 Jahren 0
In der Zukunft suchen wir nach einer Enterprise-Lösung für sein Zuhause, aber in der Zwischenzeit sind Sie sich sicher, dass es keine Linux-Firewalls gibt, die Pakete auf Benutzerbasis blockieren können? ipfw zum beispiel? DMCoding vor 5 Jahren 0
korrigierte meine Antwort Ljm Dullaart vor 5 Jahren 0
Um das zu verbessern, glaube ich, dass sowohl firewalld (die selbst iptables verwendet) als auch ipfw (BSD) diese Funktionalität bieten. @Ljm Dullaart Warum ist die Verwaltung schwierig? DMCoding vor 5 Jahren 0
Wenn Sie Zugriff auf eine Site gewähren, ist das einfach. Oh ja, eine andere Seite, oh ja und noch eine andere. Sie benötigen also einen Prozess, bei dem Ihr Teenager eine URL anfordern kann, die Sie überprüfen müssen. Bevor Sie es wissen, betrachten Sie den ganzen Tag alle möglichen Arten von Websites, und hm ... Vielleicht sollten wir die Anfragen auf etwa fünf URLs pro Tag beschränken? Bei einigen Hausaufgaben in NL müssen Sie möglicherweise im Internet suchen. Werdet ihr immer bei den Hausaufgaben dabei sein, um die URLs in die IP-Filterliste aufzunehmen? Ljm Dullaart vor 5 Jahren 0
Sie werden wahrscheinlich auch ein Skript benötigen, um Ihre Liste der URLs in IPtables-Befehle zu konvertieren. Und natürlich ein Überprüfungsskript, um zu sehen, dass die IP-Filter immer noch korrekt sind und nicht manipuliert wurden (er hat Zugriff auf den Computer; er hat keinen Zugriff auf einen separaten Proxy!) Ljm Dullaart vor 5 Jahren 0
Danke für dein Besorgnis. Derzeit ist er aus rechtlichen Gründen einer 24-Stunden-Aufsicht durch Erwachsene unterstellt. Für Erwachsene eine ziemliche Belastung! Er geht nicht mehr zur Schule. Das ist also im Moment nicht wirklich ein Problem. Ja, es wird nicht schwer sein, ein Python-Skript zu schreiben, um die Liste der Websites zu automatisieren. Und es wird keine große Liste geben, die wir beibehalten müssen: Im Moment denken wir nur an die vier häufigsten TV-Streaming-Sites. Ich glaube also nicht, dass der Verwaltungsaufwand zu groß wird. Solange er ein eingeschränktes Konto hat, sehe ich nicht, wie er auf die Firewall zugreifen könnte. DMCoding vor 5 Jahren 0