Белые сайты для конкретного пользователя на Linux?

383
DMCoding

Из-за проблем с защитой и защитой детей я хочу создать ограниченную или ограниченную учетную запись для технически подкованного подростка. Я хотел бы внести в этот список только определенные веб-сайты (например, iPlayer и Netflix, поскольку в доме нет телевизора) для этого пользователя. Я не беспокоюсь об обновлениях программного обеспечения - они будут запускаться через мою учетную запись, естественно.

Я понимаю, что обычный ответ - использовать прокси, такой как Squid или Privoxy. Тем не менее, я обеспокоен тем, что можно обойти такие системы путем переопределения локальных настроек прокси на клиенте, если только устройство не запускает их в качестве прозрачного прокси, фильтрующего весь трафик локальной сети. Я также обеспокоен техническим бременем администрирования и поддержки. (Это говорит как системный администратор.)

В идеале я хотел бы иметь возможность использовать мою учетную запись администратора, которая, очевидно, имеет sudo, для установки локальных правил брандмауэра для каждого пользователя. Я бы подумал, что теоретически довольно просто для сетевого стека ядра блокировать соединения, основанные на том, из какого локального пользовательского процесса они происходят, точно так же, как он способен блокировать исходящие соединения от определенных хостов или портов, и было бы проще администрировать и поддерживать чем прокси, даже если само ядро ​​на самом деле не предлагает упомянутую функциональность и что это может показаться гораздо более элегантным и эффективным механизмом, чем кувалдой пограничного устройства, блокируемого хостом или запускающего прокси.

У кого-нибудь есть мысли по этому поводу?

Изменить: люди, которые голосуют, не могли бы вы объяснить, почему в комментариях?

-1

1 ответ на вопрос

1
Ljm Dullaart

Ну, если честно, есть причина, по которой все дают обычный ответ на использование прокси. Администрирование гораздо проще, чем набор IP-фильтров на хосте. Он также работает на нескольких устройствах, поэтому, если этот подросток использует свой телефон в сети Wi-Fi, он получит такую ​​же защиту.

Если вы хотите убедиться, что все используют прокси-сервер, создайте DMZ, где расположен прокси-сервер, и не разрешайте прямой доступ к Интернету. Это легко сделать с помощью двух простых маршрутизаторов NAT. Всегда есть обратная сторона: чем технически подкованнее подросток, тем легче будет обойти ваши меры безопасности. И вы, вероятно, не захотите администрировать корпоративное решение.

КОРРЕКЦИЯ

С iptables это возможно;

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

где –uid-owner совпадает, если пакет был создан процессом с указанным действительным USERNAME.

Но управлять им будет ужасно, а потому и плохой идеей.

У него нет доступа к интернет-устройствам, особенно к смартфонам. Это потеря привилегий, которую мы хотели бы постепенно восстанавливать, но доверие - это улица с двусторонним движением, и позволить ему посмотреть Netflix - это хороший способ вернуть утраченные нами (взрослыми, а не я) потери, когда эти привилегии были отозваны. На данный момент в этой сети есть только один человек: я. Принудительное использование прокси-серверов на всех моих устройствах всегда самоубийственно. Я только хочу, чтобы эта конкретная учетная запись пользователя на этом компьютере использовала белый список веб-сайтов. DMCoding 5 лет назад 0
В будущем мы смотрим на решение корпоративного уровня для его дома, но в то же время вы уверены, что в Linux нет брандмауэров, которые могли бы блокировать пакеты для каждого пользователя? ipfw например? DMCoding 5 лет назад 0
поправил мой ответ. Ljm Dullaart 5 лет назад 0
Чтобы улучшить вышесказанное, я считаю, что и firewalld (который сам использует iptables) и ipfw (BSD) также предлагают эту функциональность. @Ljm Dullaart Почему это будет трудно администрировать? DMCoding 5 лет назад 0
Если вы дадите доступ к одному сайту, это легко. О да, еще один сайт, о да и еще один. Таким образом, вам нужен процесс, когда ваш подросток может запросить URL, который вам нужно будет просмотреть. Прежде чем вы это знаете, вы просматриваете все виды сайтов в течение всего дня, и хм ... может быть, мы должны ограничить количество запросов, скажем, до 5 URL в день? Здесь, в НЛ, некоторые домашние задания могут требовать поиска через Интернет; Вы будете всегда присутствовать для его домашней работы, чтобы добавить URL-адреса в список фильтров IP? Ljm Dullaart 5 лет назад 0
Возможно, вам также понадобится скрипт для преобразования вашего списка URL-адресов в команды IPtables. И, конечно, скрипт проверки, чтобы увидеть, что IP-фильтры по-прежнему корректны и не были подделаны (у него есть доступ к машине; у него не будет доступа к отдельному прокси!) Ljm Dullaart 5 лет назад 0
Спасибо за твою заботу. В настоящее время он находится под присмотром взрослых в течение 24 часов по юридическим причинам. Довольно бремя для взрослых! Он больше не в школе. Так что это на самом деле не проблема в данный момент. Что касается списка веб-сайтов, да, я думаю, что не составит труда написать скрипт на Python, чтобы автоматизировать это. И не будет большого списка для ведения: на данный момент мы думаем только о четырех наиболее распространенных сайтах потокового телевидения. Так что я действительно не думаю, что административное бремя будет слишком тяжелым. Пока у него ограниченная учетная запись, я не вижу, как он мог получить доступ к брандмауэру. DMCoding 5 лет назад 0